웜홀, 흔적 없이 ETH를 옮기는 소각과 재발행

Strawmap 그 이후 (장기) · wormholes

ETH를 아무도 쓸 수 없는 주소로 보내 태운 뒤, 그 비밀을 안다는 증명만 내고 새 주소에서 같은 양을 다시 발행합니다. 보낸 쪽과 받은 쪽을 잇는 흔적이 체인에 남지 않습니다.

왜 필요한가

이더리움의 거래는 누구나 볼 수 있습니다. 보낸 주소와 받은 주소가 그대로 기록되므로, 한 번 신원이 드러난 주소는 그 뒤의 모든 자금 흐름이 따라붙습니다. 토네이도캐시 같은 믹서(mixer)는 이 연결을 끊어 주지만 믹서 계약과 거래한 사실 자체가 체인에 남습니다. 보낸 사람도 받은 사람도 표시될 수 있고 정부가 사용을 막기도 쉽습니다. 웜홀은 스마트 계약을 전혀 거치지 않고 보통 주소 사이의 송금만 씁니다. 겉으로는 친구에게 ETH를 보낸 것과 구별되지 않아 프라이버시 기능을 썼다는 사실을 누구도 증명할 수 없습니다. 보내는 거래가 한 번도 없는 모든 계정이 기본으로 익명 집합에 들어가므로 숨을 곳도 넓습니다. 이더리움 자체에 ETH를 다시 발행하는 기능을 넣어야 하는 큰 변경입니다. EIP-7503 문서는 현재 논의가 멈춘 Stagnant 상태로 표시돼 있고 Strawmap에서도 가장 먼 장기 칸에 놓여 있습니다.

어떻게 동작하나

  1. 비밀값으로 소각 주소 만들기 나만 아는 비밀값을 정하고 그 해시로 주소를 만듭니다. 이 주소는 짝이 되는 개인키가 없어 누구도 돈을 꺼낼 수 없습니다. 여기로 ETH를 보내면 겉으로는 평범한 송금과 같습니다.
  2. 영지식 증명 만들기 나중에 새 주소에서 영지식 증명(zero-knowledge proof)을 만듭니다. 어느 소각 주소인지는 숨기고 체인에 기록된 소각 송금 중 하나의 비밀값을 내가 안다는 사실만 증명합니다.
  3. 새 거래 유형으로 재발행 증명을 담은 새 거래 유형을 보내면 프로토콜이 같은 양의 ETH를 새 주소에 만들어 줍니다. 비밀마다 널리파이어(nullifier)가 기록돼 두 번 꺼낼 수 없고 일부만 꺼내고 나머지는 잔돈으로 남길 수 있습니다. 한 번에 최대 32 ETH까지입니다.

관련 EIP

← 로드맵