27 / 736ADDR

Endereço Bitcoin

Dados para receber um pagamento, não uma conta bancária

Para alguém lhe pagar em bitcoin, fornece um endereço da sua carteira. Como usá-lo com segurança, por que muda no próximo recebimento e o que permite saber realmente sobre o destinatário?

Um endereço Bitcoin é uma informação para receber pagamentos. Diz à carteira do remetente como preparar o pagamento para que o destinatário possa gastá-lo mais tarde, cumprindo as condições correspondentes. Pode partilhá-lo com quem paga: não é uma chave secreta nem uma cópia de segurança.

Alice quer pagar a Bob. Bob abre Receber na carteira, verifica o endereço e envia-o como texto ou código QR. Alice carrega-o na sua carteira e confirma o destinatário e o montante antes de enviar. Não precisa de interpretar cada carácter: a aplicação trata disso. A partir do endereço, a carteira constrói a condição que permitirá gastar o dinheiro mais tarde, normalmente uma assinatura com a chave privada certa. A transação regista essa condição num script chamado scriptPubKey. Guarda o montante e o script, não o texto habitual do endereço. O endereço é, portanto, uma forma prática de transmitir dados de pagamento, não um recipiente com moedas lá dentro. [1] [3]

Copie o endereço comprido ou leia o QR, em vez de o escrever à mão. Mas a verificação não acaba aí: software malicioso pode substituir um endereço na área de transferência. Compare o endereço completo com os dados obtidos do destinatário por um canal fiável. Se utiliza uma Hardware Wallet, confira também o ecrã do próprio dispositivo. O início e o fim não bastam, pois um endereço fraudulento pode imitá-los. Os endereços incluem uma soma de verificação que ajuda a detetar erros de escrita, mas não confirma que um endereço bem escrito pertence à pessoa pretendida. A carteira também tem de suportar o formato e a rede. Um pequeno pagamento de teste pode ajudar, mas não substitui a verificação no envio seguinte. O protocolo não permite simplesmente cancelar um pagamento confirmado para um endereço errado, embora válido. [2] [7] [8] [18]

Na próxima vez que Bob abrir Receber, poderá surgir outro endereço. Isso não significa que o dinheiro desapareceu. Um endereço novo ajuda a proteger a privacidade: quem conhece um endereço publicado pode acompanhar os pagamentos para ele na blockchain, mas não deverá obter automaticamente uma visão de todos os recebimentos da carteira. Reutilizá-lo facilita essa associação. Endereços novos também não garantem anonimato; transações posteriores podem revelar outras ligações. Pode partilhar um endereço para receber, mas convém pensar antes de o publicar por todo o lado. Um endereço também não equivale a uma pessoa: várias pessoas podem gerir fundos em conjunto, ou um serviço pode geri-los para clientes. [1] [14]

A carteira gere chaves, encontra pagamentos que consegue gastar e apresenta o total. O saldo pode, por isso, provir de muitos endereços. Uma HD Wallet comum gera famílias de chaves a partir de uma base partilhada: um novo endereço não significa abrir outra carteira. Ao pagar, a aplicação pode também devolver o valor sobrante para um endereço próprio, chamado Change Address. Os endereços, por si só, não chegam para recuperar a carteira. A cópia de segurança deve permitir recuperar as chaves necessárias e as regras da sua utilização. Muitas carteiras usam uma Seed Phrase, um conjunto de palavras de recuperação; configurações mais complexas podem exigir informações adicionais. Quem paga nunca precisa dessas palavras nem das suas chaves privadas. [10] [14]

Um código QR é apenas uma representação de dados. Pode conter um endereço ou um pedido que comece por bitcoin:, com montante, identificação do destinatário ou mensagem. BIP21 descrevia este mecanismo, que BIP321 amplia. Antes de confirmar, verifique o que a carteira leu realmente. Os pedidos da Lightning Network, como uma invoice para um pagamento ou um offer que permite pedir novas invoices a cada utilização, usam outro processo; Lightning Address facilita obter esse pedido. Alguns pedidos oferecem várias formas de pagar. Do mesmo modo, uma assinatura digital de mensagem não confirma automaticamente uma identidade: BIP322 permite demonstrar que as condições de um script podem ser cumpridas, mas não prova, por si só, identidade legal ou aprovação de uma fatura qualquer. [15] [16] [17]

Base58Check junta um byte de versão aos dados chamados payload. Acrescenta os primeiros quatro bytes de SHA256(SHA256(version || payload)) e codifica o resultado em Base58. Na mainnet, 0x00 indica P2PKH e 0x05 P2SH, dando os inícios habituais 1 ou 3. As redes de teste usam outras versões. O alfabeto omite os caracteres confundíveis 0, O, I e l. Este checksum de 32 bits deteta muitos erros de escrita, mas não autentica o destinatário. [2] [3]

A representação SegWit nativa inclui o prefixo bc para mainnet ou tb para testnet, o separador 1, a versão witness e dados em grupos de 5 bits. Termina com 6 caracteres de verificação. O BIP173 introduziu Bech32; após a descoberta de uma fraqueza em certas inserções e eliminações, o BIP350 manteve Bech32 para a versão 0 e estabeleceu Bech32m para as versões 1–16. As letras podem ser todas minúsculas ou todas maiúsculas, nunca misturadas. O limite da codificação é 90 caracteres. Mesmo uma representação válida pode pertencer a outra rede ou a uma versão não suportada. [7] [8]

P2PKH e P2WPKH remetem para o HASH160 de 20 bytes de uma chave pública. P2SH usa HASH160 de redeemScript, enquanto P2WSH usa SHA256 de witnessScript. SegWit v0 reconhece assim P2WPKH de 20 bytes e P2WSH de 32 bytes. P2TR segundo o BIP341 é diferente: o seu programa da versão 1 contém uma chave de saída Q ajustada, x-only, de 32 bytes, não o hash de uma chave recetora comum. Q pode também incorporar a raiz de uma árvore de scripts adicionais, ligando criptograficamente a chave a essas condições de gasto. O endereço sozinho não revela todas as possibilidades de gasto. [6] [9]

As primeiras saídas Bitcoin pagavam frequentemente diretamente a uma chave pública. P2PKH adiou a sua revelação até ao gasto. BIP13 e BIP16 permitiram transmitir com P2SH o hash de um script mais complexo. BIP141 acrescentou programas witness versionados, BIP173 Bech32, e BIP341 com BIP350 o formato Taproot com Bech32m. O aspeto diferente corresponde a condições de verificação diferentes. Não «converta» um endereço trocando manualmente o prefixo: pode criar uma saída diferente ou impossível de gastar. Alguns scripts não convencionais e as primeiras saídas pay-to-pubkey não têm um endereço canónico habitual. [4] [5] [6] [7] [8] [9] [3]

Uma HD Wallet segundo BIP32 deriva muitas chaves de uma raiz comum. Os caminhos distinguem os tipos de saída: BIP44 usa o propósito 44' para P2PKH, BIP84 o 84' para P2WPKH e BIP86 o 86' para P2TR de chave única. Seguem-se o tipo de moeda (coin type), a conta, o ramo de receção ou change e o índice do endereço. A Seed Phrase sozinha pode não indicar todos os caminhos, contas e regras Multisig. Um Output Descriptor guarda também a origem das chaves e a construção do script. Recuperar exige encontrar os fundos reais, não apenas voltar a mostrar um endereço conhecido. [10] [11] [12] [13] [14]

Em P2PKH e P2WPKH, vê-se normalmente primeiro o hash da chave; o gasto revela a chave pública. P2SH e P2WSH revelam o redeemScript ou witnessScript utilizado. Taproot já contém uma chave pública ajustada na saída. Um key-path spend normalmente acrescenta uma Schnorr Signature, enquanto um script-path spend revela o script escolhido, o control block e o caminho Merkle; os ramos não usados podem permanecer ocultos. Não é, portanto, verdade que todos os endereços escondem a chave pública. [6] [9]

Para ter uma visão mais completa, leia este verbete junto com Private Key, Carteira, Change Address, Bitcoin, SegWit, Taproot. Também há referências a este verbete em Hash, SHA-256, Cold Storage, Watch-only Wallet.

01Um endereço Bitcoin é um número de conta?

Não. O endereço diz à carteira do remetente como preparar um pagamento para o destinatário. A condição para o gastar mais tarde fica registada na transação como scriptPubKey. Uma carteira pode gerir muitos endereços; um endereço, por si só, não identifica uma pessoa.

02Posso reutilizar um endereço Bitcoin em segurança?

Um endereço antigo pode continuar a receber pagamentos se ainda controlar as chaves necessárias e puder cumprir as suas condições. Um endereço novo não o invalida. Contudo, a reutilização liga os recebimentos, por isso use um endereço novo da carteira no próximo pagamento. Para depósitos num serviço, siga as instruções atuais desse serviço.

DOC · 001Bitcoin whitepaper — Transactions and PrivacyFonte primária DOC · 002Bitcoin Core — Base58Check implementationFonte primária DOC · 003Bitcoin Core — destination encoders and decodersFonte primária DOC · 004BIP 13 — Address Format for pay-to-script-hashEspecificação DOC · 005BIP 16 — Pay to Script HashEspecificação DOC · 006BIP 141 — Segregated Witness consensus layerEspecificação DOC · 007BIP 173 — Base32 address format for native v0-16 witness outputsEspecificação DOC · 008BIP 350 — Bech32m format for witness v1 and laterEspecificação DOC · 009BIP 341 — Taproot validation and output keysEspecificação DOC · 010BIP 32 — Hierarchical deterministic walletsEspecificação DOC · 011BIP 44 — Multi-account hierarchyEspecificação DOC · 012BIP 84 — Derivation for native P2WPKHEspecificação DOC · 013BIP 86 — Derivation for single-key P2TREspecificação DOC · 014Bitcoin Core — Output descriptorsDocumentação DOC · 015BIP 21 — URI schemeEspecificação DOC · 016BIP 322 — Generic signed message formatEspecificação DOC · 017BIP 321 — URI schemeFonte primária DOC · 018Trezor — verify every address on your deviceDocumentação
Revisto em: Fontes em primeiro lugar · Não é recomendação de investimento