v4.0 MagnaChain 기술백서 초록 2 1. MagnaChain 의설계철학 3 1.1 안정성 3 1.2 안전성 / 보안 3 1.3 높은동시성및처리속도 4 1.4 사용성 5 2. MagnaChain 구현계획 7 2.1 계정모델 7 2.2 합의메커니즘 8 2.3 MagnaChain 의채굴경제 13 2.4 스마트계약및 MLVM 구현 14 2.5 병렬적사이드체인기술 20 2.6 개발도구의통합및지원 28 3. 비교도표 29 4. 로드맵 30 4.1 MagnaChain 로드맵 30 5. 주의 31 6. 참조 32 1 / 33
초록 MagnaChain 은무에서창조된완전히새로운블록체인이자분산응용프로그램개발을위한통합도구세트입니다. MagnaChain 다음과같은퍼블릭블록체인의가장큰문제점들을독특한기술적접근을통해해결합니다 : 확장성 안전성 / 보안 TPS ( 초당거래량 ) 합의메커니즘 편리성 장기적이고지속가능한생태계를유지할능력 우리의궁극적인목표는다른개발도구세트와차별화되는 dapp 개발도구세트를통해 MagnaChain 을선도적인퍼블릭블록체인으로만드는것입니다. 기술의수준에상관없이모든개발자들은다양한크기의 dapp 및게임개발을저희의도구를활용하여할수있으며, 벡앤드프로그램없이블록체인애플리케이션의개발및출시를관리할수있습니다. MagnaChain 을게임세계에서가장빠른퍼블릭블록체인으로만들기위해비디오게임산업에처음으로응용한것은저희의게임개발자들과게이머들에대한의지를잘보여줍니다. MagnaChain 은게임개발자가쉽게블록체인기술을활용해서게임제품및플랫폼, 시장, 기타게임애플리케이션개발을할수있게도와줍니다. 그러나 MagnaChain 은근시일내에 MagnaChain 상에서사실상무제한에가까운다양한 dapp 을가능케하는퍼블릭 블록체인으로서다른산업및관련애플리케이션에도사용될수있는잠재력을갖고있습니다. 2 / 33
1 MagnaChain 의설계철학 1.1 안정성 MagnaChain 의가용성을보장하기위해안정성은필수적인조건입니다. 모든블록체인은탈중앙화라는특성을갖고있지만탈중앙화된네트워크는일반적으로복잡하고불확실성으로가득합니다. 따라서저희는모듈화된설계도구를통해저희의블록체인을간소화하였고, 별도로모듈화된가상머신인 MagnaChain 루아가상머신 ( 이하 MLVM) 을구축하여스마트계약을처리할수있게했습니다. 이러한설계에는두가지이점이있습니다 : 1) MLVM 성능을최적화하여직접적으로계약작동의효율성을개선하고시스템 결합으로부터발생하는간섭요인을줄일수있습니다. 2) 블록체인네트워크와스마트계약의작동상태사이의상관관계를약화시킬수 있습니다. 즉계약이행또는가장머신이예외상황을마주하게되어도네트워크의 안정성이보장됩니다. 1.2 안전성 / 보안 작업증명 (PoW) 는비트코인네트워크의안전성에엄청난기여를했습니다. 그러나채굴요구및계산의어려움은누적되고있으며, 채굴자와채굴풀이거의모든권한을갖고있습니다. 전문적협력을통해이들은이미고도로중앙화된 중앙서버 가되었습니다. 이중앙서버는이론적으로대부분의비트코인거래를통제할수있습니다. 즉컴퓨팅파워의 51% 를하나로모아잘알려진 DOS ( 서비스거부 ) 공격을수행할수있습니다. 네트워크취약성에더하여비트코인네트워크의높은전력소비량도비난을받고있습니다. PoW 프로토콜과비교해보았을때, 지분증명 (PoS) 프로토콜은안전성과실용성, 전력소비 측면에서대단한진전을이루었습니다. 이러한진전은채굴의용이성을위해 PoS 가충분한 주주의확보를필요로한다는강점을갖고있었기때문에가능했습니다. 3 / 33
위임지분증명 (DPos) 는 PoS 가개선된것입니다. 네트워크안정성과사용성을얻기위해코인주주들이투표를통해대표자를선발하여그들로하여금거래를검증하게하는일종의기술적민주주의와비슷한것입니다. 이러한프로토콜은확장성을증가시키지만, 진정한탈중앙화의가장중요한특성을희생시킵니다. MagnaChain 은더욱보편적인상업적중요성을가지는가상해시지분증명 (VH-PoS) 이라는새롭고혁신적인합의메커니즘을구축했습니다. PoS 의안전성및에너지절약이라는신념에기반하여 VH-PoS 는보안성을크게강화시켜주고, DPoS 의프록시인증메커니즘을필요로하지않으며, 탈중앙화된네트워크에서더욱뛰어난성능을보입니다. VH-PoS 는설계의초기단계에서부터최대한많은액티브노드의참여유도를고려하기때문에액티브노드의수는일반적인 PoS 의프로토콜보다훨씬많습니다. 1.3 높은동시성및처리속도 TPS ( 초당거래량 ) 은블록체인시스템의거래처리능력을측정하기위한지표입니다. 전통적인블록체인시스템의 TPS 는초당몇안되는거래만을처리하거나초당몇십개의거래를처리할수있었습니다 ( 집필시점에서비트코인의경우초당 6 개의거래, 이더리움의경우초당 15 개의거래 ). 분산응용개발기술로블록체인상에개발된게임의경우 TPS 는하나의 I/O 요청으로받아들여집니다. 게임의크기가클경우, 초당수천만개의요청에상응하는동시사용자의수도수십만명이될것입니다. 미래에주류게임이블록체인상에서개발되기위해서는전체네트워크의 TPS 가크기가큰것에서부터작은순서로, 수백만개까지정렬될수있어야합니다. 현재의블록체인네트워크와그에대한 TPS 는그런수백개의요청을감당할수없기때문에 네트워크정체및매우높은거래수수료를발생시키고, 이로인해경험자체가허용되지않을 수있습니다. 4 / 33
따라서저희는높은처리속도및거래동시성이블록체인게임구현의전제조건이되어야한다고생각합니다. 또한새로운병렬적사이드체인기술을활용해서저희는 MagnaChain 이그러한조건을완벽하게만족시킬수있을것이라고생각합니다. 이론적으로전체네트워크의 TPS 는쉽게확장될수있으며오로지물리적인네트워크처리량한계의제한만을받게됩니다. 현재의테스트결과 MagnaChain 이수천개에서수백만개이상의 TPS 를지원할수있다는사실이입증되었습니다. 저희의솔루션은무조건적으로블록체인생성시간을줄이거나메인체인의블록크기를키우는것이아닙니다. 두가지모두상당한디스크공간및채굴검증을더욱복잡하게만들고, 안전성에심각한문제를일으킬수있는빠른네트워크를필요로하는등최적화를제한하는문제점들을갖고있기때문입니다. MagnaChain 의병렬적사이드체인기술은시스템에필요할경우자유롭게생성및삭제가가능한여러개의사이드체인을더합니다. 이는즉메인체인의크기가지나치게확장되지않음을의미합니다. 네트워크상의노드들은메인체인과만동기화됩니다. 사이드체인은필요할경우다운로드및처리가가능하며, 이는안전성과증명의복잡성, 디스크공간의측면에서훨씬효율적입니다. 1.4 사용성 MagnaChain 은현재블록체인상에서의개임애플리케이션개발에초점을맞추고있습니다. 현재게임개발자들이사용하는시스템설계및개발관행연구를완료하였기에우리는 MagnaChain 상에서제공되는도구를게임개발자들이더욱편리하게사용할수있도록만드는것을목표로하고있습니다. 저희팀은시작하는단계에서부터속도와동시성, 사용편리성을보장하기위해수십년간의게임개발경험을 MagnaChain 구축에활용하였습니다. 가령저희는게임업계에서보편적으로사용되는스크립팅언어인루아를활용하여스마트계약가상머신을구축했습니다. 게임개발자들은 MagnaChain 상에서스마트계약을생성하거나이행하는데 5 / 33
편안함을느낄수있을것입니다. 또한게임개발 (e.g. Unreal, Unity 등 ) 에보편적으로사용되는도구를통합하기위한 SDK 및사전구축된스마트계약모듈과유닛테스트등사용성을높이기위한기본도구를만들었습니다. 이를통해개발자들은자신들의제품을더욱편리하게분산응용개발아키텍쳐로가져올수있습니다. 우리는게임개발자들이개발자비용을절감하면서 MagnaChain 네트워크상에서소비자를 위한제품을출시할수있도록우리가만든콘텐츠및 MagnaChain 상에직접구축된도구들을 출시할준비를완료했습니다. 6 / 33
2 MagnaChain 구현계획 2.1 계정모델 2.1.1 비트코인의 UTXO 모델과의비교 비트코인네트워크에서 UTXO ( 소비되지않는거래출력값 ) 는비트코인거래의기본단위입니다. UTXO 모델에서특정거래를진행하는데소비된 UTXO 는거래입력값이라고불리며, 거래를통해생성된 UTXO 는거래출력값이라고불립니다. 이러한방식으로특정비트코인개수가각기다른개인키소유자사이에서전송되고, 거래체인상에서새로운 UTXO 가지속적으로소비되고생성됩니다. 하나의비트코인거래는소유자의개인키서명을통해잠금해제되고, 새로운소유자의비트코인주소를통해 UTXO 를잠금및생성합니다. 또한 UTXO 모델은가령여러개의주소에서여러개의주소로의거래를시작할수있게해주는등의병렬처리능력을갖고있기때문에확장성을제공합니다. 비트코인네트워크의 UTXO 모델은비트코인거래의지속성과추적가능성을보장해주며, 비트코인아키텍쳐의핵심설계입니다. 비트코인의네트워크효과와 UTXO 모델의이점, 그리고이들의핵심시스템의안정성과보안성을고려했을때, 저희는 MagnaChain 의퍼블릭블록체인시스템을구축할때비트코인의 UTXO 모델과비슷한모델을도입하기로결정했습니다. 비트코인의스크림팅언어에는여러개의오퍼레이터가포함되어있지만, 비트코인의스크립팅언어는튜링불완전하다는것을인지할필요가있습니다. 스크립팅언어에는루프함수가없습니다. 이는즉거래의복잡성이제한되고, 이행될수있는거래의수도제한된다는말입니다. 또한스크립팅언어는일반적인프로그래밍언어가아닙니다. 이와대조적으로 MagnaChain 은 UTXO 모델의이점을활용하면서동시에튜링완전한루아라는스마트계약스크립팅언어를개발했습니다. 2.1.2 계정및개인키관리 7 / 33
블록체인네트워크에서계정주소는안전한교환을위해설계된계획으로계정및공개키, 개인키의생성과정간관계는다음과같이이루어집니다 : 개인키 > 공개키 > 계정주소. 세가지아이템은모두안전한해시알고리즘 (SHA) 을적용하여충분한보안성을갖추었습니다. 해시는입력값에비해출력이훨씬적은정보추출로길이가정해져있습니다. 오늘날기술적인수단들을고려할때, 강력하게암호화된해시는되돌릴수없어야합니다. 예를들어사용자의계정주소를통해사용자의개인키정보는추론할수없어야합니다. 개인키및공개키, 계정의세부적인생성과적은다음과같습니다 : 8 / 33
MagnaChain 이적용하고있는계정관리모델은안전하고널리사용되고있는솔루션인이중 해시계산과 Base58 코딩으로비트코인의모델과동일합니다. 2.2 합의메커니즘 2.2.1 합의알고리즘소개 블록체인커뮤니티내에서작업증명 (PoW) 및지분증명 (PoS), 위임지분증명 (DPoS), 하이퍼레져의프랙티컬비잔틴장애허용 (PBFT) 등합의메커니즘과관련하여많은논의가있었습니다. 합의메커니즘의핵심은탈중앙화된시스템에서알고리즘데이터일관성을확보하는것입니다. 합의메커니즘에관한논의는언제나결국탈중앙화시스템에서의일관성문제로회귀됩니다. 이분야에서많은연구가이루어졌고, 많은성과들도도출이되었습니다. 9 / 33
그러한성과에는특정요구에기반한합의메커니즘을설계할수있도록도와주는 FLP 정리와 CAP 정리도포함되어있습니다. 2.2.2 VH-POS 알고리즘 보안성과신현가능성을확보하기위해 MagnaChain 은 PoS 를채택하였고, PoS 에필요한개선 사항들을반영하여가상해시지분증명 (VH-PoS) 합의알고리즘을개발했습니다. VH-PoS 는 PoS 의이점을계승하여추가해시파워를소비하지않으면서도수익분배를 달성할수있을뿐만아니라고유의알고리즘을통해 51% 공격을효과적으로방어할수 있습니다. 또한 VH-PoS 는 DPoS 메커니즘처럼특정대리인또는대리인의집합의검증을필요로하지않습니다. 상기제시된바와같이 DPoS 메커니즘은탈중앙화에대한타협이라고할수있습니다. 이론적으로 DPoS 의대리인은유착을통해 51% 공격을감행할수있습니다. 검증을시행하는대리인의시퀀스가명확하기때문에, 중앙화된네트워크로쉽게진화할수있기때문입니다. PoS 에관해서는또다른문제가있습니다. PoS 의출력메커니즘은채굴자의화폐연령과명확하게연결이되어있기때문에이중지출공격의비용감소로이어질수있고, 결국공격자들이특정화폐연령을축적함으로써블록체인을강제로재구성할수있는가능성을열어둡니다. 상업에있어서조작성을확보하기위해일부시스템은블록체인을동결시키고거래를완료하기매일전체네트워크에여러차례이를널리배포하는중앙검증메커니즘을도입했습니다. 이러한검증메커니즘은비트코인의경보시스템과유사하지만중앙화의우려를야기할수있습니다. 10 / 33
MagnaChain 의 VH-PoS 는상기강조한다음과같은문제들을해결합니다 : i) PoW 알고리즘의 에너지소비문제 ; ii) DPoS 의대리인중앙화문제 ; iii) 이중지출공격문제와같이일반적으로 PoS 에서발생할수있는블록체인재구성문제. 비트코인과유사하게해시값이상대적으로낮은특성을보이는출력블록을가진채굴자들에게블록이할당됩니다. 해시값특성은 (characteristic hash value) 블록안에있는데이터와만관련이있는것이아니라화폐연령과도관련이되어있습니다. 이에따른결과블록 N 의채굴고유치인 VHash_n 은블록 N 의해시값 (BlockHash_n) 을평준화한화폐연령과조정계수로나눈것이며, 그공식은다음과같습니다 : 조정계수인 Factor_n 은첫번째 99 블록의고유치와 0 에서 100 사이의검증가능한의사 난수와같은채굴주소해시의 XOR 연산을한다음모듈로연산을통해얻을수있습니다. 그 공식은다음과같습니다 : PoW 채굴의난도조정과비슷하게이시스템은채굴연산에참여하는화폐연령의상한선을 제한하고, 첫 100 블록의화폐연령의평균값에따라동적으로상한선을조정하는평준화 작업을수행합니다. 조정계수에의거채굴은 Satonish Dice 와비슷한확률게임이됩니다. 즉화폐연령을더많이 보유한채굴자가그다음블록을확보할가능성이높아집니다. 하지만이는확실성이아니라 그럴가능성이높아진다는것을의미합니다. VH-PoS 알고리즘은 51% 공격의어려움을증가시킵니다. PoS 에서공격자들은충분한화폐연령과계정을보유하고있을경우쉽게 51% 공격을수행할수있습니다. 바로이러한이유에서일부 PoS-기반시스템이중앙검증메커니즘을시행하는것입니다. 그러나 VH- 11 / 33
PoS 의난도계수는여러개의이전블록의해시와채굴주소의해시와연관이되어있습니다. 블록체인을재구성하려는시도를하기위해서는더많은화폐연령과계정을준비해야만합니다. 그결과첫번째블록재구성의완성은두번째블록의난도계수에영향을미칩니다. 적절한화폐연령과주소해시로한개의계정을선택할때에는그다음블록을확보하는것이불가능합니다. 그리고이러한어려움은재구성된블록의수가늘어날수록기하학적으로증가하게됩니다. 본질적으로 VH-PoS 는더적은 Magna 를보유하고있는채굴자들이블록을확보할수있는 가능성을높여줍니다. 더나아가다음과같은여러이점들을가져다줄것입니다 : 에너지소비가낮기때문에채굴과정이 PoS 와유사하며, 더욱 친환경적 이고, 환경적으로안전합니다. DPoS 와 PoS 구현에각각존재하는대리인메커니즘이나중앙검증메커니즘이없기때문에탈중앙화와안전성이라는컨셉에잘부합됩니다. 어려움이크게줄어듦으로써채굴자의수와액티브노드수가증가하게되어블록보상시스템이확률게임처럼되고, 이는다중병렬적사이드체인의도입의기반을마련해주는것이됩니다. VH-PoS 의세부채굴단계 : 1. 채굴주소가담겨있는지갑에서 UTXO 데이터를꺼내고다음과같은작업을 수행합니다 : 2. 유효한코인과시간을계산합니다 ; 이를 C 라고하겠습니다. 시간은유닛과같은 깊이를갖게되고, 여기에서숙성시간을빼줍니다. 3. 첫 100 개의블록의평균값을구합니다. 현재블록의 C 값은첫 100 개의블록의 평균값의 105% 보다낮아지도록제한됩니다. 12 / 33
4. 첫 1000 개의블록과현재블록의깊이차이가 3 으로나뉘어질수있는블록 해시에주소의공개키를더하고, 해시를계산해서 0 에서부터 100 까지의숫자로 변환합니다. 이의사난수를 R 이라고하겠습니다. 5. 코인의 C 와시간에 R 을곱하고 100 으로나눕니다. 즉 C=C*100/R. c 는 1 에서 C*R 사이의의사난수가됩니다. 6. 첫 1000 개의블록과현재블록의깊이차이가 2 로나뉘어질수있는블록 해시에주소의공개키와채굴주소에해당하는거래해시, 출력일련번호를 더해서새로운블록의해시를만들어줍니다. 이를 H 로표시하겠습니다. 7. H 를 C 로나눕니다. 즉 H=H/C. 따라서 C 가클수록 H 는작아지고, 해시속도가 높아집니다. 8. 상기단계들은지갑안에있는모든 UTXO 에대해반복해서 H 의최소값, 즉 현재사용할수있는것들중가장해시속도가높은블록을구하세요. 2.3 MagnaChain 의채굴경제 MagnaChain 의토큰 ( 이하 Magna) 은비트코인과비슷한토큰출력메커니즘을갖고있습니다. 즉일일추출량은총량의절반이출력될경우절반으로줄어듭니다. 판매및운영, 팀, 마케팅분배 ( 정확한수치는사업백서참조 ) 을위한 26 억개의 Magna 를제외하고채굴가능한 Magna 의총량은 14 억개입니다. 첫 4 년동안새롭게증가된토큰의절반이발행되며, 그이후일일추출량은절반으로줄어들게됩니다. 이러한절반감소프로세스는평균적으로매 4 년마다반복되며, 63 회이루어지고, 그이후에는채굴과정에서새로운 Magna 의발행없이처리비용만발생하게됩니다. 13 / 33
MagnaChain 은 PoS 채굴에대한이윤메커니즘은갖고있지않으며, 새로운토큰들은새로운 블록에발행됩니다. 이는 MagnaChain 의내부및외부경제시스템에대한고려및오스트리아 학파의사상에대한수용을잘보여주는것입니다. 그러나 MagnaChain 과비트코인의전체내부생태계에는차이점들이있습니다. 비트코인채굴의경제사이클에서채굴자들은비트코인을확보하고자하는목적으로채굴머신에투자를하기위해법정화폐자본을지불해야하며, 투자에대한상환및새로운채굴머신의확보를위해법정화폐를교환해야함으로최소한비트코인의일부를팔아야합니다. 비트코인의일일추출량은정해져있기때문에, 비트코인의정해진추출량은해시속도에상관없이공평하게나누어집니다. 따라서채굴자는새로운채굴머신을구매하고자하는동기를지속적으로유지하게됩니다. 그렇게하지않을경우경쟁에서지거나추출량을줄일수밖에없기때문입니다. 따라서비트코인의경제사이클에서는지속적으로매도압박이존재하게됩니다. 채굴자가 새로운머신을구매하기위해비트코인을팔거나채굴머신제조사가기타비용을충당하기 위해비트코인을팔게됩니다. MagnaChain 의일일추출량도정해져있지만, 해시속도가아니라화폐연령과관련이 있습니다. 비트코인의채굴은채굴머신의해시속도에따라결정되었다면, MagnaChain 의 솔루션은 Magna 보유량에의해결정되기때문입니다. 이솔루션의명확한이점은채굴자가추출량을유지하기위해최소한새로채굴해서얻은수익을그다음번채굴작업에투자해야한다는것입니다. 그렇게하지않을경우경쟁에서지게됩니다. 매도압박이줄어듦에따라채굴수익을법정화폐로바꾸고자하는채굴자의의지도감소하게되고, 이는토큰의가격을비교적안정적으로만들어줍니다. 2.4 스마트계약및 MLVM 구현 2.4.1 루아기반스마트계약 14 / 33
루아는튜링완전한프로그래밍언어이며, 루아의컴파일러와바이트코드가상머신은블록체인상에서유용하게사용될수있도록설계및최적화되어있습니다. MagnaChain 은게임개발응용을주목적으로하고있기때문에스마트계약프로그래밍에있어루아에우선순위를부여하고있습니다. 또한루아는유연한경량프로그래밍언어이기때문에호스트언어에반영하기가쉽습니다. 루아는게임서버에일반적으로사용되는스크립팅언어이며오늘날게임개발커뮤니티에서는매우광범위하게사용되고있습니다. 저희의설계상에서스마트계약을생성하고실행하는것은전통적인게임서버개발과유사하기때문에 MagnaChain 개발자로시작하는데따른어려움이나학습비용을크게줄일수있습니다. 스마트계약은바이트코드에정적으로번역되어필요할때블록체인네트워크에서실행시킬수있습니다. MagnaChain 네트워크에있는상기계약의라이프사이클은다음의 5 가지단계로나뉩니다 : (1) 루아소스코드생성. (2) 컴파일러를통해소스코드를 gpc 바이트코드로번역. (3) 루아바이트코드로스마트계약생성. (4) 계약 API 호출. (5) 계약업그레이드또는파괴. 상기라이프사이클에서스마트계약등록및호출, 업그레이드에는 Magna 가소모됩니다. 한편으로는계약실행시컴퓨터의자원및블록체인의용량, 네트워크교통에영향을미칠수있지만자원제공자는보상을받을수있습니다. 또다른한편으로는네트워크를공격하는데필요한경제적수단이더많이필요해지기때문에위험이감소합니다. 계약을더욱안정적으로실행하기위해저희는다음과같은구조를가진독립적인 MLVM 모듈을구축했습니다 : 15 / 33
MLVM 아키텍쳐도표 MLVM 은다음의네가지모듈로구성이되어있습니다 : 1) 스마트계약은콘솔유저를통해명령행의형태로번역-------------------------------------- -----------------------------------------------------됩니다. CLI ( 명령행인터페이스 ) 는계약명령행을처리하는모듈로입력된것을수신하거나미들웨어로전송하고처리된결과를다시콘솔로보냅니다. 2) RPC ( 원격프로시저호출 ) 모듈은블록체인네트워크로부터루아실행요청수신을담당하고, 그러한요청을미들웨어로보내며, 계약의실행이완료되면결과를블록체인네트워크로다시보냅니다. 3) 미들웨어는 CLI 와 RPC 로부터동시에명령이나요청을받아루아컴파일러및액추에이터로전송하고, 번역이나변환된결과를다시미들웨어로보냅니다. 4) 루아컴파일러와액추에이터는루아변환환경을번역및운영하고, 루아스크립트를수신및변환하며, 변환결과를다시미들웨어로보내는역할을담당합니다. 액티브블록체인네트워크에서는계약이자주사용됩니다. 그러한계약이안정적이고효율적으로실행되게하기위해 MLVM 는두가지설계원칙을갖고있습니다 : 1) ; 프로세스의시작과완료시간을최대한줄인다 ; 2) 각기다른시간에각기다른노드로전달된모든작동호출의결과가일관되게한다. 2.4.2 MagnaChain 에서의스마트계약거래 16 / 33
블록체인에는두가지종류의거래가있습니다 표준거래와계약거래입니다. - 표준거래 : 간단한전송거래라고볼수있습니다. - 계약거래 : 타겟주소가스마트계약과일치하면각거래는스마트계약내에서 일치하는함수를실행하기위해가상머신을통해스마트계약을시작합니다. 저희는일반적인비트코인과같은거래종류 ( 가령간단한토큰전송 ) 을버전 1 으로표시합니다. 스마트계약거래의경우새로운거래종류를생성하여 Version 2 로표시합니다. 버전 2 거래에는거래내에 계약 데이터블록이있어스마트계약호출을할때필요한매개변수를저장합니다. 2.4.3 스마트계약주소및호출자주소 저희는 MagnaChain 에다음과같은공식에따라표준거래주소와는다른새로운계약주소 유형을만들었습니다 : 주소계약주소 = 해시 160( 버전 + 퍼블리셔주소 + 지출 _vout_txids[] + 지출 _vout_numbers[] + 계약 _ 바이트 + 계약 _vout_number) 이체또는호출을시작하기위해 UTXO 기반블록체인시스템을사용할때, 각거래에는각기 다른입력값을갖고있으며, 각입력값은서로다른주소로부터올수있습니다. 그렇기때문에 스마트계약실행시호출자의주소를찾아내는것은불가능합니다. MagnaChain 에서는각계약거래의 계약 데이터블록에호출자의주소를명시하게하여 상기문제를해결했습니다. 이를통해동일한지갑의동일한계약에대해다중호출이 이루어져도호출자의주소는변경되지않습니다. 2.4.4 표준거래의겨래비용및우선순위 17 / 33
Magnachain 네트워크의노드가새로운블록을생성하면, 해당노드는메모리풀에있는 각각의거래에우선순위를부여하고, 후보블록을구축하기위해더높은우선순위를가진 거래기록을선택해야합니다. 거래의우선순위는거래입력값에사용된 UTXO 의 블록연령 에따라결정됩니다. 높은거래입력값과더오래된 블록연령 을가진거래가입력값이작고새로운블록연령을가진거래들보다더높은우선수위를부여받게됩니다. 블록에공간이충분히있을경우에는높은우선순위의거래를처리할때채굴자비용이발생하지않습니다. 거래의우선순위는입력값의총합을나누고, 입력된 블록연령 제품을거래의총길이로 나눔으로써확보할수있습니다 : 우선순위 = 총합 ( 입력값 * 입력연령 ) / 거래의크기 상기방정식에서거래에대한입력값은 Magna 의최소단위인 mmgc (1 백만번째 ) 로 표현됩니다. UTXO 의 블록연령 은 UTXO 가블록체인에기록한이후경험된블록의개수로 블록체인의 UTXO 깊이로알려져있습니다. 거래기록의크기는바이트로표현됩니다. 특정거래에높은우선순위를부여하고자한다면다음과같은조건들이달성되어야합니다 : 우선순위값이 57,600,000 보다높아야하며, 이는 1 MGC (1 백만 MGC) 에해당되고, 연령은 하루 (144 블록 ), 거래크기는 250 바이트여야합니다 : 높은우선순위 > 100,000,000 mmgc * 144 블록 / 250 바이트 = 57,600,000 블록에거래를저장하기위해사용된처음 50K 바이트는더높은우선순위를가진거래를위해비축됩니다. 노드가이 50K 바이트를채우면채굴자비용이발생하든발생하지않든가장높은우선순위를가진거래에우선순위를부여합니다. 이러한메커니즘은채굴자비용이 0 이어도가장높은우선순위를가진거래가우선적으로처리될수있게합니다. 그 18 / 33
다음채굴노드는최소채굴자비용을발생시키는거래를선택하고, 그들은 킬로바이트당 채굴자비용 에따라분류합니다. 채굴노드는높은채굴비용을발생시키는거래에 우선순위를부여하여남은블록을채우고, 최대블록사이즈는 MAX_BLOCK_SIZE 가됩니다. 블록에여전히빈공간이존재하면채굴노드는채굴자비용이없는거래를선택합니다. 일부 채굴자는채굴자비용이없는거래들을최대한블록에통합시키기위해노력을하지만, 그러한거래를무시하는채굴자들도있습니다. 2.4.5 거래수수료및스마트계약의우선순위 계약거래의우선순위는기본적으로표준거래와비슷합니다. 하지만약간의차이가있습니다. 스마트계약을위한거래를발행할때, 우선순위는동일한블록내에있는동일한스마트계약호출의총합이됩니다. 이는거래가호출되기전해당거래가항상블록내에저장되어있도록하기위함입니다. 거래수수료를계산할때, 현재호출된가상머신명령어의개수와계약실행이후상태저장을 위해필요한바이트의수도더해야합니다. 이는이더리움에서가스가계산되는방식과 비슷합니다. 최종계산공식은다음과같습니다 : 거래계약비용 = 표준거래수수료 + Vm 런타임코드카운트 * 코드비용 + 상태추가 크기 * 상태저장비용 2.4.6 동시호출및호출시퀀스 동일한블록생성사이클내에서두명의유저가동시에동일한계약을호출하는경우가 발생할수도있습니다. A 가 a1 과 a2 호출을개시하고, B 가 b1 과 b2 호출을개시할수 19 / 33
있습니다. 이네개의호출은가상머신의저장상태에영향을미칩니다. 이러한경우, 과연 최종실행시퀀스와결과는어떻게될까요? MagnaChain 에서최종호출시퀀스와결과는채굴자가생성하는블록에의해결정됩니다. 채굴자는다음과같은원칙에기반하여블록의호출시퀀스를결정합니다 : 1) 블록내의동일한호출자의호출은호출자의호출시퀀스와같습니다. 2) 다중호출자가개시한동시호출은 3.4.5 및 3.4. 에명시된거래수수료와우선순위원칙을준수해야합니다. 높은우선순위에있는호출이우선적으로블록에저장되며, 호출은우선순위에의해개시됩니다. 2.5 병렬적사이드체인기술 2.5.1 사이드체인의설계원칙 MagnaChain 은현재블록체인플랫폼이가진두가지문제를해결한다는것을기반으로 설계되었습니다 : 지나치게낮은처리율및데이터과다축적으로인해증가하는비용. 우리의 솔루션은병렬적사이드체인기술을도입하는것입니다. 사이드체인은사용자의자산이여러개의체인상에서자유롭게전송될수있도록메인체인밖에여러개의병렬적블록체인을만드는것으로블록체인커뮤니티에서제시되고있는개념입니다. 사이드체인은비트코인의네트워크혼잡문제를해결하고자이중구조네트워크로처음제시되었습니다. 간단하게말하자면병렬적사이드체인기술과기존블록체인의차이는 CPU 의다중스레드와 단일스레드의차이와유사합니다. 20 / 33
< 전통적인블록체인데이터모델 > MagnaChain 에서는전체의네트워크가하나의메인체인을갖고있으며, 새로운화폐들은이메인체인인의블록에만발행이됩니다. 또한동시에원하는만큼의사이드체인을만들수있으며, 각사이드체인의이전블록은메인체인또는다른사이드체인이될수있습니다. 전체적인데이터의구조가체인이라고하기보다는나무와같다고할수있습니다. 사용자는프로그램명령을생성할수있는자유를가지며, 특별한거래를통해 Magna 를한체인에서다른체인으로전송할수있습니다. 따라서하나의애플리케이션또는애플리케이션의모듈을위해별도의사이드체인을열수있으며, 추후유연하게조정을할수도있습니다. 채굴자는복수의체인에서채굴을할수있다는선택을자유롭게할수있습니다. 새로운화폐가사이드체인에발행되는것은아니지만채굴수수료는여전히존재하며, 거래의수가증가함에따라증가합니다. 채굴자의수가적은체인은수익성이높기때문에다른채굴자를끌어들일수있고, 거래는적은데채굴자들이많이모이는체인은서서히채굴자를잃게될것입니다. 채굴수수료라는인센티브를통해채굴자와복수의체인간관계가자동적으로조정되는시장이형성될수있으며, 채굴자는가장적합한체인에서채굴을할수있게됩니다. 21 / 33
그결과전체네트워크의처리율, 즉초당거래량 (TPS) 은매우높은수준에도달하게됩니다. 전통적인블록체인프로젝트에서는 TPS 계산이쉬웠습니다 : 각블록의최대거래수를블록의출력값으로나누면됐습니다. 예를들어비트코인의경우각블록에거래가 4000 개있고, 블록한개의출력값이매 10 분이면 TPS 는다음과같았습니다 : 4000/ (10 *60) = 6.6 초당거래량, i.e. 초당약 6 개의거래 MagnaChain 의총처리속도는체인하나의 TPS 에체인의수를곱한값입니다. 데이터를 처리하는체인이여러개존재하기때문입니다. MagnaChain 에서는각각의블록이 1 만 6 천개의거래를처리할수있고, 블록한개의출력값은매 8 초였습니다. 각체인의 TPS 는 16,000/8=2,000 입니다. 운영중인체인이 500 개라고가정을하면총 TPS 는필요에따라동적으로조절할수있습니다. 난이도는전체네트워크의 I/O 난이도에의해서만제한이되기때문에논리적으로 TPS 는쉽게 1 백만에도달할수있다는결론을내릴수있습니다. TPS 가크게향상된다는점외에도병렬적사이드체인에는또다른이점이있습니다. 개발자들은전체네트워크에있는사이드체인의데이터를동기화할필요없이현재 22 / 33
애플리케이션이실행되고있는메인체인과사이드체인의데이터만동기화하면되기때문에 사용자의디스크공간점유및네트워크대역폭의필요성을크게줄일수있습니다. 2.5.2 사이드체인구현 사이드체인을생성하기위해서는먼저메인체인에사이드체인을생성하기위한거래를구성해야합니다. 거래에는새로운체인의 DNSSeed ( 시드서버의도메인이름 ) 과 SeedSpec6 (ipv6 주소와포트를가진시드노드 ) 데이터와생성보증금으로사용될충분한양의 Magna 가있어야합니다. 사이드체인거래생성에는새로운체인이실행되기전에여러사항들이충분히확인되어야합니다. 필요한 Magna 보증금은현재생성되어있는사이드체인의수와생성속도에따라결정됩니다. 초기 Magna 보증금은악성사이드체인생성공격을방지하기위해 6 개월후환급됩니다. 생성보증금은메인체인의영구잠금주소의출력값이고, 새로운보증금상환거래가생성됩니다. 거래는직렬화되어사이드체인생성거래에포함됩니다. 사이드체인생성거래에대한 527,040 번의확인이완료되면보증금상환거래가새로운체인으로전송됩니다 ( 약 183 일이후 ). 새로운체인이보증금상환거래를수신하면거래가로컬환경에서생성된것인지확인합니다. 아닌경우보증금상환이유효한지를결정하기위해메인체인에문의를하게됩니다. 모든보안확인이완료된이후에새로생성된체인의블록에상환거래가저장되며, 새로운체인을통해상환이이루어질수있습니다. 거래는사이드체인을생성하는거래에직접포함이되기때문에상환거래데이터는서명으로 보호를받으며악성조작을방지할수있습니다. 표 - S 사이드체인거래생성구조 분야 설명 version 사이드체인의버전 id 생성 23 / 33
vin vout 일반 vin 보증금은메인체인의영구잠금 출력값입니다. dnsseed SeedSpec6 새로운체인시드서버호스트 고정시드서버및 ipv6 주소, 포트 txhexdata 보증금상환거래를위한 Hex 데이터 ; 거래의 vout 에는보증금출력값이 포함되어있음 도표 - 사이드체인생성 ( 사이드체인 tx1 생성 활성화된새로운체인 tx1 으로부터보증금을꺼내어 tx2txtx2 에 상환 ) ( 새로운체인실행 Tx2 가새로운체인에저장 ) 메인체인과사이드체인은서로거래를할수있습니다. 즉메인체인은사이드체인의특정주소로거래를개시할수있고, 사이드체인은메인체인의특정주소로거래를개시할수있습니다. 소스체인에크로스체인거래가생성되어거래가어떠한주소와어떠한체인을대상으로개시되었는지를표시합니다. 그런다음, 거래를통해타겟체인의영구잠금주소로 24 / 33
Magna 가전송이되는데, 여기에는사이드체인의실제출력값이포함됩니다. 타겟체인거래는크로스체인거래가소스체인의높이를충분히뛰어넘을때까지타겟체인으로전송되지않습니다. 높이가충분해야크로스체인거래가취소되지않기때문입니다. 최종타겟체인거래는타겟체인에저장되며, 교차거래가완료됩니다. 표 - 크로스체인거래의구조 분야 version vin vout 설명크로스체인거래의버전 id 일반 Vin 타겟체인의출력값은소스체인에서 영구잠금주소로의출력값입니다. branchid txhexdata 타겟체인 id 타겟체인거래 tx2; 거래의 vout 에는 실제타겟체인출력값이포함되어 있음 도표 - 사이드체인거래 25 / 33
( 크로스체인거래 tx1 생성 tx2 를 t1 으로부터추출 -à t2 가새로운체인에저장 ) 사이드체인거래와크로스체인거래를생성하는 txhexdata 에는 tx2 라는비슷한거래가 포함되어있습니다. Tx2 에는채굴자의비용을보상해주고 Tx2 가타겟체인에원만하게 저장될수있도록소량의 Magna 가포함되어있습니다. 사이드체인거래및크로스체인거래생성의검증에는그에대응하는체인의활성화가필요합니다. 체인간거래커뮤니케이션은 RPC 인터페이스를통해이루어집니다. 커뮤니케이션의보안을위해각체인노드에는 RPC 사용자명과비밀번호가설정되어있습니다. 메인체인채굴자는모든크로스체인거래를검증하기위해모든사이드체인을활성화시켜야합니다. 사이드체인채굴자는메인체인과거래가위치한사이드체인을활성화시켜야합니다. 메인체인은다른사이드체인의거래를완료및검증하도록설정될수있으며, 이는네트워크에있는다른채굴자가검증할수있습니다. 2.5.3 최적화계획 현재채굴자들은전체네트워크의안전을보장하기위해모든사이드체인데이터를 동기화해야하는등메인체인관련특정요구조건들로인해제한을받고있습니다. 사이드체인의수가증가하면메인체인채굴자들은상대적으로더높은디스크및대역폭 26 / 33
조건들을만족시켜야합니다. 이러한분제는서버클러스트를사용함으로써해결할수 있습니다 : 저희는다음을조정함으로써더나은솔루션을도출하고자합니다 : 1) 사이드체인채굴자가채굴을하기전에메인체인에자산을담보로맡깁니다. 사이드체인이채굴되면사이드체인의블록헤더를메인체인에작성할것입니다. 블록헤더에는사이드체인블록의머클트리의루트가포함되어있습니다. 2) 메인체인채굴자들은더이상모든사이드체인을모니터링할필요가없습니다. 3) 체인에는보고메커니즘이있습니다. 사이드체인채굴자가나쁜일을하면 ( 예를들어다른사용자의자산을특정계정으로전송하기위해존재하지않는거래를생성하는것 ) 다른모든사용자가이를체인에보고할수있습니다. 보고내용에는존재하지않는거래입력값이포함되어있어야합니다. 보고에는담보로일정량의 Magna 가있어야합니다. 4) 이때, 사이드체인채굴자는보고내용에반응을하게됩니다. 특정블록헤더의머클트리는 SPV 인증을통해해당거래의입력값이존재하는지를증명하는데사용됩니다. 5) 사이드체인채굴자의인증이통과가되면사이드체인채굴자는채굴을계속할수있으며, 채굴자는보고를한사용자의담보 Magna 를갖게됩니다. 불가능하다는결과가나올경우, 정보제공자는사이드체인채굴자가채굴을위해맡긴 Magna 를얻게됩니다. 이러한접근은시스템의복잡성을높이지만, 메인체인채굴자의동기화필요성을줄여주며기존의관행과비교해보았을때보안이크게낮아지지않습니다. 우리의목표는테스트넷을온라인으로이동시킨다음이최적화계획을실행하는것입니다. 27 / 33
2.6 개발도구의통합및지원 우리는개발자들이빠르게시작할수있도록도와주는다양한일련의도구들을제공할 것입니다. 여기에는 Unreal 및 Unity, Cocos 등을위한엔진플러그인, 모듈화된스마트계약 템플릿, 사전에구축된유닛테스트등이있습니다. 우리의궁극적인목표는 MagnaChain 을 Unity 와동등한수준의통합된개발도구세트로만드는것입니다. 기술의수준에상관없이모든개발자들은다양한크기의 dapp 및게임개발을저희의도구를활용하여할수있으며, 벡앤드프로그램없이블록체인애플리케이션의개발및출시를관리할수있습니다. 28 / 33
3 EOS NEO LISK GameChainSystem VH-POS PoW PoW DPoS DBFT PoS DPoS DPoS/LPoS PoS DPoS 5 10 15 0.5 15-20 2-1-30 1 - TPS > 1,000,000 - - 1,000,000 - ----- TPS 13,313 7 15 3,000 1,000 60-70 - 1,000 800 - - 90.9 Gb 75 Gb - - ----- - 4.4 Gb/ 187 Gb/ - - - - -- - dapps - - - - - - -- / Lua Solidity C/C++ C#, Pyton, Java Solidity DPoS DPoS/LPoS PoS C/C++ C/C++ C/C++ C/C++ Pyton, JS, VB,.Net, C++ C/C++ Javascript Javascript Java - 29/33
4 로드맵 30 / 33
5 주의 이백서는오로지정보를전달하기위한목적으로사용되며, MagnaChain 토큰 (Magna) 의판매 또는구매에대한특정의견을구성하지않습니다. 상기정보또는분석은그어떠한형태의 투자조언이나투자의도, 또는투자조장을구성하지않습니다. 이백서는다른사람에게그어떠한형태의구매또는판매행위또는다른사람들에게그 어떠한형태의증권구매또는판매를장려하는행위로해석되거나받아들여지지않습니다. 또한그어떠한형태의계약이나약속으로도간주되지않습니다. 관련이있고원하는모든사용자는 MagnaChain 의위험성을명확하게이해해야합니다. 투자자가투자에한번이라도참여를하였다면, 해당투자자는이프로젝트의위험성을이해 및수용하며, 그에상응하는결과를개인적으로받아들일의지가있다는것을의미합니다. MagnaChain 팀은 MagnaChain 프로젝트에참여함으로써발생하는직접적또는간접적손실에 대한그어떠한책임도가지지않습니다. 31 / 33
6 참조 [1] Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash System. https://bitcoin.org/ bitcoin.pdf. Oct 2008 [2] Vitalik Buterin. Ethereum White Paper : A Next-Generation Smart Contract and Decentralized Application Platform. https://github.com/ethereum/wiki/ wiki/white-paper. [3] Wikipedia. Directed acyclic graph. https://en.wikipedia.org/wiki/directed_acyclic_graph. [4] Serguei Popov for Jinn Labs. The tangle. https://iota.org/iota_whitepaper.pdf, April 2016. [5] Anton Churyumov. Byteball: A Decentralized System for Storage and Transfer of Value. https://byteball.org/byteball.pdf,september2016. [6] Wikipedia. PoW. https://en.wikipedia.org/wiki/proof-of-work_system. [7] Wikipedia. PoS. https://en.wikipedia.org/wiki/proof-of-stake. [8] "Nxt Whitepaper (Blocks)". nxtwiki. Retrieved 2 January 2015. [9] mthcl (pseudonymous). "The math of Nxt forging" (PDF). pdf on docdroid.net. Retrieved 22 December 2014. [10] Vasin, Pavel. "BlackCoin s Proof-of-Stake Protocol v2" [11] http://www.8btc.com/dao-attack-lost-60-million [12] Ori Brafman. The Starfish and the Spider: The Unstoppable Power of Leaderless Organizations. 2006. [13] Yochai Benkler. Wealth of networks: How Social Productions Transforms Markets and Freedom. 2006 [14] HOFFSTEIN J,PIPHER J,SILVERMAN J H.NTRU : A ring - based public key cryptosystem [15] LYUBASHEVSHY V,PEIKERT C,REGEV O.On ideal lattice and learning with errors over rings 32 / 33
[16] Adam Back, Matt Corallo, Luke Dashjr, Mark Friedenbach, Gregory Maxwell, Andrew Miller, Andrew Poelstra, Jorge Timón, and Pieter Wuille.Enabling blockchain Innovations with Pegged Sidechains.2014 [17] Sergio Demian Lerner.RSK White paper Overview. 2015 [18] Sergio Demian Lerner.Lumino Transaction Compression Protocol (LTCP). 2017 [19] Sergio Demian Lerner.Sidechains and Drivechains, A view on 2-way peg designs. 2017 33 / 33