보유고 증명(Proof-of-reserve) 표준화를 위하여
Blockstream Research

보유고 증명(Proof-of-reserve) 표준화를 위하여

Steven Roose

최근 비트코인 거래소는 고객의 자산을 정상적 및 안전하게 관리하고 있는지 증명하도록 고객 및 규제측으로부터 지속적으로 압력을 받고 있습니다. 자주 발생하는 해킹사건들로 인해(그 대부분이 상당시간이 지난 후에 확인되기도 합니다) 비트코인을 실제로 보유하고 있다고 증명(보유고증명, Proof-of-reserve)하는 것은 고객의 신뢰를 확보하기 위해 선택이 아닌 필수 과제가 되었습니다.

이러한 상황 속에서, 일부 거래소는 자사 솔루션을 도입하여 제 3자를 통해 증명하고 있는데, 모든 솔루션이 제 각각 다르기 때문에 각 거래소의 증명방법을 이해하고 검증하는 것이 어려우며, 또 검증하기에는 일반적으로 매우 높은 수준의 전문성이 필요합니다.

Blockstream에서는 대부분의 거래소와 호환성을 가지고 산업전체가 사용할 수 있는 보유고증명의 기준이 되는 베스트 프랙티스 솔루션 개발에 박차를 가하고 있습니다. 이미 비트코인 메일 리스트에는 BIP가 투고되었으며, 금일 오픈소스로서 개발을 전환하여 피드백을 받고 있습니다.

프로젝트의 시작

본래 본 프로젝트는 Liquid의 솔루션 중 하나로써, 제 3자의 감사역에게 Liquid비트코인(L-BTC)의 보유고 증명을 위해 사용할 수 있도록 개발이 시작되었습니다. 하지만 연구를 하는 과정에서 일반적으로 거래소의 비트코인의 보유고를 증명하는 방법에 개선의 여지가 있었고, 우리 솔루션이 Liquid 네트워트 외에서도 활용될 수 있다고 생각하였습니다.

지금까지 방법의 문제점

비트코인 보유고증명을 위한 표준방법론의 부재로 인해 발생하는 문제점:

  1. 낮은 접근성: 앞서 언급한 바와 같이, 각 거래소가 DIY형식으로 자체적으로 개발한 솔루션을 도입할 경우 사용자는 검증이 매우 어렵습니다. 결국, 제 3자를 신뢰할 수 밖에 없게 되며 더욱 낮은 수준의 검증으로 이어집니다.
  2. **보안 리스크: **거래소의 보유고증명은 필연적으로 자산을 관리하는 지갑의 비밀키의 소유권을 어떠한 방법으로든 겉으로 보여줄 필요가 있습니다. 일반적으로는 새로운 주소로 송금을 합니다만, 이 행위 자체가 공격 당하기 쉬운 큰 취약점이 될 수 있습니다.

보유고증명(Proof-of-reserve)의 구조

Blockstream의 보유고증명 툴은 새롭고 ‘멋진’ 솔루션을 사용하는 것이 아니라, 산업 내에서 사용되어 왔으며 여러번 시험대에 오른 방법을 사용합니다.

간단하게 설명드리자면, 거래소가 실제로 트랜잭션을 생성하거나 직접 송금하는 리스크를 완전히 배제하면서 증명을 할 수 있습니다.

본 툴을 통해 거래소는 보유하고 있는 비트코인의 모든 UTXO와 무효한 인풋 하나를 묶어 하나의 트랜잭션을 생성합니다. 무효한 인풋을 하나 포함하는 것 만으로 해당 트랜잭션은 네트워크에서 거절당합니다. 다만, 트랜잭션이 생성되는 구성을 보고 해당 트랜잭션에 포함된 유효한 비트코인 UTXO를 증명할 수 있게 됩니다.

거절된 트랜잭션은 보유고 검증을 위해 제 3자와 공유할 수 있습니다. 데이터를 보유고증명 클라이언트에 불러들인 후, 거래소가 소유한 주소를 확인하여 자산의 상황을 파악할 수 있습니다. 본 솔루션은 CLI어플리케이션을 사용할 수만 있다면, 손 쉽게 누구나 사용할 수 있습니다.

최신기술의 활용

보유고증명은 Rust 언어로 개발되어 현재 비트코인 코어 지갑과 Trezor 를 지원합니다. 앞으로도 많은 어플리케이션이나 서비스 등에 통합될 예정(Ledger 도 지원 예정)입니다. Blockstream 리서치팀이 개발한 일부서명 비트코인 트랜잭션(Partially Signed Bitcoin Transaction, PSBT)를 자유롭게 활용한 결과로서 이번 보유고증명 기술을 공개할 수 있었습니다.

앞으로의 계획

현재 구현된 툴은, 증명할 때 해당 거래소가 소유하는 모든 UTXO를 공개하게 되는데요, 필요이상의 정보를 공개하는 것처럼 보일 수 있습니다. 다만, Liquid을 활용할 경우, Confidential Transaction 기술을 활용하여 각 UTXO의 수치를 숨긴 채로 트랜잭션의 총액을 증명할 수 있습니다.

현 단계에서는 보유고증명 툴은 거래소가 감사를 받을 때, 보유 자산의 증명을 위해 사용됩니다만, 프라이버시 측면을 강화시킬 수 있는 다양한 아이디어1가 연구되고 있으며, 곧 일반 사용자도 사용할 수 있게 될 것입니다.

참여하기 위해서는

보유고증명은 Liquid의 L-BTC보유고 증명을 위해 표준기능으로서 탑재되어 있습니다. Liquid 네트워크에서 해당 툴을 이용하고자 하시는 분께는 기술적 지원을 할 예정입니다. Liquid에 관심이 있으신 분 께서는 이메일을 통해 연락주시면 감사하겠습니다.

참고자료

Making Bitcoin Exchanges Transparent - Christian Decker, James Guthrie, Jochen Seidel and Roger Wattenhofer. 20th European Symposium on Research in Computer Security (ESORICS), Vienna, Austria, September 2015. https://www.tik.ee.ethz.ch/file/b89cb24ad2fa4e7ef01426d318c9b98b/decker2015making.pdf