brunch

You can make anything
by writing

C.S.Lewis

by Mobiinside Nov 08. 2017

비트코인 블록체인 개론

블록체인 전문 리서치 스타트업 ‘피넥터’ 팀이 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.

 

image credit: Wikimedia Commons


이 글은 비트코인이나 블록체인의 내용 자체가 상당히 어렵고 제대로 찾아볼 수 있는 자료가 거의 없는 상황이기 때문에, 전문지식이 없는 분들도 손쉽게 읽고 이해할 수 있도록 하는 것에 최대한 초점을 맞추어 작성했다. 현재 존재하는 대부분의 암호화폐가 비트코인 블록체인의 구조를 기반으로 설계된 것이기 때문에, 비트코인의 블록체인을 이해하는 것은 다른 응용 화폐들을 이해하는데 중요한 디딤돌이 될 수 있다. 이러한 블록체인을 응용하여 도입하고자 하는 움직임이 전 세계적으로 나타나고 있으며, 다양한 분야의 유수의 대기업에서부터 정부나 공공기관까지 폭넓은 층에서 블록체인에 대한 관심이 증가하고 있다. 굳이 블록체인 산업에 종사하거나 관련된 프로그램을 개발하고자 하지 않더라도, 이러한 개념을 알아둔다면 도움이 될 것으로 기대하고 있다. 처음 부분에서는 비트코인 자체에 대해 다루고자 하였으며 이어지는 내용에서는 블록체인의 응용과 그 영향 등에 대해 알아보고자 했다. 


1. 비트코인 (Bitcoin)


비트코인은 2009년에 ‘사토시 나카모토(예명)’로 알려진 한 명의 또는 다수의 개발자들을 통해 탄생되었다. 비트코인은 P2P네트워크, 해시, 암호화, POW(작업증명) 등의 기술을 다차원적으로 종합하여 만든 프로그램이며, 기존의 가상화폐들과는 달리 암호(cryptography)와 해시를 이용한 POW(작업증명)방식을 이용하였다는 점에서 암호화폐(cryptocurrency)로 불리고 있다. 


이러한 암호화폐 발행 및 거래 프로그램을 ‘비트코인’이라고 부르며, 이 프로그램 안에서 통용되는 암호화폐 또한 ‘비트코인’이라고 칭한다. 비트코인은 특정한 발행 또는 관리 주체 없이 운영되는데, 참여하는 사용자들이 주체적으로 화폐를 발행하고 이체내역을 관리하게 된다. 중앙화 된 주체에서 주도적으로 관리하는 것이 아니라 P2P로 운영되기 때문에 계좌동결, 강제인도, 강제신원공개 및 서비스정지 등이 불가능하다. 


2. 비트코인의 구성원 (Members of Bitcoin)


비트코인의 참여자는 크게: 채굴자, 채굴풀, 사용자, 트레이더, 비트코인 재단, 비트코인 커뮤니티로 정리할 수 있다.


- 채굴자(Miner)는 자신의 컴퓨팅 파워를 이용하여 비트코인 블록체인을 생성하고 유지하며 거래데이터의 무결성을 인증하는 역할을 수행한다. 이러한 채굴자들은 블록체인 시스템 자체를 지탱하는 중대학 역할을 맡고 있다. *비트코인 최초에는 사용자가 곧 채굴자였으나, 전문채굴업자와 SPV지갑 등의 thin client의 등장으로 인해 채굴자와 사용자가 나뉘게 되었다.


- 채굴풀(Mining Pool)은 채굴 난이도가 증가함에 따라, 채굴자들이 개인으로 나뉘어 채굴하면 수익의 안정성이 떨어지기 때문에 꾸준히 일정한 수익을 가져가기 위해 결성한 채굴업자들의 협력시스템이다. 채굴업자들은 혼자 채굴을 하는 것이 아니라, 단체(채굴풀)를 결성하여 공동으로 함께 채굴작업에 참여한다.


- 사용자(Bitcoin User)는 비트코인을 통해 물건을 구매하거나, 비트코인을 받고 물건을 판매하는 사람들로 이루어져 있으며 비트코인을 실제 화폐로써 이용하고 가치를 창출한다.


- 비트코인 재단(Bitcoin Foundation)은 최초에 비트코인 프로그램을 개발하고 대중에 전파하며 비트코인 생태계를 구성하기 위해 설립된 비영리기관이다. 재단 구성원들 중 일부는 실제 비트코인의 개발자로 알려진 ‘사토시 나카모토(Satoshi Nakamoto, 예명)’와 함께 협업하기도 했다. 현재도 제3의 독립된 기관으로 비트코인을 교육하고 비트코인 생태계가 구성될 수 있는 여건을 마련하기 위해 노력하고 있다.


- 비트코인 커뮤니티(Bitcoin Community)는 비트코인 생태계를 구성하고 있는 모든 이들과 비트코인 등의 암호화폐에 관심이 있는 모든 이들을 가리킨다. 이들은 비트코인과 그 관련 산업의 방향성 등과 관련된 여러 가지의 주제를 토론하고 공동의 합의를 이끌어나간다. 이러한 합의가 이루어지면 해당 내용이 비트코인 프로그램에 실제로 적용되기도 한다. 


3. 비트코인의 작동원리 (Bitcoin Working Mechanism)


채굴 (Mining)


비트코인은 사용자들에 의해 직접 발행이 되는데 이를 통상적으로 채굴이라고 부른다. 이를 기술적으로는 끊임없는 해싱작업을 통한 ‘목푯값(target value)’ 이상의 해시(hash)값 찾기(작업증명, POW: Proof of Work)로 정의할 수 있다. 채굴에 참여하는 모든 사용자가 목푯값을 찾기 위한 경쟁을 벌이며, 특정한 사용자가 목푯값에 해당하는 해시값을 찾는 데 성공하면, ‘블록’을 발행하게 된다. 이들은 블록을 발행하고 이를 네트워크에 전파하면서 동시에 블록 발행 보상인 ‘비트코인’과 해당 블록 안에 포함된 ‘이체 수수료’를 받게 된다. ‘비트코인 지급’이라는 경제적 보상이 채굴자들이 해싱작업에 참여하는 동기가 된다. 채굴행위는 근본적으로 끊임없는 해싱작업이며, 많은 컴퓨팅 파워를 가지고 있을수록 빠른 속도의 해싱이 가능하다. 즉, 컴퓨팅 파워를 많이 투입할수록 다른 경쟁자들보다 비트코인을 많이 받게 되는 구조이다. 블록발행 확률(목푯값 경쟁 승리확률)과 네트워크 상에서 자신이 차지하는 컴퓨팅파워 비율은 정확히 비례하며, 만일 누군가가 전체 투입 컴퓨팅 파워 중 30%를 점유하고 있다면, 수학적으로 블록생성 확률도 정확히 30%에 수렴한다.


(*POW로 통칭되는 ‘작업증명’은 기본적으로 특정한 난이도의 작업을 수행했음을 증명하는 기법이며, 해당 작업의 어려움은 난이도에 맞게 설정되어 있어야 하지만 그 작업이 완료되었음을 확인하는 것은 쉬워야 한다. 여러 가지 방법이 작업증명에 사용될 수 있는데, 비트코인의 경우 위에 언급된 ‘Hashcash’방식을 통해 작업증명을 한다)


조폐 (Mintage)


블록은 위에서 설명된 채굴행위를 통해 발행되며, 매 발행 시마다 비트코인 프로그램 자체(coinbase)에서 ‘블록발행보상’을 채굴자에게 지급하는 방식으로 신규 화폐를 발행(조폐)한다. ‘블록발행보상’은 2016년 기준으로 25비트코인이며, 매 ‘21만 블록(약 4년)’을 기준으로 발행량이 반감한다. 2009년 1월 첫 발행 시에는 50비트코인씩 발행이 되었으나 약 4년 뒤인 2013년 말부터는 25비트코인으로 발행량이 줄었으며, 역시 4년 뒤 2016년 7월 10일에는 12.5비트코인으로 매 4년마다 계속하여 반감해나가게 된다. 이렇게 발행되는 비트코인의 총량이 2,100만개에 이르면 비트코인의 신규발행은 종료된다. (*더 정확하게는 20999999.9769개인데, 블록 당 최소 보상량이 0.00000001비트코인(=1사토시)보다 작을 수 없기 때문이다 - 연구자료(스프레드시트))

블록 (Block)


블록은 위에서 설명된 채굴행위를 통해 매 10분을 주기로 발행된다. 블록은 일종의 데이터 패킷으로 몇 가지 정보를 담고 있다. 가장 중요한 것으로 참여자들이 화폐를 거래한 ‘거래내역’, 그리고 이전 블록의 해시값, 난이도, 논스(nonce) 등이 포함된다. 매 블록은 바로 전 블록의 해시값을 담고 있으며, 이렇게 이어진 블록들은 시간순으로 발생한 이체내역들을 담고 있는 하나의 ‘블록체인(blockchain)’을 이룬다. 각 블록은 최대 1MB의 크기까지 확장될 수 있으며, 헤더 80바이트, 기타 17바이트 등을 제외하고 총 1,048,479바이트가량이 이체내역 저장을 위해 사용될 수 있다.


*블록은 헤더(header)와 바디(body)로 이루어져 있다.

헤더는 다음의 6가지로 이루어져 있으며 -

1)현재 비트코인 프로그램의 버전
 2)이전 블록을 해싱한 해시값
 3)현재 블록의 거래내역들을 모두 해싱한 해시값
 4)현재 블록의 타임스템프
 5)난이도(해시 목푯값)
 6)논스값

바디는 해당 블록안에 산입된 모든 이체내역들로 이루어져 있다.

(*비트코인의 블록크기는 보안적인 이유로 최초 1MB로 제한되어 있었지만, 비트코인에서 처리하고자 하는 이체 건수가 늘어남에 따라, 블록의 크기를 1MB이상으로 늘리자는 다수의 요청이 있었다) 


난이도 (Difficulty)

블록의 생성주기는 네트워크 전파 속도 및 보안성 등을 이유로 사토시에 의해 ‘10분’으로 채택되었다. 그러나 위 ‘채굴’ 부분에서 언급된 바와 같이, 블록생성은 곧 특정한 목푯값을 해싱 작업으로 찾아내는 것인데 그렇다면 해싱작업 속도만 빠르다면 10분이 아니라 1분 안에도 목푯값을 찾아낼 수 있을 것이다. 그렇다면 충분한 컴퓨팅 파워만 있다면 1초안에도 블록을 생성하는 것이 가능할 것이다. 이것을 막기 위해 도입된 것이 ‘난이도’의 개념이다. 비트코인이 채택한 작업증명(POW: Proof of Work)방식은 ‘Hashcash’ 방식이다. Hashcash 방식의 요소는 네 가지로, ‘목표’, ‘작업방식’, ‘난이도 조정방법’, ‘난이조 조정시점’이다. ‘목표’는 2016개의 블록을 생성하는데에 2주(2016블록*10분=2주)가 소요돼야 한다는 것이며, ‘작업방식’은 해싱을 통한 목푯값 찾기, 그리고 ‘난이도 조정방법’은 목표치를 초과/미달하는 부분만큼 ‘목푯값(target value)’의 난이도가 변경되는 것이다. 이 난이도 조정은 매 2016번째 블록마다 이루어진다.


만일 2016개의 블록을 생성하는데 2주가 아닌 1주일이 걸렸다면, 목표에 도달키 위한 필요작업의 50%만 이루어진 것이므로, 목표에 도달치 못한 것이다. 따라서 난이도를 2배로 증가시켜서, 기존 1주일의 두 배인 2주가 걸리게 조정하고 목표를 충족시킨다. 


이체확인 (Confirmation)


이용자가 이체를 하면 이를 채굴자가 자신의 블록에 넣어서 발행하게 되는데, 이 순간 해당 이체내역의 ‘이체확인(confirmation)’은 1이 된다. 그리고 해당 블록의 해시를 이용한 다음의 블록이 발행되면, 해당 이체내역의 이체확인은 2가 되는 식이다. 비트코인 프로그램은 각 이체가 총 6번(60분)의 이체확인을 받아야 재이체(사용)가 가능하도록 설계되어 있는데, 이것을 일반적인 POS과정(*슈퍼에서 껌을 사기 위해 이체하고 1시간을 기다릴 수는 없는 일이다)에 그대로 도입하는 것은 불가능할 것이다. 따라서 각 사업자는 자신이 리스크를 지고 필요에 따라 1~2이체확인 또는 단순히 TxID를 통한 이체신청내역 사실확인만으로도 이체확인을 해주는 ‘제로컨펌(zero-confirmation)’까지 다양하게 조정하여 사용하고 있다. (일반적인 가상화폐 거래소의 경우 한 번의 이체내역 확인(=1블록 컨펌) 만으로도 이를 인정해주고 있다.) 


이체발생 과정


이체가 발생하고 확정되어 가는 과정을 다음과 같이 정리할 수 있다.


1) 한 이용자가 개인키를 사용하여 A내역을 이체신청한다.
 2) A 이체신청에 대한 고유한 해시값이 발행된다. (TxID) - 이를 통해 이체내역은 즉시 확인할 수 있다.
 3) A 이체신청내역을 채굴자가 자신의 개인 ‘이체풀(Transaction Pool)’에 넣어 보관한다.
 4) 블록에 넣을 이체신청내역들을 ‘우선순위’부터 차례로 정하고 이를 기준으로 목푯값 해싱을 진행한다. 목푯값 해싱에 성공하면 블록을 발행한다. (*따라서 이체내역이 우선순위에 들지 못하는 경우, 영원히 확인되지 않을 수 있다)
 5) A 이체내역을 담은 블록이 네트워크에 전파된다.
 6) A 이체내역의 이체확인이 1이 된다.
 7) 네트워크를 통해 해당 블록을 전파(다운)받은 채굴자는 해당 블록의 해시값을 이용해 다음 블록생성을 시작한다.
 8) A이체내역을 담은 블록의 ‘다음 블록’이 네트워크에 전파된다.
 9) A 이체내역의 이체확인이 2가 된다.
 10) 위의 과정이 끝없이 반복된다.


위의 과정은 이체신청과 이체확인의 과정을 설명하고 있으며, 누군가가 A주소의 비트코인을 B주소로 이체하기 위해 자신의 ‘개인키(private key)’로 서명하여 네트워크로 전파하면 ‘이체신청(Request)’이 완료된다. 이를 채굴자가 전파받아 자신이 발행하는 블록에 산입하여 넣고 이를 전파하면 ‘이체확인(Confirmation)’이 된다. 여기에 마지막으로 이를 이체받는 주체가 이체내역을 인정하면 그것이 ‘이체확정(Settlement)’이다. 거래소의 경우 1~2 이체 확인만으로 이체확정을 시켜주는 경우도 있고, POS의 경우 0~1번, 고액의 이체건의 경우 10 이체 확인까지 경우에 따라 서로 다른 수준의 이체확인을 설정하여 이체확정을 하게된다. (*일부 거래소는 가상화폐를 부정적으로 탈취한 해커가 보내는 화폐를 영원히 이체확정하지 않음으로 현실적으로 해당 해커의 화폐를 동결해버리는 방법을 사용하기도 한다)


이렇게 이체는 ‘이체신청(Request)’, ‘이체확인(Confirmation)’, ‘이체확정(Settlement)’의 세 단계를 거치게 된다. 


비트코인의 존재 (Bitcoin Ontology)


사실 비트코인 프로그램에 비트코인의 실체적 개념은 존재하지 않는다. 그 어느 경우에도 비트코인이라는 것이 A의 계좌에서 B의 계좌로 ‘이동’하는 경우는 없으며, 단순히 해당 계좌들의 숫자를 증액하거나 감액하는 원장정리개념만이 존재할 뿐이다. 그러한 원장정리 내용은 모두에게 동일하게 공유된다. 따라서 각자가 가진 원장 모두가 원본이 된다는 무신뢰거래(trustless settlement)가 비트코인 원장의 핵심개념이다. 각자가 가진 원장이 원본이기 때문에, 다른 누구에게 확인을 받을 필요나 다른 독립된 기관에 신뢰성을 의존할 필요가 없다. 이것을 구현하기 위해서 위에 언급되는 다양한 기법들이 사용되었으며, 블록체인 등장 이전에는 이것이 해결하기 어려운 난제로 여겨져 오고 있었다. 


해싱과 논스 (Hash and Nonce)


해싱은 데이터(존재하는 모든 데이터에 적용가능)를 무작위의 정해진 길이의 문자열로 치환시키는 것이다. 일례로 비트코인의 해싱기법인 ‘SHA256^2’는 블록을 그 내용이나 크기에 상관없이 언제나 32바이트 즉 64자리 길이의 결과값으로 치환한다.


Ex) 542f69d65f81466d07c8e52417f2b005e8577e6e75c80d6d51539b8b118b1e89


그러나 해싱의 또 다른 특징은, 해싱하는 대상 데이터가 동일하다면 언제가 같은 해시값이 나온다는 것이다. 하지만 목푯값을 찾으려면 반복적인 해싱으로 새로운 해시값을 만들어야 한다. 따라서 블록의 내용을 임의적으로 바꾸어야 한다. 이체내역 등은 고정시킨 채로, 블록에 포함된 논스값을 수정함으로 결과해시값을 다르게 만드는 것이다(논스 자체가 이러한 목적으로 존재). 따라서 채굴자는 블록 헤더의 논스값을 0에서부터 1씩 반복적으로 증가시켜가면서 해시값을 얻어낸다. 


*더 자세하게 살펴보자면, 논스는 32비트(unsigned, 음수제외)로 이루어져있고 따라서 42억번 가량까지만 셈이 가능하다. 42억번은 비트코인에 요구되는 해시작업에 비해 터무니없이 작은 수이다. 따라서 코인베이스의 extra-nonce field를 통해 머클루트 값을 변경시켜 해싱작업을 계속한다. 이 부분은 각 채굴풀마다 방식이 조금씩 차이가 날 수 있다. 


비트코인의 보안성 (Bitcoin Security)


화폐거래장부에 대한 공격은, 해당 장부의 내역을 조작하는 것이다. 내역을 변조한다는 것은 변조된 블록을 생성하여 전파시키는 것에 성공한다는 뜻인데, 이는 현실적으로 불가능하다. 모든 블록은 바로 전 블록의 해시값을 기준으로 생성되는데, 이렇게 해시값을 통해 각 블록이 연결되어 있기 때문에 ‘블록체인’이라 칭해진다. 만일 현재 총 10개의 블록이 있고 당신은 9번째의 블록을 변조하려 한다고 가정해보자. 변조된 9번째의 블록을 네트워크에 전파한다. 그러나 네트워크는 이미 10번째 블록을 가지고 있기 때문에 당신이 보내는 9번째 블록을 받지 않는다. 결국 변조된 9번째 블록을 이미 10개의 블록을 가진 네트워크가 받아들이게 하려면 해당 9번째 블록의 해시값을 이용하여 11번째 블록까지 생성하고 네트워크에 전파해야 한다. 그러나 당신이 변조된 블록을 기준으로 11번째 블록까지 생성하였을 때에는 네트워크(다른 채굴자들)는 이미 11번째 또는 12번째 블록을 생성하고 있을 것이다.


결국 이들이 변조된 블록을 받아들이게 만들려면 이들(네트워크)보다 빠르게 블록을 생성하여 전파해야 한다는 의미인데, 그러려면 수학적으로 네트워크보다 더 많은 컴퓨팅파워(hashrate)가 있어야 한다. 2016년 7월 10일을 기준으로 현재 네트워크에 투입되는 총 해시파워(목푯값 해싱을 위해 투입되는 컴퓨팅파워)는 19,583,587.6 PetaFLOPS인데, 이는 2016년 기준, 세계 최고의 슈퍼컴퓨터인 중국의 Tianhe-2가 33.8 PetaFLOPS임을 고려할 때 사실상 뚫는 것이 불가능하다고 보아도 무방하다. 


4. 비트코인의 장단점 (Forte and Foible)


장점 (경우에 따라 단점이 될 수 있음)


보안성 - 비트코인이 가진 블록체인의 작동방식 덕문에 사실상 이체내역의 변조가 불가능하다.


낮은 이체수수료 - 일반적으로 사용되는 수수료는 0.0002btc 가량이며 이는 152원에 불과하다. (비트코인 당 762,100원 기준 - 2016년 7월 10일 코인원 거래소 가격) 수수료는 천원을 보내든 10억원을 보내든 이체금액과 상관없이 동일하게 적용된다. 전체 이체건수가 증가하면 더 낮은 이체수수료를 설정하는 것도 가능해질 것이다.


세계 전역에서 24시간 이체 - 중개기관이 없고 P2P 네트워크로 시스템이 유지되기 때문에 전 세계 어디에서나 시간에 구애받지 않는 이체가 가능하다.


거래의 투명성 - 모든 거래는 블록을 통해 전 세계에 공개되며, 이체내역, 발신자, 수신자, 각 지갑의 잔액내역과 이체기록까지 전부 조회가 가능하다. 따라서 중간 상인의 경우, 몰래 추가 마진을 부과하는 것은 불가능하다.


거래의 익명성 - 비트코인 지갑 생성 및 이용 시, 신원증명 절차가 없으며 따라서 익명으로 모든 거래가 가능하다.


계좌생성 편의성 - 누구든지 버튼 클릭 한 번으로 계좌생성이 가능하다. 심지어 매 이체 건마다 새로운 계좌를 생성하여 사용하고 버리는 것도 가능하다.


분할성 - 비트코인은 매우 낮은 단위까지 사용이 가능하며, 그 이체도 간편하다. 따라서 여러 가지 소액결제 서비스에 유용하게 사용될 수 있을 것이다.


단점 (경우에 따라 장점이 될 수 있음)


가치 변동성 - 현재 비트코인은 자체로써 생태계를 구성하기보다는, 결국 달러 등 다른 법정화폐로 환전되어 사용되는 ‘환전가치'에 크게 의존하고 있다. 따라서 수시로 10% 이상이 변동되는 비트코인의 달러표시 가격이 가진 변동성은 큰 리스크가 된다.


인식부재 - 아직 비트코인이 대중적으로 널리 알려지지 못했고, 안전한 화폐로 인식되고 있지도 않기 때문에 생태계 확장에 어려움이 있으며, 각 기업에서 결제화폐로 사용하는 것도 쉽지 않다.


비상용화 - 비트코인 프로그램은 아직 보편적으로 사용되기에는 불편한 점이 많기 때문에 계속해서 현실에 맞게 수정이 되어 가고 있으며, 관련 서비스들이 개발되고 있는 중이다.


관리의 어려움 - 특정한 비트코인 보관서비스나 거래소 등에 비트코인을 예치해두지 않는다면 자신이 스스로 비트코인을 관리해야 하는데 이것이 쉽지 않다. 비트코인의 이체 비밀번호를 잃어버린다면 재설정할 방법이 없으며, 비트코인이 들어있는 USB나 노트북 등을 분실해도 복구할 방법은 존재하지 않는다. 이러한 실수는 생각보다 자주 발생하기 때문에 특별한 주의가 요구된다.


해킹 - 비트코인의 블록체인 자체는 해킹이 되지 않지만, 자신이 비트코인을 예탁한 거래소는 해킹을 당할 수 있다. 이러한 해킹은 수차례에 걸쳐 반복적으로 이루어져 왔으며, 현재 관련 법규나 구제절차 등이 미흡하여 제대로 보상을 받기 어렵다. 


5. 블록체인의 은행 및 공공서비스에의 적용 및 확장 (Blockchain Expand to Bank and Public Service)


비트코인이나 블록체인은 그 자체로 가치가 있으나, 현재 그대로 은행 등 공공기관에 적용하여 사용하기에는 무리가 있다.


은행거래에서는 익명성을 사용할 수 없으며, 거래가 비가역적이라는 부분도 치명적이다. 모든 계좌는 계좌주의 신원을 밝히도록 되어 있으며, 따라서 은행에서는 대포통장을 발급하는 부분 등도 문제가 된다. 이러한 익명성 문제를 해결해야 할 것이다. 또한 이체사고 발생 시 강제로 이체를 동결하거나 또는 법정인도명령 등에 따르기 위해 강제인도 등을 해야 할 경우가 생기는데, 이체의 비가역성(irreversibility)은 치명적 결함이 된다.


이체내역과 계좌의 투명성도 문제가 된다. 이러한 부분은 개인정보에 해당하는 것으로, 은행에서 독자적으로 관리해야 하는 정보이다. 특히 여러 은행이 공동으로 네트워크를 형성하여 컨소시엄체인 등을 운용하는 경우, 각 은행의 이체내역을 서로에게 공개하는 것은 영업기밀을 누설하는 것이나 마찬가지일 것이다. 이러한 문제들은 MPC(multi-party computation)기술이나, 동일한 체인 내에서도 다른 권한으로 다른 정보를 조회할 수 있는 기능구현 등을 통해 해결해야 할 것이다.


화폐발행 여부도 문제가 될 수 있다. 블록체인에서 반드시 매번 화폐가 발행될 필요는 없다. 따라서 화폐발행이 아닌, 유가재산 등록의 개념으로 블록체인을 변환할 수 있다.


채굴자들이 해시경쟁을 벌이는 현행 POW방식의 거래확정 방식도 의미가 없어진다. 다량의 전기를 소비하는 방식이 아니라 더 효율적이고 의미 있는 다른 작업증명 방식을 찾아야 할 것이다. (일반적으로 알려진 POS방식이 대체할 수 있을 것으로도 보이지 않기 때문에 제3의 최적화된 방식이 필요하다)


접속권한 문제도 고려해야 한다. 현재 비트코인은 퍼블릭 블록체인으로, 누구든지 네트워크 망에 접속하여 이체를 발생시키고 확정할 수 있는데 이는 기관의 입장에서 치명적인 결함이다. 정해진 참여자에게만 개인키를 발급하거나 단계적 접속권한의 설정 등을 통해 참여자의 선택적 진입과 권한수준 설정을 위한 모델을 설계해야 할 것이다. (Public vs Private/Consortium/Permissioned Chain)


높은 처리속도와 처리량이 매우 중요하다. 현재 금융권에서는 초 당 수천번이 넘는 이체를 처리하는 경우가 허다한데, 이러한 거래량과 속도를 비트코인 블록체인에서 처리하는 것은 불가능하다. 이에 대한 대안으로 '텐더민트(Tendermint)' 등에서 차용하고 있는 'lightning network'나 'sharding' 등의 기법을 고민해볼 수 있다.


은행이나 기관에서 내부적으로 사용하는 체인이라면 굳이 블록체인일 필요도 없다. 블록체인 원장기술의 핵심은 결국 해시의 연결이다. 각 데이터를 블록으로 묶는 것이 아니라 단일한 대상으로 삼아 해시값을 부여하고 ‘해시체인(hash chain)’ 형식으로 이용하는 것도 가능할 것이다.


위와 같은 요소들을 필요에 맞게 적절히 조합하고 최적화시킬 때 비로소 은행과 기관을 위한 전용체인도입이 가능해질 것이다.


논의특성 - 익명성, 비가역성, 투명성(non-privacy), 화폐발행여부, 해시경쟁 작업증명 방식, 접속자 및 권한수준 제한, 대용량신속처리(high throughput), 블록의 존재 


6. 블록체인의 함의 (Implications of Blockchain)


이전까지 디지털 정보는 모두 복사될 수 있는 것으로 여겨져 왔다. 그러나 블록체인의 등장으로 실제 복제가 불가능한 디지털 자산이 존재할 수 있게 되었다.


다음은 본인이 자주 인용하는 구글회장 에릭슈미츠(Eric Schmidt)의 말이다.


“비트코인은 놀라운 암호학적 성취이다. 디지털 세계에서 무언가 복제 불가능한 것을 만들어낼 수 있다는 것은 엄청난 것이다. 수많은 비즈니스가 파생될 것이다.”


“Bitcoin is a remarkable crypto-graphic achievement and the ability to create something which is not ‘duplicable’ in the digital world has enormous value. It’s very hard to do and it’s incredibly useful for many many computer applications. The Bitcoin architecture, literally the ability to having these ledgers that can’t be replicated is an amazing advancement. A lot of businesses will be built on top of that.” (2014-03-16)


블록체인은 기본적으로 데이터를 기록하고 운영하는 방식을 정의한다. 미리 정의된 합의구조를 통해 참여자 모두가 데이터의 기록과 관리에 참여한다. 이곳에 비트코인의 숫자를 기록하던, 재산의 소유권을 기록하든, 계약의 내용을 기록하든, 컴퓨터의 코드를 기록하든 개인의 견해나 투표 또는 각자의 생체정보를 기록하든, 아니면 다른 무언가를 기록하든 자유이다.


사실상 모든 자산의 소유권은 등기를 통해 이전(transfer)되고 증명된다. 화폐, 부동산, 토지, 주식, 유가증권, 심지어 보석이나 노트북 등 가격이 있는 것이라면 무엇이든 등기를 통해 소유권을 확정할 수 있다. 점유만으로 소유권을 증명할 수 있는 경우는 극히 드물다. 결국 세상의 가치는 ‘원장기록’을 통해 이동하게 되는 셈이다. 이러한 ‘원장’을 제삼자 없이 운용할 수 있게 된다면 또는 이러한 ‘원장’을 보다 안전하고 응용가능한 방식으로 운영하게 된다면 엄청난 변화가 일어날 것이다.


2년 전인 2014년 4월 경에 한국에서 최초의 비트코인 포럼이 있었는데, 여기에서 발표를 위해 준비한 원고의 내용이 남아있다. “실제로 주목해야 할 것은 비트코인 자체가 아니라 블록체인 기술로, 이러한 블록체인은 단순한 화폐관련 기록을 넘어 각종 자산의 관리 데이터의 관리로 이동할 것이며, 우스운 얘기일 수 있지만 은행에서도 블록체인을 도입할 것이다. 또한 더 나아가서, 국가단위의 화폐도 블록체인을 통해 발행되거나 관리될 수 있을 것”이라는 내용이었다.


또한 2년 전 첫 블록체인 2.0관련 모임에서 블록체인은 국가간 무역결제에서 혁신을 가져올 것이고, 회사의 ERP도 클라우드 블록체인 방식으로 구현될 수 있을 것이라는 전망을 하였는데, 놀랍게도 얼마 뒤에 컬러드 코인이라는 개념으로 코인이 제작되었고, 1년 뒤에는 더욱 확장된 개념인 이더리움이 개발되었으며 2년 뒤인 현재는 은행들이 앞다투어 블록체인 도입을 논의하고 있다. 또한 무역결제도 아직은 갈길이 멀지만 리플을 포함한 몇 개의 프로젝트가 시장을 시도하고 있다.


개인적으로 현재는 앞으로 모든 상용 ERP에 블록체인 또는 해시체인의 개념이 도입될 것이라 생각한다. 또한 진정한 스마트계약(Smart Contract) 개념의 실현을 위해 각 분야의 전문언어와 컴퓨터 실행코드가 결합한 블록체인 친화적인 ‘Ontology Language’가 보편화될 것이라고 생각한다. 스마트계약을 위한 Ontology의 예로는 OMG사의 ‘FIBO’ 등이 있는데, 무역결제의 경우 ‘신용장언어’, 무역거래의 경우 ‘인코텀즈(Incoterms)’ 등의 훌륭한 언어들이 이미 개발되어 있다. 앞으로 단순한 범용 블록체인뿐 아니라 각 분야의 전문적인 블록체인들이 해당 분야를 혁신해나갈 것으로 기대한다.


새로운 것에 대해 항상 물어야 할 질문은 ‘과연 이것이 세상을 더 나은 공간으로 만드는가?’인데, 블록체인은 이러한 질문에 만족스러운 답을 준다. 



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari