주간기술동향 2018. 6. 20. 비트코인블록체인동작원리및진화 * 김원 한국인터넷진흥원연구위원 비트코인은 2008년 10월 31일사토시나카모토라는정체불명의인물이발표한논문에서시작되었다. 비트코인은 P2P 네트워크상에서구현한최초의암호화폐이다. 또한, 블록체인기술은비트코인을구현하기위해만들어졌기때문에블록체인과비트코인은동시에탄생했다. 이는 P2P 기반의네트워크에서 TTP(Trusted Third Party, 신뢰할수있는제3자 ) 없이거래가가능한혁신적인시스템으로 4차산업혁명의기반기술중하나로기존인터넷구조를바꿀혁신기술로부상하고있다 [6]. 비트코인은현재가장널리사용되는블록체인기반암호화폐시스템으로탄생했기때문에데이터구조나프로토콜이화폐시스템에특화되어있다. 이때문에시스템자체는범용적이지만그곳에흐르는데이터와처리를다른방법으로사용하는데는한계가있다. 그래서다른영역에서도적용가능하도록다양한종류의블록체인플랫폼이탄생했다. 따라서, 스마트계약이라는개념을구현한이더리움과하이퍼레저패브릭등의다양한블록체인을연구하기위해서는기본적으로비트코인의구조와동작원리를아는것이중요하다. I. 서론 2008년 10월 31일저녁, 사토시나카모토 ( 가명 ) 라는사람이암호화기술커뮤니티메인 (Gmane) 에 비트코인 : P2P 전자화폐시스템 (Bitcoin: A peer-to-peer Electronic Cash System) 이라는논문을발표했다 [5]. 이논문에서사토시나카모토는비트코인을 전적으로거래당사자사이에서만오가는전자화폐 라고소개하고 P2P 네트워크를이용하여이중지불을막는다 고설명했다. 그리고약두달뒤인 2009년 1월 3일, 사토시는논문으로설명했던기술을비트코인이 * 본내용은김원연구위원 ( 010-5342-4802, wkim1015@kisa.or.kr) 에게문의하시기바랍니다. ** 본내용은필자의주관적인의견이며 IITP의공식적인입장이아님을밝힙니다. 2 www.iitp.kr
기획시리즈 블록체인 < 자료 > 블록체인및비트코인보안기술, 금융보안원 [ 그림 1] 금융거래방식비교라는암호화폐로직접구현해보여주었다. 중앙집중형서버를중심으로트랜잭션을처리하는기존의금융거래방식과는달리, 비트코인은신뢰할수없는노드 ( 컴퓨터 ) 들이연결되어있는 P2P 네트워크상에서신뢰할수있는제3자 (Trusted Third Party:TPP) 없이 [ 그림 1] 과같이트랜잭션이가능한금융거래방식으로, 정보처리분야에서오랜세월해결하지못한비잔틴장군문제 (Byzantine General Problem)[11] 를해결한혁신적인기술로출현하였다. 블록체인은 2016년 WEF( 세계경제포럼 ) 에서제4차산업혁명의차세대 10대핵심기술로선정되었으며, 또한가트너는 2018년 10대기술중의하나로선정하였다. 앞으로전세계금융기관중 80% 가도입의사를표했으며, 2025년까지블록체인으로인한경제규모가전세계 GDP 의약 10% 에이를것으로기대되고있다 [3]. II. 비트코인블록체인동작원리 비트코인클라이언트는비트코인코어를기반으로개발되었는데, 인터넷에연결되는누구든지다운로드받아비트코인을송금하거나채굴 ( 마이닝 ) 하는것등이가능하며, 물론거래소를통해서법정화폐로의환전도가능하다. 비트코인의거래프로세스를살펴보면은행과같은신뢰할수있는제3자기관이없이거래가가능한혁신적인시스템이다. [ 그림 2] 및 [ 표 1] 은비트코인거래의전체흐름도이다. 정보통신기술진흥센터 3
주간기술동향 2018. 6. 20. < 자료 > Thomson Reuters, 2016. 1.16., Blockchain technology: Is 2016 the year of the blockchain? 을재구성 [ 그림 2] 비트코인거래동작프로세스 [ 표 1] 비트코인거래의전체흐름도 라이프사이클 내용 1 계정 ( 계좌 ) 생성 전자지갑 (Wallet) 생성 ( 개인키, 공개키자동생성 ) 2 거래생성 비트코인전송 3 거래검증 P2P 네트워크에서거래전송 4 블록구성및생성 노드에서트랜잭션을블록생성 5 채굴및보상 블록의정당성확보를위한채굴 6 블록검증 P2P 네트워크전파및각노드의블록검증 7 블록체인생성 블록체인생성 (the longest chain) 8 난이도조정 14일마다블록생성주기변경 < 자료 > https://bitcoin.org/en/developer-reference#block-chain 1. 비트코인주소 : 계정 ( 계좌 ) 생성 은행계좌와동일한역할을하는계좌를생성하며, 비트코인을거래하는계좌는다수개를생성할수있다. 계좌를생성하면개인키와공개키가자동으로생성되며, 여기서개인키는비트코인을송금할때전자서명하도록할수있는중요한키역할을한다. 공개키의경우는 512비트로길이가길어서이를다시해시하여길이를줄여사용하는데, 이것이공개키해시 4 www.iitp.kr
기획시리즈 블록체인 방식의비트코인주소이다 [2]. 비트코인에서는 1985년밀러와코블리츠가제안한타원곡선기반암호 (Elliptic Curve Cryptography) 를이용한공개키방식을이용하여개인키와공개키를생성한다. 이산대수에서사용하는유한체의곱셈군을타원곡선군으로대치한암호방식으로다른암호방식에비해더짧은키사이즈로대등한안전도를가진다. 예를들어, RSA 1,024비트키와 ECC 160비트키를갖는암호방식은대등한안전도를가진다는것이다. ECC의공개키는두개의 256비트값으로정의되어있다. 256비트두개로구성된 512비트에유형을구분하여 8비트접두부를합친 520비트, 즉 65바이트가하나의공개키이다. 비트코인클라이언트는의사난수발생기 (PRNG) 를이용하여 256비트의개인키를발생하고나서타원곡선암호방식을사용하여 512비트의공개키를생성한다. 비트코인의경우에는 NIST가권장하는타원곡선의하나인 ECDSA의파라미터로 secp256k1 타원곡선 E p : y 2 = x 3 +7을이용한다. 즉, E p : y 2 = x 3 +7(mod p) 의유한체상에서 K = k G를만족하는개인키와공개키를얻는방식이다. 타원곡선상의이산대수문제라고하는것은 타원곡선 E와 E상의점 G와그것을 k배한점 k G가주어졌을때 k를구하는것 이어렵다는것이다. 여기서 k는개인키, K는공개키, G는 Generator Point이다 [8],[9]. [ 그림 3] 과같이 520비트공개키를 sha256 해시를거쳐 256비트로압축하고그것을다시 < 자료 > Mastering Bitcoin 2nd Edition, O Reillly, pp.66-68, 재구성 [ 그림 3] 공개키해시방식의비트코인주소생성과정 정보통신기술진흥센터 5
주간기술동향 2018. 6. 20. RIPEMD-160 해시함수를사용하여 160비트, 즉 20바이트값을구한다. 일반적인비트코인거래에서출력부에기록되는값은이공개키해시값이다. 다음단계에서, 해시값뒤에오류검출을위해 4바이트 checksum을붙이고, 이주소의유형을나타내는버전 1바이트 ( 예로서 main network의경우 0 00) 를앞에붙여서 25바이트길이의새로운데이터값을생성한다. 사용자가가능한편리하게사용하기위해이이진수를 Base58로인코딩하여 29바이트에서 35바이트정도의길이를갖는비트코인주소를구하는것이다 [9]. 2. 거래생성및검증 전자지갑에서수신자의공개키를계좌번호로이용하여비트코인을전송할수있다. 여기서공개키는송 수신시활용되는계좌번호역할을한다. 개인키 ( 비밀키 ) 는본인이라는사실을증명하는전자서명을할때에이용된다. 전자서명은트랜잭션의타당성을증명하는것인데, 트랜잭션데이터를송신하는사람이서명을생성하고수신하는사람이그서명을송신자의공개키로검증해타인에의한위 변조의존재유무를확인할수있다. 이코인을사용하려면입력부에전자서명을넣을때공개키를함께넣어줘서그공개키가출력부에적힌공개키해시의원본인지확인하고그공개키로전자서명을확인한다. 트랜잭션 A의출력부에적힌공개키해시가정당하다는것은거래 B의공개키를공개키해시로변환할 < 자료 > 블록체인펼쳐보기, p.209. [ 그림 4] 비트코인주소로지불된코인의확인방법 6 www.iitp.kr
기획시리즈 블록체인 때와마찬가지로이중해시하여결과가공개키해시와같은지비교하는것이다. 공개키가검증되면이것으로전자서명을풀어서서명된내용을확인하고, 이공개키와쌍을이루는개인키로암호화되어있어당연히풀리게된다. 그결과가거래 A의정보와일치하는지확인하면검증이끝난다. 비트코인네트워크의모든노드에서거래 B의입력부가정당한지확인할수있다 [2]. 비트코인프로그램은 script 언어를이용한거래에대해서서명검증을하는데이스크립트언어는간단하고스택기반의실행언어로서 push와 pop의두동작으로제한되며, 무한 loop가실행되지않는다. 이를튜링불완전성 (turing incompleteness) 이라고한다. 3. 전파단계거래의검증 P2P 네트워크에서비트코인의경우, 노드를처음설정하면다음과같은절차에의해서다른노드와연계를통해서트랜잭션을전달하게된다. 전세계의전체노드로전달되는데몇초정도가소요되는것으로파악되고있다 [9]. 1 DNSSEED( 예 ; seed.bitcoin.sipa.be, bitseed.xf2.org 등 6개 ) 옵션을사용하여노드검색 2 또는 SEEDNODE 옵션을사용하여최초연결을위해한개의노드와연결 3 두번째부터는그때까지네트워크에서인식한노드목록을각비트코인클라이언트의내부 DB에보존해놓기때문에그정보를바탕으로다른노드와의연결을시도거래가생성되면 P2P 네트워크 ( 비트코인네트워크 ) 를통해서이웃노드 ( 전자지갑, 채굴등을하는컴퓨터 ) 로전달되며결국전체의비트코인네트워크로전달된다. 이웃노드로순식간에브로드캐스팅하기전에송신된거래에대해 거래검증리스트 에따라검증을먼저하고그거래가적정하면지속적으로비트코인네트워크로전달하고, 적정하지않으면해당노드에서그거래를버린다. 비트코인네트워크의각노드는독립적으로검증리스트 (checklist) 에따라모든트랜잭션을검증한후이웃노드로브로드캐스팅하고올바르지않은트랜잭션은제거한다 [9]. 1 트랜잭션의구문 (syntax) 과데이터구조 (data structure) 의확인 2 트랜잭션의입력값은반드시 UTXO(Unspent Transaction Output) 인것을확인 3 트랜잭션의크기값이 100bytes보다는크고, 1Mbytes보다작은지를확인 4 트랜잭션의입력값이출력값보다작은지를확인등 정보통신기술진흥센터 7
주간기술동향 2018. 6. 20. 이와같이트랜잭션의검증리스트를통해서검증에성공하면그노드는원래노드에게 success message 를보내고, 검증에실패하면 rejection message 를보낸다. 4. 블록의구성및생성 각노드의메모리상에존재하는임시풀 (Temporary Pool) 에검증된트랜잭션들이쌓이게되며, 그트랜잭션중에서채굴 (Mining) 을위해후보블록 (Candidate Block) 을구성하게된다. [ 그림 5] 는임시풀에서후보블록을생성하여새로탄생된블록이블록체인으로연결되는모습을보여준다 [9]. < 자료 > Mastering Bitcoin 2nd Edition, O Reillly [ 그림 5] 임시풀에서후보블록을구성하는절차 [ 그림 6] 은후보블록에서채굴을끝내고블록체인에연결된새로운블록을보여준다. < 자료 > http://www.righto.com/2014/02/bitcoin-mining-hard-way-algorithms.html [ 그림 6] 실제블록체인에연결된새로운블록 8 www.iitp.kr
기획시리즈 블록체인 [ 표 2] 블록의헤더 구분크기 (bytes) 설명 version 4 블록버전숫자 Previous block hash 32 Merkle hash root 32 이전블록헤더를 sha256 해시함수를이용하여 2 번해싱한해시값 -sha256(sha256( )) 현재블록에포함된거래정보의거래해시를 2 진트리형태로구성할때트리의루트에위치하는해시값 Timestamp 4 블록의생성시간, 1970년 1월 1일이후의초단위시간 Bits 4 블록의작업증명알고리즘에대한난이도목표 Nonce 4 특정목표값보다낮은값을구하기위한카운터 < 자료 > https://bitcoin.org/en/developer-reference#block-chain 비트코인의블록은헤더 (header) 와바디 (body) 로구성되며, 헤더는 [ 표 2] 와같이 80바이트로구성되어있고, 전체블록의크기는 1Mbytes로제한되어있다. 비트코인노드는전송받은트랜잭션에대해검증을한후그트랜잭션을임시풀에계속추가한다. 트랜잭션풀에있는거래중에서후보블록을생성한다. 그다음에트랜잭션확정을위해채굴되기를기다리게된다. 5. 채굴및보상 이메일스팸과 DOS(Denial of Services) 공격을제한하기위해서사용하는작업증명 (PoW) 의하나인해시캐시 (Hashcash) 는 1997년 Adam Back이고안한것으로채굴을설명하기전에그개념을설명하고자한다. 해시캐시는이메일을보낼때보내는사람이메일을보내기위해노력을했다는증거 ( 작업의증명 (PoW)) 를함께보내서내메일은스팸메일이아니라고알리는방법이다. 해시캐시를써서스팸메일필터링을할때는이메일헤더에 [ 그림 7] 과같이 X-Hashcash라는항목을 1개추가해서함께보낸다. X-Hashcash 헤더항목의값전체를해시의 X값이라고가정하면, 이것이해시함수의입력인 X값이며메일을받는사람은이값을입력으로하여미리해시함수를계산할수있다. 계산결과로나온 Y값에서앞쪽 20비트가모두 0이면 송신자가이메일을보내기위해자신의시간을써서이값을계산했으니, 스팸메일이아니다라는것을인정하는것이다. 여기서중요한점은수신자가검증할때송신자의메일주소를확인하는등부수적인정보를이용하지않고판단할수있다는것이다. 즉, 해시캐시로검증하는단계에서는단지 정보통신기술진흥센터 9
주간기술동향 2018. 6. 20. < 자료 > http://www.hashcash.org [ 그림 7] Hashcash를이용한 PoW 구현헤더항목 X-Hashcash의값만보고판단한다. 이값을해시함수로계산해서앞의 20자리가 0으로시작한다는것만확인하면검증이끝나는데이것이해시캐시의핵심이다. 사토시가논문으로기술한것중가장중요한발명은분산합의에의한분산메카니즘이다. 합의알고리즘이란 P2P 네트워크와같이정보도달에시간차가있는네트워크에서참가자가수행한결과에대한합의를얻기위한알고리즘이다. 비트코인은 PoW라는합의알고리즘을사용하여처음으로 P2P 네트워크를통해누구나참가가능한전자화폐시스템을실현했다 [3]. 채굴의시작은노드에서후보블록을생성하는것으로, 비트코인의경우는약 10분마다새로운블록이생성되도록프로그램되어있으며, [ 그림 8] 과같이후보블록에서는헤더에 version, pre_block hash, merkle_hash root, timestamps, bits 값은결정되어있고, 변경이가능한 < 자료 > 아카하네요시하루, 양현옮김, 블록체인구조와이론, 위키북스 p.120 재구성 [ 그림 8] 해시를이용한비트코인의채굴 (Mining) 프로세스 10 www.iitp.kr
기획시리즈 블록체인 < 자료 > https://bitcoin.org/en/developer-reference#target-nbits [ 그림 9] Bits값을이용한난이도목표값난수 nonce(number used once) 값을초기 0부터시작해서 1씩증가하면서 sha256 해시함수를 2회적용하여블록헤더의해시값이특정숫자보다작은값을찾으면채굴이성공된다. 여기서특정숫자는 [ 그림 9] 와같이난이도목표 (difficulty target) 로서 Bits값으로프로그램에서특정목표값을자동제시한다. 특정노드 ( 채굴자 ) 가목표값보다같거나작은해시값을찾는데성공하면, 새로운 블록 을생성하게된다. 이채굴자는블록을생성하고이를 P2P 네트워크에전파하면서동시에블록생성보상인 비트코인 과해당블록바디의 Coinbase TX에포함된 이체수수료 (Transaction Fee) 를받게된다. 비트코인지급 이라는경제적보상이채굴자들이해싱작업에참여하는동기가된다. 채굴행위는근본적으로끊임없는해싱작업이며, 많은컴퓨팅파워를가지고있을수록빠른속도의해싱이가능하다. 즉, 컴퓨팅파워를많이투입할수록다른경쟁자들보다비트코인을많이받게되는구조이다. 블록생성확률 ( 목표값경쟁승리확률 ) 과네트워크상에서자신이차지하는컴퓨팅파워비율은정확히비례하며, 만일누군가가전체투입컴퓨팅파워중 30% 를점유하고있다면, 수학적으로블록생성확률도정확히 30% 에수렴한다 [4]. 6. 블록검증 비트코인의합의알고리즘중하나로서비트코인네트워크에연결된각노드는각각새로생성된블록에대해서독립적으로검증한다. 새로생성된블록데이터구조가적정한지, 블록헤더해시값이난이도목표값보다작은지, 블록사이즈가시스템에서정의된 1Mbytes 보다작은지등을검증한다. 블록이정당 (valid) 하면해당노드는 success message 를블록을생성한노드 (originator) 에게보내고, 블록이정당하지않으면 reject message 를생성한노드에게 정보통신기술진흥센터 11
주간기술동향 2018. 6. 20. < 자료 > 블록체인구조와이론, p.120 재구성 [ 그림 10] 비트코인노드의새로생성된블록검증과정 전송한다. 노드의절반이상 (51%) 의합의가있어야블록에대한승인, 즉트랜잭션이승인되 며이후전체노드의절반이상을점유하지않는이상트랜잭션에대한위 변조는불가능하다. 7. 블록체인생성 새로운블록을전달받은각노드들은검증을완료한후이블록을기존의블록체인에연결한다. 블록체인이분산된데이터구조이기때문에채굴된블록이동시에서로다른노드에서탄생될수있으며, 수천, 수만개의노드들에서는먼저전달받은새로운블록을기존의블록체인에연결하는 블록체인분기 (Blockchain Forking) 라는현상이발생될수있다. Normal Occasional Forking( 분기 ) 이발생할경우작업증명을많이수행한, 즉난이도 (difficulty) 가높은블록이우선시된다. Rare Extended Forking의경우는시간이지남에따라서가장긴블록체인이살아남게되고, 짧은블록체인은스스로사라진다. 실제로개발자들이 블록체인분기 가발생한후 6개블록을추가로연장된것을지켜본후에가장긴블록을확정한사례가있다. 분기한블록의채굴대가인 비트코인 과 이체수수료 는무효가된다. < 자료 > https://blog-archive.bitgo.com/the-challenges-of-block-chain-indexing [ 그림 11] 가장긴체인을선택하는블록체인 12 www.iitp.kr
기획시리즈 블록체인 8. 난이도조정 비트코인은평균적으로약 10분간격으로새로운블록이채굴되도록설계되어있다. 2016 개의블록이추가생성되는 2주간의간격으로 1개의블록이생성되는주기를계산하여평균약 10분보다길면난이도를어렵게하고, 10분간격보다짧으면난이도를쉽게하여 1개의새로운블록이생성되는주기를약 10분간격이되도록조정한다. 이를난이도조정 (Difficulty Retarget) 이라고한다. 다음은새로운난이도조정을위한식이다 [9]. New difficulty = Old Difficulty (Actual Time of Last 2016 Blocks/20160 minutes) [ 그림 9] 와같이결론적으로목표값은앞의비트 0의개수가많으면난이도가높게될것이다. III. 비트코인블록체인의진화 1. 오프체인 비트코인결제는블록체인에트랜잭션을기록할때마다수수료가발생한다. 소액결제를반복할경우에는수수료가계속해서발생한다. 이문제를해결하는방법으로마이크로페이먼트채널 (micropayment channel) 이라는기술이있다. 이것은트랜잭션일부를블록체인의외부 ( 오프체인, off-chain) 에서처리하는기술이다. 첫트랜잭션과마지막트랜잭션만블록체인에기록하고, 중간트랜잭션은기록을생략하여수수료가들지않도록하는것이다 [4]. 현재비트코인블록체인은블록의크기가 1Mbytes로제한되어있다. 그렇기때문에블록에 < 자료 > 블록체인, 국일증권경제연구소, 2018, p.225. [ 그림 12] 오프체인을이용한비트코인소액결재방식 정보통신기술진흥센터 13
주간기술동향 2018. 6. 20. 담기는거래량의상한이낮은점이문제가되고있다. 마이크로페이먼트채널을이용하면블 록체인외부에서대량의트랜잭션을고속으로처리할수있는만큼이기술은블록체인의 용량문제를해결할수있는하나의수단으로주목받고있다. 2. 세그윗 블록크기에상한 (1MB) 이정해져있는비트코인은송금지연문제가발생한적이있다. 이러한용량문제를해결하기위해세그윗 (SegWit) 을비롯한다양한대책이고안되었지만합의가원만하게진행되지않아문제해결에는이르지못했다. 그러나일부채굴자가주도하여용량문제를해결할수있는비트코인인 Bitcoin Unlimited 를만들자고주장했고, 여기에 hash power( 채굴능력 ) 가강한채굴자들이찬성하여하드포크 (hard fork) 가실현되었다. 2017년 8월에비트코인하드포크가실현되어비트코인캐시 (Bitcoin Cash) 라는암호화폐가생겨났고, 그이후로도 10월에는비트코인골드 (Bitcoin gold), 11월에는비트코인다이아몬드 (Bitcoin diamond) 가분리되었다. 비트코인의블록크기가 1MB로한정되어서발생하는문제를해결하는한가지방법으로세그윗 (SegWit, Segregated Witness) 이나왔다. 세그윗이란비트코인블록에담긴서명과공개키등을분리해서다른영역에수납하는방법이다. 원래스크립트시그 (scriptsig: 거래서명과공개키등으로구성된프로그램 ) 에포함된데이터를분리해서별도의영역에수납하는데, 이별도의데이터영역을위트니스 (witness) 라고부른다. 세그윗은프로그램의내용을 스크립트시그속에서명이포함되어야한다 에서 위트니스속에서명이포함되어야한다 로바꾼다. 이것은블록크기의실질적확장을의미한다. 블록에서데이터를뺀만큼블록의용량이늘어나기때문이다. 참고로라이트닝네트워크 (Lightning Network) 를만들어확장성문제를해결하자는논의도있다. 라이트닝네트워크는정규블록체인상에서가아니라별도의장소 ( 오프체인 ) 에서비트코인거래를실시하는방법이다 [1]. IV. 결론및시사점 1992 년 Timothy Bresnahan, Manuel Trajtenberg 교수의연구를살펴보면, 어떤기술이범용기 술이되기위한 3 가지조건, 즉확산성, 개선성, 혁신촉진성을만족하게되면사회전반의 혁신을유발하고광범위한사회경제적파급력을갖는기술이된다고주장하고있다. 최근블 14 www.iitp.kr
기획시리즈 블록체인 록체인기술이이조건들을만족하여 4차산업혁명의범용기술이될것으로기대되고있다 [7]. 2018년 6월현재비트코인외에알트코인이약 1,640여개 [10] 가거래되고있는데, 각코인들은서로다른특징을가지고있으며, 이들은이더리움처럼각각의플랫폼역할을추구하려고탄생하였다. DAO(Distributed Autonomous Organization) 는 분산형자율조직 을뜻한다 [12]. 기계가스스로동작하는 IoT의세상이온다면, 그속의세상은암호화폐즉코인으로거래가일어나야되고, 상호규칙, 프로토콜, 계약에따라중앙관리자없이자율적으로통치되는시스템이가까운시대에도래될것이다. 마지막으로, 암호화폐인비트코인을의미하는블록체인 1.0과스마트컨트랙트개념을실현시킨이더리움의블록체인 2.0을지나, 현재금융 /IoT/ 운수 / 물류 / 의료등에적용되는블록체인 3.0이활발하게적용되고있다. 따라서, IT 전문가들이지속적으로새로운아이디어를구현한다면블록체인과 AI가접목되는블록체인 X.0 즉 Blockchain Sigularity 시대 [13] 가멀지않아도래할것으로전망된다. [ 참고문헌 ] [1] 가상화폐비즈니스연구회, 60분만에아는블록체인, 국일증권경제연구소, 2018. 3. 27, pp.222-225, pp.234-235. [2] 김석원, 블로체인펼쳐보기, 비제이퍼블릭, 2017. 11, pp.55-65, pp.203-213. [3] 김태형, 블록체인개념및분야별활용사례분석, 전기저널, 487, 2017. 7, pp.58-65. [4] 비트코인블록체인개론, https://blog.naver.com/onalja/ [5] 사토시나카모토, Bitcoin: A peer-to-peer Electronic cash system, 2008. 10. 31. [6] 아카하네요시하루, 양현옮김, 블록체인구조와이론, 위키북스 pp.105. [7] 오세현, 김종승, 블록체인노믹스, 한국경제신문, 2017. 11. 15. [8] 히로시유키, Information security and cryptography, infinity books, 2017. 5. 24, pp.559-560. [9] Andreas M.Antonopoulos, Mastering Bitcoin, Second Edition, O Reilly, 2017. 6, pp.57-66, pp.176-180, pp.196-200. [10] www.coinmarketcap.com [11] L. Lamport, R. Shostak, M. Pease, The Byzantine Generals Problem, ACM Transactions on Programming Language and Systems, v.4 n.3, July 1982, pp.382-401. [12] https://en.wikipedia.org/wiki/decentralized_autonomous_organization [13] Imran Bashir, Mastering Blockchain-Second Edition, Packt, March 2018, pp.27. 정보통신기술진흥센터 15