MetaMask의 snap 플랫폼은 미니 프로그램과 유사한 창업 열풍을 맞이할 수 있습니다
저자: 황세량, 闪电HSL
MetaMask는 암호화폐 사용자 수가 가장 많은 지갑으로, 항상 EVM 호환 체인만 지원해왔습니다.
지난주, MetaMask는 드디어 베타 버전으로 오랫동안 기다려온 snap 플랫폼을 공식 출시했습니다.
https://snaps.metamask.io를 방문하면 구체적인 제품을 확인할 수 있습니다.
간단히 설명하자면, snaps는 MetaMask가 지갑 서비스를 EVM 호환 체인을 넘어 확장한 것입니다. 더 정확히 말하자면, 개인 키가 HD 지갑(계층적 결정론적 지갑) 표준에 부합하는 체인이라면 모두 snaps 플랫폼을 통해 해당 체인의 지갑을 개발하고 관리할 수 있습니다.
HD 지갑, 즉 계층적 결정론적 지갑은 현재 거의 모든 블록체인의 개인 키의 기본 표준입니다. HD 지갑을 이해하려면 두 가지 개념을 이해해야 합니다.
첫째는 니모닉(복구 구문)입니다.
니모닉은 우리가 지갑을 백업할 때 적어두는 12, 18 또는 24개의 단어입니다. 니모닉은 본질적으로 무작위 수로, 2048개의 단어 목록에서 무작위로 12, 18 또는 24개의 단어를 선택합니다.
이 무작위 선택 과정은 매우 복잡한 알고리즘에 의해 수행되며, 이 알고리즘이 생성하는 니모닉의 엔트로피는 매우 강력하여, 기존의 니모닉을 폭력적으로 충돌시켜 얻을 확률은 무한히 0에 가까워집니다. 즉, 이러한 알고리즘을 통해 얻은 니모닉은 우주에서 유일하며, 다른 사람이 생성한 것과 같을 수 없습니다.
이 니모닉은 종종 시드(seed)라고도 불립니다.
니모닉은 직접적으로 암호화폐를 관리하는 것이 아니라, 거래를 구성하고 서명하는 데 사용되는 개인 키입니다. 실제로 거래 서명에 사용되는 것은 개인 키이며, 개인 키는 시드에서 파생됩니다.
둘째는 파생 경로입니다.
니모닉을 얻은 후, MetaMask에서 n개의 주소를 생성할 수 있습니다. 각 주소는 시드를 통해 특정 알고리즘으로 계산됩니다.
이 알고리즘과 계산 과정은 아래의 함수로 간단히 이해할 수 있습니다.
f(seed, derivationpath) -> (privatekey, public_key)
Derivation_path는 파생 경로를 의미합니다.
니모닉 시드와 파생 경로를 매개변수로 대입하면 구체적인 개인 키와 주소를 계산할 수 있습니다.
파생 경로는 본질적으로 문자열로, 다음과 같은 형식입니다: 'm/44'/0'/0'/0'입니다.
여기서 m은 시드(seed)를 나타냅니다.
44'는 BIP44 표준을 나타내며, 일반적으로 다른 표준도 있지만 BIP44가 가장 많이 사용됩니다.
두 번째 숫자는 서로 다른 암호화폐, 즉 서로 다른 체인을 나타내며, 0은 비트코인의 파생 경로, 이더리움은 60, 라이트코인은 2입니다.
마지막 숫자 0은 주소 인덱스를 나타내며, 두 개의 파생 경로가 앞부분이 동일하고 마지막 숫자가 각각 0과 1이라면, 이는 지갑(예: MetaMask)에서 생성된 첫 번째 주소와 두 번째 주소에 해당합니다.
또한 지갑이 지원하는 암호화폐에 대해 중요한 몇 가지 개념이 있습니다: 주소 형식, 거래 데이터 구조입니다.
MetaMask는 항상 EVM 호환 체인의 암호화폐만 지원하며, 모든 EVM 호환 체인은 동일한 개인 키 파생 경로를 사용할 수 있고, 이러한 EVM 호환 체인의 주소 형식과 거래 데이터 구조는 이더리움과 완전히 동일하므로 MetaMask를 사용하여 통합 관리하기 매우 편리합니다.
하지만 비EVM 호환 체인, 예를 들어 BTC, Sui와 같은 체인은 니모닉 표준은 이더리움과 같지만, 파생 경로가 다르고 주소 형식도 다르며 거래 데이터 구조도 다릅니다.
이렇게 되면 MetaMask를 사용하여 관리하기가 매우 어렵습니다.
snap은 이러한 차이를 해결하기 위해 설계된 플랫폼입니다.
snap은 제3자 개발자가 파생 경로의 차이, 주소 형식의 차이, 거래 데이터 구조의 차이로 인해 MetaMask가 이러한 암호화폐를 관리할 수 없는 문제를 해결할 수 있도록 허용합니다.
snap의 암호화폐 관리 방식은 MetaMask가 니모닉을 생성하고 보관하며, 제3자 개발자가 파생 경로를 포함한 프론트엔드 페이지를 개발하고 MetaMask를 호출하여 해당 암호화폐의 주소를 생성하고, 주소 형식을 이 프론트엔드 페이지에 표시하는 것입니다.
거래 데이터 구조도 프론트엔드 페이지에서 구성됩니다.
최종 거래 서명은 프론트엔드 페이지가 MetaMask가 관리하는 니모닉에서 파생된 개인 키를 호출하여 서명합니다.
파생 경로를 통해 생성된 개인 키와 주소는 니모닉을 역으로 계산할 수 없으므로, snap 플랫폼에서 제3자 개발자가 만든 프론트엔드 페이지 지갑은 MetaMask에 저장된 니모닉을 얻을 수 없습니다.
왜 제가 snaps가 작은 창업 열풍을 맞이할 것이라고 느끼는 걸까요?
MetaMask가 암호화폐 시장에서 가장 큰 사용자 트래픽과 사용자 신뢰 기반을 제공하는 것 외에도, 더 중요한 것은 snap 플랫폼이 개발자에게 지갑의 프론트엔드 페이지를 제공하여 다양한 비즈니스를 할 수 있게 해준다는 점입니다.
또한, snaps.metamask.io와 같은 메커니즘 덕분에 개발자는 사용자의 자산을 유용할 수 없음을 스스로 증명할 수 있으며, 모든 자산의 사용은 사용자가 MetaMask를 통해 서명해야만 완료됩니다.
많은 암호화폐 시장의 비즈니스 논리가 snap으로 이전될 수 있습니다.