2. 거래우리는전자화폐를디지털서명의연속으로정의한다. 각암호키소유자들은그전까지의거래내역에다음소유자의공개키를덧붙인뒤에자신의비밀키로암호화하는디지털서명을하고넘긴다. 돈을받는사람은서명소유자들의체인과, 서명들을검증할수있다. 문제의과정은돈을받는사람은소유자들중한명이이중지불을하지않았는

Similar documents
기를감내할수밖에없다는것이현실이다. 이러한비용과의불확실성은실제사람들에의해물리적화폐가사용될때는회피될수있는사항이나, 디지털통신상에서가 일어날때는, 믿을수있는기관이개입되지않는한해결할방법이없다. 신뢰보다는암호학적인증명에기반을둔전자지불시스템이필요하다. 이시스템은의사가있는두당사가가

2. 거래 우리는디지털서명의사슬로써전자적화폐 (electronic coin) 을정의했다. 각소유자는화폐를송금할때먼젓번거래내역및다음소유자공개키의해시값에전자적으로서명을하고이정보를이화폐의끝에첨가한다. 수금자 (payee) 는소유권 (ownership) 의사슬을검증하기위해해당

비트코인 : 개인대개인전자화폐시스템 Satoshi Nakamoto Translated in Korean from bitcoin.org/bitcoin.pdf by Mincheol Im 초록. 순수한개인대개인버전전

2. 전송 본연구에서전자적코인 (electronic coin) 은디지털서명의체인으로정의된다. 각소유자는앞선전송 (transaction) 및다음소유자의공개키 (public key) 에대한해시에전자서명을추가하고이를코인말단에첨부하여전송한다. 코인을받는측에서는소유권이전을확인하

참고 : 더블링크드리스트 노드는데이터와포인터를가지고포인터가다음노드의데이터부분을참조하면서 연결되는자료구조이며, 데이터검색시포인터로연결된노드를검색하여값을찾음 < 더블링크드리스트연결구조 > 구분인덱스 ( 데이터베이스 ) 더블링크드리스트 장점 단점 < 인덱스및더블링크드리스트방

User interface design

LTC 라이트코인명세서

Microsoft Word - 08_01_블록체인.docx

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

비잔틴 노드에 의한 네트워크 분기 시도와, 네트워크 정지 시도를 막기 위하여 네트 워크의 모든 노드들에 2번에 거쳐 합의 데이터를 전송한다. Tendermint와 같은 선행 연구들은 PBFT를 이용하여 비트코인으로 대표되는 작업증명 알고리즘을 사용하는 블록체인 시스템의

13( ) INS17-01.hwp

PowerPoint 프레젠테이션

POC Report

PowerPoint Template

공정한합의알고리즘 : deb 합의알고리즘 (A fair consensus algorithm : deb consensus algorithm) 목차 1. 개요 2. 합의알고리즘의공정성 3. deb 합의알고리즘 4. 공정한노드의역할및신뢰성검증 5. 성능 6. deb 합의알고


#유한표지F

SUMMITZ

<4D F736F F D204B42C1F6BDC4BAF1C5B8B9CE5F FBAF1C6AEC4DAC0CEC0C720C0CCC7D8BFCD20C0FCB8C12E646F63>

블록체인기반의기부시스템개발. 서론 2017 년에실시한통계청기부설문조사에따르면연 도별기부참여율은꾸준히감소 (2011 년 36.4% 2017 년 26.7%) 하고있다. 기부를하지않은이유로는첫번 째로경제적여유가없고, 두번째로기부에관심이없 어서세번째로기부단체를신뢰할수없어서등이

<B1E2C8B9BDC3B8AEC1EE2DB1E8BFF82DBCF6C1A42E687770>

Microsoft PowerPoint 자동설치시스템검증-V05-Baul.pptx

PowerPoint 프레젠테이션

1장 암호의 세계

1 전세계가주목하는블록체인 세계경제포럼 (WEF, 다보스포럼 ) 은 2016 년떠오르는 10 대기술중하나로 블록체인 (Block Chain) 선정 세계경제포럼은블록체인기술을 세계를바꿀기술 로평가 년까지전세계은행의 80% 가블록체인을도입할것으로예상

비트코인 : 개인간전자화폐시스템 사토시나카모토 초록. 순개인과개인간의전자화폐는한집단에서다른곳으로금융기관을거치지않고직접온라인지불을가능하게할것이다. 디지털서명기술이일부해결해주지만, 믿을수있는제 3자가이중지불을방지해


< FBEC8B3BBB9AE2E6169>

1. 블록체인이란 블록체인은말그대로블록단위의데이터를체인형태로연결해서보관하는형태로저장하는 형태를말한다, 중앙화된서버가없이분산화된 P2P 기반의네트워크에서각참여자 ( 노드 ) 들이 저장하는것에가장큰특징이있다. 현재컴퓨터시스템에서가장대중적인서비스형태는서버-클라이언트모델이다.

Implement a business platform based on blockchain blockchain기반 비즈니스 플랫폼 구현을 위한 White Paper (요약본) -1- Qcity

년겨울호규제동향지 코인의총발행량이 2,100 만개에이르면신규발행은종료된다. 비트코인의거래를위해서는비트코인지갑 (Bitcoin wallet), 블록체인 (Block chain), 공개암호 (Public keys), 개인암호 (Private keys), 디지

C++ Programming

open-api.md 2/14/2019 Deflow Open Api 1. 목록 (GET) /v1/order/list - 주문내역조회 (GET) /v1/order/complete/list - 거래내역조회 (POST) /v1/order/cancel - 주문취소 (GET)

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

Cryptography v3

오정훈 ( 고려대국제대학원교수 ) 최근의세계화와정보화의바람은초융합 (superfusion), 초연결 (hyperconnectivity), 초지능 (superintelligence) 을특징으로하는제4차산업혁명을이끌었고, 이는기존의산업혁명에

메뉴얼41페이지-2

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

게시판 스팸 실시간 차단 시스템

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

01 들어가는말 블록체인에대한관심이뜨겁다. 국내외를막론하고각종금융기관및미디어의신년계획과전망에빠지지않고등장했다. 핀테크나빅데이터같은산업적개념이아닌, 언뜻난해해보이는기반기술을통칭하는용어가이토록빠르게확산되고회자되었던사례가있었나궁금할정도다. 다만커진관심만큼그것에대한오해내지는모

¼º¿øÁø Ãâ·Â-1

204

005- 4¿ùc03ÖÁ¾š

2009 April

종합물가정보 2016년 4월호

View Licenses and Services (customer)

최근 블로그

저작자표시 - 비영리 - 변경금지 2.0 대한민국 이용자는아래의조건을따르는경우에한하여자유롭게 이저작물을복제, 배포, 전송, 전시, 공연및방송할수있습니다. 다음과같은조건을따라야합니다 : 저작자표시. 귀하는원저작자를표시하여야합니다. 비영리. 귀하는이저작물을영리목적으로이용할

DDoS 공격, 게임계정유출해커, 비트코인등가상화폐노린다 - 13 년 10 월부터 DDoS, 원격제어, 게임계정유출하더니최근암호화폐채굴 - 개요지난 13 년 10 월,Microsoft 社의인터넷익스플로러취약점 (CVE ) 을통해유포되는악성코드가 DDoS

필수 요소이다 본 논문에서는 우선 현재 대표적으로 이용되고 있는 인터넷 금융거래시스템인 페이팔 비트코인 핀테크의 개념에 대하여 살펴본다 다음으로 향후 인터넷 금융거래 시스템이 나아갈 전망을 예측해 보고 이를 위한 연구 방향을 소개한다 생하는 등의 문점을 지적한 바 있다

Microsoft PowerPoint - chap06.ppt

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

슬라이드 1

1장 암호의 세계

= " (2014), `` ,'' .." " (2011), `` ,'' (.)"

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

C++ Programming

Microsoft PowerPoint - 강의2_재무

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

말은 많은 Blockchain 2

청구항 1. 소정데이터를저장하는비휘발성메모리 ; 상기비휘발성메모리를구비한휴대용장치의전원상태를체크하는전원상태체크부 ; 및 상기체크된전원상태를기초로상기비휘발성메모리에할당된물리블록을회수하는블록회수부를포함하는전원상태에따라비휘발성메모리의블록회수를수행하는장치. 청구항 2. 제 1

12권2호내지합침

중간고사

확률과통계6

<BACFC7D1B3F3BEF7B5BFC7E22D3133B1C733C8A BFEB2E687770>


a. BitCoin : A Peer to peer Electronic Cash System b. ( 비트코인 ) ( 개인대개인전자화폐시스템 ) c. 2008년에논문공개 d. 2009년비트코인발행시작 e. 배경 : 2008년은행신용도추락, 은행을업애자 -> 우리모두가은행

쉽게배우는알고리즘 6장. 해시테이블 테이블 Hash Table

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

05 암호개론 (2)

블록체인의시장규모 - 2 -

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

블록체인과 핀테크 비즈니스

년 2 월 1 1일에 모 스 크 바 에 서 서명된 북 태 평양 소하 성어족자 원보존협약 (이하 협약 이라 한다) 제8조 1항에는 북태평양소하성어류위원회 (이하 위원회 라 한다)를 설립한다고 규정되어 있다. 제8조 16항에는 위원회가 을 채택해야 한다고 규정

31. 을전개한식에서 의계수는? 를전개한식이 일 때, 의값은? 을전개했을때, 의계수와상수항의합을구하면? 을전개했을때, 의 계수는? 를전개했을때, 상수항을 구하여라. 37

KCC2011 우수발표논문 휴먼오피니언자동분류시스템구현을위한비결정오피니언형용사구문에대한연구 1) Study on Domain-dependent Keywords Co-occurring with the Adjectives of Non-deterministic Opinion

02 _ The 11th korea Test Conference The 11th korea Test Conference _

A Study on the efficient mutual authentication mechanism using the agent server

슬라이드 1

슬라이드 1

본 강의에 들어가기 전

..1,2,3,

<3235B0AD20BCF6BFADC0C720B1D8C7D120C2FC20B0C5C1FE20322E687770>

170

006- 5¿ùc03ÖÁ¾T300çÃâ

내지(교사용) 4-6부

1 경영학을 위한 수학 Final Exam 2015/12/12(토) 13:00-15:00 풀이과정을 모두 명시하시오. 정리를 사용할 경우 명시하시오. 1. (각 6점) 다음 적분을 구하시오 Z 1 4 Z 1 (x + 1) dx (a) 1 (x 1)4 dx 1 Solut

블록체인활용사례로알아보는금융권적용고려사항 한승우 * Ⅰ. 서론 23 Ⅱ. 블록체인개요 블록체인의개념 블록체인분류 26 Ⅲ. 블록체인활용사례 암호화화폐 주식거래 ( 장외시장 ) 전자공증 스마트계약 (Smar

쉽게 풀어쓴 C 프로그래밍

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

*전자과학02월b63뼉?P-1

Journal of Next-generation Convergence Information Services Technology 차세대컨버전스정보서비스기술논문지 Vol.8, No.1, March (2019), pp

TOMA Exchange whitepaper_1.9

09오충원(613~623)

PowerPoint Presentation

<4D F736F F F696E74202D20BAEDB7CFC3BCC0CEB9DFC7A55FC0CCB1BAC8F1>

Transcription:

비트코인 : 개인간전자화폐시스템 사토시나카모토 satoshin@gmx.com www.bitcoin.org 초록. 순개인과개인간의전자화폐는한집단에서다른곳으로금융기관을거치지않고직접온라인지불을가능하게할것이다. 디지털서명기술이일부해결해주지만, 믿을수있는제 3자가이중지불을방지해야한다면그주요한장점은사라지게된다. 우리는이논문에서 P2P 네트워크를이용한이중지불문제의해결방법을제안하고자한다. 계속진행되고있는암호화기반작업증명과정의연쇄상에서네트워크시간및거래를암호화하여기록을생성하게되면작업증명과정을되풀이하지않는한바꿀수없게된다. 가장긴체인은각사건순서를입증해주기도하며, 가장많은컴퓨팅파워가입증했다는뜻이기도하다. 노드들에의해제어되는컴퓨터전력의과반수가협력하여네트워크를공격하지않는한, 그들은가장긴체인을생성하며네트워크공격자를능가하게될것이다. 이러한네트워크는최소한의구조를필요로한다. 각노드들은자발적으로그네트워크를떠나거나다시합류할수있고, 어떤일이벌어졌는지에대한입증으로가장긴작업증명체인을받아들이는노드들의메시지가최대한공유된다. 1. 서론인터넷에서의상거래는거의금융기관을제 3자신용기관으로하는전자지불방식에전적으로의존하게되었다. 대부분의거래에시스템은충분히작동하고있지만, 여전히신용기반모델이라는내재적인약점을갖고있다. 완전히취소가능한거래는사실상불가능한데, 금융기관은거래상의분쟁을중재하는일을피할수없기때문이다. 이러한중재비용은결국거래수수료를올리고, 실질적인최소거래금액을제한하여소액거래의가능성을막는데다가, 회수가불가능한서비스에까지도번복가능한지불을하게만들어더많은비용을발생시킨다. 즉, 지불번복을위해더많은신용을요구하게된다. 상업자들은불필요한더많은정보를요구하여고객을귀찮게만들고경계하게된다. 일정한비율로가짜지불이되는것은불가피한현실이다. 이러한비용과지불의불확실성은사람이직접물리적으로화폐를지불하여피할수있으나, 신용기관없이통신상으로지불하는방법은존재하지않는다. 이러한문제는바로신용보다는암호화기술에기반한전자지불시스템을이용하여자발적인두거래자가제 3자인신용기관없이도직접적인거래를가능하게만든다. 전산적으로번복이불가능한송금은판매자를가짜지불로부터보호할수있으며, 구매자는일반에스크로방식을통해보호받을수있다. 이논문에서우리는거래들의시간순서를전산적으로입증하게만들도록하는 P2P 분산네트워크기반타임스탬프서버를이용하여이중지불문제를방지하는해법을제안하고자한다. 이시스템은악의적으로협력하는노드그룹보다정직한노드들이더많은컴퓨팅파워를총체적으로제어하는한안전하다. 1

2. 거래우리는전자화폐를디지털서명의연속으로정의한다. 각암호키소유자들은그전까지의거래내역에다음소유자의공개키를덧붙인뒤에자신의비밀키로암호화하는디지털서명을하고넘긴다. 돈을받는사람은서명소유자들의체인과, 서명들을검증할수있다. 문제의과정은돈을받는사람은소유자들중한명이이중지불을하지않았는지검증할수가없는상황에서발생한다. 공통적인해법은각거래가이중지불이되었는지신용해주는중앙기관을도입하는것이다. 각거래후에, 그화폐는다시새로운화폐로찍어내기위해중앙기관으로회수되어야하고, 이중지불이아니란걸믿을수있도록중앙기관에서만직접화폐를발행하여쓰도록한다. 이러한방법의문제는화폐시스템전체가바로은행같은중앙기관에모든거래내역이거쳐가도록하는방법에의존하게된다는것이다. 결국돈을받는사람이이전소유자가그전에도어떤거래에도서명을하지않았는지를확인할방법이필요하다. 그러려면가장먼저일어난거래내역을찾기만해도그이후에이중지불을시도했는지확인할필요가없게된다. 거래내역이하나라도비어있는지확인하는유일한방법은모든거래내역을살펴보는것이다. 바로찍어낸화폐를기반으로한모델에서는모든거래를확인하고어느것이먼저이뤄졌는지를결정하면된다. 신용기관을통하지않고도이런방법을가능하게하기위해서는, 모든거래가공개적으로알려져야하고 [1], 참여자들이시간순서에따라단일거래내역으로수용하는시스템이필요하다. 돈을받는사람은매거래시마다, 과반수이상의노드들이최초의거래라고인정해주는시간증명이필요하게된다. 3. 타임스탬프서버우리가제안하는해결방법은타임스탬프서버에서시작된다. 타임스탬프서버는시간내역이기록된항목들의블록해시를취합하고, 신문이나유즈넷포스트처럼그해시를널리발행하는역할을한다 [2~5]. 이러한타임스탬프내역은해시에포함될수있도록그시간에데이터가명백히존재했다는것을입증한다. 각타임스탬프내역은이전타임스탬프로부터받은해시내역을포함시킴으로써보강하는체인을형성한다. 2

4. 작업증명 P2P를기반으로하는분산네트워크타임스탬프서버를구현하기위해서는신문이나유즈넷포스트대신 Adam Back s Hashcash[6] 와비슷한작업증명시스템을이용할필요가있다. 작업증명에는 SHA- 256과같은알고리즘으로다수의 0비트들로시작되는암호화해시값을찾는과정이포함된다. 평균적으로이러한작업에드는시간은연속되는 0비트의요구개수에따라지수적으로증가하며, 암호화해시를한번수행하는것으로확인할수있다. 타임스탬프네트워크에서는작업증명의방법으로블록해시결과가 0비트들을갖도록하는해시값을찾을때까지블록에임시값 (nonce) 을증가시켜가는과정을구현한다. CPU가노력한결과가한번작업증명조건에도달하게되면, 그블록은다시과정을번복하지않는한고정된다. 그다음블록들이체인을형성함으로써, 하나의블록을변경하기위해서는그블록을포함한다음모든블록들에대해작업증명과정을다시수행해야하게된다. 작업증명은또한다수결에의한의사결정과정에서대표자를결정하는문제를해결한다. 다수가한 IP주소당한번의투표를할수있는시스템기반으로결정된다면, IP주소를많이확보하는방법으로누구나시스템을뒤엎어버릴수있다. 그러나작업증명은본질적으로한개의 CPU당한번의투표를하는구조이다. 다수의결정은가장긴체인을나타내며, 이는가장많은작업증명에노력이투입된것이된다. 컴퓨팅파워의과반수가정직한노드들에의해제어되고있다면, 정직한체인이가장빠르게늘어나, 경쟁체인을압도하게될것이다. ( 역자주 : 실제로는 Emin Gün Sirer, Ittay Eyal에의해전체컴퓨팅파워의과반수인 50% 이상이아니라 25% 이상만점유해도된다고밝혀졌는데, 현재전체순위 1~2위의마이닝풀집단은 25% 이상에달하고있음.) 과거의블록을수정하기위해서는공격자는수정할블록과그이후에이어진모든블록에대해작업증명과정을번복한다음에이어서다른정직한노드들이이루고있는체인보다더빠른속도로따라잡아추월해야한다. 느린공격자의추격가능성은블록들이이어서추가될수록지수적으로감소하는것에대해뒤에서언급하기로한다. 시간이흐름에따라하드웨어속도증가와노드들의참여도증가율을보상하기위해서, 작업증명의난이도는시간당평균블록생성수를기준으로하는이동평균을타깃으로결정한다. 블록이너무빠르게생성되면난이도는급증한다. 5. 네트워크 네트워크의동작은다음과같은과정으로이루어진다 : 1) 새로운거래내역이모든노드에알려진다. 2) 각노드들은새로운거래내역을블록에취합한다. 3) 각노드들은그블록에대한작업증명을찾는과정을수행한다. 4) 어떤노드가작업증명을성공적으로수행했을때, 모든노드에게그블록을전송한다. 5) 노드들은그블록이모든거래가이전에쓰이지않고유효한경우에만승인한다. 6) 노드들은자신이승인한블록의해시를이전해시로사용하여다음블록을생성하는과정을통해그블록이승인되었다는의사를나타낸다. 노드들은항상가장긴체인을옳은것으로간주하며그체인이계속확장하도록작업을수행한다. 3

만약두개의노드가서로다른버전의다음블록을동시에알리게될경우, 어떤노드들은둘중하나를먼저전달받게된다. 이러한경우각노드들은자신이먼저받은블록에대해작업을수행하지만, 체인의다른갈래도더길어질경우에대비하여저장해둔다. 체인의어느한쪽갈래가더길게생성되는작업증명이알려지면체인갈래의길이는더이상대등하지않게되고, 각노드들은체인이더긴갈래로작업을전환한다. 새로운거래내역알림이꼭모든노드에까지전달될필요는없으며, 많은노드에전달될수록더빨리블록에포함될것이다. 블록알림은또한누락되는경우에도취약하지않다. 만약한노드가블록을받지못했을경우, 다음블록을받고하나가빠졌음을알아차려다시요청해받을것이다. 6. 보상블록의첫번째거래내역은약속에의해최초블록생성자에게새로운돈을소유할수있게해주는특별한거래가된다. 이렇게하면돈을발행하는중앙기관없이도네트워크를구성하는모든노드들에게보상을지급하고, 유통될돈을처음에배분하는방법이된다. 지속적인일정량의새돈을추가하는건금을유통할수있게광부들이자원을쏟는것과유사하다. 이경우에는컴퓨팅자원과전력이소비된다. 보상에는또한거래수수료가될수도있다. 거래내역에서출력되는돈이입력되는돈보다적다면, 그차액은수수료처럼작용하여그거래내역을포함하는블록생성의보상가치로추가된다. 정해진총량의돈이유통된다음부터는, 보상은거래수수료만으로이뤄지며인플레이션으로부터완전히자유롭게된다. 이러한보상시스템은각노드들이정직하게참여를유지할수있도록한다. 욕심을낸공격자가다른정직한전체노드들보다더많은컴퓨팅파워를만들어낼수있다면, 그는아마도다른사람들로부터지불을철회하여돈을사취하거나새로운돈을생성하려해야할것이다. 하지만그런식으로다른사람들이엮이지않고시스템을약화시켜자신의부를축적하는이기적인방법보다는약속대로정직하게시스템에참여하는것이더이득이라는걸알게될것이다. 7. 저장공간재확보최근거래내역에있던돈이충분히많은블록에의해묻히게되면, 지나간거래내역은저장공간확보를위해버려져도된다. 블록해시를다시헤집지않고도이를수월하게하기위해서는, 거래내역은머클트리 (Merkle Tree) 구조로해시가되며 [7][2][5], 머클트리구조의루트부분만블록해시에포함되어야한다. 오래된블록은트리구조에서가지를쳐냄으로써더작아지게되며, 하위해시는저장할필요가없게된다. 4

거래내역이없는블록헤더는약 80바이트정도이다. 매 10분마다블록이생성된다고가정할경우, 80바이트 * 6 * 24 * 365 = 4.2MB가매년소요된다. 2008년기준으로시중에판매되고있는, 2GB 메모리가장착된컴퓨터시스템과, 매년 1.2GB가증가할거라예측한무어의법칙에의하면, 블록헤더가메모리를점유하고있어야하더라도문제가되지않는다. ( 역자주 : 무어의법칙은본문과달리 18개월에두배가된다는예측이다. 즉, 매년약 1.59배로증가 ) 8. 지불입증간소화굳이전체네트워크노드를쓰지않더라도, 돈이지불된사실을입증하는것이가능하다. 사용자는가장긴작업증명체인의블록헤더의사본만갖고있으면, 자신이가장긴체인이라확인할때까지네트워크노드들에게요청하고, 그거래내역이기록된블록에연결된머클트리일부만받아오면된다. 그는스스로거래내역을확인할수는없고, 체인에연결되어네트워크노드가그것을승인했는지, 이후에도계속블록이추가로확증되어승인된지로알수있다. 이렇게정직한노드들에의해네트워크가제어되는한거래인증은신뢰할수있지만, 공격자에의해네트워크가압도당하면취약하다. 네트워크노드들은스스로거래내역을입증할수있지만, 단순히공격자에의해과점된네트워크로거래를조작하고유지함으로써무력화될수있다. 이러한방법을보호하는전략으로는사용자의소프트웨어에서블록전체를다운로드받고모순임이확증된유효하지않은블록을발견했을때네트워크노드들이경고알림을받는것이다. 잦은지불을받는사업자의경우에는아마도자체노드에서독립된보안체계와빠른인증방법을더원할것이다. 9. 금액의결합과분할돈을개별로관리하는것도가능하겠지만, 거래에서작은개별단위까지굳이나누어다루는것은거추장스럽다. 금액을나누고합칠수있도록거래내역은복수의입력과출력으로이뤄진다. 대개는큰금액의단일입력이거나, 소액모금을위한여러입력이거나, 한출력은지불다른출력은거스름돈같은두개의출력방법이될것이다. 5

이를팬아웃이라하며, 거래가여러거래들에기반하고각거래들이다수에의존하는경우더라도여 기서는문제가되지않는다. 거래기록의완전히독립된사본을추출할필요가없다. 10. 개인정보보호기존의은행모델은당사자들과제 3자신용기관에정보접근권한을제한하여개인정보보호가어느정도가능하도록했다. 모든거래를공개적으로알려야하는중요성은이러한것을불가능하게하지만, 공개키를익명으로소유하도록함으로써정보의흐름을차단하고개인정보가유지될수있다. 외부에서는누가다른누군가에게얼마를보냈단사실을볼수는있으나, 그거래당사자들의신분으로연결되지않으면알수가없다. 이는증시에서공개되는, 시간과거래목록만확인가능한거래체결정보공개수준과비슷하다. 추가적인안전장치의일환으로, 매번거래마다새로운공개키-비밀키쌍을사용하여공통의소유자에게연결되도록하면된다. 여러개의입력을갖는거래의경우에는여전히연결고리를남기는것이불가피하게도, 그입력들이동일소유자라는사실을공개된다. 소유자의암호키가공개되면그러한연관성이다른거래내역에서도동일인에의한것이라는게알려지게된다. 11. 계산공격자가다른체인의갈래를빠르게생성하려고시도하여정직한노드들의체인을앞질러가장긴체인을생성할시나리오를간주해보자. 이것이성공한다하더라도, 그렇게가짜금액을만들거나공격자소유였던적이없는돈을사취하더라도, 임의의시스템변화상태로는남겨두지않는다. 노드들은유효하지않은거래를지불로승인하지않을것이며, 정직한노드들은그러한거래내역을포함하는블록을절대받아들이지않을것이다. 공격자는오직최근에지불한돈을도로되찾기위해그의거래내역하나만바꾸려고시도할수있다. 정직한노드들의체인과공격자의체인간의경쟁은이항랜덤워크 (Binomial Random Walk) 로특정지을수있다. 정직한체인이하나의블록을성공적으로생성하는사건이일어나면 +1, 실패하여공격자의체인이블록을하나생성하는사건이일어나면 -1이라한다. 공격자가갖고있지도않은금액으로성공할확률은도박사의파산문제 (Gambler s Ruin problem) 와비슷하다. 무제한의신용을가진도박사가적자상태로시작하여거의무제한의게임을시도하여손익분기점에도달한다가정하자. 그가손익분기점에도달할확률, 즉공격자가정직한체인을따라잡을수있는가능성은다음과같이계산할수있다 [8]: p = 정직한노드가다음블록을찾을확률 q = 공격자의노드가다음블록을찾을확률 qz = z 개의다음블록들을빨리찾을확률 6

p > q 라는가정이주어진다면, 공격자가블록증가를따라잡을수있는확률은블록수에지수적으로감소하게된다. 공격자가먼저달려들어운이좋게성공하지못한다면, 가능성은뒤로갈수록점점희박해진다. 이번에는새로운거래에서돈을받는사람입장에서송금자가거래를바꾸지못할거라는것이충분히확증하려면얼마나기다려야하는지생각해보기로한다. 송금자가받는사람이일시적으로돈을받았다믿게만들고일정시간뒤에다시돈을자기자신에게되돌리게시도하려는공격자라가정하자. 받는사람은그러한일이벌어지면경고알림을받을것이고, 공격자는그게늦기를바랄것이다. 받는사람은새로운암호키쌍을생성하여송금자에게서명하기직전에공개키를넘긴다. 이러한방법은공격자가미리충분한시간전에가짜블록체인생성을준비해두어가짜거래를성립시키는것을방지한다. 송금이이뤄질때, 정직하지않은송금자는은밀히그의다른거래내역을포함하는체인을동시에생성을시작한다. 돈을받는사람은거래가블록에포함되고추가로 z개의추가블록들이연결될때까지기다린다. 그는공격자가얼마나많은작업을진척시켰는지정확히모르지만, 정직한블록들이매평균시간간격마다생성될것이고, 공격자의잠재적진행률은포아송분포의기대값인다음과같을것이다. 공격자가그순간에도여전히따라잡을수있는확률을계산하기위해, 포아송분포를공격자가그 시점에블록체인생성을따라잡을매진행률에각각곱하도록한다. 분포의무한급수를더하지않기위해식을정리하면 이를 C 언어코드로구현하면 #include <math.h> double AttackerSuccessProbability(double q, int z) { double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k <= z; k++) { double poisson = exp(-lambda); for (i = 1; i <= k; i++) poisson *= lambda / i; sum -= poisson * (1 - pow(q / p, z - k)); } return sum; } 7

결과를돌려보면 z 값에따라지수적으로확률이감소함을알수있다. q=0.1 z=0 P=1.0000000 z=1 P=0.2045873 z=2 P=0.0509779 z=3 P=0.0131722 z=4 P=0.0034552 z=5 P=0.0009137 z=6 P=0.0002428 z=7 P=0.0000647 z=8 P=0.0000173 z=9 P=0.0000046 z=10 P=0.0000012 q=0.3 z=0 P=1.0000000 z=5 P=0.1773523 z=10 P=0.0416605 z=15 P=0.0101008 z=20 P=0.0024804 z=25 P=0.0006132 z=30 P=0.0001522 z=35 P=0.0000379 z=40 P=0.0000095 z=45 P=0.0000024 z=50 p=0.0000006 P 가 0.1% 보다작을경우를풀면 P < 0.001 q=0.10 z=5 q=0.15 z=8 q=0.20 z=11 q=0.25 z=15 q=0.30 z=24 q=0.35 z=41 q=0.40 z=89 q=0.45 z=340 12. 결론지금까지신용에기반하지않은전자거래시스템을제안하였다. 디지털서명으로이뤄진일반적인화폐구조에서출발했다. 소유권을강력히제어하는방법을제공하지만이중지불을방지할방법이없이는완벽하지가않다. 이러한문제를해결하기위해, 과반수의컴퓨팅파워를정직한노드들이제어한다면계산상으로공격자가빠르게조작할수없이공개적으로거래를기록할수있도록작업증명을수행하는 P2P 네트워크를제안하였다. 네트워크는구조적이지않은단순함에서믿을수있다. 노드들은조직화할필요도없이협력하도록되어있다. 특정위치에메시지가전달되지않더라도최선을기반으로전달되기만하면되기때문에, 정체를확인할필요도없다. 노드들은자발적으로네트워크를떠났다가합류할수있으며, 작업증명체인을그동안에벌어졌던사실에대한증명으로받아들이기만하면된다. 컴퓨팅파워를통해의사결정을하고, 유효한블록에대해서만작업을수행함으로써유효하지않은블록들은거부하게됨으로써거래승인을표시하게된다. 이러한합의메커니즘을위해어떤규칙이나보상이성립될수있다. 8

참고문헌 [1] W. Dai, "b-money," http://www.weidai.com/bmoney.txt, 1998. [2] H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999. [3] S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology, vol 3, no 2, pages 99-111, 1991. [4] D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital time-stamping," In Sequences II: Methods in Communication, Security and Computer Science, pages 329-334, 1993. [5] S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. [6] A. Back, "Hashcash - a denial of service counter-measure," http://www.hashcash.org/papers/hashcash.pdf, 2002. [7] R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. [8] W. Feller, "An introduction to probability theory and its applications," 1957. 원문 S. Nakamoto, Bitcoin: A Peer-to-Peer Electronic Cash System, http://bitcoin.org/bitcoin.pdf, 2009. 번역 - 츄이스 9