BBQr je veřejně popsaný transportní formát od Coinkite. Každý QR začíná prefixem B$ a krátkou hlavičkou s kódováním, typem souboru, celkovým počtem dílů a indexem; za ní následuje část dat zapsaná jako HEX, Base32 nebo pevně definovaný Zlib plus Base32.
BBQr řeší situaci, kdy se PSBT, podepsaná transakce nebo jiný soubor nevejde do jednoho rozumně čitelného QR kódu. Odesílatel data rozdělí do série rámců a přijímač je znovu složí, takže soubor může překročit air gap bez kabelu, karty nebo síťového spojení. Formát sám nic nepodepisuje, nevysílá do Bitcoin sítě a není součástí konsenzu. [1]
Každý rámec začíná osmiznakovou hlavičkou. Prefix B$ označuje BBQr, další znak volí kódování, další typ obsahu, dvě base36 pozice udávají celkový počet rámců a poslední dvě index aktuálního rámce. Příklad B$HP0301 znamená HEX, PSBT, celkem 3 rámce a díl s indexem 1. Všechny rámce jedné série musejí uvádět stejné kódování, typ a počet. [1]
QR používá alfanumerický režim s omezenou sadou velkých znaků. Kód H zapisuje HEX, kód 2 používá Base32 bez znaku = a kód Z nejprve komprimuje celý soubor pomocí Zlib s wbits=10 bez souborové hlavičky a pak použije Base32. Komprese může PSBT zmenšit, ale u hashů, UTXO a jiných dat s vysokou entropií může pomoci málo; encoder má pak zvolit menší nekomprimovanou variantu. [1]
Rámce lze načíst v libovolném pořadí, protože hlavička nese jejich index. Není to však fountain code: přijímač musí získat všech N částí a chybějící rámec nelze dopočítat z ostatních. QR vrstva už má vlastní detekci a opravu chyb, proto specifikace nepřidává další checksum série; diskuse návrhu výslovně řešila kompromis mezi jednoduchostí, režijními daty a obnovou vynechaných rámců. [4]
Projektová dokumentace označuje BBQr jako široce nasazený a k 27. červenci 2026 ověřila vydaný veřejný kód u několika signerů, mobilních peněženek a koordinátorů, včetně COLDCARD Q, Sparrow Wallet, Nunchuk Desktop, BTCPay Server, Krux a BlueWallet. Podpora však není automaticky obousměrná: například SeedSigner byl v přehledu u verze 0.8.7 veden jako decode-only. [2]
Dvě base36 pozice dovolují nejvýše 1295 částí, tedy ZZ. Specifikace pro QR verze 40 uvádí 4296 alfanumerických znaků a teoretický nekomprimovaný strop 2 776 480 bajtů pro HEX nebo 3 470 600 bajtů pro Base32. Reálná implementace může mít přísnější limit: dokumentace COLDCARD Q přijímá soubory nejvýše 2 MiB a jinak zobrazuje průběh podle počtu částí. [6]
Typový znak P označuje PSBT a T hotovou bitcoinovou transakci; J, C, U, B a X pokrývají JSON, CBOR, UTF-8 text, obecná binární a spustitelná data. Typ pomáhá přijímači zvolit parser, ale nedokazuje správnost ani bezpečnost obsahu. Peněženka musí odmítnout typ, který v daném kroku neočekává, a signer musí před podpisem nezávisle zobrazit výstupy, částky a poplatek. [5]
Implementaci je potřeba ověřit round-trip testem proti zveřejněnému repozitáři a testovacím datům: stejný soubor se zakóduje, rámce se promíchají, znovu načtou a výsledek se porovná po bajtech. Zvlášť se testují chybějící a poškozený rámec, H, 2 i Z, jednorámcový případ a hranice paměti zařízení. Skutečný PSBT ani jiná citlivá data nepatří do veřejného webového generátoru. [3]
Pro nejúplnější obraz čtěte toto heslo společně s PSBT, Transakce, Hardware Wallet, Air-gapped Wallet, Multisig, Output Descriptor.
01Je BBQr totéž co SeedQR?+
Ne. SeedQR reprezentuje obnovovací tajemství BIP39 peněženky a vyžaduje režim zacházení jako s privátním klíčem. BBQr je obecná transportní obálka pro rozdělená data, často PSBT nebo podepsanou transakci. BBQr může nést citlivý obsah, ale samotný název formátu neříká, že uvnitř je seed, ani data nešifruje.
02Znamená air-gapped přenos přes BBQr, že je transakce bezpečná?+
Ne. Optický přenos odstraní konkrétní síťovou nebo kabelovou cestu, ale škodlivý koordinátor stále může připravit PSBT s cizím výstupem, nevhodným poplatkem nebo nečekanými vstupy. Uživatel musí na důvěryhodném signer zařízení ověřit adresy, částky, poplatek a politiku peněženky; po podpisu má koordinátor vyslat přesně zkontrolovanou transakci.