Glossário / Referência do desenvolvedor
Etiqueta
- O que é a etiqueta?
- A etiqueta em um URI de Bitcoin nomeia a pessoa ou a empresa que recebe o pagamento, e em uma carteira é a nota privada que você anexa a um endereço ou a uma transação.
Especificação no BIP-21.
As etiquetas são a única parte de um pagamento em bitcoin que existe puramente para as pessoas. Nada do que você digita em uma etiqueta chega à blockchain, e nada da sua frase de recuperação a traz de volta: o Bitcoin Core substituiu seu antigo sistema de contas por etiquetas na versão 0.17.0, em outubro de 2018, e elas vivem apenas no arquivo da carteira. Perdê-las custa a você o seu próprio histórico de transações na hora de declarar imposto.
Como funciona
A palavra etiqueta abrange duas coisas diferentes, e distingui-las evita muita confusão.
A primeira é o parâmetro label definido pelo BIP21. Ele viaja dentro de um URI de pagamento como UTF-8 com codificação percentual, de modo que label=Coffee%20Shop aparece como Coffee Shop na sua tela de confirmação. É um texto orientativo fornecido por quem construiu o URI. Nenhuma assinatura o cobre, nenhuma carteira o verifica, e um atacante que constrói um link de phishing o escolhe com a mesma liberdade que um comerciante honesto.
A segunda é a nota que você mesmo escreve. O Bitcoin Core expõe isso por meio de setlabel, getaddressesbylabel e listlabels, a API que chegou na versão 0.17.0, quando as contas foram descontinuadas, e que terminou de substituí-las quando as chamadas de contas foram removidas na versão 0.18.0. A Sparrow, a Electrum e a maioria das carteiras móveis mantêm um campo equivalente.
As etiquetas do lado da carteira são metadados que ficam ao lado das suas chaves, não dentro delas. Restaure uma frase de recuperação em um software novo e cada bitcoin volta sem nenhuma memória de onde veio. O BIP329 existe para resolver a metade da portabilidade desse problema: ele define uma exportação JSON Lines com um registro por linha, cada um com um tipo (tx, addr, pubkey, input, output ou xpub), uma referência e o texto da etiqueta. Várias carteiras de desktop e móveis conseguem ler e escrever o formato, então as etiquetas podem se transferir quando você troca de software.
Onde você a vê
As etiquetas se mostram essenciais em três situações que não têm nada a ver com pagamentos parecerem organizados.
O controle de moedas é a primeira. Decidir quais saídas não gastas gastar, e quais manter separadas, só funciona se você conseguir distingui-las, e a etiqueta é o que registra que este bitcoin veio de um saque verificado de uma corretora enquanto aquele chegou de uma negociação ponto a ponto. Junte-as em uma só transação e você terá vinculado os dois históricos para sempre. Ninguém pratica a evitação de fusões contando com a memória.
Os registros fiscais são a segunda. O seu custo de aquisição de um bitcoin específico vive nas suas próprias notas, porque uma transferência em autocustódia não carrega preço. Uma carteira com depósitos etiquetados e o valor em moeda fiduciária anotado é uma planilha que você já tem; uma carteira cheia de UTXOs sem etiqueta é uma tarde de reconstrução por ano.
O phishing é a terceira, e ele funciona na direção oposta. Uma etiqueta de URI é texto controlado pelo atacante. Ver um nome de empresa conhecido em uma tela de pagamento significa que alguém digitou esse nome em uma string, nada mais.
Hábito prático: etiquete no momento da transação, quando você ainda sabe do que se tratava, e exporte as etiquetas junto com o descritor da sua carteira sempre que fizer um backup. Uma frase de recuperação mais um descritor mais um arquivo de etiquetas é uma restauração completa. Uma frase de recuperação sozinha recupera o dinheiro e perde a história.
Etiqueta vs memo PP
Um memo no protocolo de pagamento BIP70 era texto do comerciante que viajava dentro de uma mensagem assinada, então uma carteira podia ao menos vinculá-lo a um titular de certificado. Uma etiqueta BIP21 viaja em claro sem nada que a ateste. Essa diferença era todo o argumento a favor do protocolo de pagamento, e não o salvou: o BIP70 foi removido do Bitcoin Core na versão 0.20.0, em junho de 2020, deixando as etiquetas sem assinatura como o formato que todo mundo realmente usa.