Copyright SecurityPlus 2015 블록체인과안전한초연결사회 폴라리스최종훈
발표자프로필 성명 / 직급 최종훈 / 주임소속두리안정보기술 사진 수상이메일 cjhzz@naver.com 주요경력 영어학술동아리 E.T.W.TIME 51 대회장 육군정보통신학교 KJCCS/ATCIS 조교 두리안정보기술시스템 / 네트워크엔지니어 폴라리스 1 기맴버 저서 강의 S N S https://www.facebook.com/cjhzz
Agenda Ⅰ 나는왜블록체인발표를하는가? Ⅱ 비트코인속의블록체인 Ⅲ 블록체인과안전한초연결사회 2
나는왜블록체인발표를하는가? 사건의발단 발생일시 : 2015 년 11 월 4 일수요일새벽 12 시 07 분 블록체인과의첫만남 : 2015 년 11 월 4 일수요일새벽 12 시 28 분
나는왜블록체인발표를하는가? 한국경제 핀테크보안기술 블록체인 이뜬다 2015-11-03 이호기기자
나는왜블록체인발표를하는가? 한국경제 핀테크보안기술 블록체인 이뜬다 2015-11-03 이호기기자 이게무슨말이지?????? 흠 끌리는데???
나는왜블록체인발표를하는가? 발표결정 발표결정 : 2015 년 11 월 4 일수요일새벽 12 시 36 분 발표준비하며참고한책 5 권
나는왜블록체인발표를하는가? Youtube 에서블록체인을검색해보았다. 소개영상을보자.
나는왜블록체인발표를하는가? 비트코인은또뭐지? 홈페이지에접속해보았다.
나는왜블록체인발표를하는가? 소개영상부터한번보자.
나는왜블록체인발표를하는가? 설치해보지뭐.
나는왜블록체인발표를하는가? 설치가끝나지않는다
나는왜블록체인발표를하는가? 사토시나카모토의기념비적논문 2008 년 8 월 18 일, 비트코인도메인 (bitcoin.org) 이어노니머스스피치를통해등록됨 어노미너스스피치는익명이메일, 익명도메인등록서비스를제공 어노니머스스피치는현재비트코인을결제수단으로사용 2008 년 10 월 31 일저녁 6 시 10 분, 암호화기술 메일링리스트인메인 (Gmane) 에사토시나카모토 (Satoshi Nakamoto) 라는이름의이용자가직접올린문서한편이게시됨 제목 : 비토코인 P2P 전자화페시스템 본문 : 나는새로운전자화폐시스템과관련작업을해오고있다. 이것은제 3 기관의신용을필요로하지않는완전한 P2P 기반이다. 주요특징 : P2P 네트워크를통한이중지불방지, 조폐제도또는여타의중앙기관배제, 참여자익명성보장, 작업증명 (proof-of-work) 을통한새로운화폐발행, 새화폐생성을위한작업증명과정을통해전체네트워크가이중지불을방지하도록보장 2008 년 11 월 9 일, 오픈소스프로그램디렉터리인소스포지 (sourceforge.net) 에비트코인프로젝트가등록됨 2009 년 1 월 3 일그리니치표준시 18 시 15 분 05 초에최초의비트코인블록이생성됨 그는지금까지발행된전체비트코인의약 10% 정도를보유한것으로추정됨 물론그는거의한푼도쓰지않고있음.
나는왜블록체인발표를하는가? 누군가와끊임없이통신한다.
나는왜블록체인발표를하는가? 용량이지속적으로증가한다.
나는왜블록체인발표를하는가? 용량이지속적으로증가한다.
나는왜블록체인발표를하는가? 콘솔로지갑둘러보기 (help)
나는왜블록체인발표를하는가? 콘솔로지갑둘러보기 ( 지갑정보, 계좌번호, 잔고 )
나는왜블록체인발표를하는가? 콘솔로지갑둘러보기 ( 첫블록정보 )
나는왜블록체인발표를하는가? Blockchain.info 를참고해보자 ( 최초 50BTC 탄생 )
나는왜블록체인발표를하는가? 콘솔로지갑둘러보기 ( 두번째블록정보 )
비트코인속의블록체인 들어가기 거래가담겨있는블록이그이전블록과연결되어있는형태의정돈된목록이다. 비트코인코어클라이언트는구글의 LevelDB 데이터베이스를이용해블록체인의메타데이터를저장한다. 블록은각각 뒤로 연결되어있다. 즉이전블록을참조한다. 한블록위에다른블록이층층이쌓이며, 차곡차곡쌓이는외관때문에 높이 (height) 라는용어를사용해서첫블록으로부터의거리를표현한다. 가장최근에추가된블록은 꼭대기 (top) 나 끝 (tip) 이라는용어를사용한다. 각각의블록은블록헤더에서 SHA256 해쉬알고리즘을이용하여생성된해쉬값으로식별된다. 각블록과그부모블록을연결해주는해쉬의배열은최초블록이라고알려진첫생성블록까지이어지는체인을만든다. 블록은단하나의부모블록을가진다. 이전블록해쉬필드는블록헤더내에들어있으며, 이러한특성때문에현재블록의해쉬에영향을끼친다. 부모노드의정체성 (identity) 이변경되면자식블록자체의정체성도변경된다. 재계산을위해서는엄청난규모의계산을실행해야하기때문에긴체인으로연결된블록들은블록체인의누적된기록을변경시킬수없으며, 이러한특성덕분에비트코인의보안이유지된다.
비트코인속의블록체인 해시율 마이닝을위해매초당 481,180,174,000,000,000 번의해쉬값추출이이루어지며, 이러한계산이 1 년간지속되었을때, 총전력소비량은 100 terawatt-hour 가넘는양이며, 이는 2011 년도우리나라총전력사용량의 4 분의 1 에해당하는양이다.
비트코인속의블록체인 거래취소시도에대한확률 거래가취소될확률이 0.1% 이하가될확률 해커의마이닝파워가 10% 이면 5 step 만지나도 0.1% 대로진입하며, 20% 대라도 11 step 만지나도 0.1% 대로진입한다. 2011 년우리나라가사용했던전력량의 1/20 을해커가사용해도, 두시간정도까지유지되면그거래가취소될확률이 0.1% 로떨어진다.
비트코인속의블록체인 블록구조 블록은공개장부인블록체인에거래들을포함시키기위해한데합쳐놓은컨테이너데이터구조이다. 블록은메타데이터를담고있는헤더와그뒤에블록크기를결정하는거래목록이길게나열되어있다. 블록헤더의크기는 80바이트인반면거래의평균크기는최소 250바이트다. 평균적으로블록에는 500개이상의거래가담겨있다.
비트코인속의블록체인 블록구조
비트코인속의블록체인 블록당거래수
비트코인속의블록체인 블록헤더 블록헤더는블록메타데이터의 3가지집합으로구성되어있다. 첫째, 현재의블록이블록체인에있는이전블록과연결되었음을나타내는이전블록해쉬값이있다. 둘째, 난이도, 타임스탬프, 난스 (nonce) 이며채굴결쟁과연관된다. 셋째, 머클트리루트다. 머클트리루트는블록내에서거래전부를효율적으로요약하는데사용되는데이터구조다.
비트코인속의블록체인 블록의식별자 블록의해쉬는블록헤더를 SHA256 알고리즘통해 2 번해싱해서얻어진다. 블록해쉬는유일하고확실한방법으로해당블록을식별하며, 모든노드는블록헤더를간단히해싱함으로써독립적으로블록해쉬값을얻을수있다. 블록해쉬는실제로블록의데이터구조에포함되어있지않다. 해당블록을네트워크에서전송받으면서각노드에의해계산된다. 블록해쉬와는달리블록높이는특유의식별자는아니다. 두개이상의블록들이블록체인내에서동일한위치를점하기위해경쟁하면서동일한블록높이를가지게될수도있기때문이다. 비트코인네트워크로부터새로운블록이전송되면각각의노드는블록체인에서해당블록의위치 ( 높이 ) 를적극적으로확인한다. 또한블록의높이는빠른검색을위해색인작업을거친데이터베이스테이블내에메타데이터로저장될수도있다.
비트코인속의블록체인 블록체인에블록연결하기 비트코인풀노드는최초블록에서시작된블록체인의로컬복사본을가지고있다. 노드가네트워크로부터새로생성된블록들을전송받고나면, 수신된블록의유효성검사후에유효하다고검증되면기존의블록체인에블록들을연결시킨다. 각노드가새블록을검증하는리스트 해당블록의데이터구조는문법적으로유효하다 해당블록헤더해쉬는 ( 작업증명을시행하는 ) 목표난이도보다작다. 해당블록의타임스탬프는 ( 시간오류를고려해서 ) 향후 2 시간이내다. 해당블록의크기는허용할수있는한도내에있다. 제일첫거래 ( 첫거래에만적용 ) 는코인베이스생성거래다. 블록내에있는거래전부는거래체크리스트를이용해서유효함을판단한다. 각노드가거래를검증하는주요리스트 거래의구문 (syntax) 과데이터구조가정확해야한다. 입력값이나출력값목록이비어있지않다. 출력값금액과노드의총금액이 0 보다크고 2,100 만비트코인보다작은범위에있어야한다. 입력값금액이출력값총액보다작은경우해당거래는거절한다. 거래수수료가비어있는블록에들어가기에너무작을때는해당거래를거절한다. 풀이나메인브랜치에있는블록에짝을이루는거래가존재해야한다.
블록체인
비트코인속의블록체인 머클트리 비트코인블록체인내에있는블록각각은머클트리를이용해서해당블록에들어있는모든거래의요약본을가지고있다. 머클트리는이진해쉬트리 (binary hash tree) 라고도하는데, 규모가큰데이터집합의완전성을효율적으로요약하고검증하는데사용된는데이터구조이다. 머클트리는암호해쉬를담고있는이진트리이다. 머클트리는블록내에있는모든거래를요약하며, 특정거래가블록내부에포함되는지여부를검증하는데매우효율적인프로세스를제공한다. 머클루트라고부르는해쉬하나가남을때까지노드쌍을반복적으로해싱해서머클트리를만든다. 비트코인머클트리에사용되는암호해쉬알고리즘은 SHA256 이며, 두번적용되기때문에 더블 SHA256 이라고도한다.
비트코인속의블록체인 머클트리의효용성 머클트리는짝수개의리프노드가필요하다. 홀수개있는경우, 마지막거래해쉬를복사해서짝수개의거래를만든다. 이런방법으로 1000 건이상의거래를보유하더라도해당거래를요약해서 32 바이트크기에불과한머클루트한개를생성할수있다. 아래그림은단지 32 바이트크기의해시 4 개의길이 ( 총 128 바이트 ) 인머클경로 (merkle path) 를생성함으로써거래 K 가블록내에포함되어있다는사실을노드가입증할수있다는것을보여준다. 풀블록체인을보관하지않는단순지불검증 (SPV) 노드는머클경로를이용해서풀블록을다운로드받지않고서도거래를검증한다.
비트코인속의블록체인 분산화된합의 비트코인은중앙통제기관이없지만모든풀노드가권위있는기록이라고신뢰할수있는공개장부완본을보유하고있다. 블록체인은중앙통제기관에의해서생성되지않고네트워크내에있는모든노드에의해독립적으로수집된다. 사토시나카모토의주요발명품은합의도출 (emergent consensus) 을위한분산화메커니즘이다. 도출적 (emergent) 이라는의미는합의가일어나는정확한시점이나선출과정이없다는의미이다. 합의는독립적인노드수천개가모두간단한규칙을따르면서만들어낸비동기상호작용의도출적결과물이다. 비트코인의분산화된합의는다음과같은네가지프로세스가서로상호작용하면서이루어진다. 포괄적인판단기준에근거하여모든풀노드가각거래마다독립된검증실시 작업증명알고리즘을통해증명된계산법을사용하여채굴노드들이검증된거래들을새로운거래에독립적으로추가 모든노드들이새블록을독립적으로검증한후체인에블록을연결 모든노드가작업증명을통해이루어진최고누적연산체인을독립적으로선택
비트코인속의블록체인 블록채굴하기 ( 작업증명알고리즘 ) SHA256 으로채굴한다. 채굴은블록헤더를반복적으로해싱해서해시결과값이특정목표치와일치할때까지하나의매개변수를변화시키는과정이다. 암호해시알고리즘의주요특성은사실상동일한지문을생성하는두개의다른입력값을검색하는것이사실상불가능하다는점이다. 변수로사용된숫자를난스 (nonce) 라고한다. 채굴자들은거래로가득차있는후보블록을구성한다. 그다음해당채굴자가블록헤더의해시를계산하고현재의목표값보다작은지조사한다. 해시가목표값보다큰경우난스를조정해서다시시도한다. 비트코인네트워크내의현난이도에서채굴자들은블록헤더해시보다충분히작은결과값을가지는난스를찾기까지수천조번의시도를거듭하야한다. 난이도란쉽게말해서얼마나많은리딩비트가 0 이어야하는지를나타낸다.
비트코인속의블록체인 블록채굴하기 ( 작업증명알고리즘 ) 초기난이도 1에비해서알마나어려워졌는지를나타낸다. 목표난이도는전기료및전기료를내기위해사용되는통화에대한비트코인환율과밀접하게관련있다. 고성능채굴시스템은가능한한고속으로전기를해싱계산법으로전환해주는실리콘구조물이최근에제작되면서효율성이높아졌다. 채굴시장에끼치는주된영향력은비트코인내부에서전기 1킬로와트시에대한가격이다. 왜냐하면전기세가채굴의수익성과그에따라채굴시장으로진입하거나시장을빠져나갈때의인센티브를결정하기때문이다.
비트코인속의블록체인 블록채굴하기 ( 난이도 ) 난이도재설정은자동적으로풀노드전부에서독립적으로실행된다. 2016 개의블록마다노드는전부작업증명난이도목표값을재설정한다. 난이도를재설정하기위한방정식을통해마지막 2016 번째블록을찾는데걸리는시간을측정하고측정시간과 20,160 분 ( 블록간격 10 분을기준으로 2 주의시간 ) 이라는예상시간을비교한다. 실제시간과원하는시간사이의비율이계산되고대응되는조정값 ( 상승혹은하락 ) 이난이도를결정한다.
비트코인속의블록체인 현재채굴은특수용도의직접회로를장착한하드웨어채굴리그를이용하며, 수십만개의직접회로가믿기힘든속도로동시에 SHA256 알고리즘을가동한다. 이특수기계는 USB 를통해채굴노드에연결된다. 1 초당수조개의난스를테스트한다.
비트코인속의블록체인 블록채굴하기 ( 비트코인마이닝풀점유율 )
비트코인속의블록체인 블록체인분기 가장난이도가높은체인을선택함으로써모든노드는네트워크전역의합의를이끌어낸다. 블록체인은분산화된데이터구조이기때문에블록체인의복사본들의내용이항상동일한것은아니다. 각노드는항상작업증명을가장많이시행한블록체인을선택해서연장하려고한다. 이를최장체인 (longest chain) 혹은최고누적난이도체인 (greatest cumulative difficulty chain) 이라고한다. 모든노드가최장누적난이도체인을선택하는한, 전세계비트코인네트워크는결국일관된상태로수렴하게된다.
비트코인속의블록체인 블록체인분기 ( 동시에발견된두개의블록 )
비트코인속의블록체인 블록체인분기 ( 두개의블록이전파되어네트워크가두개로분열 )
비트코인속의블록체인 블록체인분기 ( 하나의분기로확장되는새블록 )
비트코인속의블록체인 블록체인분기 ( 새로운최장체인으로의네트워크수렴 )
비트코인속의블록체인 합의공격 적어도이론상으로는해싱파워를이용해정직하지않거나파괴적인목적을달성하려는채굴자들 ( 혹은풀 ) 에의한공격에비트코인합의메커니즘은취약하다. 합의공격은오로지가장최근블록에만영향력을미치며, 향후발생하는블록에대해서서비스거부공격등을야기할뿐이다. 값비싼품목을판매하는상인은구매자에게제품을건네주기전에최소 6 회의승인을기다려야한다. 다수의채굴파워를가지고있는공격자는간단한방법을통해특정거래를무시할수있다. 다른채굴자가채굴한블록안에해당특정거래가담겨있는경우, 공격자는의도적으로블록에대한분기를만들고해당블록을다시채굴해서특정거래를제외시키도록할수있다. 이러한유형의공격은공격자가채굴파워의다수를통제하는한특정주소혹은주소집합에대해서비스거부를계속유지할수있다. 비트코인을쓸모없게만들어버리려는목표를가진악성공격을하려면막대한투자와은밀한계획이필요하며, 대부분국가가후원해주는상황하에서공격이진행된다. 최근들어 P2Pool 채굴등과같이비트코인이한층개선되면서채굴작업에대한통제를분산화하는데그목적을두고있으며, 이를통해비트코인합의공격이좀더어려워지고있다.
블록체인과안전한초연결사회 비트코인의보안 비트코인은전통적인지불수단과는완전히다르다. 비트코인거래에서는특정가치에대해서만특정인에게승인하기때문에위조또는수정될수없다. 거래당사자의신분등어떠한개인정보도유출되지않고추가적인결제를만들권한도없다. 따라서비트코인결제네트워크는암호화시키거나도청으로부터보호할필요가없다. 안전하지않는와이파이나블루투스등의공개채널을통해서도보안성을유지한채비트코인거래를사실상전송할수있다. 컴퓨터에설치된수천개의소프트웨어들중악성 (rough) 소프트웨어가단하나만있어도키보드와파일들에해를끼쳐지갑어플리케이션에저장되어있는비트코인을훔쳐낼수있다. 컴퓨터상에비트코인을저장하게되면서사용자들은컴퓨터보안의필요성에초점을맞추게되었다. 이로인해하드웨어암호화, 키저장및하드웨어지갑, 다중서명기술, 디지털에스크로의형태로정보보안의영역에서엄청난혁신적결과물이나왔다. 물리적비트코인저장 / 하드웨어지갑 / 리스크균형맞추기 / 리스크다각화하기 / 멀티시그와거버넌스 / 생존력
블록체인과안전한초연결사회 Blockchain 1.0 (currency / http://coinmarketcap.com/currencies/views/all/)
블록체인과안전한초연결사회 Blockchain 2.0 / 3.0 (contracts, government, health, science, literacy, culture, and art) 구분 General Financial transactions Public records Identification 예에스크로거래, 담보계약, 제3자중재, 다자간서명계약주식, 사모펀드, 크라우드펀딩, 채권, 뮤츄얼펀드, 금융파생상품, 연금, 보조금토지와부동산소유권, 차량등록, 사업자등록증, 혼인증명서, 사망진단서운전면허증, 신원증명서, 여권, 유권자등록 Private records 차용증서, 대출, 계약, 내기, 서명, 유언장, 신탁, 에스크로 ( 조건부날인증서 ) Attestation Physical asset keys Intangible assets 보험증, 소유증, 공증문서 집, 호텔방, 렌탈카, 자동차접근권 특허, 상표, 저작권, 예약, DNS
블록체인과안전한초연결사회 분류
블록체인과안전한초연결사회 사이드체인
블록체인과안전한초연결사회 ethereum
블록체인과안전한초연결사회 ethereum
블록체인과안전한초연결사회
53 감사합니다!