Zerocoin: Anonymous Distributed E-Cash from Bitcoin
비트코인은 완전히 탈중앙화 되있고, 어떠한 중앙은행이나 인증기관도 필요로 하지 않는다. 비트코인은 보안성을 분산화된 구조와 두가지 가정에 의해 이루고 있다. 다수의 노드는 정직할 것이라는 사실과, 작업증명은 Sybil Attack을 막아줄 것이라는 사실이다. 그 결과, 비트코인은 이중지불이나, 신뢰할 수 있는 기관, 감시체계 등의 법적인 시스템을 갖고 있지 않아도 운영할 수 있게 되었다. 이 탈중앙화된 디자인은 비트코인의 성공을 책임지고 있다, 그러나 이 또한 대가가 필요하다. 바로 모든 거래는 공개되어야 하며, 암호로 이루어진 가명 사이에서 이루어 진다는 것이다.
그러나 비트코인의 익명성에 대해 연구하는 학술적인 논문 작업은 비교적 적지만, 지금까지 보여지는 결과는 그다지 고무적이지 못하다. 2011년 도난된 25,000개의 비트코인 을 추적한 연구가 대표적이다. 물론, 도난당한 비트코인을 추적하는 것이 해로운 일은 아니지만, 몇몇 민감한 거래에 대해서 추적할 수 있는 기술이 생겨 나고 있다.
비트코인의 모든 거래가 공개적인 이상, 익명의 거래는 전형적인 전자 화폐 제도와 관련된 절대적인 익명성을 제공하기를 원치 않더라도 제 3자의 추적을 피하기 위해 필요하다. 이러한 거래 외에도, 부분적 또는 명시적으로 참가를 승인한 당사자를 식별하는 매커니즘을 구축할 수 있어야 한다. 그러나 이러한 정보를 공인된 당사자에게 공개하기 전에, 먼저 기본 공개 내역을 익명으로 처리해야 한다.
비트코인 커뮤니티는 비트코인이 익명성에 약점을 가지고 있다는 것에 동의한다. 이를 해결 하기 위해 비트코인을 세탁하는 경우도 있다. 그러나 이 경우에는, 세탁을 하는 운영자가 자금을 훔쳐가거나, 코인을 추적하거나 하는 등의 위험에 노출되게 된다.
Zerocoin은 암호화 기술을 이용하여 제3자의 도움없이 거래 당사자 간의 연결 고리를 잘라내는 분산형 전자화폐 시스템이다. Zerocoin은 비트코인 클라이언트 당사자들이 충분한 비트코인을 가지고 있다면, 노드 개개인이 스스로 코인을 발행하는 방식으로 되어 있다.
Zerocoin은 분산된, 온라인의,append-only 트랜잭션 저장소가 있다는 가정 하에 사용자에게 강력한 익명성 및 화폐의 보안을 제공하는 분산 전자 현금 체계다.그리고 Zerocoin에서는 이러한 가정으로 비트코인을 사용하였다.
a는 일반적인 비트코인 트랜잭션 히스토리를 나타낸다. 각각의 트랜잭션이 이전 트랜잭션과 연결 되어 있다.
b는 zerocoin chain이다. zerocoin의 발행과 소비 (점선)를 블록체인 데이터 만으로 연결 고리를 찾을 수 없다.
Zerocoin의 구조를 이해하기 위해 아래의 예를 참고해보자.
모든 사용자들이 특정한 게시판에 접근할 수 있다고 가정하자.
이러한 과정은 아래와 같은 목표를 달성하였다. 앨리스가 발행한 코인은 그녀가 회수한 자금과 연결 되지 않는다. 발행된 화폐 와 출금에 쓰인 일련번호 를 연결짓기 위해서는, 난수 을 알아내거나, 어떤 코인이 앨리스가 증명해 낸 코인인지 밝혀 내야 한다. 그러므로, 원래 본연의 달러가 오염되어 있을지라 할더라도, 앨리스의 새로운 달러와는 연결 지을 수 없다. 동시에, 커밋과 영지식증명이 안전하다면, 앨리스는 시리얼 넘버 를 재사용하여 이중지불을 할 수 없으며, 그리고 이는 곧 네트워크 참가자들에게 들통날 것이다.
물론, 위의 예처럼 공개된 게시판은 정보가 노출되어 있어 취약할 것이다. 그리고 중요한 것은, 네트워크를 통해 이 프로토콜을 수행하려면 분산된 디지털 통화를 필요로 한다는 것이다. 그 디지털 통화는 바로 비트코인이 될 수 있다. 비트코인 프로토콜은 신뢰할 수 있는 블록체인을 기반으로 탈중앙화 되어 있으며, 정보와 금육 거래 과정을 올릴 수 있는 업로드만 가능한 게시판 (블록체인)을 가지고 있다. 앨리스는 자금을 블록체인에 넣어 추가할 수 있고, 엄격한 프로토콜 조건(동료의 양심이 아닌) 에 따라 자신의 자금을 언제 사용할지 결정할 수 있다.