본문으로 건너뛰기
buybitcoinsmart

용어집 / 주소와 키

P2SH 멀티시그

P2SH 멀티시그란 무엇입니까?
P2SH 멀티시그는 m-of-n 상환 스크립트를 3 주소 뒤에 숨기며, 스크립트 크기 상한인 520바이트 때문에 공개 키 15개로 제한됩니다.

BIP-16에 명시되어 있습니다.

2-of-3 상환 스크립트는 105바이트입니다. 2를 위한 옵코드, 푸시 접두사가 붙은 33바이트 압축 키 3개, 3을 위한 옵코드, 그리고 OP_CHECKMULTISIG로 이루어집니다. 입력 1개를 사용하는 데는 대략 297 vbytes가 들며, 이는 네이티브 SegWit 단일 키 입력의 약 3배입니다. 이것은 2012년부터 위트니스 데이터에 할인이 적용되기 전까지 표준 공동 수탁 방식이었습니다.

작동 방식

P2SH 멀티시그 상환 스크립트는 정족수를 직접 나열합니다. 필요한 서명 수, 이어서 참여하는 모든 공개 키, 이어서 전체 키 수, 마지막으로 OP_CHECKMULTISIG가 나옵니다. 코인이 사용되지 않고 남아 있는 동안에는 이를 아무도 볼 수 없습니다. 출력은 20바이트 해시에만 커밋하기 때문입니다.

키 15개라는 상한은 산술에서 나온 것이지 정책이 만들어낸 것이 아닙니다. 푸시 접두사를 포함해 각각 34바이트인 압축 키 15개를 합하면 510바이트가 됩니다. 여기에 개수 옵코드 2개와 OP_CHECKMULTISIG를 더하면 513에 이르며, 이는 스택 요소 1개에 대한 520바이트 한도 안에 들어갑니다. 열여섯 번째 키는 들어가지 않습니다. 비트코인의 합의 규칙은 OP_CHECKMULTISIG에 키를 최대 20개까지 허용하지만, P2SH 상환 스크립트는 물리적으로 그렇게 많은 키를 담을 수 없습니다.

사용 경로에는 오래된 결함이 하나 있습니다. OP_CHECKMULTISIG는 사용하는 것보다 스택에서 항목을 하나 더 꺼냅니다. 이는 원래 구현에서 비롯된 버그로, 하드 포크 없이는 제거할 수 없었습니다. 서명자는 더미 요소를 먼저 푸시하는 방식으로 이를 우회하며, BIP-147은 그 요소가 비어 있어야 한다고 정했고, 이는 블록 481,824에서 SegWit과 함께 활성화되었습니다. 따라서 완성된 입력은 빈 푸시, 서명, 서명, 상환 스크립트 순으로 읽힙니다.

확인할 수 있는 곳

2013년부터 2018년 사이에 구축된 기업 트레저리, 상속 구조, 거래소 콜드 스토리지는 대부분 P2SH 멀티시그입니다. 오래된 개인 간 거래(P2P) 마켓플레이스의 에스크로는 2-of-3을 사용했고 플랫폼이 세 번째 키를 보유했으며, 이렇게 해서 어느 한 거래자도 코인을 완전히 통제하지 않은 채 분쟁을 해결할 수 있었습니다.

백업 요건은 사람들이 자주 놓치는 부분입니다. 각 공동 서명자는 다른 모든 공동 서명자의 확장 공개 키나 이를 기록한 디스크립터가 필요합니다. 상환 스크립트는 시드 문구 1개로 재구성할 수 없기 때문입니다. 3개 중 2개의 개인 키를 보유하고 공개 키는 하나도 없다면 코인을 사용할 수 없게 됩니다. 디스크립터를 시드 백업과 함께 적어 두고, 이 구조에 소중한 자산이 들어가기 전에 복구를 시험해 보십시오.

오늘날 새로운 정족수는 대신 P2WSH나 Taproot로 구축합니다. 같은 정책을 사용하는 데 드는 비용이 훨씬 적고 키 15개 상한도 없기 때문입니다. 기존 P2SH 금고는 이전과 똑같이 작동하며, 강제 이전은 없습니다.

P2SH 멀티시그 vs 멀티시그

멀티시그는 정책이고 P2SH 멀티시그는 그것을 적는 한 가지 방식입니다. 같은 2-of-3 요건은 비트코인의 초기 규칙에 따른 베어 멀티시그 출력에, P2SH 상환 스크립트에, P2WSH 위트니스 스크립트에, 또는 Taproot 아래에서 일반 결제처럼 사용되고 정족수를 전혀 드러내지 않는 단일 집계 키 안에 둘 수 있습니다. P2SH를 선택하는 것은 수수료, 키 15개 상한, 그리고 코인을 처음 옮기는 순간 서명 구조 전체가 공개 지식이 된다는 사실에 관한 결정입니다.

혼동하기 쉬운 용어

자주 묻는 질문

P2SH 멀티시그에는 키를 몇 개까지 담을 수 있습니까?

15개입니다. 상환 스크립트는 스택 요소 1개이며 520바이트를 넘을 수 없는데, 푸시 접두사가 붙은 압축 키 15개에 주변 옵코드를 더하면 513바이트가 됩니다. 비트코인의 합의 규칙은 키 20개를 허용하지만, 여기에는 들어가지 않습니다.

P2SH 멀티시그에서 무엇을 백업해야 합니까?

시드 문구와 다른 모든 공동 서명자의 확장 공개 키, 또는 이를 모두 기록한 디스크립터입니다. 다른 공개 키가 없으면 상환 스크립트를 재구성할 수 없으며, 본인의 키를 보유하고 있어도 코인은 묶인 채로 남습니다.

다음에 읽을 글

관련 용어

주소와 키 분야의 다른 용어

이 페이지를 영어로 읽기