용어집 / 지갑과 수탁
멀티시그(Multisig)
별칭은 멀티시그, Multisig, Multisignature, 다중 서명입니다.
- 멀티시그(Multisig)란 무엇입니까?
- 멀티시그는 비트코인을 여러 개의 키 뒤에 동시에 잠그고 지출하려면 정해진 수의 서명을 요구하므로, 키 1개를 잃거나 유출해도 코인을 잃지 않습니다.
BIP-11에 명시되어 있습니다.
멀티시그 주소는 여러 공개 키와 임계값을 지정하는 스크립트에 결속되며, 대개 3개 중 2개입니다. 비트코인은 BIP-11이 2011년 10월에 작성된 이후 이를 표준 트랜잭션 유형으로 취급해 왔으며, 이는 하드웨어 지갑이 존재하기 수년 전의 일입니다. 10년에 걸쳐 보유할 계획인 저축의 경우, 이는 복구 문구 1개가 만드는 단일 장애점을 제거합니다.
작동 방식
멀티시그 규칙은 출력의 스크립트 안에 있으므로, 어떤 애플리케이션이 아니라 네트워크가 이를 강제합니다. 고전적인 3개 중 2개 리딤 스크립트는 다음과 같습니다. 숫자 2를 푸시하고, 공개 키 3개를 푸시하고, 숫자 3을 푸시한 다음 OP_CHECKMULTISIG를 실행합니다. 노드는 나열된 키에 대해 유효한 서명을 세고, 유효한 서명이 2개 미만이면 지출을 거부합니다. 어떤 회사도, 어떤 서버도, 어떤 지갑 판매업체도 그 결정에 참여하지 않습니다.
같은 아이디어의 세 가지 인코딩이 서로 다른 시기에 표준이었으며, 크기 한도도 각기 다릅니다.
베어 멀티시그는 키를 출력에 직접 배치합니다. 릴레이 정책은 수년간 이를 키 3개로 제한해 왔고, 베어 멀티시그는 공간을 낭비하므로, 주로 아주 오래된 코인에서 남아 있습니다.
P2SH는 스크립트를 해시 뒤에 숨기고 지출할 때 이를 드러냅니다. 리딤 스크립트의 520바이트 한도는 이 경로를 압축된 공개 키 15개로 제한합니다.
SegWit 버전인 P2WSH는 스크립트를 위트니스로 옮기고 상한을 3,600바이트 위트니스 스크립트로 높이며, 이 지점에서는 해당 오피코드 자체의 키 20개 한도가 먼저 적용됩니다. 네이티브 SegWit 멀티시그 주소는 bc1q로 시작하며, 대부분의 현재 코디네이터 소프트웨어가 산출하는 주소입니다.
역사적인 특이점 하나가 모든 지출에서 여전히 보입니다. OP_CHECKMULTISIG는 필요한 것보다 항목 하나를 더 꺼내며, 이는 하드 포크 없이는 제거할 수 없었던 최초 구현의 버그입니다. BIP-147은 그 남는 항목이 비어 있어야 한다는 것을 합의 규칙으로 만들었고, 2017년 8월 24일 블록 481,824에서 SegWit과 함께 활성화되었습니다.
Taproot는 상황을 다시 바꾸었습니다. BIP-342는 tapscript 내부의 OP_CHECKMULTISIG를 비활성화하고 OP_CHECKSIGADD를 도입했으며, 이는 서명을 키 하나씩 집계하고 키 20개 상한을 없앱니다. 별도로, MuSig2는 서명자 그룹이 자신들의 키를 하나로 결합하게 하므로, n개 중 n개 지출은 체인에 일반적인 단일 서명 Taproot 결제로 나타나며, 구별되지 않고 더 저렴합니다.
비트코인을 구매할 때 이것이 중요한 이유
멀티시그는 거래소의 대안이 아닙니다. 구매는 여전히 이 사이트에 리뷰가 등재된 플랫폼 중 한 곳에서 하며, 멀티시그는 출금하는 목적지이므로, 구매 가이드와 이 결정은 서로 독립적입니다.
바뀌는 것은 위험의 형태입니다. 단일 서명 지갑은 하나의 사건으로 완전히 실패합니다. 잃어버린 문구, 두 사본에 모두 닿는 화재, 강요된 공개, 한 판매업체 제품의 펌웨어 백도어 등입니다. 서로 다른 세 제조사의 기기로 구성한 3개 중 2개는 그 모두를 견딥니다. 어떤 단일 시드도, 어떤 단일 건물도, 어떤 단일 회사도 충분하지 않기 때문입니다. 이 사이트의 하드웨어 리뷰가 어떤 기기에 보안 칩(시큐어 엘리먼트)이 없는지 표시하는 이유가 바로 이것입니다. 혼합된 쿼럼에서는 더 약한 기기 1대가 치명적이지 않게 됩니다.
비용은 실재하며 정직하게 계산해야 합니다. 지출이 더 큽니다. 3개 중 2개 네이티브 SegWit 입력은 대략 105 vbyte이고 단일 서명 입력은 약 68 vbyte이므로, 같은 결제에 수수료가 약 1.5배 듭니다. 설정에는 3분이 아니라 저녁 한 번이 걸립니다. 그리고 새로 백업할 대상이 생깁니다. 모든 확장 공개 키, 파생 경로, 임계값을 나열한 지갑 디스크립터입니다. 이 디스크립터는 공동 서명자에게 연락할 수 없다면 보유한 시드로는 재현할 수 없습니다.
이를 도입할 정직한 기준은 재무적이 아니라 행동적입니다. 이미 적어 둔 단어로 단일 서명 지갑을 복원하는 것을 시험해 보았고, 걸려 있는 금액이 이제 걱정된다면, 멀티시그가 다음 단계입니다. 아직 그 훈련을 하지 않았다면, 기기 2대를 더 추가하는 것은 검증되지 않은 백업이 실망시킬 수 있는 경로를 배가시킬 뿐입니다.
키 1개를 잃어도 견디는 3개 중 2개
다음은 사람들이 실제로 유지하는 3개 중 2개 멀티시그 구성이며, 그대로 따라 할 수 있을 만큼 구체적으로 설명합니다.
세 판매업체에서, 이상적으로는 서로 다른 세 공급업체에서 서명 기기 3대를 구매하고, 각 기기를 자체 복구 단어로 따로 설정합니다. Sparrow나 Nunchuk 같은 코디네이터 소프트웨어에서 각 기기의 확장 공개 키를 결합하고, 3개 중 2개 정책을 선택한 뒤, 그 결과 디스크립터를 내보냅니다.
시드 백업 3개를 서로 독립적으로 실패하는 세 곳에 보관합니다. 집 금고, 은행 금고 또는 직장, 그리고 다른 도시에 있는 신뢰하는 친척입니다. 디스크립터 사본을 그 각각과 함께 보관합니다. 디스크립터는 비밀이 아니며 그것만 가지고는 아무도 아무것도 지출할 수 없지만, 그것이 없으면 시드 3개가 모두 있어도 복구할 수 있었던 코인이 고립될 수 있기 때문입니다.
소액으로 입금한 뒤 실패를 예행연습합니다. 기기 1대가 사라졌다고 가정하고 나머지 2대로 지출하여, 트랜잭션이 정상 처리되는지 확인합니다. 쿼럼에 변경이 있을 때마다 같은 훈련을 하고, 1년에 한 번 다시 합니다.
기기가 실제로 고장 나면 잃은 것은 없지만, 이제는 2개 중 2개로 운영하게 됩니다. 사라진 서명자를 교체하고 새 키로 새 쿼럼을 구성한 뒤, 줄어든 여유로 살지 말고 코인을 새 주소로 옮깁니다.
멀티시그 vs 멀티시그 볼트
멀티시그는 기반이 되는 방식이고, 멀티시그 볼트는 그 위에 구축된 제품입니다. 서비스들은 관리형 쿼럼을 판매하며, 제공업체가 키 1개를, 이용자가 1개 또는 2개를 보유하고, 복구 절차가 나머지를 담당합니다. 체인 위의 스크립트는 어느 쪽이든 같아 보이지만, 신뢰 모델은 다릅니다. 볼트는 사업을 접거나 가격을 바꾸거나 법원의 명령을 받을 수 있는 회사를 끌어들이며, 바로 그 의존성을 자기 관리형 멀티시그가 제거합니다. 둘 다 정당한 선택이며, 이 둘을 혼동하면 코인이 움직이려면 누가 살아 있어야 하는지를 잘못 판단하게 됩니다.
멀티시그 vs P2SH 멀티시그
멀티시그는 지출 정책이고, P2SH 멀티시그는 그 정책을 주소에 담는 한 가지 방법입니다. 이 구분은 SegWit과 Taproot가 도래하면서 핵심이 되었습니다. 동일한 3개 중 2개가 이제 크기, 주소 접두사, 프라이버시 속성이 각기 다른 최소 세 가지 온체인 형태를 가질 수 있기 때문입니다. 지갑을 복원할 때 “3개 중 2개였다”는 정보만으로는 충분하지 않습니다. 입금한 주소를 어떤 스크립트 유형이 생성했는지도 알아야 합니다.