신뢰는 어려워
주말에 시간이 나면 비트코인에 대해 공부를 하곤 한다. 투자와는 별개로 그저 공부를 하는 것 만으로도 큰 즐거움을 주는 주제이다. 그런데 비트코인을 깊게 공부할수록 나를 괴롭게하는 것은 변동성도, 가치에 대한 의문도, 사토시의 존재도 아닌 '신뢰의 문제'이다.
타인에 대한 신뢰
신뢰란 무엇인가? 사전에는 '굳게 믿고 의지함' 정도로 표현하고 있는데, 나는 이 의미를 조금 확장해서 '어떤 것에 대한 믿음을 바탕으로 특정 행동을 할 수 있게 되는 것'으로 표현하고 싶다. 행동을 하게되는 기반이 된다는 점에서 단순히 '믿음' 과는 차이가 있다.
가령 앱스토어에서 일기 앱을 하나 설치해서 매일 일기를 쓴다고 가정해보자. 이 간단한 행동은 사실 수많은 신뢰를 필요로 한다.
- 일기 앱 개발자가 내 일기 데이터를 몰래 훔쳐보지 않을 것이다
- 일기 데이터가 저장되는 서버가 해커에 의해 유출되거나 변조되지 않을 것이다.
- 일기 앱이 설치되는 내 아이폰에 데이터를 유출하는 악성코드가 설치되지 않을 것이다.
- 애플이 iOS를 악용하여 내 데이터를 침해하지 않을 것이다.
- 아이폰 하드웨어가 내 데이터를 안전하게 보관되도록 설계, 제조 되었을 것이며 유통과정에서 모조품과 바뀌지 않았을 것이다.
5개 정도 적었지만 적으려면 얼마든 더 적을 수 있다. 사실 일반적으로는 3번 또는 4번부터는 크게 걱정할 필요가 없고, 대부분의 사람들은 1, 2번도 유명한 앱, 유명한 회사의 앱을 쓴다면 큰 문제 없다고 생각할 것이다. 물론 나도 보통은 이런 문제를 별로 신경 쓰지 않는다.
그런데 비트코인이나 다른 암호화폐를 장기투자하는 경우 이 문제가 중요해진다. 매도를 거의 하지 않고 장기투자를 하는경우, 굳이 거래소에 비트코인을 보관할 필요가 없다. 거래소는 내 비트코인을 현물로 보유하고 있지 않을 위험도 있고, 해킹도 종종 발생하며, 정부 정책에 따라 출금 제한 등의 규제가 언제든지 적용될 수 있다. 즉 거래소를 신뢰할 수 없는 문제가 있다. 따라서 장기투자를 하는 경우 개인 지갑에 보관(Self Custody)하는 것이 합리적으로 보인다. 그러면 BlueWallet 같은 지갑 앱을 설치해서 비트코인을 보관하는 경우를 생각해보자. 이 경우는 다음과 같은 신뢰를 기반으로 한다.
- 지갑 앱 개발자가 내 비트코인을 탈취하기 위한 악성코드를 심지 않았을 것이다.
- 지갑 앱 개발자가 사용중인 외부 모듈에 악성 코드가 존재하지 않을 것이다.
- iOS의 취약점이 발견되어, 악성 앱이 지갑앱의 데이터를 읽거나 변조하는 일이 발생하지 않을 것이다.
- 애플이 비트코인 지갑앱들을 iOS에서(또는 특정 국가에서) 금지하기로 결정하고 하루사이에 모든 아이폰에서 관련 앱들을 제거하지 않을 것이다.
- 내 아이폰이 도난당했을때 도둑은 기기의 잠금을 풀지 않고는 내 지갑의 데이터를 알 수 없을 것이다.
- 아이폰 하드웨어가 내 데이터를 안전하게 보관되도록 설계, 제조 되었을 것이며 유통과정에서 모조품과 바뀌지 않았을 것이다.
위 항목들의 신뢰가 무너진 유사 사례들을 많이 찾을 수 있다. 푼돈을 보관한다면 일기앱과 마찬가지로 적당히 믿음직스러워 보이는 하나 설치해서 쓰면 되겠지만, 보관하고자 하는 자산의 규모가 클 수록 신뢰해야하는 항목 하나하나를 조심스럽게 검토해볼 필요가 있다.
나에 대한 신뢰
이 문제에 대해 나보다 앞서 고민을 했던 사람들은 그래서 소프트웨어 지갑보다는 외부 네트워크로부터 완전히 차단된 하드웨어 지갑(전자기기 또는 종이, 금속판 등)에 비트코인을 보관하는 방식으로 이 문제를 해결하고자 한다. 그러나 하드웨어 지갑도 앞서 말한 타인에 대한 신뢰의 문제로부터 자유로울 수 없다. 도난, 파손, 유출 등이 충분히 발생할 수 있다. 그래서 타인을 절대적으로 신뢰하지 못하는 사람들은 지갑을 쓰지 않고, 비트코인 비밀키(시드 문구)를 그냥 머리로 외우는 식으로 비트코인을 보관하곤 한다. 비트코인은 어차피 블록체인에 저장되어있고, 지갑의 역할은 블록체인에 저장된 내 비트코인을 사용하기 위한 비밀키를 보관하는 것이니, 지갑 대신 뇌에 비밀키를 저장하기로 선택한 것이다. 처음에는 이 접근방식이 가장 합리적인 선택으로 느껴졌다. 타인에 대한 신뢰의 필요성을 0으로 만들 수 있는 선택지이기 때문이다. 그러나 이 선택은 나에 대한 절대적인 신뢰를 요구한다.
- 시드문구를 올바르게 외우고 절대 까먹지 않을 자신이 있다.
- 비트코인을 보관하는 기간동안 뇌손상이나 심각한 부상을 피할 수 있다.
- 술 기운에, 잠결에(수면내시경 포함), 혹은 각종 유혹과 사기에 외운 시드문구를 유출하지 않을 자신이 있다.
적고 보니 나는 나를 크게 신뢰하지는 못하겠다. 어쩌면 나에 대한 신뢰가 타인에 대한 신뢰보다 더 신중해야할 수도 있다.
해결책?
단일실패지점(Single Point of Failure)을 만들지 않는 것이 중요하다. 즉 내가 행동을 하는 기반이 되는 수많은 신뢰중 한 곳의 신뢰가 깨지더라도 무너지지 않는 시스템을 만들어야한다. 대표적인 방법으로 키를 3조각으로 나눈 후 2조각 이상 갖고 있어야 온전한 키로 사용할 수 있는 Shamir Secret Sharing 방식이 있다. 이럴 경우 한 조각이 도난/분실되어도 시스템이 무너지지 않는다. 그러나 이러한 시스템을 만드는 것은 단일실패지점이 존재하는 시스템을 만드는 것보다 더 어렵다. 그래서 안전하게 비트코인을 보관하기 위해서는 공부가 정말 많이 필요하다는 것을 느낀다. 5년 후, 10년 후에 Self Custody가 대중화가 될 수 있을까? 된다면 이런 신뢰의 문제를 어떻게 해결했을지 정말 궁금하다.