전통적으로 CHECKMULTISIG를 사용하여 n-of-n 멀티시그를 생성하는 것은 거래의 서명자에게 서명과 공개 키의 비례 수를 블록체인에 게시하는 것을 의미합니다. 이 접근 방식은 거래에 참여하는 총 인원 수를 드러낼 뿐만 아니라 서명자가 증가함에 따라 점진적으로 더 높은 거래 수수료를 발생시킵니다. 반면 MuSig는 사용자 그룹이 거래를 검증하기 위해 단일 서명과 공개 키를 집합적으로 생성할 수 있도록 하여 모든 서명자에게 개인 정보를 강화하고 거래 비용을 낮춥니다.
2018년에 MuSig가 처음 도입되었을 때, CHECKMULTISIG에 비해 주요 단점은 사용자 경험으로, 특히 서명자 간의 세 번의 상호작용 커뮤니케이션이 필요하다는 점이었습니다. 2020년에 MuSig의 후속 버전인 MuSig2(BIP 327)가 도입되면서 비상호작용 서명에서 상당한 발전을 이루어 훨씬 더 바람직한 경험을 제공하게 되었습니다.
작동 방식
MuSig2는 이전 버전의 기능을 반영하여 필요한 커뮤니케이션 라운드를 세 번에서 두 번으로 줄입니다. MuSig2의 지갑 설정은 모든 참가자의 확장 공개 키(xpubs)를 수집하고 각 지갑에 의해 설명자를 구성하는 것으로 시작되며, 이는 기존 멀티시그 관행과 일치합니다.
MuSig2 서명 단계에는 다음이 포함됩니다:
- 첫 번째 라운드 메시지: 지갑 설정 중에 nonce가 생성되어 부분 서명된 비트코인 거래(PSBT)에 추가되고 다른 서명자와 공유됩니다.
- 두 번째 라운드 메시지: 수신된 nonce는 부분 서명을 생성하는 데 사용되며 각 다른 서명자에게 다시 전송됩니다.
각 서명자가 자신의 nonce와 부분 서명을 다른 모든 서명자에게 직접 전달하는 대신, 커뮤니케이션 프로세스를 간소화하기 위해 제3자 조정자를 도입할 수 있습니다.
서명 과정에서 각 서명자의 nonce는 두 개의 타원 곡선 점으로 구성됩니다. 이러한 점은 부분 서명된 비트코인 거래(PSBT)를 통해 다른 서명자에게 전송됩니다. 이러한 nonce는 과정의 정확성과 무결성을 위해 신중하게 처리해야 하지만, 기밀 정보가 아니기 때문에 안전한 저장이 필요하지 않습니다. 모든 개인의 부분 서명이 유효하다면, 생성된 슈노르 서명도 유효합니다.
구현을 위한 다음 단계
지난달, Andy Chow는 MuSig2 PSBT와 MuSig2 설명자를 포함하는 두 개의 BIP 초안을 제안했습니다. 이는 MuSig2 채택 및 지갑 통합에 필요한 단계입니다. 첫 번째 BIP는 PSBT에 nonce, 공개 키 및 부분 서명을 위한 필드를 추가하고, 두 번째 BIP는 MuSig2 지갑에 의해 제어되는 거래 출력을 설명하는 방법을 제공합니다. 이 BIP와 사양은 MuSig2 지갑 통합에 필요한 모든 것입니다!
많은 지갑 개발자와 협력 보관 솔루션은 오랫동안 MuSig2 프로토콜의 표준화를 요청해왔습니다. 이제 공식화된 BIP가 마련되었으니, 커뮤니티는 이를 검토하고 피드백을 제공하며 인식을 높이는 데 도움을 줄 차례입니다. Blockstream에서는 공개 토론에 참여하고 공식 BIP 검토 프로세스가 진행되기를 기대합니다.