보안연구부 -2015-029 블록체인및비트코인보안기술 ( 보안연구부보안기술팀 / 2015.11.23) 개요 블록체인 (BlockChain) 은보안성, 무결성을제공하는저장플랫폼으로써, 비트코인 (Bitcoin), 거래정보, 저작권관리등다양한서비스가출시되고있음 본보고서에서는블록체인의대표적인이용사례인비트코인을통해적용된주요보안기술에대해알아보고자함 블록체인 ( 개념 ) 블록체인은분산데이터베이스와유사한형태로데이터를저장하는구조체리스트로네트워크참여자들이데이터를저장 검증하므로임의조작이어렵도록설계됨 ( 구조 ) 각블록은헤더와바디로구성된구조체로헤더에는이전, 현재블록의해시값, 넌스 (Nonce) 등을포함하고있으며, 블록검색시데이터베이스인덱스 1) 방식으로데이터값을찾음 블록헤더에는다음블록의해쉬값을포함하지않으나, 편의상값을추가하여이용 < 블록체인연결구조 > 1) 인덱스는데이터레코드에빠르게접근하기위해구성되는데이터구조 - 1 -
참고 : 더블링크드리스트 노드는데이터와포인터를가지고포인터가다음노드의데이터부분을참조하면서 연결되는자료구조이며, 데이터검색시포인터로연결된노드를검색하여값을찾음 < 더블링크드리스트연결구조 > 구분인덱스 ( 데이터베이스 ) 더블링크드리스트 장점 단점 < 인덱스및더블링크드리스트방식의장단점비교 > 검색속도가빠르며, 시스템부하가 적어시스템성능향상에도움 인덱스가늘어날경우저장공간이 필요하며, 인덱스생성시간이많이 소요될수있음 데이터추가 / 삭제시위치정보의 수정만으로가능하기때문에 정보의추가 / 삭제시유용 데이터가많은경우검색시처음 혹은끝자료부터순차적으로 찾아야하기때문에성능저하 ( 안정성 ) 각노드들에저장된해쉬값은이전블록들의값에영향을받아생성되므로등록된내용을위 변조하는행위가매우어려움 다만, 노드의과반수를동시에해킹한다면데이터변조가가능하지만현실적으로어려움 비트코인총해시량은전세계슈퍼컴퓨터 1위부터 500위까지의계산력을모두합친것의 256배이상으로추정 (2013년 11월기준 ) 비트코인 ( 개념 ) 2009 년나카모토사토시 (Nakamoto Satoshi) 2) 에의해고안된디지털 통화로거래정보를블록체인형태로저장하여중앙서버의개입없이 개인간 (P2P) 익명의거래 * 가가능함 * 거래자의비트코인계좌주소는공개키값으로이루어져있음 신규화폐는채굴 (Mining) 3) 에의해발행되며, 동시에새로운블록이생성 2) 2008 년비트코인의작동방식을고안해발표한개발자로써, 정체가밝혀지지않은익명의인물 3) 채굴이란거래의유효성을검증하는과정으로, 특정조건을만족하는넌스를찾아블록을생성하는노드에게보상 ( 현재는블록당 25BTC 를제공 ) 하는개념으로작업증명 (Proof of Work) 이라고도함 - 2 -
< 비트코인에서의채굴메커니즘 > ( 특징 ) 거래정보가네트워크에공개되어모든참여자가검증할수있도록정보가공개되어있으며, 통화발행이제한되어있음 ( 거래정보분산저장 ) 네트워크에참여하는노드는동일한블록체인을가지며, 블록에는거래데이터가동일하게저장 ( 통화제한 ) 인플레이션을방지하기위해통화발행을 2,100만개로제한 ( 위협및대응 ) 전자적거래에는다양한위협이존재하지만, 비트코인은이를대응할수있는대응방법을기술적으로구현함 < 비트코인의위협과대응방법 > 예시 대응 1 이미사용한비트코인을다시사용총발행액과차이발생 2 다른사람의계좌로부터자신의계좌로 허위수신기록생성하는경우 송신자의개인키가필요 3 동시에비트코인을여러곳에사용 ( 이중사용 ) 노드간경쟁을통해경쟁에서진체인은소멸 4 송신한금액의거래기록제거 조작자가새로생성되는노드보다더빠른 속도로조작된블록과이후거래에대한 계산을다시해야함 참고 : 비트코인사고사례 ( 마운트곡스 ) 2014년 2월, 해킹으로 85만비트코인이해킹당하였다고주장하였으나, 해커들에의해거래기록을조작되고비트코인을횡령한것으로추정 ( 비트스탬프 ) 2015년 1월, 19,000여개의비트코인을도난당하였으며, 비트코인계좌재활용으로인한개인키도난가능성혹은적절하지못한난수발생기 (RNG) 사용으로인한것으로추측 ( 블록체인닷인포 ) 20015년 1월, 안드로이드전자지갑을통해비트코인계좌생성시적절하지못한난수발생기 (RNG) 사용으로 Johoe라는해커에의해 800비트코인도난 - 3 -
( 적용보안기술 ) 비트코인에는거래를투명하고, 안전하게보호하기 위한분산네트워크운영, 암호화등다양한보안기술이적용됨 1 분산네트워크 블록체인정보는네트워크에참여하는노드들이가지고있으며, 동일한 거래내역이분산저장되어관리 ( 분산합의제도 ) 거래를블록체인에포함시키기위해서거래를승인 하는분산합의제도를채택하고있으며, 제 3 의신용기관없이 P2P 분산네트워크에서검증 채굴시각정보는각노드들에게전송 (Broadcast) 되고, 유효성검증을수행 한후합의 ( 노드의 51% 이상 ) 를통해블록을승인 단, 모든노드가가진컴퓨팅파워 51% 를악의적행위자가장악하게되는경우, 거래 기록을조작할위험성이존재하나현재의컴퓨팅파워로는사실상불가능함 참고 : 분산합의제도를위한개별노드들의작업증명절차 1 새로운거래내역이발생하면모든노드에알려짐 2 각노드들은새로운거래내역을블록에취합 3 각노드들은그블록에대한작업증명을찾는과정을수행 4 노드가작업증명을성공적으로수행하면, 모든노드에게해당블록을전송 5 노드들은해당블록의모든거래가이전에쓰이지않은경우에만승인 6 노드들은자신이승인한블록의해시를이전해시로사용하여다음블록을생성하는과정을통해해당블록이승인되었음을나타냄 < 분산합의과정 > - 4 -
2 암호기술 복호화가가능한공개키기반검증과일방향함수라고도불리는해쉬암호화 (SHA-2) 를이용 ( 공개키암호화 ) 개인간거래시생성되는디지털서명을검증하여거래내역이변경되지않았음을입증하는데 ECDSA 전자서명알고리즘 4) 이용 ( 익명성 ) 익명의공개키를계좌정보로이용하여누가다른누군가에게얼마는보냈는지알수있으나, 거래당사자들에대한정보가연결되어있지않아소유자에대한정보는알수없음 ( 해쉬암호화 ) 거래내역을포함하는블록의정보가변경되지않음을증명하고, 새로운블록을찾기위한넌스값을찾는데이용 ( 채굴 ) 해쉬함수에이전블록의해쉬값, 거래내역, 넌스값을넣어특정조건을만족하는결과값이나오도록넌스값을유추해내는과정 ( 디지털서명 ) 비트코인거래시거래정보의무결성을보장하기위해사용되며, 거래정보의해쉬값을공개키기반암호화를통해거래내역의무결성입증가능 ( 거래내역입증간소화 ) 각각의거래내역의해쉬값을누적하는머클트리 5) 구조의루트해시를가짐으로써중간에값이변경되면루트해시값이변경됨으로변조유무를쉽게판단가능 4) ECDSA(The Eliptic Curve Digital Signature Algorithm) 는 DSA, RSA 와함께미국전자서명표준 (DSS, Digital Signature Standard) 에포함되어연방정보처리표준 (FIPS) 186-2 로승인되었으며, WTLS, TLS, S/MIME 등의보안프로토콜에포함된사실표준임 5) 해시트리 (Hash Tree) 라고도하며, 모든비 - 리프 (Non-Leaf) 노드의이름이자식노드들이름의해시로구성된트리구조를 일컬음. 데이터를검증하고자하는사용자는루트노드의해시 값 ( 루트해시또는마스터해시 ) 만알면데이터가옳은데이터 인지검증가능 - 5 -
< 비트코인에서디지털서명 > 1 Alice는 Bob에게 1BTC을보내기위한거래전문과해시값을생성한후 Alice의개인키를이용하여해시값을암호화함 2 거래전문과암호화된거래전문의해시값을 Bob에게전송 3 Bob은거래전문정보로해시값을만들고, 암호화된해시값을 Alice의공개키로복호화한후생성된해시값과비교하여무결성을검증함 3 이중거래 (Double-Spending) 방지 악의적인목적으로동시에두곳이상의계좌로송금하는행위를방지하기위해서총통화량, The Longest Chain Wins 메커니즘을이용 ( 총통화량 ) 이중거래발생시총통화량 (2,100만개) 이초과됨 (The Longest Chain Wins) 중복지출에의해블록체인이분기 (Fork) 될경우다음블록을먼저생성하여한쪽의길이가길어지는체인이옳은것으로간주 1) 이용자가비트코인을중복으로사용하여그거래내역이서로다른노드들로전송 되면, 두개의블록이생성됨 < 이중거래방지과정 > 2) 채굴자들은두개의블록을가지고경쟁적으로다음블록을생성 3) 결국경쟁에서진체인은자연스럽게소멸 - 6 -
시사점 비트코인의경우익명거래로인한범죄활용, 고성능컴퓨팅파워를이용한거래조작등의문제가내재되어있음 ( 익명거래 ) 2013년 10월적발된실크로드 (SilkRoad) 사건의경우불법거래의대가를비트코인을이용하여대금을지불하였으며, 최근랜섬웨어악성코드도비트코인으로금전을요구 단, 국내비트코인거래소의경우실명인증을거쳐야만거래가능함 ( 컴퓨팅파워 ) 양자컴퓨터 * 와같이고성능컴퓨터를활용하여컴퓨팅파워를높여거래조작의위험성이내재 * 병렬로연결된 1,600여대의고성능컴퓨터를사용하여 129자리숫자를소인수분해하는데 8개월이걸리는반면, 양자컴퓨터를이용할경우단몇시간만에해결가능 하지만보안성을높인분산데이터베이스형태인블록체인은데이터의보안성을높일수있을뿐만아니라, 운영및보수, 보안투자비용을절감할수있는장점이존재함 국내금융권에블록체인기술을활용하여금융서비스를제공하게될경우, 검증에참여하는노드의범위 ( 금융회사, 이용자등 ) 를정해야하며공동으로운영하기위한방안을논의하기위한협의체구성이필요함 해외 ( 미국, 유럽, 싱가포르등 ) 에서는블록체인기술을활용한금융거래서비스를제공하기위한서비스개발등이활발히진행중 - 7 -