Solidity로 프라이버시 믹서 구축하기: 왜 내 Merkle Proofs가 실패했는가

발행: (2026년 3월 15일 오후 03:17 GMT+9)
2 분 소요
원문: Dev.to

Source: Dev.to

Web3에서 프라이버시는 종종 복잡한 영지식 증명의 “블랙 박스”로 인식됩니다. 하지만 Tornado Cash와 같은 대부분의 프라이버시 프로토콜의 핵심은 훨씬 오래되고 단순한 구조인 Merkle Tree입니다.

최근 연구 기반 ETH Mixer를 구축하면서, 온‑체인 검증과 오프‑체인 증명 생성 사이의 고전적인 동기화 문제에 직면했습니다. 여기서는 Merkle Tree의 안정성에 대해 배운 점과 “Invalid Proof” 함정을 피하는 방법을 공유합니다.

The Architecture

목표는 간단했습니다:

  1. Deposit – 사용자가 1 ETH와 해시(커밋먼트)를 전송합니다.
  2. Mix – 커밋먼트가 Merkle Tree에 추가됩니다.
  3. Withdraw – 사용자가 Merkle Proof를 제공하여 원래 입금을 밝히지 않은 채 1 ETH를 새로운 주소로 인출합니다.

The Pitfall: Sorted Hashes

처음에는 sorted‑hash Merkle Tree를 사용했습니다. 이 방식에서는 노드들을 해시하기 전에 정렬합니다:

// Vulnerable logic for manual proof generation
computedHash = a

Diagram of the Merkle Mixer architecture

Example proof verification

#solidity #blockchain #web3 #security #foundry

0 조회
Back to Blog

관련 글

더 보기 »

트라비고

Gemini와 함께 말하는 속도만큼 빠르게 여행하세요! 라이브 에이전트가 몰입형 스토리텔링 및 3D 내비게이션과 만나는 곳. 이 프로젝트는 Gemini Live Ag...에 진입하기 위해 만들어졌습니다.