[코파남 다니엘] 블록체인의 증명방식들

안녕하세요. 저는 코인마케팅의 코인파는 남자
코파남 다니엘입니다.

첫번째 포스팅으로 증명 방식에 대한 글을 쓰려고 합니다.

물론 많은 분들이 대부분 아시는 내용일 거라서 간단한 개념 원리 이해 정도로만 생각하시면 될 것 같습니다.

A. 작업 증명 방식 (POW : PROOF OF WORK)
비트코인을 예로 들면, 비트코인 노드에 참여한 컴퓨터가 일정 해시 함수로 된 문제를 풀게되면 이에 대해 보상을 받게 됩니다. 이렇게 문제를 푸는 과정을 채굴이라고 하며, 이에 투입된 힘을 해시력이라고 합니다.

이러한 어떤 작업(해시함수를 푸는 등의)을 통해 블록을 생성해나가는 방식을 작업증명방식이라고 합니다.

비트코인은 거래 정보가 담기는 블록을 10분마다 생성을 하게 되는데, 채굴을 통해 그 블록을 채굴해내는 채굴자에게 채굴 보상이 이루어지게 됩니다.

이렇게 생선된 블록의 거래 내역은 노드들의 합의에 의해 전체 블록체인상에 분산화되어 저장됩니다.

비트코인은 총 발행이 2100만개로 제한되어있으며, 매 4년마다 채굴의 반감기를 맞습니다.
즉, 채굴되는 양이 4년을 주기로 반으로 줄어들게 되는데요, 2016년 반감기를 맞았고, 4년 뒤인 2020년에 다시 반감기가 찾아옵니다. 이렇게 반감기가 존재하고, 4년마다 주어지는 총 채굴 보상은 한정이 되어있기 때문에 비트코인의 채굴 난이도는 지속적으로 증가하고 있습니다.

채굴 능력은 주로 CPU와 그래픽 카드에 영향을 많이 받는데요, 최근 그래픽카드 값이 많이 오른이유가 바로 여기 있습니다. 증가하는 난이도로 인해 점점 더 좋은 성능의 그래픽카드를 필요로 하게 되는것이지요. 그래서 요즘에는 채굴장 혹은 채굴풀처럼 점점 대형화된 채굴 형태가 나타나고 있다는 점도 참고하시길 바랍니다.

대표적인 POW 코인으로는 비트, 이더, 라이트코인, 대시 등이 있습니다.

F969_비트코인 해시, 난이도.png

                        <참고 사진 - 비트코인 해시력과 난이도>

B. 지분 증명방식 (POS : PROOF OF STAKE)

지분 증명방식은 말그대로 가지고 있는 지분을 통해 노드를 구성하는 방식입니다.
가지고 있는 지분을 묶어, 노드 구성을 하고 스테이킹(나의 지분을 사용하여 블록체인 노드에 참여하여 전체 체인 망 내부에 참여하는 것.)을 하게 되는 것이죠.

여기에 럭키 베이스 등의 방식으로 해당 노드 구성자에게 보상이 주어집니다(퀀텀에서는 곡괭이로 표현이 되죠). 작업 증명방식과 마찬가지로, 블록이 생성되면 해당 블록에 담긴 거래 정보는 전체 노드 구성자에게 분산화되어 보관되어집니다.

일방적인 POS 방식은 스테이킹에 참여하는 노드가 많아질 수록 탈중앙화 되고 분산화된다는 특징이 있습니다.
POS 코인의 해결과제는 스피드라고 생각하는데요, 최근 퀀텀의 경우 라이트닝 네트워크를 개발중이라는 소식이 들려오기도 한다는 점은 주목할만 합니다.

F970_퀀텀 노드맵.png

                                  <참고 사진 - 퀀텀 노드맵>

대표적인 POS코인은 퀀텀, 아크, 네오 등이 있습니다.

이더리움의 경우 비탈릭이 기존 POW 방식에서 이 POS 방식으로 전환하려는 생각을 가지고 있다는 것을 자주 내비췄죠.

POW와 POS 의 큰 차이점에 대해 알아보았는데요, 다음으로는 DPOS 와 DPOW에 대해 알아보겠습니다.

  • 마스터 노드 : 일정한 양으로 정해진 코인을 묶어 마스터 노드를 구성하고 일정 비율의 이자를 받음

C. DPOS (Delegated Proof of stake)

DPOS는 해당 코인 소유자들이 대표 노드 구성자를 투표 방법으로 선출하여 노드를 구성하는 방법입니다.
지분에 대한 보상은 블록 생성자(BP - 대표노드)가 블록 생성시 자신의 투표에 참여한 사람들에게 일정 지분만큼 분배하는 방식입니다.(블록 생성자의 정책에 따라 달라질 수 있음)

DPOS 코인의 장점은 노드 수를 줄여서 블록 생성주기를 줄일 수 있어, 빠른 속도의 블록체인을 구성할 수 있다는 것입니다. 단점은 대표 노드 수가 적다보니, 일반 POS 코인보다는 노드 구성이 중앙화되었다라는 지적이 있을 수 있다는점입니다.

크게 보면, 스피드를 택할 것인가 / 분산화를 택할 것인가의 문제일 것 같네요.

대표적인 코인으로는 EOS, 트론, 카르다노(ADA), 최근 빗썸 상장 이슈였던 엘프가 있습니다.

우지한과 관련된 엔트풀이 EOS, 트론 BP 선거에 참여하겠다 선언한 것 또한 최근 DPOS 관련 이슈였다고 할 수 있겠네요.

EOS의 경우, 사용자의 사용 비용이 무료이고, DAPP 설치를 원할경우 일정 지분의 EOS를 보유해야 한다는 것이 특징 일 수 있구요, 경량 검증을 위해 머클증명 방식을 사용하여 거래소 등의 가벼운 증명은 따로 증명을 해서 메인 체인에 붙이는 그런 개념이 백서에 소개되어 있기도 합니다.

F972_엘프 백서 발췌 - 노드 토폴로지 및 다중 레이어.png

< 참조 그림 - 노드 토폴로지 개요 및 다중 레이어 사이드체인 구조 / 엘프 백서 발췌 >

F973_라이트 노드 머클 증명 - 엘프 백서 및 이오스 테크티컬 백서 발췌.png
< 참조 그림 - 라이트 노드 데이터의 구조 예시 및 머클 증명 방식 / 엘프 백서 및 이오스 테크티컬 백서 발췌 >

D. DPOW (POS + POW, Delayed proof of work)
이 방식은 POS 방식과 POW 방식을 적절히 섞은 채굴방식입니다.
초기에 네트워크 확장을 위해 POW(작업 증명 방식)방식을 취한 이후 지분에 따라 AIR DROP을 하는 식의 방식입니다.
대표적인 코인은 코모도 코인이 있습니다.

E. POA (Proof of Authority)

POA는 Garvin wood(이더리움과 Parity Technologies의 공동 창업자)에 의해 만들어진 용어입니다.
POA는 보통 Private Blockchain을 위한 증명방식인데요, 확실한 신원에 기반한 합의 방식을 통해서 즉각적인 거래를 제공하는 블록체인과 함께 사용됩니다.

말이 좀 어렵죠?

예를 들면 '더 뱅킹'이라는 프라이빗 블록체인을 사용하려는 집단이 있는데, 여기에 농협, 우리은행, 신한은행, 국민은행 등과 같이 다들 확실한 신원이 보장된 기관들이 참여를 하는식이 되는거죠.

POA는 승인된 계정(권한을 얻은 계정)이 Validator라고 하는 유효성 검사기가 되어 전송과 블록에 관한 유효성 검사를 시행합니다.

즉, 유효성 검사를 위한 노드를 지정해버리는 것이죠. Validator는 전송을 블록 단위로 넣을 수 있는 소프트웨어를 실행하게 되고

정상적으로 블록체인이 유지되도록 해당 컴퓨터의 관리 및 보수를 해야합니다.

이 또한 말이 어렵죠? 하하

또 다시 예를 들겠습니다. 위에서 말한 '더 뱅킹'이라는 프라이빗 블록체인의 Validator를 '농협'으로 지정해버리는 것입니다.

즉, 농협이 '더 뱅킹'을 위한 블록체인의 노드를 담당하여 '전송' 및 '블록 생성'을 담당하게 되는것이죠.

F2499_POA validator.png

프라이빗 블록체인은 퍼블릭 블록체인과 비교했을 때, 노드 수를 줄여 유효성 검사에 필요한 시간을 줄일 수 있기 때문에 블록 생성주기를 짧게하여 빠른 트렌젝션 처리를 가능하게 할 수 있다는 장점이 있습니다.

그러나 탈 중앙화적인 측면에서는 좀 떨어지는 면이 있지 않나 생각해볼 수 있겠네요.

요즘에는 기존의 유통망을 가지고 있던 기업들이 Reverse ICO를 수행하는 경우가 많아요.

기존의 유통망에 블록체인을 얹힌다는 것인데요, 이러한 기업들이 주최하는 ICO에 참여할 때에는 면밀한 검토가 필요해보입니다.

단순 자금조달 수단으로 ICO를 진행할 수 있기 때문이죠. 만약 그 블록체인 프로젝트의 증명방식이 POA라면,

해당 기업의 중앙 서버와 다를바가 없어질 수도 있으니 더 주의가 필요하겠죠?

물론 모두가 스캠이지는 않겠지만요 ^^

F. PBFT(Practical Byzantine Fault Tolerance)

이 방식은 블록체인 시스템에 있어서 약속된 행동을 하지 않고, 고의로 잘못된 정보를 전달하는 비잔틴 노드가 존재할 수 있는 비동기 시스템일 때, 모든 노드가 성공적인 합의를 이룰 수 있도록 개발된 증명방식입니다.

F2500_bftclean.png

위의 사진은 PBFT 알고리즘이 동작하는 방식을 나타내는 것인데요, 사진을 한 번 같이 보시죠.
자 우선, 가로는 어떠한 데이터의 처리 단계를 나타내구요, 세로는 데이터 처리와 관련된 자들입니다.

Client는 전송을 요청한 개인이 되고, Primary 와 Replica 들은 이를 검증해주는 노드들이 됩니다.
이중에 Primary(Leader라고 불릴 수도 있음)는 특별한 노드인데요, 이는 Client들이 요청한 순서를 정렬시키고,
요청에 대한 결과를 다른 노드들에게 나누어 전송합니다.

리더가 보낸 요청 결과들을 받은 각자의 노드들은 이 정보를 다시 다른 노드들에게 뿌립니다.
이러한 과정은 위의 사진처럼 Pre-Prepare -> Prepare -> Commit 과정을 거쳐서 마지막 Reply 단계에 이르면,
전체 노드의 합의를 이룬 동일한 데이터를 가지게 됩니다.
이때, 노드들은 자신이 다른 노드에서 가장 많이 받은 메세지가 무엇인지를 다른 노드들에게 전파합니다.

이러한 PBFT는 위의 과정을 통해서 비잔틴 노드(잘못된 정보를 보내는 노드)가 이상한 정보를 보내더라도
블록체인상의 모든 네트워크는 같은 정보를 가질 수 있게 됩니다.

G. Tendermint (DPOS + PBFT)

Tendermint는 PBFT 알고리즘을 개량하여 공개, 비공개 블록체인에 맞도록 개량한 증명방식입니다.
이는 DPOS와 PBFT 개념을 섞었다고 생각하시면 됩니다.

자, 위의 그림은 Tendermint 방식에서의 합의 과정입니다. 언뜻보면 PBFT 방식과 거의 비슷하죠?

그러나 차이점이 있습니다.

PBFT 방식은 개별 노드당 한 투표권을 행사하는 방식으로 투표를 진행하여 가장 많이 투표를 받은 블록을 승인하지만, Tendermint의 경우에는 여기에 DPOS 가 포함되어 지분 기반 투표를 진행하게 됩니다.
노드의 수보다 지분이 많은 노드의 신뢰도가 높아지는 형식이죠 ㅎㅎ.
투표시에는 지분이 동결되어 다른 블록에 이중 투표를 할 수 없도록 만들어서 이중 지불 문제를 해결합니다.
Nothing at stake attack과 관련된 문제를 투표시 지분 동결을 통해 해결하는 것이죠. ㅎㅎ

H. POB(Proof Of Believability)

이 방식은 IOST 플렛폼의 증명방식으로써 무작위의 지분증명 합의 알고리즘입니다.
즉, 신뢰도에 따라 그에 따른 보상을 달리 하는 것입니다. 노드 신뢰성의 척도는 다음과 같은데요,

  • 토큰 보유량

  • Servi 토큰 잔액

  • FTFS(공정하고 투명한 피드백 시스템)에서 기록된 사용자 리뷰

  • 이용자 행태(커뮤니티 기여도)

  • Servi : IOST 생태계와 커뮤니티의 지속 가능한 발전에 기여하도록 하기 위해 설계단 비금전적, 비교환 토큰.

    • 타인과 Servi 교환 불가

    • Servi를 쌓아 블록 검증자로 선정될 시 Servi 잔액 자동적으로 제거됨

    • 우수회원에게 주어지는 포인트 같은 개념

    • Dapp 개발 참여, Dapp 적극 사용, 기반 가상화폐로 실제 결제 시행 등을 우선적으로 블록 검증자로 선정하기 위함.

F2502_POB 요소.png

I. LPOS(Leased Proop of stake)

이 방식은 Wave 플렛폼에서 사용하는 증명방식입니다. Lease의 개념과 POS 방식의 조합입니다.

  • POS : 우선 POS, 지분증명방식에 있어서는 10000개의 WAVE 코인 소유자가 풀노드가 될 수 있으며, 이를 통해 수수료를 받을 수 있습니다.

  • LPOS : 자신의 지분을 증인(노드구축자)에게 빌려주고 빌려준 비율만큼 수익을 배분받는 방식

이상 여러 증명방식들에 대해서 알아보았습니다 ^^

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now
Logo
Center