입금
브라우저가 비밀 값을 생성하고 비공개 노트를 만듭니다. 자산과 노트의 해시가 고정 금액 풀에 제출됩니다.
commitmentHashsecret + nullifierTORNADO.CASH / TORNADO CASH
Tornado Cash는 공개 블록체인에서 비공개 거래를 지원하는 탈중앙화 프로토콜입니다. 변경 불가능한 스마트 컨트랙트 풀과 영지식 증명을 결합해 입금 주소와 이후 수신 주소의 공개 연결을 줄입니다.
Tornado Cash: Tornado Cash는 입금, 대기, 출금 흐름을 기반으로 하는 비수탁형 프라이버시 프로토콜입니다. 사용자는 비공개 노트를 보관하고 공유 풀에 커밋먼트를 게시한 뒤, 어떤 입금과 연결되는지 공개하지 않고 출금 권한을 증명합니다.
프로토콜은 한 주소에서 커밋먼트를 받은 뒤 수신자를 위한 증명을 검증합니다. 비공개 노트는 사용자 측에서 두 작업을 연결하지만 온체인에 공개되지 않습니다.
브라우저가 비밀 값을 생성하고 비공개 노트를 만듭니다. 자산과 노트의 해시가 고정 금액 풀에 제출됩니다.
commitmentHashsecret + nullifier동일 금액 커밋먼트가 더 많이 풀에 들어오면 단순한 시간 상관관계의 유용성이 줄어듭니다. 프라이버시는 사용자 행동과 네트워크 메타데이터에도 좌우됩니다.
클라이언트는 머클 트리에 유효하고 사용되지 않은 커밋먼트가 있음을 증명합니다. 컨트랙트가 증명을 검증하고 지정 수신자에게 자금을 보냅니다.
root + nullifierHashdeposit path + secrets공개 블록체인은 일반적으로 직접 거래 경로를 보여 줍니다. Tornado Cash에서는 출처가 커밋먼트를 게시하고 목적지가 나중에 공유 풀에 유효한 증명을 제시합니다.

노트에는 증명 생성에 필요한 비밀 정보가 포함됩니다. 개인 키처럼 보호하고 공유하지 않아야 합니다.
컨트랙트는 사용자의 비밀 노트 대신 커밋먼트를 머클 트리에 기록합니다.
공개 널리파이어 해시는 노트를 사용된 것으로 표시하지만 어느 커밋먼트인지 밝히지 않습니다.
수신자와 릴레이어 매개변수가 증명 입력에 포함되어 출금 대상의 변경을 막습니다.
Tornado Cash 컨트랙트는 암호학적 사실을 평가합니다. 비공개 노트를 알거나 고객 잔액표를 관리하거나 유효한 수신자를 선택할 필요가 없습니다.
프로토콜 문서 읽기 ↗비밀 값과 널리파이어에서 만든 해시가 풀의 머클 트리에 리프로 삽입됩니다.
H(secret, nullifier)
클라이언트가 트리를 재구성하고 커밋먼트가 승인된 루트에 속함을 증명합니다.
leaf ∈ root
컨트랙트는 이미 사용된 널리파이어 해시를 거부해 두 번째 출금을 방지합니다.
spent[nHash] == false
검증기가 증명을 확인하고 풀이 고정 금액을 지정 수신자에게 보냅니다.
verifyProof() → true
Classic 풀은 동일한 금액을 묶습니다. 입금 시 생성된 노트는 이후 지정 수신자를 위한 출금 증명에 사용됩니다.
Nova는 임의 금액과 보호 풀 내부 전송을 다른 계정 및 거래 모델로 지원합니다.
통제권은 서비스 운영자의 계정이 아니라 사용자가 가진 비밀 정보로 표현됩니다.
컨트랙트, 회로, 증명 도구, 인터페이스 코드를 검토하고 독립적으로 호스팅할 수 있습니다.
배포된 풀은 최초 개발자에게 의존하지 않고 자신의 바이트코드에 따라 실행됩니다.
제안과 TORN 투표는 온체인에서 진행되며 노트 보관과 분리됩니다.
아래 내용은 핵심 설계를 설명합니다. 프라이버시는 자동으로 보장되지 않으며 시간, 주소 재사용, 브라우저 상태, RPC 제공자, 적용 법률도 고려해야 합니다.
풀 컨트랙트는 자산과 비밀 값에서 만든 커밋먼트를 받습니다. 비공개 노트는 사용자가 보관하며 출금 증명 생성에 필요합니다. 일반 계정 비밀번호나 복구 데이터베이스는 없습니다.
대기하는 동안 동일 금액 입금이 같은 풀에 추가되어 단순한 시간 상관관계를 줄입니다. 대기만으로 프라이버시가 보장되지는 않습니다.
출금자가 승인된 머클 루트에 포함된 커밋먼트의 비밀을 알고 있고 관련 널리파이어가 아직 사용되지 않았음을 비밀 자체를 공개하지 않고 입증합니다.
릴레이어는 수신자를 대신해 출금 거래를 제출하고 Gas를 지불할 수 있습니다. 증명은 수신자와 수수료를 고정합니다.
상호작용 전에 문서를 읽고, 컨트랙트를 검증하고, 노트를 보호하고, 프라이버시 가정을 이해하세요.