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

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

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

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

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

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

Microsoft Word - 08_01_블록체인.docx

PowerPoint 프레젠테이션

LTC 라이트코인명세서

chap 5: Trees

내지(교사용) 4-6부

OCW_C언어 기초

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

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

User interface design

POC Report

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

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

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

PowerPoint 프레젠테이션

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

13( ) INS17-01.hwp


Chapter ...

03_queue

쉽게 풀어쓴 C 프로그래밍

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

<B1E2C8B9BDC3B8AEC1EE2DB1E8BFF82DBCF6C1A42E687770>

말은 많은 Blockchain 2

1장 암호의 세계

Microsoft PowerPoint - chap05-제어문.pptx

<4D F736F F D204B42C1F6BDC4BAF1C5B8B9CE5F FBAF1C6AEC4DAC0CEC0C720C0CCC7D8BFCD20C0FCB8C12E646F63>

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

1장 암호의 세계

C++ Programming

Chapter 4. LISTS

레이아웃 1

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

<5BB0EDB3ADB5B55D B3E2B4EBBAF12DB0ED312D312DC1DFB0A32DC0B6C7D5B0FAC7D02D28312E BAF2B9F0B0FA20BFF8C0DAC0C720C7FCBCBA2D D3135B9AEC7D72E687770>

Microsoft PowerPoint - additional01.ppt [호환 모드]

PowerPoint 프레젠테이션

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

Microsoft PowerPoint - ºÐÆ÷ÃßÁ¤(ÀüÄ¡Çõ).ppt

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft Word - logic2005.doc

Windows 8에서 BioStar 1 설치하기

Microsoft Word - PLC제어응용-2차시.doc

System Recovery 사용자 매뉴얼

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

Visual Basic 반복문

메뉴얼41페이지-2

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

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

< FBEC8B3BBB9AE2E6169>

설계란 무엇인가?

JVM 메모리구조

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

Yggdrash White Paper Kr_ver 0.18

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft Word - FunctionCall

C++ Programming

본 강의에 들어가기 전

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

새로운 생태계

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

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

Microsoft PowerPoint - chap03-변수와데이터형.pptx

PowerPoint 프레젠테이션

6.24-9년 6월

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

PowerPoint 프레젠테이션

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

조사보고서 구조화금융관점에서본금융위기 분석및시사점

06_ÀÌÀçÈÆ¿Ü0926

목 차 Ⅰ. 조사개요 1 1. 조사배경및목적 1 2. 조사내용및방법 2 3. 조사기간 2 4. 조사자 2 5. 기대효과 2 Ⅱ. P2P 대출일반현황 3 1. P2P 대출의개념 3 2. P2P 대출의성장배경 7 3. P2P 대출의장점과위험 8 4. P2P 대출산업최근동향

슬라이드 1

숭실브로슈어 표지 [Converted]

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

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

PowerPoint Template

C# Programming Guide - Types

adfasdfasfdasfasfadf

0. 들어가기 전

외국인투자유치성과평가기준개발

2 노드

슬라이드 1

기본소득문답2

Chap 6: Graphs

SUMMITZ

- 목차 - 1. 개요 가. 스트라티스 (Stratis) 이란? 나. 주요스펙 1) 기본정보 2) 시장정보 2. 주요팀멤버및재단소개 3. Stratis 컨셉및특징 - 비트코인익명전송브리즈월렛 (w. 텀블빗 ) - 스트라티스블록체인서비스화 (BaaS) 4. 기술적특징 -

05 암호개론 (2)

설계란 무엇인가?

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

Microsoft Word - How to make a ZigBee Network_kr

204

종합물가정보 2016년 4월호

005- 4¿ùc03ÖÁ¾š

2009 April

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Transcription:

비트코인 : 개인간 (peer to peer) 전자화폐시스템 Satoshi Nakamoto satoshin@gmx.com www.bitcoin.org 번역 : Park HeeJin 요약. 순수한개인간 (peer to peer) 전자화폐시스템으로도금융기관의 개입없이직접개인대개인으로송금하는온라인지불이가능하다. 전자서명을통해이러한것이부분적으로가능한데, 이중지불을막기 위해여전히중앙기관이필요하다면주된이점이사라지게된다. 이논문에서개인간네트워크에서일어날수있는이중지불문제에대한해결책을제시하고자한다. 네트워크내에서이루어지는는 해싱 (hashing) 에의해타임스탬프가찍히게되고, 해시 (hash) 기반의 작업증명 (proof of work) 에의해생성되는연속된체인의일부로포함 되어, 이러한작업증명이다시진행되지않는한변하지않는기록으로남게된다. 최장길이의체인은단순히이체인이담고있는사건들 의시간순서에대한증명일뿐아니라, 가장큰 CPU 파워풀 (pool) 에 의해생성되었다는증거이기도하다. 과반수의 CPU 파워가선량한목적을가진네트워크의노드 (node) 로부터나온다면, 이노드들은네트워크공격자들을압도하며, 가장긴체인을생성할것이다. 네트워크자체로는최소한의구조가요구된다. 메시지들은네트워크상 P2P 의특성 순수한전자화폐시스템으로는뭔가한계가있다는것을얘기하고싶은것임. 그한계를이논문에서해결 들에대해시간상의순서를정한다는것 전자서명만으로는이중지불못막음 중앙개입없이개인대개인간를하는장점이사라짐 들들이블록내포함되어, 블록체인의일부가됨 비트코인에서블록생성권한은 CPU 파워경쟁에서발생 에서최대한의노력에의해브로드캐스트되고, 노드들은자유로이네 트워크를이탈할수있으며, 이탈해있는동안생성된가장긴체인을그사이발생한것들에대한증거로수용함으로써다시네트워크에합류할수있다. 1. 서론 인터넷기반상는, 보증된제삼자로서전자지불프로세스를수행하는금융기관에전적으로의존해왔다. 이시스템은대부분의에대해잘동작하고있지만, 신뢰기반모델 사용자들이주문취소를하면받아들여야 이기에안고있는약점이있다. 금융기관들이분쟁에대한중재에서자유로울수없기에, 완 한번가이루어지면취소불가능한 벽하게철회불가한라는것은실재하지않는다. 이러한중재비용은결국비용을 상승시켜서, 가능한실질적인최소금액을제한하여소액가일어나기힘들게 이미송금을했는데이를취소하려면, 송금받은사람에게서이를회수하고, 송금자에게다시금액을집어넣고등번거로워집니다. 하고, 철회불가한속성을가진까지철회가능하도록하려다보니더큰비용이발생 한다. 철회가능성때문에더많은신용을요구하게된다. 판매자는구매자에게구매에필요 잘알아보고선택해서취소하지말라는 를철회할까봐 한최소정보보다더많은정보를귀찮게요청하게되고경계하게된다. 어느정도사

기를감내할수밖에없다는것이현실이다. 이러한비용과의불확실성은실제사람들에의해물리적화폐가사용될때는회피될수있는사항이나, 디지털통신상에서가 일어날때는, 믿을수있는기관이개입되지않는한해결할방법이없다. 신뢰보다는암호학적인증명에기반을둔전자지불시스템이필요하다. 이시스템은의사가있는두당사가가신뢰기관의도움없이직접를수행하게한다. 계산의복 비가역척 : 역방향이불가능한 신뢰기반모델에서는제 3 의기관이필수라는얘기 주문에의해대금을송금하면, 철회되지않는것이보증되기에 잡성에기인한비가역적는, 판매자가사기당할위험성이없게해주고, 구매자를위해서 제 3 의기관에의해, 물건은목받고대금만지불되는문제해결 는이미널리사용되고있는에스크로방법이사용될수있다. 이논문에서우리는들 의시간순서에대한계산적증거를생성하는피어투피어기반의분산타임스탬프서버를써서이중지불문제를해결하는방법을제시한다. 이시스템은참여하고있는건전한노드들의 CPU 파워가공격자들의파워보다높은한안전하게동작한다. 2. 우리는전자코인을 디지털서명의체인 으로정의한다. 각각의전자코인소유자는, 이전 ( 以前 ) 의해시와받을이의공개키 (public key) 에대해디지털서명하고이서명값을코 인의끝에붙여서, 다른이에게코인을넘긴다. 받는이는서명에대한검증을통해해당체 인의소유권을확인할수있다. 보내는이의개인키로서명한것은, 보내는이의공개키로검증가능 소유자 1 의공개키 소유자 2 의공개키 소유자 3 의공개키 해시 소유자 0 의서명 소유자 1 의개인키 검증 서명 해시 소유자 1 의서명 소유자 2 의개인키 검증 서명 해시 소유자 2 의서명 소유자 3 의개인키 이과정상문제는, 대금을송금한소유자가해당코인을중복으로사용하지않았다는것을수금자 (= 받는이 ) 가확인할수없다는데있다. 이문제를해결하는일반적인방법은중앙의신뢰기관혹은조폐국 ( 造幣局 ) 을두고, 마다이중지불인지여부를확인하는것이다. 이중사용을못하도록코인을 1 회용으로만드는것. 가끝난후에해당코인이조폐국으로회수되어다시발행되게하고, 조폐국에서직접 발행된코인만이이중지불되지않는코인으로써신뢰성을갖게하는것이다. 이러한해결책의문제점은, 모든가조폐국을운영하는회사를거쳐가게되고, 전체통화체계의운명이 마치은행과유사한 이운영회사에달려있다는것이다. 결국, 먼젓번소유자가현재의이전에어떤에도서명하지않았음을, 수금자가

알게할방법이필요하다. 이를위해서는, 현재의가가장첫번째라는것만입증되면되고, 그이후에이중지불이시도되는지는상관없다. 의앞에다른가없었다는것을확인하는유일한방법은모든내역을인지하는방법밖에없다. 조폐국기반의모델에서는, 조폐국이모든에대해인지하면서어떤가가장처음발생한것이지판단했었다. 이러한것을신뢰기관을이용하지않고가능하게하려면, 들이공개되어야하고 [1], 에참여하는참가자들이, 그들이받은순서의단일이력에합의하는시스템이필요하다. 수금인들에게는때마다, 대다수의노드가 이가처음 라고합의한증거가필요하다. 3. 타임스탬프서버 우리가제안하는해결책은타임스탬프서버로부터시작된다. 타임스탬프서버는, 항목들로이루어진블록들에대한해시를취함으로써타임스탬핑을하고, 신문이나유즈넷포스트처럼 [2-5] 그해시들을널리배포하는작업을수행한다. 타임스탬프는그데이터들이그 시점에분명히해시값들의입력값으로존재했었다는것을보증해준다. 각타임스탬프는그 해시값안에이전타임스탬프를포함하고, 각각추가되는타임스탬프에의해강화되는구조 를가지는체인을형성한다. 아이템에대해해시계산후비교해봄으로써가능. 아이템에대해해시계산후비교해봄으로써가능. 해시 해시 블록 블록 항목 항목... 항목 항목... 4. 작업증명 피어투피어기반으로분산된타임스탬프서버를구축하기위해서는, 신문이나유즈넷포스트가아닌아담백 (Adam Back) 의해시캐시 [6] 와유사한작업증명 (PoW, Proof of Work) 시스템이필요하다. 작업증명은 sha256같은해시함수를사용해서, 연속된 0(zero) 값으로이루어지는비트열로시작되는해시값을찾는과정이포함된다. 이러한과정에걸리는평균작업량은요구되는 0 비트수에따라지수적으로증가하며, 반면에이에대한검증은한번의해시계산으로가능하다. 타임스탬프네트워크의작업증명은, 블록해시결과가요구되는연속된 0비트수를만족할때까지, 블록에포함되는 값을증가시키는과정을통해구현된다. 일단 CPU 연산에의해작업증명을만족하는값을찾은경우, 해당블록은고정된다. 만약해당블록을수정하려면다시작업증명을만족하는노력이수반되어야하고, 블록들이체인처럼연결되

이전블록의해시를입력으로해서, 그다음블록의해시가계산되기에. 어있기에, 수정한블록의다음블록들에대해서동일하게작업증명을해야한다. 블록 블록...... 이러한작업증명방법은, 다수결에의해결정되는시스템에서의대표성문제도해결한다. 만약 IP주소하나당한표로하는대표성을부여하는경우, 다수의 IP를보유할수있는한개인에의해시스템이장악될수있다. 작업증명은 CPU 한개에한표이다. 다수결에의한결과는, 가장많은작업증명노력이투여되어야만들어지는, 가장긴체인으로표현된다. 만약대다수의 CPU 파워가정직한노드들에의해사용된다면, 정직한체인이다른경쟁체인들을압도하면서가장빠르게성장할것이다. 공격자가예전블록을수정하기위해서는, 수정하려는그블록과그블록뒤에있는모든블록의작업증명을재작업해야만하고, 그런이후에다시정직한노드들의작업을추월해야만가능하다. 블록이하나씩더추가될때마다, 추격이늦은공격자가따라잡을확률은기하급수적으로낮아진다. 이부분은이논문의후반부에서보여줄것이다시간이흐름에따른하드웨어속도증가와노드들의참여도증가율을보상하기위해서, 작업증명의난이도는시간당평균블록생성수를목표로하는이동평균값에의해결정된다. 블록들이너무빨리생성되면, 난이도는증가된다. 5. 네트워크 네트워크의동작은다음과같은과정으로이루어진다 : 1) 새로운들은모든노드에브로드캐스트된다. 2) 각노드는새로운들을모아블록에넣는다. 3) 각노드는해당블록에대한작업증명을찾는과정을수행한다. 4) 어떤노드가작업증명을찾았다면, 해당블록을모든노드에게브로드캐스트한다. 5) 노드들은, 브로드캐스트받은블록에대해서, 블록내모든가유효하고중복사용되지않았을때, 해당블록을승인한다. 6) 노드들은, 그들이해당블록을승인했다는것을, 해당블록의해시를이용해서그다음블록생성을시작함으로써암묵적으로나타낸다. 노드들은항상최장길이체인을옳은것으로간주하며, 그체인을대상으로확장하는작업 을수행한다. 만약두개의노드가, 다음블록 (next block) 에대해서서로다른버전을동시 에전파한경우, 노드들은둘중하나를먼저받을것이다. 이경우, 먼저받은블록을기준

으로작업을수행하지만, 다른갈래의체인이더길어질경우를대비하여다른갈래도저장해둔다. 이후에체인의어느한쪽갈래가더길게되는작업증명이발견되면두갈래의체인은더는동등하지않게되고, 짧은쪽갈래를기준으로작업하던노드들은더긴다른갈래로작업을전환한다. 새로운에대한브로드캐스트가, 반드시모든노드에게이루어질필요는없다. 가능한많은노드들에게전파되기만하면, 그들은머지않아블록안에포함될것이다. 블록브로드캐스트또한누락메시지에대한내성이있다. 만약한노드가특정블록을못받았다하더라고, 그다음블록을받았을때블록누락을인식해서누락블록을요청해서받는다. 6. 인센티브 관례상, 블록에포함된중첫번째는, 해당블록생성자에게새로운코인이발행돼서주어지는, 특별한로이루어진다. 이렇게함으로써, 네트워크를지탱하고있는노드들에게인센티브를줄수있고또한, 코인을발행하는중앙기관없이도신규코인을발행해서유통될수있게된다. 지속해서일정한양의신규코인을발행하는것은, 금을유통할수있게광부들이자원을소비하는것과유사하다. 이경우에는 CPU 동작과전력이소비된다. 인센티브는수수료에의해서도발생한다. 내역에서출금 (out) 되는값이입금 (in) 되는값보다작다면, 그차액은수수료가되며, 해당를포함하는블록생성인센티브에더해진다. 코인유통량이어느수준에이르면, 인센티브는수수료에의해서만이루 어지며, 인플레이션으로부터완전히자유롭게된다. 새로운코인이발행되지않기에, 신규코인발행에의한코인가치하락 (= 인플레이션 ) 이발생하지않음 인센티브는노드들의정직한참여를유도하는데도도움이된다. 만약욕심많은공격자가, 모든정직한노드들의 CPU 파워보다더많은파워를가지게되었다면그는이파워를이용해서, 자신이송금했던를조작하여사취 ( 詐取 ) 하거나혹은, ( 블록생성경쟁에서이겨 ) 새로운코인을발급받을지를선택하게될것이다. 여기서그는, 시스템을붕괴시키고또한그가보유한부의유효성이사라지는것보다는, 시스템의규칙을따르면서그규칙에따라다른누구보다도더많은신규코인을받는것이, 그자신에게더이득이라는것을알게될것이다. 7. 디스크공간회수 코인에대한가장최근가충분한수의블록에묻히면, 디스크공간을절약하기위해, 그이전에발생했던들은삭제해도된다. 이미계산된블록해시값이훼손되지않으면서이러한것이가능하게하도록, 들의해시값으로머클트리 (Merkle Tree) 를구성하고 [7][2][5], 블록의해시에는머클트리의최상부루트 (root) 만포함되게한다. 이렇게함으로써오래된블록의경우는, 트리의일부가지를쳐낼수있기에크기가작아질수있다. 자 식노드의해시들은저장될필요가없다. * A->B, B->C 가있을때, B->C 가블록 5 에있었고, 현재블록 15 정도라면, A->B 는폐기할수있다는얘기 * 머클트리의특성상루트에대해서만검증하면되기에하위해시는저장불필요

블록 블록헤더 ( 블록해시 ) 블록 블록헤더 ( 블록해시 ) 루트해시 루트해시 해시 01 해시 23 해시 01 해시 23 해시 0 해시 1 해시 2 해시 3 해시 2 해시 3 0 1 2 3 들의해시로이루어진머클트리 3 블록에서 0-2 에대해가지치기수행 데이터가없이블록헤더단독으로는크기가 80바이트이다. 만약블록이매 10분마다생성한다고가정하면, 80바이트 x 6 x 24 x 365 = 4.2MB 정도의데이터가매년생성된다. 2008년기준으로했을때일반적인컴퓨터의메모리 (RAM) 가 2GB 정도이고, 무어의법칙 * 반도체집접회로의성능이 18 개월마다 2 배씩늘어난다는이론 (Moore s Law) 에따른다면매년 1.2G 정도씩커질것이기에, 블록헤더가메모리에로드되어 야한다고가정하더라도문제될것은없을것이다. 8. 간소화된지불검증 전체네트워크노드를사용하지않고도지불에대한검증이가능하다. 사용자가가장긴작업증명체인의헤더블록에대한복사본을가지고있기만하면된다. 사용자는해당체인이 가장길다고확신될때까지네트워크노트에질의를보내그복사본을얻을수있고, 그거 래에대한타임스탬핑이되어있는블록과연결시키면서머클트리의가지를얻을수있다. * 다음블록의해시를, 해당를포함한블록의해시를가지고계산해본다는얘기 * 아래그림에서겨래 3 이위쪽으로올라가면서머클루트까지가는과정참조 이를통해에대한직접검증은할수없으나, 체인상에연결해봄으로써, 네트워크노드 가그를받아들였고, 해당블록다음에다른블록들이추가되어이어지고있다는사실로부터, 네트워크가그를승인했다는것을확인할수있다.

최장작업증명체인 블록헤더 블록헤더 블록헤더 머클루트 머클루트 머클루트 해시 01 해시 23 3 에대한머클트리가지 해시 2 해시 3 3 이러한검증방식은네트워크가정직한노드들에의해통제되는경우에는신뢰할수있지만, 공격자에의한파워가더큰경우에는더취약하다. 네트워크노드들은스스로들을검 증할수있는반면간소화된방법은, 공격자들이네트워크를계속과점하고있으면서만들어내는조작된에의해농락당할수있다. 이를막는한가지전략은, 네트워크노드들이잘못된블록을발견했을경고를보내고, 이경고를받은사용자의소프트웨어는전체블 록과경고된를다운로드받아불일치를확인하게하는것이다. 빈번하게를받아 야하는사업의경우에는, 보다독립적인보안성과빠른검증을위해서, 자체노드를운영하 는것을선호할것이다. * 공격자파워가크면일반 full node 도취약하지만, 간편노드는더취약하나는얘기 * 간편노드의소프트웨어가이렇게하라는것 * full node 를운영하는게좋다는. 9. 금액의결합과분할 코인들을개별로처리할수도있겠으나그런경우, 송금되는모든단위별로를분리해야하기에현실적이지않다. 금액에대해쪼개고합치는것이가능하게하도록, 는복수의입금과출금으로구성된다. 일반적으로입금은, 이전로부터받은큰금액의단일입금이거나, 소액으로이루어진여러입금값들로구성되고, 출금은최대 2개의출금값으로 구성된다. 출금값중하나는상대방에게주는지불이고, 만약입력값대비잔액이발생한다 면, 송금자자신에게되돌리는출금이발생한다. * 잔액 = 입금 ( 상대발에게지불하는금액 ) * 만약 ( 입금 > 출금 ) 이면, 그차액은수수료가되어서, 이를 블록화하는노드에게돌아간다. 입금 출금 입금...... 한가여러들과연관되고, 그들은더많은들과연관되는, 마치부채꼴

모양의의존관계가생기게되지만, 이는문제가되지않는다. 이력에대한완전히독립 된사본을추출할필요가전혀없다. * 마지막에서의출금만의미있기때문이다. 즉, 입금값을가지고, 새로운출금이 생성 되는개념이기에, 앞부분의입금에연결된출금값을거슬러가면서, 계산할필요가없다. 10. 프라이버시 전통적인뱅킹모델에서는, 관련된당사자와신뢰할수있는제3자에게만정보접근을제한함으로써, 개인정보보호가가능하도록하고있다. 그러나, 이방법은를모두공개해야하는한사용될수없다. 대신, 개인에대한공개키를익명화함으로써정보에대한추적을막아서, 개인의프라이버시를보호할수있다. 공개된를통해서, 누군가가또다른누군가에게얼마만큼의금액을송금했다는것은알수있으나, 그에연결된누군가에 * ticker tape: 예전에증권소에서텔레그렘을통해, 주식가격을찍어보내던테이프 대한정보는없다. 이것은마치증권소에서공개되는테이프 (tape) 에의한정보공개와 비슷한수준으로, 개별주식에대한시각과규모는공개되지만, 그에누가관여되어있는지는공개되지않는것과유사하다. 전통적인프라이버시모델 신원정보 신뢰되는 제 3 자 당사자 일반인 새로운프라이버시모델 신원정보일반인 * key pair: 개인키 (public key) + 공개키 (public key) 추가적인안전장치로, 마다새로운키쌍이생성되어사용되고, 이때그키쌍이동일한 * 새로운개인키 / 공개키를생성하고, 그공개키로부터새로운주소를유도해서사용하라는것 소유자와연결되어있다는것이유지된다. 그러나, 복수의입금값을갖은에서, 그입금 * 하나의에있는입금값들은, 동일한주소를출급대상주소로해서만들어진복수개으이다른에서온것이기에 들이동일한소유자에게연결되었다는정보노출은피할수없다. 만약그키에대한소유 자가노출된경우, 연결정보를통해동일한소유자의다른정보들이노출될위험이있다. 11. 계산 공격자가정직한체인보다더빨리대체체인을만들어내는경우를고려해보자. 만일이런 시도가가능하더라도, 아무것도없던것에서코인을새로만들어내거나, 공격자가전혀소 유한적도없는코인을얻을수있다거나하는식의, 시스템에대한무단수정이된다는것 은아니다. 노드들이이러한유효하지않은를결제로받아들이지않으며, 정직한노드 들은이러한를담은블록을절대받아들이지않는다. 공격자는자신의에서, 그가 * 이중지불시도 최근에지출한돈에대한회수만을시도해볼수있을뿐이다. 정직한체인과공격자체인의경주는이항임의보행 (Bionomial Random Walk) 성격을 띤다. 성공이벤트는정직한체인을 +1 증가시키고, 실패이벤트는공격자체인을증가시켜 서정직한체인과의갭을 1 로줄이는것이다. * 모든이의개인키를알아낸다는것을얘기하는것은아님. 해시경쟁의우위를통해, 블록생성이빠른것뿐임 * 랜덤한확률값을가지고양쪽방향으로 1 씩증가하는. * 블록체인에서 체인 개념은, 이중지불 을막는게주목적. 는기존비대칭키에의한서명 / 검증에의해서유효성보장

공격자가주어진열세를따라잡을확률은도박꾼의파산 (Gambler s Ruin) 문제와유사한 다. 도박꾼이, 적자인상태에서무제한의자금을가지고, 손익분기점에도달하기위해무제 한의시도를한다고가정해보자. 우리는도박꾼이손익분기점에도달할확률즉, 공격자가 정직한체인을따라잡을확률을다음과같이계산할수있다. 정직한노드가다음블록을찾을확률 공격자가다음블록을찾을확률 공격자가 블록뒤에서부터따라잡을확률 * 유한한초기자산을가지고일련의공평한도박을하는도박꾼은거의확실하게자산이 0 이되어파산하게된다는정리 if if p > q 인경우, 공격자가정직한체인을따라잡을확률은, 공격자가따라잡아야할블록수가 많을수록지수적으로감소한다. 공격자에게주어진조건상, 만일그가초기에운좋게앞으로 치고나가지못한다면, 그의기회는그가뒤처질수록보이지않을만큼작아질것이다. 이제, 새로운에대해수금인이, 그의내용을송금인이수정할수없다고믿으 려면, 얼마나기다려야하는지를고려해보자. 송금자는공격자라고가정하고, 공격자는수금 인이금액을받았다고인지하도록하고, 얼마의시간이흐른뒤, 지불했던금액을다시자신 에게회수하려한다고가정하자. 이런일이발생할경우, 해당수금자는경고를받겠지만, 이미늦어버린상황이되길공격자는바란다. 수금인은새로운키쌍을생성하고, 송금인의서명직전에공개키가송금인에게보내지 도록한다. 이렇게함으로써, 송금인이미리에대한블록생성을시작해서블록생성에 성공한후를진행하는것을막을수있다. 일단가생성되어보내지면, 부정직한 송금자는그를조작하고, 조작된를포함한또다른블록생성을비밀리에수행한 다. 수금인은, 해당가포함된블록이생성되고, 또한 z 개의블록이그뒷부분에추가연 결되어생성되기까지기다린다. 그는공격자가얼마만큼의작업을진행했는지정확히모르 지만, 정직한블록들이평균적으로기대되는블록생성시간을거쳐생성된다고가정하면, 공 격자의잠재적진척도는푸아송 (Poisson) 분포를따를것이고그기댓값은아래와같이될 것이다. * p>q 이기에 q/p < 1. 따라서 z 가커질수록 (q/p) z 는지수적으로작아짐 * 단위시간안에어떤사건이몇번발생할것인지를표현하는확률분포 * 송금인이미리를만들고, 그를포함한블록을충분한시간을두고만들지못하게하겠다는것. 그럴려면, 수금인공개키를미리주지않아야함 * 정직한노드들에의해생성되는블록체인과다른블록을만든다는것 공격자가현재의블록까지따라잡을확률을구하기위해서는, 그가만들어낼수있는진척 도에대한푸아송밀도와, 그시점에서따라잡을수있는확률값을곱하면된다. if if

분포의무한급수를더하지않기위해, 식을정리하면... 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; } 실행결과를보면, 확률값이 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. 결론 이논문에서우리는신용에기반을두지않는전자시스템을제안했다. 소유권을강력히관리할수있으나, 이중지불문제는해결하지못하는, 전자서명을이용하는일반적인화폐구조로부터이야기를시작했다. 이중지불문제를해결하기위해서작업증명을사용하는개인간 (peer to peer) 네트워크를제안했다. 그네트워크에서는에대한공개된이력을저장하게되는데, 한번저장되면, 네트워크를구성하는정직한노드들이대다수의 CPU 파워를가지는한, 공격자들이조작하는것이계산적으로불가능하게되는특성을가지도록했다. 네트워크는구조화되지않은단순구조이기에견고하다. 노드들은최소한의조정을통해한꺼번에동작한다. 메시지가어떤특정위치에전달돼야하는것이아니라, 최선을기반으 * peer to peer 이기에, 전달된메시지를가까운노드들에게최선을다해배포하기만하면됨 로전달되기만하면되기때문에, 노드들의신원이인식될필요도없다. 노드들은자유로이 네트워크를떠났다가재합류할수있으며, 재합류할때는작업증명체인을그동안발생했던에대한증명으로받아들이면된다. 노드들은그들의 CPU 파워를갖고투표를한다. 유효한블록에대해서는그블록을확장하는작업을수행함으로써찬성을표시하고, 유효하지않은블록에대해서는그블록에대한작업을수행하지않음으로써거부를나타낸다. 이러한합의메커니즘과함께어떤규칙과인센티브가시행될수있다. References [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. 9