닫기

코인정보 읽기

읽기

카르다노(Cardano, ADA) 탐구: 지분 증명(POS)의 한계와 우로보로스(Ouroboros) [2]

작성자:     작성일시: 작성일2018-02-13 14:30:48    조회: 7,645회    댓글: 2
 

카르다노(Cardano, ADA)는 단숨에 시총 5위까지 치고 올라온 거물급 유망주 코인입니다. 너무 덩치가 커져버려서 유망주라고 부르기도 민망한 구석이 있지만, 이오스(EOS)와 함께 3세대 코인이 될 것이라 많은 기대를 받고 있습니다. 카르다노는 지분증명(POS)기반 합의 프로토콜으로 "우로보로스(Ouroboros)"를 새롭게 제안하는데요. 본 글에서는 "우로보로스"가 정확히 무엇인지, 또 왜 필요한지 알아보도록 하겠습니다.

 

안녕하세요 에스리입니다. 오랜만에 코인 글로 인사뵙는군요. 원래 주말에 다루어보려고 아껴두었던 주제인데, 갑자기 다른 것에 홀려서 조금 미루게 됐습니다. 늦은감이 있지만 귀엽게 봐주시고 이번 글도 재밌게 읽어주셨으면 좋겠습니다. 이번 편 마무리 짓는대로 그 코인 시리즈도 스터디 글도 올리도록 하겠습니다.

 

카르다노 시리즈 1편: 카르다노(Cardano, ADA) 탐구: 댄 라리머 VS 찰스 호스킨스 논쟁


기존의 지분 증명 (Proof Of Stake, POS)

카르다노 합의 프로토콜인 우로보로스를 이해하기 위해서는 먼저 기존 지분 증명이 가지고 있는 한계에 대해 알아야합니다. 지분 증명에는 어떤 문제가 있었고, 그 문제를 카르다노가 어떻게 해결했는지 살펴보는 방향으로 글을 풀어나가 보겠습니다.

 

본 글은 채굴에 대해 어느정도 이해가 있는 독자를 대상으로 기획되었습니다. 채굴 방식 중 대표적인 2가지, 작업 증명(Proof Of Work)과 지분증명(Proof Of Stake)에 대한 기초 지식이 부족하신 분들은 먼저 다른 글을 참조해주시기 바랍니다.

 

가상화폐 채굴 바로알기 시리즈 5편

 

지분 증명이란?

지분 증명은 작업 증명(Proof Of Work, POW)이 가진 에너지 낭비 문제를 해결하기 위해 등장한 합의 프로토콜입니다. 지분 증명에서는 지분 보유량에 따라 "확률적"으로 채굴자에게 블록 생성권한을 줍니다. 작업 증명처럼 해시 문제를 가장 먼저 푼 채굴자에게 블록 생성권한을 주는 것이 아니라요. 지분 증명에서는 지분 보유량이 많은 채굴자일 수록, 블록 생성 권한이 주어질 확률이 커집니다.

 

흥미로운 것은 작업 증명과 지분 증명은 상당 부분이 절묘하게 대응된다는 것입니다.

 

  1. 작업 증명을 위한 채굴기 개수(총 해시파워) = 지분 증명을 위한 코인 개수 (총 지분)
  2. 작업 증명 채굴기 가격 = 지분 증명 코인 가격
  3. 두 경우 모두 51% 어택을 위해서는 채굴자 총 투자금의 51% 이상 필요
  4.  

그런데 이렇게 지분 증명이 작업 증명에 대응되는 것은 우연이 아닙니다.

 

작업 증명: 비트코인이 증명한 합의 프로토콜 레시피

 

비트코인 합의 프로토콜인 작업 증명은 한번도 무너진 적이 없습니다. 무너진다는 것은 해킹을 의미합니다. 앞으로도 해킹당하지 않을 가능성이 높습니다. 그럼에도 불구하고 언제든지 비트코인은 "간단히" 해킹당할 수 있습니다. "이론적"으로는요.

 

커뮤니티 구성원 중 51% 이상이 배신할 경우, 비트코인 합의 프로토콜은 무너진다.

 

51%의 배신은 쉬운 듯 어려워 보입니다. 어찌보면 위태로워보입니다. 그러나 그런 일은 일어난적이 없었지요. 일어나지 않게 설계하였으니까요. 작업 증명은 51% 이상의 구성원이 배신하거나 나태해지지 않도록 선의의 참여자에게는 "보상"이라는 당근을 줬고, "경쟁"이라는 채찍을 넣었습니다.

 

비트코인의 작업 증명이 수년간 보여준 것은 간단합니다. 잘 굴러가는 합의 프로토콜 레시피입니다. 어떤 당근을 주어야하고, 어떻게 채찍을 쳐야하는지 보여준 것입니다. 압도적인 시가 총액 1위의 자리에서 그가 증명한 것은 다름이 아니라 "이 레시피대로면 51%의 배신 가능성은 없다"입니다.

 

때문에 지분 증명은 작업 증명의 모든 부분을 대응시키고 싶었던 것입니다. 레시피대로만 요리하면, 믿을 수 있는 프로토콜이 되니까요. 지분 증명은 "막대한 에너지소모"라는 기름기만 뺀, 담백한 버전의 작업 증명을 꿈꾸며 등장한 합의 프로토콜입니다.

 

해시 문제의 공정함은 흉내내지 못해

 

앞서 말했듯이 지분 증명은 작업 증명의 대부분을 성공적으로 대응시켰습니다. 그러나 가장 중요한 작업 증명 해시 문제의 공정함을 흉내내지 못했습니다. 무슨 말인지 조금 더 깊게 들어가 보도록 하겠습니다. 먼저 작업 증명 해시 문제에 대해 이야기 해보겠습니다.

 

작업 증명 해시 문제는 특정인물이 출제하는 것이 아닙니다. 새로운 블록이 생성되고, 새로운 트랜잭션이 생기면 그 두 정보만 가지고 "모두가" 자유롭게 해시 문제를 출제할 수 있습니다. 스스로 출제한 문제를 풀어서 답을 냈다면, 그 뒤에 블록을 이어붙이는 것입니다. 모든 채굴자가 출제자이자 수험생이므로, 공정한 경쟁 구조를 갖습니다.

 

반면에 지분 증명은 확률에 따라 다음 블록 생성자를 추첨 해야합니다. 누가 다음 블록 생성자를 추첨해야할까요? 시스템 자체에 추첨 복권 로터리를 넣으면 될까요? 불행하게도 그것은 불가능합니다. 블록체인은 탈중앙화 된 시스템이지, 중앙 컴퓨터가 부름에 적절히 응답해주는 곳이 아닙니다.

 

비트코인처럼 새로운 블록 정보와 새로운 트랜잭션을 가지고 랜덤 변수를 계산하면 될까요? 불행하게도 그것도 마지막 블록생성자에 의해 조작될 가능성이 있습니다. 마지막 블록생성자는 블록을 이어붙이기 전에 랜덤 변수를 "미리" 계산해 볼 수 있습니다. 따라서 본인의 기호에 따라 유리한 방향으로 랜덤 변수를 조작할 수 있게 됩니다.

 

Stake-Grinding Attack

 

앞서 말한 조작을 Stake-Grinding Attack이라 부릅니다. 현재 POS 코인들은 마지막 블록의 정보를 바탕으로 랜덤 변수를 계산합니다. 따라서 마지막 블록 생성자가 미리 이 랜덤 변수를 계산하고, 포함할 트랜잭션을 임의로 뺐다 끼우면서 변수를 바꿀 수 있습니다. 주어진 블록 생성시간동안 랜덤 변수를 조작해 본인의 파이를 키우는 것이 가능합니다. 예를 들어 보죠.

 

마지막 블록 생성자는 추첨을 위해 1부터 100까지 적힌 주사위 100개를 동시에 던집니다. 그 중 본인의 추첨 번호는 77번입니다. 원래 주사위는 1번만 던져야 하지만, 남들 몰래 최대 10번까지 던질 수 있습니다. 10번의 시도 중에 77번이 최대한 많이 나온 결과를 사용합니다.

 

사실 현재 운영되고 있는 POS 코인들은 대부분 이 문제를 안고 있다고 보시면 됩니다. 단편적인 시각에서는 엄청난 결함은 아닙니다. 결국 큰 수의 법칙으로 수렴하기 때문에 이 시스템의 공정성도 호락호락하지 않습니다. 그러나 꼭 보완되어야 합니다. 악용될 경우 이중 지불(double spending)까지 이어질 수 있습니다.

 

사실 이것 외에 Nothing at Stake 문제도 있습니다. 그러나 이 문제는 모든 POS 기반 프로토콜(DPOS 포함)에서 명쾌히 해결되지 않은 것 같아 언급하지 않았습니다. 물론 제가 이해력이 부족한 것일 수도 있습니다 (...)


우로보로스(Ouroboros)


기존 지분 증명 프로토콜이 가지고 있는 한계, 그 중에서도 특히 Grinding Attack을 막기 위해 설계된 것이 우로보로스입니다. 사실 이 한계점은 댄 라리머의 DPOS로도 극복 가능합니다. 그러나 DPOS는 굉장히 진취적이고 과감한 실험이라고 수차례 말씀드린 바 있습니다.

 

카르다노는 비트코인 작업 증명이 보여준 철학에 기반합니다. 과감한 실험 대신, 검증된 길을 걷겠다는 의도로 읽힙니다. 비트코인 작업 증명 레시피를 그대로 복사하는 것이 카르다노 팀의 목표입니다. 이는 에너지 소모라는 기름기만 뺀, 담백한 프로토콜을 만드는 것을 의미합니다.

 

공정한 랜덤 변수 생성: 코인 토싱 프로토콜 (Coin Tossing Protocol)

기존 POS에서 문제되는 것은 랜덤 변수 생성의 조작이라고 했습니다. 카르다노는 코인 토싱 프로토콜이라고 불리는 것을 인용하여, 이를 합의 프로토콜에 적용합니다. 사실 이게 꽤나 복잡한 프로토콜이고, 이해도 어려운 부분이 많습니다만 목적은 간단합니다. 추첨을 위한 "랜덤" 변수를 조작하는 것이 불가능하게 만들자는 것입니다.

 

어떻게 조작이 불가능하게 만들 수 있을까요? 단순하게 생각하면 네트워크 구성원 모두가 랜덤 변수 생성에 참여하게 만드는 것입니다. 랜덤 변수 생성에 모두가 참여한다면, 개인이 조작할 수 있는 여지는 줄어들게 됩니다. 조작된 변수에 랜덤을 더하면 랜덤이 나오니까요. 정답입니다만, 이것도 그리 간단하지는 않습니다.

 

가정: 51%는 선의의 참여자

일단 가정이 한가지 필요합니다. 랜덤 변수 생성 참여자 51% 이상은 선의를 가지고 있다고 가정합니다. 억지스러운 가정은 아닙니다. 사실 합리적이기도 해보입니다. 어차피 51% 이상이 악의를 가지면, 변수가 랜덤이든 조작이든 전체 합의 프로토콜은 무너집니다. 그러니 랜덤 변수 생성 참여자 51%를 믿겠다는 것이 무리는 아니지요.

 

네트워크 참여자는 앨리스, 밥, 찰리가 있다고 해보겠습니다. 그 중 앨리스가 악의를 가집니다.

 

image.png

 

랜덤 변수(R) 생성 프로토콜(코인 토싱)입니다. 아래 나오는 스텝 1: Phase 1, 스텝 2&3: Phase 2, 스텝 4&5(앨리스의 배신): Phase 3입니다. 글의 이해를 돕기 위해 그렸으며, 글과 함께 보셔야 이해가 수월하실 것입니다.

 

스텝 1: 랜덤변수 생성, 조각(Share)을 네트워크에 전달

참여자는 각각 나름의 방법으로 랜덤 변수를 생성합니다. 그리고 이를 나머지 네트워크 구성자의 수에 맞게 조각냅니다. 그리고 랜덤 변수의 조각(Share)들을 각각의 구성자에게 전달합니다. 특정 참여자의 조각 중 "과반수"를 모으면, 그 참여자가 생성한 랜덤 변수를 "항상" 복원할 수 있습니다. 이 복원 가능성은 조작이 불가능합니다.

 

앨리스, 밥, 찰리는 모두 생성한 랜덤 변수의 조각을 생성해 서로 교환합니다. 앨리스는 본인의 조각을 조작할 수 없습니다. 조작할 경우 앨리스는 스텝 1을 넘어가지 못합니다.

 

스텝 2: 랜덤 변수를 암호화 시켜 전달

 

모두가 조각을 전달 받으면, 코인 토싱이 시작됩니다. 시작은 랜덤 변수를 암호화 시켜 전달하는 것입니다. 아직은 아무 정보 교환도 일어나지 않습니다. 정보 교환을 위해 전화를 걸었다고 보시면 이해가 쉬우실 것 같습니다.

 

앨리스는 밥과 찰리에게 암호화 시킨 랜덤 변수를 전달합니다. 찰리는 밥에게 암호화 시킨 랜덤 변수를 전달합니다.

스텝 3: 본인의 랜덤 변수를 전달

암호화 시킨 랜덤 변수를 전달 받은 사람은 그에 대한 답신으로 본인의 랜덤 변수를 보냅니다. 이번에는 암호화 되지 않은 "진짜" 랜덤 변수입니다. 실질적인 정보 교환이 한 방향으로 일어납니다.

 

밥과 찰리는 앨리스에게 본인의 랜덤 변수를 보냅니다.밥은 찰리에게 본인의 랜덤 변수를 보냅니다.

 

스텝 4: 암호화 된 변수를 해독하는 키 전달

답신을 받은 사람은 암호화 된 변수를 해독하는 키를 전달합니다. 키를 받은 사람은 미리 받은 암호화 된 변수를 해독함으로서 상대방의 변수를 얻게 됩니다. 정보 교환이 마무리되게 됩니다.

 

앨리스는 본인의 해독 키를 밥과 찰리에게 보냅니다. 찰리는 본인의 해독 키를 밥에게 보냅니다. 밥과 찰리도 앨리스의 랜덤 변수를 얻습니다. 밥도 찰리의 랜덤 변수를 얻습니다. 결과적으로 모두가 상대방의 랜덤 변수를 알게됩니다.

 

스텝 5: 모두의 랜덤변수를 바탕으로 최종 변수 계산

정보 교환이 마무리 되면, 네트워크 구성원들은 각자 최종 변수를 계산할 수 있게 됩니다. 누구도 최종 변수를 마음대로 조작할 수 없으며, 남들보다 빠르게 그 값을 얻을 수 없습니다. 완전무결한 랜덤 변수(R)가 공정하게 생성된 것입니다.

 

앨리스가 스텝 4에서 배신한다면?

앨리스가 스텝 4에서 배신했다고 해보겠습니다. 해독 키를 밥과 찰리에게 보내주지 않고 통신을 끊어버립니다. 그러면 앨리스만 모든 랜덤 변수를 얻게 되고, 본인만 최종 랜덤 변수를 계산할 수 있게 됩니다. 그렇더라도 걱정하지 마세요. 우리는 코인 토싱 프로토콜을 사용했습니다.

 

위의 경우 밥과 찰리는 스텝 1에서 받았던 앨리스의 조각을 서로 교환합니다. 조각을 합치면 앨리스의 변수를 복원할 수 있습니다. 따라서 앨리스가 스텝 4에서 배신하더라도, 밥과 찰리는 앨리스의 변수를 얻을 수 있습니다. 이 복원 가능성은 51%의 참여자는 선의를 갖는다는 가정에 의해 증명됩니다.

 


마치며

 

카르다노 합의 프로토콜 우로보로스의 "기본 원리"에 대해 알아봤습니다. 사실 우로보로스에 대한 스터디는 저번주에 이미 끝냈었습니다. 당시에 정말 골머리 썩었던 기억이 나네요. POS의 문제가 무엇인지도 제대로 모르고 공부하려니까 코인토싱이 뭔지 왜 필요한지 온갖 개념이 뒤죽박죽이었더랬죠. 다시 봐도 어렵긴 마찬가지네요.

지금까지 설명을 잘 따라오셨다면 아시겠지만, 우로보로스는 랜덤 변수의 공정한 생성에 심혈을 기울인 프로토콜입니다. 별 것 아닌 것처럼 보일 수도 있습니다. 사실 저도 처음에는 저게 저렇게까지 해야하는 것인가? 라는 의문은 조금 들었었네요. 지금은 "현재 POS가 잘 굴러가고 있는 것은 기적이구나" 라는 생각이 듭니다.

 

카르다노도 언급하고 있습니다. 현재 실험적으로 운영하는 POS의 안정성도 무시하진 못한다고요. 그러나 보수적인 관점에서 살펴보면, 현재 시총 10위권 이내 POS 기반 코인은 NEO 하나입니다. 그마저도 비트코인/이더리움의 규모에 비하면 10분의 1도 안됩니다.

 

안정성의 검증과 시총 규모의 상관관계는 분리하기 어렵습니다. 시총이 거대해질 수록 악의적 공격은 거세질 것이고, 그것을 견뎌낼 수 있는지가 그들이 치루어야할 시험이 되겠지요. 네오 기준, POS는 현재 비트코인 80만원 수준의 검증을 마친 상태입니다. 아직 더 시간을 두고 지켜볼 필요가 있습니다.

 

[출처] https://steemit.com/coinkorea/@seungjae1012/cardano-ada-pos-ouroboros

  추천 1   비추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기
  • 밴드로 보내기

댓글목록

작성자:     작성일시:

와우
저에겐 매우 어렵지만
하나하나 설명하시는 모습이 
대단해보이시네요
앞으로도 부탁드립니다
꼼꼼히 잘 읽긴했으나 어렵네요
열심 배우겠습니다
에이다~~가즈아~~~~~

 

전체: 2,766개 (1/80페이지)
코인정보 목록
제목 글쓴이 조회 추천 비추천 날짜
  [필독] 불법홍보글 / 회원간 분란 발생 시 엄중하게 처리하겠습니다. (수정) [14] 716 9 0 11-28
  ICO List 게시판이 신설되었습니다. [1] 558 0 1 03-12
  글 작성하고 후원을 받아보세요!! 109 0 0 03-23
  " eCoinomic " 가상화폐 대출 플랫폼이란 42 0 0 05-11
암호화폐 4종 출금서비스 오픈안내 2025 0 0 05-19
비트코인골드(BTG) 출금서비스 일시중지 안내 2051 0 0 05-19
UBTC 유나이티드 비트코인이 TUSD, USDC에 이어서 UUSD라는 스테이블 코인을 만드나 봅니다. 2123 0 0 05-19
펀디엑스 서울 밋업 내용 정리 2150 0 0 05-19
About SBTC to NASH Mapping: 2125 0 0 05-19
HOQU 프로젝트 4월 다이제스트 2346 0 0 05-18
BCGChain 무료 에어드랍 받으러 가기!! 2163 0 0 05-19
형님들 WEE코인 에어드랍 이벤트 참여하세요! 곧 코인레일 상장임 2195 0 0 05-19
유망한 코인을 소개합니다 2246 0 0 05-19
코인레일 위토큰(WE) 상장 3168 0 0 05-18
엘벵크 팝체인상장 오피셜 3189 0 0 05-18
제 2의 스팀잇 TTC프로토콜 Main ICO 오늘 마지막입니다. 3179 0 0 05-18
30억달러 ‘비트커넥트’ 국제 사기…국내 모집책 무더기 경찰 수사 3233 0 0 05-18
카이버, 오미세고 페이백 이벤트 지급안내 3265 0 0 05-18
빗썸 eosDAC 에어드랍 지급안내 3277 0 0 05-18
스톰(Storm) A to Z 파헤치기 (2) 3331 0 0 05-18
중국정부 규제로 우지한이 채굴사업을 접는다는 찌라시와 팩트에 대해 3417 0 0 05-18
비트코인은 현재 8200 지지선을 테스트 받고 있습니다. 3384 0 0 05-18
아피스 정보에욤 3412 0 0 05-18
비트메인, 중국 정부의 규제강화에 대비해 AI 산업으로 사업영역 확장 3377 0 0 05-18
업비트는 아무것도 잘못된 것이 없음을 감사 결과를 제시하여 검증했습니다 [1] 3436 0 0 05-18
핀란드 정부기관, 실업률 감소 위해 블록체인 스타트업과 MOA 체결 4041 0 0 05-18
Waves 한국 커뮤니티 airdrop 이벤트 진행 4654 0 0 05-17
KIN 코인 GODEX상장! 4643 0 0 05-17
버뮤다 정부, '블록체인 기술 도입 및 규제안 수립' MOU 체결 4657 0 0 05-17
암호화폐 시장 조정 및 원인 분석, 비트코인 채굴에 따른 전력 소비량 분석, 바이낸스에 의한 블록체인 국가 … 4771 1 0 05-17
북한 돈과 채권의 투자는 바람직하나 4746 0 0 05-17
bitshares 5월 19일 테스트넷에서 하드포크를 진행할 예정입니다. 4769 0 0 05-17
현재 댄 라리머(Dan Larimer)와 비탈릭 부테린(Vitalik Buterin)이 다시 한번 붙었습니다… 4828 0 0 05-17
이더리움 시황입니다 :) 4994 0 0 05-17
삶의 소중함을 나누는 계절 4958 0 0 05-17