궁금한 주제를 찾아보세요

비트코인, 스테이블코인, 온체인 데이터처럼 주제로 검색하세요.

다시 읽을 이야기

저장한 글은 이 브라우저에만 보관됩니다.

해설블록체인 기술

PSBT란? 비트코인 거래 작성과 서명을 분리하는 형식

PSBT가 미서명 거래와 UTXO·파생 경로·부분 서명을 key-value map으로 전달해 작성·서명·결합·확정을 분리하는 방식을 설명합니다.

난이도 중급주제 카테고리와 개념 밀도 기준
두 손이 거래 문서 조각을 연결하고 서명하는 PSBT 작업 분리 개념도
주제의 이해를 돕기 위한 개념 일러스트
먼저 읽는 핵심

PSBT는 브로드캐스트 거래가 아니라 완성에 필요한 메타데이터와 부분 서명을 담는 key-value 컨테이너다.
서명자는 UTXO 금액·스크립트와 모든 출력·수수료를 검증한 뒤 자신이 통제하는 입력만 서명한다.
여러 PSBT를 결합할 때 같은 미서명 거래인지 확인하고 finalization 뒤 raw transaction을 다시 검토한다.

PSBT는 Partially Signed Bitcoin Transaction, 곧 ‘부분 서명된 비트코인 거래’의 약자입니다. 거래를 만드는 장치와 서명하는 장치가 달라도 필요한 미사용 출력(UTXO) 정보, 스크립트, 키 파생 정보, 부분 서명을 주고받을 수 있게 만든 표준 형식입니다. 생성자(Creator)·갱신자(Updater)·서명자(Signer)·결합자(Combiner)·최종화자(Finalizer)·추출자(Extractor)로 역할을 나눠 오프라인 서명과 다중서명을 돕습니다. 다만 PSBT 자체가 서명 전 안전을 보증하지는 않으므로 입력의 출처, 모든 출력과 수수료, 잔돈 주소를 서명 기기에서 확인해야 합니다.

PSBT는 거래와 서명 재료를 한 그릇에 담습니다

BIP 174는 서로 다른 지갑과 서명 장치가 함께 쓸 수 있도록 PSBT를 정의합니다. 서명 전 거래, 또는 v2에서는 따로 나뉜 거래 필드에 더해 입력·출력마다 키와 값 묶음을 둡니다. 이 안에 증인 미사용 출력, 리딤 스크립트, 증인 스크립트, BIP32 파생 경로, 부분 서명 같은 정보가 실립니다.

base64 문자열이나 바이너리 파일로 옮길 수 있지만 그 자체는 네트워크가 처리하는 최종 거래가 아닙니다. 필요한 서명과 스크립트가 다 갖춰지고 추출자가 원시 거래를 만든 뒤에야 전파합니다. PSBT를 받았다는 사실과 자금 이동이 확정됐다는 사실은 구분해야 합니다.

PSBT 역할별 책임
역할 하는 일 검증 경계
생성자 입력·출력 거래 골격 생성 수취·잔돈·잠금 시간
갱신자 미사용 출력·스크립트·키 정보 추가 정보 출처·파생 경로
서명자 자기 키가 통제하는 입력에 부분 서명 금액·서명 범위·모든 출력
결합자 같은 거래의 정보를 병합 같은 거래인지 여부
최종화자/추출자 최종 스크립트와 원시 거래 생성 완성도·최종 거래 ID
그림으로 보기키 보관과 거래 서명
보호된 개인키로 거래에 서명하고 노드가 서명을 검증하는 개념도
그림과 함께 짚어볼 본문 내용

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.

  1. PSBT는 거래와 서명 재료를 한 그릇에 담습니다

    BIP 174는 서로 다른 지갑과 서명 장치가 함께 쓸 수 있도록 PSBT를 정의합니다.

  2. 서명자는 입력 금액과 스크립트를 알아야 합니다

    SegWit 입력에 서명하려면 이전 출력의 금액과 scriptPubKey가 필요하며, PSBT_WITNESS_UTXO가 이를 담아 줄 수 있습니다.

  3. 모든 출력과 서명 범위를 기기에서 읽습니다

    서명자는 수취 주소, 금액, 잔돈 주소, 수수료와 수수료율을 확인합니다.

설명을 위한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.

서명자는 입력 금액과 스크립트를 알아야 합니다

SegWit 입력에 서명하려면 이전 출력의 금액과 scriptPubKey가 필요하며, PSBT_WITNESS_UTXO가 이를 담아 줄 수 있습니다. 레거시 입력은 이전 거래 전체가 필요할 때도 있습니다. 건네받은 출력 정보가 실제 체인의 해당 출력과 맞는지 검증하지 않으면 수수료와 서명 대상을 속을 수 있습니다.

입력 합계 – 출력 합계가 채굴 수수료입니다. 예를 들어 입력이 0.10 BTC, 수취가 0.07 BTC, 잔돈이 0.0299 BTC라면 수수료는 0.0001 BTC입니다. 잔돈처럼 보이는 출력이 실제로 내 지갑 파생 경로에 속하는지 확인하지 않으면 공격자의 출력을 잔돈으로 잘못 볼 수 있습니다.

오프라인 서명은 네트워크를 끊는 일이지, 거래를 검증할 책임까지 없애 주지는 않습니다.

JOBCOIN 해설

모든 출력과 서명 범위를 기기에서 읽습니다

서명자는 수취 주소, 금액, 잔돈 주소, 수수료와 수수료율을 확인합니다. 하드웨어 지갑 화면에 출력이 전부 표시되지 않거나 알 수 없는 출력이라는 경고가 뜨면 진행을 멈춥니다. OP_RETURN, 잠금 시간, 시퀀스 값도 의도한 거래 정책과 맞는지 봅니다.

SIGHASH_ALL은 보통 모든 입력과 출력을 서명에 묶지만, 다른 서명 범위 유형(sighash)은 그 범위를 좁힐 수 있습니다. ANYONECANPAY나 SINGLE을 쓰는 프로토콜은 그 의도와 위험을 이해하고 써야 합니다. PSBT 필드의 서명 범위 유형을 기본값이라고 가정하지 말고, 서명 장치가 실제로 커밋할 범위를 보여 줘야 합니다.

  • 각 입력이 가리키는 출력과 그 금액·스크립트를 확인합니다.
  • 모든 수취 출력과 잔돈 파생 경로를 대조합니다.
  • 입력 합계에서 출력 합계를 빼 수수료를 계산합니다.
  • 서명 범위·잠금 시간·시퀀스와 최종 원시 거래를 확인합니다.

결합자는 부분 서명을 합치지만 충돌을 해결하지 않습니다

다중서명 참여자는 같은 거래 골격의 PSBT에 저마다 부분 서명을 더할 수 있습니다. 결합자는 여러 PSBT의 키와 값 정보를 병합하지만, 서로 다른 서명 전 거래를 하나로 합쳐 주지는 않습니다. 전역 거래 식별 정보가 일치해야 합니다.

알 수 없는 독자 키나 서로 부딪히는 필드는 지갑마다 처리 방식이 다를 수 있습니다. 결합 전후로 입력·출력의 수와 순서, 금액이 바뀌지 않았는지 비교합니다. 서명 하나가 더해졌다고 해서 다른 참여자가 넣은 부가 정보를 무조건 믿지 않습니다.

최종화와 추출 뒤에도 다시 검토합니다

필요한 서명이 모이면 최종화자가 finalScriptSig나 finalScriptWitness를 만들고 더는 필요 없는 부분 필드를 정리합니다. 추출자는 네트워크에 보낼 원시 거래를 만듭니다. 이 과정이 성공했다는 것은 스크립트 구조가 완성됐다는 뜻일 뿐, 해당 출력이 아직 쓰이지 않았다는 보장은 아닙니다.

전파하기 전에 원시 거래를 디코딩해 입력·출력·수수료를 PSBT 승인 기록과 비교합니다. 멤풀이 거부하면 이중 지불, 수수료, 잠금 시간, 정책 오류 가운데 무엇인지 구분합니다. PSBT를 다시 만들 때 기존 서명을 새 거래에 그대로 쓸 수 있다고 가정하지 않습니다.

PSBT v0과 v2 형식을 구분합니다

BIP 174의 v0는 전역 서명 전 거래를 중심에 두고 정보를 붙입니다. BIP 370의 v2는 거래 버전, 대체 잠금 시간, 입력 개수, 출력 개수, 입력·출력별 이전 거래 ID·순번·금액·스크립트 등을 따로 나눠 구성과 수정 역할을 분명히 합니다.

모든 지갑이 두 버전을 똑같이 지원하지는 않습니다. 내보내기 전에 상대 장치가 지원하는 버전과 Taproot 필드 지원 여부를 확인합니다. 변환 도구를 쓴다면 알 수 없는 필드와 키 출처 정보가 그대로 남는지 비교하고, 표준 테스트 벡터로 왕복 변환을 검증합니다.

자주 묻는 질문

PSBT 파일만 있으면 비트코인을 보낼 수 있나요?

필요한 서명이 모두 있고 최종화까지 끝나야 원시 거래를 만들 수 있습니다. 미완성 PSBT만으로는 보통 전파할 수 없습니다.

PSBT에는 개인키가 들어 있나요?

표준 흐름에서는 파생 정보와 서명만 전달하므로 개인키를 공유할 필요가 없습니다. 파일에 표준 밖의 비밀 정보가 들어 있지 않은지도 도구별로 확인하세요.

오프라인 기기면 화면 확인을 생략해도 되나요?

아닙니다. 오프라인 기기도 악성 PSBT에 서명할 수 있으므로 모든 출력·금액·수수료·서명 범위를 확인해야 합니다.

참고한 원문 자료

자료 확인 기준일 2026.09.27
  1. BIP 174: Partially Signed Bitcoin Transaction Formatgithub.com
  2. BIP 370: PSBT Version 2github.com
작성 방식과 확인 범위
출처 수집
원문 링크 2개 제공
작성·확인
공식 기관 자료를 근거로 AI 도구를 활용해 작성했고, 운영자가 발행 전에 읽어 확인합니다.
전문가 검토
세무·법률 전문가 검토는 거치지 않았습니다.

투자·세무 판단은 전문가와 상의하세요. 제도와 거래소 안내는 바뀔 수 있으니 원문의 적용 대상과 최신 안내를 함께 확인해 주세요.

이해를 위한 정보 콘텐츠

이 글은 특정 자산의 매수·매도 또는 수익을 권유하지 않습니다. 자료의 발표 시점과 이후 변경 사항을 함께 확인해 주세요.

편집 원칙 보기 →이 기사 정정 제보 →