읽는 데 7분
Merkle 루트를 활용한 준비금 증명
Label 309 타임스탬프로 고정한 Merkle 루트를 사용하면, 모든 계정을 공개하지 않고도 준비금·부채·증거의 스냅샷에 커밋하고 개별 고객에게 포함 증명을 제시할 수 있습니다.

Merkle 루트를 사용하면 준비금 증명 스냅샷을 훨씬 쉽게 검증할 수 있습니다. 다만 루트만으로 지급 능력이 증명되지는 않습니다. 루트가 증명하는 것은 특정 시점에 특정 항목 집합이 커밋되었다는 사실입니다. 그 항목들이 합산되어 지급 능력이 있는 사업체를 이루는지는 별개의 문제입니다.
방식은 다음과 같습니다. 거래소, 수탁 기관, 핀테크, 마켓플레이스, 스테이블코인 발행사, 또는 내부 자금 관리 팀이 준비금이나 부채 스냅샷에 대한 Merkle 트리를 구성한 뒤, 32바이트짜리 단일 루트를 Cardano에서 Label 309 레코드로 고정합니다. 각 고객, 지갑, 또는 잔액 항목이 하나의 리프가 됩니다. 이후 어떤 참여자든 간결한 포함 증명을 받아 자신의 항목이 커밋된 스냅샷에 들어 있었음을 확인할 수 있습니다. 전체 데이터셋을 한 번도 공개하지 않고도 가능합니다.
타임스탬프는 정확히 한 가지 일을 합니다. 그 커밋이 언제 존재했는지를, 신뢰해야 할 발행자 서버 없이 공개 체인 위에 고정하는 것입니다. 스냅샷 자체의 품질은 여전히 회계, 범위, 부채 포괄 여부, 수탁 통제, 독립적인 검토에 달려 있습니다.
준비금 증명 스냅샷이란 무엇입니까?
준비금 증명 스냅샷은 특정 시점의 자산에 관한 증거입니다.
크립토 기반 기업에서는 대개 특정 온체인 지갑이 특정 블록 높이나 시점에 특정 자산을 보유했음을 증명하는 것을 뜻합니다. 더 견고한 프로세스에서는 이 자산을 고객 부채, 내부 원장, 수탁 통제, 독립적인 검토와도 연결합니다.
스냅샷에는 다음이 포함될 수 있습니다.
- 준비금 지갑 잔액;
- 자산 식별자;
- 블록 높이;
- 부채 잔액;
- 고객 계정 커밋먼트;
- 제외 항목과 조정 항목;
- 감사 보고서;
- 통제 증거;
- 대사 파일;
- 경영진 확인서.
스냅샷은 살아 움직이는 대차대조표가 아닙니다. 특정 시점에 대한 커밋먼트입니다.
Merkle 루트는 왜 사용합니까?
전체 스냅샷은 대개 너무 크거나 너무 민감해서 공개하기 어렵기 때문입니다.
Merkle 트리를 사용하면 기업이 32바이트짜리 루트 하나로 수많은 항목에 커밋할 수 있습니다. 각 고객, 계정, 지갑, 또는 잔액 항목이 하나의 리프가 되고, 리프들은 함께 해시되어 트리를 이루며, 체인에는 루트만 올라갑니다. 루트는 자신이 커밋한 리프에 대해 아무것도 드러내지 않지만, 그 모든 리프에 묶여 있습니다. 리프 하나를, 또는 리프의 개수를 바꾸면 루트가 더 이상 일치하지 않습니다. 이후 참여자는 포함 증명을 받습니다. 이는 log n 규모의 해시로 이루어진 간결한 형제 경로로, 자신의 항목이 커밋된 스냅샷의 일부였음을 보여 줍니다.
바로 이 점이 선택적 공개를 가능하게 합니다.
- 개별 고객은 자신의 포함 여부만 검증할 수 있습니다;
- 감사인에게는 전체 리프 목록과 계정 매핑을 제공할 수 있습니다;
- 대중에게는 타임스탬프가 찍힌 루트만 보입니다;
- 민감한 계정 정보는 결코 노출할 필요가 없습니다.
이는 수천 개의 파일에 레코드 하나를 고정할 때와 동일한 배칭 메커니즘입니다. 루트는 작지만, 실제로 중요한 것은 그 밑에 깔린 프로세스입니다.
Label 309는 무엇을 더해 줍니까?
어떤 단일 주체도 통제하지 못하는, 독립적인 공개 타임스탬프를 더해 줍니다.
준비금 증명 보고서는 흔히 웹사이트나 PDF에 담기고, Merkle 루트는 블로그 글에 실립니다. 그러나 웹사이트는 바뀔 수 있습니다. PDF는 교체될 수 있습니다. 보고서는 조용히 갱신될 수 있고, 옛 루트도 그와 함께 사라질 수 있습니다.
스냅샷 루트를 Label 309 레코드로 게시하면, 그 대신 커밋먼트에 공개된 Cardano 시간 앵커가 부여됩니다. 누구든 나중에 트랜잭션 메타데이터와 공개 Cardano 탐색기만으로 동일한 루트가 그 트랜잭션의 블록 타임 시점까지 존재했음을 확인할 수 있습니다. 발행자 서버도, CardanoWall의 도메인이나 인프라에 대한 신뢰도 필요하지 않습니다.
레코드에는 다음도 포함될 수 있습니다.
- 서명된 진술의 해시;
- 자산 스냅샷 해시;
- 부채 스냅샷 루트;
- 콘텐츠 주소 지정 보고서 URI;
- 선택된 수신자를 위해 봉인된 감사 작업 조서;
- 정정 보고서를 위한 대체 포인터.
스냅샷에는 무엇을 담아야 합니까?
트리를 구성하기 전에 무엇을 주장하는지 먼저 정의하십시오.
스냅샷은 무엇을 증명하는지 분명히 밝혀야 합니다. 준비금만 담은 스냅샷은 준비금과 부채를 함께 담은 스냅샷과 다릅니다. 지갑만 담은 스냅샷은 감사받은 재무제표와 다릅니다.
유용한 필드로는 다음이 있습니다.
- 스냅샷 ID;
- 스냅샷 시각;
- 체인과 자산 ID;
- 블록 높이 또는 원장 참조;
- 지갑 주소 또는 내부 계정 ID;
- 잔액;
- 부채 항목 해시;
- 고객 식별자 해시 또는 블라인드 처리된 ID;
- 포함 리프 해시;
- 감사인 또는 검토자 참조;
- 보고서 해시;
- 범위 진술;
- 제외 항목;
- Merkle 리프 인덱스.
스키마는 결정론적이어야 합니다. 리프 구성이 모호하면 검증이 취약해집니다.
고객은 포함 여부를 어떻게 검증할 수 있습니까?
기업은 각 고객에게 증명 패키지를 제공합니다.
그 패키지에는 다음이 포함될 수 있습니다.
- 고객 본인의 잔액 항목;
- 솔트 또는 블라인딩 자료(사용한 경우);
- Merkle 경로;
- 루트;
- Label 309 트랜잭션 참조;
- 보고서 해시;
- 검증 안내.
고객은 자신의 항목이 리프로 해시되는지, Merkle 경로가 게시된 루트로 접혀 올라가는지, 그리고 그 루트가 체인의 Label 309 레코드에 담긴 루트와 일치하는지를 검증합니다. 이 가운데 어느 것도 기업의 서버가 온라인이거나 정직할 것을 요구하지 않습니다. cardanowall 명령줄 도구를 포함한 오픈소스 Label 309 도구가 레코드를 검증하고 포함 증명을 독립적으로 확인할 수 있습니다.
이는 해당 스냅샷에 포함되었음을 증명합니다. 다른 모든 계정이 올바르게 처리되었음을 증명하지는 않습니다. 바로 그렇기 때문에 아래의 감사인 관점이 중요합니다.
감사인은 이것을 어떻게 활용할 수 있습니까?
감사인은 전체 증거 집합을 들여다볼 수 있습니다.
대중에게는 루트와 보고서만 보일 수 있습니다. 감사인이나 규제 당국에는 전체 명세, 리프 목록, 계정 매핑, 지갑 증거, 대사 파일, 봉인된 작업 조서를 제공할 수 있습니다.
Label 309는 다음을 고정함으로써 도움을 줄 수 있습니다.
- 공개 루트;
- 전체 비공개 명세 해시;
- 지갑 잔액 증거;
- 부채 파일;
- 대사 내보내기;
- 감사 보고서 초안;
- 최종 서명 보고서.
이렇게 하면 사후에 감사 추적을 다시 쓰기가 더 어려워집니다.
정정은 어떻게 처리합니까?
정정은 감춰서는 안 되며 드러나야 합니다.
기업이 스냅샷에서 오류를 발견하면, 옛 보고서를 조용히 교체하기보다 정정 레코드를 게시해야 합니다. Label 309에는 이를 위한 내장 메커니즘이 있습니다. supersedes 포인터가 이전 레코드의 트랜잭션 해시를 담아, 정정본에서 그것이 대체하는 대상으로 이어지는 추가 전용 링크를 만듭니다.
이 링크에 관해 짚어 둘 점이 두 가지 있습니다. 첫째, 대체(supersedence)는 이전 레코드를 제거하거나 무효화하지 않습니다. 체인은 추가 전용이므로 원래 루트는 체인에 그대로 남아 영원히 독립적으로 검증할 수 있습니다. 새 레코드는 그 옆에 자리하며 이전 레코드를 가리킵니다. 읽는 쪽은 둘 다 볼 수 있습니다. 둘째, 이 링크를 신뢰하려면 두 레코드가 같은 키로 서명되어야 합니다. 누구나 자신이 사용자의 레코드를 대체한다고 주장하는 레코드를 게시할 수 있으므로, 검증기와 도구는 대체하는 레코드가 원본에도 존재하는 키로 서명된 경우에만 대체 링크를 인정하도록 되어 있습니다. 정정을 발행할 계획이라면 스냅샷에 서명하십시오.
이는 첫 루트가 애초에 존재하지 않았던 척하는 것보다 훨씬 낫습니다.
이것은 무엇을 증명하지 않습니까?
루트만으로 지급 능력을 증명하지는 않습니다.
모든 부채가 포함되었음을 증명하지는 않습니다.
자산에 담보 등의 부담이 없음을 증명하지는 않습니다.
키가 안전하게 통제되고 있음을 증명하지는 않습니다.
스냅샷을 위해 자산이 일시적으로 차입된 것이 아님을 증명하지는 않습니다.
감사, 규제 당국 검토, 회계 통제, 고객 부채 대사를 대체하지는 않습니다.
이것이 실제로 증명하는 것은 좁지만 진정으로 유용합니다. 특정 커밋먼트가 공개된 시점에 존재했다는 사실, 그리고 개별 항목이 그 안에 들어 있음을 보일 수 있다는 사실입니다. 모든 존재 증명과 마찬가지로, 이는 진실이나 권리의 증명이 아니라 시점과 무결성의 증명입니다.
크립토 거래소 밖에서는 어디에 유용합니까?
동일한 방식은 스냅샷에 비공개 항목이 많은 곳이라면 어디서나 통합니다.
예를 들면 다음과 같습니다.
- 스테이블코인 준비금;
- 토큰화된 자산 보고서;
- 마켓플레이스 판매자 잔액;
- 핀테크 수탁 잔액;
- 내부 자금 관리 스냅샷;
- 임직원 주식 보상 원장;
- 적립 포인트 부채;
- 탄소 배출권 재고;
- 보험금 청구 준비금;
- 고객 예치금 원장.
공통된 발상은 단순합니다. 많은 항목에 커밋하고, 선택적으로 공개하며, 타임스탬프를 보존한다는 것입니다.
요약하면
Merkle 루트는 준비금 증명 스냅샷을 확장 가능하게 만듭니다. Label 309는 그 루트에 타임스탬프를 부여하고 공개 체인에 대해 독립적으로 검증할 수 있게 합니다.
스냅샷에 커밋하려면 루트를 사용하십시오. 고객과 감사인을 위해서는 포함 증명을 사용하십시오. 민감한 증거에는 봉인된 레코드를 사용하십시오. 정정에는 서명과 함께 대체를 사용하십시오.
그런 다음 한계에 대해서는 정직하십시오. 타임스탬프가 찍힌 Merkle 루트는 지급 능력이 아닙니다. 그것은 더 넓은 증명 프로세스를 이루는, 강력하고 변조가 드러나는 한 조각일 뿐입니다. Label 309 자체는 개방적이고 벤더 중립적인 표준으로, Cardano CIP 프로세스에 제출되어 현재 CIP 편집자들이 Metadata 범주 제안으로 검토 중입니다. 위에서 설명한 배칭, 해싱, 대체 메커니즘은 어느 한 제품이 아니라 이 표준에 정의되어 있습니다.
더 읽을거리
- Label 309 표준과 명세 — 레코드, Merkle 커밋먼트, 서명, 대체에 대한 와이어 포맷입니다.
- 오픈소스 코드, SDK,
cardanowallCLI — 어떤 단일 서버도 신뢰하지 않고 레코드와 포함 증명을 검증합니다. - Label 309 CIP 제안 — Cardano CIP 프로세스에서 검토가 진행 중인 제출 건입니다.
- 수천 개의 파일에 레코드 하나 — 배칭 메커니즘을 더 자세히 다룹니다.
- 벤더 신뢰 없는 컴플라이언스 로그 — 동일한 커밋·고정 방식을 감사 및 이벤트 로그에 적용합니다.
- 증명이 증명하는 것과 증명하지 않는 것.