공정한합의알고리즘 : deb 합의알고리즘 (A fair consensus algorithm : deb consensus algorithm) 목차 1. 개요 2. 합의알고리즘의공정성 3. deb 합의알고리즘 4. 공정한노드의역할및신뢰성검증 5. 성능 6. deb 합의알고리즘특성 7. 결론
1. 개요 2008년분산원장 (distributed ledger) 개념과합의알고리즘인작업증명 (PoW:Proof of Work) 을사용하여사토시나까모도가탈중앙화된 (decentralized) P2P 암호화폐시스템인비트코인 (Bitcoin) 을개발하였다. 이후, 2014년부탈린은비트코인의한계를극복한 글로벌신뢰컴퓨터 (A trust world computer) 인이더리움 (Ethereum) 을개발하였다. 블록체인 (blockchain) 의가장중요한핵심기술은상호신뢰하지않는노드 (Node) 들간의합의 (consensus) 알고리즘이다. 비트코인과이더리움모두합의알고리즘으로작업증명방식을사용한다. 그러나작업증명방식을사용하는합의알고리즘의경우노드가보유한컴퓨팅파워 (computing power) 에의해채굴 (mining) 확률이결정된다. 이러한특성으로인해블록체인이추구하고자하는탈중앙화특성이약화되는단점을가지고되고, 비트코인의중앙화문제가현실적으로대두되고있는실정이다. 이러한연유로이더리움은현재합의알고리즘을작업증명에서지분증명 (PoS:Proof of Satake) 방식으로전환하고있는실정이다. 그러나지분증명방식의경우에도노드들의보유한지분에의한탈중앙화특성이지속가능한지에대한원천적인질문을던지고있다. 지분증명방식에대해자본주의문제점을원천적으로가지게될것이라는논쟁도이러한이유에서출발한다. 우리는먼저블록체인의핵심원천기술인합의알고리즘에대한탈중앙화특성을공정성 (fairness) 개념으로정의하여분석하고자한다. 간단히설명하면합의알고리즘의공정성은채굴을원하는노드들의조건 ( 컴퓨팅파워, 보유지분등 ) 에따른채굴확률의비례성을의미한다고생각할수있다. 그리고공정성을극대화한 deb 합의알고리즘을제안하여지속가능한탈중앙화특성이유지되는퍼블릭블록체인 ( 앤드어스 (AndUs) 블록체인 ) 을제안할예정이다. 앤드어스블록체인은기본적으로이더리움에기반한다. 즉, 앤드어스블록체인은대표적인퍼블릭블록체인 (public blockchain) 인이더리움의구조를유지하면서, 지속가능한탈중앙화를유지하고속도를대폭향상한퍼블릭블록체인이다. 현재까지퍼블릭블록체인및프라이빗또는컨소시움블록체인 (private or consortium blockchain) 등많은블록체인이제안되고있으나, 원래블록체인의철학적특징을만족하는것은이더리움블록체인이라고생각하기때문이다. 특히, 이더리움의기본목적인탈중앙화 P2P 비즈니스생태계 (ecosystem) 를창출하는인프라로서의역할이가장중요하고본질적인블록체인의철학이기때문이다. 한편으로는 deb 합의알고리즘과기존의퍼블릭블록체인에서사용하는작업증명및지분증명방식과의차별성으로채굴과암호화폐 (cryptocurrency) 발행과의연관성을말할수있다. 기존의합의알고리즘들은노드들의채굴참여를지속적으로
유지하기위하여채굴에성공한노드들에게보상으로암호화폐발행권한을주는방식이다. 그러나 deb 합의알고리즘의경우, 채굴과암호화폐발행과는연관성이없다. 즉, 채굴과암호화폐발행이상호무관한최초의퍼블릭블록체인을개발하기위한합의알고리즘이다. 채굴자들에게필요한보상금을암호화폐발행권한으로주는것이아니고, 채굴에참여하고자하는노드들로구성될유료채굴리그의참가비의일부와거래수수료로보상해주는방식이다. 이렇게구성해야하는본질적인이유는지속가능한탈중앙화를위해서노드들의채굴조건과무관하게만드는것과도연계된다. 즉, 채굴작업의공정성을확보하기위하여채굴과정이모든노드들에게공정할수있도록매우저비용이기때문에고액의보상체계가필요하지않다는것이다. 특히, deb 합의알고리즘의경우기존의퍼블릭블록체인과는달리포크 (fork) 가발생하지않는장점또한지니고있다. 이는블록생성이바로블록의최종성 (finality) 을보장하는것이다. 2. 합의알고리즘의공정성 deb 합의알고리즘의목적은채굴을원하는노드들의조건 ( 컴퓨팅파워, 보유지분등 ) 과상관없이모든노드들에게공정한채굴확률을보장함으로서지속가능한탈중앙화특성을유지하는것이다. 이를위해먼저합의알고리즘의공정성 (fairness) 을정의하고기존퍼블릭블록체인들의공정성을분석한다. 정의 : 합의알고리즘의공정성 합의알고리즘의공정성이란노드들의채굴확률과노드들이가지고있는 조건 ( 컴퓨팅파워, 지분등 ) 들과의상관관계로정의한다. 예를들어비트코인과이더리움에서사용하는작업증명방식의경우, 노드들의채 굴확률은노드가보유한컴퓨팅파워에위해결정된다. 즉, 자신이보유한컴퓨팅파워노드의채굴성공확률 전체노드들이보유한컴퓨팅파워의합 작업증명방식을채택하고있는비트코인의경우, 채굴공장및그룹의탄생등에 따라일반적인노드가채굴에성공할확률은거의 0 에가깝다. 이로인해비트코인 은중앙화되고있다는논쟁이일고있다.
그리고이더리움에서사용하게될지분증명방식의경우, 노드들의채굴확률은노 드가보유한지분에의해결정된다. 즉, 자신이보유한지분노드의채굴성공확률 암호화폐총발행량 지분증명방식의경우는보유지분에따른채굴확률이결정됨으로전형적인자본의 논리가적용된다는문제점이지적되고있는실정이다. 3. deb 합의알고리즘기존의작업증명및지분증명합의알고리즘의경우채굴노드가가지고있는컴퓨팅파워와보유한지분에따라채굴노드의채굴확률이비례하는특성을가지고있으며, 이는채굴관점에서블록체인에참여를원하는채굴자들에게공정 (fairness) 하지않다는것을말해주고있다. deb 합의알고리즘은바로이러한공정하지못한문제점을해결하여공정한채굴기회를보장하기위한합의알고리즘이다. 먼저공정한채굴기회를보장하기위해서는채굴을원하는모든노드들에게주어진조건 ( 컴퓨팅파워, 보유지분등 ) 에상관없이공정한채굴기회를주어야한다. 이를위해 deb 합의알고리즘은작업증명과지분증명방식과는달리공정한노드 (fair node) 라는개념을도입한다. 물론 P2P 기반의 deb 합의알고리즘의특성을유지하기위해공정한노드의신뢰성을가정하지는않는다. 즉, 공정한노드는제3의신뢰기관 (TTP:Trusted Third Party) 은아닌, 단지 P2P 네트워크의노들들과협력하여합의알고리즘을지원하는단순한특별한노드라고생각하면된다. 공정한노드의역할및안전성에대해서는추후설명하기로한다. deb 합의알고리즘은유료채굴리그, 최대난수규칙 (MRNR : Maximum Random Number Rule, 가장큰랜덤넘버 ) 및다수결원칙등 3가지기본원리로작동된다. 유료채굴리그란채굴을원하는노드들중특정수 ( 예, 100명 ) 의노드들로구성된채굴노드들의그룹이다. 물론채굴리그에참여를원하는노드들은채굴리그에참여하기위해현실적으로충분히가능한적은금액 ( 예, 100원 ) 인참가비를지불해야한다. 그리고유료채굴리그에참여한노드들로구성된그룹에서각노드가블록을생성하는규칙이최대난수규칙이다. 그리고최종채굴자를결정하는방식, 즉최종블록을결정하는방식은공정한노드와채굴리그에참여한노드들간의협력을통한다수결원칙으로이루어진다. deb 합의알고리즘의전체구성도는다음과같다.
< 그림 1 > 전체구성개념 공정한노드의경우한개또는다수의노드로구성할수있다. 3.1 deb 합의알고리즘전체프로세스 deb 합의알고리즘의전체프로세스는유료채굴리그구성, 블록생성 ( 채굴 ), 최종 블록합의등크게 3 단계로구성된다. 유료채굴리그구성 1 공정한노드는채굴리그구성을위해모든노드들에게 OTPRN을배포한다. 2 채굴리그에참여를희망하는노드는공정한노드가배포한 OTPRN을참조하여본인이채굴리그참여대상자인지를판단한다. 3 채굴리그참여자로선정된채굴노드는채굴리그구성을위해 OTPRN을포함한 JoinTx를생성한다. 4 모든노드들에게 JoinTx를브로드캐스팅한다. 5 채굴리그참여자로선정된채굴노드들만 JoinTx를참조한다 블록생성 ( 채굴 ) 1 채굴리그에참여한채굴노드는최종블록선정의기준이되는 RAND를
생성한다. - RAND = CSPRNG(OTPRN, Address, PreBlockHash) 채굴확률을동등하기위해채굴리그에신청하였으나, 채굴자로선정되지못한경우선정되지못한경우만큼복수의 RAND 생성 2 채굴노드는블록헤더에 RAND를포함하여블록을생성한다. 3 모든노드에게생성된블록을브로드캐스팅한다 합의알고리즘블록합의의기본원칙은가장큰수 (MRNR : Maximum Random Number Rule, 가장큰랜덤넘버 ) 규칙과노드와공정한노드가협력하여다수결에의한최종블록합의절차이다. 1 노드는 RAND가가장큰블록을선택하여공정한노드에전송 2 공정한노드는전송받은블록중다수결원칙에따라가장많은블록을최종블록으로결정하여서명한후노드들에게전송 3 채굴노드는자신이생성한블록과공정한노드가보내준블록과비교하여동일한블록의경우만전체노드에브로딩캐스팅. 4 각노드들은자신이받은블록중다수결에의해최종블록으로인지하고블록체인에추가 3.2 유료채굴리그구성세부프로세스안전성및효율성을위해유료채굴리그를구성하는방법은공정한노드와노드들의자체적인인원조정과채굴리그참여신청으로진행된다. 유료채굴리그참여자선정 1 공정한노드는블록생성주기에따라 OTPRN 구조체를모든노드에게배포 OTPRN 구조체 ( 는 OTPRN 발행번호 )
필드명 설명공정한노드가주기적으로배포하는일회성의사난수채굴을시도하기위해오라클에접속정보를제공한채굴노드수공정한노드의로컬시간,, 에대한공정한노드의서명 2 채굴후보노드들은공정한노드가배포한 OTPRN 구조체를참조하여자신이참가할수있는지파악 ( ㄱ ) 최대채굴참여인원수를정의한시스템설정변수 를제수로설정 ( ㄴ ) 채굴노드는공정한노드가전파한 OTPRN 구조체중채굴의사를밝힌전체채굴노드수를나타내는 를피제수로설정 ( ㄷ ) 두값을연산하여얻은몫을 Div로설정 ( ㄹ ) 트랜잭션구조체의 Join_Nonce( _ ) 와채굴노드의주소일부값을더하여 Div와모듈러연산 _ 가능 _ : 채굴노드가채굴리그에참가할때마다증가하는값으로, 채굴리그를구성함에있어 (i) 공정한노드가채굴리그구성원을조작하기어렵게하고 (ii) 채굴노드가사전에조작하기어려운값을설정함으로써부당하게채굴리그에참여하는것을방지하기위한값 : _ 가고르게분포되어있지않을경우채굴리그참여자인원수조정이동작하지않기때문에사용되는보조값 유료채굴리그구성 1 채굴리그에참가가능한채굴노드는 OTPRN 구조체를포함한 를생성하여모든노드들에게브로드캐스팅함 : 노드가채굴리그에참여하고자할때발생시키는채굴리그참여신청트랜잭션
필드명 _ 설명 채굴리그에참여할때마다값을증가되는값으로증가된값만큼채굴확률을높여주어자발적인채굴리그참여를유도아래의필드를제외하고이더리움트랜잭션과동일 의경우트랜잭션을수신할주소가없기때문에 to 필드를사용함 2 채굴리그에참여한채굴노드들만 를수집 3 채굴노드는수집한 를목록화하여각자의채굴리그를구성 3.3 블록생성프로세스 : 채굴프로세스공정하고효율적인채굴을위해공정한노드와의사난수 (RAND) 를활용한다. RAND 생성 1 채굴노드는참여자선정과정에서공정한노드로부터받은 OTPRN 구조체를참조하여 RAND 생성 _ _ _ : _ 의다른목적으로, 채굴노드가채굴리그에참여한만큼채굴확률을높여주는기능을수행함. 이와같은목적을달성하기위해 _ 수만큼다른 RAND를생성할수있고그중가장큰값을블록생성에사용할수있음. : 공정한노드가배포한일회성의사난수로채굴노드가 RAND를생성함에있어채굴에유리한값을생성할수없도록함 : 채굴노드가채굴할때사용하는주소로채굴노드별로 RAND를다르게생성하게하기위함 _ : 이전블록의해시값으로 (i) 공정한노드가특정채굴노드에게유리한 를배포할때를대비하고 (ii) 채굴노드가특정블록에종속된하나의 RAND를생성하도록하기위함 2 채굴노드는자신이생성한 RAND 중가장큰 RAND를선택 _ 블록생성및브로드캐스팅
1 채굴노드는블록이올바르게생성되었다는것을증명하기위해블록헤 더에 구조체를포함함 블록구조체 ( 아래의필드를제외하고이더리움블록과동일 ) 구분 필드명 설명 공정한노드가노드에게전파한 OTPRN 구조체를포 함 채굴노드가생성한 RAND 를포함 공정한노드가최종화한블록에한정하여진행한서명을포함 트랜잭션목록 목록 2 RAND 생성 단계에서생성한 RAND 와 n 을블록헤더에포함 3 채굴노드가수집한각종트랜잭션을블록에포함한뒤블록생성 4 채굴노드는생성된블록을공정한노드와노드에게브로드캐스팅함 3.4 합의알고리즘블록합의의기본원칙은공정한노드가자신에게전송된블록중다수결원칙에따라최종블록을선정하고, 공정한노드는선정한최종블록에서명하여노드들에게배포한다. 각노드들은자신이공정한노드에게보낸블록과공정한노드가서명한최종블록이동일한경우에만최종블록을브로딩캐스팅한다. 각노드는최종적으로다수결원칙에의해최종블록을결정하고체인에연결한다. 유효성검증단계 1 블록을구성하고있는모든필드들의유효성을검증함 프로그래밍관점 : 데이터타입, 입력값범위등 2 OTPRN 전파주기와블록생성주기가일치한지확인 3 OTPRN 무결성및공정한노드의서명검증 4 채굴한노드가채굴리그참가가능대상자인지확인 5 채굴노드가채굴리그참가비를지불할수있는지확인 6 RAND가올바르게생성되었는지확인 블록합의 1 노드는 RAND가가장큰블록을선택하여공정한노드에전송
2 공정한노드는전송받은블록중다수결원칙에따라가장많은블록을최종블록으로결정하여서명한후노드들에게전송함 3 채굴노드는자신이생성한블록과공정한노드가보내준블록과비교하여동일한블록의경우만전체노드에브로딩캐스팅. 4 각노드들은자신이받은블록중다수결에의해최종블록으로인지하고블록체인에추가 5 채굴자인센티브제공인센티브 = 트랜잭션수수료 + 채굴리그참가자전체참가비의일부 6 채굴리그참가자채굴확률조정 - 채굴성공노드 : _ - 채굴실패노드 : _ _ 4. 공정한노드의역할및신뢰성문제비트코인및이더리움의합의알고리즘은공정한노드개념을사용하지않는다. 그러나 deb 합의알고리즘의경우지속가능한탈중앙화특성을유지하기위해공정한노드개념을도입하였다. 물론 deb 합의알고리즘이동작하기위해서공정한노드의신뢰성을가정하지않는다. 공정한노드는유료채굴리그구성의효율성, 블록합의및최종성협력을위한역할만을담당한다. 공정한노드의역할 1 유료채굴리그참여자의랜덤한선정 2 노드들과의상호견제를통한최종블록합의협력가장중요한것은 deb 합의알고리즘은공정한노드의신뢰성에의존하지않는다. 공정한노드와블록체인노드들간의상호견제를통해공정한노드의신뢰성보장없이도블록체인의안전성을확보할수있다. 5. 성능 deb 합의알고리즘의성능은유료채굴리그구성수와블록생성주기등에따라 동적으로결정될수있다.
예를들어, 채굴리그인원수 100 명인경우예상되는성능은다음과같다. < 표 1 > deb 합의알고리즘의성능 Block Size TPS 생성주기 deb 합의알고리즘 4.5MB ~ 9MB 1000 TPS 30초 ~ 1분 특히, 블록생성시간을줄이기위해공정한노드와유료채굴리그노드들간의네트워크접속부하를줄이면블록생성시간을더욱단축할수있다. 일례로한번구성된유료채굴리그의블록생성숫자를 10개로한다면블록생성시간은 10초이내로단축할수있을것이다. 6. deb 합의알고리즘특징 deb 합의알고리즘의목적은현재의합의알고리즘의불공정성으로인해발생할수있는블록체인합의알고리즘의중앙화문제를해결하는것이다. 즉, 기존의합의알고리즘인작업증명방식, 지분증명방식과 deb 합의알고리즘의가장큰차이점은지속가능한탈중앙화를유지할수있다는것이다. 이는채굴을원하는노드들의조건들에의존하지않는공정한합의알고리즘이라는것을의미한다. 또한기존의퍼블릭블록체인의합의알고리즘의경우블록을생성하는채굴과암호화폐발행이연계되어있으나, deb 합의알고리즘의경우채굴과암호화폐발행이무관하다는것이다. 즉, 초기발행한암호화폐발행량이바로총통화량이된다는것을의미한다. 이는암호화폐발행권한을독점하면서도퍼블릭블록체인을구성할수있게하는최초의합의알고리즘이다. 한편으로 deb 합의알고리즘의장점으로는포크 (fork) 가일어나지않아최종성이 1 블록이면달성되는장점이있다. deb 합의알고리즘특징 1 지속가능한탈중앙화특성유지 ( 공정성 ) 2 채굴과암호화폐발행무관 ( 암호화폐발행독점가능 ) 3 포크없는 1블록의최종성보증 4 1,000 TPS 이상의고속성능
7. 결론 deb 합의알고리즘은기존의합의알고리즘인작업증명및지분증명방식의특성 ( 노드들의조건 ) 으로인한중앙화문제를해결한최초의합의알고리즘이다. 이는 블록체인의원래목적인지속가능한탈중앙화를달성할수있는핵심적인개념이 다. 또한, 퍼블릭블록체인이작동하기위한보상체계로새로운암호화폐발행과연계 하지않는최초의퍼블릭블록체인이다. 이는채굴자의채굴비용을최소화함으로 서지속가능한탈중앙화특성과연계되어있다. 특히, deb 합의알고리즘은현재까지제안된퍼블릭블록체인중지속가능한탈중 앙화를유지하면서도성능이가장우수한퍼블릭블록체인앤드어스블록체인 (AndUs blockchain) 을실현할수있게하는핵심원천기술이다. < 표 2 > 주요퍼블릭블록체인성능비교 비트코인이더리움앤드어스블록체인 합의알고리즘작업증명작업증명 deb 합의알고리즘 TPS 7 12~15 1,000 이상 최종성 10분 약 3분 10초 ~ 1분 deb 합의알고리즘을기반으로진정한의미의우리모두가공정한조건에서모두 동일한채굴확률을갖게되는지속가능한탈중앙화를유지하는우리가함께만드 는고속퍼블릭블록체인앤드어스블록체인 (AndUs blockchain) 을공개할예정이며, 현재구현중에있다.