Pular para o conteúdo
buybitcoinsmart

Glossário / Referência do desenvolvedor

Código QR de URI

O que é um código QR de URI?
Um código QR de URI é o padrão quadrado em preto e branco que codifica um URI bitcoin:, para que uma câmera leia o endereço e o valor que, de outro modo, seriam digitados.

Escanear elimina a digitação, e é na digitação que os erros aparecem. Um endereço bech32 escrito em maiúsculas se encaixa no modo alfanumérico do QR, que, conforme observa o BIP173, é cerca de 45% mais compacto que o modo de bytes, de modo que códigos em maiúsculas carregam menos módulos e são escaneados com mais confiabilidade. O que um código QR não pode fazer é dizer que o endereço dentro dele pertence a quem você pensa que pertence.

Como funciona

Um código QR é um contêiner de dados de uso geral, padronizado como ISO/IEC 18004, e o bitcoin simplesmente coloca um URI de texto dentro de um.

O formato oferece vários modos de codificação. O modo alfanumérico abrange um conjunto de 45 caracteres: os dígitos, as letras maiúsculas, o espaço e nove sinais de pontuação. Ele empacota dois caracteres em 11 bits. O modo de bytes aceita qualquer coisa, mas gasta 8 bits completos por caractere. As letras minúsculas estão ausentes do conjunto alfanumérico, e é por isso que as carteiras muitas vezes exibem toda a sequência em maiúsculas, como BITCOIN:BC1Q.... Os esquemas de URI não diferenciam maiúsculas de minúsculas, e endereços bech32 são válidos em qualquer das duas formas, desde que não sejam misturadas, então usar maiúsculas é seguro e reduz a grade.

Endereços Base58 que começam com 1 ou 3 não têm essa opção, porque seu conjunto de caracteres diferencia maiúsculas de minúsculas e mudar uma letra muda o endereço. É uma vantagem pequena e concreta do bech32 que raramente é mencionada.

A correção de erros é escolhida no momento da geração. Os quatro níveis recuperam aproximadamente 7, 15, 25 e 30% de um código danificado. Um adesivo impresso exposto ao tempo justifica o nível mais alto; uma tela não. A capacidade nunca é a restrição decisiva aqui: a maior versão de QR comporta 4.296 caracteres alfanuméricos, enquanto um URI de bitcoin típico ocupa algo entre 50 e 120.

Onde você o encontra

Quatro superfícies produzem códigos QR de bitcoin diariamente, e elas não são igualmente confiáveis.

As telas de depósito das corretoras geram um para um endereço no qual elas querem que você deposite. A própria tela de uma carteira de hardware gera um para um endereço que ela derivou internamente, que é a única versão cuja procedência você pode verificar. As páginas de pagamento de comerciantes imprimem um código unificado que carrega tanto um endereço on-chain quanto uma fatura Lightning. Os caixas eletrônicos de bitcoin exibem um no momento da compra, geralmente com uma contagem regressiva.

A diferença entre a segunda superfície e as demais é todo o argumento de segurança a favor das carteiras de hardware. Um malware que controla sua tela pode redesenhar um código QR; ele não pode redesenhar o da tela de uma Trezor ou de uma Ledger. Gere o código no dispositivo e depois verifique os caracteres que o dispositivo também imprime abaixo dele.

Os códigos físicos são o alvo mais fácil. O Internet Crime Complaint Center do FBI publicou um anúncio de serviço público em 18 de janeiro de 2022 sobre criminosos que colavam seus próprios adesivos de QR sobre os legítimos, e a técnica não desapareceu. Trate qualquer código impresso em papel em um local público como não verificado até que o endereço de destino corresponda a algo que você esperava de forma independente.

Há um uso benigno que vale a pena conhecer. Dispositivos de assinatura isolados da rede movem transações parcialmente assinadas para dentro e para fora por meio de sequências animadas de códigos QR, alternando vários quadros por segundo, porque uma câmera e uma tela formam um canal de dados sem cabo e sem pilha USB para atacar.

Código QR de URI vs endereço

Um endereço é texto; um código QR de URI é uma imagem de um texto mais longo que, por acaso, contém um endereço. Escanear um código que carrega um endereço simples dá à sua carteira um destino e nada mais, então você ainda digita o valor. Escanear um que carrega um URI completo preenche o valor, o rótulo e, às vezes, também uma fatura Lightning. Os dois parecem idênticos aos olhos, e é por isso que uma carteira que mostra um total já preenchido depois de uma leitura está lhe dizendo algo útil sobre o que ela realmente leu.

Não confundir com

Perguntas frequentes

Por que alguns códigos QR de bitcoin usam apenas letras maiúsculas?

Para deixar o código menor. O modo alfanumérico do QR não tem letras minúsculas, e o BIP173 observa que ele é cerca de 45% mais compacto que o modo de bytes, então usar maiúsculas em um endereço bech32 e no esquema bitcoin: produz uma grade menos densa que é escaneada com mais confiabilidade.

Escanear um código QR é mais seguro do que copiar um endereço?

Ele evita malware de área de transferência, mas introduz um risco próprio. Um código impresso pode ser coberto com um adesivo fraudulento, algo sobre o que o FBI alertou em janeiro de 2022. Verifique o destino na tela da sua carteira de hardware de qualquer forma.

Leia a seguir

Termos relacionados

Mais em Referência do desenvolvedor

Ler esta página em inglês