본문으로 건너뛰기
Anon Wallet

영지식 증명

영지식 증명(ZKP)은 Anon의 프라이버시를 뒷받침하는 암호학적 기반입니다. 어떤 내용을 알고 있거나 어떤 명제가 참임을, 그 내용 자체를 공개하지 않고 증명할 수 있습니다.

직관적으로 이해하기

어떤 장소에 입장하려고 18세 이상임을 증명해야 하지만, 정확한 생년월일과 이름이 담긴 신분증은 보여주고 싶지 않다고 가정해 보세요. 영지식 증명은 다른 정보를 공개하지 않고 "18세 이상 확인 완료"라고 표시하는 마법의 도장과 비슷합니다.

Anon에서 증명하는 내용은 다음과 같습니다. "나는 Railgun 풀에서 적어도 X개의 토큰에 해당하는 노트를 소유하고 있으며, 이 수신자에게 유효한 전송을 생성하고 있다." 비공개 전송의 증명은 비공개 노트를 공개하지 않고 지출 규칙을 검증합니다. 쉴드와 언쉴드에서는 여전히 공개 주소와 금액이 드러납니다.

zk-SNARKs

Anon은 간결하고 비대화형인 영지식 지식 논증인 zk-SNARKs를 사용합니다. 주요 특성은 다음과 같습니다.

  • 영지식: 검증자는 명제가 참이라는 사실 외에는 아무것도 알 수 없습니다
  • 간결함: 증명 크기가 수백 바이트로 작고 빠르게 검증할 수 있습니다
  • 비대화형: 증명과 검증이 비동기적으로 이루어져 반복적인 문답이 필요하지 않습니다

Railgun 회로는 BN254 타원 곡선에서 Groth16 증명 시스템을 사용해 구성됩니다.

증명은 로컬에서 생성됩니다

중요한 프라이버시 특성은 증명 생성이 전적으로 사용자의 기기에서 이루어진다는 점입니다. 비공개 증명 입력은 로컬에서 처리됩니다. 생성된 트랜잭션과 필요한 서비스 데이터는 선택한 전송 방식으로 전달됩니다. 로컬에서 증명한다고 해서 모든 요청이나 공개 트랜잭션 필드가 비공개가 되는 것은 아닙니다.

이는 다음을 의미합니다.

  • 증명 서비스에 비공개 지출 입력을 제공할 필요가 없습니다
  • 네트워크 가용성과 네트워크 수준의 프라이버시는 별개의 문제입니다
  • 지갑 소프트웨어와 기기는 여전히 신뢰해야 합니다. 증명은 Railgun 회로를 사용해 로컬에서 생성됩니다

성능

zk-SNARK 증명 생성에는 많은 계산이 필요합니다. 최신 컴퓨터에서 Anon은 트랜잭션 복잡도에 따라 보통 5~20초 안에 증명을 생성합니다. 이 계산은 트랜잭션마다 한 번 필요하며, 온체인 검증은 빠르고 비용이 낮습니다.

더 알아보기