작업증명(PoW), 지분증명(PoS)
어려운 금융, 가장 쉽게 설명해주는 뱅크샐러드 알아보기 >>
작업증명(Proof of Work)이라는 개념은 처음 접하는 사람들에겐 생소한 용어이기도 하지만 블록체인을 공부하는 사람들에게는 기본중의 기본이면서도 어려운 내용이기도 하다.
작업증명(Proof of Work)을 간략히 요약하자면 컴퓨터의 연산력을 바탕으로 합의에 도달하고 그 연산력이 빠를수록 블록에 기록할 수 있는 권한이 더 많이 부여된다는 것이 핵심이었다.
> Proof of Stake(지분증명)는 간단히 말해 작업이 아닌 더 많은 지분(해당 코인)을 가지고 있을수록 그에 비례하여 블록에 기록할 권한이 더 많이 부여되는 것이다.
코인을 가지고 있는 노드들 모두가 합의를 통해 블록에 데이터를 추가 할 수 있게 되는 것이고 코인을 많이 가진 노드는 데이터를 업데이트할 권한이 더 많이 주어지는 것이 Proof of Stake이고, PoW와 마찬가지로 블록이 생성될때 보상이 지급되는데 지분에 대한 이자의 개념으로 보상이 지급된다는 것이 둘의 다른 점이라면 다른 점이다.
그림과 같이 각 자산을 보유하는 노드들은 자신이 합의하는 블록에 자산을 증명함으로서 데이터를 업데이트 하게 된다.
다시 말해 본인이 옳다고 생각하는 블록에 동의를 하면서 자신이 가진 Stake(지분)을 해당 블록에 보여주고 증명하는 것이고 그 결과 밑의 그림처럼 과반수의 자산이 동의한 블록이 더 빠르고 더 길게 블록들을 형성하게 된다.
위 그림처럼 체인이 갈라지는 포킹(Forking)이 일어나게 되더라도 더 많은 자산을검증(보유)하는 체인이 결국엔 살아남게 되는것이 PoS 합의 메커니즘의 운영방식이다.
이렇게 코인을 소유하고 있는 사람 누구나가 데이터 베이스를 업데이트 할 수있게 되는데 이를 단순하게 생각하면 정말 위험하다고 볼 수 있다. 돈을 많이 가진 사람일수록 장부에 작성할 권한이 많이 주어진다니 지분이 많은 사람이 악의적인 공격을 가하게 된다면 해당 블록체인은 위험에 처하게 될 수 밖에 없다.
가령 A라는 친구가 이더리움 전체 지분의 51%를 소유하고 있는경우 이더리움 데이터 업데이트의 권한은 A가 쥐고흔들수 있다고 볼 수 있다.
따라서 A가 싫어하는 B라는 사람이 100억원이라는 자산 가치의 이더리움을 보유하고 있을 경우 A가 B의 이더리움 기록을 없는 기록을 만들어 버릴수 있는 것이다.
- 기존 PoW 방식은 블록체인의 정당성을 확인할 수 있지만 채굴노드의 경우 하드웨어를 직접적으로 갖춰야 하고 에너지 소모가 굉장히 클뿐더러 대량의 채굴기를 돌리는 경우 지리적으로도 넓은 평지를 가지고 있어야 가능하다 왜냐하면 채굴기 자체에서 발생하는 열과 소음이 상당하기 때문이다.
- PoW에서 51%의 해시파워를 가지는 비용 = 약 1조
- PoS에서 전 세계 자산의 51% = 약 100조
이렇게 100배 가량의 차이가 나타나기 때문에 PoS가 중앙집권화가 더 어렵고 코인을 가진 노드 누구나 네트워크에 허가 없이 참여하기 때문에 오히려 더 분산화가 더 잘 된다고 볼 수 있고 더 많은 사람들이 의사결정 과정에 쉽게 참여할 수 있다.
1. 더 쉬운 방식으로 더 많은 노드들이 참여할 수 있으며
2. 더 분산화된 합의방식이 될 수 있는 방향을 제시하고
3. 이는 특정 블록체인에 해당하는 코인을 가질수록 데이터 업데이트의 권한이 주어지기 때문이고 이로인해 정말 많은 사람들이 의사결정에 참여할 수 있게 만드는 블록 업데이트 방식이다.
> PoS의 가장 큰 문제점은 자산증명을 하는데 있어 한계 비용(marginal cost)이 전혀 없다는 것이다. 이 문제를 'Nothing at Stake'라 한다.
이게 과연 무슨말일까?
아래 그림을 보면
여기서 '여러블록에 증명한다'는 것은 두 개로 갈린 체인의 거래가 모두 맞는 거래라고 검증(validating)하는 것. 그래야 둘중 어떤 거래가 참이든 거짓이든 계속 체인이 유지되든 이득을 보기 때문.
이 경우 두 가지 유형의 공격이 가능하다.
그림의 Long Range Attack의 경우 블록에 새로 참여한 검증자(Validator)는 어느 것이 정당한 블록체인인지 알 수 있는 방법이 없다. 그래서 새로 많은 지분을 사들여 검증에 참여하는 노드가 거짓인 블록체인에 증명(합의)을 해버릴 경우 제대로 된 거래를 한 사람은 모두 공격에 당하는 꼴이 되는것.
또 다른 하나는
Short Range Attack에서는 그림과 마찬가지로 포킹이 일어날시 검증자(validator)들이 어느 쪽 체인에든 무조건 증명(합의)하는 것이 유리하다.
오히려 양쪽 체인에 증명(합의)하지 않으면 손해를 볼 수 밖에 없게 되는 상황인 것이다. 왜냐하면 어떤 쪽이 정당한 블록체인이 되어 살아남든 합의하는 것에는 제한이 없으므로 양쪽에 모두 지분을 증명해 놓아야 어떤식으로든 보상을 받을수 있기 때문이다.
다시 말해 Nothing at Stake는 말 그대로 어느 쪽이든 잃을 것이 없다는 것이다.
그렇다면 이 심각한 문제를 어떻게 해결할 것인가?
그래서 이더리움 개발자들은 '보증금'과 '벌금' 제도를 부가해서 이를 해결하려고 하고 있다.
말 그대로 검증자(validator)들이 지분을 블록상에서 증명할때 보증금을 어느정도 걸어놓고 그 블록이 거짓임이 드러나게 되면 보증금에서 벌금을 차감하는 방식으로 해결방안을 모색하고 있는 중이다. 그래서 'nothing at stake'에서 'something at stake'로 만들어 정당한 블록이 생성되도록 하는 것이다.
이렇게 좀더 효율적이라고 평가받는 PoS는 현재 블록체인 시스템에서 적용이 되기 시작하여 현재 높은 주가를 달리고 있고 이 시스템은 이더리움을 기반으로 안정화 되어가는 중이다.
Written by EasyBlockchain
블록체인 분야 전문 블로거가 블록체인 기술의 기본에 대해 가장 쉽게 설명해드립니다.
어려운 금융, 가장 쉽게 설명해주는 뱅크샐러드 알아보기 >>