본문으로 건너뛰기

동작 방식

PIVX 이름 서비스(PiNS)는 사람이 읽기 쉬운 도메인 이름(myname.pivx 등)을 등록하고, 해석되는 주소를 변경하고, 다른 소유자에게 이전하고, 마켓플레이스에 등록할 수 있게 하며, 이를 PIVX 주소에 안전하게 연결합니다.

PIVX는 범용 스마트 컨트랙트가 없는 UTXO 기반 블록체인이므로, 도메인 대장 같은 복잡한 데이터베이스 시스템을 스스로 운영할 수 없습니다. 이를 해결하기 위해 PiNS는 롤업 방식 아키텍처를 사용합니다. 연산은 오프체인에서 실행되고, 데이터는 PIVX에 저장되며, 보안은 BNB Smart Chain에 앵커링됩니다.

시스템은 서로 연결된 다섯 가지 구성 요소로 이루어져 있습니다:

1. PIVX 블록체인: 데이터 가용성 계층

사용자의 모든 행위 — 이름 등록(REG), 주소 변경(UPD), 소유권 이전(CHG), 마켓플레이스 등록(LST), 등록 해제(ULT), 구매(BUY) — 는 일반적인 PIVX 트랜잭션으로 시작합니다. 트랜잭션은 메모 필드에 구조화된 텍스트 명령을 담습니다(예: PiNS:1:REG:domain:address:pubkey:nonce:signature).

  • 진실의 원천은 PIVX 체인입니다. 모든 도메인 명령을 영구히 보관합니다. 기록된 PIVX 트랜잭션 없이는 어떤 상태 변화도 일어날 수 없습니다.

2. 레지스트라 노드: 시퀀서

자동화된 레지스트라 노드가 PIVX 블록체인을 스캔합니다. 도메인 명령을 읽고, 사용자가 올바른 수수료를 지불했는지 확인한 뒤 연산을 큐에 넣습니다. 레지스트라는 10분마다 이 연산들을 하나의 배치(batch)로 묶습니다.

3. SP1 zkVM: 영지식 엔진(Succinct 제공)

트랜잭션 배치는 **SP1 영지식 가상 머신(zkVM)**으로 전달됩니다. zkVM은 엄격한 프로토콜 심판 역할을 하는 전용 Rust 게스트 프로그램을 실행합니다. 증명 생성기는 배치의 각 트랜잭션을 검사합니다:

  • 서명이 유효하고, 실제 도메인 소유자가 서명한 것인가?
  • 재생 공격을 막기 위해 nonce가 엄격히 증가하는가?
  • 도메인 접두사 형식이 올바른가?
  • BUY 트랜잭션이 LST 트랜잭션에 명시된 가격을 정확히 지불하는가?
  • 수학적 머클 증명에 따라 old_rootnew_root로 올바르게 전이하는가?

모든 규칙이 충족되면 zkVM은 (Groth16을 사용해) ZK-SNARK 암호학적 증명을 생성합니다. 이 증명은 다음을 수학적으로 선언하는 아주 작은 증서입니다: 「상태 루트 A에서 출발해 이 유효한 트랜잭션 배치를 적용하면 새 상태 루트는 B이다.」

이 게스트 프로그램의 컴파일된 각 버전은 **검증 키(vkey)**라 불리는 고유한 암호학적 식별자를 만들어 냅니다. vkey는 컴파일된 게스트 프로그램 구조 자체의 32바이트 해시입니다. 검증 코드를 단 한 줄만 바꿔도 프로그램은 완전히 다른 vkey로 컴파일됩니다.

4. BNB Smart Chain의 컨트랙트: 앵커

생성된 ZK 증명과 그 공개 입력값은 BNB Smart Chain의 PiNSAnchor 스마트 컨트랙트로 전송됩니다. 컨트랙트는 정산 게이트웨이 역할을 합니다.

  • 암호학적 결속: 스마트 컨트랙트 내부에는 programVkey(게스트 프로그램의 예상 32바이트 해시)가 온체인에 저장되어 있습니다. 증명이 제출되면 컨트랙트는 이를 programVkey와 함께 Succinct의 SP1 검증 게이트웨이로 전달합니다.
  • 열쇠-자물쇠 검증: 검증 게이트웨이는 증명이 등록된 programVkey와 일치하는 바로 그 게스트 프로그램으로 생성된 경우에만 승인합니다.
  • 증명이 유효하고 등록된 programVkey에 대해 검증되면, 컨트랙트는 공식적이고 전역적으로 인정되는 상태 루트를 B로 갱신하고 이력에 저장합니다.
  • 규칙이 단 하나라도 위반되었거나 증명이 수정된 게스트 프로그램으로 생성되었다면(그 경우 다른 vkey가 나옵니다), 컨트랙트는 트랜잭션을 거부해 승인되지 않은 상태 전이를 막습니다.

왜 BNB Smart Chain인가

앵커 체인의 유일한 임무는 루트를 저장하고 증명을 검증하는 것이므로, 중요한 것은 체크포인트가 얼마나 빨리 최종 확정되는지, 그리고 그 상태가 유지되리라 얼마나 확신할 수 있는지뿐입니다.

  • 약 2초의 블록 시간 덕분에 배치는 증명되자마자 거의 곧바로 앵커링되고, 인덱서들도 새 체크포인트에 빠르게 수렴합니다.
  • 실무상 깊은 재구성이 없어서, 인덱서가 동기화해 둔 체크포인트가 발밑에서 빠져나가지 않습니다. 깊은 재구성이 일어나는 앵커 체인이라면 인덱서들이 이미 확정으로 취급한 상태를 되돌려야 했을 것입니다.
  • 증명 검증은 배치 크기와 무관하게 온체인에서 고정적이고 저렴한 비용입니다 — Groth16 검증 한 번이 배치의 모든 연산을 포괄합니다.

5. 분산 인덱서: 리졸버

누구나 독립적인 인덱서 노드를 운영할 수 있습니다. 인덱서는 도메인 트랜잭션을 찾아 PIVX 블록체인을 스캔하고, 검증된 루트 체크포인트를 찾아 BNB Smart Chain 컨트랙트를 스캔합니다. 트랜잭션을 로컬에 적용하고 자체 머클 트리를 계산한 뒤, 자신의 로컬 루트가 온체인 체크포인트와 일치하는지 확인합니다.

  • 이로써 모든 인덱서는 어디서 실행되든 항상 도메인을 정확히 같은 대상 주소로 해석하게 됩니다(분산된 각 지점에서 단일하고 통일된 상태를 유지).