avatar
Published on

Zerocoin) 비트코인 기반의 익명 분산화된 E-Cash

Author
  • avatar
    Name
    yceffort

Zerocoin: Anonymous Distributed E-Cash from Bitcoin

원문

비트코인은 완전히 탈중앙화 되있고, 어떠한 중앙은행이나 인증기관도 필요로 하지 않는다. 비트코인은 보안성을 분산화된 구조와 두가지 가정에 의해 이루고 있다. 다수의 노드는 정직할 것이라는 사실과, 작업증명은 Sybil Attack을 막아줄 것이라는 사실이다. 그 결과, 비트코인은 이중지불이나, 신뢰할 수 있는 기관, 감시체계 등의 법적인 시스템을 갖고 있지 않아도 운영할 수 있게 되었다. 이 탈중앙화된 디자인은 비트코인의 성공을 책임지고 있다, 그러나 이 또한 대가가 필요하다. 바로 모든 거래는 공개되어야 하며, 암호로 이루어진 가명 사이에서 이루어 진다는 것이다.

그러나 비트코인의 익명성에 대해 연구하는 학술적인 논문 작업은 비교적 적지만, 지금까지 보여지는 결과는 그다지 고무적이지 못하다. 2011년 도난된 25,000개의 비트코인 을 추적한 연구가 대표적이다. 물론, 도난당한 비트코인을 추적하는 것이 해로운 일은 아니지만, 몇몇 민감한 거래에 대해서 추적할 수 있는 기술이 생겨 나고 있다.

비트코인의 모든 거래가 공개적인 이상, 익명의 거래는 전형적인 전자 화폐 제도와 관련된 절대적인 익명성을 제공하기를 원치 않더라도 제 3자의 추적을 피하기 위해 필요하다. 이러한 거래 외에도, 부분적 또는 명시적으로 참가를 승인한 당사자를 식별하는 매커니즘을 구축할 수 있어야 한다. 그러나 이러한 정보를 공인된 당사자에게 공개하기 전에, 먼저 기본 공개 내역을 익명으로 처리해야 한다.

비트코인 커뮤니티는 비트코인이 익명성에 약점을 가지고 있다는 것에 동의한다. 이를 해결 하기 위해 비트코인을 세탁하는 경우도 있다. 그러나 이 경우에는, 세탁을 하는 운영자가 자금을 훔쳐가거나, 코인을 추적하거나 하는 등의 위험에 노출되게 된다.

Zerocoin은 암호화 기술을 이용하여 제3자의 도움없이 거래 당사자 간의 연결 고리를 잘라내는 분산형 전자화폐 시스템이다. Zerocoin은 비트코인 클라이언트 당사자들이 충분한 비트코인을 가지고 있다면, 노드 개개인이 스스로 코인을 발행하는 방식으로 되어 있다.

Zerocoin은 분산된, 온라인의,append-only 트랜잭션 저장소가 있다는 가정 하에 사용자에게 강력한 익명성 및 화폐의 보안을 제공하는 분산 전자 현금 체계다.그리고 Zerocoin에서는 이러한 가정으로 비트코인을 사용하였다.

Zerocoin a는 일반적인 비트코인 트랜잭션 히스토리를 나타낸다. 각각의 트랜잭션이 이전 트랜잭션과 연결 되어 있다. b는 zerocoin chain이다. zerocoin의 발행과 소비 (점선)를 블록체인 데이터 만으로 연결 고리를 찾을 수 없다.

Zerocoin의 구조를 이해하기 위해 아래의 예를 참고해보자.

모든 사용자들이 특정한 게시판에 접근할 수 있다고 가정하자.

  1. 액면가 1달러 가량의 Zerocoin을 발행 하기 위해, 엘리스는 먼저 시리얼 넘버 $$S\로 이루어진 랜덤 코인을 생성한 다음 커밋한다.
  2. 커밋 결과 나타난 화폐 CC는, 오로지 일련번호 SS 를 바탕으로 생성된 난수 rr로만 열 수 있다.
  3. 엘리스는, 공개된 게시판에 CC와 함께 1$를 표시해 둔다.
  4. 모든 사용자는 CC가 올바르게 구성되어 있고, 올바른 합계의 금액을 가지고 있다면 CC를 수락한다.
  5. 엘리스가 CC를 상환하기 위해, 엘리스는 먼저 공개 게시판에 게시되어 있는 유효한 커밋들 (C1,...,Cn)(C_1, ... , C_n) 을 살펴 본다.
  6. 엘리스는 그리고 영지식 증명 π\pi를 생성하여 두가지를 확인한다. 1) C(C1,...,Cn)C \propto (C_1, ... , C_n) 2) SS를 통해 CC에 숨겨진 값 rr.
  7. 이는 다른 사람들 관점에서는 완전히 익명으로 보이고 (물론 실제 프로토콜을 익명 네트워크인 Tor를 사용해야 한다고 한다.), 단지 'spend' transaction 을 게시하는 것만이 보일 것이다.
  8. 나머지 유저들은 영지식증명 결과 π\pi를 확인하고, SS가 이전 다른 'spent'거래에서 사용되지 않았는지 확인한다.
  9. 조건에 부합한다면, 사용자들은 앨리스가 1달러를 가져갈 수 있게 되며, 그렇지 않으면 그 트랜잭션은 기각되고 화폐를 회수 할 수 없게 된다.

이러한 과정은 아래와 같은 목표를 달성하였다. 앨리스가 발행한 코인은 그녀가 회수한 자금과 연결 되지 않는다. 발행된 화폐 CC와 출금에 쓰인 일련번호 SS를 연결짓기 위해서는, 난수 rr을 알아내거나, 어떤 코인이 앨리스가 증명해 낸 코인인지 밝혀 내야 한다. 그러므로, 원래 본연의 달러가 오염되어 있을지라 할더라도, 앨리스의 새로운 달러와는 연결 지을 수 없다. 동시에, 커밋과 영지식증명이 안전하다면, 앨리스는 시리얼 넘버 SS를 재사용하여 이중지불을 할 수 없으며, 그리고 이는 곧 네트워크 참가자들에게 들통날 것이다.

물론, 위의 예처럼 공개된 게시판은 정보가 노출되어 있어 취약할 것이다. 그리고 중요한 것은, 네트워크를 통해 이 프로토콜을 수행하려면 분산된 디지털 통화를 필요로 한다는 것이다. 그 디지털 통화는 바로 비트코인이 될 수 있다. 비트코인 프로토콜은 신뢰할 수 있는 블록체인을 기반으로 탈중앙화 되어 있으며, 정보와 금육 거래 과정을 올릴 수 있는 업로드만 가능한 게시판 (블록체인)을 가지고 있다. 앨리스는 자금을 블록체인에 넣어 추가할 수 있고, 엄격한 프로토콜 조건(동료의 양심이 아닌) 에 따라 자신의 자금을 언제 사용할지 결정할 수 있다.

문제점

  1. Zerocoin을 구현하기 위해 이중 이산 로그 증명이 필요한데 이는 증명의 크기가 크고 검증 시간도 길다.
  2. Zerocoin은 계산상의 복잡성과 크기를 증가시켜, 강력한 암호화를 구축하였다. 비트코인은 최소한 컴퓨팅 파워의 51%를 소유하지 않는 한 위조가 불가능 하다는 '가정'으로 운영되고 있다. 그리고 Zerocoin은 이러한 가정 대신, 강력한 암호화를 제공한다. 그러나 이는 어디까지나 위조 화폐의 가치가 암호화 비용보다 가치있다는 가정하에서만 유효하다.
  3. 마지막으로 보안, 익명성, 프로토콜의 책임사이에 어느정도의 trade-off가 있는지 검토해 볼 필요가 있다.