비트펑크BITPUNK

유용한 정보 및 툴

거래소 준비금 증명(PoR) 확인하는 법: 내 잔고 검증하는 방법과 한계

4분 · · 조회 0,000

// TL;DR30초 요약

  • 준비금 증명(PoR)은 거래소 지갑의 보유 자산과 고객 계정 잔고를 대조하는 자료이고, 머클 트리로 내 잔고가 집계에 포함됐는지 검증할 수 있습니다.
  • 코인엑스에서는 '나의 심사 복사하기'로 받은 데이터를 merkle_proof_file.json에 저장해 검증 도구로 실행하고, 스냅샷 시점 잔고 수량과 경로 검증 결과를 함께 봅니다.
  • 검증 성공은 내 잔고의 포함 여부만 확인할 뿐 거래소의 다른 빚 · 스냅샷 이후 상태까지 보여 주지 않으니, 거래소 전체가 안전하다고 판단하지 마세요.
목차 3
  1. 준비금 증명에서 보유 자산과 고객 잔고 구분하기
  2. 머클 트리로 내 잔고를 확인하는 순서
  3. 준비금 증명으로 알 수 없는 거래소 위험

거래소 계정에 코인이 보이면, 거래소도 그만큼 보관하고 있다고 생각하기 쉽습니다. 하지만 계정에 표시된 잔고와 거래소 지갑에 들어 있는 자산은 구분해서 봐야 합니다. 준비금 증명(Proof of Reserves, PoR)은 이 둘을 대조하는 데 쓰는 자료입니다.

준비금 증명을 볼 때는 보유 자산만 보고 끝내지 않는 것이 핵심입니다. 고객에게 돌려줘야 할 잔고를 어떻게 집계했는지, 그 집계에 내 잔고가 들어갔는지까지 이어서 봐야 의미가 있습니다.

준비금 증명에서 보유 자산과 고객 잔고 구분하기

거래소가 공개한 지갑의 자산은 ‘얼마를 보유하고 있는가’에 해당합니다. 고객 계정의 잔고는 ‘고객에게 얼마를 돌려줘야 하는가’에 해당합니다. 지갑에 코인이 많이 있다는 사실만으로 고객 잔고를 충분히 뒷받침한다고 판단할 수는 없습니다.

머클 트리(Merkle Tree)는 고객 잔고를 검증할 때 쓰는 데이터 구조입니다. 잔고 데이터를 해시(Hash)라는 일정한 길이의 값으로 바꾸고, 이 값들을 차례로 묶어 맨 위의 루트 해시(Root Hash)를 만듭니다. 내 데이터에서 출발해 계산한 결과가 공개된 루트 해시와 같으면, 그 데이터가 해당 집계에 포함됐는지 검증할 수 있습니다.출처 1CoinEx, 나의 자산이 머클트리에 있는지 확인하는 방법

여기서 내 잔고가 집계에 포함됐다는 확인과 거래소가 실제 자산을 보유한다는 확인은 서로 다릅니다. 머클 트리 검증은 앞의 질문에 답합니다. 보유 자산과 고객 잔고를 대조하려면 자산 쪽 자료도 별도로 필요합니다.

머클 트리로 내 잔고를 확인하는 순서

먼저 비교할 잔고의 시점을 맞춰야 합니다. 스냅샷(Snapshot)은 특정 시점의 잔고를 기록한 데이터이므로, 지금 계정에 보이는 수량과 무조건 같아야 하는 것은 아닙니다. 가령 기록 시점에 1 BTC가 있었고 그 뒤 0.2 BTC를 입금했다고 가정하면, 당시 검증 자료에서 비교할 수량은 1 BTC입니다.

아래는 코인엑스(CoinEx)의 공식 절차를 따른 예시입니다. 다른 거래소에서 같은 파일명이나 명령어를 그대로 쓰는 방식은 아니며, 해당 거래소가 제공하는 데이터와 검증 도구를 함께 사용합니다.출처 1CoinEx, 나의 자산이 머클트리에 있는지 확인하는 방법

  1. 준비금 증명에서 내 검증 데이터를 받습니다. 코인엑스 계정에 로그인한 뒤 ‘준비금 증명’에서 ‘나의 심사 복사하기’를 누릅니다. 데이터에 담긴 코인과 수량은 해당 스냅샷 시점의 내 잔고와 대조합니다.
  1. 데이터를 파일로 저장합니다. 복사한 내용을 merkle_proof_file.json이라는 텍스트 파일에 붙여 넣습니다. 공식 도움말에서 연결한 검증 도구를 내려받아 압축을 풀고, 실행 파일과 데이터 파일을 같은 폴더에 둡니다.
  1. 터미널에서 검증 도구를 실행합니다. 두 파일이 있는 폴더로 이동한 뒤, 맥·리눅스에서는 ./proof-of-reserves -f merkle_proof_file.json을 입력합니다. 윈도에서는 ./proof-of-reserves.exe -f merkle_proof_file.json을 입력합니다.
  1. 검증 결과를 읽습니다. Merkle tree path validation passed는 경로 검증 성공, Merkle tree path validation failed는 실패를 뜻합니다. 성공은 제출한 내 데이터에서 계산한 결과가 검증 데이터의 루트와 맞는다는 의미입니다.

검증 성공 표시만 읽고 넘어가면 잔고 수량이 실제와 다른 경우를 놓칠 수 있습니다. 비교할 대상은 당시 내 잔고와 검증 데이터의 수량, 그리고 그 데이터의 머클 경로 검증 결과 두 가지입니다.

준비금 증명으로 알 수 없는 거래소 위험

머클 검증에 성공했다고 거래소의 재무 상태까지 검증한 것은 아닙니다. 계산에 들어가는 것은 잔고와 해시, 경로 데이터이므로, 이 계산만으로 거래소의 다른 빚이나 공개 자료 밖의 약정을 알아낼 수는 없습니다. 내 잔고의 포함 여부를 확인하는 절차를 회사 전체의 안전성 판정으로 넓혀 읽지 않아야 합니다.출처 1CoinEx, 나의 자산이 머클트리에 있는지 확인하는 방법

검증 시점도 한계입니다. 스냅샷에 담긴 잔고가 맞는다는 결과는 그 이후에도 같은 상태가 유지된다는 뜻이 아닙니다. 다른 고객의 잔고가 빠짐없이 들어갔는지 역시 내 계정의 포함 여부만으로 증명되지는 않습니다.

검증 실패도 곧바로 자산 부족을 뜻하지 않습니다. 해당 절차에서 실패는 계산 결과가 맞지 않았다는 뜻이므로, 사용한 파일과 검증 도구, 대상 스냅샷이 서로 맞는지부터 살펴봐야 합니다. 오류가 해소되지 않았다면 ‘검증을 완료하지 못했다’고 판단할 수 있으며, 그 결과만으로 파산 여부까지 단정할 근거는 없습니다.

준비금 증명은 스냅샷 시점과 대상 자산을 맞추고, 내 잔고 수량을 대조한 뒤 머클 검증을 하는 순서로 읽으면 됩니다. 그 결과를 보유 자산 자료와 함께 보되, ‘내 잔고가 포함됐다’는 확인만으로 ‘거래소 전체가 안전하다’고 판단할 수는 없습니다.

유용한 정보 및 툴에서 많이 읽은 글

전체 보기
유용한 정보 및 툴워뇨띠 근황 및 매매법 AMA 총 정리 (6백만원 → 3,000억)30분 · · 조회 5.4만유용한 정보 및 툴입문 12강비트코인 탐욕 지수 확인 사이트 | 비트코인 탐욕 & 공포 지수 설명3분 · · 조회 2.4만유용한 정보 및 툴똑똑한 연금 투자: ISA 계좌로 세금 절약하고 연금 계좌로 이전하는 방법 📈6분 · · 조회 1.1만