BIP 16분야 · 합의(소프트 포크)유형 · 명세상태 · 배포됨

페이 투 스크립트 해시

Pay to Script Hash

쉬운 설명

3으로 시작하는 P2SH 주소의 실제 실행 규칙을 합의에 넣은 소프트포크예요. BIP 13이 "이렇게 주소를 만들자"라는 형식이라면, BIP 16은 "숨겨 둔 스크립트를 실제로 풀어서 검증하자"는 규칙이에요. 멀티시그·타임락 같은 복잡한 지출 조건을 짧은 주소 하나 뒤에 숨길 수 있게 해 줘요.

BIP16은 Pay-to-Script-Hash(P2SH)의 실제 합의 규칙을 도입한 소프트포크 제안으로, BIP13의 주소 형식과 짝을 이룹니다.

핵심 내용

지출 트랜잭션의 scriptSig에 직렬화된 redeemScript를 포함하고, 노드가 이를 역직렬화해 실행하도록 검증 규칙을 추가했습니다. scriptPubKey가 OP_HASH160 <20-byte-hash> OP_EQUAL 형태일 때 P2SH 규칙이 적용됩니다.

왜 중요한가?

멀티시그·타임락 등 복잡한 조건을 "3으로 시작하는" 짧은 주소로 표현할 수 있게 하여 비트코인 스크립트의 표현력을 크게 높였습니다. 2012년 4월에 활성화되어 현재까지 비트코인의 핵심 기능 중 하나로 남아 있습니다.

보안 고려사항

redeemScript는 지출 시에만 공개되므로 공개키 노출이 늦어지는 프라이버시 이점이 있습니다. 단, 20바이트 해시 충돌 공격에 대한 이론적 우려가 있어 이후 SegWit(BIP141)에서는 32바이트 해시로 개선되었습니다.

공식 BIP 문서open_in_new