상세글 보기

[Open Class] 블록체인 기술과 보안

2018.06.18



최근 블록체인(Block Chain) 기술에 대한 관심이 높아지면서, 블록체인 기술 자체의 보안성에 대한 의구심 또한 많이 제기되고 있는데요. 샌프란시스코 대학교(University of San Francisco) 컴퓨터 과학부 교수로 재직 중인 정은진 교수와 블록체인의 보안과 전반적인 기술에 대한 담론을 나눴습니다.





정은진 교수는 “작은 블록이 하나씩 모여 큰 모형을 만들어내는 레고처럼, 블록체인은 약 70년대부터 생성된 기술들이 모여 만들어진 기반기술이다.”라는 말과 함께 강연을 시작했습니다. 블록체인에 대해 연구하려면 기반 기술을 먼저 잘 알아야 합니다. 그렇기 때문에 정은진 교수는 블록체인을 연구하기 이전에 기반기술을 전문적으로 공부했다고 말하며, 기반기술 차트에 자신의 이력을 빗대어 소개했습니다. 또한 기반기술을 공부하며 암호학, 컴퓨터와 인터넷 보안 기술 등 사용자 보안(User Security)에 대한 전반적인 연구를 활발히 하고 있는데요. 그럼 사용자 보안 기술의 전문가, 정은진 교수와 함께 블록체인에 대해 더 자세히 살펴보겠습니다.





블록체인은 개인의 거래내역이 담긴 데이터베이스(Database)의 저장을 달리한 기술이라고 할 수 있는데요. 지금부터 이 데이터베이스를 ‘거래내역’이라고 칭하겠습니다. 기존 전자금융거래는 중앙 집중형 구조로 은행, 카드사와 같은 ‘중앙서버’가 거래내역을 관리하며 개인이 자신의 거래내역을 조회하고, 타인은 중앙서버에 담긴 개인의 거래내역엔 접근할 수 없는 시스템으로 구성되었는데요. 이와 달리, 블록체인 기반의 전자금융거래는 탈중앙화라는 분산형 구조로 모든 네트워크 참여자에게 개인의 거래내역을 공유하는 새로운 시스템을 가지고 있습니다. 





이렇게 분산된 거래내역들을 저장하는 단위가 ‘블록’인데요. 블록체인은 분산된 거래내역의 변화를 기록하는 것이라고 할 수 있습니다. 중앙서버에서 관리되지 않고 이렇게 분산되어 저장된 거래내역들은 해킹 등의 사이버 공격에 대해서 안전하며, 중앙통제 없이 거래가 진행되기 때문에 거래수수료를 최소화할 수 있다는 장점이 있습니다. 





그 후에는 ‘합의 프로토콜(Consensus Protocol)’이라고 부르는 과정을 거치게 됩니다. 개인의 결제 내역에 대한 합의를 보는 것인데요. 예를 들어, 120만원을 주고 컴퓨터를 샀다면 120만원에 대한 결제 내역이 블록이며, 참여자들이 그 블록에 대한 합의를 보는 것입니다. 


사실 거래내역의 합의를 이뤄내기 위해 ‘개인의 거래내역을 오픈한다’는 시스템이 염려가 될 수 있습니다. 이런 부분의 염려를 덜기 위해 블록체인기술이 이용되는 비트코인(가상화폐 체계)에선 거래내역과 거래자의 이름을 암호화된 익명으로 처리해 거래자를 역추적할 수 없는 구조를 가지고 있습니다. 그렇기 때문에 개인의 정보는 철저히 보안 될 수 있습니다. 이런 장점 때문에 거래내역과 같은 데이터를 저장하는 몇몇 기관에서는 블록체인 기술을 적극적으로 이용하고 있다고 합니다. 





그렇다면 합의를 이뤄낸 참여자들은 어떤 이득을 얻게 되는지에 대한 의문도 갖게 되는데요. 비트코인에서는 합의를 이뤄내는 합의자에게 포상금을 주는 시스템을 가지고 있기 때문에 참여자들은 각자 포상금만큼의 이득을 얻게 됩니다. 





이렇게 익명으로 진행되는 시스템이 있음에도 불구하고 보안이나 정보 위조의 안전성이 의심되는 분들이 있을 텐데요. 블록체인에서 보안을 철저히 하기 위해 어떤 원칙으로 합의를 도출하는지 알아볼까요? 


기본적으로 하나의 거래내역에 두 대의 컴퓨터가 참여한다면 합의하기가 어렵습니다. A컴퓨터는 1을 외치고 B컴퓨터는 0을 외친다면, 합의점을 도출할 수 없기 때문입니다. 블록체인에서의 합의는 2, 4와 같은 짝수의 참여자가 1:1, 2:2와 같은 의견을 내는 것을 방지하기 위해 홀수의 합의 참여자를 두는 것을 원칙으로 합니다. 3, 5와 같은 과반수가 나올 수 있는 홀수의 평가단을 두는 오디션 프로그램과 같은 의도라고 보시면 됩니다. 





또한, 이 중 한 명이라도 부정부패를 일으키거나 혼자만의 의견을 주장하며 독단적으로 행동한다면 어떤 합의점도 도출해낼 수 없다는 것입니다. 한 번이라도 합의에 참여한 컴퓨터는 유저(User)로 간주하는데, 하나의 유저라도 독단적으로 행동하면 합의는 존재하지 않게 됩니다. 하지만 개인의 이득을 위해 시스템을 악용하는 사람들을 칭하는 이성적 유저(Rational User)는 합의에 포함할 수 있도록 합니다. 이와 같은 합의 원칙을 기반으로 블록체인의 거래내역 합의는 이뤄지게 됩니다. 





아시다시피, 블록체인 중에서도 가장 유명한 모델은 비트코인인데요. 비트코인에서는 어떻게 합의를 도출할까요? 예를 통해 쉽게 설명해드리겠습니다. 먼저 돌아가면서 선출할 수 있는 대표자와 같은 사람을 선출합니다. 이 대표자를 반장이라고 칭하겠습니다. 그리고 선출된 반장이 자신이 원하는 거래내역을 A4용지 한 장에 정리하게 됩니다. 이 정리된 A4용지가 ‘블록’이며, 정리하는 일을 보통 채굴(Mining)이라고 부릅니다.  


여기서 중요한 것은 이 거래내역은 위조될 수 없는 거래자의 서명이 된 것만 포함시켜야 한다는 것입니다. 이런 조건하에 정리된 A4용지에 적힌 거래내역이 위조되지 않았다고 참여자 모두가 합의를 하면 비로소 제대로 된 거래내역으로 인정받게 됩니다. 여기서 흥미로운 점은 반장이 선정한 4개의 거래내역 중 1개는 거래원장에 쓰이지 않는다는 것인데요. 4번 결제를 해도 3번의 결제만 승인되어 결제 내역에 올라가게 되는 것입니다. 사실 이런 문제는 비트코인이 결제 시스템으로 공공연히 인정받지 못하는 원인 중 하나라고 볼 수 있습니다. 또한, 실제로는 반장이 거래내역을 A4용지에 정리하기도 전에 반장을 선출하는 기간이 꽤 오래 걸리기 때문에 거래내역이 거래원장에 들어가는 시간이 늦어지게 된다는 단점이 있습니다. 





그래서 이런 문제를 해결하기 위해 작업증명(POW: Proof of Work)이라는 시스템이 생겨났는데요. A4용지에 거래내역을 정리하는 반장의 자리를 최대한 빠르고 안전하게 차지하기 위한 방법이라고 할 수 있습니다. 단어부터 어렵게 느껴지는 작업증명은 ‘일한 자에게 돈이 간다’는 개념만 이해하면 쉽게 설명이 됩니다. 기본적으로 작업증명이란 어떠한 특정 해쉬(Hash)값을 찾아내는 방식으로 이루어집니다. 이 값을 빨리 찾아내는 사람이 포상금을 가져갈 수 있는 구조로 ‘땅 파는 것’과 같다고 생각하시면 되는데요. 좋은 굴삭기를 쓰면 빨리 땅을 파는 것이 가능한 것처럼, 좋은 디바이스를 쓰면 작업증명을 빨리 해결할 수 있습니다. 


무작위로 땅속에 묻은 열쇠인 해쉬값을 찾기 위해 100명이 각자의 방법으로 땅을 파고 그중에서 열쇠를 찾은 1명에게만 성과가 주어지는 시스템입니다. 예를 들어, 넓은 운동장에 수많은 열쇠를 숨겨놓고 100명의 사람에게 숨겨진 열쇠를 찾으라는 미션을 건네준 뒤 가장 먼저 열쇠를 찾은 사람에게는 상품을 주겠다는 조건과 같은 것입니다. 이렇듯 무조건 땅을 파야 성과를 얻을 수 있도록 디자인된 것이 바로 ‘작업증명’입니다.  

 




작업증명을 했을 때 좋은 점은 ‘시간제한’입니다. 어느 정도 땅을 파지 않고는 열쇠를 찾을 수 없는 구조이기 때문에 한 번에 거래내역을 쓸 수 있는 시간을 조정할 수 있습니다. 1m 혹은 2m 깊이 등 자신이 원하는 깊이에 열쇠를 숨기며 찾는 시간에 제한을 두는 것이죠. 만약 열쇠를 찾는 채굴자가 많아진다면 깊이를 더 깊게 해 찾는 것에 어려움을 둘 수도 있는 것입니다. 이렇게 속도를 조정하면 실제로 작업을 하지 않고는 열쇠를 찾을 수 없게 됩니다. 작업증명을 한 사람, 즉 열쇠를 찾아낸 사람이 반장이 되어서 거래내역을 골라 A4용지에 쓰면 반장이 얼마나 땅을 빨리 파서 열쇠를 찾아냈는지 증명이 되고, 그가 선정한 거래내역에 모두가 합의하게 되는 것입니다. 


또 다른 암호화폐 증명 방식인 지분증명(POS:Proof of stake) 입니다. 큰 비용 및 유지비, 하나의 열쇠를 찾기 위해 다수의 공이 들어가는 전력 소모, 그리고 결국 한 명이 열쇠를 독점하게 되는 작업증명의 문제를 개선한 시스템입니다. 지분을 많이 가지고 있을수록 많은 열쇠를 받게 되는 개념이 지분 증명입니다. 원금이 많을수록 은행 이자를 많이 받는 것과 같은 개념이라고 할 수 있습니다. 유지비에 대한 부담이 없고 완결성이 빨리 보장되는 서비스를 제공해 주목받고 있지만, 아직 완성된 알고리즘이 아닌 터라 여러 문제점이 제기되고 있다는 단점도 있습니다.





마지막으로 개념을 하나 더 소개하겠습니다. 바로 포크(Fork)인데요. 포크는 블록이 두 갈래로 쌓이게 되는 것을 의미하는데요. 어려운 작업증명을 거쳐 반장이 되어도 포크가 된 상황에서는 거래내역을 선정할 권리를 잃게 되는 경우가 발생합니다. 보통 정식 체인의 구조는 반장 한 명에게만 기록을 쓸 수 있는 권리를 부여합니다. 그렇다면 이런 권리는 누가 부여할까요? 딱히 정해진 투표자는 없습니다. 다만 참여자들이 어느 쪽으로 더 많이 붙느냐에 따라 권리가 주어지게 될 뿐이죠. 참여자가 더 많이 붙은 체인이 권리를 갖는 정식 체인으로서 용납되는 것입니다. 예를 들어 A가 10개의 체인을 모았는데, 더 좋은 성능의 컴퓨터를 가진 B가 12개짜리 체인을 만든다면, A의 체인은 가치를 잃게 되고 B가 권리를 독점하게 되는 것입니다.  


좋은 굴삭기로 땅을 빨리 판 사람이 결국 승자가 된다는 작업증명의 원리가 여기서도 한 번 더 적용된다는 말과 함께 정은진 교수는 강연을 마무리했습니다.  





위와 같은 절차를 통해 블록체인은 해킹으로부터 안전성, 그리고 뛰어난 보안성이 있다는 강점이 있지만, 공식적인 전자 금융 거래로 인정받지 못하고 있습니다. 그런데도 불구하고, 블록체인은 금융 시장 내에서 ‘세상을 바꿀 기술’이라고 평가받으며 뜨거운 주목을 받고 있는데요.    


새로운 패러다임에 놓여있는 금융 시장. 블록체인이 금융시장을 넘어 우리에게 어떤 변화를 불러일으킬지 기대가 됩니다.