이번 포스팅에서는 노드들의 합의가 어떻게 이뤄지는지 합의 매커니즘에 대해서 다뤄볼게요. 이전 포스팅에서 노드들의 역할에 대해 다룰때 합의가 무엇이며 왜 필요한지 짧게 다뤘어요. 철수가 영희에게 1000원을 보낸 사실에 대해서 학급의 아이들 모두가 이 송금이 올바른 송금이라고 판단하고 각자가 관리하는 장부에 기록하는 것이 ‘합의’ 에요.
블록체인에서의 합의란 노드들이 거래 사실에 대해서 인정하고 블록에 그 트랜잭션을 포함시키는 것을 의미해요. 합의 매커니즘은 합의가 어떻게 이뤄지는지 그 원리에 관한 이야기이고 각각의 종류와 특징을 알아볼게요.
블록체인의 합의 메커니즘: 모두가 동의하는 방법 🤝
작업증명(PoW, Proof of Work)
작업증명 방식은 비유를 하자면 ‘가장 먼저 문제를 푼 사람’에게 상을 주는 것이라고 할 수 있어요.
채굴에 참여한 노드들이 다음 블록을 연결하기 위해서는 복잡한 수학 문제를 풀어야 해요.(이건 나중에 다른 포스팅에서 더 자세히 다룰게요) 이 때 가장 먼저 이 수학 문제를 푼 채굴자에게 보상을 지급하고 이 채굴자가 연결한 블록에 관한 정보가 네트워크 전체에 전파되어요. 결과적으로 블록이 이어지고 1등으로 수학 문제를 푼 채굴자는 채굴 보상을 받게 되는 거에요.
조금 더 구체적으로 살펴볼게요. 채굴자로 참여중인 노드가 100개가 존재하는 상황이고 A블록 <- B블록이 연결된 상태에요. B블록에 이어서 C블록을 이어야하는 상황인거죠. 이 때 100개의 노드는 C블록을 만들기 위해서 복잡한 수학 문제를 풀기 시작해요. 100개의 모든 노드가 ‘가장 먼저 푸는 사람에게 보상’을 지급하는 수학 문제 풀기 대회에 참여한 거라고 볼 수 있어요. 결국 문제를 푸는 노드가 등장하게 되고 이 노드가 푼 정답이 각 노드에 전파가 되고 정답으로 인정이 되면 C블록이 연결되고 문제를 푼 노드는 보상을 받게 되어요.
(이 문단은 당장 이해가 안되셔도 그냥 ‘그런가보다’ 하고 넘어가주세요.) 이걸 기술적인 측면에서 다시 설명 해볼게요. B블록에는 다음 블록을 구성하기 위한 ‘난이도 목표’ 라는 값이 설정되어 있어요. 이 값을 만족시키는 트랜잭션 해시 값을 만들어내기 위해서 100개의 노드들은 열심히 nonce 값을 무작위로 넣어서 계산을 하기 시작해요. nonce 값은 대략 42억까지 존재해서 모든 값을 대입해가면서 B블록의 ‘난이도 목표’를 만족시키는 값을 찾기 시작해요. 계산 경쟁을 하는거죠. 결국 가장 먼저 찾은 노드가 채굴 보상을 얻게되고 B블록 다음으로 블록이 생성되어요. 블록이 생성된다는 말은 곧 트랜잭션들이 블록체인 네트워크에 기록되는 것을 의미하죠.
위 설명에서 수수료의 개념과 난이도 설정 원리 등 보충해야할 부분이 많지만 일단 ‘작업증명’ 이라는 합의 매커니즘이 어떤 것인지 이해하는 것이 목표이기 때문에 최대한 핵심만 간추렸어요.
이런 기술적인 부분은 당장은 눈여겨보시지 않으셔도 되어요. 후에 블록과 트랜잭션을 더 깊이 다룰 것이고 그 때 조금 더 선명하게 이해할 수 있을거에요. 지금은 ‘작업증명’ 이라는 매커니즘이 어떻게 동작하는지 큰 그림만 이해하면 충분해요.
한 줄로 요약해보면 ‘작업증명’ 이란 ‘문제를 먼저 푼 1인에게 보상을 주고, 이 1인이 가져온 정답으로 다같이 합의를 보는 것’ 이라고 이해하시면 될 것 같아요. 학급에서 비유을 들어보면 학급 내 30명의 아이들 중 A라는 문제에 대해서 가장 먼저 누군가가 가져온 정답을 가지고 학급의 모든 아이들이 ‘A문제에 대한 정답은 이것으로 하자’ 라고 합의를 보는 거에요. 물론 이것이 진짜 정답인지 다들 확인해보는 절차는 진행하고, 이 문제를 가장 먼저 푼 아이는 보상을 받게 되어요.
지분증명(PoS, Proof of Stake)
지분증명 방식은 학급의 비유로 설명하기가 어려워요. 지분증명 매커니즘의 동작 방식이 학급에서 발생할 만한 사례가 없기 때문이에요. 그래서 주식회사로 예시를 들어볼게요.
회사의 특성을 생각해보면 아래와 같은데 지분증명에 그대로 적용이 되어요.
- 주식을 많이 가진 사람이 더 큰 결정권을 가져요
- 회사에 해를 끼치면 자신의 주식 가치도 떨어져요
- 이익이 나면 주식 수에 따라 배당금을 받아요
지분증명 방식에서는 예치금이 가장 큰 노드가 검증자로 선정될 확률이 높아요. 그리고 잘못된 행동을 하는 검증자는 패널티를 받게 되어요. 그리고 채굴이 된 경우 예치금이 클 수록 보상도 큰 구조에요. 지금은 어떤 의미인지 이해가 안되시겠지만 밑의 글을 보시면 바로 이해가 되실거에요.
지분증명(PoS)의 핵심: 검증자와 일반노드 🔍
지분증명에서는 ‘검증자’가 존재해요. 이전에 우리는 ‘노드’라는 개념을 살펴봤는데, 노드와 유사하지만 조금 더 특별한 노드라고 생각해주세요. 지분증명 네트워크에는 두 종류의 참여자가 있어요.
- 검증자(Validator)
- 일정량 이상의 코인을 예치한 특별한 노드
- 블록 생성과 검증에 직접 참여
- 보상을 받을 수 있음
- 일반 노드
- 거래만 하는 일반 참여자
- 블록체인 데이터를 보관하고 전달
- 직접적인 보상은 없음
작업증명에서는 문제를 가장 먼저 푼 노드가 다음 블록을 이을 수 있다고 설명 했었어요. 지분증명에서는 예치금 비율을 고려한 확률적 선정 방식으로 검증자가 다음 블록을 이을 수 있어요.
A 검증자, B 검증자, C 검증자가 각각 블록체인 네트워크에 예치금을 걸고 참여를 해요. 이 예치금의 금액 크기가 클 수록 다음 블록의 검증자로 선정될 가능성이 커져요. 확률적으로 커진다는 의미이지 확정이 된다는 것이 아니에요. 검증자가 선정이 되면 블록을 생성하고 이를 노드들에게 전파를 해서 검증을 받고, 검증이 완료되면 검증자는 보상을 받고 블록을 잇게 되어요.
검증자(Validator)의 역할 ⭐
검증자의 역할을 다시 정리해볼게요.
1. 블록 생성
- 새로운 블록을 제안할 수 있음
- 거래를 모아서 블록으로 만듦
2. 블록 검증
- 다른 검증자가 제안한 블록을 확인
- 규칙에 맞는지 검사
3. 투표 참여
- 블록의 유효성에 대해 투표
- 네트워크 중요 결정에 참여
검증자가 되려면? 💰
검증자는 아무나 될 수 없어요.
1. 필요 조건
- 최소 필요 코인 예치 (예: 이더리움의 경우 32 ETH)
2. 기술적 요구사항
- 24시간 운영 가능한 노드
- 안정적인 인터넷 연결
3. 책임과 위험
- 악의적 행동시 예치금 삭감
- 노드 오프라인 시 불이익
작업증명(PoW)과 지분증명(PoS) 비교하기 🔄
핵심 차이점 한눈에 보기 👀
작업증명(PoW)
- 컴퓨터 성능으로 경쟁
- 가장 먼저 푸는 노드에게 보상이 주어지기 때문에 성능이 좋아야해요. 성능이 좋아야 문제를 빨리 풀 가능성이 높기 때문이에요. 문제를 빨리 푼다는 것은 다음 블록을 빨리 만들어 낸다는 것이에요. 다음 블록을 만들어 낸다(=채굴을 의미)는 것은 이전 블록의 난이도 목표를 고려한 nonce 값을 빠르게 찾아낸다는 것을 의미해요. (블록의 구성과 채굴의 절차에 대한 자세한 기술적 풀이는 다른 포스팅에서 더 구체적으로 다룰 예정이에요)
- 전기 많이 사용
- 경쟁을 하는 것이다 보니 전체 전력 소모의 합이 큰 편이에요
지분증명(PoS)
- 예치한 코인으로 참여
- 주주총회 같은 의사결정
- 전기 적게 사용
- 작업증명은 모두가 경쟁을 하다보니 전기가 많이 사용되었는데, 지분증명에서는 확률적으로 검증자가 선정되기 때문에 작업증명에 비해서 전기를 적게 사용하게 되어요.
- 단순히 지분증명이 작업증명보다 전력을 적게 사용한다는 것이 아니라 증명 방식이 다르기 때문에 전체 네트워크가 소모하는 전력이 상대적으로 적다는 의미에요.
- 최소 예치금 필요
- 달리 해석하면 예치금이 없으면 아예 참여할 수 없다는 의미에요.
위임지분증명(DPoS): 대표자를 선출하는 합의방식 🗳️
이건 지분증명이 약간 변형된 방식이에요. 대표자를 선정하는 개념인데 상위 N명의 노드를 대표자로 선정하는거죠. 국민들이 국회의원이라는 대표자를 세우고 국회의원들에 의해서 입법이 되는 형태라고 생각하시면 될 것 같아요.
지분증명과 차이를 생각해보면 당연히 참여자가 적기 때문에 더 효율적으로 합의가 이뤄져요. 높은 처리량, 빠른 속도를 가질 수 있어요. 그리고 에너지 효율도 좋아요. 그만큼 적은 수의 노드만 운영해도 되니까요.
이미 이것만 봐도 느낄 수 있는 치명적인 단점은 ‘중앙화’ 와 거리가 멀다는 것이에요. 소수의 대표자에 의존하는 형태이기 때문이에요. 담합을 해버리면 조작도 가능한 구조인것이에요. 혹은 대표자들이 동시에 해킹이 된다면 이 또한 네트워크가 조작될 여지가 있는 것이죠.
EOS, TRON 이 DPoS 로 동작한다고 해요. 개인적으로 DPoS 는 블록체인 네트워크의 핵심 가치에 위배되는 구조라는 생각해서 정이 안가는(?) 느낌이에요. 하지만 TRON 네트워크가 Strike 에서도 사용중이기도 하고 아직까지 잘 살아남아 이용되고 있는 것을 보면 시장에도 존재 가치를 이미 보여준 거라고 생각해요.