제로코인 프로토콜

**제로코인**(Zerocoin)은 2013년 존스 홉킨스 대학교 교수 매튜 D. 그린과 그의 대학원생 이안 미어스(Ian Miers), 크리스티나 가먼(Christina Garman)이 제안한 프라이버시 프로토콜이다. 이는 비트코인 프로토콜의 확장으로 설계되었으며, 프로토콜에 코인 믹싱 기능이 내장되어 비트코인 거래의 익명성을 향상시키는 것을 목표로 한다. 제로코인은 비트코인과 호환되지 않는다.
# 역사
블록체인의 공개적인 특성 때문에 사용자들은 네트워크와 상호작용하는 동안 프라이버시가 침해될 수 있다. 이 문제를 해결하기 위해 코인 믹싱 서비스와 같은 제3자가 암호화폐 거래의 흔적을 모호하게 만드는 데 사용될 수 있다. 2013년 5월, 매튜 D. 그린과 그의 대학원생 이안 미어스(Ian Miers), 크리스티나 가먼(Christina Garman)은 제3자를 신뢰하지 않고도 암호화폐 거래를 익명화할 수 있는 제로코인 프로토콜을 제안했다. 이 프로토콜은 코인을 파기한 후 다시 발행하여 해당 코인의 이력을 지울 수 있게 한다.issn=1081-6011 코인이 사용될 때, 정확히 어떤 코인이 사용되는지 밝히는 정보는 전혀 없다.date=24 October 2013 처음에 제로코인 프로토콜은 비트코인 네트워크에 통합될 계획이었다.archive-date=20 June 2018 그러나 이 제안은 비트코인 커뮤니티에서 받아들여지지 않았다. 이에 따라 제로코인 개발자들은 프로토콜을 독립적인 암호화폐로 출시하기로 결정했다.archive-date=27 November 2017 제로코인 프로토콜을 구현하는 독립형 암호화폐를 만들기 위한 프로젝트는 "모네타(Moneta)"로 명명되었다.access-date=11 August 2018 2016년 9월, 제로코인 프로토콜을 구현한 최초의 암호화폐인 Zcoin(XZC)이 포라민 인솜(Poramin Insom)과 팀에 의해 출시되었다.archive-date=7 August 2018 2018년 1월, Zcoin의 부분적인 지원을 받은 학술 논문이 일반 사용자들 사이에서 보다 공평한 채굴을 보장하기 위해 작업 증명을 메모리 집약적인 머클 트리 증명 알고리즘으로 대체하는 것에 대해 발표되었다.year=2016 2018년 4월, 제로코인 프로토콜에서 암호화 결함이 발견되어 공격자가 정직한 사용자가 소유한 코인을 파괴하고, 아무것도 없는 상태에서 코인을 생성하며, 사용자의 코인을 훔칠 수 있게 되었다.location=Germany Zcoin 암호화폐 팀은 이 결함을 인정하면서도, 그러한 공격을 수행하는 것의 높은 난이도와 공격자에게 경제적 이익을 줄 확률이 낮다고 밝혔다.archive-date=9 September 2018 2018년 12월, Zcoin은 신뢰할 수 있는 설정의 필요성을 없애고 제로코인 프로토콜 사용 시 거래의 출처와 코인 금액을 숨기는 Lelantus 프로토콜을 제안하는 학술 논문을 발표했다.archive-date=20 December 2018access-date=14 April 2019
# 아키텍처
제로코인 기능을 사용하는 거래는 에스크로 풀에서 인출되며, 각 코인의 거래 이력은 코인이 나올 때 지워진다.access-date=2018-12-21 거래는 영지식 증명으로 검증되며, 이는 질문에 대한 다른 세부 정보는 밝히지 않고도 명제가 참임을 증명하는 수학적 방법이다.url-status=dead
# 제로캐시
2013년 11월 16일, 매튜 D. 그린은 거래 금액을 숨김으로써 추가적인 익명성을 제공하는 제로캐시 프로토콜을 발표했다.website=Twitter.com 제로캐시는 거래 크기를 98% 줄이지만, 계산 비용이 상당히 많이 들어 최대 3.2GB의 메모리가 필요했다.language=en-USs2cid=5939799 최근 프로토콜 개발로 이 요구량은 40MB로 줄어들었다. 제로캐시는 간결한 비대화형 영지식 주장(succinct non-interactive zero-knowledge arguments of knowledge, zk-SNARK라고도 함)을 활용한다. 이는 계산의 무결성을 증명하기 위한 특별한 종류의 영지식 증명 방법이다.url=http://eprint.iacr.org/2013/879 이러한 증명은 300바이트 미만이며 몇 밀리초 만에 검증될 수 있고, 거래 금액을 숨기는 추가적인 장점도 있다. 그러나 제로코인과 달리 제로캐시는 신뢰할 수 있는 개체에 의한 초기 설정이 필요하다.access-date=2018-12-19 제로코인 프로토콜의 개발을 이끈 매튜 D. 그린 조교수가 개발한 Zcash는 2013년부터 개발이 시작된 최초의 제로캐시 기반 암호화폐이다.first1=Nathaniel
# 암호화폐

## Zcoin (XZC)
Zcoin 2014년 말, 존스 홉킨스 대학교 정보보안 석사 과정 학생인 포라민 인솜(Poramin Insom)은 매튜 그린을 교수로 하여 제로코인 프로토콜을 암호화폐에 구현하는 논문을 작성했다.archive-date=24 August 2018archive-date=5 May 2019 로저 버와 팀 리(Tim Lee)는 Zcoin의 초기 투자자였다.archive-date=29 December 2017 포라민은 또한 태국 바트를 Zcoin으로 직접 변환할 수 있는 "사탕(Satang)"이라는 거래소를 설립했다. 2017년 2월 20일, 제로코인 프로토콜에 대한 악성 코딩 공격으로 37만 개의 가짜 토큰이 생성되었고, 공격자들은 이를 400비트코인(44만 달러) 이상에 팔았다. Zcoin 팀은 코드의 단일 기호 오류로 인해 "공격자가 해당 민트 없이 제로코인 지출 거래를 생성할 수 있었다"고 발표했다.access-date=2018-12-21 DAO 사태 당시의 이더리움과 달리, 개발자들은 코인을 파괴하거나 새로 생성된 코인을 되돌리려는 시도를 하지 않기로 결정했다.archive-date=11 August 2018 2018년 9월, Zcoin은 토르나 VPN을 사용하지 않고도 발신자의 IP 주소를 숨기는 댄들라이언 프로토콜을 도입했다.archive-date=15 December 2018archive-date=2 January 2019 2018년 11월, Zcoin은 민주당 (태국)에서 InterPlanetary File System (IPFS)을 사용하여 세계 최초의 대규모 당내 선거를 실시했다.archive-date=3 December 2018 2018년 12월, Zcoin은 채굴자들에게 더 많은 메모리를 요구하여 ASIC의 코인 채굴 사용을 억제하는 채굴 알고리즘인 머클 트리 증명을 구현했다. 이는 일반 사용자들이 중앙 처리 장치 (CPU)와 그래픽 카드를 사용하여 채굴할 수 있게 하여, 코인 채굴의 평등주의를 가능하게 한다.archive-date=6 December 2018 2019년 7월 30일, Zcoin은 "시그마(Sigma)"라는 새로운 프로토콜을 채택하여 제로코인 프로토콜에서 공식적으로 벗어났다. 이 프로토콜은 위조된 프라이버시 코인이 코인 공급을 부풀리는 것을 방지한다. 이는 제로코인 프로토콜에서 "신뢰할 수 있는 설정"이라는 기능을 제거함으로써 달성된다.archive-date=30 July 2019
# 반응
제로코인에 대한 한 가지 비판은 프로세스에 필요한 추가적인 계산 시간으로, 이는 주로 비트코인 채굴자들이 수행해야 했을 것이다. 만약 증명들이 블록체인에 게시되었다면, 이는 또한 블록체인의 크기를 극적으로 증가시켰을 것이다. 그럼에도 불구하고, 원 저자가 명시했듯이, 증명들은 블록체인 외부에 저장될 수 있었다.publisher=전기전자공학자협회 제로코인은 제로코인을 발행하는 데 사용된 비트코인과 동일한 액면가를 가지므로, 동일한 액면가를 가진 다른 제로코인(또는 소수의 제로코인)이 현재 발행되었지만 사용되지 않은 상태가 아니라면 익명성이 손상될 수 있다. 이 문제에 대한 잠재적인 해결책은 특정 고정 액면가의 제로코인만 허용하는 것이지만, 이는 한 거래에 여러 개의 제로코인이 필요할 수 있으므로 필요한 계산 시간을 증가시킬 것이다. 특정 구현에 따라 제로코인은 쉽게 인수분해할 수 없는 매개변수를 생성하기 위해 두 개의 매우 큰 소수를 필요로 한다. 따라서 이러한 값은 신뢰할 수 있는 당사자가 생성하거나, 신뢰할 수 있는 당사자의 요구 사항을 피하기 위해 RSA 인수분해 불가능한 개체에 의존해야 한다. 그러나 이러한 설정은 제로캐시 프로토콜에서는 불가능하다.