Perché il tuo indirizzo non somiglia al loro: formati di indirizzo e perché gli invii falliscono

·6 min di lettura·Di SSP Editorial Team
Copertina SSP Academy: formati di indirizzi cripto e invii falliti

Perché il tuo indirizzo non somiglia al loro: formati di indirizzo e perché gli invii falliscono

Prima o poi chiunque faccia autocustodia incontra lo stesso momento di smarrimento. Copi il tuo indirizzo di ricezione per mandarti un po' di Bitcoin e non somiglia agli indirizzi che hai visto finora. Oppure un exchange lo rifiuta. Oppure mandi Bitcoin Cash a qualcosa che sembra esattamente un indirizzo Bitcoin e passi un'ora spiacevole a capire che cosa è successo.

Niente di tutto questo è arbitrario. I formati di indirizzo codificano informazioni reali su come le monete possono essere spese, e appena impari a leggerli la confusione svanisce quasi del tutto.

Un indirizzo è un insieme di condizioni di spesa

Il modello mentale utile non è «un indirizzo è un numero di conto». È questo: un indirizzo è una descrizione compressa di che cosa deve essere vero perché queste monete si muovano.

Manda a un indirizzo che inizia con 1 e la condizione è una specifica chiave pubblica deve produrre una firma. Manda a un indirizzo bc1q… di quelli lunghi e la condizione può essere due chiavi specifiche devono firmare entrambe. Stessa catena, stesso denaro, regole del tutto diverse: e il formato dell'indirizzo è il modo in cui la catena ti dice quali regole valgono.

Ecco perché i formati si sono moltiplicati. Ogni volta che Bitcoin ha guadagnato un nuovo modo di bloccare monete, gli è servito un nuovo modo di scrivere dove fossero bloccate.

I formati che incontrerai su Bitcoin

Legacy — 1… L'originale. Pagamento all'hash di una chiave pubblica: una chiave, una firma. Supportato ovunque e il più costoso da spendere, perché i dati della firma contano per intero nella dimensione del blocco.

Script — 3… Pagamento all'hash di uno script. Le monete sono bloccate a uno script anziché a una chiave: un quorum multisig, un blocco temporale, qualsiasi cosa. L'indirizzo è un hash delle condizioni, quindi da fuori non puoi sapere quali siano. È anche così che il SegWit delle origini è stato introdotto per compatibilità.

SegWit nativo — bc1q… Bech32. I dati di firma si sono spostati in una struttura testimone separata, il che ha reso la spesa più economica e ha risolto la malleabilità delle transazioni. Bech32 è in minuscolo, ha una somma di controllo più forte di base58 ed è progettato perché i refusi vengano rilevati anziché accettati in silenzio.

Il SegWit nativo esiste in due lunghezze, e la differenza conta:

  • 42 caratteri in tutto — P2WPKH. Una chiave, una firma.
  • 62 caratteri in tutto — P2WSH. Uno script, per esempio un multisig due-di-due.

Taprootbc1p… Il più recente. Migliore riservatezza e spese complesse più economiche, al prezzo di qualche servizio più vecchio che ancora non lo accetta.

Perché un indirizzo SSP sembra insolito

È qui che le persone si sorprendono, e la spiegazione è soddisfacente.

SSP è un wallet multisig due-di-due. Le tue monete non sono bloccate a una singola chiave: sono bloccate a uno script che richiede firme sia dall'estensione del browser sia dal telefono. Questo significa che un indirizzo Bitcoin di SSP è P2WSH, non P2WPKH, quindi è la forma lunga di bc1q: 62 caratteri anziché i 42 a cui la maggior parte è abituata.

Se stai fissando il tuo indirizzo pensando che sembri troppo lungo, deve esserlo. La lunghezza in più è l'hash di uno script due-di-due invece dell'hash di una sola chiave pubblica. L'indirizzo è più lungo perché le condizioni sono più ricche.

Ogni tanto questo fa inciampare servizi più vecchi che riconoscono per schema solo la forma corta. È un limite dalla loro parte — il P2WSH ha dieci anni — ma vale la pena sapere perché avviene l'errore, dato che il messaggio è di solito il poco utile «indirizzo non valido».

Ogni catena ha fatto scelte diverse

SSP supporta diverse catene UTXO, e ciascuna scrive gli indirizzi multisig a modo suo:

CatenaTipo di script in SSPL'indirizzo appare così
BitcoinP2WSHbc1q… (62 caratteri)
LitecoinP2WSHltc1q…
Bitcoin CashP2SHbitcoincash:p…
DogecoinP2SHinizia con 9 o A
ZcashP2SHt3…
RavencoinP2SHinizia con r
FluxP2SHt3…

Litecoin ha seguito da vicino il disegno di Bitcoin cambiando solo il prefisso leggibile, ed è per questo che i suoi indirizzi risultano familiari. Zcash e Flux usano una versione a due byte, che dà il caratteristico prefisso t3 agli indirizzi di script. Dogecoin ha scelto un proprio byte di versione, quindi i suoi indirizzi di script iniziano con 9 o A — nulla a che vedere con i noti indirizzi D… a chiave singola.

La cosa importante è che i prefissi di indirizzo di una catena sono costanti a livello di consenso, non questioni di marchio. Sono il motivo per cui un wallet può rifiutare un indirizzo prima che tu invii qualsiasi cosa.

La trappola di Bitcoin Cash, e perché esiste CashAddr

C'è un pezzo di storia che vale la pena conoscere perché può davvero costarti denaro.

Quando Bitcoin Cash si è separato da Bitcoin nel 2017, ha ereditato esattamente il formato di indirizzo di Bitcoin: gli stessi byte di versione, 0x00 per gli indirizzi di chiave e 0x05 per quelli di script. Un indirizzo BCH legacy e un indirizzo BTC legacy erano indistinguibili. Non simili. Identici nella struttura.

Le persone mandavano BTC a indirizzi BCH e BCH a indirizzi BTC di continuo, perché nessun software poteva distinguerli. Le monete non venivano distrutte — la stessa chiave privata controlla entrambe — ma recuperarle significava importare chiavi in un wallet dell'altra catena, cosa che molti utenti non riuscivano a fare in sicurezza.

CashAddr è stato il rimedio: un formato in stile bech32 con prefisso bitcoincash:, deliberatamente incompatibile con quello di Bitcoin perché l'invio tra catene fallisca rumorosamente invece di riuscire in silenzio. È per questo che SSP mostra gli indirizzi Bitcoin Cash con il prefisso completo. Sembra prolisso. La prolissità è la funzione.

Perché gli invii falliscono, e che cosa significa ogni fallimento

«Indirizzo non valido». Di solito un errore di somma di controllo: un refuso, un incollaggio troncato, una stringa bech32 con maiuscole e minuscole mescolate. Bech32 non distingue le maiuscole, ma non deve mescolarle; alcuni percorsi di copia-incolla rovinano questo. A volte significa che il servizio mittente non supporta il tuo formato.

«Tipo di indirizzo non supportato». Il servizio riconosce l'indirizzo ma non ci invia: tipicamente un exchange più vecchio che non ha mai aggiunto Taproot, o che gestisce solo il SegWit corto. Non tocca a te risolverlo: usa un'altra via di prelievo o un indirizzo intermedio.

Catena completamente sbagliata. Qui ti protegge il prefisso leggibile di bech32: bc1 e ltc1 sono diversi, e i wallet controllano. Le catene base58 sono più rischiose, perché un indirizzo Dogecoin valido è strutturalmente valido anche su diverse altre catene.

È partito, ma non è arrivato nulla. O stai guardando l'explorer della catena sbagliata, o i fondi sono andati a un indirizzo valido che non è tuo. Non esiste un richiamo.

Le regole pratiche

Copia, non digitare mai. Ogni formato ha una somma di controllo proprio perché gli umani sbagliano a digitare. Non farle fare un lavoro che non dovrebbe toccarle.

Prima di tutto, fai combaciare il prefisso con la catena. Bitcoin è bc1, 1 o 3. Litecoin è ltc1, L o M. Bitcoin Cash è bitcoincash:. Quest'unica occhiata intercetta gli errori costosi.

Aspettati che gli indirizzi multisig siano più lunghi. Se usi SSP o qualunque wallet basato su script, la forma lunga è quella giusta. La lunghezza non è sintomo di un errore.

Manda prima una piccola prova quando la destinazione è nuova, soprattutto verso un exchange e soprattutto per importi grandi. La commissione è irrilevante rispetto all'alternativa.

Usa un indirizzo di ricezione nuovo quando il wallet te lo offre. Riutilizzare indirizzi collega le tue transazioni tra loro agli occhi di chiunque osservi la catena. Evitarlo non costa nulla.

I formati di indirizzo sembrano curiosità arbitrarie finché non ti accorgi che ognuno è un'affermazione su come le monete possono muoversi. Letti così, ricevere nel proprio wallet smette di essere un atto di fede e diventa qualcosa che puoi davvero verificare — che poi è tutto il senso del tenere le proprie chiavi.

Condividi questo articolo

Articoli correlati