728 / 736BBQR

BBQr

Better Bitcoin QR, 큰 파일을 QR 코드 연속 프레임으로 전송하는 형식

BBQr는 PSBT, 서명된 트랜잭션 또는 다른 바이너리 데이터를 번호가 붙은 QR 프레임 열로 나누어 air gap을 건넌다. 오버헤드를 줄이고 순서와 무관하게 스캔할 수 있지만 데이터를 암호화하거나 의미를 검증하지 않으며 모든 조각이 필요하다.

BBQr는 Coinkite가 공개한 전송 형식이다. 각 QR은 B$와 인코딩, 파일 유형, 전체 개수, 인덱스를 담은 짧은 헤더로 시작하고, 뒤에는 HEX, Base32 또는 고정된 Zlib 처리 후 Base32로 표현한 데이터 조각이 온다.

BBQr는 PSBT, 서명된 트랜잭션 또는 다른 파일이 읽기 좋은 하나의 QR에 들어가지 않을 때 쓴다. 송신자가 데이터를 프레임으로 나누고 수신자가 다시 조립하므로 케이블, 카드, 네트워크 연결 없이 파일이 air gap을 건널 수 있다. 이 형식은 서명이나 브로드캐스트를 하지 않으며 Bitcoin 합의의 일부도 아니다. [1]

각 프레임은 여덟 문자 헤더로 시작한다. B$는 BBQr를 표시하고, 다음 한 문자는 인코딩, 그다음 한 문자는 콘텐츠 유형, 두 자리 base36은 총 프레임 수, 마지막 두 자리는 인덱스를 뜻한다. B$HP0301은 HEX, PSBT, 총 3개 프레임, 인덱스 1인 조각을 의미한다. 모든 프레임에서 인코딩, 유형, 개수가 같아야 한다. [1]

QR은 제한된 대문자 문자 집합의 영숫자 모드를 쓴다. H는 HEX, 2는 = 없는 Base32를 사용하며, Z는 먼저 전체 파일을 Zlib, wbits=10, 파일 헤더 없이 압축한 뒤 Base32를 쓴다. 압축은 PSBT를 줄일 수 있지만 해시, UTXO, 고엔트로피 데이터에는 효과가 작다. 이때 encoder는 더 작은 비압축 형식을 골라야 한다. [1]

헤더에 인덱스가 있어 프레임은 어떤 순서로든 읽을 수 있다. 하지만 fountain code는 아니다. 수신자는 N개 조각을 모두 얻어야 하며 남은 프레임에서 빠진 프레임을 계산할 수 없다. QR은 이미 오류 탐지와 정정을 제공하므로 명세는 전체 열의 checksum을 추가하지 않는다. 설계 논의는 단순성, 오버헤드, 놓친 프레임 복구 사이의 절충을 다룬다. [4]

프로젝트 문서는 BBQr가 널리 배포되었다고 설명하며 2026년 칠월 27일 기준 COLDCARD Q, Sparrow Wallet, Nunchuk Desktop, BTCPay Server, Krux, BlueWallet을 포함한 여러 signer, 모바일 지갑, 코디네이터에 공개 출시 코드가 있음을 확인했다. 지원이 반드시 양방향인 것은 아니다. SeedSigner 버전 0.8.7은 decoder 전용으로 표시되어 있었다. [2]

두 자리 base36은 최대 1295개 조각, 즉 ZZ를 표현한다. QR 버전 40에 대해 명세는 영숫자 4296자와 비압축 이론 한도로 HEX 2 776 480바이트 또는 Base32 3 470 600바이트를 제시한다. 기기는 더 낮게 제한할 수 있다. COLDCARD Q는 최대 2 MiB를 받고 이후에는 조각 수로 진행률을 표시한다. [6]

유형 P는 PSBT, T는 완성된 Bitcoin 트랜잭션을 뜻하며 J, C, U, B, X는 JSON, CBOR, UTF-8 텍스트, 일반 바이너리, 실행 가능 데이터를 다룬다. 유형은 parser 선택을 돕지만 정확성이나 안전성을 증명하지 않는다. 지갑은 예상하지 않은 유형을 거부하고 signer는 서명 전에 출력, 금액, 수수료를 따로 보여줘야 한다. [5]

구현은 공개 저장소와 테스트 데이터에 대한 round-trip으로 검증한다. 같은 파일을 인코딩하고 프레임을 섞은 뒤 다시 읽어 바이트 단위로 비교한다. 누락 또는 손상 프레임, H, 2와 Z, 단일 프레임, 메모리 한계도 따로 시험한다. 실제 PSBT나 다른 민감한 데이터를 공개 웹 생성기에 넣어서는 안 된다. [3]

더 정확히 이해하려면 이 항목과 함께 다음도 읽어 보세요 PSBT, 트랜잭션, Hardware Wallet, Air-gapped Wallet, Multisig, Output Descriptor.

01BBQr는 SeedQR와 같은가요?

아니다. SeedQR는 BIP39 복구 비밀을 나타내므로 개인 키처럼 보호해야 한다. BBQr는 분할 데이터의 일반 전송 포장으로, 흔히 PSBT나 서명된 트랜잭션을 담는다. 민감한 내용을 운반할 수 있지만 이름이 seed를 뜻하지 않으며 데이터도 암호화하지 않는다.

02BBQr로 air gap을 건너면 트랜잭션이 안전한가요?

아니다. 광학 채널은 네트워크나 케이블 경로 하나를 없애지만 악의적인 코디네이터는 여전히 낯선 출력, 잘못된 수수료, 예상하지 않은 입력이 있는 PSBT를 만들 수 있다. 신뢰할 signer에서 주소, 금액, 수수료, 지갑 규칙을 확인하고 바로 그 검토된 트랜잭션만 브로드캐스트해야 한다.

DOC · 001BBQr — Better Bitcoin QR Specification문서 DOC · 002BBQr — Project status and supporting implementations문서 DOC · 003Coinkite — BBQr reference repository and test data문서 DOC · 004Coinkite BBQr issue 2 — Feedback on sequence recovery문서 DOC · 005COLDCARD Q Quickstart Guide — BBQr transaction flow문서 DOC · 006COLDCARD QR Scanner — BBQr limits and accepted data문서
개정일: 1차 출처 우선 · 투자 조언이 아닙니다