Vai al contenuto
buybitcoinsmart

Glossario / Riferimento per sviluppatori

PP memo

Che cos'è PP memo?
PP memo era la nota di testo libero in UTF-8 che BIP70 permetteva a un commerciante, a un pagatore o a un server che confermava la ricezione di allegare a un pagamento perché una persona la leggesse.

Specificato nel BIP-70.

Tre dei quattro messaggi di BIP70 contenevano un memo, il che lo rende l'unico campo del protocollo che viaggiava in entrambe le direzioni. Era puro testo da mostrare: nessun wallet lo interpretava, nessuna firma proteggeva la copia che il pagatore rimandava indietro e nulla di esso arrivava alla blockchain. Le note di pagamento funzionano ancora così oggi, ed è per questo che sono un cattivo posto per mettere qualcosa che conta.

Come funziona

Stato: storico. Il memo compariva come campo 5 di PaymentDetails, campo 4 del messaggio Payment e campo 2 di PaymentACK, e tutti e tre sono usciti da Bitcoin Core quando il supporto per BIP70 è stato rimosso in 0.20.0 il 3 giugno 2020.

Ciascuno dei tre aveva un autore diverso e un lettore diverso.

Il commerciante scriveva il primo, e il wallet lo mostrava nella schermata di conferma accanto all'importo: un numero d'ordine, il nome di un prodotto, una riga di condizioni. Poiché stava dentro i dettagli serializzati, la firma del commerciante lo copriva, quindi almeno non poteva essere riscritto in transito.

Il pagatore scriveva il secondo e lo rimandava insieme alla transazione trasmessa. Qui andavano le istruzioni per il rimborso e le note per l'assistenza, e nulla le firmava.

Il commerciante scriveva il terzo nella conferma di ricezione, di solito un ringraziamento o una stima della spedizione. Neanche quello era firmato.

BIP70 non fissava alcun limite di lunghezza, quindi i wallet troncavano dove finiva il loro spazio di visualizzazione. Quella piccola lacuna ha un aspetto insidioso. Un testo fornito da un attaccante e mostrato accanto al nome verificato di un'azienda è una superficie di phishing, e una nota che sembra un'istruzione ufficiale a inviare un altro pagamento è convincente proprio nel punto in cui il cliente è meno scettico.

Dove lo vedi

Le note di testo libero allegate ai pagamenti sono vive e vegete, e ogni versione moderna ha la sua particolarità.

I link di pagamento BIP21 portano un parametro message, con codifica percentuale, che il wallet mostra e poi dimentica. Lightning va oltre: una fattura BOLT11 mette la sua descrizione nel campo d e, poiché un campo con tag contiene al massimo 1.023 gruppi di cinque bit, circa 639 byte, qualsiasi testo più lungo deve essere sostituito dal suo hash di 256 bit nel campo h. Gli exchange offrono nei moduli di prelievo un campo di riferimento il cui contenuto non esce mai dal loro database.

L'unica nota che viaggia davvero on-chain è un output OP_RETURN. La politica di relay di Bitcoin Core consentiva un payload di 40 byte quando quel tipo di output è diventato standard in 0.9.0 e di 80 byte da 0.11.0 in poi. Quei byte si pagano con una commissione e sono pubblici per sempre, quindi usarne uno come nota privata è un errore che nessuno fa due volte.

Tutto il resto è locale per te. Una nota scritta nel tuo wallet vive nel file del wallet e non nella frase di recupero, quindi ripristinare su un nuovo dispositivo riporta indietro i bitcoin e nessuna delle parole che hai scritto su di essi. Esporta prima di migrare.

PP memo vs etichetta

Un memo descrive un pagamento; un'etichetta dà un nome a una parte o a un indirizzo. I memo di BIP70 erano scritti per una singola transazione e mostrati una volta, al momento del pagamento. Un'etichetta BIP21 identifica chi viene pagato, e un'etichetta del wallet è la nota di archivio privata che associ a un indirizzo o a una transazione e tieni sulla tua macchina. Nessuno dei tre è firmato da qualcuno di cui puoi verificare la parola, e nessuno dei tre è visibile alla rete.

Da non confondere con

Domande frequenti

Si può allegare un messaggio a una transazione bitcoin?

Solo tramite un output OP_RETURN, che costa una commissione ed è pubblico per sempre. Le note in un link di pagamento, in una fattura Lightning o nel tuo wallet sono archiviate off-chain, quindi il destinatario le vede solo se il software che usate entrambi le inoltra.

Dovresti fidarti della nota mostrata nella schermata di conferma di un pagamento?

Non più di quanto ti fidi di chi ha creato la richiesta. Le note di pagamento sono testo non verificato scelto dal mittente, quindi un'istruzione a inviare un importo in più o a pagare un indirizzo diverso è un modello di phishing, non una politica del commerciante.

Leggi anche

Termini correlati

Altro in Riferimento per sviluppatori

Leggi questa pagina in inglese