[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

[Techonology] 장애모델 - 깨치고 나아가 끝내 이기리라 // Failure Model v1.2

□ 장애모델(Failure Model)이란

  ㅇ 개념 
    - 분산 네트워크 특성상, 네트워크 내 노드들이 서로 메세지를 보내며 해당 시스템을 유지하다보면 메세지가 잘 전달되지 않는 문제가 발생할수 있는데, 이런 장애가 일어날수 있는 방식 또는 그 장애를 처리할수 있도록 정의된 모델을 장애모델(Failure Model)이라고 부른다.

  ㅇ 중요성
    - 장애가 발생하는 방식과 그 해법을 알수 있다면, 더 큰 규모에서 더 효율적인 분산환경이 만들어질수 있으며 이는 곧 기술혁명을 불러일으킬수 있다.

  ㅇ 블록체인과의 연관성
    - 블록체인 역시 여러노드들이 존재하는 분산 네트워크이면서, 장애처리능력의 최고단계 즉, 가장 난이도가 높은 장애를 처리하는 방식을 다루고 있으며, 따라서 블록체인이 다른 분산네트워크가 다가기가에 어려우면서 혁신적으로 보이는 이유다.


□ 장애모델의 분류

< 장애모델의 계층도 >

 ㅇ 계층에 따른 종류(난이도 순)

   1) Fail-stop Failure Model
     - 개념 : 장애가 발생(Fail)하면 더이상 상태변화가 일어나지 않는다(Stop)
     - 특징 : 요청한 메시지는 언제나 도착하며 도착한 메시지는 정상이라고 가정한다.
     - 한계 : 메시지가 도착하지 않는 경우를 가정하지 않기 때문에 서버으 작동불능사고(Crash)가 상황발생하는 현실적인 장애를 처리할수 없다.

   2) Crash Failure Model
     - 개념 : 서버 작동불능되는 사고(Crash)에 대한 것도 고려된다
     - 특징 : 요청한 메세지에 대해 응답을 주지 않는 노드는 Crash됐다고 가정한다. 응답을 주지 않는 노드가 있을때의 장애를 대비하여, 그 노드를 대체하는 노드를 실행하여 문제를 해결할수 있다.
     - 한계 : 메세지가 도착하지 않는 원인을 Crash에 국한시켜서 다른 원인들에 대해 대응하지 못한다.

   3) Omission Failure Model
    - 개념 : 메세지가 도착하지 않는 원인을 하나로 보지않고 단순히 누락(Omission)됐다고 간주한다.
    - 특징 : 모든 메세지는 일정시간 이내에 도착하거나 그렇지 않으면 도착하지 않는다고 가정한다.
     - 한계 : 실제적으로 메시지가 도착하는 일정시간을 정할수 없는것이, 영영 도착하지 않거나 엄청 늦게 도착할수도 있지만, 그런 경우들을 고려하지 않았다.

   4) Performance Failure Model
    - 특징 : 메세지가 도착하지 않거나 엄청 늦게 도착하는 상황까지 고려한다.
    - 한계 : 메세지 도착 여부에 대한 고려는 하지만, 그 메세지가 전부 정상적이라고 간주한다.

   5) Authentication-detectable Byzantine Failure Model
    - 특징 : 도착한 메세지 중에서도 의도적이든 의도치 않든 비정상적 메세지를 보내는 장애(Byzantine Failure)까지 고려한다. *인터넷 규모 분산시스템에서 사용
    - 한계 : Byzantine Failure중에서 검증할수 있는 것만 처리한다.
     * 현재 사용되는 '인터넷' 규모의 분산시스템에서 사용되는 장애모델

   6) Byzantine Failure Model
    - 특징 : 메세지 도착 여부와 도착한 메세지의 정상 여부 그리고 검증해야만 하는 모든 장애에 대한 방식과 그 장애를 처리할수 있는 경우까지 처리한다.

ㅇ 관점에 따른 종류

    1) 장애발생 영역
      - 가치영역 : 서비스 응답의 값이 예상과 다르다.(메세지가 올수도 있지만 그게 정상인지는 모른다)
        예) Byzantine, Authentification detectable byzantine
      - 시간영역 : 메세지 처리의 타이밍이 예상과 다르다.(메세지가 오거나 늦게 오거나 아예 오지 않는다)
        예) Performance, Omission, Crash, Fail-stop

    2) 시스템 사용자의 인식에 따른 분류
      - 인식 일치 : 모든 시스템 사용자들이 장애에 대하여 인식(장애원인은 메세지가 도착 안하거나 늦게 도착해서)이 같다
        예) Performance, Omission, Crash, Fail-stop failures
      - 인식 불일치 : 다른 시스템 사용자들이 장애에 대하여 다르게 인식(장애원인이 다양하다)
        예) Byzantine, Authentification detectable byzantine

    3) 상황에 따른 결과
      - 무난한 장애 : 서비스 장애로 인한 결과는 정확한 서비스 제공에 의해 제공되는 이점과 동등하다. (장애의 피해 = 비장애의 이점)
      - 치명적인 실패 : 서비스 실패의 결과(는 올바른 서비스 제공으로 얻는 이익보다 훨씬 심각합니다. (장애의 피해 > 비장애의 이점)


□ 장애모델의 시사점

  ㅇ 블록체인에서의 의미
      - 블록체인 역시 분산 네트워크이기에, 선의든 악의든 비정상적인 행동을 하는 노드들이 있을수 있고 따라서 메세지 전달이 원활하지 않을수 있다. 또한, 블록체인은 탈중앙화를 모토로 하기에  그런 모든 장애에 대하여 별도의 주체없이 그런 장애를 정의하고 처리해야한다.
        - 블록체인을 도래할 4차산업혁명의 혁신들 중 하나로 꼽는 이유는 여러가지이겠지만, 기술적으로 볼때 가장 눈여겨 봐야하는 대목들 중 하나는, 앞서 설명한 가장 난이도가 높은 장애모델에서 실제 구현되었고 그 구현체가 큰 문제없이 돌아가고 있으며 점점 더 많은 참여자들이 가담하는 혁신적인 모델이기 때문이라고 생각한다. 여태까지 비트코인 등을 통하여 이런 난이도 높은 장애모델을 근간으로, 앞으로 블록체인이 우리에게 어떤 다른 도전과 매력을 보여줄지 개인적으로 많이 기대하는 바이다.



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



<References>
1) https://ti.tuwien.ac.at/cps/teaching/courses/dependable_systems-ss08/dcs_slides/dcs-2007-p5.pdf
2) https://blog.seulgi.kim/2018/05/byzantine-failure-why-blockchain-is-hard.html

[Technology] 체크포인트 // Checkpoint - The firewall for the safety of network v1.3

□ 체크포인트의 개요

  ㅇ 배경 
    - PoS의 시초인 피어코인의 경우, 악의자가 코인나이(코인보유의 양과 시간)를 교묘히 활용하여 51%공격을 감행할 경우를 대비하여, 개발자가 일정 블록(지점)마다 체크포인트를 두어 그 지점이전으로는 포크가 일어나지 않도록 했다

  ㅇ 목적 
    - 앞서 피어코인을 언급했지만 기본적으로 PoW의 특성상, 거대한 컴퓨팅 파워로 51%공격 등을 통해 네트워크를 장악할수 있는 가능성이 있기에 안정성과 완결성을 높이기 위함이다.
<https://pixabay.com>

□ 체크포인트에 대한 고찰

   ㅇ 사례와 방법
    - (사례) 비트코인 캐시 ABC는 체크포인트 시스템을 도입(2018.11.)하여 경쟁자인 비트코인 캐시 SV측의 공격을 대응함과 동시에 안정성을 보완하고자 했다.
    - (방법) 매 10개의 블록이 생성되면 그 시점에 체크포인트를 두어, 과거의 특정 블록으로부터 만들어진 포크체인이 있다해도 가장 최근의 체크포인트의 확인으로 대부분의 재편성*을 방지할수 있다.
    * 재편성(Reorg) : 블록체인에서 악의자가 포크된 체인을 활용하여 메인체인을 만들려고 시도가 성공하여 기존 메인체인이 바껴지는 현상

   ㅇ 그에 따른 주장과 반박
    - (주장1) 치명적인 재편성(Reorg)의 가능성이 줄어든다. 기존의 경우 먼 과거의 블록, 심지어 제네시스 블록으로부터 장거리 공격을 감행하여 재편성을 시도하였지만, 매 10블록마다 체크포인트를 두었기 때문에 심각한 재편성의 위협으로부터 벗어나게 됐다.
    - (반박1) 통상적으로 체크포인트는 코드변경시 개발자가 임의로 적용함으로서 주최측의 권한이 더 커지고 결국 중앙화되는데, 체크포인트 도입 그 자체가 네트워크 안정성을 해치게 된다.
    - (재반박1) 이번의 경우, 체크포인트가 개발팀이 아닌 노드 소프트웨어에 의해 자동으로 생성되기 때문에 지적한 문제가 발생하지는 않는다.
    - (반박2) 매 10블록마다 체크포인트를 둔다하여도 리오그의 위협에 완전히 벗어나지는 않으며, 오히려 체크포인트 직후 악의자가 메인체인과는 별도로 몰래 포크체인을 운영하다가 다음 체크포인트를 선점할수도 있다. 그렇게 되면 해당 네트워크에 심각한 손상을 줄수있는 상황이 벌어지게 된다.
    - (재반박2) 물론 그런 상황이 벌어질수도 있지만 근본적으로 몇개의 체크포인트 선점에 대한 경제적 동기가 크지 않다. 더욱이, 악의자가 체크포인트를 선점하는 등의 이상 징후가 발견되면 거기에 즉시 대응할수 있도록 할 계획이다.
    - (반박3) 어쨌든 체크포인트가 있다는 의미는, 체크포인트 시점이 악의자가 공격을 개시할 가능성이 있는 시점이며, 또다른 공격전략이 새로 나올수도 있다.
    - (재반박3) 악의자가 공격을 개시할수 있는 시점이 있다는 것은 곧 공격에 대한 대응 시점 역시 예측하기 용이하며, 지속 모니터링과 향후 업데이트를 통해 보완할 계획이다.


□ 블록체인의 방화벽

  ㅇ 체크포인트의 역할
     - 비트코인 캐시의 실제 체크포인트 도입에 대한 리뷰와 본인이 생각하는 일장일단을 섞어서 나름대로 토론식으로 옹호와 반박의 입장을 정리해보았다. 
     - 안전성(Safety)나 확정성(Fanality) 대신에 생존성(Liveness)를 강조한 PoW의 특성상, 악의적인 공격이 있을경우 메인체인의 존재가 위협될수도 있는데, 체크포인트를 두어 그 시점 이후로는 절대 변할수 없는  확정성(Fanality)를 보장해줄수 있다고 본다. 
     - 이것은 마치 건물에 화재가 났을때 일정 구역에 방화벽을 내려 불이 더이상 그 지점 넘어서 오지 않도록 하는 것과 비슷하다고 볼 수 있다.

  ㅇ 체크포인트의 가능성
    - 본문에서는비트코인 캐시를 예로 들었지만, 향후 이더리움이 캐스퍼를 도입할때도 체크포인트가 나올것이다. 이 체크포인트는 51%공격 등 블록체인 네트워크를 해하는 시빌공격(Sibil attack)을 완벽히 막을수는 없지만, 기존의 그 어떤것보다 공격에 대한 방어력을 높이는데 도움이 될것이다. 앞으로 투자하면서 코인의 프로젝트를 볼때, 체크포인트가 나오면 이 글을 상기시키면서 어떤 메커니즘에서 이 체크포인트가 적용되는지 분석하고 자신만의 생각을 정리해보길 바란다. 




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





<References>
1) https://blog.bitmex.com/?lang=ko_kr

[Consensus] 피어코인(PPC) - PoS의 개척 // PeerCoin - The Pioneer of PoS) v1.3

피어코인(PPC, PeerCoin) - PoS의 개척

< 서 론 >

ㅇ 노동성과분배론에서 자산보유배당론으로

  - 작업증명방식(Proof of Work, 이하 PoW)에서는 채굴자가 해당 코인을 보유하지 않더라도 채굴(노동)성과에 따른 보상이 주어지며, 따라서 경쟁을 통해 자신의 수익을 높이는 데에만 열중한다 -"일하지 않는 자여, 먹지도 마라!"
  - 지분증명방식(Proof of Stake, 이하 PoS)에서는 기본적으로 해당코인을 보유해야하며, 보유량이 많을수록 보상을 얻을 가능성이 크다. 간혹, 이러한 특성으로 인해 일부 방식에서는 다른 이(노드)에게 스테이킹 권한을 빌려주거나 투표로 권한을 위임하기도 한다 -"돈 없는 자여, 먹지도 마라!".

ㅇ PoS는 암호화폐 영역의 중고신인

  - PoS는 여전히 새로운 것처럼 비춰지지만, 그 역사는 생각보다 오래되었다. 
  - 2011년 7월 한 비트코인 커뮤니티에서 제안되고 같은해 10월  Solidcoin2*을 통해 PoS의 구현가능성이 점쳐질때쯤, 암호화폐 커뮤니티에서는 새로운 트렌드가 일어나고 있었다
   *한때 PoW방식을 활용한 SolidCoin은 매우 낮은 트랜잭션 고정 수수료(0.01/tx)가 적용되었고, 당시 누군가 엄청난 트랜잭션을 일으켜 사실상 해당 체인 메커니즘을 무너뜨렸다. 이후 보완책으로 일정량(1백만코인) 이상 보유자를 '신뢰할수 있는 노드(Trust node)'로 하여 검증자 역할을 부여하였는데, 실제로 잘 구현되지는 않았지만 어쨌든 이것이 PoS를 태동케 하였다. 

<https://www.peercoin.net>

< 본 론 >

ㅇ 코인나이(Coin age)를 활용한 PoS 기반의 피어코인

   - 피어코인은 PoW와 PoS을 결합하였는데, 일차적으로 블록생성은 순수한 PoS방식으로 이루어진다.
   - 코인나이가 많을수록 채굴난이도가 낮아지며, 코인나이는 코인보유기간과 보유코인수를 곱하여 산출된다. 근단적인 예로, 노드가 둘 뿐이고 다른 조건이 없다치고, A가 10일동안 1개의 코인 보유하고 B가 5일동안 4개의 코인을 보유하면, B가 A보다 블록생성할 확률이 2배 높다.
   - 물론, 블록생성시 무작위성도 같이 적용되고, 코인보유기간이 30일 이상되어야 블록생성 경쟁에 참여가능하며, 한번 블록생성하면 다시 최소 30일 기다려야 하는 등 조건들이 존재하지만 어쨌든 2가지 방식의 장점이 나름대로 결합된 하이브리드 방식이다.
   - 이런 특성으로 인해, 코인나이가 가장 많은 체인이 피어코인의 주 체인(Long Chain)이라고 볼수있다.


ㅇ 꽃길만 가자던 피어코인 앞에 나타난 돌길

   - (꽃길1) 채굴 경쟁을 하되 지분보유량에 따라 유불리가 결정되기에 해시파워를 키워야할 필요성이 없어져 과도한 경쟁을 줄일수 있었고,
   - (꽃길2) 무한 해시경쟁에서 벗어난 만큼 에너지 소모문제도 없어지고 보다 친환경적이었다.
   - (돌길1) 그런데 네트워크 연결과 무관하게 코인나이는 많아지기 때문에 네트워크에 연결된 참여자(특히, 풀노드)가 적어지며, 이는 보안을 취약하게 만들었다.
   - (돌길2) 어떤 악의자가 피어코인의 PoS을 악용하여, 코인보유량을 늘리든 코인보유기간을 늘리든 축적된 코인나이를 활용한 영악한 51% 공격을 할때, 장거리 공격*을 할수도 있다. 물론 이를 미연에 방지하고자 피어코인 측은 일정 블록(지점)마다 체크포인트**를 두어 그 지점이전으로는 포크가 일어나지 않도록 하여 안전성을 높이고자 했으나, 문제는 좋은취지임에도 불구하고 개발자가 임의로 체크포인트를 삽입하여 특정인에게 더 많은 권한이 부여되고 중앙화가 심화됐다는 비판을 받게된다.
   *장거리 공격(Long-Range Attack)은 : 제네시스 블록 또는 과거의 블록부터 시작하는 새로운 체인을 주 체인으로 만들어 이중 지불을 하려는 시도다. PoS의 특성상 새롭게 블록을 계산해 이어 붙이는 것은 어려운 일이 아니므로 소량의 지분으로도 평균 블록 생성 속도보다 빠르게 이어 붙일 수 있으며, 그렇게 포크한 체인이 메인체인보다 길어지져 새로운 메인체인으로 인정되면 장거리 공격은 성공한다.
   **체크포인트(Checkpoint) : 개발자가 일정 블록(지점)마다 체크포인트를 두어 그 지점이전으로는 포크가 일어나지 않도록 했다



< 결 론 >

ㅇ 졌지만 잘 싸웠다

  - 역사적으로 첫 시도는 새로운 패러다임을 불러오지만 문제점을 드러내면서 그 상징성이 바래진다. 피어코인 역시 최초로 PoS를 구현한 혁신을 불러왔지만, 그 한계를 드러내며 그 혁신을 이어가지 못한채 그저 명맥을 유지하고 있다. 
  - 하지만 그 덕분에 피어코인의 씨앗이 차기 프로젝트들에 심어졌고 여전히 수많은 암호화폐들이 PoS를 기반으로 하고 있고 계속해서 나오고 있다. 본인도 모른 프로젝트들을 다룰수 있으면 좋겠지만, 대표적인 몇몇 PoS프로젝트에 대한 이야기를 이어 나갈 것이다.




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




<References>
https://www.reddit.com/r/peercoin/comments/7tv7fu/peercoin_first_pos_coin/
https://ko.wikipedia.org/wiki/%EC%A7%80%EB%B6%84%EC%A6%9D%EB%AA%85
https://peercoin.net/assets/paper/peercoin-paper.pdf
http://blog.naver.com/PostView.nhn?blogId=jruits&logNo=221015497000&parentCategoryNo=&categoryNo=12&viewDate=&isShowPopularPosts=false&from=postView
https://blog.bitmex.com/please-translate-in-ko_kr-complete-guide-to-proof-of-stake-ethereums-latest-proposal-amp-vitalik-buterin-interview/

[Trading] 내 코인은 누가 옮겼을까? // Who's Moved My Coin? - Why can't you be the winner (even in bull market)? v1.1

내 코인은 누가 옮겼을까

□ 수익창출에 대한 의문

  - 코인투자를 하면서 우리는 스스로 이런 질문을 던집니다.
  - "왜, 도대체 왜, 버는 놈만 벌고 심지어 상승장에도 나는 이익실현하기 어려울까??"(자괴감)
  - "혹시 또다른 코인붐이 오면 다 부자되는 거 아닙니까??"(쓸데없는 걱정)
  - "무엇이 잘못 되었길래 난 이렇게 말도 안되는 상황에 직면한걸까??"(멘붕)
공감합니다. 이해합니다. 그래서 간단한 질문이지만 막상 답변하기 힘든 내용을 다뤄봤습니다.

<https://cryptonewsreview.com>


□ 수익창출에 대한 의문에 대한 3가지 분석

1. 일단 기회가 평등하지 않습니다. 

- 여기서 말하는 기회는 여러가지일겁니다. 
- 누군가는 대박난 또는 통찰력있는 지인을 통해 손쉽게 또는 이른시점에 진입하여 이해를 넓혀가며 기회를 엿볼수도 있고, 다른 누군가는 뉴스를 통해 부정적인 이미지로 아예 이바닥 진입조차 주저할겁니다. 
 - 어떤 경로로 언제 진입했다하더라도 상황에 따라서 기회일수도 위기일수도 있죠. 2017년 초에 진입했어도 손해보기는 어렵겠지만 2017년 말이나 2018년 초에 진입했다면 큰 재미는 보기 힘들었겠죠. 


2. 과정도 공정하지 않습니다. 

 - 적절한 경로를 통하여 적절한 시기에 진입하여 기회를 엿본다해도, 불공정한 과정이 있다면 모두 부자가 되기 어려울것이며, 우리는 그런 모습을 이 욕망의 코인판에서 자주 목격해왔습니다. 
 - 가령 ICO를 통해 장밋빛 미래를 꿈꿨지만 누군가는 설거지를 당했을거고 다른 누군가는 뭘해보기도 전에 먹튀를 당해서 투자금을 손해봤을겁니다. 
 - 그게 아니라도 우리가 성실하게 현물로 투자를 하는 개미들이 있는 반면, 마진이나 공매를 통해 상승장, 하락장 할것없이 거대한 물량을 등에 없고 자신들의 파이를 넓히는 세력들도 있죠. 특히, 세력들은 정보의 비대칭성을 활용하여 어쩔때는 찌라시, 루머, 커뮤니티 정치다툼 등을 통해 개미들을 혼란에 빠뜨리는 과정을 반복하기도 합니다. 

3. 결과 역시 정의롭지 않습니다. 

 - 역사적으로 비트코인을 포함한 암호화폐의 시총이 등락을 반복하고 있지만, 다행스럽게도 우상향 중이며 아직은 버텨볼만 합니다. 
 - 그렇다면 상식적으로 볼때  적절한 기회에 적절한 과정을 겪은 투자자라면 큰 손해를 보기 어려울 것입니다.
 -  하지만 이상하게도 점점 더 수익이 편중되는 부익부 빈익빈 현상이 짙어지고 있고 습니다. 왜 이런 믿기 어려운 결과가 도출되는 걸까요. 

 1) 게임이론*에 따른 불리함
  *게임이론: 상호 의존적인 의사 결정에 관한 내용을 다루는 이론. 
   - 즉, 게임 참가자들이 이익을 위한 전략을 임의 선택하여 각자 최대이익을 내기위해 벌이는 살벌한 게임에서 물량전, 심리전, 인내전, 정보전 등에 거의 모두 패배
   - 하수는 "네가 생각하는 것을 나도 알고 있다"
   - 중수는 "네가 생각하는 것을 내가 생각하고 있다고 네가 생각하고 있다는 것을 나는 알고  있다"
   - 고수는 "중수 이하가 무엇을 생각하고 있는지 알고, 그이전에 준비하거나 때가 되면 대응"한다
   - 세력은 "생각하지 않고 주체적으로 행동"한다
  => (시사점) 우리는 세력이 될수 없습니다. 그렇다고 하수, 중수가 되기에는 돈 번게 너무 아까우니, 고수가 되도록 노력해야합니다. 고수가 되기 위한 왕도는 없지만 자기만의 원칙(분할매매, 칼손절, 메이저위주 등)에 따라 지속 업그레이트하며 투자에 임하면 좋을것 같습니다.
  
 2) 완전하지 않은 경쟁시장
 ㅇ 완전 경쟁 시장의 조건들
   - 시장 참여자는 모두 완전한 정보력을 갖추고 있다.
     (다른 분야에서도 애초에 성립되기 어려운 조건임)
   - 시장에서 거래되는 재화는 모두 동질적이다.
     (한 코인을 놓고볼때 동질적임. 다만, 달러에 페깅되는 테더, 자전거래로 뻥튀기하는 코인 등은 의문임)
   - 진입과 탈퇴가 자유롭다.
     (초기 고정비용이 다양하나 대부분은 자유로운 편임)
   - 충분히 많은 수요자와 공급자가 존재하여 수요자, 공급자 모두 가격을 수용한다.
     (거래소, 세력등에 의해 임의로 세팅된 단기 고가를 수용하는 순간 그대는 호구임)
   => (시사점) 지극히 불완전한 경쟁시장에 들어온 이상, 우리는 조금 더 완전해지기 위해 가능한 많은 정보를 분석하고 유의미한 분석내용을 공유하며 논의할 필요가 있습니다.




□ 개인논평

 위의 내용을 적은 저 조차도 불리한 게임에 불완전한 경쟁 시장에 어떻게 임해야하는지 잘은 모르겠습니다. 
  - 하지만, 만 3년이 넘는 암호화폐 투자를 통해 얻은 것은 '투자에 대한 자기만족'이 중요한것 같습니다. 여기서 '투자'는 수익실현 뿐만 아니라 손절을 했을때를 포함하여, 여기서 '자기만족'은 수익실현에서 오는 성취감 뿐만 아니라 투자손실을 볼때 반성을 통한 겸손함도 포함됩니다.
  - 저도 이게 잘 되지 않습니다만, 그런 마인드로 투자에 임하도록 노력하고 있습니다.
  - 투자에 왕도는 없지만 '투자에 대한 자기만족'의 실제 예를 말씀드리며 마무리하겠습니다.

일전에 지인이 2016년도에 코인투자를 시작하였고, 코인붐이 불었던 2017년도 상반기에 전량 매도하여 수익실현을 했다. 그런데 다들 알다시피 2017년 하반기에는 더 큰 코인붐이 불었다. 그래서 제 절친이 그 지인에게 너무 빨리 팔아서 아쉽지 않냐고 물었는데, 그 분이 이렇게 답했다.

 “아내에게는 평소 갖고싶던 걸 사주고 자녀들에겐 남들 이상으로 케어해줄수 있어서 자기는 그것으로 만족한다”



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

[Consensus] 작업증명방식과 나카모토의 합의알고리듬 // Proof of Work and Nakamoto Consensus v1.4

Proof of Work & Nakamoto Consensus


< 서  론 >

  분석에 앞서

  ㅇ 합의 알고리듬(Consensus Algorithm)의 구성
    - 합의알고리듬은 '블록생성권한'과 '포크선택규칙'이 포함되어야 하며, 비트코인의 합의알고리듬 구성은 다음과 같다.
     1) PoW : 누가 블록을 생성하는가에 대한 답변
                    즉, 작업(채굴)을 제일 빨리 증명하는(캐는) 자가 블록을 생
     2) Nakamoto Consensus
        : 어떤 체인을 메인체인으로 선택할것인가(포크선택규칙)에 대한 답변
        즉, 블록 난이도 합이 가장 높은, 그래서 가장 긴 체인을 선택


  ㅇ 비트코인의 키워드 분석
    - 비트코인에 대한 정보는 이미 다양한 매체를 통해서 봐왔을거라 생각되기에, 본인만의 방식으로 키워드를 몇개 선정하여 분석해 보겠다.
    - 참고로, 선정된 키워드는 경쟁, 확정성(안전성), 그리고 생존성이다.

작업증명방식(PoW)은 비트코인 창시자 나카모토 사토시가 비트코인을 통해 실제 구현한 것으로, 가장 오래되고 가장 대중적이며 지속적으로 관련 인프라가 확대되고 있는 프로토콜이다. 
사실 PoW에 대해서는 이미 수많은 곳을 통해 많이 알려져 있기에, 본인이 생각하는 PoW만의 키워드를 선택하여 간단히 정리하고자 한다. 참고로, 선택된 키워드들은 향후 기고할 PoS와 비교되는 특성으로 봐주시면 더욱 흥미로운 것이다.   -WuKong


<https://hackernoon.com>

< 본  론 >

  키워드1 : 경쟁

  ㅇ 개요 : 채굴에 참여한 모든 채굴자들이 블록생성 및 그에 따른 보상을 목표로 끊임없는 경쟁을 한다.
  ㅇ 특징 : 참여자들은 손해를 보지 않으려 하기때문에 하나의 블록체인을 유지하기 용이하다.
  ㅇ 장점 : 경쟁을 통해 누가 언제 블록생산하는지, 코인(보상)배분은 어떻게  하는지, 포크(체인분리)시 어떤 체인을 선택해야하는지에 대한 이점이 있다.
    - 블록생성과 배분문제는 퍼블릭 블록체인에 있어 중요한 사안으로, PoW방식은 현존하는 그 어떤 합의알고리듬보다 경쟁이라는 이름하에 간단명료한 해결책을 제공해주고 있다. 그예로, 이더리움의 PoS전환방식인 초기 캐스퍼(Casper)에서도 블록생성은 PoW기반의 채굴자들이 하며, 지분보유자들의 2/3(정족수)를 만족시키지 못할경우에도 이 PoW방식에 따를정도다.   
    - 체인선택은 이중지불*, 재생성 등 구조적 이슈에 있어 중요한 사안인데, 채굴자에 있어 포크시 각 포크체인에 따라 모두 채굴하면 컴퓨팅 파워가 그만큼 분산되므로, 자연스럽게 그 중 블록생성에 유리한 체인에 선택과 집중하게 된다. 즉, 채굴자들은 경쟁을 통해 스스로 손해를 보는 가능성을 줄임으로써 체인을 선택하게 되고 그 중 가장 긴 체인이 정통성을 인정받게 된다.
    *이중지불 : 코인이 두번이상 지출되는 문제로, 가령 A가 B에게 코인을 보내고 계속 그 코인을 소지한것처럼 조작한뒤 C에게 코인을 보낼수 있는 치명적인 문제(자세한 설명은 여기 참조)
  ㅇ 단점 : 타협없는 경쟁 때문에 구조적으로 포크가 수시로 발생할수 있다.

□ 키워드2 : 확정성(Finality) 또는 안전성(Safety)

  ㅇ 개념 
    - 확정성 : 블록체인에 한번 기록된 거래는 그 특성상 불가역적이고 수정불가이므로, 거래 이후 절대 바뀌면 안된다는 것을 의미한다.
    - 안전성 : 문제없는 노드 사이에서는 잘못된 합의가 이루어지지 않는다, 즉 장애를 일으키지 않는 한, 시간이 걸려도 모든 노드가 같은 트랜잭션을 처리하는 합의에 도달한다는 뜻이며, 이는 결국 확정성을 이루기 위한 특성이다.
  ㅇ 특징 : 확정성을 위하여, 채굴자들은 현재까지 가장 긴 체인(Long chain)에 바로 이어서 블록 생성을 하려고 한다.
    - 문제 : 복수의 채굴자가 동시에 블록생성시, 포크가 발생하면서 포크체인들은 당장은 모두 가장 긴 체인으로 간주된다. 이때 채굴자들은 각 포크체인들에 이어서 블록생성을 위한 경쟁(Race Competition)에 돌입하는데, 결국 가장 긴 포크체인이 메인체인이 되면서 나머지 포크체인들은 버려지게 된다. 하지만 채굴중앙화가 되어있는 경우, 엄청난 컴퓨팅 파워(50% 초과)로 포크시점을 틈타 또는 버려진 체인들을 활용하여 가장 긴 체인을 만들어버리는 방법(51%공격)으로 기존의 가장 긴 체인의 기록된 거래들이 바뀌는 구조적 문제(Reorg, 재구성)가 발생할수 있다. 이를 두고, 확정성(Finality)이 무너졌거나 안전성(Safety)이 훼손됐다고 말할수 있다.
   *해결 : 합의 알고리듬에 검증인을 두어 특정 시점(예: 매 100블록)마다 체크포인트로 정하고, 검증인의 2/3이상이 체크포인트에 적정하다고 동의할 경우, 가장 최근의 체크포인트까지는 절대 불가역적이고 수정불가하게 되는데, 이는 PoS에서 구현될수 있는 해결책이다.

□ 키워드3 : 생존성(Liveness)

 ㅇ 개념 : 합의 대상이 트랜잭션, 블록, 노드 등 그 무엇이든간에 문제가 없다면, 네트워크 내에서 언젠가는 합의가 이루어진다는 의미이며, 다시 말해, 일정 시간이 지나 모든 노드가 문제없이 합의에 도달한다면 그 네트워크는 생존성이 있다고 말한다.
  ㅇ 특징
    - 전통적으로 합의알고리듬 설계시, 안정성을 확보한후 생존성을 줄이는 방식(Safety over Liveness)으로 접근하여 네트워크 내에서 합의가 이루어지지 않아도 모든 노드에게 동일한 메세지를 주고받는게 중요하다고 생각했다.
    - 하지만 비트코인의 경우, 그와 정반대로 생존성을 살리고 안정성을 뒤로 미루되(Liveness over Safety), 10분이라는 상대적으로 긴 블록타임동안 노드간 합의시간을 준다거나 경쟁을 통한 포크 선택규칙(가장 빨리 수학계산을 푼 자가 블록생성시키며, 긴 체인이 곧 메인체인)으로 안전성을 보완했다. 다만, 이런 보완책도 완정히 보장할수 없는것이, 51%공격과 같은 극단적인 경우에는 큰 의미가 없다는 것이며, 이는 단지 확률적으로 안정성을 부여한다는 한계에 부딪힌다.


< 결  론 >

□ 합의알고리듬

  ㅇ 합의알고리듬의 중요성
    - 비트코인을 포함한 암호화폐는 기본적으로 분산 네트워크를 기반으로 하기에, 각 참여자간 메세지를 주고받으며 그에 따른 합의를 이루는게 매우 중요하다.
    - 하지만, 투자에 대한 관심에 대비해서 중요한 기본사항을 잘 모르는 경우가 많다. 합의알고리듬은 그 기본사항 중에서도 투자자나 분석가라면 반드시 알아야할 항목이며, 본인도 정리할겸 안내할겸 해서 작성해봤다.
    - 향후, 타 암호화폐 프로젝트들의 다양한 합의알고리듬에 대해서도 안내할 계획이며, 이 글에서 부족하다 싶은 내용이 있다면 검색하시거나 피드백 주시기 바란다.



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




<References>
1) https://blog.seulgi.kim/2018/05/safety-liveness-in-blockchain.html
2) https://steemit.com/consensus/@kblock/48-pbft-consensus-algorithm?sort=new

[Bitcoin] 비트코인의 흥망성쇠(3부작) 1부 "역대 주요이슈 분석" // Bitcoin's Rise & Fall(Trilogy) Part1 v1.5

비트코인의 흥망성쇠 (興亡盛衰) □ 에필로그   ㅇ 분석에 앞서     - 그동안 분석가로서 블록체인과 암호화폐가 지닌 기술 위주의 기본적 분석을 해왔으나, 투자자로서 유의미한 시세변동, 시세에 영향을 끼치는 이슈 등에 대한 분석글 작...