일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 프록시배포구조
- ethers websocket
- nest.js설명
- multicall
- 스마트컨트렉트테스트
- rust 기초
- vue기초
- ethers typescript
- 머신러닝기초
- SBT표준
- ambiguous function description
- git rebase
- 스마트 컨트렉트 함수이름 중복
- nestjs 튜토리얼
- Vue
- 컨트렉트 동일한 함수이름 호출
- 스마트컨트렉트 함수이름 중복 호출
- 러스트 기초
- Vue.js
- 깃허브명령어
- 체인의정석
- 스마트컨트렉트프록시
- ethers type
- chainlink 설명
- ethers
- ethers v6
- 러스트기초
- 스마트컨트렉트 예약어 함수이름 중복
- 러스트 기초 학습
- 컨트렉트 배포 자동화
- Today
- Total
체인의정석
Z chash 에서의 ZK snark 본문
토네이도 캐시가 사용하는 2가지 핵심 개념
1. Relayer를 통한 수수료 기록 제거
https://hackernoon.com/what-is-a-transaction-relayer-and-how-does-it-work-bd1q3ywa
2. ZK snarks 영지식 증명을 통한 소유자 증명
이렇게 2가지 핵심 기술을 이용하여 Z캐시와 같은 익명성을 이더리움에서도 구현한 것으로 파악되었다.
믹서에 대한 이해도가 있어야 자금 세탁 방지에 대한 분석이 가능하기 때문에 이에 대해 정리를 하였다.
Z 캐시에서의 영지식 증명 활용
Z캐시의 영지식 증명
- commitment : 보안 처리 된 UTXO
- nullifier : commitment를 사용하기 위하여 필요한 값
두 값은 모두 해시값의 형태로 되어 있으며, 지캐시는 여태까지 발생한 모든 commitment를 리스트로 보관하고 공개처리에 사용된 nullifier를 저장해 두어서 다시 반복되지 않게 처리한다.
- private spending keys
이때 수신자는 , private spending keys 를 가지고 있어서 노트 (rho)를 만들때 서명을 한다.
또한 private spending keys는 모든 트랜잭션에서 암호학적으로 연결되어 사용되고 있어서 비밀키를 알지 못하는 사람은 트랜잭션을 조작 할 수없다.
Commitment = HASH(recipient address, amount, rho, r)
Commitment는 수령자의 주소, 보내는 양, rho 라고 불리는 유니크한 노트 ( 추후 nullifier 를 알아낼때 쓰인다.) 그리고 rondom nonce 값이 포함된다.
Nullifier = HASH(spending key, rho)
지캐시에서는 모든 참여자들이 proving key와 verifying key 2가지 키를 가지고 있다.
송신자는 proving key를 이용하여 input 값이 타당한지에 대한 proof를 만들게 되며 채굴자들은 그들의 verifying key를 사용하여 해당 트랜잭션이 합의를 따르고 있는지를 체크한다. 따라서 트랜잭션을 만드는데 암호화를 위해서 몇 초간이 걸리게 되며 수신자들은 이에 대한 체크만 하면 되기때문에 시간이 크게 걸리지 않는다.
영지식증명에 대한 더 자세한 설명
이를 좀 더 학문적으로 해석하면 아래와 같다.
원래 테이블은 위와 같다.
그러나,
위와 같이 새로운 노트와 Publick Key4와 시리얼 넘버 r4를 프라이빗 채널에서 따로 거래를 한 후 hashed note에 해당되는 H4와 Nullifier에 해당되는 nf2를 모든 유저들에게 공개를 한다. 그러면 공개가 되면서 이전에 사용된 값이 아닌지 체크를 한다.
여기서 문제는 여기에 저장된 노트는 해시값이 저장되어 있기 때문에 노트가 진짜인지 알 수가 없다. 이때 영지식 증명이 사용된다.
출저) Zcash 공식 사이트
https://z.cash/technology/zksnarks/
https://electriccoin.co/blog/zcash-private-transactions/
'블록체인 > 퍼블릭 블록체인' 카테고리의 다른 글
블록체인 익스플로러 (0) | 2021.09.17 |
---|---|
이더리움 해킹 사이트 방지 프로그램 (0) | 2021.09.15 |
Crypto scam DB) 이더리움 스캠 주소 데이터, 신고하고 보상받기 (0) | 2021.09.13 |
EtherScan API 사용하여 데이터 가져오기 (0) | 2021.09.13 |
compound 실행 순서 총정리 (0) | 2021.02.22 |