지갑 2.0 시대: MPC 지갑 vs. 스마트 계약 지갑

IOSG 벤처스
2022-10-25 10:19:09
수집
MPC 지갑은 오프체인 솔루션으로, 이더리움 합의 계층이나 계약 계층의 변경과는 관련이 없으며, 사용자 비용이 더 낮고 단기적으로 더 실현 가능성이 높습니다.

저자: Chloe,IOSG Ventures

보고타에서 열린 Devcon 6 회의에서 Tomasz Tunguz는 Web3.0에 대한 몇 가지 통계 데이터를 언급했습니다: 주요 공공 블록체인의 DAU는 약 250만이며, 전통적인 인터넷의 DAU는 50억입니다. 전자는 후자의 0.05%에 불과합니다. 공급 측면에서 약 1.6만 명의 개발자가 Web3.0을 개발하고 있으며, 전 세계 개발자 수는 2700만에 달하고, Web3 개발자는 0.06%에도 미치지 못합니다. 따라서 Web3.0은 대규모 채택에 아직 멀었습니다.

지갑은 Web3.0의 진입점으로서, 사용자 경험이 암호화 산업의 대규모 채택 시기에 직접적인 영향을 미칩니다. 여러 지갑들이 이 부분에 힘쓰고 있지만, 일반 사용자에게는 여전히 지갑 사용 경험이 만족스럽지 않습니다. 관리형 지갑은 사용하기 쉽지만, 보안성이 큰 위험 요소입니다. 지갑 도난 사건이 끊이지 않고 있습니다. 자가 관리형 지갑은 상대적으로 안전하지만, 긴 복구 구문과 개인 키를 관리하는 방식은 전통 인터넷의 사용자 이름-비밀번호 시스템에 비해 훨씬 복잡합니다. Chainalysis의 연구 보고서에 따르면, 2021년 기준으로 약 20%의 유통 중인 비트코인이 소유자가 개인 키를 잊어버려서 잃어버렸습니다. 많은 사람들이 의문을 가질 수 있습니다. 왜 전통적인 인증 방식을 Web3.0에 적용할 수 없을까요?

왜 우리는 개인 키 방식으로만 인증할 수 있을까요? 이 질문에 답하기 위해서는 몇 가지 배경 지식과 개념이 필요합니다. 먼저 이더리움의 계정 유형입니다. 이더리움에는 두 가지 계정이 있습니다: 외부 계정과 계약 계정. 계약 계정은 스마트 계약이며, 그 코드가 이더리움 가상 머신에서 실행됩니다. 외부 계정은 우리가 거래를 시작할 때 사용하는 지갑 계정으로, 이 계정은 코드가 없기 때문에 "외부"라고 불리며, 사용자가 개인 키를 통해 제어합니다.

image

계약 계정은 사용자 정의 논리를 가지고 있지만, 스스로 거래를 시작할 수는 없습니다. 따라서 계약 상태의 변경은 외부 계정에 의존하여 시작되며, 외부 계정이 이더를 지불해야 합니다. 그렇다면 거래의 합법성을 어떻게 검증할까요? 이더리움의 검증 방식은 거래의 발신자와 자산(이더)의 소유자가 일치하는지를 확인하는 것입니다. 즉, 이 외부 계정의 소유자가 일치해야 합니다. 따라서 사용자는 지갑을 통해 거래에 서명해야 합니다. 이더리움의 기본 검증 논리는 사토시가 설계한 secp256k1이며, 이 알고리즘을 통해 키 쌍이 생성됩니다. 서명의 정확성은 해당 서명이 특정 공개 키에 대응하는 개인 키에서 나왔는지를 검증하여 확인할 수 있으므로, 사용자는 이 개인 키를 반드시 소유해야 합니다. 이것이 바로 지갑의 사용자 경험을 아무리 최적화해도 개인 키 문제를 피할 수 없는 이유입니다.

image

앞서 언급했듯이, 외부 계정은 코드 논리를 가지고 있지 않습니다. 더 복잡한 논리를 도입하여 다른 기능을 구현하고자 할 경우, 예를 들어 다중 서명 등을 외부 계정에서 직접 수행할 수는 없습니다. 그렇다면 현재 이 문제를 해결할 수 있는 방법은 무엇일까요? 필자는 가장 실행 가능하고 효과적인 두 가지 해결책을 소개하겠습니다: MPC 지갑과 스마트 계약 지갑.

MPC 지갑

MPC는 Multi-Party Computation의 약자로, 중요한 암호화 보안 조치입니다. 여러 가지 기술 솔루션을 포함하고 있으며, 본 문맥에서는 주로 MPC-TSS를 의미합니다. MPC 지갑은 개인 키를 여러 당사자가 계산하여 오프체인에서 "다중 서명", "크로스 체인" 등 더 복잡한 검증 방식을 구현하는 것입니다. 간단히 말해, 하나의 개인 키를 여러 조각으로 나누고, 이 개인 키 조각을 분산된 네트워크에 전달하여 계산하고 암호화합니다. 개인 키 서명이 필요할 때는 조각을 다시 조합하여 완전한 개인 키를 형성합니다. MPC의 핵심 아이디어는 권한을 분산시켜 위험을 분산하거나 재해 복구를 향상시키는 것이며, 단일 실패 지점과 같은 보안 문제를 효과적으로 피할 수 있습니다.

image

MPC 지갑의 "다수 참여" 개념은 "다중 서명 지갑"과 유사하지만, 실제로는 두 가지가 모두 "다중 서명" 기능을 구현할 수 있지만, 구현 방식은 다릅니다. 우리가 잘 알고 있는 다중 서명 지갑, 예를 들어 Gnosis Safe 등은 스마트 계약에 기반한 지갑으로, 계약 내에서 검증 논리를 정의합니다. 예를 들어, 거래를 검증하려면 하나 이상의 개인 키가 필요하거나, 다섯 개 중 최소 세 개의 개인 키로 검증해야 합니다. 이러한 지갑은 후에 언급할 스마트 지갑의 일종입니다. 반면 MPC 지갑은 하나의 개인 키를 여러 조각으로 분해하고, 검증 과정은 단 하나의 개인 키만 포함됩니다. 그리고 계산 네트워크는 오프체인으로, 스마트 계약과는 관련이 없습니다.

스마트 계약 지갑

스마트 계약 지갑은 이름 그대로 외부 계정이 아닌 스마트 계약에 기반한 지갑입니다. 시장에는 이미 많은 스마트 계약 지갑이 있지만, 이러한 스마트 계약은 사용자 정의되어 있으며, 통일된 산업 표준이 부족하고, 계약 취약점 및 다른 계약과의 호환성 문제 등으로 인해 널리 사용되지 않고 있습니다. 최근 스마트 계약 지갑은 "계정 추상화" 제안 EIP-4337의 중대한 진전을 통해 다시 한 번 화제가 되었습니다. 그렇다면 계정 추상화는 도대체 무엇을 의미할까요? 계정 추상화를 구현한 후, 사용자에게 어떤 새로운 경험을 제공할 수 있을까요? 이더리움의 계정 추상화를 이해하기 전에, 먼저 CS에서의 추상화 개념을 이해해야 합니다.

"추상화"는 컴퓨터 과학에서 가장 중요한 개념 중 하나로, 외부에 필요한 핵심 정보를 제공하면서 백그라운드 구현 세부 사항을 숨기는 것을 의미합니다. 개발자는 추상화된 계층의 작업을 처리할 때 이 추상화된 계층에만 집중하면 됩니다. 생활에 가까운 예를 들어보면, 우리가 관객으로서 텔레비전을 사용하고자 할 때, 전원 켜기 및 끄기, 볼륨 조정, 채널 전환, 게임기, DVD 등 다른 장치 연결과 같은 텔레비전 관객으로서 알아야 할 조작만 익히면 됩니다.

관객은 텔레비전 내부의 구현 세부 사항, 예를 들어 텔레비전이 케이블을 통해 신호를 수신하는 방법, 신호를 변환하는 방법, 이러한 신호를 텔레비전 화면에 표시하는 방법 등을 알 필요가 없습니다. 이러한 구현 세부 사항은 텔레비전을 만든 사람이 알아야 할 것입니다. 관객으로서 우리는 전원 버튼, 리모컨, DVD 등과 같은 외부 인터페이스를 통해 텔레비전을 제어하면 됩니다.

계정 추상화도 마찬가지입니다. 지갑 사용자로서 우리는 여전히 가스 가격, 가스 한도, 거래 블로킹 등 복잡한 비용 논리를 고려해야 합니다. 그 근본적인 원인은 외부 계정 기반의 지갑이 잘 "추상화"되지 못해 사용자가 처리해야 할 불필요한 문제를 발생시키기 때문입니다. 그렇다면 어떻게 해결할 수 있을까요? 논리는 간단합니다. 우리는 외부 계정과 계약 계정을 추상화하여 외부 계정을 계약 계정에 더 가깝게 만들 수 있습니다. 이렇게 하면 스마트 계약을 통해 지갑에 더 복잡한 논리를 부여할 수 있습니다. 스마트 계약 지갑이 구현할 수 있는 기능은 "다중 서명" 하나에 그치지 않습니다.

image

EIP-4337이 이더리움 계정의 체계적인 업그레이드를 실현할 수 있다면, 사용자로서 우리는 어떤 새로운 경험을 얻을 수 있을까요? 이론적으로 스마트 계약 코드로 정의된 기능은 모두 구현할 수 있습니다. 우선, 스마트 계약 지갑은 secp256k1이 아닌 검증 알고리즘을 통해 검증할 수 있으며, 사용자는 긴 키 쌍과 복구 구문을 마주할 필요가 없습니다. 동시에, 스마트 계약은 키에 더 많은 논리를 부여할 수 있습니다. 예를 들어 다중 서명 시나리오에서 각 개인 키에 대해 다른 권한을 정의할 수 있습니다: 50USDC 이하의 거래는 개인 키 A의 서명이 필요하고, 50USDC 이상의 거래는 개인 키 B의 서명이 필요하며, 2000USDC를 초과하는 거래는 개인 키 ABC의 공동 서명이 필요합니다.

또한, 모바일 장치와 블록체인 간의 상호작용이 더욱 쉬워질 것입니다. 우리는 특정 모바일 장치 전용 키를 부여할 수 있으며, 이 키에 제한을 정의할 수 있습니다. 예를 들어, 특정 몇 개의 스마트 계약과만 상호작용할 수 있도록 하거나, 소액 거래에 대한 스마트 검증을 할 수 있도록 하는 등의 제한을 둘 수 있습니다. 그 외에도 일괄 거래에 대한 한 번의 권한 부여, 거래 블랙리스트 등 다양한 기능을 구현할 수 있습니다. 요컨대, 스마트 계약 지갑의 상상 공간은 매우 큽니다.

결론

두 가지 지갑을 소개한 후, 독자들은 이 두 가지 해결책 중 어떤 것이 더 나은지 궁금할 수 있습니다. 필자는 비교하기 어렵다고 생각합니다. 왜냐하면 MPC 지갑과 스마트 계약 지갑은 본질적으로 같은 수준에서 문제를 해결하지 않기 때문입니다. MPC 지갑은 오프체인 솔루션으로, 외부 계정을 기반으로 한 일반 지갑과 스마트 지갑을 모두 제어할 수 있습니다. 두 가지는 각각의 사용 사례가 있으며, 상충하지 않습니다. 따라서 필자는 두 가지 솔루션의 기회와 도전을 각각 나열하겠습니다.

MPC 지갑은 오프체인 솔루션으로, 이더리움 합의 계층이나 계약 계층의 변경을 포함하지 않으며, 사용자의 사용 비용이 더 낮고, 단기적으로 더 실행 가능성이 높습니다. 또한, 크로스 체인 키와 같은 특별한 사용 사례에서 더 큰 장점을 가집니다. 스마트 계약 지갑은 이더리움의 체계적인 업그레이드로, 사용자에게 더 많은 새로운 경험과 사용 사례를 제공합니다. 그러나 계정 추상화는 "대규모 작업"이 필요한 큰 프로젝트로, 다른 스마트 계약, 개발자 및 이더리움 아키텍처가 모두 업그레이드에 협력해야 합니다. 지나치게 큰 실용적 난이도로 인해 2015년에 제안된 비전이 오늘날까지 완전히 실현되지 않았습니다. 또한 스마트 계약 지갑은 사용자에게 가장 직접적인 문제는 지갑 사용 비용이 증가할 것이라는 점입니다. 지갑 생성 시부터 비용을 지불해야 합니다.

필자는 스마트 계약 지갑이 우리의 궁극적인 비전이며, MPC는 단기적으로 더 실행 가능한 솔루션이고, 특정 특별한 상황에서 더 큰 장점을 가진다고 생각합니다. 비용 문제로 인해 미래에 스마트 지갑이 이더리움 메인넷에서 실현될 가능성과 가능성은 낮습니다. 독자들은 Layer2에서의 계정 추상화와 스마트 지갑의 진행 상황에 더 많은 관심을 기울일 수 있습니다. 현재 EIP-4337은 가장 실행 가능한 계정 추상화 솔루션이며, 이미 많은 스마트 계약 지갑 프로젝트가 이 경로를 탐색하고 있습니다. 스마트 지갑의 완전한 실현은 우리가 생각하는 것보다 더 가까울 수 있습니다.

체인캐처(ChainCatcher)는 독자들에게 블록체인을 이성적으로 바라보고, 리스크 인식을 실제로 향상시키며, 다양한 가상 토큰 발행 및 조작에 경계해야 함을 상기시킵니다. 사이트 내 모든 콘텐츠는 시장 정보나 관련 당사자의 의견일 뿐이며 어떠한 형태의 투자 조언도 제공하지 않습니다. 만약 사이트 내에서 민감한 정보를 발견하면 “신고하기”를 클릭하여 신속하게 처리할 것입니다.
체인캐처 혁신가들과 함께하는 Web3 세상 구축