《블록체인의 이해와 금융권에서의 활용》
■ 본고에서는 비트코인 시스템이 사용하는 블록체인을 중심으로 기술적 요소들을 설명하고자 함.
- 비트코인 블록체인은 일반대중에 개방된 퍼블릭(public) 블록체인으로서, 모든 참가자들이 과거부터의 모든 거래기록들을 분산하여 독립적으로 보유하는 분산원장(distributed ledger) 시스템임.
- 블록체인 시스템은 모든 참가자에게 한쌍의 개인키(private key, K₁)와 공개키(public key, K₂ ; 일종의 네트워크 주소)를 발행하는데, 개인키는 소유자 본인만이 보관하고(따라서 물리적으로 해킹당할 위험은 존재) 공개키는 다른 참가자들에게 공개됨.
- 현재의 공인인증서(National Public Key Infrastructure ; NPKI) 시스템도 비대칭키 암호체계를 사용함. 즉 개인키(전자인감)는 고객 본인이 보관하고, 공개키에 해당하는 공인인증서(전자인감증명서)는 금융기관 등에 등록·보관하다가 금융거래 등에서 고객이 개인키로 서명을 하면 해당 금융기관이 보관하고 있는 공인인증서로 고객(계좌의 소유자가 맞는지 등)을 인증함.
- K₁과 K₂는 일정한 역함수관계에 있기 때문에 K₁으로 암호화한 문서는 오직 K₂로만 해독할 수 있고, 그 역도 성립함. 뿐만 아니라 K₂가 공개된 상태에서도 해커가 타인이 보유한 K₁을 계산(복제)하는 것은 현대 컴퓨터 기술로는 불가능하다는 것이 이론적으로 정립됨.
- A는 디지탈통화를 B에게 송신(송금)하면서 자신의 개인키(KA₁)로 암호화된(encrypted) 서명을 첨부하는데, 이를 전자서명이라 함. 전자서명은 본인이 지급 사실을 추후 부인하지 않겠다는 의사표시임(non-repudiation ; 어음에 배서를 하는 것과 동일함).
- B는 이 디지탈통화를 A가 보낸 것이 맞는지(첨부된 전자서명의 본인이 A인지) 확인하기 위해 그 전자서명을 A의 공개키(KA₂)를 사용해 해독(복호화 ; decryption, 공개키로 개인키의 매칭 여부를 확인)하는데, 이를 인증이라 함.
- 한편 A는 디지탈통화의 수취인(B)을 B의 공개키(KB₂)로 암호화하는데(어음의 수취인 지정과 동일함), 이는 자신의 개인키(KB₁)로만 해독할 수 있음. 이는 B에게 지급된 통화는 B만이 접근ㆍ수취 가능하다는 점에서 일종의 개인정보보호에 해당됨.
■ <그림>에서 거래 1이 종료되면 네트워크에 올려져(broadcast) 블록체인의 두 번째 중요 요소인 작업증명(proof of work)이 이루어짐. 이는 인증기관(miner)들이 거래 1을 블록체인 장부에 기록할 것인지에 대한 확인ㆍ동의를 대다수로부터 얻기 위해 경쟁하는 절차임(consensus building).
- 우선 인증기관들은 A의 공개키를 사용해 그 전자서명이 유효한지(KA₁와 KA₂의 매칭)를 검증함.
- 다음으로 인증기관들은 이 '거래 1의 내역'에 일종의 '확인 도장'을 찍는 작업을 하는데, 이 확인 도장은 매우 단순화하면 '거래 1의 내역+정수n=지정값'이라는 방정식의 解에 해당함. 그러나 실제로는 이 방정식은 hash function이라는 매우 복잡한 알고리즘으로 되어 있어서 n=1, 2, ···에 대해 지정값이 나올 때까지 반복계산해야 함. 따라서 거래 1의 내역이 변하면 n₁*(확인 도장)도 변경해야 함. (거래 1의 내역을 수학 문제라 하면 n₁*는 그 문제에 대한 유일한 답이며, 따라서 문제가 바뀌면 답도 바뀌어야 함.)
- 어느 인증기관이 n₁*를 가장 먼저 공표하면 다른 인증기관들은 이를 검증하고(hash function으로부터 한번만 계산하면 쉽게 검증할 수 있음), n₁*는 블록체인 장부에 확인 도장으로 찍히게 됨.
- 그리고 '거래 1의 내역+n₁*(확인 도장)'은 다음 거래 2 단계에 투입되므로(feed), 거래 1의 내역은 거래 1 장부에만 기록되는 것이 아니라 거래 1 이후의 모든 장부에도 암호화되어 기록됨.
■ 위에서 일단 n₁*가 장부에 기록된 후 나중에 해커가 이 장부를 위조하려면, 이 장부는 물론 그 이후부터 최근까지 모든 장부들의 n*들을 모두 다시 계산해야 하는데 이는 시간적으로 불가능함. 왜냐하면 블록체인은 매 10분마다 동기화(synchronized)되기 때문임.
- 예를 들어 <그림>의 거래 2에서 만약 B가 자신이 실제 보유한 금액(20)보다 많은 30을 사용하려면 잔고증명을 위조해야 함(여기서는 자금 출처인 거래 1 장부 위조 ; history modification).
- 이를 위해서는 B는 거래 1의 n₁*와 거래 2의 n₂*를 모두 다시 계산해야 함(상기 식 참조). 반면 그 시간 동안 다른 인증기관들은 적법한 거래(예컨대 거래 2′)에 대한 n₂′* 만을 계산하기 때문에 B가 경쟁에서 이길 가능성은 매우 낮음.
- 퍼블릭 블록체인은 악의의 참가자(장부를 위변조하려는 해커 등)로부터 시스템을 보호하기 위해 동의 절차(proof of work)에 많은 시간과 전산설비가 소요되도록 설계되어 있으므로 대량ㆍ신속 거래에는 적합하지 않음.
- 따라서 악의의 참가자를 원천 봉쇄하고, 거래처리 속도와 비용효율성을 높이기 위해 소수 기관들에게만 개방된 컨소시엄 블록체인이 도입되고 있는데, 이는 소수 기관 상호간의 신뢰를 바탕으로 하므로 동의 절차를 간소화할 수 있음.
- 간편한 동의 알고리즘으로 proof of concept, proof of stake, proof of importance, Practical Byzantine Fault Tolerance (PBFT) 등이 개발되었음.
- 최근 우리나라 증권권이 추진하는 블록체인도 이러한 컨소시엄 블록체인으로서 동의 알고리즘으로는 위의 PBFT를 사용할 것으로 알려지고 있음.
- 2016년 11월 은행권은 전국은행연합회를 중심으로 16개 은행, 금융결제원, 금융보안원이 참여하는 컨소시엄을 출범시키고, 네트워크 기반 기술인 블록체인을 활용할 수 있는 은행 공동사업(인증, 전자문서 검증, 실명확인 결과 공유 등)을 발굴하기로 한 바 있음.
- 2017년 2월 금융투자협회와 26개 증권사 및 5개 블록체인 기술회사도 컨소시엄을 구성하고, 인증 및 정보공유, 청산·결제 등에 블록체인 기술을 활용하는 방안을 모색하고 있음.
- 현재 공인인증서 시스템에서는 고객은 금융기관(행정관청 포함)마다 이를 등록해야 하고, 금융기관 등은 각자 이를 보관·관리해야 함. 각 업권이 추진하는 블록체인 인증은 공인인증서 시스템과 개념적으로는 차이가 없으나, 한번 발행받으면 개별 금융기관마다 등록할 필요없이 컨소시엄 기관들 및 금융지주 자회사들에 대해 자유로이 사용할 수 있다는 장점이 있음.
- 또한 블록체인을 매개로 한 것이기는 하지만, 금융권에서 공동으로 인프라를 개발·구축한다는 점은 전례가 없는 큰 변화이며, 이를 계기로 금융소비자의 편의성과 안전성이 증대되는 동시에 금융산업 내 경쟁이 촉진되어 경쟁력도 제고될 것으로 전망됨.
- 블록체인 기술을 고객인증 분야에서부터 활용하는 것은 적절한 방안으로 평가되며 향후 블록체인 기술의 활용을 확대하기 위해서는 철저한 테스트베드 검증을 거치면서 기존 시스템 대비 기술 및 비용의 효율성과 안전성에 대한 연구도 병행되어야 할 것임.
참고문헌
1. BOE, Innovations in payment technologies and the emergence of digital currencies, QB Q3 2014
2. BOE, The economics of digital currencies, QB Q3 2014
3. D. Tapscott, A. Tapscott, Blockchain Revolution, 2016
4. Institute of International Finance, Banking on the Blockchain, Nov. 2015
5. Nomura Research Institute, Survey on Blockchain technologies and related services, March 2016
★★★★★★