Web 3.0 지갑 시리즈 (1)
정답은 바로 3개 회사 모두 5월에 새로운 암호화폐 지갑 솔루션에 대해서 발표했다는 점이다.
현재 Web 3.0 생태계에 새로운 유저를 온보딩시키는 과정에서 많은 이탈이 일어나는 포인트가 바로 지갑의 사용이다. 특히 비수탁 지갑을 사용하면서 프라이빗 키(Private Key) 관리와 Gas Fee 부담은 두 개의 큰 Pain Point로 자리 잡고 있다. 비수탁 지갑은 유저가 Defi나 NFT 프로덕트를 접하려면 무조건 거쳐야하는 관문이며, Web 3.0와 만나는 첫번째 지점이기에 많은 기업들에서 유저들이 사용하기 편리한 지갑을 출시하기 위한 움직임을 보이고 있다. 특히 5월에만 코인베이스, 로빈후드, 게임스탁이 새로운 지갑 솔루션에 대해서 발표를 했기 때문에 각 기업들이 어떤 방식으로 해당 문제를 접근하여, 어떤 구체적인 솔루션을 제시하고 있는지 살펴볼 것이다.
먼저, 코인베이스는 별도의 어플 없이 현재의 코인베이스 거래소 어플 안에서도 Dapp들에 접근할 수 있는 솔루션을 발표하였고, 로빈후드는 네트워크 수수료 없이 코인을 거래할 수 있는 비수탁(Non-Custodial) 지갑 출시를 예고하였다. 마지막으로 게임스탑의 경우도 자체 지갑을 발표하였는데, 앞선 두 기업들처럼 차별적인 기능이 있는 지갑을 출시한 것은 아니지만 Web 2.0 회사에서 자체적인 암호화폐 지갑을 출시하였다는 점이 인상 깊다. 앞서 말했듯이 게임스탑의 지갑은 차별적인 기능이 없고, 로빈후드의 경우는 어떤 방식으로 네트워크 수수료 없이 코인을 거래할 수 있는 비수탁(Non-Custodial) 지갑을 구현할지는 아직 구체적으로 발표된 것이 없기 때문에, 해당 글에서는 코인베이스의 반수탁(Semi-Custodial) 지갑을 위주로 다룰 것이다. (로빈후드의 비수탁(Non-Custodial) 지갑에 대한 구체적인 사항들이 나오면 해당 지갑에 대한 글을 따로 작성할 예정이다)
코인베이스의 반수탁(Semi-Custodial) 지갑의 원리를 이해하기 위해서는 먼저 프라이빗 키(Private Key), 비수탁(Non-Custodial) 지갑, 수탁(Custodial) 지갑에 대해서 알아야 한다.
1. 암호화폐 지갑 생성 및 거래 과정 (이더리움 예시)
가장 먼저 이더리움 소프트웨어는 기본 운영 체제의 난수 생성기를 사용하여 임의의 256bit짜리 문자열을 생성시키는데 이것이 바로 '프라이빗 키(Private Key)'이다. 그리고 이 프라이빗 키(Private Key)를 가지고 타원곡선 암호 알고리즘(Elliptic curve cryptography)를 이용하여 '공개키(Public Key)'를 생성한다. 그리고 이 공개키를 다시 한 번 해싱하여 우리가 흔히 송금할 때 사용하는 지갑 주소(Account Address)가 만들어진다. 여기서 중요한 점은 프라이빗 키(Private Key)를 가지고 공개키(Public Key)를 생성할 수는 있지만, 공개키 (Public Key)를 가지고는 프라이빗 키(Private Key)를 유추할 수 없다는 것이다. 이를 그림으로 나타내면 다음과 같다.
* 시드 구문 (Seed Phrase): 2048개의 영단어를 이용해서 프라이빗 키(Private Key)를 사람이 읽을 수 있는 형태로 변환한 문구. 자세한 생성 원리는 다음 글 참고 바람 https://medium.com/coinmonks/bitcoin-and-ethereum-seed-phrases-explained-for-non-technical-people-a9f2a49c388d
암호화폐 거래, 즉 트랜잭션은 모두 ‘공개키 암호화’ 방식을 이용해 서명해야만 유효한 것으로 인정된다. 공개키 암호화 방식이란 개인키 그리고 그 개인키에 대응하는 공개키의 쌍으로 이루어지는 암호화 과정으로, 암호화폐 거래 시 개인키로 서명한 트랜잭션을 공개키로 확인함으로써 거래의 주체가 확실하다는 사실을 검증하는 방식이다. 그렇기 때문에 거래를 위해서 공개키(Public Key)는 모두에게 알려져도 되지만 프라이빗 키(Private Key)는 혼자만 알고 있어야하는 것이다.
2. 암호화폐 지갑의 종류
코인베이스의 반수탁(Semi-Custodial) 지갑 출시 이전까지 암호화폐 지갑은 프라이빗 키(Private Key) 보관 방식에 따라서 크게 수탁(Custodial) 지갑과 비수탁(Non-Custodial) 지갑으로 구분하였다. 수탁(Custodial) 지갑의 경우는 우리가 흔히 쓰는 거래소인 바이낸스나 업비트처럼 거래소에서 우리의 프라이빗 키(Private Key)를 보관해주는 방식이다. 해당 방식은 프라이빗 키(Private Key)를 개인이 관리하지 않아도 되기 때문에 편리하다는 장점이 있지만, 프라이빗 키(Private Key)를 거래소에서 관리하기 때문에 탈중앙성이 떨어지며 보안상의 이유로 외부 Dapp들을 사용할 수 없다는 단점이 있다. 반면, 비수탁(Non-Custodial) 지갑의 경우는 메타마스크와 같이 프라이빗 키(Private Key)를 개인이 보관하는 방식이다. 해당 방식은 탈중앙성이 높고 외부 Dapp들을 사용할 수 있다는 장점이 있지만, 프라이빗 키(Private Key) 관리의 번거로움이 존재한다는 단점이 있다.
코인베이스의 반수탁(Semi-Custodial) 지갑은 MPC(Multi-Party Computation) 기술을 활용하여 유저들의 프라이빗 키(Private Key)의 일부는 코인베이스가, 다른 일부는 유저가 저장하는 방식이다. 이러한 방식은 양쪽이 가지고 있는 정보가 모두 합쳐져야 프라이빗 키(Private Key)가 완성되어 거래가 완료되기 때문에, 한쪽의 키가 유출된다고 하더라도 지갑이 안전하게 보관되는 특징을 가진다. 우선은 해당 기술이 구현되는 원리를 살펴본 다음에, 해당 기술을 활용한 반수탁(Semi-Custodial) 지갑이 유저들에 가져다 주는 이점에 대해서 알아볼 것이다.
1. MPC (Multi-Party Computation)
MPC(Multi-Party Computation)이란 다수의 사용자가 각자의 비밀 값을 입력값으로 하여 함숫값을 함께 계산하는 기술이다. 즉, MPC(Multi-Party Computation)를 적용한 암호화폐 지갑은 프라이빗 키(함숫값)를 저장하는 대신에 함께 모였을 때 프라이빗 키(함숫값)를 연산할 수 있는 개별 키(입력값)를 서로 신뢰하지 않은 주체들이 별도로 저장하는 방식으로 운영된다. 이러한 방식의 장점은 단일 당사자가 전체 키에 액세스하거나 볼 수 없다는 점이다.
MPC(Multi-Party Computation) 지갑에서 어떠한 트랜잭션에 서명하기 위해서는 전체 N개의 참여자 중 M명 이상(설정하기에 따라 다름)이 동의해야 한다. 따라서, 만약 M-1개 이하의 개별 키가 노출된다고 하더라도 해당 지갑은 탈취의 위험을 겪지 않는다. 이렇듯 MPC(Multi-Party Computation)를 활용한 보안 솔루션은 하나의 프라이빗 키(Private Key)를 저장하는 것보다 안전하다. 그렇기 때문에 이미 몇 년 전부터 기관들의 암호화폐를 수탁하여 운영하는 Fireblocks, Coinbase Custody 등 많은 암호화폐 수탁기업들이 보안 솔루션으로서 사용하고 있다.
* MPC vc Multi-Sig
어떠한 트랜잭션에 서명하기 위해서 전체 N개의 참여자 중 M명 이상이 동의를 해야 한다는 점에서 MPC(Multi-Party Computation) 지갑과 Multi-Sig 지갑의 차이점에 대한 의문이 생기는 분들이 많을 것이다. 우선 가장 큰 차이점은 MPC(Multi-Party Computation) 지갑의 서명 과정은 오프체인에서 일어나고, Multi-Sig 지갑의 서명은 온체인에서 일어난다는 것이다. MPC(Multi-Party Computation) 지갑은 오프체인에서 N개의 참여자 중 M명 이상이 참여하여 특정 함수를 통해 하나의 프라이빗 키(Private Key)를 완성하여 서명을 진행한다. 반면, Multi-Sig 지갑은 온체인 상에서 스마트 컨트랙트를 통해 해당 트랜잭션에 대해서 투표권이 있는 주체들이 일종의 찬반 투표를 통해 해당 트랜잭션을 승인한다. 이러한 특징으로 인해 MPC(Multi-Party Computation) 지갑은 Multi-Sig 지갑과 비교해서 다음과 같은 장점을 가진다.
1. 호환성이 좋다
Multi-Sig 지갑은 스마트 컨트랙트로 작동하기 때문에 호환성이 떨어진다. 가령 EVM 호환 체인들끼리는 새로 컨트랙트를 짜지 않아도 되지만, 그렇지 않은 경우 Multi-Sig 지갑은 스마트 컨트랙트를 다시 짜야한다. 반면, MPC(Multi-Party Computation) 지갑은 오프체인에서 프라이빗 키(Private Key)를 완성하는 방식이기 때문에 다양한 블록체인과의 호환성이 좋다.
2. 저렴하다
Multi-Sig 지갑은 스마트 컨트랙트를 기반으로 온체인에서 작동한다. 그렇기 때문에 지갑을 사용할 때 추가적인 Gas Fee를 지불해야 한다. 반면 MPC(Multi-Party Computation) 지갑은 오프체인에서 함수를 활용하기 때문에 Gas Fee가 들지 않는다.
3. 수정이 쉽다
MPC(Multi-Party Computation) 또는 Multi-Sig 지갑을 운영하면서 지갑을 관리하는 주체들이 바뀌는 일이 생길 수 있다. 이때 Multi-Sig 지갑의 경우 개인 키를 변경하거나 분실된 키를 교체할 때마다 공개-개인 키와 계정을 동기화하기 위해 온체인 트랜잭션을 실행해야 한다. 이로 인해 거래 수수료가 증가하고 절차가 복잡해진다. 반면 MPC(Multi-Party Computation) 지갑의 경우 동일한 프라이빗 키(Private Key)를 나타내기 위해 분산된 개별 키의 다양한 랜덤 조합을 생성할 수 있다. 따라서 개인 키를 변경하거나 분실된 키를 교체할 때에도 Multi-Sig 지갑과 비교해서 매우 편리하게 해당 작업을 완료할 수 있다.
반면 MPC(Multi-Party Computation) 지갑은 Multi-Sig 지갑과 비교해서 다음과 같은 단점을 가지기도 한다.
1. 어떤 참여 주체가 동의했는지 알 수 없다
온체인에서 특정 참여 주체들의 동의 여부를 확인할 수 있는 Multi-Sig 지갑과 다르게 MPC(Multi-Party Computation) 지갑의 서명은 오프체인에서 참여 주체들이 서로에 대해서 알 수 없는 상태에서 진행되기 때문에 특정 서명에 대해서 책임이 있는 참여 주체를 알아내기 힘들다. 하지만 오히려 참여 주체들의 정보가 노출되지 않기 때문에 보안상으로는 더 안전하다는 주장도 존재한다.
2. 하드웨어 웨어 보안 모델들과의 호환성이 떨어진다
MPC(Multi-Party Computation) 지갑의 경우 아직까지 호환되는 하드웨어 보안 모델을 내놓고 있는 업체가 많지 않다.
2. 코인베이스의 반수탁(Semi-Custodial) 지갑의 이점
이러한 방식으로 프라이빗 키(Private Key)를 여러 주체들이 나누어 가지는 MPC(Multi-Party Computation) 기술을 적용한 덕분에 코인베이스의 반수탁(Semi-Custodial) 지갑은 크게 다음과 같은 두 가지 이점을 가진다.
1) 단일 실패 지점 (Single Point of Failure) 제거로 인한 보안성 향상
단일 실패 지점(Single Point of Failure)이란 시스템의 구성 요소 중에서, 해당 요소가 동작하지 않으면 전체 시스템이 중단되는 요소를 말한다. 기존 비수탁(Non-Custodial) 지갑을 사용함에 있어서 프라이빗 키(Private Key)가 유출되면 해당 지갑에 대한 모든 통제권이 넘어가기 때문에, 프라이빗 키(Private Key)가 단일 실패 지점(Single Point of Failure)이었다. 하지만 MPC(Multi-Party Computation) 기술을 활용한 코인베이스의 새로운 반수탁(Semi-Custodial) 지갑은 키의 구성요소를 여러 주체가 나누어서 보관하기 때문에, 유저가 자신의 몫을 잃어버려도 지갑은 안전하게 보관될 수 있다. 이를 통해서 단일 실패 지점(Single Point of Failure)를 제거함으로써 지갑의 보안성을 강화할 수 있다.
2) Dapp 접근을 위한 유저 플로우 개선
코인베이스의 반수탁(Semi-Custodial) 지갑의 출시되기 전까지 유저들이 Opensea나 Sushiswap과 같은 Dapp들에 접근하기 위해서는 다음과 같은 과정을 겪어야했다. 먼저, 업비트 혹은 코인베이스와 같은 중앙화 거래소 어플에 있는 코인을 메타마스크와 같은 비수탁(Non-Custodial) 지갑으로 이체한다. 그리고 이체가 확인되면 Opensea나 Sushiswap 등 원하는 Dapp에 접속하여 사용한다.
하지만 코인베이스의 반수탁(Semi-Custodial) 지갑은 비수탁(Non-Custodial) 지갑으로 이체하는 과정을 생략하여 거래소 어플에서 바로 Dapp들에 접속이 가능하도록 만들었다. 이를 통해서 유저들은 비수탁(Non-Custodial) 지갑으로 코인을 이체하는 번거로운 과정을 생략할 수 있어, 이체 시간과 이체 Gas Fee를 절약할 수 있게 되었다.
기존의 거래소 어플들이 Dapp들에 대한 직접적인 접근을 제공하지 않은 이유는 보안 때문이었다. 거래소 어플 내 수탁(Custodial) 지갑에 들어있는 유저들의 자산은 전부 온라인과 연결되어 있지 않은 콜드 스토리지(Cold Storage)에 보관되어 있었다. 이렇게 거래소가 유저들의 자산을 콜드 스토리지(Cold Storage)에 보관하는 이유는 (Dapp들을 이용할 수 있는) 온라인에 연결된 핫월렛(How Wallet)의 경우는 해킹의 위험이 크기 때문이다. 하지만 코인베이스는 프라이빗 키(Private Key)의 구성 요소를 여러 주체가 나누어 보관하는 MPC(Multi-Party Computation) 기술을 적용한 지갑을 도입함으로써 하나의 주체가 해킹되더라도 해당 지갑에 대한 통제권이 넘어가지 않도록 하였다. 이렇게 하여 높아진 보안성을 바탕으로 코인베이스는 거래소 어플에서 바로 Dapp들에 접속할 수 있는 반수탁(Semi-Custodial) 지갑을 구현하였다.
지금까지 우리는 코인베이스 반수탁(Semi-Custodial) 지갑의 원리와 그에 따른 장점들에 대해서 살펴보았다. 코인베이스의 새로운 프로덕트는 유저들이 Web 3.0 지갑을 사용하면서 경험하는 가장 큰 Painpoint 중 하나인 프라이빗 키(Private Key) 관리와 관련된 문제들을 해결해주는 혁신적인 제품이다. 해외거래소를 이용하지 않는 분들을 위해서 쉽게 설명하자면 업비트 혹은 빗썸의 어플 안에서 바로 Opensea에 접속해서 NFT를 구입할 수 있게 된 것이다. 업비트 혹은 빗썸과 같은 중앙화 거래소에 있는 자산을 메타마스크와 같은 비수탁(Non-Custodial) 지갑으로 옮기지 않고도 Opensea와 같은 Dapp을 이용할 수 있다는 것은 유저들의 시간과 비용을 아껴줄뿐만이 아니라, 새롭게 Dapp들을 접하는 유저들을 더욱 쉽게 Web 3.0 생태계에 온보딩 시킬 수 있다는 장점을 가진다.
글의 초반부에서 언급한 것처럼 유저들이 Web 3.0 지갑을 사용하면서 경험하는 나머지 하나의 큰 Painpoint는 바로 Gas Fee 부담이다. 이더리움 상에서 NFT를 민팅하거나 토큰을 스왑해본 경험이 있는 사람이라면 Gas Fee가 은근히 부담된다는 사실을 느꼈을 것이다. 특히 네트워크 혼잡도가 올라가는 상황에는 간단한 트랜잭션 하나에 $100 이상의 Gas Fee가 책정되기도 한다. 그렇기 때문에 지난 달 5월 17일에 로빈후드가 발표한 비수탁(Non-Custodial) 지갑 솔루션이 기대가 되는 바이다.
로빈후드의 공식 블로그에 따르면 이용자들은 Network Fee 없이 코인을 사고 팔 수 있다(Trade and swap crypto with no network fees)고 언급되어 있다. 도대체 어떤 방식으로 비수탁(Non-Custodial) 지갑을 사용하면서 Network Fee 없이 코인을 사고 팔 수 있는 건지에 대한 구체적인 사항들은 공개된 것이 없지만, 로빈후드의 CTO인 Johann Kerbrat의 인터뷰에 따르면 "유동성 공급자들과 파트너십을 체결하여 최고의 가격을 제공할 예정(partnering with liquidity partners to get the best price)"이라고 한다. 즉 이 말에서 유추해보건데 모든 코인을 Network Fee 없이 트레이딩할 수 있는 것은 아니고 수요가 많은 특정 페어만 해당 서비스를 제공하지 않을까 조심스레 추측해본다. 올해 말에 프로덕트가 정식 출시되고 더 많은 정보가 생기면 해당 주제에 대해서는 다시 다루어볼 예정이다.
이렇듯 우리는 미국의 대형 IT 기업들이 유저들에게 더 나은 지갑 사용 경험을 선사하기 위해서 다양하게 노력하고 있는 모습들을 살펴보았다. 프라이빗 키(Private Key) 관리의 문제를 해결해주는 코인베이스 반수탁(Semi-Custodial) 지갑과 유저들의 Gas Fee 부담을 줄여주는 로빈후드의 비수탁(Non-Custodial) 지갑 모두 Web 3.0 생태계에 새로운 유저들을 온보딩시키는데 큰 도움을 줄 것이다. 해당 솔루션들을 바탕으로 더 많은 유저들이 자유롭게 Dapp들을 사용하고 실질적인 Use Case들을 만들어나감으로써 Crypto의 Mass Adoption이 하루 빨리 오길 바라며 글을 마친다.