[Consensus] NXT - 최초의 Full PoS 코인(The 1st Full PoS Cryptocurrency) v1.1


NXT - 100% Proof-of-stake Cryptocurrency


<https://nxtplatform.org>


□ 잡종은 물렀거라, 순종이시다

 ㅇ 개념 : 처음부터 오픈 소스(OpenSource) 자바(Java)로 구축된 100% 지분증명방식(이하 PoS)의 암호화폐다.

 ㅇ 의의 : PoS가 Solidcoin2에서 아이디어가 생겨났고 PeerCoin에서 실제로 구현되었다면, NXT는 출시(2013년 11월 24일)부터 현재까지 오로지 PoS만을 사용하고 있으며, 독특한 특징과 기능을 선보여 블록체인과 암호화폐 영역에 신선한 충격을 안겨줬다.

 ㅇ 초기배분 : Full PoS의 특성상, 출시부터 누군가는 지분을 갖고 있어야했기 때문에, NXT측이 비트코인 커뮤니티를 통해 2개월(2013년 9월 18일 ~ 11월 18일)간 총 21비트코인을 기부한 73명에게 초기배분되었다.

 ㅇ 스펙
   - 규     모 : 총 10억개의 사용가능한 토큰이 제네시스 블록에 배포되었다.
   - 블록생성 : 네트워크 노드에서 잠금 해제 된 계정에 의해 평균 60초마다 생성된다.
   - 제     한 : 아키텍처 및 블록 크기 제한은 하루 최대 367,200 트랜잭션 처리를 허용한다.

□ 키워드로 본 Full PoS

 ㅇ 최초의 100% 지분증명방식
   - '블록생성을 통해 받은 총 보상'은 '블록 내에 위치한 트랜잭션 수수료의 합계'와 같다.
    => 블록 생성의 결과로 새로운 코인을 생성하지 않는 대신 거래수수료를 제공하며, 이런 보상방식을 '단조(Forging)'라고 함
   - 누적난이도값(A cumulative difficulty value)은 각 블록에 매개변수로 저장되며, 다음으로 생성될 블록의 경우 이전 블록 값에 새로운 난이도를 유도한다.
     => 작업증명방식(PoW)에서 가장 빠르게 채굴되는 체인이 메인체인이 되는것처럼, 여기서는 누적난이도값이 가장 높은 블록을 메인체인으로 선택한다.
   - 블록생성을 하기 위하여 임의의 시점부터 1,440개의 블록이 생성되는 동안 한 계정에 지분을 스테이킹하여야 하며, 이 기준이 충족되는 계정은 '활성계정(Active Account)', 지분은 '유효지분(Effective Balance)'이라고 한다.
     => 악의자가 블록 생성 확률을 조작하는 수단으로 한 계정에서 다른 계정으로 스테이크를 이동하지 못하게 하기 위함이다.
   - 블록생성은 유효지분, 마지막 블록생성이후의 시간, 기본목표값(Base Target Value)*에 의해 정해진다.
    *기본목표값(Base Target Value) : 블록생성시 이 값보다 작은 해시값을 찾아야 한다.
    => 피어코인의 경우 블록생성시 코인나이를 활용하며 만약 고아블록*이 발생되면 활용된 코인나이가 다시 원위치되는데, 이는 그라인딩 공격**을 포함한 네트워크 공격 비용을 낮추게 되는 꼴이 되어버린다.
   * 고아블록 : 체인분리시, 메인체인이 되는 경쟁에서 밀린 체인의 블록을 의미한다.
   ** 그라인딩 어택(Stake Grinding Attack) : PoS는 확률에 따라 다음 블록생성자를 선정해야 하는데, 이때 그 선정을 위한 랜덤 변수를 만들고 랜덤으로 선정된 슬롯 리더(Slot Leader)가 블록 생성자의 순서를 정한다. 악의자는 이 특성을 악용하여 마지막 블록생성을 하게되면, 마지막 블록정보를 바탕으로 랜덤변수를 계산하여 본인이 추가블록생성에 유리한 쪽으로 임의조작할수있다.

 ㅇ 독창적인 코인 메커니즘
   - NXT 코인은 제네시스 블록 생성과 함께 10억 코인이 발급되는데, 이때 제네시스 계정이 마이너스 10억NXT 잔고가 되며, 제네시스 블록에 보내는 코인은 소각된다. 또한 제네시스 블록은 거래 수수료를 지불할수 없기때문에 어떤 종류의 거래도 할수 없다.
     => 제네시스 계정이 마이너스 10억NXT 잔고가 되는건, 애초에 0에서 시작하므로 초기배분자들에게 10억개를 나눠주었기 때문이다. 이제와서 보면, 당연하지만 독특하며 신선하다.

 ㅇ 피어 - 네트워크 노드
   - 네트워크의 노드는 트랜잭션에 기여하거나 데이터를 네트워크에 차단하는 모든 장치로, NXT에서는 이를 '피어(Peer)'라고 부른다.
   - 유형
     1)각인노드(Hallmarked Node) : 계정 개인 키에서 파생 된 암호화 된 코인으로 각인이 된(태그가 지정된) 노드로서, 책임과 신뢰의 수준을 추가하기 때문에 네트워크상에서 보통 노드보다 신뢰도가 높다. 따라서, 각인노드에 연결된 계정의 잔액이 클수록 해당 노드에 더 많은 신뢰가 부여된다.
     => 이런 특성으로 인해 악의자가 공격을 하기 위해서 네트워크 내에서 신뢰성을 얻으려고 하겠지만, 그와 동시에 적절한 신뢰를 구축하는데 필요한 NXT가 진입장벽으로 작용된다.
     2)보통노드(Normal Node) : 각익되지 않은 노드로, 기본적으로 다른 노드의 네트워크 요청수를 초당 30개로 제한하는 Anti-DDos 메커니즘을 지닌다.

 ㅇ 블록 및 블록생성
   - NXT에서 각 블록은 최대 255개의 트랜잭션을 포함하며 (모두 식별 매개 변수를 포함하는) 블록 헤더가 앞에 온다. 참고로, 최대 블록 크기는 42KB이며, 모든 블록에는 다음 매개 변수가 포함된다.
   - 블록생성 즉 단조(Forging)시, 어떤 계정이 블록을 생성 할 자격이 있는지, 어떤 계정이 블록을 생성 할 권한을 얻는지, 그리고 어느 블록이 충돌시 정상 블록으로 간주되는지는 '기본목표값', '목표값', '누적난이도'에 따라 결정된다.
     => 블록생성을 하기 위해서는 기본목표값(Base Target Value)보다 적은 해시값을 찾아야하며, 각 계정은 유효지분을 가지면서 기본목표값을 참고삼아 자체 목표값(Target Value)을 구하며, 기본목표값을 참고삼아 메인체인을 선정하기 위해 이전 블록에 입력할 누적난이도를 도출한다.

 ㅇ 거래 수수료의 역할
   - NXT가 다시 네트워크로 재순환되는 주요 메커니즘으로, 이 거래수수수료가 블록생성에 대한 보상으로 쓰인다.
   - 모든 거래에는 수수료가 필요하며, 최소 수수료가 정해져있어서 그 수수료보다 적은 수수료가 지정된 거래는 노드가 거래허용을 하지 않는다.


□ 마, 내가 진정한 PoS다!


 ㅇ NXT가 PoS영역에 쏘아올린 작은공
    - NXT는 최초의 100% PoS이기 때문에, 초기코인배분부터 블록생성방식, 수수료체계, 노드의 역할까지 기존 비트코인 및 비트코인 포크 코인과는 차별화된 메커니즘을 지닐수 밖에 없었을 것이다.
    - 무엇이든 처음 선보이는 것들은 많은 시행착오와 비판을 받기 마련이고, NXT 역시 초기배분시 모금한 사람들이 많지 않아 부득이하게 소수집단에 배분되어 버렸지만, 그럼에도 PoS이 할 수 있는 영역을 확장시켰고, 이후 많은 PoS프로젝트에 영감을 불러일으켰다.
    - 개인적으로, 앞으로 합의프로토콜의 트렌드가 PoW이 수렴하고 PoS가 발산할거라고 생각하는데, PoW위주의 코인들이 존재할때 보여준 NXT만의 도전성과 독창성을, 다른 누군가가 또다른 이정표를 보인다면 더 나은 PoS 메커니즘이 탄생할거라고 믿어 의심치 않는다.



법적 고지 : 본 게시글은, 투자를 위한 정보제공을 목적으로 작성되었기에 투자결정은 신중을 기하여 주시기 바라며, 참고자료를 토대로 본인 판단하에 내용을 추가, 편집 등 작성되었기에 본인의 허락없이 복사, 배포, 편집 등을 할 수 없습니다.



<References>
1)http://nxtwiki.org/wiki/Whitepaper:Nxt#cite_ref-4

댓글

이 블로그의 인기 게시물

[Rave]Raven Devs Meeting(5 July, 2019) // 레이븐 개발자 회의 분석 및 논평(5 July, 2019) v1.0

[Insight] JP모건을 통해 본 월가와 코인시장(2부작) 1부 // Wallstreet and CryptoMarket with JPmorgan part1 v1.2

[Insight] JP모건을 통해 본 월가와 코인시장(2부작) 2부 // Wallstreet and CryptoMarket with JPmorgan part2 v1.3