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 та високоентропійних даних; тоді кодер має вибрати менший нестиснений варіант. [1]

Кадри можна читати в довільному порядку завдяки індексу. Проте це не fountain code: одержувач повинен отримати всі N частин і не може відновити відсутній кадр з інших. QR вже має виявлення та виправлення помилок, тому специфікація не додає checksum для серії; проєктне обговорення зважує простоту, накладні дані й відновлення пропущених кадрів. [4]

Документація проєкту називає BBQr широко впровадженим і станом на 27 липня 2026 року підтверджувала випущений публічний код у кількох signer-пристроях, мобільних гаманцях і координаторах, серед яких COLDCARD Q, Sparrow Wallet, Nunchuk Desktop, BTCPay Server, Krux та BlueWallet. Підтримка не обов’язково двостороння: SeedSigner версії 0.8.7 був зазначений лише як decoder. [2]

Дві позиції base36 дозволяють щонайбільше 1295 частин, тобто ZZ. Для версії QR 40 специфікація наводить 4296 алфавітно-цифрових символів і теоретичну нестиснену межу 2 776 480 байтів для HEX або 3 470 600 байтів для Base32. Пристрій може встановити нижчу межу: 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 і формат не шифрує дані.

02Чи робить передавання BBQr через 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Документація
Переглянуто: Спочатку джерела · Не інвестиційна порада