댄 라리머의 DPOS는 언젠가 심판대에 오른다

in #coinkorea7 years ago (edited)

머리말

DPOS(Delegated Proof of Stake)는 빗쉐어(Bitshares, BTS), 스팀(Steem), 이오스(EOS)가 채택하고 있는 합의 프로토콜입니다. 이 3가지의 암호화폐에 모두 연관된 자, "댄 라리머"가 주축이 돼 개발된 강력한 합의 방식이죠. 현존하는 타 프로토콜에 비해 단위 시간당 압도적으로 많은 트랜잭션을 처리할 수 있으며, 전송수수료도 무료(!)입니다. 굉장히 매력적인 방식이 아닐 수 없습니다 :)

그런데, 어딘가 불편하시진 않으신가요? 세상에 공짜는 없습니다. 분명 무언가를 얻으면 다른 "어떤 것"을 희생시키기 마련입니다. 그 "어떤 것"이 전혀 필요없는 것일 때만 이 희생은 값진 희생이 됩니다. 여전히 DPOS를 채택하지 않고 POS나 POW를 채택하는 암호화폐는 있습니다. 대표적으로 이더리움 개발자 비탈릭 부테린은 DPOS에 대해 꽤나 부정적입니다. 왜일까요?

이 글에서는 해당 부분에 대해 다루어보려고 합니다. 어쩌면 이 글을 읽는 대부분의 사람들은 불편하실지도 모르겠습니다. 공교롭게도 스팀과 이오스가 DPOS 기반 코인이니까요. 스팀잇에 스팀과 이오스를 지지하는 분들이 많다는 것을 저도 잘 알고 있습니다. 저 또한 그렇습니다. 그러나 무언가를 믿고 지지함에 있어서 그것이 가진 취약점과 한계점을 이해하는 것도 중요하다고 생각합니다.

마지막으로 저는 블록체인을 취미로 공부하는 사람이지 전문가는 아닙니다. 제 의견이나 설명에 오류가 있을 수 있습니다. 언제나 말씀드리지만 이 글은 정보전달만이 목적은 아닙니다. 블록체인에 대해 깊은 이해도를 가지고 계시다면, 언제든지 댓글로 토론과 논의에 참여해주세요. 배우는 자세로 경청하고 논의에 임하겠습니다 :)

DPOS는 언젠가 심판대에 오른다


아직 POS 전환은 안됐지만, 대표적 지지자가 비탈릭 부테린이기 때문에 POS 대표주자로 이더리움을 넣었습니다.

DPOS란?


들어가기 앞서 DPOS가 무엇인지부터 다루어보겠습니다. DPOS는 Delegated Proof of Stake의 약자입니다. 직역하면 위임지분증명입니다. 위임지분증명이 무엇을 말하는 것일까요? 머리가 아파옵니다 :( 벌써부터 뒤로가기를 누르고 싶어집니다. 그런데 스팀잇 여러분, 벌써 뒤로가기를 누르시면 DPOS 방식은 절대 장수할 수 없다는 사실을 알고계신가요? 조금만 더 견뎌주세요! :)

쉬운 이해를 위해 이 합의 방식을 정치판에 대응시켜보겠습니다. 일반적인 POS 방식은 "직접 민주주의"입니다. 어떤 안건이 생겼을 때 구성원 모두가 참여하여 투표합니다. 대신 구성원이 되기 위해서는 기본 자격을 갖추어야 합니다. 자격을 갖춘 사람들을 "마스터노드"라고 합니다. 정리하면 다음과 같습니다.

  • POS = 직접 민주주의
  • 투표권자 = 마스터노드
  • 기본자격 = 마스터노드를 위해 필요한 지분(코인 수)
  • 투표권자의 업무 = 블록생성, 하드포크 방향성 투표

DPOS 방식은 "간접 민주주의"입니다. 구성원은 어떤 안건이 생겼을 때 본인의 투표권을 대신 행사해 줄 "의원"을 선출합니다. 의원은 본인을 선출해준 구성원의 이익을 대변하여 투표권을 행사해 안건을 결정합니다. 이 의원이 "증인"입니다. 정리하면 다음과 같습니다.

  • DPOS = 간접 민주주의
  • 의원 = 증인
  • 의원 선출 투표권자 = 개인 코인 보유자
  • 의원의 자격 = 본인을 투표한 구성원의 코인 총 합이 00위 이내.
  • 의원 선출 투표권자의 자격 = 없음, 개인의 투표권리는 보유 코인 수에 비례
  • 증인의 업무 = 블록생성, 하드포크 방향성 투표

** 첨언) @sol7142 님이 지적해주신 사안입니다. 사실 마스터노드는 엄밀히 말하자면 POS와 다소 차이가 있습니다. 그러나 기본적인 개념에 유사한점이 많고, 본 논의를 진행함에 있어 오해가 생기는 부분은 적기 때문에 수정은 하지 않겠습니다. 다음에 기회가 되면 무엇이 다른지 포스팅하도록 하겠습니다. 감사합니다.

DPOS 매력


소규모 참여자의 편의

직접 민주주의가 간접 민주주의에 의해 사라진 것처럼, DPOS는 POS를 밀어내고 우뚝 올라설만큼 강력하고 매력적인 프로토콜입니다. 일단 소규모 참여자가 편합니다. 블록생성을 위해 네트워크를 유지해주고 하드포크마다 알고리즘 업데이트 해주고.. 그런 성가신 일을 신경쓸 필요가 없습니다. 덧붙여 마스터노드를 위해 어마어마한 양의 코인을 살 필요도 없습니다.

이자를 주거나 송금수수료를 없애주거나

소규모 투자자는 투표 권리를 행사합니다. 그럼 증인은 다음과 같이 몇가지 약속을 해줄 수 있습니다.

  1. 당신이 투표(위임)한 코인으로 발생된 채굴 보상의 80%(예시)를 돌려주겠습니다. (채굴 풀 공약)
  2. 당신이 투표(위임)한 코인만큼 당신의 송금 수수료를 감면해주겠습니다. (수수료 감면 공약)

다들 아시다시피 이오스와 스팀은 송금 수수료가 없습니다. 2번을 택하는 방식입니다. 보통 DPOS를 택하지만 송금 수수료가 있는 코인들(ARK, RISE 등)은 1번을 택하는 방식입니다. 1번은 결국 마스터노드 코인의 채굴풀과 궤를 같이합니다. 증인이 일종의 채굴 풀이 된다고 보시면 됩니다.

** 이 문단 이후로 DPOS 기반 코인은 2번을 바탕으로 한다고 가정하겠습니다. 1번은 일반 POS와 흡사한 측면이 많기 때문에 논의의 본질이 흐려지기 때문입니다.

압도적인 속도의 합의 = 빠른 송금

가장 중요한 부분이죠. 속도가 압도적으로 빠릅니다. 정치판에서의 간단한 예로, 대통령 선거 집계 결과를 내놓는 데 약 10시간 정도가 걸립니다. 게다가 비용도 만만치 않죠. 그런데 의회의 투표결과는? 한사람이 적당히 투표용지 모아서 찬성/반대 집계하면 10분은 걸리려나요? DPOS도 마찬가지입니다. 합의 속도가 타 POS에 비해 압도적으로 빠를 수밖에 없습니다. 이는 곧 송금처리가 굉장히 빠름을 의미합니다.

DPOS가 희생한 것들


이슈 1-1) 정말 탈중앙화 맞나요?

진정한(?) DPOS를 채택하고 있는 대표적인 코인 Steem은 총 20명의 증인과 유사시를 대비한 대기 증인 80명을 선출합니다. EOS의 경우도 Steem 백서에서 설명된 DPOS를 기반으로 하고 있다고 설명되어 있으니 정확한 수치는 차이가 있을 수 있지만 거의 비슷한 구조입니다. 아무리 개개인의 투표로 인해 선출된 20명의 증인이라고 하더라도, 그 관리자의 숫자가 늘어나는 것은 아닙니다. 20명이 관리하는 블록체인 네트워크가 과연 탈중앙화라고 말할 수 있을까요?

이에 대해서는 의견이 분분합니다. 저 또한 감히 이건 맞다/아니다라고 답을 내리기 어렵습니다. 다만 그 구조적인 부분에서 어느정도 모순이 있음은 쉽게 발견할 수 있습니다. 이 모순은 DPOS 기반 블록체인 네트워크의 신뢰성과 안정성에 대한 리스크로 이어지게 됩니다.

첫번째 리스크: 증인 네트워크 공격
탈중앙화된 네트워크의 가장 큰 강점은 보안입니다. 보안이 강력한 첫번째 이유는 해커가 네트워크 백업서버 중 어디를 공격해야 효율적인지 골라내기 쉽지 않다는 것입니다. 노드들이 너무 많으니까요. 그러나 DPOS기반의 경우는 대기 증인까지 합쳐 총 100명의 노드뿐입니다. 공격해야할 대상의 범위가 상대적으로 적습니다.

탈중앙화된 네트워크가 공격에 강할 수 있는 두번째 이유는 익명성입니다. 해커는 누가 채굴을 하고 있는지도 색출해내야합니다. 채굴자가 "나 채굴 엄청 많이하고 있어요" 하면서 본인의 IP를 밝히진 않을테니까요. 그러나 DPOS에서는 좀 다릅니다. 올바른 증인 선출을 위해서는 증인이 본인이 누구인지 밝혀야 한다는 딜레마가 있습니다. 누구인지도 모르는데 블록체인 네트워크에서 증인이 되는 것은 그것대로 위험한 일입니다.

두번째 리스크: 보유 코인 수가 적은 증인
두번째 리스크는 코인 보유량이 적은 사람도 증인이 될 수 있다는 것입니다. 이는 분명 수학적인 관점에서 위험한 일입니다. 누군가는 증인을 잘 뽑으면 코인 보유량이 적어도 괜찮은 것 아니냐고 하실 수도 있겠지만, 그것은 수학이 아닙니다. 만일 지난 JTBC 토론회에서 한호현 교수님이 말씀하신 "선의의 참여자는 공공의 이익을 위해 보상없이도 채굴한다"는 말에 분노나 황당함을 느끼셨다면, 이것이 리스크가 된다는 것에 동의한 것과도 같습니다.

세번째 리스크: 개인의 투표 불이행과 거래소의 투표권 남용
증인을 잘 뽑으면 되는 것 아니냐에 대한 반박입니다. 과연 그게 생각처럼 잘 움직여질까요? 그러려면 블록체인 네트워크 참여자 모두가 증인의 공약을 읽고 검토하고 투표권을 행사해야합니다. 현실 정치에서도 투표율 50%를 넘기기 힘든데, 블록체인이라고 다를까요? 덧붙여 선동에 휩쓸려 잘못된 증인에 투표권을 행사하는 개인은 없다고 어떻게 장담할 수 있을까요? 이 문제는 여기서 멈추지않습니다. 엄청난 물량의 코인을 "대신" 보유하고 있는 거래소의 투표권 남용은 어떻게 막을까요?

**첨언: 스팀에서는 스팀 파워로 거래소 리스크 문제를 해소할 수 있지만, 이오스에도 비슷한 시스템이 있는지는 모르겠습니다.

이슈 1-2) 결국 증인 수는 늘려야한다

원리적으로 증인 수가 늘어나면 당연히 이체 속도도 그만큼 줄어들게 됩니다. 그럼에도 불구하고 결국 증인 수는 늘려야합니다. 코인 보유자 숫자가 커질 수록, 네트워크가 점차 더 커질 수록 증인 수는 늘어나야합니다. 인구가 100만명에서 1000만명으로 늘었는데, 국회의원 숫자는 그대로 20명이라면 그것은 문제가 있는 시스템입니다. 계속 증인 수를 20명으로 고집한다면, 점점 더 상대적인 중앙화가 일어나고 다원화된 의견을 반영할 수 없는 않는 시스템이 되버리고 말 것입니다.

**첨언) 그럼에도 불구하고 DPOS가 노드수<->속도 사이의 트레이드를 획기적으로 해결한 방식임에는 이견이 없습니다. 확실한 것은 DPOS는 현재 희생해도 되는 "증인 숫자"를 미리 희생하여 전송 속도를 땡겨쓰는 획기적인 접근법입니다. 적은 수의 증인 문제 또한 점진적으로 네트워크 크기에 따라 키워가면 해결하며 될 일입니다. 그동안 네트워크 프로토콜의 효율성은 늘어날테니, 속도는 빨라지거나 최소한 유지는 되겠지요.

이슈 2-1) 그냥 수수료 내고 보내면 안되나요?

수수료 무료 시스템의 맹점입니다. 10개의 코인을 "무료로" 송금하려면, 본인이 1개의 코인을 보유해야합니다 (비율은 예시입니다). 그럼 내가 100개의 코인을 모두 보내고 싶으면 99개 보내고, 0.99개 보내고..보내고..보내고..해야합니다. 분명히 돈 없는 소규모 참여자를 위한 시스템은 아닙니다. 이 문제를 두고 비탈릭이 "가난한 자에겐 불리한 시스템이며, 소액만 단기간 예금하려는 사람들에게 실용성이 떨어진다"고 지적하자 댄은 다음과 같이 말했습니다.

I agree, the poor shouldn't have to buy any crytpo assets just to use the platform and this is why fees are a problem. Try to implement Steem on Ethereum and you would drive all the users away due to fees alone. There is a high fixed overhead associated with buying even $0.01 of any crypto currency. You have to create an account, pay bank transfer fees, do KYC, pay market spreads, etc. You have to buy and hold over $100 of cryptocurrency to justify the time and money of acquiring it in the first place. It certainly isn't viable to expect users to go through this process for a $0.01 fee.

원문을 요약하면 다음과 같습니다. "가난한 사람은 암호화폐를 플랫폼을 사용하기 위해 구매할 필요가 없다. 플랫폼을 이용하는 데 고정 수수료가 있기 때문이며 또 소액의 이익을 보기 위해 그 작업을 이행할 유인이 적다."

제 개인적으로는 조금 실망스러운 대응입니다. 미래 기술에 대한 본질적인 문제점을 지적했는데, 현존하는 시스템(은행 송금, 시장가 손해 등)을 가지고 모든 암호화폐가 다 똑같이 가진 문제라는 하면 논의의 본질이 흐려집니다. 댄이 꿈꾸는 세상에서는 암호화폐 구매에 은행의 중개가 필요하고, 그러려면 인증을 받아야하고, 시장가 손실도 감내해야하는 것일까요?

**첨언 @indend007, @creamer7 님 의견) 그러나 비탈릭 부테린의 주장에도 문제는 있습니다. 어차피 이더리움도 전송을 위해서는 수수료를 내야합니다. 이 둘을 비교해봤을 때, 이더리움은 코인이 사라지고 이오스는 코인이 묶입니다. 어차피 수수료를 내면서 없어질 돈이라면, 그냥 잔고에 영원히 남겨놓는게 더 나은 것 아닐까요?

이슈 2-2) 스팀잇은?

이런 문제는 스팀잇 자체에서도 발견됩니다. 우리가 스팀잇에 글을 쓰는 것은 네트워크에 전송하는 송금작업과도 같습니다. 때문에 우리는 수수료 없이 글을 쓰기 위해 스팀 파워를 가지고 있어야합니다. 아니면 수수료 지불 능력이 없는 것과 같으니, 글을 쓸 수도 보팅을 할 수도 없습니다. 요즘 밤 12시쯤이 되면 트래픽 사용량이 늘어서인지 저같이 스팀파워가 부족한 사람은 거의 아무 작업도 할 수가 없습니다. 보팅 한번 하면 제가 사용할 수 있는 데이터 처리양을 대부분 다 소모하기 때문이죠.

만일 스팀잇 사용자가 기하급수적으로 늘어, 항상 엄청난 트래픽이 발생한다면 어떻게 될까요? 신규 가입자는 글을 쓰기 위해 스팀파워를 사야만 하는 기묘한 상황에 빠지게 됩니다. 세상에 유료 SNS라니, 이건 아니잖아요 :(

**첨언: 사실 스팀잇의 경우 이 방법이 최선(블록체인 위에 데이터까지 올려야겠다면)입니다. 수수료를 받을 경우 매번 글을 쓸 때마다 코인을 차감시켜야하니까요. 글쓰려면 돈내야하는 플랫폼을 누가쓸까요. 차라리 아무것도 못하더라도 가끔 쓸 수 있는게 낫겠습니다 (...)

마치며: 블록체인 합의와 민주주의 합의의 근본적인 차이


글을 이만 정리해보려고 합니다. 아직 못다한 이야기가 많지만, 더 자세하고 심도있는 토론은 다음 편으로 미루도록 하겠습니다. 마지막으로 이 모든 것에 대한 정리를 해보려고 합니다.

블록체인 합의와 민주주의 합의에는 아주 거대한 근본적인 차이가 있습니다. 바로 1코인 1투표 VS 1인 1투표입니다. 민주주의는 모든 사람이 평등하게 투표 권리를 동일하게 가집니다. 그런데 블록체인은 그래서는 제대로 돌아갈 수 없습니다. 블록체인 합의는 1코인 1투표입니다. 코인 보유량이 많을 수록 투표권리도 커져야합니다. 여기서 아주 큰 차이점이 발생했던 것입니다.

간접 민주주의는 직접 민주주의를 비용면에서, 효율면에서 뛰어넘었습니다. 과연 DPOS도 POS를 뛰어넘을 수 있을까요? 그건 지켜봐야할 것 같습니다. 제가 제목을 "언젠가"로 한발 물러서 지은 것도 그 때문입니다.

다음 편에서는 비탈릭 부테린과 댄 라리머가 구체적으로 어떤 문제점을 지적했고, 어떻게 반박했는지 정리해보겠습니다. 그리고 덧붙여 제 개인적인 견해도 담아보려고 합니다.

이 글을 읽는 것이 재밌으셨나요? 아니면 지루하고 어려우니 난 모르겠다고 생각하셨나요? 만일 후자라면, DPOS의 미래는 다소 어두워보입니다..^^ 재밌는 토론의 장이 열렸으면 좋겠습니다. 반박/사실교정 댓글 환영합니다. 감사합니다.

참고문헌

맺음말

저는 한국의 암호화폐 투기 열풍이 가라앉고, 좀 더 성숙하고 건전한 시장 참여가 이루어지길 기대합니다. 그러기 위해서는 블록체인이 무엇인지에 대한 이해가 필요합니다. 블록체인 기술에 대한 더 깊은 이해를 바탕으로 모두 건강한 투자 하셨으면 좋겠습니다. 리스팀/팔로우/댓글/보팅 감사드립니다. 더 알차고 신나는! 포스팅에 많은 힘이 됩니다.

Sort:  
Loading...
@seungjae1012님 안녕하세요. 하니 입니다. @mastertri님이 이 글을 너무 좋아하셔서, 저에게 홍보를 부탁 하셨습니다. 이 글은 @krguidedog에 의하여 리스팀 되었으며, 가이드독 서포터들로부터 보팅을 받으셨습니다. 축하드립니다!

Cheer Up!

  • from Clean STEEM activity supporter

세속 권력이 20명 또는 100명 정도 잡고자 마음만 먹으면,
얼마든지 잡을 수 있겠지요.

btc 의 pow 야 말로, 진쟁한 탈중앙 화폐가 아닐까 생각되네요.

자세하고 구체적인 설명 감사합니다^^ 어렴풋이 이해하고 있던 개념을 체계적으로 정리해주셔서 많은 도움이 되었습니다ㅎㅎ

잘 봐주셔서 감사드립니다 :)

Loading...

DPOS방식이 대표자가 된 20명과 예비 대표자 80명 밖에 없어서 보안에 취약하다고 한다면, 코인을 소량 갖고 있는 사람들 중에 무작위 추첨을 해서 20명 정도를 계속 무작위로 바꾸되, 대표자나 예비 대표자가 가진 권리를 부여하지 않고, 오로지 보안 용도로만 임명해두는건 어떨까요? 이렇게 하면 해커들이 특정인물을 지명할 수 없어서 해킹에 안전해질거 같은데

제가 알기로는 카르다노가 말씀하신 원리에 근접하다고합니다. 암호화폐 프로토콜 개발에 재능이 있으시네요!? 다만 해당방식은 불행하게도 처리시간이 껑충 뛰게된답니다..ㅠㅠ

thanks for sharing about blockchain & coinkorea
thats good idea
carry on
waiting for your next blog

Thank you :) I will try to give you good information. See you in my next posting

most welcome dear

좋은 글 감사드립니다..리스팀하겠습니다~!

정말 재미있는 글이네요. 쉽지 않은 내용인데 쉽게 설명해주셔서 감사합니다. 다음 편도 기대하겠습니다 :)

감사합니다. 다음편도 열심히 써보겠습니다 ^^