21세기를 사는 20세기 소년

블록체인은 안전한가? 본문

경제 경영 혁신 직장 조직

블록체인은 안전한가?

초원위의양 2017. 3. 27. 23:05

비트코인의 기반이 되는 분산형 거래원장 기술인 블록체인은 비트코인 자체보다 더 가치가 있는 것일 수 있다. 하지만 이는 안전할 때 얘기다. 블록체인 기술을 사용하기 시작할 때 안전성 문제를 먼저 검토하는 것이 좋겠다.

 

블록체인 기술에서의 근본적인 안전성을 이해하고자 할 때 공공 블록체인과 민간 블록체인 사이의 차이를 이해하는 것이 중요하다.

 

비트코인은 어느 누구나 읽고 쓸 수 있는 거래 기록 시스템인 공공 블록체인에 기초하고 있다. 누구나 해당 정보를 수집하고 발행할 수 있다. 안전성을 검증하는 방법은 암호화된 퍼즐을 푸는 것이다. 이 과정에서 이전에 검증된 거래 기록을 확인하는 통신망 연결점에 의해 수행되고 이것을 가지고 새로운 거래를 또 검증한다. 이는 '컨센서스' 프로토콜로 알려져 있다. 비트코인 시스템에선 어떤 이용자도 거래를 검증하기 위해 일단 신뢰할 수 없다고 보기 때문에 모든 이용자는 문제를 푸는 방식으로 거래를 검증하는 알고리즘을 따를 수 밖에 없다. 답을 구한 이용자는 검증을 통과하고 이에 대한 거래는 다음 검증 거래에서 풀어야할 문제의 기초가 된다.

 

이 분권화된 접속에 대한 자유는 몇 가지 예기치 않은 결과를 가져왔다. 누구나 거래를 읽고 쓸 수 있기 때문에 비트코인 거래는 암시장 거래에 연료가 된다. '컨센서스' 프로토콜은 에너지 소비가 많기 때문에 가격이 싼 전기를 가진 나라에서 대다수의 이용자들이 운영한다. 때문에 네트워크 집중화와 공모의 가능성이 있으며 전기 보조금에 대한 정책 변화에 네트워크가 취약할 수 있다. 이 두 가지 경향으로 인해 민간 블록체인에 대한 관심이 늘어나게 되고 결국 기업들이 더 많은 통제력을 행사하는 방향으로 나아갈 수 있다.

 

먼저 금융 부문에서 민간 블록체인은 운영자에게 검증된 거래의 원장을 읽을 수 있는 사람, 거래를 제출할 수 있는 사람, 그것을 검증할 수 있는 사람을 통제할 권한을 준다. 민간 블록체인의 경우 참여하기를 원하지만 서로 온전히 신뢰하지 못하는 다수의 주체가 참여하는 시장이 포함된다. 예를 들어 부동산 및 물리적 자산 등기소, 원자재 거래, 민간 주식 분배를 지원하는 민간 블록체인 시스템이 시험중이다. 

 

이러한 시스템이 개발되어 감에 따라 시스템과 그것이 관리하거나 저장하는 자산의 안전성에 대한 예기치 않은 결과를 맞이할 수도 있다. 소프트웨어 및 제품개발에 있어 초기 단계에 안전성을 고려하는 것은 이후에 안전성 결함에 대처하기 위해 제품을 근본적으로 변화시켜야 하는 어려움을 줄일 수 있게 해 준다.

안전성은 네트워크 구조에서 시작된다

 

민간 블록체인을 언제 확립할 것인지 결정하기 위한 첫 결정 중의 하나는 시스템의 네트워크 구조에 관한 것이다. 블록체인은 통신을 통해 검증된 거래 목록인 거래 원장에 대한 합의를 얻고, 통신은 새로운 거래를 쓰고 증명하는 데 필요하다. 이 통신은 연결점들 사이에서 일어나고 이 연결점들은 거래원장의 사본을 유지하고 새로 제출되거나 새로 검증된 거래 같은 새로운 정보의 다른 연결점을 알려준다. 민간 블록체인 운영자는 연결점을 운영할 수 있을 뿐만 아니라 이러한 연결점들이 어떻게 연결되는지도 알 수 있다. 더 많은 연결 통로를 갖는 연결점이 정보를 더 빠르게 받을 것이다. 한편, 연결점들은 활성화된 것으로 여겨지는 연결들의 수를 유지할 필요가 있다. 정보 전달 혹은 부정확한 정보 전달을 제한하는 연결점은 시스템의 완전성을 유지하기 위해 인식가능하고 회피할 수 있게 되어야만 한다. 상품 거래를 위한 민간 블록체인은 기존 거래 파트너에게 네트워크 상에서 보다 중심적 위치를 차지하게 될 수 있고 기대한 안전 조치로서 이들 중앙 연결점 중의 하나와의 연결을 유지하기 위해 새로운 연결점이 필요할 수도 있다.(이게 도대체 뭔소린지 ㅡㅡ;)

 

네트쿼크 구조 확립에 있어 또 다른 보안 문제는 간헐적으로 활성화되는 연결점을 어떻게 처리할 것인가이다. 연결점들은 오프라인 상태가 될 수 있는데 네트워크는 오프라인 연결점 없이도 기능하도록 구성되어야만 한다. 그리고 다시 온라인 상태가 되었을 때 이들 연결점들을 신속하게 시스템에 포함시켜야 한다.

 

공공 블록체인과 민간 블록체인에서의 컨센서스 프로토콜과 접속 허가

 

허가를 얻기 위한 프로세스(문제를 풀어서 거래를 검증하는)는 시간이 걸리도록 설계되어 있는데 현재는 약 10분 정도가 걸린다. 거래들은 한 두 시간 정도 동안 완전히 검증되었다고 여겨지지 않는다. 이 지점 이후 이들은 거래원장으로 활용된다. 이 지연되는 시간은 시스템의 취약성을 나타낸다. 처음에는 검증된 것처럼 보이는 거래가 나중에 그렇지 않게 될 수도 있고, 금융 거래와 같이 고속 거래에 대한 비트코인 기반 시스템 사용에 중대한 장애물이 될 수도 있다.

 

반면 민간 블록체인에서 운영자는 검증 프로세스를 수행하는 특정 연결점만을 허용하도록 할 수 있다. 이들 신뢰할 만한 주체들은 네트워크의 휴식을 위해 새롭게 검증된 거래를 통신하는 책임을 맡게 된다. 이들 연결점에 안전한 접속과 일련의 신뢰할 만한 주체를 누구로, 언제 결정하는 것에 대한 책임은 보안 결정을 블록체인 운영자가 하도록 하게 될 것이다.

 

공공 블록체인과 민간 블록체인에서의 거래 가역성과 자산 안전

 

블록체인 거래는 데이터를 저장하기 위해 사용될 수 있는데 비트코인 거래의 주 동기는 비트코인 자체를 교환하는 것이다. 비트코인의 교환율이 그 짧은 수명동안 변동되기는 하는데 지난 2년 동안 5배 이상이나 가치가 상승했다. 각 비트코인은 교환되는 것과 관련된 고유한 텍스트 스트링을 포함하고 있다. 비슷하게 다른 블록체인 시스템은 자산 소유를 기록하거나 거래에 관련되어 공유된다. 비트코인 시스템에서 소유권은 보안 키(무작위적으로 나오도록 설계된 알고리즘에 의해 생성된 긴 번호)를 이용해 증명된다. 이 키는 지불과 연결되어 있다. 이들 키의 가치에도 불구하고 이것은 현금처럼 도둑 맞거나 잃어버릴 수가 있다. 이것이 비트코인 보안의 실패는 아니지만 보안 키를 안전하지 않게 저장한 결과일 수는 있다. 잃어버린 비트코인의 가치를 9억 5천만 달러로 추정하는 이들도 있을 정도다.

 

그러므로 민간 블록체인 운영자는 신분 확인 증명을 잃어버렸을 때 문제를 어떻게 해결할 지 결정해야만 한다. 특히 물리적 자산을 관리하는 시스템에선 더욱 필요하다. 석유를 소유하고 있다는 것을 증명할 수 있는 사람이 없다고 해도 그 석유는 어딘가에는 존재해야 하는 것이다. 현재까지 비트코인은 보안 키를 잃어버린 사람들에게 어떤 청구권도 제공하지 않고 있다. 비슷하게 도둑 맞은 비트코인도 거의 회복하는 것이 불가능하다. 훔친 키를 가지고 제출된 거래는 적법한 거래와 구별할 수는 없다.

 

민간 블록체인 소유자들은 검증된 거래를 언제, 어떤 상황에서 원상복구 할 수 있을 것인지 결정해야만 한다. 거래가 도둑질 당한 것처럼 보일 때 더욱 그렇다. 거래 복구는 시스템의 공정함과 공평함에 신뢰를 약화시킬 수 있다. 하지만 버그 처리의 결과 광범위한 손실을 허용하는 시스템은 이용자를 잃게 될 것이다. 이는 공공 블록체인 기반 플랫폼 Ethereum  상에서 운영하기 위해 고안된 코드 기반 벤처 캐피탈 펀드인 DAO(Decentralized Autonomous Organization)의 최근 사례에서 설명된 바 있다. 코드로 운영되는 DAO의 보안 취약성은 금융 손실을 냈고 이는 Ethereum 개발자들에게 DAO의 취약성이 Ethereum 프로토콜의 고장 때문이 아니었는데도 Ethereum  프로토콜을 바꾸도록 요구했다. 이들 변화를 요구했던 결정은 논란의 여지가 있었다. 그리고 공공 및 민간 블록체인 개발자들이 비슷한 결정에 직면하게 될 수도 있는 상황을 고려하도록 했다.

 

보상의 가치 평가

 

빠른 거래 검증과 네트워크 커뮤니케이션, 오류 수정 능력과 거래 취소, 접속 제한 및 외부 공격 가능성 감소와 같은 장점이 있기도 하지만 이용자들은 시스템에 대해 걱정할 수 있다. 모든 장점을 수용하면서도 불신을 없애는 블록체인 시스템이 불가능할 지도 모른다. 비트코인 같은 공공 블록체인 시스템을 유지하기 위해 일하는 개발자들은 여전히 그들이 제안하는 어떤 변화도 받아들이는 개별 이용자들에 의존하고 있다. 다른 한편 민간 블록체인 운영자들은 몇몇 동의하지 않는 이용자들과 변화를 일방적으로 선택할 수도 있다. 민간 블록체인 시스템의 보안과 편리성을 둘 다 확보하기 위해서 운영자들은 시스템의 규칙 변화에 동의하지 않거나 새로운 규칙을 천천히 채택하려는 이용자들에게 이용할 수 있는 무엇인가를 고려해야 한다. 현재 최신 패치 없이 운영되는 많은 운영 시스템은 논란이 없는 변화조차도 빠르게 채택하지 않는 것 같다.

 

공공 블록체인에 기반한 금융 시장 혹은 다른 기반 시설을 구축하는 위험은 시작 시 지연이 있을 수 있지만 민간 블록체인은 참여자 행동 및 거래 검증 과정 둘 다에 어느 정도 통제를 할 수가 있다. 블록체인 기반 시스템의 사용은 해당 시스템의 투명성과 이용성의 신호이고, 이는 시스템 보안을 조기에 고려하는 것으로 장려될 수 있다. 기업들이 보다 보안이 강화된 민간 인트라넷을 사용할 것인지 인터넷을 이용할 것인지 결정하는 것과 비슷하다. 빠른 거래, 거래 취소 가능성, 거래 검증에 대한 중앙 통제가 요구되는 시스템은 민간 블록체인에 더 적합할 것이고, 폭넓은 참여, 투명성, 제3자 검증의 유익은 공공 블록체인에서 유리할 것이다.

 

출처: Allison Berke, How safe are blockchains? It depends., HBR, 2017. 3. 7.