안녕하세요. @yoonsg입니다. 오늘은 스팀잇을 이루는 블록체인의 가동 방식 DPoS에 대해 알아보겠습니다. 글을 쓰려고 요즘 블록체인 관련 논문들을 눈빠지게 보고 있습니다… 스팀잇 이야기 시리즈는 꾸준히 올라오니 다른 글들도 봐주세요!
[스팀잇 이야기] #1. 왜 내 보상이 떨어졌다 올랐다할까?
[스팀잇 이야기] #2. 보팅의 가치는 어떻게 산출될까?
[스팀잇 이야기] #3. 하루에 스팀은 얼마나 채굴될까?
[스팀잇 이야기] #4. 유용한 스팀잇 서드 파티 어플리케이션 5종
[스팀잇 이야기] #5. 스팀잇이 채택한 DPoS(Delegated Proof of Stake, 위임 지분 증명)
DPoS(Delegated Proof of Stake, 위임 지분 증명, 이하 DPoS)는 왜 등장했는가?
DPoS에 대해 설명하기 전에 채굴과 블록체인의 관계에 대해 먼저 설명하고 넘어가겠습니다.
자동차는 기름을 연료로 사용해 엔진이 동력을 공급하고 그에 따라 움직입니다. 스마트폰은 전기가 회로를 따라 움직여 연산을 수행하고요. 완벽하지 않은 비유지만 블록체인은 PoW(Proof of Work, 작업 증명, 이하 PoW)의 경우 연산력을, PoS의 경우(Proof of Stake, 지분 증명, 이하 PoS)의 경우 지분 비율을 연료로 사용해 채굴로 가동됩니다. 블록체인이 블록들이 연결된 것임은 알고 계실겁니다. 그 블록들은 각각 정보를 내포합니다. 스팀잇의 경우 모든 정보가 블록체인에 올라가죠. 글, 거래, 업보트 등등 모두 기록됩니다. 채굴은 쉽게 이야기하면 블록을 만들어주고 확정지어주는 행위라고 할 수 있습니다. PoW를 사용하는 비트코인의 경우 암호를 엄청나게 풀어 블록을 만들고 PoS를 사용하는 스트라티스의 경우 지분을 가진 비율에 따라 확률적으로 블록을 생성합니다.
위에서 예로 든 비트코인, 스트라티스는 잘 굴러가고 있는 코인들입니다. PoW, PoS로도 잘 돌아간다면 왜 스팀은 DPoS라는 생소한 시스템을 도입했을까요? PoW, PoS는 약점을 내포합니다.
PoW와 PoS의 약점
51% attack, Sybil attack 등등의 공격들을 통틀어 편하게 ‘해킹’이라고 쓰도록 하겠습니다.
PoW 코인의 경우 어떤 세력이 51% 이상의 채굴력을 독점한다면 새로운 블록의 생성, 거래의 컨펌 모두 그 세력이 독점하게 됩니다. 실제로 Ghash.io는 2014년 7월 비트코인 채굴력의 50% 이상을 차지했고 다행히 자진해서 본인들의 채굴력을 낮췄습니다. 이제 비트코인의 경우 시장이 너무나 커져 어떤 세력이 51% 이상의 해싱 파워, 즉 채굴력을 가지는 것이 불가능하기에 해킹이 불가능합니다. 그러나 채굴자가 별로 없는 코인이라면 이런 단점을 극복하기 어렵겠죠.
PoS 코인의 경우도 비슷합니다. 일정 지분을 가진 참여자가, 컨펌 블록 수보다 많은 양의 블록을 한 번에 생성할 수 있는 주기마다, 해킹 가능성이 있습니다. 아래 Reference에 적어 놓은 논문에 잘 나오는데요. 설명하기에는 조금 복잡하기에 넘어가도록 하겠습니다. PoS의 경우는 다만 블록 생성을 되돌릴 시 벌금이 부과되는 형태로 이를 보완하고 있는 듯 하여 규모가 커졌을 때는 PoW에 비해 안전하다고 할 수 있겠습니다.
DPoS가 그래서 왜 나왔냐고!
DPoS는 PoS를 미국의 선거인단 방식처럼 증인들에게 위임하여 가동하는 것입니다. 스팀잇의 경우 20명의 top witness들과 1명의 무작위로 결정된 standby witness가 21개의 블록을 매 63초마다 생성하고 그 순서는 랜덤입니다. 블록체인에 대한 합의는 (하드 포크 등)은 3분의 2 이상이 동의해야 이뤄집니다. 소수의 검증된 인원들이 노드를 돌리고 블록체인을 돌리는 것이기 때문에 위에서 언급한 해킹이 발생할 가능성이 상당히 줄어듭니다. 증인들이 담합을 할 경우에는 위험하겠지만 증인들이 본인이 보유한 자산의 가치를 궁극적으로 하락시키는 일을 할 가능성이 낮기 때문이죠. 또한 증인들이 미친 척하고 블록체인을 파괴하려 하더라도 이를 되돌리는 하드포크에 동의하는 증인들을 새로 선출하면 됩니다.
스팀잇과 DPoS
개인적으로 DPoS는 스팀잇에 굉장히 잘 어울리는 시스템이라고 생각합니다. 첫째로 DPoS는 신뢰를 바탕으로 하고 있는 시스템이기 때문이죠. 스팀잇에서 아이덴티티를 가진 사람들이 증인이 됩니다. 증인들은 https://steemit.com/~witnesses에서 직접 뽑으실 수 있습니다. 소통을 해본 결과 이 사람이 믿을만하다 싶으면 뽑으면 되는 것이죠. 실제로 kr 커뮤니티의 @clayop님은 top witness로 활동중이시고 @asbear님도 증인 랭킹 78위에 랭크되어 계십니다.
(참고: https://steemd.com/witnesses)
둘째로 스팀 파워를 스팀으로 바꾸는 데에 13주라는 시간이 걸립니다. 당장 double spend 공격을 해서 이득을 본다 한들 본인들이 이미 가지고 있는 자산을 현금화하기 힘든 것이죠. 증인이 될 정도면 상당한 스파를 보유해야 하는데 조그만 이득을 위해서 공격을 할 이유가 없습니다.
마치며
사실 스팀잇의 가장 좋은 점은 이런 걸 아는 데에 골머리 썩힐 일이 없다는 것입니다. 양질의 글을 쓰다보면 보상을 받으니까요. 암호화폐에 투자를 하고 블록체인에 관심이 있어 공부를 할 때에는 되게 힘들었습니다. 이제 그런 걸 모두 접고 스팀잇에 와서 글만 쓰니 살 것 같네요. 혹시나 더 자세히 알고 싶은 분들이 계실까봐 아래에 Reference를 붙였습니다. 첫 번째 논문은 PoS에 관한 논문이고 두 번째는 DPoS에 대한 간단한 설명입니다. 이제 며칠간 글을 못 쓸텐데 사진으로라도 찾아뵙도록 하겠습니다. 읽어주셔서 감사합니다.
Reference
- Cryptocurrencies without Proof of Work. Bentov I, Gabizon A, Mizrahi A. FC '16.
- https://bitshares.org/technology/delegated-proof-of-stake-consensus/
좋은글 감사합니다
읽어주셔서 감사합니다!
양질의 글을 스면 보상을 받는다..
아무튼 앞으로도 스팀잇 흥하길 바래봅니다!ㅎ
읽어주셔서 감사합니다~
어렵지만 원리는 대강 알거 같아요..저도 이제 막 투자를 시작했으니 좋은 글 쓰도록 노력해야 겠네요^^팔로우 하고 가요~
ㅎㅎ 팔로우 감사합니다!
잘 봤습니다~~
다만.. 스팀잇의 DPOS 보다는 스팀의 DPOS가 어떨지.. 하는 생각이 들랑 말랑 하네요~~ ㅎㅎ
사실 그렇긴하죠..! 하지만 연관성이 크기에 그냥 스팀잇으로 썼습니당.. 읽어주셔서 감사합니다!