[합의 알고리즘 바로알기] PoW란 무엇인가?

초급5분 소요2022-03-23

합의 알고리즘이란?

합의는 ‘서로 의견이 일치하거나 혹은 그 의견'이라는 사전적 의미를 가지고 있습니다. 따라서 합의를 한다는 것은 어떤 문제에 대한 의견을 일치해 가는 과정이라 할 수 있습니다.


블록체인에서 말하는 합의 알고리즘(consensus algorithm)은 다수의 참여자들이 하나의 통일된 의사결정을 하기 위해 사용하는 알고리즘입니다. 완전무결한 탈중앙화를 추구하는 블록체인은 트랜잭션 정보를 기록한 일종의 분산장부로써, 각 노드가 각각의 장부를 가지고 있고 이 장부의 내용은 합의 알고리즘에 의해 동일하게 유지되는 것입니다.



작업증명(PoW)

PoW(작업증명, Proof of Work)는 블록체인 최초의 증명 방식으로, 사토시 나카모토의 논문인 ‘Bitcoin: A Peer-to-Peer Electronic Cash System’에 처음 소개되었습니다.


우리가 P2P 기반으로 분산된 타임스탬프 서버를 구현하려면, 신문이나 유즈넷 포스트 같은 방식보다는 아담 백(Adam Back)의 Hashcash와 유사한 PoW 시스템을 이용할 필요가 있다. 이 PoW는 SHA-256과 같은 알고리즘으로 해시되었을 때 어떤 값을 탐색(스캐닝)하는 과정을 포함하는데, 이 해시값은 여러 개의 숫자 0비트로 시작한다. 평균적인 PoW 소요 시간은 요구되는 “0” bit의 개수에 따라 기하급수적으로 증가하며(exponential), PoW는 단 한 번의 해시를 수행함으로써 검증될 수 있다.


PoW란 블록을 생성하기 위해 해시값을 찾는 작업을 특정한 난이도에 수행하고 이를 증명하는 것으로, 이 증명은 ‘채굴(mining)’을 통해 이루어집니다. 이 과정에 높은 컴퓨팅 파워와 막대한 양의 전기가 소비되기 때문에 이에 대한 보상으로 해당 블록체인 네트워크에서 사용하는 디지털자산을 ‘수수료’로 지급합니다.






비트코인에서 블록 생성 시 개별 노드가 제한 없이 생성할 수 있습니다. 따라서 앞의 블록에 두 개 이상의 블록이 붙는 포크(fork 또는 충돌) 현상이 발생할 수 있습니다. 이 현상은 분산장부 기능이 제대로 작동하지 않았다는 것을 의미합니다. 따라서 비트코인에서는 더 많은 PoW가 수행된 길이가 더 긴 블록을 선택함으로써 불일치 문제를 해결하고 있습니다.


PoW는 시간이 지날수록 조금씩 채굴의 난이도가 높아지고, 디지털자산은 어느 시점의 한계치를 가지고 일정 수준으로 유지됩니다. 따라서 채굴 소요 시간은 점점 늘어나게 되고 일반 채굴자가 채굴을 하는 것은 어려워지게 됩니다.