관리 메뉴

개발이야기

[블록체인 이론] 합의 알고리즘 Overview (PoW, PoS) 본문

블록체인 /블록체인 이론

[블록체인 이론] 합의 알고리즘 Overview (PoW, PoS)

안성주지몬 2018. 8. 31. 12:11

최근 다양한 블록체인 기반 서비스가 출시되면서 각각의 서비스마다 자신들의 합의 알고리즘을 제안하고 있습니다. 수많은 합의 알고리즘이 쏟아지면서 우스갯소리로 PoA ~ PoZ 까지 모든 합의 알고리즘이 나오는 것 아니냐는 소리도 있습니다. 이번 포스팅에서는 다양한 합의 알고리즘 가운데 대표적인 합의 알고리즘을 Overview 형식으로 소개하고 장단점을 설명해보고자 합니다. 



1. PoW  (Proof of Work) 


블록체인 기술이 처음 등장한 비트코인 네트워크에서 사용한 합의 알고리즘입니다. 사토시가 처음 설계한 모델로 작업 증명이라고 합니다. 오직 해시력(Hash Power) 만을 기준으로 삼죠. PoW 합의 알고리즘의 동작 방식을 비트코인을 예로 들어 설명해보겠습니다. 비트코인의 블록의 헤더에는 6가지의 정보가 담겨져 있습니다. 


[그림 1] 비트코인의 블록헤더 정보 


블록체인 네트워크에서는 블록을 생성하는 과정을 '채굴(Mining)'이라고 합니다. PoW 방식에서 채굴은 특정한 값을 찾는 과정입니다. 블록헤더의 6개의 값이 입력값으로 들어가게 되고 이를 SHA256 해시 연산을 통해서 적절한 값을 찾는 과정이 바로 채굴입니다. 여기서 중요한 값은 바로 'Nonce'라는 것인데. 이 'Nonce' 값은 6개의 값 중 유일하게 변경된는 값으로 연산횟수가 증가할때마다 1씩 증가하게 되고 해시값을 바꿔주는 역할을 하게됩니다. 결국 PoW 방식에서 채굴은 'Nonce'값을 바꿔주면서 적절한 해시값을 찾는 과정입니다. 따라서 해시력이 강하다고 무조건 채굴을 하는 것은 아니지만 채굴을 할 수 있는 확률이 증가하게 되죠. 이렇게 해시력을 바탕으로 블록을 생성하는 방식이 바로 PoW 입니다. 


그렇다면 PoW의 장점과 단점은 무엇일까요 ?


먼저 장점으로는 보안적인 측면입니다. PoW 방식에서는 장부(ledger)를 조작하기 위해서는 전체 네트워크 해시력에 51% 를 넘는 해시력을 가지고 있어야 합니다. 따라서 비트코인 네트워크처럼 참여자가 많은 네트워크에서 51%가 넘는 해시력을 가지기 위해서는 엄청난 규모의 자본을 가지고 있어야 합니다. 따라서 네트워크가 커지면 커질수록 보안이 강화된다는 장점이 있습니다.


단점으로는 마이닝풀이나 중국의 거대자본(우지한을 포함한)등이 힘을 합쳐 51%의 해시력을 가질 수 있다는 것입니다. 사실 경제적인 논리로 자신들이 참여하고 있는 네트워크에 해를 가하면 자신이 보유하고 있는 코인의 가치가 떨어지기 때문에 쉽게 조작하지는 않을 것이라는 관측이 많습니다. 하지만 51% 공격을 할 수 있을만큼 엄청난 해시력을 가지는 집단이 있는 것은 분명 큰 위험이자 단점이 될 것 입니다. 

또 다른 단점으로는 보안적인 측면이 강화되기 위해서는 네트워크 규모가 커야한다는 점입니다. 위의 장점에서 언급했듯이 PoW는 네트워크 규모가 커지면 커질수록 보안성이 강화된다는 장점이 있지만 역설적으로 네트워크 규모가 작다면 그만큼 51% 공격의 필요한 해시력이 적다는 뜻으로 초기 네트워크 구축과정에서 보안적으로 취약할 수 있다는 단점이 있습니다. 

기타 다른 단점은 오직 해시력을 통한 합의 과정을 걸치기 때문에 막대한 전력을 필요로 하고 환경 파괴등의 문제를 야기한다는 단점이 있습니다. (이더리움의 창시자인 비탈릭 부테린은 PoW 가 사이퍼펑크 정신을 계승하지 못한다고 밝히기도 했습니다. )



2. PoS  (Proof of Stake) 


PoW 가 연산을 통해 블록을 생성한다면, PoS는 자신이 가진 지분의 양에 따라 블록을 생성하게 됩니다. PoS는 PoW의 단점과 문제점을 해결하는 대체 합의 알고리즘으로 여겨집니다. 가장 대표적인 PoS로는 Casper PoS가 있는데요. Casper PoS는 비탈릭 부테린이 이더리움의 합의 알고리즘을 PoW에서 PoS로 변환시키기 위한 과정중의 하나입니다. Casper PoS는 PoW와 PoS를 결합한 하이브리드 방식입니다. Casper PoS를 예로 들어 PoS 방식에서 어떻게 블록을 생성하는지 살펴보도록 하겠습니다.



[그림 2] Capser PoS 투표과정 (출처: Casper 발표자료)


Capser PoS에서는 이더(Ether)를 가졌다면 누구나 검증자(Validator)가 될 수 있습니다. 검증자가 되기 위해서는 일종의 예치금(Deposit)을 내야 합니다. 이 예치금을 통해 보상(Incentive)과 벌금(Penalty)가 스마트 컨트랙트를 통해 주어지게 됩니다. 검증자는 매 50번째 블록이 생성될 때마다 블록을 검증하는 역할을 합니다. 50번째 블록이 생성되는 지점을 체크포인트라고 하고 체크포인트에서 검증자는 투표를 진행하며 투표가 정당하면 보상을 받게 되고 부정한 투표를 했다면 벌금을 부여받게 됩니다. 벌금 제도는 PoS의 문제점으로 지적받았던 "Nothing at Stake"문제를 해결하기 위한 것입니다. "Nothing at Stake"는 검증자가 투표를 할 때 벌금 제도가 없다면 모든 블록에 투표를 하는 것이 이득이 되는 상황을 말합니다. Casper PoS에서는 벌금 제도를 통해 이 문제점을 해결하고자 하였습니다.


그렇다면 PoS의 장단점은 무엇일까요 ?


우선 PoS의 장점으로는 "Finality"를 보장할 수 있다는 것입니다. Finality는 확정성, 완결성을 의미하며 블록체인에서 완결성은 한 번 메인체인으로 인정된 블록은 영원히 불변한다는 것입니다. PoW는 언제든 메인체인이 바뀔 확률이 존재합니다(0%가 될 수 없습니다 : 블록체인에서 finality가 중요한 이유에 대해서는 따로 포스팅을 하도록 하겠습니다.) 또한 비탈릭 부테린에 따르면 PoS는 사이퍼펑크 정신을 계승할 수 있습니다. 사이퍼 펑크 정신은 간단히 말하면 공격 비용을 방어 비용보다 높게 한다는 것인데, PoS는 공격 비용 >= 방어비용을 만들수 있다는 것이 비탈릭의 설명입니다.  따라서 공격비용이 크기 때문에 PoW 보다 공격에 대한 위협이 줄어들 수 있겠죠.


이제 PoS의 단점을 살펴보도록 하겠습니다. 

PoS에서 합의 과정에 참여하기 위해서는 토큰을 소유하고 있기만 하면 되므로 다른 비용이 들지 않습니다. 따라서 "Nothing at Stake"나 아무것도 하지 않는 참여자들이 생길 수 있는 문제점이 발생할 수 있습니다. (앞서 언급했듯 Casper PoS는 이 문제를 예치금, 보상, 벌금 제도를 통해 해결하고자 합니다.) 또한 PoW와 비슷하게 Cartel을 형성하는 문제점이 있습니다. 즉, 소수의 집단(지분을 많이 소유하고 있는)이 힘을 합쳐 네트워크를 좌지우지할 수 있습니다. 



여기까지 합의 알고리즘 Overview 첫 번째 포스팅으로 PoW, PoS를 살펴보았습니다. 다음에는 DPoS와 PBFT에 대한 Overview를 하도록 하겠습니다. 




참고 자료 

1) https://brunch.co.kr/@curg/13

2) https://medium.com/coinmonks/blockchain-finality-pow-and-pos-35915a37c682

3) https://medium.com/@VitalikButerin/a-proof-of-stake-design-philosophy-506585978d51

4) https://blog.cosmos.network/consensus-compare-casper-vs-tendermint-6df154ad56ae





Comments