티스토리 뷰

들어가며

 Max Desalle의 Mastering Zcash 를 읽고 직접 번역하며 공부하는 기록입니다. 이번 글은 2장 Origins 부분을 다룹니다. 이번 챕터는 Zcash가 갑자기 등장한 프로젝트가 아니라는 점을 보여줍니다. 데이비드 차움의 디지털 현금 아이디어, 사이퍼펑크의 문화, Bitcoin이 선택한 공개 장부의 한계, 그리고 Zerocoin과 Zerocash를 거쳐 Zcash가 어떻게 실제 네트워크로 이어졌는지를 따라갑니다.

 

원문: https://maxdesalle.com/mastering-zcash/#origins


2.1 데이비드 차움과 디지털 현금의 탄생

 프라이버시가 보장되는 디지털 화폐(private digital money)라는 아이디어는 완전히 새로운 것이 아닙니다. 그 시작은 1982년으로 거슬러 올라갑니다. 당시 컴퓨터공학 박사과정생이었던 데이비드 차움(David Chaum)은 "Blind Signatures for Untraceable Payments."[1]라는 논문을 발표했습니다.

 

 이 논문의 핵심 통찰은 단순하면서도 우아했습니다. 사용자가 은행에서 디지털 토큰, 즉 전자 지폐 같은 것을 인출하려면, 은행은 그 토큰이 자신이 발행한 정상적인 토큰임을 보증해 주어야 합니다. 그리고 그 보증은 은행의 서명으로 남습니다. 그런데 차움의 아이디어는, 은행이 토큰의 내용물을 직접 보지 않고도 그 서명을 할 수 있다는 것이었습니다. 마치 밀봉된 봉투의 겉면에 서명하는 것처럼 말이죠. 이후 그 토큰이 사용되면, 은행은 자신의 서명을 통해 토큰이 유효하다는 것은 확인할 수 있습니다. 하지만 은행은 인출 시점에 토큰의 실제 내용물을 보지 못한 채 서명했기 때문에, 나중에 사용된 토큰을 최초의 인출과 연결하거나 추적할 수는 없습니다.

 

 이후 1989년, 데이비드 차움은 이 아이디어를 상업화하기 위해 DigiCash[2]를 설립했으며, 제품의 이름은 ecash[3]였습니다. ecash는 사용자가 은행 계좌에서 디지털 토큰을 인출한 뒤, 구매자와 구매 내역을 연결하는 흔적을 남기지 않고 상점에서 사용할 수 있게 했습니다. Deutsche Bank와 Credit Suisse를 포함한 여러 은행이 이 기술을 시범 도입하기도 했습니다.

 

 안타깝게도 DigiCash는 시기적인 문제로 인해 성공에 이르지는 못했습니다. 이 시도는 인터넷 상거래가 전세계로 광범위하게 퍼지기 전, 그리고 사람들이 온라인 프라이버시의 중요성을 이해하기 전에 이루어졌습니다. 회사는 1998년에 파산 신청을 했지만, 차움은 ecash를 통해 프라이버시가 보장되는 디지털 화폐가 가능하다는 것을 증명해냈습니다.

2.2 사이퍼펑크

 얼마 지나지 않아, 또 다른 형태의 움직임이 형태를 갖추기 시작했습니다. 1992년, 암호학자와 해커, 자유지상주의자들이 샌프란시스코 베이 에어리어에서 만나기 시작했고, 전자 메일링 리스트를 통해 서로 소통했습니다. 이들은 스스로를 사이퍼펑크(cypherpunks)라고 불렀습니다.

 

 사이퍼펑크는 논문을 쓰는 학자들이라기보다, 코드로 신념을 구현하는 사람들이었습니다. 이들의 출발점은 분명했습니다. 디지털 시대의 프라이버시는 정부나 기업이 선의로 제공해 주는 것이 아니라는 것입니다. 프라이버시는 암호학 도구를 사용하는 개인들이 직접 만들고, 배포하고, 지켜내야 하는 것이었습니다. 1993년, 멤버였던 Eric Hughes는 이 생각을 A Cypherpunk's Manifesto 에서 다음과 같이 정리했습니다.

"전자 시대의 열린 사회에는 프라이버시가 필요하다... 우리는 정부, 기업, 또는 얼굴 없는 거대한 조직들이 선의로 우리의 프라이버시를 보장해 주리라 기대할 수 없다... 프라이버시를 원한다면 우리는 스스로의 프라이버시를 직접 지켜야 한다... 사이퍼펑크는 코드를 작성한다."

 

 이 메일링 리스트는 이후 30년 동안 암호학 발전을 형성하게 될 아이디어들의 실험장이 되었습니다. 멤버로는 WikiLeaks[4] 이전의 Julian Assange, 이후 첫 번째 Bitcoin 트랜잭션을 받게 되는 Hal Finney, Bitcoin의 개념적 선행 아이디어라고 할 수 있는 bit gold[5]를 제안한 Nick Szabo, 그리고 사토시 나카모토가 인용한 b-money[6] 제안의 저자 Wei Dai가 있었습니다. 1997년에는 또 다른 멤버인 Adam Back이 Hashcash[7]를 발명했는데, 이는 이후 Bitcoin이 채택한 Proof of Work(PoW) 시스템입니다.

 

 사이퍼펑크가 성공적인 암호화폐를 직접 만들지는 못했습니다. 아니, 어쩌면 만들었다고 해야 할지도 모릅니다. Bitcoin은 가명 인물인 사토시 나카모토가 만든 것으로 알려져 있습니다. 사토시는 사이퍼펑크와 연결된 개발자, 혹은 개발자 그룹이었을 것이라는 추측이 있으며, 지난 10년 넘게 활동하지 않고 있습니다. 어쨌든 확실한 것은, 사이퍼펑크가 프라이버시가 보장되는 화폐를 가능하게 만든 문화, 도구, 그리고 지적 기반을 구축했다는 점입니다.

[참고]
 이 글(Mastering Zcash 원문)이 게시된 직후, Zcash의 공동 창립자인 Zooko Wilcox가 연락을 통해 몇 가지를 알려주었습니다. Zooko 자신도 실제로 Cypherpunk 메일링 리스트에 있었습니다. 그렇다면 사이퍼펑크는 성공적인 암호화폐를 만들어낸 셈입니다. 이 부분을 빠뜨린 것은 저자의 실수입니다. 또한 Zooko는 그곳에서 여러 창립 멤버들과 친구가 되었습니다. 여기에는 암호무정부주의(crypto-anarchist) 운동을 만든 Tim May, 앞서 언급한 A Cypherpunk's Manifesto 를 쓴 Eric Hughes, BitTorrent 프로토콜을 만든 Bram Cohen, Electronic Frontier Foundation을 공동 설립한 John Gilmore가 포함됩니다. Zooko는 Bram Cohen과 함께 안전한 해시 체인에 초점을 맞춘 스타트업에서도 일했습니다. Cypherpunk 메일링 리스트는 Zooko의 성장에 중요한 역할을 했고, 예를 들어 John Gilmore는 그에게 친구이자 멘토, 그리고 영감의 원천이 되었습니다.

2.3 Bitcoin: 잘못된 트레이드오프

 2008년 10월 31일, 사토시 나카모토는 암호학 메일링 리스트에 Bitcoin: A Peer-to-Peer Electronic Cash System, 즉 "Bitcoin: P2P 전자 현금 시스템"이라는 논문[8]을 올렸습니다. 이 논문은 수십 년 동안 디지털 화폐 설계자들을 괴롭혀 온 문제에 대한 해법을 설명했습니다. 중앙 기관에 의존하지 않고 이중지불(double-spending)[9]을 어떻게 막을 수 있는가?

 

 사토시가 제안한 답은 블록체인이었습니다. 블록체인은 탈중앙화된 마이너 네트워크가 유지하는 공개 장부이며, 작업증명(Proof of Work, PoW)으로 보호됩니다. 이 아이디어는 뛰어났고, 실제로 작동했습니다. Bitcoin은 2009년 1월에 출시되었고, 사람들은 처음으로 은행이나 중개자, 별도의 허가 없이 인터넷을 통해 가치를 전송할 수 있게 되었습니다.

[참고]
 마이너와 작업증명(Proof of Work, PoW)이 무엇인지, 그리고 이것이 Zcash 맥락에서 어떻게 작동하는지는 Mastering Zcash의 후반부에서 다시 다룹니다.

 

 하지만 앞서 말했듯이, 명백한 문제가 하나 있었습니다. Bitcoin은 프라이빗하지 않습니다. 블록체인은 설계상 완전히 공개되어 있습니다. 모든 트랜잭션, 모든 주소, 모든 잔액은 관심 있는 누구나 볼 수 있습니다. 사토시는 논문에서 이 문제를 인식하고 있었고, 사용자가 각 트랜잭션마다 새 주소를 사용하면 어느 정도 프라이버시를 보존할 수 있다고 제안했습니다. 하지만 이는 약한 완화책에 불과했습니다. 여러 주소가 같은 사용자의 것으로 묶일 수 있고, 트랜잭션 그래프는 분석될 수 있으며, 현실 세계의 신원은 거래소, 상점, 메타데이터를 통해 연결될 수 있기 때문입니다.

 

 나카모토는 나중에, 프라이버시를 보존하는 형태의 Bitcoin이 프로토콜을 더 깔끔하게 구현할 수 있게 해준다는 점도 인정했습니다. 하지만 당시에는 영지식 증명으로 그것을 구현하는 방법을 떠올리지 못했습니다.

 

 문제는 이 프라이버시 문제가 오랫동안 간과되었다는 점입니다. 초기 Bitcoin 사용자들은 가명성이 익명성에 충분히 가깝다고 생각했지만, 이는 틀렸습니다. 2010년대 초반이 되자 연구자들은 블록체인 분석을 통해 사용자의 신원을 높은 정확도로 특정할 수 있음을 보여주었습니다. Chainalysis[10] 같은 회사들은 이를 사업화해 법 집행기관, 거래소, 심지어 정부를 상대로 블록체인 포렌식 서비스를 판매하기 시작했습니다.

 

 Bitcoin은 이중지불 문제를 해결했지만, 프라이버시 문제는 오히려 악화시켰습니다.

2.4 Zerocoin: 덧붙이는 시도

 2013년, 존스홉킨스대학교의 암호학자 Matthew Green과 두 명의 대학원생 Ian Miers, Christina Garman은 Bitcoin의 프라이버시 문제에 대한 해법으로 Zerocoin[11]이라는 논문을 발표했습니다.

[참고]
이 글이 게시된 뒤 Zooko Wilcox가 알려준 흥미로운 사실이 있습니다. Ian Miers와 Christina Garman은 이후 Zcash Company의 창립 과학자(founding scientist)가 되었고(2.6 참조), Christina Garman은 나중에 이사회에도 합류했습니다.

 

 이들의 아이디어는 Bitcoin 위에 프라이버시 계층을 얹는 것이었습니다. 사용자는 자신의 Bitcoin을 zerocoin, 즉 거래 이력이 남지 않는 익명 토큰으로 바꿀 수 있었습니다. 그리고 나중에 이 토큰을 사용하고 싶을 때 다시 Bitcoin으로 전환할 수 있었습니다. 이 전환 과정은 영지식 증명(zero-knowledge proof)이라는 암호학적 기법에 의존했습니다. 사용자는 zerocoin의 출처를 드러내지 않으면서도, 자신이 유효한 zerocoin을 보유하고 있다는 사실을 증명할 수 있었습니다.

 

 Zerocoin은 이론적으로는 작동했지만, 몇 가지 문제가 있었습니다. 첫째, 증명 데이터가 컸습니다. 일반적인 Bitcoin 트랜잭션에 필요한 수백 바이트보다 약 100배 규모로 더 컸습니다. 둘째, 암호학적 한계도 있었습니다. 소유권은 증명할 수 있었지만 거래 금액은 숨길 수 없었습니다. 셋째, 가장 치명적인 문제는 Bitcoin이 이를 프로토콜 변경으로 받아들여야 한다는 점이었습니다. 하지만 Bitcoin의 보수적인 개발 문화에서 그런 변화가 채택될 가능성은 낮았습니다.

 

 Bitcoin 커뮤니티는 Zerocoin을 논의했지만, 결국 채택하지 않기로 했습니다. 이 제안은 Bitcoin 프로토콜에 포함되지 못했습니다.

2.5 Zerocash: 재설계

 2014년, 새로운 논문이 발표되었습니다. 저자 목록에는 새로운 세대의 영지식 증명을 연구하던 암호학자 Eli Ben-Sasson과 Alessandro Chiesa가 추가되었고, 여기에 Eran Tromer와 Madars Virza도 함께했습니다.

 

 논문의 제목은 Zerocash: Decentralized Anonymous Payments from Bitcoin[12]이었습니다. 제목만 보면 Bitcoin의 확장처럼 보일 수 있지만, 실제로는 단순한 확장이 아니었습니다. Zerocash는 완전한 재설계였습니다.

 

 핵심 혁신은 zk-SNARKs[13]를 사용했다는 점입니다. zk-SNARK는 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge 의 약자로, 작고, 빠르게 검증할 수 있으며, 숨겨진 데이터에 대한 복잡한 명제까지 증명할 수 있는 영지식 증명입니다. 증명 크기는 수백 바이트 수준이고, 검증은 밀리초 단위로 빠르게 이루어질 수 있었습니다. zk-SNARK를 사용하면 사용자가 유효한 코인을 소유하고 있다는 사실만 증명하는 데서 그치지 않고, 전체 트랜잭션이 유효하다는 사실까지 증명할 수 있습니다.

 

 이는 사소한 차이가 아닙니다. 시스템은 거래 금액이 올바른지, 이중지불이 없는지 등을 검증할 수 있어야 합니다. 그런데 Zerocash에서는 이 검증이 전송자, 수신자, 금액을 드러내지 않은 채 이루어질 수 있었습니다.

 

 하지만 조건이 하나 있었습니다. zk-SNARK는 신뢰 설정(trusted setup)[14]을 필요로 했습니다. 누군가는 시스템이 계속 사용할 공개 파라미터(public parameters)를 생성해야 했습니다. 그런데 만약 그 사람이 파라미터를 만들 때 사용한 비밀 값을 계속 보관하고 있다면, 이른바 독성 폐기물(toxic waste)을 갖고 있는 셈이 됩니다. 그리고 이 값을 이용하면 탐지하기 어려운 위조 코인을 만들어낼 수 있습니다. 이는 매우 심각한 문제였지만, 연구자들은 세심한 세리머니 설계를 통해 이를 방지할 수 있다고 보았습니다.

2.6 제네시스 블록

 Zooko Wilcox는 수십 년 동안 프라이버시와 암호학 분야에 몸담아 온 인물입니다. 그는 1990년대에 DigiCash에서 일했고, Tahoe-LAFS[15]처럼 강한 프라이버시 속성을 가진 탈중앙화 스토리지 프로젝트에도 참여했습니다. 그래서 Zerocash 논문이 공개되었을 때, 이 흐름은 그에게 자연스럽게 맞아떨어졌습니다.

 

 2016년, Wilcox는 Zcash Company를 설립했습니다. 이 회사는 나중에 Electric Coin Company로 이름을 바꾸었습니다. 그는 Zerocash를 실제 운영되는 암호화폐로 만들기 위한 팀을 꾸렸고, 앞서 언급한 학술 논문의 저자들도 어드바이저와 협력자로 프로젝트에 합류했습니다.

 

 앞서 살펴본 신뢰 설정 문제에는 창의적인 해법이 필요했습니다. 팀은 정교한 다자간 연산(MPC) 세리머니를 설계했습니다. 전 세계 서로 다른 장소에 있는 여섯 명의 참가자가 공개 파라미터를 생성하기 위한 무작위성을 각자 제공하고, 그중 단 한 명이라도 자신의 비밀 입력값을 완전히 폐기하면 독성 폐기물은 복구할 수 없게 되는 방식이었습니다. 이 세리머니는 2016년 말에 진행되었고, 참가자에는 Bitcoin Core 개발자인 Peter Todd와 과정을 기록한 기자들도 포함되었습니다. 세리머니가 공격받거나 조작되지 않도록 하기 위해 광범위한 준비와 검증 작업이 이루어졌습니다.

 

 2016년 10월 28일, Zcash의 제네시스 블록[16]이 채굴되었습니다. 처음으로 실제 운영되는 암호화폐가 진정한 암호학적 프라이버시를 제공하게 된 순간이었습니다. 데이비드 차움의 첫 논문 이후 34년 만에, 추적 불가능한 디지털 화폐라는 꿈이 실제 네트워크 위에서 작동하고 있었습니다.


주석

[1] Blind Signatures for Untraceable Payments: 차움이 1982년에 발표한 논문. 서명자가 메시지의 내용을 보지 못한 채 서명하되, 나중에 그 서명은 검증할 수 있는 "블라인드 서명" 개념을 제시했다.

[2] DigiCash: 데이비드 차움이 1989년에 설립한 전자화폐 회사. 블라인드 서명을 이용해 프라이버시가 보장되는 디지털 결제를 상업화하려 했다.

[3] ecash: DigiCash가 제공한 전자 현금 제품. 사용자가 은행에서 디지털 토큰을 인출해 상점에서 사용할 수 있도록 했고, 구매자와 구매 내역을 직접 연결하기 어렵게 설계됐다.

[4] WikiLeaks: 정부·기업·기관의 내부 문서나 기밀 자료를 공개해 온 폭로 플랫폼. Julian Assange가 설립자로 알려져 있다.

[5] bit gold: Nick Szabo가 제안한 디지털 화폐 구상. Bitcoin 이전에 작업증명과 희소한 디지털 가치 저장 아이디어를 결합한 선행 개념으로 자주 언급된다.

[6] b-money: Wei Dai가 제안한 익명적 전자화폐 시스템 구상. Bitcoin 백서에서 참고문헌으로 언급된다.

[7] Hashcash: Adam Back이 만든 작업증명 기반 스팸 방지 시스템. Bitcoin은 이 아이디어를 채굴과 합의 구조에 활용했다.

[8] Bitcoin 백서: 2008년 사토시 나카모토가 공개한 Bitcoin 논문. 중앙 기관 없이 P2P 네트워크와 작업증명으로 이중지불 문제를 해결하는 구조를 제안했다.

[9] 이중지불(double-spending): 같은 디지털 화폐를 두 번 이상 쓰는 문제. 디지털 데이터는 복사가 쉬우므로, 중앙 기관 없이 이를 막는 것은 디지털 현금 설계의 핵심 난제였다.

[10] Chainalysis: 블록체인 거래 분석과 포렌식 서비스를 제공하는 회사. 공개 장부의 거래 흐름을 분석해 주소, 거래소, 현실 세계의 신원 사이의 연결을 추정하는 서비스를 제공한다.

[11] Zerocoin: Bitcoin에 프라이버시 기능을 덧붙이려 한 2013년 제안. Bitcoin을 거래 이력이 없는 별도의 익명 토큰으로 바꿨다가 다시 Bitcoin으로 전환하는 방식으로 프라이버시를 제공하려 했다.

[12] Zerocash: 2014년에 발표된 논문. Zerocoin의 아이디어를 확장하되, Bitcoin 위에 기능을 덧붙이는 방식이 아니라 프라이버시를 중심에 둔 새로운 구조를 제안했다.

[13] zk-SNARKs: 작고 빠르게 검증할 수 있는 영지식 증명 계열. Zcash 초기 차폐 트랜잭션의 핵심 암호학 기술이 되었다.

[14] 신뢰 설정(trusted setup): 영지식 증명 시스템이 사용할 공개 파라미터를 생성하는 초기 절차. 이때 생기는 비밀 값이 완전히 폐기되지 않으면 위조 코인 생성 위험이 생길 수 있다.

[15] Tahoe-LAFS: 암호화와 분산 저장을 결합한 탈중앙화 파일 저장 시스템. Zooko Wilcox가 참여한 프로젝트 중 하나다.

[16] 제네시스 블록(genesis block): 블록체인의 첫 번째 블록. Zcash에서는 2016년 10월 28일 채굴된 이 블록이 네트워크의 시작점이 되었다.


번역하면서 남긴 메모

이 번역은 챕터 1과 마찬가지로, 초벌 번역에서 이해한 흐름을 크게 벗어나지 않는 것을 우선했습니다. 기계적으로 문장을 번역하는 것 이상으로 문장과 문장, 그리고 문단과 문단의 연결을 매끄럽게 만드는 것은 어렵고 시간이 많이 드는 일이라는 것을 깨달았습니다. 그래서 당장은 기계적이지만 번역을 하는 것에 의의를 두고 있습니다. 모든 것을 직접 번역했다고 하면 그것은 거짓말이지요.

  • Blind signatures 설명에서는 은행이 왜 토큰에 서명해야 하는지, 그리고 왜 나중에 인출과 사용을 연결할 수 없는지를 원문보다 조금 더 풀어서 설명했습니다.
  • transaction amounts는 “트랜잭션 개수”가 아니라 “거래 금액”으로 잡았고, two orders of magnitude는 “약 100배 규모”로 풀었습니다.
  • trusted setup, toxic waste, ceremony는 각각 “신뢰 설정”, “독성 폐기물”, “세리머니”로 옮겼습니다. 다만 이 표현들은 Zcash를 더 깊게 다루는 뒤 챕터에서 다시 확인할 필요가 있습니다.

모든 것을 직접 번역했다고 하면 그것은 거짓말이지요. 초벌 번역만 직접 해보고 이해가 안되는 부분이나 의미가 모호한 표현들은 AI와 논의를 거쳐 결론을 내리곤 합니다.


다음 글

다음은 What is Zcash? 부분을 번역하면서 Zcash의 기본 구조와 투명/차폐 트랜잭션, 그리고 실제로 Zcash가 Bitcoin과 어떻게 다른지 정리할 예정입니다.

최근에 올라온 글
최근에 달린 댓글
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total
Today
Yesterday
글 보관함