본문으로 건너뛰기
buybitcoinsmart

용어집 / 주소와 키

P2WSH

별칭은 Pay-to-Witness-Script-Hash입니다.

P2WSH란 무엇입니까?
P2WSH는 코인을 위트니스 스크립트에 대한 32바이트 SHA-256 커밋먼트에 잠그며, 계약에 P2SH보다 훨씬 많은 공간을 주고 스크립트가 공개될 때 해당 스크립트에 할인을 적용합니다.

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

Pay to witness script hash는 단일 키보다 복잡한 모든 것에 쓰이는 SegWit 버전 0 출력이며, 62자리 bc1q 주소로 표기됩니다. Bitcoin Core는 위트니스 스크립트가 3,600바이트에 달하고 위트니스가 최대 100개의 스택 항목을 담는 지출을 중계하는데, P2SH 상환 스크립트는 520바이트에서 멈춥니다. 이 추가 공간 덕분에 본격적인 계약이 이곳으로 옮겨 왔습니다.

작동 방식

P2WSH 출력은 위트니스 버전 0을 나타내는 바이트 0x00 뒤에 32바이트의 푸시가 이어지는 형태이며, 모두 합해 34바이트입니다. 이 32바이트는 직렬화된 위트니스 스크립트의 단순 SHA-256이며, 비트코인의 다른 곳에서 쓰이는 SHA-256의 RIPEMD-160이 아닙니다.

이 선택은 의도적입니다. 160비트 커밋먼트는 대략 80비트의 충돌 저항성을 제공하는데, 거래 상대방이 스크립트에 들어갈 내용을 함께 고르고 같은 해시를 공유하는 두 스크립트를 탐색할 수 있는 상황에서는 불안합니다. 256비트 커밋먼트는 이 우려를 없앱니다. 단일 키 P2WPKH는 한쪽만 키를 고르기 때문에 더 짧은 해시를 유지하며, 그 결과 주소가 20자리 더 짧습니다.

지출할 때는 인수를 위트니스 스택에 올리고 직렬화된 스크립트로 마무리합니다. 노드는 그 마지막 항목을 해시하여 커밋먼트와 비교한 다음, 남은 항목으로 스크립트를 실행합니다. Bitcoin Core의 중계 정책은 policy.h에 경계를 정합니다. 스크립트는 3,600바이트, 스택은 100개 항목, 항목당 80바이트입니다.

수수료가 이전 이유를 설명합니다. 이곳의 2-of-3 지출은 약 104.5 vbytes를 차지하는데, 두 서명과 105바이트 전체 스크립트가 바이트당 가중치 1단위로 위트니스에 실리기 때문입니다. P2SH에서 같은 정책은 대략 297 vbytes가 듭니다. OP_CHECKMULTISIG의 20개 키 합의 상한에도 도달할 수 있는데, 키 20개가 700바이트 미만을 차지하기 때문입니다.

확인할 수 있는 곳

모든 라이트닝 채널은 2-of-2 P2WSH 출력으로 자금이 조달되며, 주소를 직접 입력하는 사람은 거의 없지만 이 때문에 이는 체인에서 가장 흔한 스크립트 유형 중 하나입니다. 기관 수탁, miniscript 정책, 시간 잠금 상속 조항도 이를 사용합니다.

블록 탐색기에서 사용되지 않은 P2WSH 출력은 62자리 bc1q 문자열일 뿐입니다. 키 두 개를 지키든 스무 개를 지키든 똑같이 보이며, 조건은 코인이 움직일 때만 드러납니다.

백업에는 스크립트가 포함되어야 합니다. 시드 문구는 키를 재생성할 뿐 임의의 스크립트를 재생성하지 않으므로, 디스크립터나 정확한 스크립트 바이트를 시드와 함께 보관하고 주소에 실제 자금이 들어가기 전에 그것으로 복원할 수 있는지 확인하십시오.

P2WSH vs 위트니스 스크립트

P2WSH는 출력이고, 위트니스 스크립트는 그것이 커밋하는 내용입니다. 출력은 32바이트의 해시만 담고 그 외에는 아무것도 담지 않으므로 붙은 조건에 대한 정보를 전달하지 않으며, 지출이 스크립트를 공개하기 전까지 스크립트의 어느 부분도 체인에 나타나지 않습니다. 그 결과 의무는 한쪽으로 치우칩니다. 보내는 사람은 주소만 있으면 되고 아무것도 이해하지 않고 지불할 수 있습니다. 받는 사람은 정확한 스크립트 바이트를 영구히 보관해야 하는데, 그것을 잃으면 개인 키가 몇 개 남아 있든 코인을 사용할 수 없게 되기 때문입니다.

혼동하기 쉬운 용어

자주 묻는 질문

P2WSH 주소는 일반 bc1q 주소보다 왜 더 깁니까?

20바이트 해시가 아니라 32바이트 해시를 인코딩하므로 42자리가 아니라 62자리가 됩니다. 더 긴 커밋먼트는 단순 SHA-256을 사용하므로, 여러 당사자가 스크립트 작성을 도울 때 충돌이 발생할 가능성은 사실상 없습니다.

일반 지갑에 P2WSH가 필요합니까?

아닙니다. 단일 키 지갑은 P2WPKH 또는 Taproot를 사용하며 이를 전혀 건드리지 않습니다. P2WSH는 멀티시그 금고, 라이트닝 채널 자금 조달, 스크립트로 작성해야 하는 모든 지출 정책에 중요합니다.

다음에 읽을 글

관련 용어

주소와 키 분야의 다른 용어

이 페이지를 영어로 읽기