합의 알고리즘 - ch.2

SKKRYPTO·2021년 5월 7일
1

안녕하세요. SKKRYPTO 7기 오성민입니다. 지난 시간에 합의 알고리즘과 BFT가 무엇인지 알아보았고, 대표적인 합의 알고리즘인 PoW의 작동 원리에 대해 공부해보았습니다. 이번 시간에는 PoS를 비롯한 다양한 합의 알고리즘의 메커니즘에 대해 알아보도록 하겠습니다.


Proof of Stake (PoS)

지분 증명이라고도 불리는 PoS는 합의 알고리즘의 일종으로, 비트코인의 초기인 2011년에 PoW의 대안으로 제안되었습니다.

PoS의 작동 원리

PoS 알고리즘은 의사 난수를 선출하여 다음 블럭의 생성 노드를 선정합니다. 이 과정에는 스테이킹* 기간과 임의 추출, 그리고 노드의 양호도가 포함됩니다.

PoS 시스템에서는 블록이 채굴된다는 표현 대신 '형성'된다는 표현을 쓰는데, 이는 PoW를 사용하는 암호 화폐에서는 채굴자에 대한 보상으로 새로운 암호 화폐가 계속해서 생성되지만 PoS를 사용하는 암호 화폐에서 블록을 생성하는 사람에 대한 보상은 해당 블록에 포함된 트랙잭션의 수수료로 지급하기 때문입니다. 이러한 이유로 PoS를 사용하는 암호화폐들은 보통 이미 채굴된 코인들을 판매하면서 시작되거나, PoW 방식으로 시작해서 이후에 (네트워크에 충분한 양의 코인이 생성되었을 때) PoS로 변경하는 방법을 사용합니다. 채굴자에 대한 보상으로 새로운 코인을 계속해서 생성할 필요가 없다는 점 때문에, 코인의 가격이 더 안정적으로 유지될 수 있다는 점 역시 장점입니다.

블록 형성에 참여하고 싶은 참가자들은 일정한 양의 코인을 네트워크에 스테이킹해야 합니다. 각 참가자들의 지분의 크기가 다음 블록의 생성자로 선정될 가능성을 결정합니다. 즉, 스테이킹한 코인의 양이 많을수록, 다음 블록의 생성자로 선정될 가능성이 높습니다. 그러나, 이 경우에 네트워크에서 가장 부유한 한 노드가 계속해서 블럭을 생성하는 상황이 발생할 수 있기 때문에, 이를 방지하기 위한 장치들이 있습니다. 가장 대표적인 것은 '무작위 블록 선택 (Randomised Block Selection)''코인 나이에 따른 선택(Coin Age Selection)'입니다.

무작위 블록 선택 방법에서 블록 생성자는 가장 낮은 해쉬값과 가장 높은 지분의 조합을 가진 노드로 선정됩니다. 지분의 크기는 일반적으로 공개되어있기 때문에, 노드들은 다음 검증자를 예측할 수 있습니다.

코인 나이에 따른 선택 방법은 각 노드의 코인들이 얼마나 오래 스테이킹 되었는지에 기반하여 다음 노드를 선정합니다. 코인 나이는 코인이 스테이킹된 기간과 스테이킹 된 코인의 양을 곱해서 계산합니다. 한 노드가 블록을 형성하고 나면 그 노드의 코인 나이는 0으로 초기화되고, 다른 블럭을 생성할 수 있게 되기 위해서는 일정 시간을 기다려야 합니다. 이러한 방법으로 큰 지분을 가진 노드가 블록체인을 지배하는 것을 예방합니다.

다음 블록의 형성자로 선택된 노드는 블록 안의 트랜잭션들이 유효한지 검증하고, 블록에 서명한 뒤 이를 블록체인에 추가합니다. 그에 대한 보상으로 그 노드는 생성한 블록에 포함된 트랜잭션들의 수수료를 지급받습니다. 만약 노드가 형성자로 참여하는 것을 멈추고싶다면, 그 노드의 보상과 지분은 특정한 기간이 지난 후에 다시 그 노드에게 반환됩니다. 이렇게 유예 기간을 둠으로써 네트워크가 블록체인에 건전하지 못한 블록이 존재하지 않는지 확인할 시간을 벌 수 있습니다.

PoS의 보안성

각 노드가 스테이킹한 지분은 참가자들이 부적절한 트랜잭션을 생성하는 것을 방지하는 경제적 동기를 부여합니다. 만약 네트워크가 부적절한 트랙잭션을 발견하면, 그 블록 생성자는 지분의 일부분을 잃고 미래에 블록 생성자로 참여할 권한을 잃게 됩니다. 따라서 지분이 보상보다 큰 이상, 블록 생성자가 사기를 시도했을 때 얻을 수 있는 돈보다 더 많은 양의 돈을 잃게 될 것입니다.

네트워크를 완전히 통제하고 부적절한 트랜잭션을 생성하기 위해서는 한 노드가 전체 지분의 과반을 차지해야 하는데, 암호화폐의 가격을 고려했을 때 이는 거의 불가능한 일이라고 볼 수 있습니다.

PoS의 장점

PoS 방식에서는 PoW와 달리 복잡한 문제를 풀기 위해 많은 연산을 행할 필요가 없습니다. 따라서 PoW 방식에 필요한 막대한 양의 컴퓨팅 파워를 아낄 수 있습니다. 또한, 블록 생성 노드를 운영하는 것이 쉽기 때문에 더 많은 사람들이 블록 생성 노드를 운영하고자 할 것입니다. 이는 네트워크를 더 분산화되게 만듭니다. 또한, 위에서 언급했듯이 새로운 코인을 계속해서 생성할 필요가 없으므로 암호화폐의 가격이 더 안정적으로 유지될 수 있게 도울 수 있습니다.


Proof of Authority (PoA)

현재 가장 널리 사용되고 있는 합의 알고리즘인 PoW 방식의 경우, TPS (Transactions per second)에 있어서 성능의 한계를 가지고 있습니다. 즉, 초당 처리 가능한 트랙잭션의 수가 적다는 의미입니다. PoS 방식의 경우에도 PoW보다 빠르긴 하지만 블록체인의 규모가 커질수록 속도가 느려지는 문제는 해결되지 못했습니다. 이러한 맥락에서 더 많은 TPS를 가질 수 있는 더 효율적인 대체재로서 PoA가 논의되고 있습니다.

PoA는 명성에 기반한 합의 알고리즘입니다. PoA 합의 알고리즘은 각 노드의 신원의 가치를 중시하는데, 다시 말해서 블록 생성자들이 코인 대신 명성을 스테이킹한다고 말할 수 있습니다. 즉, PoA 블록체인은 믿을 수 있는 주체들로 선택된 블록 생성 노드들에 의해 유지된다고 할 수 있습니다.

PoA 시스템은 한정된 수의 블록 생성자들에게만 의지하는데, 이것이 더 큰 시스템을 감당할 수 있게 합니다. 블록과 트랜잭션들은 미리 증명되어 시스템의 운영자처럼 행동하는 참가자들에 의해 검증됩니다.

사실 PoA 메커니즘의 개념은 탈중앙화에 역행하는 것입니다. 그래서 어떤 사람은 이 합의 알고리즘이 단순히 중앙화된 시스템을 더 효율적으로 만드는 방법일 뿐이라고 비판하기도 합니다. PoA 시스템은 많은 처리량을 소화할 수 있지만 검열이나 특정 인물을 블랙리스트에 넣는 일도 쉽게 할 수 있다는 한계점도 가집니다.

또다른 흔한 비판은 PoA 시스템의 블록 검증자들의 신원이 모두에게 공개된다는 점입니다. 블록 검증자의 신원이 드러난다는 것은, 제 3자가 해당 검증자의 신뢰를 떨어뜨릴 수 있는 행동을 해서 (해당 검증자의 악행을 폭로한다거나 하는..) 블록체인 시스템 전체의 신뢰성을 해칠 수 있다는 것입니다.

PoW, PoS, PoA 모두 자신의 고유햔 장단점을 가지고 있습니다. 탈중앙화가 암호 화폐에서 중요한 것은 맞지만, PoA는 합의 매커니즘으로서 높은 처리량과 확장성을 위해 탈중앙성을 포기했습니다. PoA의 고유한 특징들은 지금까지의 합의 알고리즘들과는 극명한 대조를 이룹니다. PoA는 매우 흥미로운 접근 방식이며 탈중앙화를 포기했다고 하여 무시할 수는 없는, 많은 장점을 가진 합의 알고리즘이라고 볼 수 있겠습니다.

여기까지 PoS와 PoA에 대해 알아보았습니다. 감사합니다.


profile
성균관대학교 블록체인 학회 SKKRYPTO 입니다.

0개의 댓글