서명된 비트코인 트랜잭션을 네트워크에 브로드캐스트하는 방법. 온라인 도구, Bitcoin Core, 지갑별 방법과 멈춘 트랜잭션 해결법까지.
import InfoBox from '@components/shortcodes/InfoBox.astro';
비트코인 트랜잭션에 서명했습니다. 이제 뭘 해야 할까요? 네트워크에 보내야 합니다. 브로드캐스트란 서명된 트랜잭션을 비트코인 노드들에게 전달하여 채굴자가 블록에 포함시킬 수 있게 하는 행위입니다. 브로드캐스트하지 않으면 아무 일도 일어나지 않습니다.
이 가이드에서는 브라우저 도구부터 커맨드라인까지 모든 브로드캐스트 방법과, 문제가 생겼을 때의 대처법을 다룹니다.
트랜잭션을 브로드캐스트하면, 지갑이나 도구가 raw 트랜잭션 hex를 하나 이상의 비트코인 노드에 보냅니다. 노드는 서명, 입력값, 수수료를 검증한 뒤 다른 노드들에게 전파합니다. 수초 내에 수천 개 노드로 퍼지며 멤풀 - 미확인 트랜잭션 대기실 - 에 도착합니다.
이후 채굴자가 수수료 우선순위에 따라 픽업하여 다음 블록에 포함시킵니다. 1확인까지 약 10분, 6확인(약 1시간)이면 대부분의 목적상 되돌릴 수 없는 것으로 간주됩니다.
가장 간단합니다. raw 트랜잭션 hex를 웹 폼에 붙여넣고 전송하면 끝입니다.
주요 도구:
사용법:
자체 풀노드를 운영한다면 가장 프라이빗한 방법입니다. 제3자가 네트워크보다 먼저 트랜잭션을 보는 일이 없습니다.
bitcoin-cli sendrawtransaction "YOUR_RAW_TX_HEX"
트랜잭션이 유효하면 TXID를 반환합니다. 유효하지 않으면 이유를 설명하는 에러를 반환합니다.
실제 전송 없이 테스트할 수도 있습니다:
bitcoin-cli testmempoolaccept '["YOUR_RAW_TX_HEX"]'
대부분의 데스크톱 지갑은 "보내기"를 클릭하면 자동으로 브로드캐스트합니다. 하지만 에어갭 기기나 멀티시그 설정에서 미리 서명된 트랜잭션이 있다면 수동으로 브로드캐스트할 수 있습니다:
Electrum: Tools > Load Transaction > From text/file > Broadcast
Sparrow: File > Import Transaction > Broadcast Transaction
개발자나 자동화 시스템용:
curl -X POST https://blockstream.info/api/tx -d "RAW_TX_HEX"
또는 mempool.space API:
curl -X POST https://mempool.space/api/tx -d "RAW_TX_HEX"
성공 시 TXID를 반환합니다.
브로드캐스트 후 몇 시간째 미확인 상태라면, 브로드캐스트 실패가 아니라 수수료 문제입니다. 트랜잭션은 멤풀에 도착했지만, 채굴자들이 더 높은 수수료 트랜잭션을 우선 처리하고 있는 것입니다.
상태 확인: mempool.space에서 TXID를 조회하세요.
해결법:
자세한 해결 방법은 멈춘 트랜잭션 해결 가이드를 참고하세요.
TXID 대신 에러가 반환되었다면 트랜잭션이 수락되지 않은 것입니다.
| 에러 | 의미 | 해결 |
|---|---|---|
| Missing inputs | 사용하려는 UTXO가 더 이상 존재하지 않음 | 다른 트랜잭션에서 이미 사용되었는지 확인 |
| Fee too low | 최소 중계 수수료(1 sat/vB) 미만 | 더 높은 수수료로 재생성 |
| Already in mempool | 이미 브로드캐스트됨 | 블록 탐색기에서 TXID 확인 |
| Double spend | 다른 트랜잭션이 같은 입력을 이미 사용 | 둘 중 하나가 삭제됨 |
브로드캐스트는 트랜잭션을 처음 받는 노드에 IP 주소를 노출합니다.
대응 방법:
브로드캐스트는 트랜잭션 서명과 확인 사이의 마지막 단계입니다. 대부분의 사용자에게 지갑이 자동으로 처리하지만, 트랜잭션이 멈추거나 콜드 스토리지나 멀티시그를 사용할 때, 또는 프라이버시가 중요할 때 - 수동 브로드캐스트 방법을 아는 것은 필수입니다.
도구는 무료이고, 과정은 수초면 끝나며, 트랜잭션을 직접 통제할 수 있게 해줍니다. 그것이 비트코인의 핵심입니다.