이전글
지분 증명(PoS)
이번 글에서는 현재 이더리움에서 사용하고 있는 합의 알고리즘인 지분 증명(Proof-of-Stake, PoS)에 대해서 알아보겠습니다.
I. 합의 알고리즘과 작업 증명(PoW)
블록체인에서 블록이 생성되는 과정에는 특정한 합의 알고리즘이 사용됩니다. 가장 대표적인 합의 알고리즘에는 작업 증명과 지분 증명이 있습니다.
작업 증명(Proof-of-Work, PoW)은 비트코인과 과거의 이더리움이 사용하던 합의 알고리즘입니다. 비트코인에서 사용되고 있는 만큼 가장 오래되고 가장 안정적이라고 불리는 방식의 합의 알고리즘입니다.
작업 증명은 컴퓨터의 연산량을 기반으로 하는 합의 알고리즘입니다. 따라서 안정적인 알고리즘이긴 하지만 많은 컴퓨팅 파워 즉, 많은 전력을 소모해야 한다는 단점이 있습니다. 이러한 문제 때문에 이더리움은 작업 증명 대신 지분 증명을 사용하기로 결정하였습니다.
작업 증명에 대한 더 자세한 내용은 아래의 글을 참고해 주세요.
II. 지분 증명(PoS)
지분 증명은 작업 증명에 비해 전력을 훨씬 덜 소모하는 방식의 합의 알고리즘입니다. 지분 증명이 작업 증명에 비해 전력을 적게 소모하는 이유는 컴퓨팅 파워가 아닌 이더의 보유량(이더리움의 지분)을 이용하여 작동하는 합의 알고리즘이기 때문입니다.
지분을 이용한다는 것이 무슨 의미인지 조금 더 자세하게 살펴보겠습니다. 비트코인 백서로 불리는 비트코인 논문에는 흥미로운 내용이 하나 적혀있습니다. 비트코인 블록을 생성하고 새롭게 생성되는 비트코인과 거래 수수료를 보상으로 얻는 과정이 비트코인 해킹을 막는 또 하나의 방법이라는 내용입니다.
만약 비트코인 블록체인을 장악할 수 있을 정도의 컴퓨팅 파워(블록체인 전체 컴퓨팅 파워의 51% 이상)를 가진 누군가가 있다면 두 가지 선택을 할 수 있습니다. 첫 번째는 비트코인 블록체인을 마음대로 이용하여 새로운 비트코인을 발행하고 이익을 얻는 것입니다. 하지만 이 방법에는 한 가지 문제가 있습니다. 비트코인 블록체인을 해킹하게 된다면 비트코인은 가치를 잃을 것이고, 결국 해커가 부당한 방법으로 만들어낸 비트코인 역시 모두 가치를 잃을 것입니다. 뿐만 아니라 해커가 기존에 가지고 있던 비트코인 역시 가치를 잃을 것입니다.
따라서 비트코인 블록체인을 장악할 수 있을 정도의 컴퓨팅 파워를 가진 사람은 두 번째 방법을 선택하는 게 더 좋습니다. 바로 정상적인 비트코인 채굴을 계속하는 것입니다. 이 경우 비트코인 블록체인에 손상을 입힌 것이 아니기 때문에 비트코인은 가치를 적게 잃을 것이고, 상당량의 수수료와 함께 새롭게 생성된 비트코인(채굴된 비트코인)을 얻게 될 것입니다. 그리고 자신이 가진 비트코인의 가치까지 지킬 수 있습니다.
지분 증명은 이렇게 블록체인 상의 코인을 많이 가진 사람은 자신이 가진 코인의 가치를 지키기 위해 블록체인을 공격하지 않을 것이라는 믿음에 기반합니다. 많은 양의 이더를 가진 사람일수록 이더리움의 해킹으로 인한 이더 가치 하락에 큰 영향을 받기 때문입니다.
이제 본격적으로 지분 증명이 어떻게 이뤄지는지 살펴보겠습니다. 먼저 지분 증명에 참여한 노드들이 자신이 생성한 블록을 서로에게 전송합니다. 그다음 각 블록에 이상이 없는지 확인한 후, 노드 중 무작위로 하나를 검증자로 선정합니다. 선정된 검증자는 자신의 블록을 전체 블록체인에 전파합니다. 이러한 검증자는 매 블록 생성 시에 새롭게 랜덤으로 결정됩니다.
물론 검증자는 완전히 랜덤 하게 선택되는 것은 아닙니다. 블록 검증에 참여한 노드는 스테이킹이라고 부르는 이더 예치 과정을 거치게 되는데, 예치된 이더의 개수에 따라 검증자로 선택될 확률은 달라집니다. 노드가 많은 양의 이더를 예치하면 더 높은 확률로 검증자에 선택되며, 더 많은 보상을 가져가게 됩니다. 지분 이외에도 스테이킹 기간 등 여러 요소가 검증자 선택에 영향을 줄 수 있습니다.
이더 예치 금액이 많은 노드가 더 높은 확률로 검증자에 선택되는 이유는 이전에 알아봤던 것처럼 더 많은 이더(지분)를 가진 검증자일수록 이더리움에 악의적인 공격을 가했을 때 더 큰 피해를 입기 때문입니다. 악의적인 공격이 확인된다면 이더 가치 하락에 대한 피해를 입을 뿐만 아니라 예치한 이더의 일부를 페널티로 잃을 수도 있습니다. 올바른 검증을 계속하여 얻는 이득보다 블록체인 공격 과정에서 발생하는 손실이 더 크다면, 노드는 굳이 블록체인을 공격할 필요가 없을 것입니다.
추가적으로 이더의 가격이 비싸질수록 공격은 더더욱 어려워집니다. 블록체인을 공격하기 위해서는 전체 스테이킹된 코인의 절반 이상을 해당 노드가 보유하고 있어야 합니다. 만약 이더의 개당 가격이 높다면 공격자는 많은 비용을 들여야 하기 때문에, 공격은 이전보다 더 어려워질 수밖에 없습니다.
결론적으로 지분 증명은 작업 증명과는 다르게 노드가 이더리움 클라이언트를 실행할 경우 많은 양의 연산작업을 하는 것이 아니라 이더 예치 즉, 스테이킹만 하면 됩니다. 따라서 트랜잭션을 검증하고 스마트 컨트랙트를 실행하는 정도의 적은 연산양으로도 블록체인이 유지될 수 있습니다.
지금까지 지분 증명에 대해 알아봤습니다. 감사합니다.
'이더리움 > 이더리움과 월드 컴퓨터' 카테고리의 다른 글
[이더리움과 월드 컴퓨터] 4-2. 레이어2와 롤업 (0) | 2023.04.15 |
---|---|
[이더리움과 월드 컴퓨터] 4-1. 오라클 (0) | 2023.04.01 |
[이더리움과 월드 컴퓨터] 3-2. NFT (0) | 2023.03.21 |
[이더리움과 월드 컴퓨터] 3-1. 토큰 (0) | 2023.03.18 |
[이더리움과 월드 컴퓨터] 2-5. 솔리디티 (0) | 2023.02.18 |