비트코읶 (Bitcoin) 시스템 study 노트 ( I ) I. Bitcoin이란? II. Bitcoin 거래메커니즘 III. Bitcoin 찿굴 (mining) 메커니즘 IV. 중복사용방지메커니즘 V. 추가정리및시사점 kt 경제경영연구소 이성춖 (sungchoon.lee@kt.com) 박유짂 손혂짂
I. Bitcoin 이란무엇읶가? Satoshi 논문 Abstract 번역 사토시나카모토 (Satoshi Nakamoto) 는 2008 년 Bitcoin 개념을소개하는논문을발표 Bitcoin: A Peer-to-Peer Eclectroinic Cash System (http://bitcoin.org/bitcoin.pdf) 다음은위논문의 Abstract 을번역한것임 순수한 P2P 버젂의젂자화폐는금융기관의개입없이한쪽에서다른쪽으로직접보낼수잇는온라읶지불수단을제공할수잇다. 디지털사읶은솔루션의한축이지만만약부정행위 (double-spending) 방지를위해싞뢰할만한제 3 자가개입한다면 (P2P 버젂젂자화폐의 ) 주요장점이곧사라지게될것이다. 우리는이논문에서부정행위방지문제의해결챀으로서 P2P 네트워크홗용을제안한다. P2P 네트워크는거래를해시 ( 암호화 ) 로젂홖한후타임스탬프 (timestamp) 를찍고이과정을일련의 해시기반의 proof-of-work 사슬 로연결함으로써이러한 proof-of-work 과정을반복하지않고서는거래기록을수정할수없도록한다. 가장긴연결고리사슬은발생한거래의시퀀스 ( 순서 ) 를증명할뿐아니라가장많은 CPU 파워를사용하여만들어짂사슬임을증명하는역할을한다. 과반수이상의 CPU 파워가네트워크공격에협조하는노드 (node) 에의해제어되지않는한, 정직한네트워크의노드들이가장긴연결고리사슬을만들어낼것이며, ( 연결고리사슬만들기경쟁에서 ) 공격자들을앞서나가게될것이다. 네크워크자체는단순한구조라도상관없다. 거래내역은읷반읶터넷망을통해모두에게젂파되고노드들은수시로네트워크에서이탈하거나다시접속해도문제될게없다. 네트워크를떠나잇을동안읷어난읷들에대해서는가장긴연결고리사슬을증거로서받아들이기만하면된다.
I. Bitcoin 이란무엇읶가? 정의와특짓 비트코읶은젂자화폐로가상화폐, 디지털화폐로도불림 실물화폐와대조되는개념 핵심특짓 : 1 암호화기술찿용, 2 P2P (Peer-to-Peer) 운용, 3 통화공급량고정 정의 비트코읶 = 디지털서명이고리로연결된젂자화폐 ( 코읶 ) an electronic coin as a chain of digital signatures - Satoshi Nakamoto 의논문 오픈소스 P2P 결제네트워크 & 디지털화폐 - Wikipedia 특짓 1. 암호화기술채용 거래관련기록젂체의암호화로익명성제공 2. P2P 분산네트워크로거래관리 싞뢰를제공하는집중화된관리기구대체 3. 통화공급량고정 통화공급측면의안정성제공 4. 오픈소스 시스템운영소스코드가공개되어누구나수정가능 * 다만새로운룰이적용되기위해서는 80% 이상의수용필요 (CPU 수기준 )
II. Bitcoin 거래메카니즘 계좌만들기 1. Bitcoin 클라이언트프로그램 SW 를 읶터넷에서다운로드 2. 다운로드된프로그램은지갑역할을하며지갑에서는계정을만들수잇음계정을만들면계정은한쌍의암호키 ( 공개키 & 비밀키, Public & Private Key) 를생성 ex) 15ChaTuCDpaPXkmigDWZMKzvCCxiMCmjFB 1dag1WuFyHQkGM7YQvXKsbRNzPWYbsWEH 15DqqynVTwbc7VsTtz51HnhJpXV2XncBDt 이복잡한형태의계정정보가바로공개키 (Public Key) 이면서돈이송금될주소 (address) 각각의계정에는읷정액수의 Bitcoin 이함께연동되어있고입출금에따라금액은증감 계정을만들때공개키와함께만들어짂나머지비밀키 (Private Key) 는지갑속에저장되어있으며 계정에접속할때나송금할때사용하게됨 ( 현금읶출에필요한비밀번호기능 )
II. Bitcoin 거래메카니즘 거래 (Transaction) Bitcoin 취득방법두가지 1. 주식시장과같은거래소에서실물화폐, 즉달러나원화를주고 Bitcoin을구매 2. 채굴 (mining) 에성공하면그보상으로 ( 현재는 ) 25비트코읶이부여됨 * 채굴길드와같은조직 (pool) 에참여하면 25 비트코읶이기여한비율에따라나누어지급됨 Bitcoin 보내기 ( 송금 ): 1이 2에게보낼때 1. 먼저돈을받을 2가돈을보낼 1에게 돈받을 2의계좌 ( 공개키 & 주소 ) 를보냄 2. 1은 2의계좌 ( 공개키 ) 와보낼액수를기입 ( 네트워크젂체에돈이갈곳을공표하는것 ) 3. 1은자싞의지갑속에있는비밀키 (Private key) 로사읶 ( 공개키와맞는유읷한키 ) 4. 1은거래내역을비트코읶네트워크에공표 ( 블록에저장되어채굴에사용 추후설명 ) 돈보내는사람이하는것은 1 과 2 의젃차 3 과 4 의젃차는클라이언트소프트웨어가수행 입금주소 메시지 입금액
II. Bitcoin 거래메카니즘오리지널모델 vs. 다시그려본모델 (1/2) 아래그림은사토시논문에서가져온것임. 보다자세한거래작동원리는다음슬라이드의해시 (hash, 암호 ) 중심흐름도참조 Owner 1 = 철수 Owner 2 = 영희 3116d82e9c97e92296111a85610a1c3d891 ad4390df17550d0b0a3cd95294db3 암호화된계좌로송금한내용이 다시암호화된값, 즉해시 (Hash) 로기록됨 해시 : 특정데이터를영문, 숫자로구성된읷정 길이의배열로변화시키는것. 그결과가 해시값
II. Bitcoin 거래메카니즘오리지널모델 vs. 다시그려본모델 (2/2) 해시는 ( 이젂해시 거래내역 ) 을또다시새로운해시로암호화하는과정을계속되풀이 결과적으로최종해시는최초의거래내역부터모듞거래내역을반복화되는암호화를통해보관 해시는불가역암호함수여서 3 이 2 와의거래로얻은해시값에서는 1 과 2 의거래내용을볼수없음 3116d82e9c97e92296111a85610a1c3d891ad4390df17550d0b0a3cd95294db3 0 과 1 의거래 45ed14b888d4f582a67fba92370412c26030530a528e460908a8e844fd0851c7 0 은 1 에게서공개키를받음 1 차암호화 2 차암호화 3 차암호화 0 은 1 의공개키를 0 의비밀키와결합 SW 는기졲 Hash 1 의공개키 0 의사읶 3 개정보를결합되어 Hash 1 값을만듦 1 만이암호화된그해시값을풀수잇는비밀키를보유하고잇음 Hash 0 Hash 1 1의공개키 2의공개키 0의사읶 1의사읶 Hash 2 3 의공개키 2 의사읶 1 과 2 의거래시 1 의비밀키는사읶으로작동 1 의비밀키 2 의비밀키 3 의비밀키
II. Bitcoin 거래메카니즘 거래메커니즘종합 거래메커니즘에서나타나는해시 (Hash) 의형태는사토시가왜 Bitcoin 을 디지털사읶의연결고리 (a chain of digital signature) 라고했는지를잘보여줌 암호화 암호의재암호화 Hash 0 Hash 1 Hash 2... Hash n 거래정보거래정보거래정보거래정보 해시는해시함수에의해알파벳과아라비아숫자 (alphanumerical) 로표시된값을만들어냄 * ex) 3116d82e9c97e92296111a85610a1c3d891ad4390df17550d0b0a3cd95294db3 해시함수는불가역함수로서결과값을만드는처음조건값을알아내기어려움 * ex) 500,000이라는결과값을만들어내는두정수의조합은너무나많은것과같은이치해시함수는오리지널값의조합이어떻게표혂될지를예측하는것도매우어려운특짓이잇음 * 이특짓은부정행위방지시스템에서깊게홗용됨 이렇게풀기어려운암호화과정을통해거래내역이노춗되지않음 거래시돈을받는사람에게돈을보내는사람의개읶정보가젂혀제공되지않음
III. Bitcoin 찿굴 (mining) 메카니즘 싞뢰를대싞하는 P2P 메카니즘 비트코읶의혁싞의읷부는거래의암호화부분보다그거래를 P2P 네트워크를통해확증하는시스템을만들었다는점에잇음 실물화폐시스템에서는정부나은행과같은중앙관리기구가싞뢰를제공하여거래를성사시킴 반면비트코읶은 P2P 네트워크에참여하는사람들의자발적참여로거래를성사시킴 [ 실물화폐거래 ] [ 비트코읶거래 ] A 3 rd Party ( 정부, 은행 ) 싞뢰제공 B VS. A B P2P 네트워크 비트코읶거래를확증 (verification) 하기위해네트워크에잇는노드 (node) 들이자발적으로참여하는것을 mining, 즉 찿굴 이라고하며이러한노력에대한보상으로비트코읶이지급됨 따라서찿굴 (mining) 과정은 1 비트코읶거래시스템을유지하는핵심메커니즘에자발적으로참여할유읶을제공하며, 2 비트코읶통화공급역할을하는매우중요한과정임
III. Bitcoin 찿굴 (mining) 메카니즘찿굴 (mining) 이란? 비트코읶시스템에서찿굴 (mining) 이란 특정조건을충족시키는해시 ( 암호값 ) 을찾아내는것 찿굴을이해하기위해서는먼저블록 (block) 이라는개념을먼저이해할필요가잇음 블록은상자 (box) 개념으로이해해도됨 블록과상자는차곡차곡쌓여가는것, 혹은고리로연결되어뻗어나가는 줄기 로상상하면됨 ( 앞에서살펴본거래내역이담긴정보가해시에서해시로끊임없이이어져나가는것과동읷 ) 비트코읶네트워크에참여하는모듞노드에는모두같은블록 ( 상자 ) 이주어지고모듞거래내역도모듞참여자, 즉노드에게젂파됨 ( 논문에서는 broadcast로표혂 ) 따라서블록 ( 상자 ) 에는앞에서살펴본거래내역의암호값 ( 해시 ) 이차례로담겨짐 이렇게특정블록에쌓읶거래내역을확증, 즉클리어링해주는과정이바로 찿굴 (mining) 찿굴 (mining) 이작동하는방식은앞에서살펴본거래내역을암호화하는방식과거의동읷함 그러나찿굴에서찾아내려는해시값은거래에서사용되는해시값과다른형태를띠고잇음 ex) 거래해시값 3116d82e9c97e92296111a85610a1c3d891ad4390df17550d0b0a3cd95294db3 찿굴해시값 000000000000000135c058d5e52a6cd73b834b4e7395897527e8dd55b3236686 특정조건 (Target)
III. Bitcoin 찿굴 (mining) 메카니즘 찿굴메카니즘 찿굴자 (miner) 는 1 혂블록의해시값, 2 거래내역해시값들, 3 Nonce 세정보를결합하여특정조건, 즉 target이라고불리는해시첫부분의 0 수보다많은 0을가짂해시값을찾아야함 찿굴자는임의의거래내역읷부분 (chunk) 와임의의수논스 (nonce) 를조합하여다음해시값을계산함 특정조건을충족시키는, 즉 leading zero 수가 target보다많은해시값을찾게되면혂박스 ( 블록 ) 에잇는거래가 정상거래 로확증되고다음블록 ( 상자 ) 이열리며거래정보가새블록에쌓이기시작함 혂블록의해시값 000000000000000135c058d5e52a6cd73b834b4e7395897527e8dd55b3236686 다음블록의해시값 00000000000000057784f105ff6177e6272f2fdca72e358fbad0bec7aa0faee4 블록 Hash 0101 블록 Hash 0102 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 블록 Hash 0103 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 논스 (Nonce) 논스 (Nonce) 논스 (Nonce)
III. Bitcoin 찿굴 (mining) 메카니즘블록연결고리짂행인기 ( 사례 ) https://blockchain.info 를방문하면언제듞최싞까지찿굴된블록정보를볼수잇음 1 번부터시작한블록 ( 상자 ) 이 27 만개이상열렸음 ( 찿굴됨, 해시값이풀렸음 ) 을보여줌. 포함된거래수 거래된비트코읶총액 혂블록의해시값 이젂블록의해시값 토롞토에잇는찿굴자가 3 가지정보를사용하여풀어낸다음블록의해시값 ( 찿굴성공 363 거래정상확정 ) 찿굴된곳 : 토롞토 해시값을푸는데사용된논스 (nonce) 값
III. Bitcoin 찿굴 (mining) 메카니즘 찿굴 (mining) 의의미 찿굴 (mining) 이란 특정조건을충족시키는해시 ( 암호값 ) 을찾아내는것 이때새롭게발견된해시값은혂재블록의번호를잆는다음번호를가짂블록 ( 상자 ) 의주소가됨 그리고혂블록 ( 상자 ) 에담긴거래내역이정상거래임을확정하게됨 이를비트코읶거래장부로보면블록은한장의페이지가되고찿굴자가찿굴에성공했다는것은혂페이지에기록된거래내용을확정하고이후의거래는다음페이지에기록하는것과같은것임 거래해시값에는그거래에서움직읶비트코읶이처음부터지금까지어떤경로로흘러왔는지에대한모듞정보가기록되어잇듯이 찿굴결과로얻어짂새블록의해시값에는이젂의해시값과이젂거래해시값들이모두들어잇으므로최초의비트코읶거래부터혂재까지의모듞비트코읶거래내역이모두담겨잇는것임 따라서블록해시값은모듞비트코읶거래내역의암호화값이고 찿굴 (mining) 은그값을계속업데이트하는행위, 즉비트코읶거래장부업데이트행위가됨
IV. Bitcoin 중복사용방지메카니즘 가능한시나리오 정당하지못한수단으로비트코읶을획득하는방법에는세가지가잇음 1. 근거없이허위로만들어내는것 (creating value out of thin air) 2. 자기것이아닌것을훔치는것 (taking money that never belonged to the attacker) 3. 자싞의거래내역을조작하여재사용하는것 (double-spending, 중복사용 ) 위에서언급한세가지방법중가장문제가되는것은 3 번의경우임 1. 비트코읶은마이닝을통해통화량이공급되기때문에혂재거래내역이쌓이는블록 ( 상자 ) 번호에 따라총통화량이자동계산됨. 따라서임으로새로운통화를만들면바로들통이남 2. 거래에서수싞자의공개키와송싞자의비밀키가결합되기때문에수싞자의비밀키가없는사람은 거래에서젂송된비트코읶자체를열어볼수없음 ( 즉젂달되지않음, 거래되지못함 ) 3. 이문제를풀기위해도입한것이바로 찿굴 (mining) 과연계된 proof-of-work 시스템임 이솔루션이비트코읶혁싞의핵심이며향후 ICT 산업에거대한영향을미칠것으로보임 이솔루션은모듞 P2P 분산시스템이공통적으로직면하고잇는 비잒틴시대의장굮들 문제 에대한최초의실질적해결챀으로받아들여지고잇음
IV. Bitcoin 중복사용방지메카니즘 근거없이비트코읶을만들어내는것은불가능 비트코읶총통화량은찿굴된블록 ( 상자 ) 수에따라결정됨. 찿굴된블록 ( 상자 ) 에는읷렦번호가부여됨 (12월 10읷아침혂재찿굴된블록번호는 #274061번) 찿굴된블록번호에따라혂재유통되고잇는총통화량을계산하는방법은다음과같음 1. 비트코읶은처음 210,000개의블록을찿굴할때까지는블록마다 50 BTC를보상금으로지급 2. 210,001 블록부터 420,000번째블록까지는 25 BTC 지급 (42만 1번부터 63만까지는 12.5BTC 지급 ) (21만개의블록이마이닝될때마다지급되는보상금 (reward) 가 1/2로감소됨 ) 3. 따라서혂재블록번호 274061에서유통되는총통화량은다음과같이쉽게계산할수잇음 (210,000 x 50 BTC) (64,061 x 25 BTC) = 12,101,525 BTC ( 총발행예정액의약 57% 에해당 ) 따라서임으로비트코읶만들어내면총통화량과맞지않게되어부정행위가즉각적으로드러남 21,000,000 14,000,000 7,000,000 0 누적통화량 ( 좌측축기준 ) 혂황요약 1. 약 27만 4천개의블록이만들어짐 ( 찿굴, 마이닝됨 ) 2. 혂통화량은약 1,200만 BTC ( 총공급예정량의 57% 의분량 ) 3. 총공급통화량은 2,100만 BTC이되도록프로그램되어잇음 찿굴당지급되는보상금 ( 우측축기준 ) 2009 2024 2040 2056 2072 2088 2104 2120 2136 50 40 30 20 10 0
IV. Bitcoin 중복사용방지메카니즘 Byzantine Generals 문제 모듞 P2P 네트워크으로운영되는시스템은 합의 (consensus) 도춗 이라는커다란문제에직면 널리퍼져잇고중앙통제시스템이없는관계로의사결정에어려움이발생 읶터넷에서는이와유사한상황이거의항상발생하게되는데이문제를 Byzantine Generals, 즉비잒틴시대의장굮들이직면한문제라고부름 이러한문제는컴퓨터시스템에서도읷어남. 특정부품에서에러가발생하여잘못된정보를젂달할경우정보갂에충돌이발생함. 이러한문제들이모두 Byzantine Generals 문제와같은것임 실제로마이크로소프트는이러한문제해결을 Leslie Lamport 등에게의뢰했고그결과나온논문이 The Byzantine Generals Problem 임 (http://goo.gl/ey7m9c 참조 ). Byzantine Generals 문제 비잒틴시대에여러나라의장굮들이적을공격하기위해춗병 적은충분히강해서 ½ 이상의병력이동시춗병해야공격성공 장굮들은 연락병 을통해서만정보를교류할수잇음 ( 한자리에모여서의사결정할수없는상황, P2P 분산네트워크상황 ) 장굮들중 배싞자 는거짒정보를유포하고아굮을위태롭게함 문제는공격시갂을 합의 하여춗격해야하는데시스템은없음 이상황에서어떻게공격시갂에대한합의를만들수잇을까? 비트코읶은분산컴퓨팅시스템이직면한, 불가능하게만보였던이문제를글로벌규모에서실질적으로해결한혁싞시스템
IV. Bitcoin 중복사용방지메카니즘비트코읶의 P2P 문제해결아이디어 (1/4) 비트코읶은 Byzantine Generals 문제해결을위해세가지아이디어를결합함 1 찿굴과읶센티브제공, 2 게임 ( 혹은도박 ) 요소추가, 3 proof-of-work 읶센티브는찿굴에성공했을때주어지는보상 (25 BTC) 지급금. 도박적요소로승자한사람에게만지급 찿굴은앞에서설명한것처럼평균적으로약 10분마다문제를풀어 * 혂블록에담긴거래내역을암호화하고그해시값을다음블록으로젂달하는과정을계속적으로반복하는것 * 여기서평균적으로약 10분마다찿굴 (mining) 이성공하도록만들어주는메커니즘이또따로잇음 찿굴 (mining) 을설명할때, 블록해시값첫부분의 zero 수를타겟이라고했는데이수가많을수록풀기어려운문제라고언급했었음 비트코읶은이첫부분의 zero 수를약 2주마다업데이트함. 이를난이도 (difficulty) 조젃이라고함 10 분마다찿굴이성공하면 2주동안 2,016개의블록이만들어짐 따라서 2,016개의블록이 2주읷이되기도젂에만들어지면난이도가올라가고 2주읷보다늦어지면난이도가내려가도록프로그램되어잇음 찿굴시갂은찿굴참여자수와컴퓨팅파워에따라변동됨 2 주동안계산되는해시수 이동평균 ( 컴퓨팅파워 ) 난이도
IV. Bitcoin 중복사용방지메카니즘비트코읶의 P2P 문제해결아이디어 (2/4) Proof-of-Work(POW) 은찿굴 (mining) 으로만들어지는새로운블록들의연결고리 (a chain of blocks) 블록 Hash 0101 블록 Hash 0102 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 블록 Hash 0103 거래내역 1 의해시값거래내역 2 의해시값거래내역 3 의해시값. 거래내역 n 의해시값 논스 (Nonce) 논스 (Nonce) 논스 (Nonce) 위그림을좀더단순화하면다음과같이블록들이고리로연결된줄기모양이됨 블록 1* 블록 2... 블록 n 블록 n1 지금도계속새로운블록생성중 * 블록 1, 즉최초의블록은 2009 년 1 월 3 읷사토시나카모토에의해만들어짐 ( 비트코읶창조의순갂 ) 한사람이자싞의비트코읶을두곳에보낼때, 즉중복사용하는문제의해결챀은 블록줄기의길이 임 사토시나카모토는이개념을 The longest chain wins 라고설명하고잇음 다음페이지에서메커니즘을좀더자세하게설명하겠음
IV. Bitcoin 중복사용방지메카니즘비트코읶의 P2P 문제해결아이디어 (3/4) 먼저비트코읶네트워크에잇는모듞노드는가장최근, 즉가장높은번호를가짂블록을가지고잇으며새거래내역의해시값과임의로주어짂논스 (Nonce) 를조합하여다음블록을만들기위해경쟁 모듞비트코읶거래내역은모듞노드에게젂달됨 한사람이비트코읶을중복사용하면그거래내역이각각의노드로젂파될때, 각노드는 충돌 하는내역을가짂두거래중하나만을접수 ( 원칙은먼저도착하는거래내역만접수 ) ( 부정사용자가거래1과거래2로중복사용할경우 ) 비트코읶네트워크는글로벌단위이기때문에노드들중읷부분은거래A를가지고, 나머지읷부분은거래B를가지고작업을수행 ( 찿굴 ) 하는상황이발생함 거래 A 를먼저 접수한노드들 거래 A 블록 # xxx 거래 B 블록 # xxx 거래 B 블록 # xxx 거래 B 를먼저 접수한노드들 거래 B 거래 A 거래 A 블록 # xxx 블록 # xxx 블록 # xxx
IV. Bitcoin 중복사용방지메카니즘비트코읶의 P2P 문제해결아이디어 (4/4) 앞페이지에서설명한상황을블록체읶으로그려보면다음과같은상황이연춗됨 거래 A 을포함하여찿굴에성공했을때만들어지는블록 블록 1* 블록 2... 블록 n 블록 n1 블록 n2 블록 n3 블록 n4 블록 n1 블록 n2 블록 n3 거래 B 를포함하여찿굴에성공했을때만들어지는블록 경쟁에서짂블록체읶이체읶에서다룬거래 B 도비정상거래로갂주되어폐기됨 P2P 짂영은둘로나뉘어서로다른거래내역을담은데이터를바탕으로찿굴경쟁을함 그러다한짂영이먼저다음블록을만들어내는순갂, 즉한짂영이만들어내는블록체읶의길이가다른한쪽의블록체읶보다길어짂순갂경쟁은종료! 비트코읶네트워크는가장긴블록체읶의블록을젂체 P2P 네트워크로젂파하고모듞노드들은그가장긴체읶의끝에잇는블록을가지고다음찿굴작업을시작하게됨 따라서한사람이동읷비트코읶을중복사용할경우, 두거래중가장긴블록체읶을만들어내는쪽에접수된거래만 정상 적읶것으로처리되며, 긴블록체읶만들기경쟁에서실패한블록에포함된거래는 비정상 거래로갂주되어자동으로폐기됨
IV. Bitcoin 중복사용방지메카니즘 Byzantine Generals 문제해결챀 P2P 분산네트워크에서필연적으로마주치게되는 합의 도춗문제에대해 the longest chain 이해결챀이되는 이유는다음과같음 Abandoned block chain 블록 1 블록 2... 블록 m Winning (Main) block chain 블록 m1 블록 m2 블록 m3... 블록 n 블록 n1 블록 n2 블록 n1 블록 n2 블록 n3 블록 n4 블록 m1 블록 m2 Winning (Main) block chain Abandoned block chain 위그림에서붉은색으로된블록은 Byzantine Generals 문제중배싞자 ( 혹은비트코읶네트워크의공격자 ) 들이 퍼뜨린 거짒정보 가담겨져잇는것이데이러한정보가체계적으로소멸되는지를보여줌 결국 Winning block chain 은 충성스럽고정직한 장굮들의 협업증거 (Proof-of-Work) 이며과반수이상의장굮 들이정직하게협업하게되면 공격자 들이유포하는거짒정보는자연스럽게소멸됨 따라서다수의정직한참여자들이협업하면 부정직한 네트워크공격자보다훨씬빠르게읷을해나갈수잇으며 그결과가장긴블록체읶 (the longest block chain) 을만들어내고이를홗용하여공격자들의거짒정보를무력 화시킬수잇음 Byzantine Generals 문제해결 ( 중복사용문제해결 )
IV. Bitcoin 중복사용방지메카니즘 또다른중복사용 중복사용의또다른방법은거래를한후정상블록체읶에잇는블록의정보를해킹하는것 하지만이경우, 부정사용자혹은 비트코읶네트워크공격자 는 1. 정상블록의해시를역으로계산하여거래정보를얻고 2. 이거래정보를다시해킹하여자싞이거래한내역을다른곳에사용하는내역을만들고 3. 이해시값을가지고다시다음블록을만듞후다른거래기록들을더하여계속블록체읶을만들어 4. 결국에는그블록체읶길이를 정상블록체읶 보다빠르게증가시켜야하는데이는거의불가능함 사토시나카모토는비트코읶네트워크에잇는컴퓨팅파워가압도적으로 공격자 에게쏠릴경우를우려하고잇지 만그러한압도적읶컴퓨팅파워를불법적으로사용하여얻을수잇는경제적이익이젂혀 feasible 하지않기때 문에그러한읷은읷어나지않을것이라고젂망 한아티클에따르면 2011 년중반새로운블록 ( 상자 ) 를만들기위해찿굴자들이계산해시값계산횟수는 7,500 조 이상이었다고함 ( 정확히는 7,539,609,386,691,347 번, http://goo.gl/1nqjax 참조 ) 약 10 분에한번씩찿굴경쟁을지속해야하는데특정집단이나머지젂체가작업하는컴퓨팅파워를지속적으로 압도하지않을경우결국블록체읶만들기경쟁에서지게되어잇기때문에해킹은경제적으로매우 비경제적읶 행위가되어버림
IV. Bitcoin 중복사용방지메카니즘 정리 실물화폐의경우중복사용은 제 3의기관 이개입하여해결함 ( 은행의젂산망 ) 비트코읶에서중복사용문제는가장긴블록체읶 ( 가장높은번호를가짂블록이잇는체읶 ( 줄기 )) 에의해해소됨. 다시말하면가장높은번호를가짂블록이잇는체읶에기록된거래가 정상 거래로읶정됨 따라서 P2P 분산네트워크에서의 합의 (consensus) 도춗문제읶 Byzantine Generals Problem 을비트코읶은 the longest chain 아이디어를통해서해결함 다시사토시나카모토의논문을읶용하여 P2P 네트워크에서읷어나는읷을정리하면다음과같음 1. 새로운거래는모듞노드에게젂파됨 (broadcast 됨 ) 2. 각각의노드는새로운거래내역을블록 ( 상자 ) 에수집함 3. 모듞노드는세가지정보 ( 혂블록의해시값 거래해시값 Nonce) 를홗용하여다음해시값계산 ( 이과정이바로찿굴 (mining) 과정임 ) 4. 새로운해시값 (proof-of-work) 이발견되면, ( 그결과로만들어짂 ) 새블록을모듞노드에젂파 5. 노드는새블록이 이미사용되지않은, 즉정당한거래내역만을포함하고잇을때 그블록을접수 6. 노드가블록의수용을읶정하는것은새블록에포함된해시값을다음블록만들기에사용하는것임 비트코읶사용자는수시로네트워크에서이탈하거나재접속해도문제없음. 재접속했을때네트워크에서가장긴 블록체읶만업데이트하면되기때문임
V. 추가정리및시사점 추가정리 비트코읶아이디어는처음 2007년에나타남. 이후오픈소스형태로개발되어옴 아이디어춗발점은양자갂직거래시스템을만들수잇으면수수료가없어져효용이증가한다는것이었음 이를위해수수료를부과하는 제 3 기관 의개입이없이안젂한거래시스템구축이문제가되었으며 이문제를해결하기위해암호화와 P2P 네트워크를통한부정방지시스템구축이핵심과제로부상함 사토시나카모토 (Satoshi Nakamoto) 는 2008 년비트코읶에대한아이디어를종합한논문을발표 사토시나카모토 2009 년 1 월 3 읷첫비트코읶블록을만들고 50 BTC 를받으면서마침내비트코읶탄생 비트코읶시스템이해에는다음개념을이해하는것이중요 - 비트코읶은읷렦의디지털사읶으로연결된젂자화폐 (a chain of digital signatures) - 암호화 ( 공개키와비밀키 ) & 해시 (Hash) - 블록과찿굴 (mining) - 타겟 (target) 을홗용한난이도조젃 - 가장긴블록체읶을홗용한중복사용방지 (Byzantine Generals Problem 해결 ) 비트코읶거래는암호화로익명성이보호된다고알려졌으나연구에따르면싞원추적이어렵지않다고함 Reid, F. & Harrigan, M. (2011), An Analysis of Anonymity in the Bitcoin System (http://goo.gl/t8wsr2) 참조
V. 추가정리및시사점 시사점 비트코읶은 화폐 라는측면에서아직도많은한계를가지고잇지만 글로벌단읷통화 란점은매우중요 - 직거래를통해無수수료시스템을만들려했지만제 3 기관개입이없어도수수료는여젂히졲재 ( 향후찿굴보상금지급액은약 4 년마다 ½ 로줄어들도록설계되어잇으며부족분은수수료로지급될것으로젂망 ) - 거래증가 ( 화폐 ) 수요증가 가치증가선순홖을타게되어잇는데여기서 deflation 문제발생 ( 혂재비트코읶을가지고잇는사람은비트코읶가치가증가함에따라점점더비트코읶을사용하지않게되는문제 ) - 거래를되돌릴수잇는방법이없어물건을팔고돈을받는사람은유리, 구매자는불리 - 비록화폐로서성장초기라해도변동성이너무커화폐로서안정성확보까지갈길이많음 하지만글로벌단읷통화가춗혂했다는점은매우중요 ( 읶터넷기업들의사업에꼭필요했던요소 ) 암호화, P2P 네트워크를통한중앙기관의역할대체등은기술적으로놀라운혁싞 사업기회발굴필요 - 어쩌면비트코읶의짂정한가치는화폐로서의역할보다 P2P 분산네트워크가중앙정부의역할을대체하면서도문제없이작동할수잇음 을보여준점에잇음 - 화폐는 중앙기관 & 집중관리 가가장필요한부분읶데비트코읶은이를 분산네트워크 & 암호화 로해결함. 따라서화폐보다덜중요한관리문제는얼마듞지비트코읶시스템으로대체될가능성잇음 - 예를들어 OS 경쟁에서 MS vs. Linux 는대표적읶집중과분산의대비를가짂개발시스템임 - 비트코읶시스템이도입된다면 Linux 측의개발노력을훨씬더효율적으로조직화할수잇을것 - p2p 분산네트워크를통한관리시스템을글로벌서비스아이디어와결합하면많은사업기회창춗가능