BIP 13분야 · 애플리케이션유형 · 명세상태 · 배포됨

페이투스크립트해시 주소 형식

Address Format for pay-to-script-hash

쉬운 설명

3으로 시작하는 Pay-to-Script-Hash(P2SH) 주소 형식을 정한 제안이에요. 복잡한 스크립트(예: 멀티시그, 타임락 등)의 해시를 짧은 주소로 표현해서, 보내는 사람은 34자리 주소만 보고 송금할 수 있게 해줘요.

BIP 0013은 Pay-to-Script-Hash(P2SH) 주소 형식을 정의한 명세로, "3"으로 시작하는 주소를 표준화한 제안입니다.

핵심 내용

P2SH 주소는 복잡한 스크립트(redeem script)의 해시를 주소로 변환해 사용합니다. 기존 P2PKH 주소(1로 시작)는 단일 공개키 해시이기 때문에 대응되는 개인키만 있으면 지출할 수 있지만, P2SH 주소(3으로 시작)는 redeem script의 해시를 담고 있어서 실제 스크립트(예: 멀티시그)는 지출 시에 공개됩니다.

인코딩 형식

P2SH 주소는 Base58Check로 인코딩되며, 메인넷에서는 version 바이트 0x05 + 20바이트 RIPEMD160(SHA256(script)) + 체크섬 구조를 가집니다. 예를 들어 3N5i3Vs9UMyjYbBCFNQqU3ybSuDepX7oT3처럼 3으로 시작하는 34자 주소가 만들어집니다.

왜 중요한가?

복잡한 조건 지원: 멀티시그(2-of-3), 타임락 등 임의의 스크립트를 짧은 주소로 사용할 수 있게 해줍니다. 사용자 편의: 보내는 사람은 그 스크립트가 어떤 조건인지 몰라도 34자리 P2SH 주소만 알면 송금할 수 있습니다. 또한 BIP16(2012년 소프트포크)이 실제 P2SH 실행 로직을 추가했지만, BIP13이 주소 표준을 먼저 정의해 두었기 때문에 서로 짝을 이루는 제안으로 볼 수 있습니다.

실제 예시

예를 들어 redeemScript가 2 <pubkey1> <pubkey2> 2 OP_CHECKMULTISIG 라면, scriptPubKey는 OP_HASH160 <RIPEMD160(SHA256(redeemScript))> OP_EQUAL 형태가 되고, 그 해시로부터 3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy 같은 2-of-2 멀티시그 P2SH 주소를 얻을 수 있습니다. 지출할 때는 redeemScript 전체를 scriptSig에 포함해 검증을 받습니다.

공식 BIP 문서open_in_new