아이리포지식창고 기출심화 - 01 블록체인합의알고리즘 양경주정보관리기술사 (kjyang75@gmail.com) 블록체인의핵심기술, 합의알고리즘 Concept KeyWord ( 블록체인정의 ) - 제3의공인기관이나중개자개입없이투명하고안전한거래를가능하게하는분산되고, 개방된공동장부관리기술 ( 합의알고리즘정의 ) - P2P 네트워크와같이정보도달에시간차가있는네트워크에서참가자가하나의결과에대한합의를얻기위한알고리즘 PoW, PoS, PBFT, Sieve 변화하는블록체인! 비트코인이라는가상화폐를통해세상에이름을알리기시작한블록체인은금융분야뿐만아니라부동산등기, 온라인콘텐츠, 전자투표등다양한분야에서적용가능성을검토하며 4 차산업혁명에서의핵심기술로기대되고있다. 비트코인이나이더리움같이누구나참여가능한 Public 형태로시작한블록체인은탈중개등의경제성, 위조가불가능한높은보안성등으로금융권및다양한기업에서관심을보이며 R3Cev, Hyperledger Consortium 을필두로허가된사람만참여가능한독자적블록체인 (Consortium 혹은 Private) 을구축하고있다. [ 그림 1] 블록체인적용동향 본고에서는분산시스템에서신뢰성을보장하기위해필요한핵심기술인합의알고리즘을살펴보고자한다. Copyright 2017 By 아이리포 & CSLEE All rights reserved 1
I. 합의알고리즘가. 합의알고리즘의정의 - P2P 네트워크와같이정보도달에시간차가있는네트워크에서참가자가하나의결과에대한합의를얻기위한알고리즘나. 대표적인합의알고리즘과채택시스템합의알고리즘채택시스템 Proof of Work - Bitcoin Core, Ethereum 등 Proof of Stake - Ethereum mijin Paxos - Google Chubby Raft - RAMCloud PBFT - Hyperledger Fabric Sieve - Hyperledger Fabric II. 비트코인에서사용한합의알고리즘, Proof of Work 가. Proof of Work(PoW) - PoW 는비트코인을시작으로많은 Public 블록체인에서채택하고있는알고리즘이다. 확률적으로해답이어려운문제를가장빨리해결한사람에게블록을만들수있도록허가하는방식으로다음과같은절차로이루어진다. 1 A 가 B 에게송금을의뢰 ( 트랜잭션 ) 한다. 2 발행된트랜잭션은 P2P 네트워크를통해참가자전원에게브로드캐스트된다. 3 트랜잭션을받은승인자는블록을생성하기위한요건을만족시키는해답을찾기시작한다. - 블록의해시값 난이도를만족하는난수 (nonce) 값찾기 ( 컴퓨팅파워필요 ) 4 처음조건을만족하는해답을발견한승인자가참가자전원에게브로드캐스트한다. 5 블록을받은각노드는정당한블록인지검증한다. 50% 이상이동의하면블록은체인에추가된다. 6 송금이완료된다. - 3 번과정에서동시에두사람이해답을찾을경우두개의블록이생성될수있다. 이경우를분기 (fork) 라고하며분기가발생하면승인자 ( 마이닝노드 ) 들은둘중하나의블록체인을선택하여다음블록을생성하게된다. 이후, 먼저블록이생성되는블록체인이유효한블록체인이된다. 즉, 더긴블록을선호하는정책으로분기를해결한다. Copyright 2017 By 아이리포 & CSLEE All rights reserved 2
나. Proof of Work 의문제점문제점설명 - 5번의과정에서특정마이너가전체네트워크의과반수이상을차지하는경우, 다른 51% 문제마이너가생성한블록을승인하지않는등결과를자유롭게조작할수있음 - 3번의과정에서분기가발생할경우, 블록체인은긴체인을올바른것으로판단한다. 이때짧은체인을사용하고있던노드는해당블록이선택되지않음으로거래잔액이파이널리티변경되거나거래자체가없던것으로될수있다. ( 결제완전성 ) - 비트코인은이런현상을방지하기위해거래확정후 6 블록가량기다려야다음거래를불확실성할수있게한다. - 이런불확실성은금융시스템에서의도입을어렵게한다. - P2P 상의정보공유시간, 여러노드가합의를통해검증하는시간등이필요하다. 성능한계 - 이로인해실시간처리에는부적합하다. 블록체인용량 - 모든블록정보를각각의노드에보유해야한다. - 불특정다수의사용자가참가하는인터넷과같은환경에서 PoW 는유효한알고리즘이다. 하지만신뢰된참가자들이컨소시엄을만들어운용하는비즈니스모델에서는의미없는기능이다. Ⅲ. PoW 외다양한합의알고리즘가. Proof of Stake(PoS) - 이더리움이채택할예정인알고리즘으로 PoW 와기본방식은동일하나화폐량을더많이소유하고있는승인자가우선하여블록을생성할수있는방식이다. 화폐량에따라해시계산의난이도가낮아지기때문에 PoW 와비교하여자원소비가작다. 나. PBFT(Practical Byzantine Fault Tolerance) - PoW 와 PoS 의단점인파이널리티불확실성과성능문제를해결한알고리즘으로 Hyperledger Fabric 과 Eris 등컨소시엄형에서이용하고있다.( 분기가발생하지않음 ) - 네트워크의모든참가자를미리알고있어야하며, 참가자중 1 명이 Primary( 리더 ) 가되어자신을포함한모든참가자에게요청을보낸다. 그요청에대한결과를집계한뒤다수의값을사용해블록을확정한다. - PBFT 처리과정 Copyright 2017 By 아이리포 & CSLEE All rights reserved 3
1 클라이언트가모든노드에요청을브로드캐스트한다 2 Replica0 가 primary( 리더 ) 가되고순차적으로명령을다른노드에전달한다. 3 각노드는 2의명령을받으면 Primary(Replica0) 를포함한모든노드에회신한다. 4 각노드는 3에서전달된명령을일정수이상수신하면 Primary(Replica0) 를포함한모든노드에수신한신호를전송한다. 5 각노드는 4에서보낸명령을일정수이상수신하면명령을실행하고블록을등록해 client 에 reply 를반환한다. - 매우고속으로동작하지만참가자전원과의사소통하기때문에참가자가증가하면처리속도가저하된다. 다. Sieve - IBM 에서고안한 PBFT 를확장한알고리즘으로실행결과전송과집계전송으로흐름이나뉘어져있으며, 합의형성전단계에서실행결과를검토해결과가다른경우중지시킨다. 각노드의실행결과가다를가능성을조기에탐지하고싶을때유용하다. - Hyperledger Fabric 에채택되어있지만 2016 년 7 월기준으로제외되었다. - Sieve 처리과정 1 각노드중하나가 Client 가되고, 리더의명령을송신한다. 2 리더 (Replica1) 가각노드에실행의뢰를전송한다. 3 각노드는의뢰를실행하고결과를리더에게전달, 결과가일정수에도달하지못하면중단되며요청은무시된다. 4 수신한결과가중지가아니라면그증거로결과를집계한다.( 이때 PBFT 가사용되는경우가많음 ) Ⅳ. 합의알고리즘간비교표 구분 PBFT/Sieve PoW PoS 통신비용 각서버간통신으로높음 로컬통신만으로비용낮음 로컬통신만으로비용낮음 Copyright 2017 By 아이리포 & CSLEE All rights reserved 4
결함허용대수 1/3 미만까지문제없음 1 대 1 대 원리 다수결 CPU 계산량 보유한자산크기 CPU 연산비용 낮음 높음 중간정도, PoW 보다낮음 권한의분산 참가서버모두가평등 전기세가낮은지역에일반적으로화폐보유는집중될수있음집중될가능성높음 참가조건 신뢰서버만참가가능 어떤서버도참가가능 어떤서버도참가가능 비밀보호를위한인증 사전에서로신뢰한공개암호화키사용 참가시준비한공개암호화키사용 참가시준비한공개암호화키사용 - 2015 년경부터컨소시엄형에서의이용을전제로한블록체인기반이등장하고있으며, PoW 가아닌다른 합의알고리즘을채택하는경우가많아졌다. PBFT 등의알고리즘은분산데이터베이스나분산파일시스템 등에이용되고있지만아직블록체인에서활용사례는많지않다. 상황에맞는최적의합의알고리즘을 선택할수있기위해서는더많은실증실험이필요하다. 끝 [ 참고문헌 ] 1) 블록체인구조와이론 (2017.06), 위키북스 2) 비트코인의기술, 블록체인의원리 (2016.01),SPRI Contents connect communications!! 아이리포에오시면더많은지식을가져가실수있습니다. 아이리포온라인 : http://www.ilifo.co.kr 아이리포지덤시리즈 : http://www.jidum.com 아이리포 IT지식창고 : https://www.ilifo.co.kr/boards/knowledge 아이리포기술사 / 감리사카페 : http://cafe.naver.com/itlf 서울시마포구상암동 1610 번지, DDMC 3 층아이리포교육센터 TEL: 02-303-9997 MAIL: edu@ilifo.co.kr Copyright 2017 By 아이리포 & CSLEE All rights reserved 5