크립토노트
크립토노트(Cryptonote)란 송신자를 식별하지 못하도록 개인 정보 지향 디지털 통화에 사용되는 프로토콜이다. 크립토노트의 첫 번째 버전은 2012년에 등장하여 Tor에 발표되었다. 백서 원본 작성자는 알 수 없으며 니콜라스 반 사베르하겐(Nicolas van Saberhagen)이라는 익명의 이름을 사용했다. 크립토노트 코인 거래의 공개 키는 수신되기 전에 그룹으로 묶여 있기 때문엔 송신자를 식별하는 것을 불가능하게 만든다. 대표적인 크립토노트 코인은 모네로(Monero)와 바이트코인(Bytecon)이 있다.
목차
배경
'비트코인'은 P2P 전자 화폐를 성공적으로 현실화한 사례이다. 전문과들과 대중들은 public transaction과 proof-of-work 방식을 신뢰할 수 있는 모델로 평가했다. 일반 소비자들은 낮은 수수료와 익명성에 이끌리고 있으며, 상인들은 예견이 가능하고 분산화된 화폐 발행을 긍정적으로 생각한다. 비트코인은 전자화폐가 지폐처럼 단순하고 신용카드처럼 편리하다는 사실을 효과적으로 입증했다. 하지만, 비트코인에서는 몇가지 단점이 존재한다. 예를 들어 시스템의 분배는 경직되어 있으며, 모든 네트워크 이용자들이 클라이언트를 업데이트 해야만 새로운 기능이 도입될 수 있다. 단점을 빨리 개선할 수 없다는 점은 비트코인의 확산을 막고있다. 이러한 경우에는 기존의 것을 개선하는 것보다 아예 새로운 프로젝트를 만드는 것이 효율적이라 생각해 비트코인의 주된 단점에 대한 해결책을 제시하고자 나온 것이 크립토노트이다.
특징
- 추적 불가능한 트랜잭션 : 크립토노트는 링 서명이라는 방식을 사용하여 보내는 사람이 누군지 알 수 없도록 숨긴다.
- 연결되지 않은 트랜잭션 : 보내는 사람이 누구인지 몰라도 받는 사람이 누구인지는 알 수 있다. 크립토노트는 트랜잭션마다 한번만 사용하는 주소를 만들어 낸다. 이 주소는 받는 사람의 공개키로 부터 생성된 것으로, 오직 받는 사람만이 자신의 것인지 알 수 있다.
- 이중 사용 방지 : 동일 코인을 두번 사용하지 못하게 하는 이중사용방지는 모든 코인들이 가져야할 가장 중요한 기능이다. 크립트노트는 익명성을 보장하면서도 동일 코인을 두번 사용할 수 없도록 구성되어있다.
- 블록체인 분석 방지 : 크립토노트는 보내는 사람과 받는 사람을 알 수 없다. 그러니 분석 또한 불가능하다. 즉, 진정 완전한 익명성을 제공하는 것이다. 당연히 부자 목록(Rich list)같은 분석장표는 아예 만들 수 없다.
- 평등한 작업증명 : 크립트노트는 작업증명에 크립토나이트라는 해쉬 알고리즘을 사용한다. 이 알고리즘은 ASIC(Application-specific integrated circuit)에 사용하기 어렵게 되어 있다. 그러므로 비트코인처럼 대형 채굴장에서 특수 장비로 채굴하지는 못한다. 그러나, 실제로 평등하지는 않다. CPU 보다는 GPU가 훨씬 빠르기 때문에 다량의 GPU 채굴기를 사용하는 경우가 많다. CPU만으로도 어느정도 속도는 나오니 CPU 채굴도 가능은 하다.
장점
안정적인 통화량 발행
크립토노트 전자 코인의 상한값은 Msupply = 2^54-1 원자단위이다. 이러한 것은 기술적인 제한값이며 "N개의 코인이 충분하다"라는 직관적 방식에서 계산된 것이 아니다. 발행 과정을 안정적으로 유지하기 위하여 블록 리워드에 대해 다음과 같은 공식을 사용한다. BaseReward = (Msupply - A) >> 18 여기에서 A는 이전에 생산된 코인의 양을 의미한다.
수정 가능한 파라미터
난이도
크립토노트에서는 모든 블록마다 난이도를 변경시킨다. 네트워크 해쉬레이트가 급격하게 성장하거나 감소할 때에 대한 반응시간이 낮아질수밖에 없고, 일정한 블록 속도로 고착된다. 원래의 비트코인 방식에서는 마지막 2016개의 블록간의 목표 기간과 실제 기간을 비교하게 되고, 이를 현재의 난이도에 대한 배수로 적용한다. 이러한 비트코인의 방식에 따르면 난이도가 급증 급락한다는 단점이 있다. 크립트노트의 기본적인 알고리즘은 노드에 의하여 계산된 모든 일을 합치고, 그들이 소비한 시간으로 나누는 것이다. 일의 단위는 각각의 블록의 난이도 값에 상응한다. 하지만 타임스탬프(Timestamp)에서의 부정확성과 비신뢰성 때문에 블록 사이의 정확한 시간 간격을 알아내기는 어렵다. 만약 한 사용자가 타임스탬프를 미래로 전환한다면 다음의 간격은 감소하거나 심지어 음수가 될 것이다. 이러한 사례가 거의 없을 것으로 생각 되며, 단지 타임스탬프를 정리하고 초과분을 소거할 것이다.(20퍼센트 정도) 나머지 값들의 범위는 80퍼센트의 상응하는 블록에 대하여 소비한 시간값이다.
사이즈 제한
사용자들은 블록체인을 저장하는 것에 대하여 지불하며, 사이즈에 해당하는 투표 권한을 가진다. 모든 채굴자들은 수익과 지용의 균형 사이에서 절충을 선택해야 하는데, fee와 블록을 만드는 것에 대한 자신만의 소프트 리미트(soft-limit)에 대한 균형이다. 또 위조 트랜잭션을 막기 위해서 최대 블록 사이즈에 대한 핵심 규칙을 필수적이다. 하지만 이러한 값은 수정할 수 있어야 한다. 트랜잭션 사이즈는 명시적으로 제한될 필요가 없다. 블록의 사이즈에 따라 달라지며, 만약 누군가가 수백개의 인풋/아웃풋을 이용하여 거대한 트랜잭션을 보내고자 한다면 충분한 수수료를 지불함으로써 트랜잭션을 진행할 수 있다.
사이즈 초과 페널티
채굴자는 최대 사이즈 2Mb까지, 블록을 수수료가 없이는 트랜잭션으로 가득 채울 수 있다. 다수의 채굴자들이 중간값을 변화시킬 수 있지만 블록체인이 부풀 가능성이 있으며, 노드에 추가적인 부하가 걸릴 수 있다. 이러한 규칙은 큰 사이즈가 최소 자유 블록 사이즈보다 클 때만 적용된다. 자유 블록 사이즈는 최대(10kb, Mn 110%)에 다다른다. 채굴자들은 '일반적인 사이즈'의 블록을 만들 수 있으며, 전체적인 비용이 패널티를 넘어서면 평소의 크기보다 클 수도 있다. 하지만 패널티 값은 2차식으로 증가하는 반면 비용은 2차식으로 증가하지 않기 때문에 균헝을 이루게 된다.
트랜잭션 스크립트
크립트노트는 굉장히 최소화된 스크립트 서브시스템을 가지고 있다. 만약 공개키와 통합된 아웃풋 스크립트(output script)가 송신자에게 지나치게 클 경우에, 특별한 아웃풋 타입(output type)을 이용할 수 있다. 송신자가 단지 그것에 대한 해쉬를 공급하는 반면 수신자는 이 데이터를 그의 인풋으로 보내게 될 것이다. 이러한 접은근 비트코인의 'pay-to-hash'와 유사한 방식이다. 새로운 스크립트 명령을 추가하는 대신에, 데이터 구조 수준에서 이러한 케이스를 다룬다.
활용
- 바이트코인(ByteCoin) : 바이트코인은 2012년 7월 발행된 역사가 꽤나 오래된 코인이며, 안전한 인프라 구현을 위하여 크립트노트 기술을 채택하여 구현한 최초의 암호화폐이다. 바이트 코인은 거래시 블록체인 주소가 포함되어 있지 않아 결제 내역에 완벽한 익명성이 보장된다. 코인코드로는 BCN을 사용한다.
- 모네로(Monero) : 모네로는 개인정보보호와 익명성을 보장하는 프라이버시 코인 계열의 암호화폐이다. 모네로라는 이름은 에스페란토어로 동전을 뜻하는 단어에서 유래되었다. 모네로의 화폐 단위는 XMR로 표시한다. 2014년 4월 모네로 코어 팀이 C++ 언언로 개발했다. 핵심 개발자 겸 리더는 리카르도 스파그니(Riccardo Spagni)이다. 크립토나이트(CryptoNight) 해시 알고리즘 기반의 작업증명(Pow) 방식으로 채굴한다.
- 디지털노트(DigitalNote) : 디지털노트는 비트코인과 같은 분산형 디지털 화폐의 일종인 암호화폐다. 크립토노트라는 익명 기술을 기반으로 하여 고유하며 추적 불가능한 암호화 메시지 시스템 및 블록체인 기반 예끔 기능을 갖고 있다. 분산화된 P2P 네트워크를 사용하여 처리비용이 0에 가깝고 전세계의 개인정보 보호 트랜잭션 및 추적불가 암호화 된 메시지 전송을 즉시 제공한다.
- 크립토노트코인(CryptoNoteCoin) : 크립토노트코인은 교율 목적으로 출시 된 공식 참조 코인이다. 크립토노트 기능을 보여준다. 블록이 2달마다 생성되기 때문에 사실상 상업적 가치가 없다.모든 사용자는 거래소에서 크립토노트코인을 구매 또는 판매하거나 순수 교육 이외의 목적으로 적용하지 않는 것이 좋다.
- Boolberry(BBR) : Boolberry는 몇 가지 조정으로중요한 크립토노트 실험이다. 크립토나이트 대신 Wild Keccak 해시 함수를 사용한다. Boolberry는 연결 불가능한 출력, 주소 앨리엇이 및 네트워크 경고 전송 기능에 대해 보장된 수준의 익명성을 제공한다.
- 대시코인(DashCoin) : 대시코인은 2014년 7월 5일 시작된 암호화폐이다. 대시코인은 바이트코인의 포크로, 크립토노트 알고리즘을 활용한다. 대시코인의 목표는 주어진 순간 자동으로 최초의 암호화된 바이트코인의 완벽한 미러 이미지를 생성하는 것이다. 유일한 차이점은 공급량이다.
- 다크넷코인(DarkNetCoin) : 다크넷코인은 P2P 교환, 온라인 상점, 로또, 도박 및 베팅과 같은 익명의 애플리케이션을 위한 플랫폼인 다크넷스페이스(DarkNetSpace)의 일반적인 통화다. 크립토나이트 대신 wild Kecak 해시함수를 사용한다. 4550번째 블록부터 블록 보상의 1퍼센트는 크립토노트 팀에, 9퍼센트가 다크넷스페이스 팀에 기부된다.
각주
참고자료
- 〈CryptoNote News〉, 《코인텔레그래프》
- justbear, 〈크립토노트(CryptoNote) 설명〉, 《스팀잇》, 2018-03-12
- 땡글IN, 〈크립트노트 Cryptonote 백서 번역 및 요약입니다. White paper 2/2〉, 《땡글닷컴》, 2017-08-11
- saranged, 〈(콩니 소개 정리#6)NBC, 바이트 코인!! 이건 알고 가자〉, 《스팀잇》, 2018-03-29
- VioletStarFly, 〈디지털노드(XDN)〉, 《티스토리》, 2018-01-08
같이 보기