[Tech in Web3] 블록체인 프라이버시와 규제 준수 : 실용적인 균형을 향하여
*위핀은 Web3 기업용 지갑 솔루션으로, Web2 기업의 Web3 비즈니스 도입과 진출을 돕고 있습니다. Web3 비즈니스에 대한 고민 해결이나 가벼운 커피챗부터 상담, 미팅 등은 언제든 가능하니 부담 없이 연락해 주세요!
[Web3 비즈니스 관련 커피챗, 상담, 문의하기]
Author: Junhoo Park
Blockchain and Regulatory Compliance 논문 핵심만 간단히 알아봅니다.
본 글은 Vitalik Butelin의 “Blockchain Privacy and Regulatory Compliance : Towards a Practical Equilibrium” 논문을 참고하여 작성되었습니다. 본 편은 핵심 사항만 가볍게 이해할 수 있도록 작성된 글이므로 기술적인 원리와 논문 전반에 대해 알고 싶으신 분은 Deep Dive 버전을 참고하시기 바랍니다.
Vitalik이 2022년 5월 SBT(Soul Bound Token) 논문을 공개한 후 1년 넘게 지나 새로운 논문을 공개했습니다. 개인적으로 블록체인에서 프라이버시와 규제가 어떻게 공존할 수 있을지 관심이 많았던터라 이번 논문이 매우 흥미로웠는데요. 어떤 내용이 담겨있는지 글을 통해 소개해 드리겠습니다.
프라이버시 문제 이해
블록체인에서는 모든 거래가 공개됩니다. 거래소를 사용하든, 개인 지갑을 사용하든 한번이라도 온체인 거래를 해보신 분은 블록체인 상에서 내 거래가 진짜 저장되었는지 확인해본 경험이 있으실텐데요. 이렇듯 모든 거래가 공개되긴 하지만 크게 염려되지 않는 이유는 거래에 포함된 데이터가 실제 신원과 연결되지는 않기 때문일 것입니다. 하지만 신원이 드러나지 않더라도 거래가 공개되는 것은 프라이버시 문제가 될 수 있습니다. 어떻게 문제가 되는지 논문에서 소개한 시나리오를 통해 살펴보겠습니다.
Alice는 식당에서 저녁 시사 비용으로 코인을 지급합니다. 이제 수신자는 Alice의 주소를 알고 해당 주소의 모든 과거의 거래나 미래의 활동을 분석할 수 있습니다. 마찬가지로 Alice 역시 식당의 주소를 알고 있으며, 이 주소를 기반으로 다른 손님들의 주소를 관찰하거나 수익을 조사할 수 있습니다. 또한 Alice가 식당을 이용한 정보를 소셜 미디어 등을 통해 알고 있는 제3자는 쉽게 Alice의 주소를 알아내고 Alice의 과거와 미래 활동을 연구할 수 있습니다.
지금은 암호 화폐로 거래하거나 개인 간 거래가 많지 않기 때문에 크게 와닿지 않지만, 미래에는 충분히 가능한 시나리오이며 프라이버시 문제가 될 수 있음을 알 수 있습니다. 주소를 새로 생성하여 자금을 이체하더라도 거래가 공개되기 때문에 자금의 흐름이 노출되고 모든 거래가 연결되어 추적이 가능합니다.
이를 방지하기 위한 하나의 수단으로 거래 간 연결성을 제거하는 방법을 생각해볼 수 있습니다. 거래 간 연결을 끊으면 현재 잔액의 소유자의 자산이 어디서 왔는지를 알 수 없도록 출처를 숨길 수 있으며, 추적을 불가능하게 하고 프라이버시 문제를 해결할 수 있습니다. 이를 위해 가장 많이 활용되는 암호학 기술로는 영지식 증명(Zero Knowledge Proof)이 있으며, 영지식 증명을 기반으로 익명 프로토콜(Anonymous Protocol)을 구축하여 자금 전송에 적용한 Zcash나 Monero와 같은 암호 화폐가 있습니다. 또한 이더리움과 같은 스마트 컨트랙트 메인넷에서 구현된 Tonado Cash는 ETH를 이체하는 과정에서 출처를 알 수 없도록 믹싱하는 방식을 영지식 증명으로 구현하였습니다.
이 같은 프로젝트들은 익명성을 지원함으로써 프라이버시 보호에 효과적이지만, 악의적인 목적으로도 사용가능합니다. 그렇기 때문에 Zcash 같은 암호 화폐는 자금 세탁 방지 규정 준수를 위해 거래소에서 상장 폐지 되었으며, Tonado Cash 또한 OFAC(Office of Foreign Assets Control)의 제제로 인해 이제는 정당한 목적으로도 사용하는 것이 어려워졌습니다.
규정을 준수해야 할 필요성은 이해하는 바이지만, 거래 정보가 투명하게 공개되는 블록체인 상에서 프라이버시는 심각한 위협으로 다가올 수 있는데요. 현재까지는 규정으로 인해 프라이버시는 항상 후 순위로 밀려나는 것이 일반적이었습니다. 그렇다면 규정도 준수하면서 프라이버시도 함께 보장할 수 있는 방식으로 발전해나갈 수는 없을까요? 이에 대한 해결책으로 Vitalk의 논문에서는 프라이버시와 규정 준수의 균형을 이룰 수 있는 방안을 제안합니다.
영지식 증명 이해하기
블록체인에서 유효한 거래란?
우선 왜 모든 거래가 공개될 수 밖에 없는가?에 대해 짚고 넘어갈 필요가 있습니다. 모든 거래가 공개되어야 하는 이유는 거래가 유효한지 검증되어야 하기 때문입니다. 예를 들어, A가 Z에게 1ETH를 보내는 거래에서, 채굴자 혹은 검증자는 블록체인에 저장할 유효한 거래인지 판단하기 위해서 다음 두 가지사항을 확인해야 합니다.
- 송신자 A 가 이체하려는 잔액(balance) 1 ETH를 가지고 있는지 확인
- 거래(트랜잭션)가 이중 지불이 아닌지 확인
두 가지 사항을 확인하여 유효한 거래임을 판단한 검증자는 블록체인에 거래를 저장하고, 수신자 Z의 잔액은 증가합니다. 여기에서 수신자 Z는 딱히 관여하는 부분이 없습니다. 그래서 일종의 소매넣기(?)도 가능합니다.
영지식 증명 기반의 익명 송금 프로토콜
익명 송금 프로토콜에서는 A가 바로 Z에게 이체하는 것이 아니라 몇 단계를 거쳐 자금이 이동됩니다. Tonado Cah를 예로 들어 간략히 설명하면, A는 1ETH를 Tonado Cash에 입금하여 예치금(deposit)을 생성합니다. 이후 Z는 Z는 자신이 자금을 가져갈 수 있는 정당한 권한의 사용자이며 (1과 같이) 이 자금을 이전에 출금한 적이 없다는 것(2와 같이)을 증명합니다. 증명이 유효하면 Z의 주소로 예치금이 전송됩니다. Z가 증명하여 예치금을 이체해가는 과정에서 A의 예치금이라는 것을 드러내지 않기 위해 영지식 증명이 사용됩니다.
영지식 증명이란 이름에서 알 수 있듯이 지식 없이(드러내지 않고) 어떤 사실을 증명한다는 것을 의미합니다. 영지식 증명은 비밀을 드러내지 않고 어떤 사실을 증명하고자 하는 증명자(Prover)와 검증자(Verifier)간의 프로토콜로 증명(Prove)과 검증(Verify) 두 가지 기능이 있습니다. 증명자는 증명 과정에서 생성한 증거(Proof)를 검증자에게 제출하며, 검증자는 증거(Proof)를 검증(Verify)하면서 사실의 참/거짓 외에는 알 수 없습니다. 블록체인에서는 검증 기능을 보통 스마트 컨트랙트로 구현하기 때문에 비용면에서 효과적인 zk-snark를 많이 활용합니다.
그렇다면 영지식 증명을 쓰면 어떻게 프라이버시를 보호하도록 거래의 연결성을 해제할 수 있을까요? 다시 Tonado Cash를 예로 들어 좀 더 자세히 알아보겠습니다.
- 송신자 A는 Z에게 보낼 잔액 1ETH를 Tonado Cash 컨트랙트에 입금하여 예치금(deposit)을 생성합니다. 예치금을 출금하기 위해서는 A가 설정한 비밀 값 s를 알고 있어야 합니다.
- 컨트랙트는 예치금을 모아두는 일종의 ‘리스트’를 생성하여 A의 예치금을 관리합니다. 이 리스트에는 A가 보낸 예치금 외에도 다양한 주소로부터 생성된 예치금이 존재합니다.
- Z는 A로 부터 받은 (혹은 대부분 자기 자신이므로) 비밀 값 s를 이용하여 증거(Proof)를 생성합니다. 이 과정은 영지식 증명의 증명(Prove) 입니다. 증거를 Tonado Cash 컨트랙트에 보내서 출금을 요청합니다.
- 컨트랙트는 증거의 검증(Verify)결과가 참이면, Z의 주소로 예치금 1ETH를 보냅니다.
위 시나리오에서 영지식 증명의 증명자는 Z이며, 검증자는 Tonado Cash 컨트랙트입니다. Z는 A의 예치금을 가져갈 수 있는 권한인 비밀 값 s를 드러내지 않으면서 결과가 참임을 증명했습니다. 컨트랙트는 비밀 값 s를 모르지만, 증거를 이용한 검증 결과가 참임을 확인하였고, 1ETH를 Z에게 전송합니다. 검증자는 증거를 통해 Z가 가져가려는 1ETH에 대한 예치금이 (1) 컨트랙트가 가지고 있는 리스트에 존재하는 예치금이며, 이 중 하나에 대한 비밀 값 s를 Z가 알고 있다는 사실을 검증하였고, 추가적으로 (2) 이전에 출금한 적이 없는 예치금이(이중 지불 방지를 위해)라는 것을 확인한 후에 Z에게 전송합니다. 공개된 거래에서 유효한 거래임을 검증하기 위해 두 가지 사실을 확인하는 것과 같습니다.
여기에서 사전에 A가 생성하고, 컨트랙트가 관리하는 ‘리스트’에 주목할 필요가 있습니다. 왜냐하면, 영지식 증명은 결국 어떤 ‘리스트’에 속한 다는 것을 증명하는 프로토콜이기 때문입니다. 만약 이 ‘리스트’에 A가 입금한 예치금 1ETH 밖에 없다면, Z가 영지식 증명으로 예치금을 가져간다고 하더라도 이 것이 A의 잔액이었다는 것은 노출이 됩니다. (예를 들어 Tonado Cash 에서는 7일간의 기간 동안 충분한 개수의 예치금이 모이도록 기간을 둡니다.) 따라서 이 리스트에는 여러 개의 예치금이 존재해야 프라이버시를 향상시킬 수 있습니다.
연관 집합을 활용하여 균형이루기
굳이 이 리스트를 언급하여 설명하는 이유는 논문의 핵심이기 때문입니다. 익명 거래를 위한 대부분의 프로토콜들은 이러한 리스트를 가지고 있습니다. Privacy Pool은 기본적으로 Tonado Cash와 동일하지만, 이 리스트를 다양한 목적으로 만들어서 활용하는 기능을 추가하였으며, 논문에서는 이러한 리스트를 ‘연관 집합(Association Set)’이라고 말합니다. 연관 집합은 논문에서 제시하는 프라이버시와 규정 준수의 접점이 되는 가장 중요한 단어입니다.
논문에서 나오는 시나리오를 활용하여 확장해보겠습니다.
Alice, Bob, Carl, David, Eve 다섯 명의 사용자가 존재하고, Privacy Pool을 사용하려 합니다. 각각 예치금은 A_Dep, B_Dep, C_Dep, D_Dep, E_Dep입니다. 각자가 연관 집합에 등록하였다는 사실은 공개가 됩니다. 여기서 Eve는 해킹을 통해 불법 자금을 마련한 악의적인 행위자로 가정합니다. Eve의 신원은 알 수 없지만, 해킹을 한 악의적인 행위자라는 것은 블록체인 상에 공개되어 있습니다.
만약 Eve가 Z라는 계정을 만들어서 예치금을 가져간다고 했을 때 E_Dep을 가져간 것인지는 영지식 증명을 사용했기 때문에 공개되지 않습니다. 바로 이점이 Tonado Cash 프로토콜의 한계였습니다. 논문에서 제안하는 바는, 악의적인 행위자로 드러난 Eve가 생성한 E_Dep을 제외한 A_Dep, B_Dep, C_Dep, D_Dep 만을 따로 연관 집합을 만들어서 추가적인 증명을 하자는 것입니다. 즉, Z가 정직한 사용자라면 {A_Dep, B_Dep, C_Dep, D_Dep}를 연관 집합으로 만든 후, 자신의 자금의 출처가 이 집합에 속해있다는 것을 증명할 수 있을 것이고, Eve라면 증명할 수 없을 것이기 때문입니다.
이러한 방식을 사용하면 정직한 사용자는 Privacy Pool을 이용하더라도 자신의 자금의 출처가 불법 자금이 아니라는 것을 증명할 수 있는 반면, 악의적인 행위자는 해당 연관 집합에서는 증명할 수 없습니다. 그렇다고 익명 송금 자체를 제한할 수는 없으며, 불법 자금이 아니라는 것을 증명할 수 없을 뿐입니다. 하지만 이는 큰 차이점을 가져오는데, 정직한 사용자인 Alice, Bob, Carl, David는 자신의 자금의 출처를 의심 받지 않기 위해 규제를 준수해야 할 때 증명하고자 할 것이고, Eve는 이에 대응할 수 없기 때문에 계속적으로 악의적인 사용자로 남을 것입니다. 즉 자금 세탁 자체를 막을 수는 없지만, 불법 자금을 규제 관할 안에서 사용하지 못하도록 만들 수는 있다는 것이지요.
따라서 어떤 식으로 연관 집합을 구성하고 관리해 나갈지가 앞으로 계속 발전되어야 나갈 부분이며 논문의 나머지는 추가적인 기술과 어떤 참여자들이 필요한지, 어떻게 활용될 수 있는지 등의 방향성을 제시하고 있습니다.
마치며
본 편에서는 논문에서 제시한 프라이버시와 규제 준수가 어떻게 균형을 이룰 수 있는지를 위한 핵심 사항에 대해서 알아보았습니다. 제시한 방식대로 미래에 크립토 생태계가 이를 받아들일지는 지켜봐야겠지만, 프라이버시와 규제 준수라는 대척점의 사안을 모두 만족시킬 수 있는 멋진 아이디어였다고 생각합니다. 보다 자세한 심층 분석을 원하시는 분은 Deep Dive편을 읽어보시기 바랍니다.
현재 아이오트러스트는 기업용 지갑 솔루션 위핀을 통해 위와 같은 여러 케이스를 만들고 있습니다. 단순히 가상자산을 보관하고 전송하는 솔루션이 아닌, 인프라로서의 생태계를 만들고 있는데요. Web3 비즈니스에 대한 고민 해결이나 가벼운 커피챗부터 상담, 미팅 등은 언제든 가능하니 부담 없이 연락해 주세요!
[Web3 비즈니스 관련 커피챗, 상담, 문의하기]
본 글에 기재된 내용들은 작성자 본인의 의견을 정확하게 반영하고 있으며 외부의 부당한 압력이나 간섭 없이 작성되었음을 확인합니다. 작성된 내용은 작성자 본인의 견해이며, (주)아이오트러스트의 공식 입장이나 의견을 대변하지 않습니다.
[위핀 지갑]
위핀 지갑을 개발한 (주)아이오트러스트는 15년 이상의 보안칩(SE 및 TEE) 기반 임베디드 보안 솔루션 개발 경험을 보유한 보안 전문가들이 모여 있습니다.
위핀 지갑은 (주)아이오트러스트에서 만든 웹3 기반의 새로운 블록체인 지갑 서비스입니다. 이메일 및 소셜 계정을 통해 로그인하면 즉시 사용이 가능하며 복잡한 지갑 생성 및 초기 설정에 관한 절차가 필요 없습니다.
위핀은 인앱 위젯을 통해 한 시간 내 기업 웹페이지와 연동이 가능한 기업용 솔루션입니다. 특히 1) 고객사의 서비스에 최적화된 위젯(In-APP) 형태 지갑을 1시간 만에 통합 가능, 2) 니모닉 문구나 키 관리 없이 간단하게 페이스북, 구글, 트위터 등의 소셜 로그인이 가능하며, 3) MAU, 트랜잭션 현황, 사용자 분석 등 대시보드를 통한 엔드 유저 통계 데이터를 제공할 예정입니다.