원문: 0xFishylosopher, Ventures.web3.com
번역: PANONY Limited
해당 아티클은 Web3 Ventures의 Doing “Proof-of-Reserves” the Right Way을 기반으로 작성되었습니다. 파노니는 Web3 Ventures의 공식 미디어 파트너입니다.
서론
지난 몇 주간 암호화폐 산업은 큰 혼란을 맞이하였다. 글로벌 대형 거래소 FTX의 붕괴와 함께 산업 전반에 연쇄적인 악영향을 끼쳤기 때문이다. 바이낸스를 비롯한 중앙 집중식 거래소는 신뢰도를 회복하기 위해 거래소 내부에 유저의 자금을 보유하고 있음을 증명하기 위한 이른바 '준비금 증명 (Proof-of-Reserves)'이 한창이다. 해당 아티클에서는 머클 트리 및 zk-SNARK와 같은 기술을 사용한 준비금 증명 기술 구현에 대한 분석을 다루었다. 우선 해당 분석을 살펴보기 앞서 중앙 집중식 거래소의 신뢰도 리스크에도 불구하고, 여전히 중앙 집중식 거래소가 산업에서 필요한 근거에 대해 설명하고자 한다.
중앙 집중식 거래소가 존재해야하는 근거
FTX의 붕괴는 순식간에 발생했다. FTX는 지난 2022년 1월 320억 달러의 밸류에이션 평가를 받은 가장 큰 암호화폐 거래소 중 하나였다. 그러나 11월 초, FTX의 가치를 대변하는 거래소 토큰($FTT)의 진정한 가치에 대해 의심이 피어오른 후, 그 의심은 사실화되어 FTX는 유동성 위기에 직면하게 되었다. 그리고 $FTT는 하룻밤 사이에 90% 이상 폭락했으며, 채권자와 거래소 이용자들은 자금을 인출하기 위해 몰려들었고 FTX는 결국 파산 절차에 이르게 되었다. 이번 FTX 사태를 들어 많은 이들로 하여금 '암호화폐 리먼 사태'로 불리는 것도 과언이 아니다.
이번 FTX 사태는 암호화폐 산업 전반에 악영향을 끼쳤으며, 특히 중앙 집중식 거래소에 대한 신뢰를 무너뜨렸다. 실제로 다시 생각해보면, 중앙 집중식 거래소는 탈중앙화를 통해 무신뢰를 중시하는 암호화폐 산업의 특성과는 역설적인 포지션에 위치해있다. 하지만 그렇다 하여도 현재의 탈중앙화 거래소는 중앙 집중식 거래소의 유동성과 사용성을 따라잡을 수 없는 실정이기에, 이러한 신뢰성 문제에 대한 위험에도 불구하고 중앙 집중식 거래소의 필요성은 지속적으로 요구되고 있다.
기본적으로 중앙 집중식 거래소는 암호화폐 산업에 입문하기 위한 첫 단추이자, 가장 쉬운 방법 중 하나이다. 한 가지 예시로, 암호화폐 처음 입문하려는 유저가 유니스왑 V3와 같은 탈중앙화 거래소에서 거래를 한다고 상상해본다면 꽤나 많은 불편한 절차가 필요하다. 먼저 유저는 메타마스크와 같은 지갑 프로그램을 설치해야하며, 12단어의 시드 문구, 다양한 체인의 지갑 주소 관리, 토큰의 개별적 관리 등 굉장히 큰 장벽이 아닐 수 없다. 그런 다음 Moonpay와 같은 지불 결제 솔루션을 통해 신용 카드를 사용하여야 하고, 이 때 또 KYC와 개별 지갑 주소를 항상 인지해야한다는 번거로움이 존재한다. 그리고 매번 트랜잭션을 수행할때 마다, 가스요금, 유동성 분석, 토큰 래핑 등을 분석해야한다. 다시 말해서, 입문자에게 탈중앙화란 친숙하지 않다. 반면 중앙 집중식 거래소의 경우, 우리가 흔히 접하는 Web2 방식의 계정 생성 방식 및 KYC 절차를 수행하고 은행 계좌 혹은 신용카드를 통해 단순히 암호화폐를 구매하면된다.
또한 중앙 집중식 거래소는 개인에게만 서비스를 제공하는 것이 아니다. 전통적인 금융 회사 및 기업과 같은 기관 고객도 자산을 암호화폐를 투자하기 위해 중앙 집중식 거래소에 의존한다. 이러한 기관들은 단순히 사용성에 대한 여하에 관계 없이, 중개자의 '책임과 지원'을 원하기 때문이다. 중개자가 존재해야 서비스에 대한 분쟁이 생길 경우 법적 효력을 발위할 대상이 명확해 지는것 처럼 말이다.
결국 이 모든 요소는 현재의 탈중앙화 거래소는 도달할 수 없는 영역이다. 차후 Web3가 산업을 주도하려면, 기관 차원의 지원 시스템이 필요하고 초기 입문 유저도 쉽게 접근할 수 있는 온보딩 매커니즘이 필요하다. 따라서, 현재로서는 탈중앙화 거래소가 중앙화 거래소를 대체할 수는 없다. 물론 FTX의 붕괴 당시 유동성이 탈중앙화 거래소로 이동했다는 것은 사실이다. 하지만 체이널리시스가 지적했듯, 그 유동성은 절대적으로 많은 양이 아님으로 그저 일시적인 '도망' 수준에 지나지 않는다.
즉 이번 FTX 사태로 중앙 집중식 거래소의 신뢰성 부문에서 많은 우려가 되고 있는 것은 사실이나, 중앙 집중식 거래소를 아예 산업에서 배제 해야한다는 의견은 온전치 못하다.
중앙 집중식 거래소는 전통 금융의 은행과는 달리 100% 준비금을 마련해야한다.
앞서 설명했듯, 중앙 집중식 거래소의 신뢰도 리스크에도 불구하고 여전히 우리에게는 중앙화 거래소가 필요하다. 이러한 중앙 집중식 거래소의 필요성의 존재 하에 신뢰도를 측정할만 한 준비금 증명이 현재 대두되고 있는 가장 큰 주제이다. 하지만 이 암호화폐 거래소의 준비금 증명 과정은 기존 전통 금융과는 다소 상이한데, 기존 전통 금융은 부분 준비금만으로 증명이 되는 반면, 중앙 집중식 거래소는 100%의 준비금을 증명해야한다.
<Fractional Reserve Banking Example. Source: Original Content>
현재 산업 내에서 중앙 집중식 거래소는 은행과 유사한 포지션을 갖고 있다. 하지만 운영 방식 자체는 기존 전통금융의 은행과는 다르다. 먼저 은행이 수행하는 역할을 살펴보자면, 기본적으로 은행은 예금자와 대출자를 연결하는 플랫폼이다. 예를 들어, 은행 이용자 Alice가 1000 달러를 은행원 Bob에게 예치하고(5% 예치 이자), Bob의 은행은 준비금 비율이 20%라고 가정해보자. Bob은 Alice에게 당신이 원할 때마다 돈을 받을 수 있다고 약속하지만, Bob은 실제로 200달러(준비금 비율 20%)만 보유하고 있을 것이다. 물론 Alice 또한 한 번에 모든 돈을 돌려받지는 않을 것이다. Bob은 Alice의 나머지 $800에 대해 기업가 Carol에게 10%의 이자율로 대출한다. (이 때, 기업가 Carol은 $800 원금과 $80 이자를 반환하기에 충분한 기업 활동을 영위한다고 가정한다.)
이러한 은행 운영 방식에 있어서 최상의 시나리오는 Alice는 이자로 50달러를 수령하고, Carol은 공격적인 기업 운영을 위한 자금을 얻게되며, Bob은 30달러의 예대 마진을 얻게 된다. 그리고 무엇보다 가장 중요한 것은 이 시나리오는 결국 모든 경제 주체가 이득을 본다는 것이다. Carol은 성공적인 기업 운영의 기반을 마련하여 기업을 더욱 확장할 수 있다. 만약 Alice가 갖고 있던 1000달러를 그냥 갖고만 있었다면 Carol은 애초에 기업 확장의 기회가 없는 것이다. 이런 의미에서 많은 경제학자들은 "은행이 돈을 창출한다"고 말한다. 예금과 대출을 통해 은행은 Carol과 같은 기업가에게 더 많은 경제적 성과를 창출하기 위해 도움을 준다. 결국 은행은 준비금 비율이 낮을수록 은행이 창출하는 경제적 산출물의 가치가 증가하게 되는 셈이다. 하지만 은행이 갑작스러운 인출 수요를 충족하지 못한다면 분명히 위험 또한 발생하기에, 일정 요건의 준비금 비율을 지정하는 것은 꼭 필요하다. 만약 은행의 준비금 비율을 100%로 요구한다면, Carol은 기업을 확장할수 없고, 경제는 침체될 것이며 Bob은 Alice에게 본인의 자본으로 이자를 지급해야 한다. 따라서 모든 경제의 금융활동은 대부분 '레버리지'를 통해 조달되기 때문에 은행의 상대적으로 낮은 준비금 비율은 건강한 경제를 유지하고 성장하는 데 도움을 준다는 것이다.
그러나 암호화폐 거래소는 이 은행과 같은 매커니즘이 존재하지 않는다. 바이낸스, 코인베이스, FTX와 같은 중앙 집중식 거래소는 경제에 새로운 가치를 창출하지 않는다. 암호화폐 거래소는 일반적으로 기존 은행과 같은 방식으로 예금과 대출에 관여하지 않는다. 오히려 암호화폐 거래소는 은행보다는 증권 거래소와 유사하게 작동된다. 단순히 암호화폐 매수자와 매도자를 연결하는 것 뿐이다. 유저의 입장에서 중앙 집중식 거래소에 암호화폐를 보관하는 이유는 그저 트레이딩의 접근성과 자산 관리의 번거로움 때문이다.
다시 말해서 중앙 집중식 거래소는 은행이 아니다. 중앙 집중식 거래소가 현재 수행하는 역할은 경제 주체의 생산성과 자본 창출을 촉진하기 위함이 아닌, 그저 거래를 촉진하는 것이다. 더불어 현재 은행과 같은 부분 준비금 증명 모델은 전통적인 은행에서의 예금자에게 혜택을 주는 방식으로 거래소의 거래자에게 실질적인 도움이 되지는 않는다. 따라서 은행은 경제적 생산성을 극대화하기 위해 부분 준비금 모델이 필요하지만, 암호화폐 거래소는 실질적으로 부분 준비금 모델이 필요하지 않다. 이를 감안할 때 중앙 집중식 거래소의 경우 100%의 준비금 모델을 통해 신롸성과 안정성을 확보해야한다.
준비금 증명의 구현
지금까지 중앙화 암호화폐 거래소가 100% 완전 준비금 모델을 채택해야 하는 이유에 대해 설명했다. 그리고 이 준비금 증명 방식은 분산된 형태의 Web3 방식으로 구현해야한다. 즉, 이를 달성하기 위해 중개자의 감사 혹은 관리 감독 모델이 아닌 Web3 기술을 사용해야 한다. 완전한 "준비금 증명"은 CEX의 자산이 부채와 동일(또는 그 이상)함을 보여주기 위한 부채 증명 및 자산 증명의 두 가지 구성 요소로 구성된다. 즉, 사용자가 거래소에서 모든 자금을 인출하더라도 거래소는 지불 능력 문제에 직면하지 않을 것이다.
책임 증명 (Proof of Liabilities)
먼저, 책임 증명방식이다. 책임 증명 방식은 사용자의 예치금이 실제로 거래소에 올바르게 기록되었음을 증명하는 방법이다. 예를 들어, 바이낸스에 1 ETH를 입금한다면 그대로 시스템에 기록을 남기는 것이다. 추후 위험이 발생 했을 때, '시스템에 기록되지 않았기 때문에 출금할 수 없다'는 것을 원천적으로 차단한다.
그러나 이것은 개인 정보 보호 문제를 초래할 수 있다. 모든 각 이용자가 얼마나 많은 자금을 가지고 있는지 볼 수 있기 때문이다. 이것에 대해 조금의 개선 사항은 단순히 사용자의 잔액과 함께 사용자 계정의 무작위 해시를 해제하는 것이다. 그래도 여전히 모든 잔액에 대한 유출은 여전히 개인 정보 보호 문제와 직결된다. 게다가 거래의 모든 변경 사항, 즉 포지션이 노출됨으로 본질적으로 거래소의 모든 거래가 악의적인 공격자에게 유출된다.
머클 트리 증명
<Merkle Tree Proof of Liabilities. Source: https://vitalik.ca/general/2022/11/19/proof_of_solvency.html>
가장 좋은 방법은 잔액은 거래소에 온전히 보관되어 있음이 확인되고, 동시에 다른 사용자의 잔액이나 특정 사용자에게 거래 정보를 공개하지 않는 방법이다. 이러한 방법은 '머클 트리'를 이용하면 구현할 수 있다.
머클 트리(이진 해시 트리)는 다른 모든 요소에 대한 최소한의 정보를 제공하면서 요소가 목록에 존재한다는 것을 증명하는 방법을 제공한다. 먼저 목록에 있는 모든 데이터의 해시를 이진 트리의 리프 노드로 배치하고 각 상위 노드는 두 하위 노드의 해시 합계로 구성한다. 트리의 맨 위에는 모든 사람에게 공개되는 루트 노드가 있으며, 주어진 리프 노드(예: 내 계정)가 목록(예: 바이낸스 계정 목록)에 보관되어 있음을 증명하기 위해 바이낸스는 O(log(n)
트리의 특정 키 노드에 대한 머클 증명(Merkle proof)이라는 짧은 증명(크기)을 제공한다.
예를 들어, 제 각각 다른 양의 ETH를 보유하고 있는 8명의 사용자가 있다고 가정해보자. 8명의 이용자 중 한 명인 Charlie는 머클트리 증명을 사용하는 거래소에서 잔액을 보유하고 있다. 거래소는 세 개의 파란색 노드의 해시 값으로 구성된 머클 증명을 제공한다. 그런 다음 머클 트리 공식( parentValue = hash(leftValue, rightValue)
)을 사용하여 값을 해시하고 머클 트리를 연속적으로 다시 추적하여 궁극적으로 루트 노드에 도달할 수 있다. 내가 얻은 루트 노드 값이 게시된 값과 같으면 거래소가 실제로 내 잔액을 증명한것이다.
한 편, 이더리움 설립자 비탈릭 부테린은 "머클 트리 기술은 책임 증명 방식만큼 우수하다"고 밝힌 바 있다. 더불어 머클 트리 이외 zk-SNARK 형태의 ZKP(Zero Knowledge Proofs)를 활용하여 보다 강력한 준비금 증명을 구현할 수 있다. zk-SNARK는 "무언가"가 무엇인지에 대한 세부 정보를 밝히지 않고, 존재를 증명하는 영지식증명에서 비롯된다. 준비금 증명의 경우 이 "무언가"는 본질적으로 계정의 잔액이 되는 것이다.
자산 증명 (Proof of Assets)
책임 증명은 준비금 증명 일련의 과정 중 한 부분일 뿐이다. 중앙 집중식 거래소가 완전히 준비금으로 뒷받침된다는 것을 보여주기 위해 자산 규모가 부채보다 많거나 같다는 것을 증명해야할 필요가 있다. 그렇다면 돈이 있다는 것을 어떻게 증명할 수 있을까? 간단한 방법으로는 암호화폐 거래소가 거래소 잔고를 공개적으로 합의된 지갑으로 보내는 것으로, 이는 모든 사람이 돈이 거기에 존재한다는 것을 확인할 수 있다. 하지만 지갑 전송의 경우 가스비 문제부터 일정 부분 리스크가 존재하기에, 비탈릭 부테린이 언급했듯 오프체인 서명 메시지를 통해 보완할 수 있다.
물론 이 또한 그렇게 간단하지는 않다. 이 자산 증명 방법에서 발생하는 주요 문제는 거래소 잔액의 대부분이 오프체인 '콜드 월렛'에 저장된다는 것이다. 이러한 콜드 월렛은 인터넷에 연결되지 않은 오프라인 환경을 이용하기 때문에 주로 자금의 보안을 보장하는 데 사용된다. 콜드 월렛은 오프라인에서 트랜잭션을 생성하고 서명하며 이 서명된 트랜잭션은 일반적으로 QR 코드를 통해 네트워크로 전송된다. 따라서 단일 콜드 월렛에서 트랜잭션을 제출하는 것은 매우 번거로운 프로세스이다. 이것은 거래소가 일반적으로 각각의 다른 토큰과 각각의 다른 체인에 대해 많은 양의 콜드 월렛을 보유해야 한다는 사실과 직결된다.
또한 거래소는 자신이 관리하는 주소와 이 주소에 얼마나 많은 자금이 있는지 모든 사람에게 공개적으로 보여줄 수 있지만 이 자산 증명 방법은 이러한 자금이 어디에서 오는지 보여주지 않는다. 예를 들어 대차대조표에는 80 ETH만 있고 예금자는 100 ETH를 예치했다고 가정해보자. 때가 되어 준비금 증명을 해야 할 때, 거래소는 쉽게 (주변인 혹은 은행을 통해) 20 ETH를 빌려서 100 ETH를 만들고, 이것을 합의된 지갑으로 보내고, 완벽한 준비금을 보유 했다고 거짓 증명할 수 있다. 그리고 이러한 증명 과정이 잠잠해질 시기에 조용히 20 ETH를 반환하고(아마도 점진적으로, 사용자 인출을 난독화함) 부분 예비금으로 돌아간다. 이것은 예비 지갑의 증거로 지정된 일회용 지갑의 경우 특히 우려되는 부분이다.
비탈릭이 지적한 것처럼 이 두 가지 문제를 해결하는 가장 쉬운 방법은 모든 자금을 저장하는 데 영구적으로 사용하는 몇 개의 장기 주소를 사용하는 것이다. 소유권을 한 번만 증명하면 되고 나머지 시간에는 사람들이 자금 이동을 추적하기 위해 이러한 주소에서 들어오고 나가는 거래를 모니터링하고 이것이 부채 증명에서 알려진 부채와 일치하는지 확인하기만 하면 된다. 그러나 수십억 달러의 사용자 자금을 보유한 거래소의 입장에서 영원히 변경되지 않는 단 몇 개의 주소에 모든 자금을 저장하고 싶지는 않을 것이다. 이것은 의심할 여지없이 이것은 보안 문제를 가져오고 자금을 착취하려는 모든 공격자로 하여금 매력적으로 다가올 것이다.
따라서 자산 증명은 간단하지 않다. 주소를 공개하거나 이러한 주소에 대한 영지식 증명과 같은 몇 가지 기술적 조치를 사용할 수 있지만, 거래소가 절차를 생략하고 소비자를 속일 수 있는 방법(예: 빌린 돈 예)과 같은 어뷰징이 항상 존재한다. 즉, 적어도 자산 증명에서는 앞서 언급한 기술적인 조치까지만 가능한 실정이다. 자금이 합법적인 출처에서 온 것인지 진정으로 확인하려면, 여전히 전통적인 감사자가 필요하다.
결론
중앙 집중식 거래소가 필요하지만 번창하기 위해서는 신뢰를 얻고 FTX 붕괴와 같은 재앙이 다시는 일어나지 않도록 해야한다. 그렇게 하기 위한 한 가지 중요한 단계는 바이낸스 CEO 창펑자오가 언급했듯 중앙 집중식 거래소는 "풀 리저브(100% 준비금 증명) 백업"에서 작동하는 것이다.
현재 많은 업계 관계자들은은 중앙 집중식 암호화폐 거래소는 머클 트리와 같은 수단을 통해 준비금을 기술적으로 완벽하게 증명할 수 있으므로, 감사 중개자는 그저 과거의 제도라고 평가절하하는 경향이 있다. 더불어 "Proof-of-Reserves"라는 작명을 통해 기존 "Proof-of-Work" 및 "Proof-of-Stake"의 순전한 기계적 프로세스를 염두에 두고 있다. 하지만 준비금 증명은 기계적으로 작동될 만큼 그렇게 간단하지 않다.
물론 머클 트리 증명과 같은 방법은 객관적인 알고리즘을 통해 거래소의 지급 능력 상태에 대한 보증을 생성하는 데 확실히 도움이 된다(예: 모든 사용자 예치금이 기록에 있음을 보여줌). 그러나 이것은 "자산 증명"에 대한 분석에서 말했듯이 종종 악의적인 거래소는 어뷰징을 통해 이러한 머클트리 알고리즘을 쉽게 간파할 수 있다. 따라서 머클 트리가 모든 것을 해결한다고만 볼 수 없다. 결국 중요한 점은 Web3 방식을 탑재한 기술적 알고리즘의 고도화와 전통적인 감사 중개자의 역할도 여전히 중요하다는 것이다. 결국 모든 것은 인간이 하기 때문이다.
References
[2] A summary of what happened: https://www.nbcnews.com/tech/crypto/crypto-giant-ftx-file-bankruptcy-ceo-sam-bankman-fried-steps-rcna56749
[4] https://www.investopedia.com/terms/f/fractionalreservebanking.asp
[5] https://www.blockchain-council.org/blockchain/what-is-a-merkle-tree/
[7] For more detail on the technical implementation: https://vitalik.ca/general/2022/11/19/proof_of_solvency.html
[8] https://www.coindesk.com/layer2/2022/11/14/after-ftx-rebuilding-trust-in-cryptos-founding-mission/
[9] https://twitter.com/cz_binance/status/1590055819416330240
원문: Doing “Proof-of-Reserves” the Right Way
이 글은 PANews 칼럼니스트의 의견이며 PANews의 입장을 대변하지 않으며 법적 책임을 지지 않습니다. 기사와 의견은 투자 조언을 구성하지 않습니다.
이미지 출처: PANews 침해 사항이 있는 경우 작성자에게 연락하여 삭제하십시오.