본문으로 건너뛰기

ZCash Names란?

요약

ZCash Names는 체인 위에서 동작하며 비공개 메모(memo)를 기반으로 하는 ZCash 이름 프로토콜입니다. richard.zcash 같은 사람이 읽기 쉬운 이름을 등록하고 이를 ZCash 주소에 연결할 수 있게 해줍니다. 모든 등록의 정확성은 영지식 증명(Zero-Knowledge Proof)으로 보장됩니다.

문제

ZCash 주소는 너무 깁니다. 이렇게 생겼습니다:

u1zk30kje24v9n08lxq6ja9lfd8q3q54g7uawra7hwa05k4r56nkzzu62cy2apdungu4ehws95vjflw2lakt62j5wynwcje6t6yjcg9v5sp7r7048lgsprukv8r70pmpsk4tsqrqy58aglywh23grvs7kq75zk4c3zy57267u34vecm35yuexkrsmzphcu2dzph4r8rk0h0rlh5su7yhs

해결책

ZCash 트랜잭션 한 건만 보내면 이름을 등록할 수 있습니다. 인덱서가 블록체인을 관찰하며 각 등록을 검증하고 이름 대장을 구축합니다. 그다음 영지식 증명 생성기가 모든 등록이 올바르다는 수학적 증명을 만들어 냅니다.

누구나 richard.zcash를 해석해 Richard의 주소를 얻을 수 있습니다. 누구나 그 증명을 검증할 수 있습니다. 신뢰는 필요 없습니다.

이름 규칙

규칙
허용 문자a-z, 0-9, 하이픈
길이1 - 64자
대소문자구분하지 않음(소문자로 저장)
하이픈맨 앞, 맨 뒤, 연속 사용 불가
최상위 영역.zcash, .zec, .private, .secure, .safe

등록 요금

이름 등록 참조

이름 길이요금
1자5.5 ZEC
2자4 ZEC
3자2.45 ZEC
4자1.2 ZEC
5자0.65 ZEC
6자0.35 ZEC
7자 이상0.15 ZEC

변경 요금

이름 관리, 마켓플레이스 참조

이름 길이요금
1자0.006 ZEC
2자0.004 ZEC
3자0.002 ZEC
4자0.0011 ZEC
5자0.0008 ZEC
6자0.0005 ZEC
7자 이상0.00025 ZEC

레지스트라

레지스트라의 프로토콜 주소, 열람 키, 그리고 앵커 컨트랙트는 셋 모두 공개되어 있습니다. 이는 의도된 것입니다. 열람 키는 누구나 허가를 구하지 않고 서비스를 감사할 수 있게 해주고, 컨트랙트는 자신이 계산한 결과를 대조하는 기준이 됩니다.

프로토콜 주소 — 모든 명령은 이곳으로 보냅니다:

u1nlded5cat3n9r4m0tpxr5a7sy3emccvaun7n4x9w848qa7ncl4eg5v2zyat4kevaa4fwfq0unwj3vnczfax3s9rutma43dckgqss8qrg

열람 키 — 그 주소가 지금까지 받은 모든 것을 복호화합니다:

uview1uxy3j27qhwkh8peq8k6g0vldalgqm4lyfxwuc2r95jelk458gmx6elc4e92t9g75x655vd7nxrtv3gllvajt3n8v0x36224ma3hrtvvtps7ejxysx8puelggt86vfuslxvdvjq7a778chqtcg626lcsr0ht26v3wgyfu5u04sn2qsle9k7faakg479tqf

앵커 컨트랙트 — 모든 상태 루트가 게시되는 곳, BNB Smart Chain(chain ID 56):

0x6c01003716b0a74933325be1baf34fe34cf3e0d3

기록을 재생하려면 알려진 지점에서 출발해야 하므로, 체인의 양 끝도 함께 고정되어 있습니다. 독립 인덱서가 출발점으로 삼는 체크포인트는 다음과 같습니다:

체크포인트
ZCash 시작 블록3438108 — 프로토콜 지갑의 생성 시점; 그 이전에는 어떤 서비스 트랜잭션도 존재할 수 없습니다
초기 상태 루트0x0000…0000 — 32개의 0 바이트, 빈 대장의 루트
컨트랙트 배포 블록114326974
배포 트랜잭션0x9a4b9a22…e6a5bd6c

초기 루트가 모두 0인 이유는 압축 희소 머클 트리에서 빈 서브트리가 어느 높이에서든 32개의 0 바이트이기 때문입니다. 즉 빈 대장은 0으로 해시되며, 컨트랙트는 바로 이 값으로 배포되었습니다. 블록 3438108부터 재생하는 사람은 누구든 별도의 안내 없이도 동일한 초기 상태에 도달합니다.

이 값들이 있으면 시작 블록부터 ZCash를 스캔하고, 서비스가 지금까지 받은 모든 명령과 결제를 복호화하고, 오픈소스 인덱서로 재생하고, 상태 루트를 직접 계산한 뒤 isRootValid(bytes32)로 컨트랙트와 대조할 수 있습니다 — 증명 검증 참조. 레지스트라가 어떤 작업을 검열하거나 순서를 바꾸거나 지어냈다면, 당신이 계산한 루트는 체인에 기록된 것과 달라집니다.

인덱서에는 자체 해석 API가 포함되어 있어, 공개 엔드포인트에 — 저희 것을 포함해 — 의존할 필요가 전혀 없습니다.

경고

이 값들에 의존하기 전에 반드시 대조하세요

주소, 열람 키, 컨트랙트 주소를 GitHub 저장소 및 애플리케이션 자체와 대조해 보세요. 컨트랙트와 그 배포 트랜잭션은 BscScan에서 직접 확인할 수도 있습니다. 문서 사이트야말로 공격자가 가장 바꾸고 싶어 하는 대상입니다.

링크

리소스주소
zcashnames.co/app
Tor의 앱zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion/app
Tor의 인덱서indexer.zns42gxtnultmfkuxu3ypawozpn4asbkqpqzlmlrp72u3nbggvn2c2ad.onion
GitHubgithub.com/ZCashNames
API페이지로 이동
문서docs.zcashnames.co