[코인예수 블록바] 증명방식에 대하여 -2

in #kr6 years ago

안녕하세요. 코인예수 블록바입니다.
요즘에 생겨나는 블록체인 프로젝트들에서는 새로운 개념의 증명방식들이 생겨나고 있는데요,
이번 글에서는 조금 생소할 수 있는 내용들을 다루어보려고 합니다.

비트코인이나 이더리움, 퀀텀 등과 같은 가상화폐와 증명 방식들을 다르게 가져가는 친구들이 있어요.

저도 이러한 증명방식들을 접했을 때 좀 생소했기 때문에 제가 이해한 것을 바탕으로 최대한 쉽게 설명하고자 하오니
혹시 기술적인 부분에 있어서 조금 미흡한 점이 있더라도 양해 부탁드리겠습니다!

  1. POA (Proof of Authority)

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

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

POA는 승인된 계정(권한을 얻은 계정)이 Validator라고 하는 유효성 검사기가 되어 전송과 블록에 관한 유효성 검사를 시행합니다. 즉, 유효성 검사를 위한 노드를 지정해버리는 것이죠.
Validator는 전송을 블록 단위로 넣을 수 있는 소프트웨어를 실행하게 되고 정상적으로 블록체인이 유지되도록 해당 컴퓨터의 관리 및 보수를 해야합니다.

POA_validator.png

이 또한 말이 어렵죠? 하하
또 다시 예를 들겠습니다. 위에서 말한 '더 뱅킹'이라는 프라이빗 블록체인의 Validator를 '농협'으로 지정해버리는 것입니다.
즉, 농협이 '더 뱅킹'을 위한 블록체인의 노드를 담당하여 '전송' 및 '블록 생성'을 담당하게 되는것이죠.

프라이빗 블록체인은 퍼블릭 블록체인과 비교했을 때, 노드 수를 줄여 유효성 검사에 필요한 시간을 줄일 수 있기 때문에 블록 생성주기를 짧게하여 빠른 트렌젝션 처리를 가능하게 할 수 있다는 장점이 있습니다. 그러나 탈 중앙화적인 측면에서는 좀 떨어지는 면이 있지 않나 생각해볼 수 있겠네요.

요즘에는 기존의 유통망을 가지고 있던 기업들이 Reverse ICO를 수행하는 경우가 많아요.
기존의 유통망에 블록체인을 얹힌다는 것인데요, 이러한 기업들이 주최하는 ICO에 참여할 때에는 면밀한 검토가 필요해보입니다. 단순 자금조달 수단으로 ICO를 진행할 수 있기 때문이죠. 만약 그 블록체인 프로젝트의 증명방식이 POA라면, 해당 기업의 중앙 서버와 다를바가 없어질 수도 있으니 더 주의가 필요하겠죠? 물론 모두가 스캠이지는 않겠지만요 ^^

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

bftclean.png

위의 사진은 PBFT 알고리즘이 동작하는 방식을 나타내는 것인데요, 사진을 한 번 같이 보시죠.

자 우선, 가로는 어떠한 데이터의 처리 단계를 나타내구요, 세로는 데이터 처리와 관련된 자들입니다.
Client는 전송을 요청한 개인이 되구요, Primary 와 Replica 들은 이를 검증해주는 노드들이 됩니다.

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

리더가 보낸 요청 결과들을 받은 각자의 노드들은 이 정보를 다시 다른 노드들에게 뿌립니다.

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

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

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

tendermint.png

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

PBFT 방식은 개별 노드당 한 투표권을 행사하는 방식으로 투표를 진행하여 가장 많이 투표를 받은 블록을 승인하지만, Tendermint의 경우에는 여기에 DPOS 가 포함되어 지분 기반 투표를 진행하게 됩니다.

노드의 수보다 지분이 많은 노드의 신뢰도가 높아지는 형식이죠 ㅎㅎ. 투표시에는 지분이 동결되어 다른 블록에 이중 투표를 할 수 없도록 만들어서 이중 지불 문제를 해결합니다. 이전에 다른 글에서 다뤘던 Nothing at stake attack과 관련된 문제를 투표시 지분 동결을 통해 해결하는 것이죠. ㅎㅎ

  1. POB(Proof Of Believability)
    이 방식은 IOST 플렛폼의 증명방식으로써 무작위의 지분증명 합의 알고리즘입니다.
    즉, 신뢰도에 따라 그에 따른 보상을 달리 하는 것입니다. 노드 신뢰성의 척도는 다음과 같은데요,
  • 토큰 보유량
  • Servi 토큰 잔액
  • FTFS(공정하고 투명한 피드백 시스템)에서 기록된 사용자 리뷰
  • 이용자 행태(커뮤니티 기여도)
  • Servi : IOST 생태계와 커뮤니티의 지속 가능한 발전에 기여하도록 하기 위해 설계단 비금전적, 비교환 토큰.
    • 타인과 Servi 교환 불가
    • Servi를 쌓아 블록 검증자로 선정될 시 Servi 잔액 자동적으로 제거됨
    • 우수회원에게 주어지는 포인트 같은 개념
    • Dapp 개발 참여, Dapp 적극 사용, 기반 가상화폐로 실제 결제 시행 등을 우선적으로 블록 검증자로 선정하기 위함.

POB_요소.png

  1. LPOS(Leased Proop of stake)
    이 방식은 Wave 플렛폼에서 사용하는 증명방식입니다. Lease의 개념과 POS 방식의 조합입니다.
  • POS : 우선 POS, 지분증명방식에 있어서는 10000개의 WAVE 코인 소유자가 풀노드가 될 수 있으며,
    이를 통해 수수료를 받을 수 있습니다.
  • LPOS : 자신의 지분을 증인(노드구축자)에게 빌려주고 빌려준 비율만큼 수익을 배분받는 방식

이상 많은 분들이 아시는 보편적인 증명방식 외에 다른 증명방식들에 대해 알아봤습니다 ^^
사실 이 외에도 새로운 방식의 합의 알고리즘들이 생겨나고 있는데요, 정보가 축적된 이후에 3탄 작성하도록 하겠습니다 !

카카오 단톡방 : https://open.kakao.com/o/gtlP3PH

블록패치 블로그 : https://blog.naver.com/minstarshop

트위터 : https://twitter.com/DanieIKimcoin

유투브 : https://www.youtube.com/channel/UCBmM7nVhbTysFB2i1pDreSA

스팀잇 : https://steemit.com/@bitjesusblockba

네이버 카페 : https://cafe.naver.com/copanam

Sort:  

@bitjesusblockba, I gave you an upvote on your post! Please give me a follow and I will give you a follow in return and possible future votes!

Thank you in advance!

Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://steemit.com/dpos/@coinmarketing/3qsqce