티스토리 뷰

경제

훔친사과? 아니란거 증명해봐?

새로운관심 2018. 11. 20. 11:32
점심때 먹으려고 집에서 사과를 하나 챙겨 나오는 날 아침, 회사 앞 가게에 들러서 샌드위치와 쿠키를 샀다.  가게 계산대에서 가방을 열어 방금 산 물건들을 담으로 하는데 가게 직원이 가방안에 있는 사과를 발견하고 물끄러미 쳐다본다.  하필 사과는 가게에서 팔고 있는 것과 같은 종류이다.  이때 가게 점원은 무슨 생각을 할까?  아마 내가 가게에서 사과를 훔쳤다고 생각할 지도 모른다.  불행히도 가게에는 감시카메라도 보안요원도 없다.  내가 유일한 손님이다.  나는 사과를 훔치지 않았다는 것을 어떻게 증명할까?

정답은 사과가 내것이라는 사실을 증언하는 독립적인 목격자가 많을수록 그 사실은 진실일 가능성이 높아진다.  이것이 바로 블록체인의 핵심 내용이다.

블록체인이란 무결성을 확보하고 유지하기 위해서 순서에 따라 연결된 블록들의 정보내용을 암호화 기법과 보안기술을 이용해 협상하는 알고리즘으로 구성된 소프트웨어 요소를 활용하는 원장의 순수 분사 P2P 시스템을 말한다.  

블록체인은 다양한 분야에서 폭넓게 응용될 수 있다.  그러나 대부분의 사람들은 블록체인이 곧 암호화폐, 비트코인으로 인식하고 있다.   블록체인의 가장 중요한 응용사례는 소유권을 관리하고 명확화하는 것이다.  그러나 그것만이 블록체인의 전부는 아니다.  아마도 비트코인이 블록체인보다 이해하기 쉽고 소유의 개념이 있어서 그런게 아닌가 생각이 든다.  

투명성은 위 사례에서 목격자가 공개 증언하는 것과 비슷한 방법으로 소유권을 증명하는 기초가 된다. 
즉, 소유권 관련 원장이 누구에게나 공개되어 있다면 소유권 증명이 훨씬 쉬워진다.  그리고 소유권 이전은 법적인 소유자에게 배타적으로 허가되어야 한다.  그래서 개인정보 보호가 소유권 이전의 기초를 이룬다.  원장에 쓴다는 것은 소유권이 변경되었다는 의미이므로 상당히 신뢰할 수 있는 개체에게만 쓸 수 있는 권한이 허가되어야 한다.

원장의 위조를 방지하기 위해서는 조작될 위험이 있는 원장을 하나만 유지하지 말고, 원장의 순수 분사 P2P시스템을 활용하여 다수의 노드가 동의하는 진실을 이용해서 소유권을 확인하면 된다.

이중 사용의 문제
A가 B에게 집을 팔았다.  A에서 B로의 소유권 이전은 P2P 시스템의 어느 원장에 기록되었다.  이 원장을 관리하는 피어는 그 즉시 다른 피어에게 소유권 이전 사실을 알린다.  이 사실을 전달받은 피어는 또 다른 피어에게 그 사실을 전달하고, 그 피어는 또 다시 다른 피어에게 전달한다.  이런 전달 행위는 모든 피어가 A에서 B로 소유권이 이전되었다는 사실을 알게 될때 까지 계속 된다.  그 와중에 A가 재빨리 시스템에 있는 다른 원장에 접근해 동일한 집에 대해 A에서 C로의 소유권 이전을 기록하도록 요청했다고 가정해 보자.  마침 이 피어가 A에서 B로 소유권이 이전된 사실을 아직 모를 경우 피어는 이 요청을 받아 들이고 동일한 집에 대한 소유권 이전을 A에서 C로 기록할 것이다.  다시 말해, A가 B에게 집을 판매한 사실이 알려질 때까지 시간이 걸린다는 점을 악용하면 동일한 집을 두번 판매할 수 있다.  그러나 B와 C가 동시에 같은 집을 소유할 수는 없다.  둘 중 하나만 새로운 합법적 소유자가 되어야 한다. 

실생활에서는 자동차나 집에 외부인이 함부로 접근하지 못하게 자물쇠를 사용한다.  자물쇠로 집이나 자동차를 보호하는 것과 유사하게 암호화 기술을 이용하면 개별적 트랜잭션을 보호할 수 있다. 

트랜잭션 이력 조작을 방지하는 가장 좋은 방법은 트랜잭션을 바꾸지 못하도록 막아 놓는 것이다.   다시 말해 원장과 트랜잭션 이력 모두 한번 기록되면 바꿀 수 없게 하는 것이다.  그렇게 되면 원장이 바뀔 일이 없으니 조작이나 위조 걱정은 하지 않아도 된다.  그러나 원장을 못 바꾸면 아주 안전해지기는 하겠지만 새로운 트랜잭션을 추가할 수 없으니 동시에 쓸모가 없어진다.  따라서 블록체인 - 데이터 - 구조는 한편으로는 변경을 못하게 하면서 다른 한편으로는 새로운 트랜잭션을 추가할 수 있도록 승인해야 한다. 즉 추가 전용 블록체인 - 데이터 - 구조로 만들면 된다.  추가 전용 블록체인 - 데이터 - 구조는 새로운 트랜잭션을 추가할 수는 있지만 과거에 추가한 데이터를 변경하는 것은 불가능하다. 

트랜잭션 이력은 합법적인 소유자를 찾기 위한 기초가 되므로 시스템 내 서로 다른 이력이 충돌하는 것은 무결성에 중대한 위협이 된다.

이어달리기는 팀 경기이다.  각 팀 멤버는 전체 거리 중 일정구간을 맡아서 달린다.  경주하는 동안 주자는 바통이라 불리는 특별한 아이템을 다음 주자에게 건네야 한다.  특정 팀의 어느 멤버가 바통을 쥐고 있는지 알아 내려면 직전에 누구에게 바통이 건네졌는지를 확인해 보면 된다.  또한 특정 시각에 누가 바통을 쥐고 있었는지 추적하려면 바통을 건넨 시각과 각 선수 이름을 기록해 두면 된다.  블록체인이 소유권을 취급하는 것을 이어달리기에서 바통을 다루는 것과 유사하다.58

소유권 문제를 해결하기 위해서는 단순히 소유권에 대한 주장만 기록하는 것이 아니라 소유권에 대한 증거까지 제공해서 소유권 자체를 증명하는 기록 방법을 찾아내야 한다.

소유권 이전이 일어날 때마다 트랜잭션 데이터는 누가 누구에게 어떤 아이템의 소유권을 언제 이전했는지 기록한다.  그리하면 원장에 기록된 트랜잭션의 모든 이력이 소유권을 어떻게 획득했는지 보여주는 증거로 이용될 수 있다.  이는 마치 이어달리기에서 바통을 건넨 이력을 기록한 것과 같다.  바통을 건넨 이력이 있으면 이를 이용해 전체 달리기를 재구성해 볼 수 있다. 
트랜잭션은 현 소유자의 소유권을 다른 사람에게 이전하는 행위를 의미한다.  

소유권의 이전은 의도한 이전을 데이터에 기록함으로써 이루어진다.  이 데이터에는 소유권 이전을 수행하는 데 필요한 모든 정보가 담긴다.  은행의 계좌이체 서식을 떠올려보자.  은행의 계좌이체 서식은 고객을 대신해 은행이 계좌이체를 수행하기 위해 필요한 모든 정보를 요구한다.   은행과 다른 점은 은행은 중앙통제된 기관이므로 모든 고객에게 동일한 수수료 체계를 적용한다.  이에 반해 블록체인은 중앙 통제가 없는 분산 시스템이므로 통일된 수수료 체계가 없다.

[위 내용은 다니엘 드레셔의 <블록체인 무엇인가>에 나오는 내용을 기반으로 재정리 함]

'경제' 카테고리의 다른 글

이상한 나라의 세금  (0) 2019.01.25
블록체인과 해시값  (1) 2018.12.10
P2P와 블록체인  (1) 2018.11.16
블랙체인의 실용화  (0) 2018.11.13
블록체에 관심을 가지다  (0) 2018.11.08
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday