Перейти к содержимому
buybitcoinsmart

Глоссарий / Справочник разработчика

QR-код URI

Что такое QR-код URI?
QR-код URI представляет собой квадратный черно-белый узор, в котором закодирован URI bitcoin:, чтобы камера могла прочитать адрес и сумму, которые иначе пришлось бы вводить вручную.

Сканирование избавляет от ввода вручную, а именно при вводе вручную и возникают ошибки. Адрес bech32, записанный заглавными буквами, укладывается в алфавитно-цифровой режим QR, который, как отмечает BIP173, примерно на 45 процентов компактнее байтового режима, поэтому коды из заглавных букв содержат меньше модулей и сканируются надежнее. Чего QR-код сделать не может, так это сообщить вам, что адрес внутри него принадлежит тому, о ком вы думаете.

Как это работает

QR-код представляет собой универсальный контейнер данных, стандартизированный как ISO/IEC 18004, и биткоин просто помещает в него текстовый URI.

Формат предлагает несколько режимов кодирования. Алфавитно-цифровой режим охватывает набор из 45 символов: цифры, заглавные буквы, пробел и девять знаков препинания. Он упаковывает два символа в 11 бит. Байтовый режим принимает что угодно, но расходует целых 8 бит на символ. Строчных букв в алфавитно-цифровом наборе нет, поэтому кошельки часто показывают всю строку заглавными буквами, как BITCOIN:BC1Q.... Схемы URI нечувствительны к регистру, а адреса bech32 действительны в любом регистре, лишь бы он не смешивался, так что перевод в заглавные буквы безопасен и уменьшает сетку.

Адреса Base58, начинающиеся с 1 или 3, такой возможности не получают, потому что их набор символов чувствителен к регистру и замена буквы меняет адрес. Это небольшое, конкретное преимущество bech32, о котором упоминают редко.

Коррекция ошибок выбирается при генерации кода. Четыре уровня восстанавливают примерно 7, 15, 25 и 30 процентов поврежденного кода. Печатная наклейка, подверженная погоде, оправдывает самый высокий уровень; экран нет. Емкость здесь никогда не является ограничивающим фактором: самая крупная версия QR вмещает 4296 алфавитно-цифровых символов, тогда как типичный URI биткоина занимает где-то от 50 до 120.

Где это встречается

Четыре места ежедневно создают QR-коды биткоина, и они не одинаково надежны.

Экраны пополнения на биржах создают код для адреса, который вам предлагают пополнить. Собственный дисплей аппаратного кошелька создает код для адреса, который кошелек вывел внутри себя, и это единственный вариант, происхождение которого вы можете проверить. Платежные страницы продавцов показывают единый код, несущий и ончейн-адрес, и счет Lightning. Биткоин-банкоматы показывают код в момент покупки, обычно с обратным отсчетом.

Разница между вторым местом и остальными и есть весь аргумент безопасности в пользу аппаратных кошельков. Вредоносная программа, управляющая вашим экраном, может перерисовать QR-код; она не может перерисовать тот, что на дисплее Trezor или Ledger. Создайте код на устройстве, затем проверьте символы, которые устройство также печатает под ним.

Физические коды являются более мягкой целью. Internet Crime Complaint Center ФБР опубликовал публичное уведомление 18 января 2022 года о преступниках, наклеивающих свои QR-наклейки поверх законных, и этот прием не исчез. Считайте любой код, напечатанный на бумаге в общественном месте, непроверенным, пока адрес назначения не совпадет с тем, который вы независимо ожидали.

Есть одно безобидное применение, о котором стоит знать. Устройства подписи, изолированные от сети, перемещают частично подписанные транзакции туда и обратно через анимированные последовательности QR-кодов, сменяя несколько кадров в секунду, потому что камера и экран образуют канал передачи данных без кабеля и без стека USB, который можно было бы атаковать.

QR-код URI vs адрес

Адрес представляет собой текст; QR-код URI представляет собой изображение более длинного текста, который содержит адрес. Сканирование кода, в котором хранится простой адрес, дает вашему кошельку пункт назначения и больше ничего, поэтому сумму вы все равно вводите. Сканирование кода с полным URI заполняет сумму, метку, а иногда и счет Lightning. Оба выглядят для глаза одинаково, поэтому кошелек, который после сканирования показывает вам уже заполненную итоговую сумму, сообщает вам нечто полезное о том, что он на самом деле прочитал.

Не путать с

Часто задаваемые вопросы

Почему некоторые QR-коды биткоина состоят только из заглавных букв?

Чтобы сделать код меньше. В алфавитно-цифровом режиме QR нет строчных букв, и BIP173 отмечает, что он примерно на 45 процентов компактнее байтового режима, поэтому перевод адреса bech32 и схемы bitcoin: в заглавные буквы дает более разреженную сетку, которая сканируется надежнее.

Сканирование QR-кода безопаснее, чем копирование адреса?

Оно позволяет избежать вредоносных программ, подменяющих буфер обмена, но привносит собственный риск. Печатный код можно закрыть мошеннической наклейкой, о чем ФБР предостерегало в январе 2022 года. В любом случае проверяйте пункт назначения на экране вашего аппаратного кошелька.

Читайте далее

Связанные термины

Еще в разделе «Справочник разработчика»

Читать эту страницу на английском