Cypherpunk와 공개 블록체인

in #blockchain6 years ago

공개 블록체인 기반 가상화폐는 영어로는 ‘크립토커런시’ 즉 ‘암호화폐’로 불린다. 비트코인의 선조라고 볼 수 있는 디지캐시나 비머니, 비트골드 같은 전자화폐들이 디지털 정보로 기록되는 화폐의 보안 기술로 암호 기술을 사용해 왔고 비트코인도 비대칭키 암호를 사용한다는 점을 염두에 둔 명칭인 듯하다. 이 설명은 많은 사람들에게 공감을 얻고 있으며, 나 역시 그럴듯하다고 생각한다.  

그러나 비트코인에서 비대칭키 암호가 사용되는 방식을 자세히 보면 ‘비트코인을 암호화폐라고 부르는 것이 적절한가?’라는 생각을 한번쯤 해보게 된다. 왜냐하면 비트코인에서 비대칭키 암호가 사용되는 방식은 우리가 암호에 대해 알고있는 가장 전형적인 방식이 아니기 때문이다. 비트코인 논문의 첫문장은 그런 점에서 의미심장하다.  

 

우리는 전자화폐를 전자서명의 체인으로 정의한다

이것은 암호화폐의 창시자로 불리는 데이비드 차움의 그것과 상당히 멀리 떨어져 있다.(물론 그렇다 해도 차움의 위대함은 조금도 줄어들지 않는다.^^) 차움이 목표로 한 것이, ‘익명성’을 유지하면서 ‘이중지불’을 배제하는 것이 가능한 전자화폐의 ‘지불 시스템’이었던 것과 비교해 볼 때, 사토시는 전자화폐 자체를 전자서명을 이용하여 ‘찍어내는’ 방법을 이야기하고 있기 때문이다. 차움의 익명성이 ‘송금’ 단계에서 만들어지는 것인 반면, 사토시의 익명성은 ‘발권’ 단계에서 만들어진다. 

비트코인은 처음부터 ‘익명’의 채굴자에게 발권된 것이다.(아니 사실은 채굴자가 발권해서 네트워크에 서명을 요구한 것이다.) 채굴자들은 참여자들의 합의를 거쳐 ‘전자서명의 체인’을 블록으로 만듦으로써 체인을 방어한다. 이런 상황을 고려하면 우리는 ‘비트코인’에 의해서 시작된 ‘공개 블록체인 기반 가상화폐’를 ‘암호화폐’라고 부르기 보다는 ‘전자서명 합의 화폐’라고 불러야 한다.  

익명성과 이중지불 방지에 대한 사상이 ‘위대한’ 차움으로부터 온 것이라면 ‘채굴자 발권’의 사상은 어디서 온 것일까? 그것은 바로 b-money의 창시자인 크립토아나키스트 웨이다이로부터 온 것이다. 웨이다이는 PoW(작업증명)가 채굴자 발권의 기초가 될 수 있음을 처음으로 제시하였는데, 그의 이러한 관점은 차움의 사이버펑크(cyberpunk) 혹은 사이퍼펑크(cypherpunk)에서 한 걸음 더 나아간 것이었다. 사이버펑크는 ‘감시의 거부’라는 수동적 저항의 산물이지만, 크립토아나키즘은 ‘국가의 폐지’라는 능동적 대체의 지향을 드러낸다. 그리고 그것은 전통적인 무정부주의와도 다른 것이었다.(심지어 PoS(Proof of Stake)의 아이디어도 b-money 제안 안에 나타나 있다.)   

전통적 무정부주의와 달리, 크립토아나키즘에서는 ‘정부’를 일시적 파괴의 대상으로 보는 것이 아니라 영구히 금지되어야하며 영원히 쓸모없는 것이라고 인식한다…. 누구든지 이전에 해결되지 않은 컴퓨팅 문제에 대한 답을 찾고 이를 브로드캐스팅함으로써 돈을 발권할 수 있다. 이를 위한 유일한 조건은 그 문제를 풀기 위해 얼마나 많은 컴퓨팅 파워가 소모되는지를 쉽게 결정할 수 있어야하며, 그 답이 실용적으로든 지적으로든 가치를 가진 것이 아니어야한다는 것이다. (출처 : http://www.weidai.com/bmoney.txt)   

암호화폐에 대한 계보적 접근은 공개 블록체인을 연구하는데 좋은 방법론을 제공한다. 그것은 바로 크립토 아나키즘과의 계보적 비교 연구다. 물론 크립토 아나키즘은 가상화폐의 경제학을 제공하지 않으며 당연히 ICO와 같은 산업적 이슈들을 제시하지 않는다. 하지만 이들에 대한 비교 연구는 적어도 ‘암호화폐’가 풀어야 할 문제들을 발견할 수 있는 기회를 제공한다. 크립토 아나키즘의 두 축인 ‘암호화폐’와 ‘딥웹’은 그런 이유에서 한 시야 안에서 연구될 필요가 있다.     

공개 블록체인의 암호시스템   

그럼에도 ‘암호 화폐’라는 명칭은 여전히 유효하다. ‘전자서명’이 현대 암호 시스템의 중요한 일부라는 사실과 그것이 결과적으로 화폐의 ‘발권’에서 ‘사용’에 이르는 전구간에서(end-to-end) ‘익명성’을 방어한다는 점에서 그렇다.    

사실 현대 암호 시스템에서도 ‘다자간 전구간 익명성’을 유지하는 것은 쉽지 않은 문제다. 그것을 유지하면서 암호화된 채널 내의 이벤트와 현실에 있는 특정한 개인과 어떻게 연결할 것인지는 암호학의 전통적 주제다. 이 문제를 해결하기 위해 제안된 암호 시스템이 바로 PKI(Public Key Infrastructure)인데, 이는 ‘중앙화된’ 인증기관(CA : Certificate Authority)을 필요로 한다. 즉, 익명성 구간에서 ‘하나의 노드’, 즉 CA를 제외함으로써(부분적으로 CA 기능을 위임받은 RA : Registration Authority 까지) 다자간 전구간 익명성을 제공할 수 있는 암호 시스템이었다. 이는 매우 실용적이고 온라인에서 보안성을 확보하려는 ‘중앙화된 기관’에게는 좋은 솔루션이었다. 그리고 RA는 오프라인 상의 개체를 온라인 상의 익명화된 개체로 연결하는 유일한 연결점이다.    

하지만 가끔 공개 블록체인이 사용하고 있는 암호 시스템이 PKI라고 말하는 용어적 혼란이 있음을 보게된다. 그것은 비대칭키 암호와 PKI라는 암호 시스템에 대한 혼동 때문이다. 비대칭키 암호는 하나의 암호 Key를 상대에게 전달하여, 특정한 메시지의 작성자가 다른 한 쪽의 암호 Key를 가진 주체라는 것을 보장하는 암호 메카니즘을 제공할 수 있는 수학적 암호 원리다. 하지만 PKI는 이 원리를 이용하여 특정 메시지의 작성자가 ‘누구’인지를 확정할 수 있게 하기 위해 비대칭키의 한쪽 암호 Key(프라이빗 키)를 가진 사람이 자신의 신원과 나머지 한 쪽 암호 Key(퍼블릭 키)를 ‘신뢰할 수 있는 기관’(RA/CA)에 ‘등록’하여, 임의의 메시지가 등록된 암호 Key에 의해 복호화 가능하다면, 그 메시지의 작성자가 그 암호 Key를 등록한 사람임을 믿고 법률행위를 할 수 있도록 하기 위한 ‘사회적인 온라인 암호 인프라’다.    

그런 점을 감안하면 블록체인은 모두 비대칭키 암호를 사용하지만, 공개 블록체인은 인증기관이 없는 ‘비대칭키 암호 시스템’을 기반으로 만들어졌고, 사설 블록체인은 ‘신뢰’할 수 있는 참여자들을 ‘등록’하는 PKI를 사용한다는 점에서, 다른 관점에서 ‘비대칭키 암호’를 사용하고 있는 것이다. 그리고 이것은 근본적으로 다른 의미를 갖는다.   

공개 블록체인에서 비대칭키 암호는 ‘공개키 암호 시스템’으로 사용된다. ‘공개키 암호 시스템’이란 무엇보다 생성된 두 개의 암호 키 중에서 하나를 선택하여 ‘공공연하게’ 전파하는 방식을 지칭한다. 그렇게 되면 ‘암호 시스템’이 제공할 수 있는 서비스는 두 가지다. 하나는 암호 시스템 내에서의 이벤트 생성 주체를 암호 시스템 내의 아이덴티티(특정 공개키와 쌍을 이루는 개인키의 소유자로서의 아이덴티티)로 확인할 수 있게 해주는 ‘전자서명’이고, 다른 하나는 임의의 사용자가 ‘공개키’에 대응하는 ‘개인키’를 가진 주체에게 ‘암호화된 메시지’를 전달할 수 있는 ‘비밀 채널’을 만드는 것이다. 그러나 공개 블록체인에서는 후자의 서비스는 사용되지 않는다. 그리고 여기까지는 ‘암호 시스템’ 밖의 존재, 즉 ‘신뢰성’을 제공하는 외부 원천을 전혀 도입하지 않는다는 뜻이다.   

‘딥웹’과 비교해 보면, ‘비대칭키 암호 시스템’이 공개 블록체인의 ‘네임스페이스’를 생성하는데 사용된다는 점도 중요한 의미를 갖는다는 것을 알 수 있다. 물론 공개키 자체를 전자지갑 주소로 사용하는 것이 아니므로 사용 가능한 네임스페이스는 그보다 확장될 수 있다. 이더리움에서는 공개키를 기반으로 생성된 네임스페이스를 사용자 어카운트와 컨트랙트 어카운트가 함께 사용하고 있다. 이것은 비트코인이 공개키를 이용하여 만든 전자지갑 주소와 해시를 이용한 TXID 및 머클트리를 사용하는 것과 비교해서 볼 수 있는데, 포괄적으로 보면 공개 블록체인은 공개키와 해시를 조합한 네임스페이스를 사용하는 컴퓨팅 도메인을 생성하여 활용하고 있는 셈이다.    

이런 방식으로 네임스페이스를 생성하는 것의 장점은 분명하다. 그것은 네임스페이스의 관리자를 필요로 하지 않는다는 것이다. 물론 해시 충돌(Hash Collision)이 일어날 가능성이 0인 것은 아니지만, 최소 100년 내에는 SHA-2 해시의 해시 충돌이 일어나기 어려울 정도로 충분히 확률이 낮다는 점에서, 별도의 도메인 컨트롤러를 필요로 하지 않는 네임스페이스를 활용할 수 있게 된 것이다.    

이를 종합해보면 공개 블록체인의 온체인 컴퓨팅은 비대칭키 암호 시스템과 SHA-2 해시를 활용한 주소 공간과 비대칭키 암호 시스템 상의 아이덴티티만을 이용하여 ‘온체인 객체’와 ‘온체인 이벤트’를 만들어 내며, 오직 이들을 활용해서만 컴퓨팅을 수행하는 ‘암호학적으로 닫힌 컴퓨팅 공간’인 셈이다. 이는 크립토아나키즘의 사촌인 ‘딥웹’이 ‘암호학적으로 닫힌 인터넷’을 추구하는 것과 같은 맥락이다. 그런 이유로 우리는 이를 달성하기 위해 ‘딥웹’이 이룬 컴퓨팅 아키텍처 상의 성과들을 거의 그대로 공개 블록체인에 활용할 수 있다. 어니언 라우팅을 근간으로 하는 ‘딥웹’ 역시 해시와 비대칭키 암호를 이용한 네임스페이스를 기반으로 만들어졌다.      

암호 시스템을 이용한 온체인 컴퓨팅 도메인의 확장   

온체인 컴퓨팅은 ‘암호학적으로 닫힌 컴퓨팅 공간’과 ‘합의 알고리즘에 의한 신뢰성 방어’에 의해 보호된다. 그러나 문제는 온체인 컴퓨팅의 목적이 이 두가지만 요구하는 것은 아니라는 점이다. 그 중에서도 합의 알고리즘에 의한 방어 메카니즘은 종종 온체인 컴퓨팅의 성능 문제의 원천으로 지목된다. 하지만 엄밀하게 따지면 온체인 컴퓨팅이 참여하는 컴퓨터의 댓수가 증가하더라도 ‘오직 하나의 컴퓨팅 도메인’으로 작동해야한다는 점이 성능 문제 해결에 걸림돌이 된다. 이런 상황을 고려하면서 현재 진행 중인 공개 블록체인의 성능 개선 시도들을 재해석해 보기로 하자.   

라이트닝 네트워크(Lightning Network) 

하나의 온체인 트랜잭션을 앵커로 삼아, 오프체인 상에서 거래 쌍방 간에 비대칭키 암호 채널을 형성하여, 온체인 컴퓨팅의 트랜잭션 수를 줄이면서 속도를 개선   

샤딩(Sharding) 

온체인 상에서 ‘암호학적으로 닫힌 컴퓨팅 공간’을 여러개의 서브 공간으로 분할하고 ‘합의 알고리즘에 의한 신뢰성 방어’ 체계도 각 서브 공간 단위로 작동할 수 있도록 하여, 온체인 상에서 컴퓨팅 성능을 스케일업   

플라즈마(Plazma) 

dApp이 독자적으로 암호학적으로 닫힌 컴퓨팅 공간이면서 합의에 의해 신뢰성이 방어되는 블록체인을 만들고, 이를 메인 체인 상에서 동작하는 온체인 컴퓨팅 공간에 검증이 가능하도록 최소화된 트랜잭션으로 동기화하는 오프체인 스케일업   

그러나 이러한 개선 시도는 ‘암호학적으로 닫힌’ 블록체인 컴퓨팅의 장점을 버리면서 다른 이점을 취하는 경우도 있고, 합의에 의한 방어 비용을 낮추기 위해 ‘신뢰 없는 공개 네트워크’로서의 장점을 약화시키는 경우가 있다. 당연히 오프체인 상의 ‘신분’과 온체인 상의 ‘아이덴티티’를 연결하는 ‘중앙화된 연결점’을 만듦으로써 온체인 이벤트의 익명성에 구멍을 내는 경우도 있다.    

공개 블록체인 커뮤니티는 이런 시도를 통해 생긴 ‘취약점’들을 해결하는 새로운 솔루션을 궁리 중이다. 주소 공간을 비틀어서 거래 추적 가능성을 차단하는 믹싱 기술이나, ringCT(링 시그니처 + 컨피덴셜 트랜잭션), 영지식 증명, 동형 암호(Homomorphic Encryption), 암호문 상태에서 사칙연산과 대소비교가 가능한 암호 시스템)을 이용한 프라이버시 보호 기술 등이 그것들이다. (이에 대해서는 소브린월렛 윤석구님의 최근 디센터 기고를 참고하시길…)    

‘딥웹’ 쪽에서도 취약점에 대한 논의는 다양하게 이루어진다. 특히 ‘딥웹’의 끝에 연결된 개인의 퍼스널컴퓨터는 실명화된 세계와의 접점이라는 점에서 취약한 지점이 된다. 또한 어니언 라우팅의 말단에서 Tor 노드와 ISP의 TCP 노드 간 통신은 익명화되지 않는다는 것도 취약점의 원천이 된다. 당연히 이 문제를 해결하려는 새로운 기술적 제안들도 나오고 있다.   

실용적 개선이 진행될 수록 공개 블록체인 컴퓨팅과 사설 블록체인 컴퓨팅 사이의 경계는 불분명해져 가고 있다. 개선을 위해 주소 공간을 변형하는 순간 해시와 비대칭키라는 단순한 원리의 견고함은 사라진다. 오프체인 상의 개체와 온체인 상의 개체를 더 강하게 연결할 수록, 온체인 컴퓨팅의 익명성은 취약해진다. 마찬가지로 합의를 이루는데 들어가는 비용을 낮추기 위해 합의 구조를 바꾸면 그 위에 올릴 수 있는 경제의 크기가 제한되거나 구조적 안정성이 문제가 될 가능성이 높아진다.   

그러나 그것은 ‘실용주의’적 동기에서 유용성을 높이는 과정에서의 trade-off일 뿐아니라 크립토아나키즘적 동기에서도 감당해야 할 리스크임은 분명하다. 크립토아나키즘은 도피의 공간이 아니라 세상을 변화시키는 거점이기 때문이다.