Vai al contenuto
buybitcoinsmart

Glossario / Riferimento per sviluppatori

PP expires

Che cos'è PP expires?
PP expires era il timestamp Unix opzionale di un messaggio PaymentDetails di BIP70 che indicava a un wallet di smettere di onorare la richiesta una volta passato quel momento.

Specificato nel BIP-70.

Ogni fattura bitcoin a prezzo fisso ha bisogno di una scadenza, perché il prezzo si muove mentre il cliente decide. BIP70 dava ai commercianti un campo per fissarla, un timestamp Unix a 64 bit, e lo lasciava opzionale. L'abitudine è sopravvissuta al protocollo: il conto alla rovescia su una schermata di acquisto immediato o su un ATM bitcoin svolge esattamente la stessa funzione.

Come funziona

Stato: storico. expires era il campo 4 del messaggio PaymentDetails, e Bitcoin Core ha deprecato BIP70 nella versione 0.19 prima di eliminarlo nella 0.20.0 il 3 giugno 2020. Oggi nessun software implementa il campo.

Nel messaggio c'erano due orologi uno accanto all'altro. time era obbligatorio e registrava quando il commerciante aveva costruito la richiesta; expires era opzionale e registrava quando avrebbe dovuto smettere di essere valido. Entrambi contavano i secondi dal 1º gennaio 1970, ed entrambi erano interi senza segno a 64 bit, il che evitava senza clamore il muro del 19 gennaio 2038 su cui si scontra un contatore con segno a 32 bit.

L'applicazione della scadenza spettava interamente al software di chi pagava. Un wallet confrontava il timestamp con l'orologio del proprio sistema e rifiutava di costruire una transazione una volta passata la scadenza, il che significa che un dispositivo con l'orologio sbagliato o pagava una fattura ormai scaduta o rifiutava una ancora valida. Nulla del campo toccava la blockchain. Una transazione che paga una richiesta scaduta è valida come qualsiasi altra, e se il commerciante la accredita, la rimborsa o se la tiene senza dire nulla non è mai stata una questione del protocollo.

Le finestre brevi nascondevano una trappola specifica. Bitcoin punta a un blocco ogni dieci minuti in media, quindi una scadenza di cinque minuti poteva passare prima che esistesse una sola conferma, lasciando un cliente che aveva davvero pagato e una fattura che il software del commerciante aveva già considerato persa.

Dove lo vedi

Le quotazioni a prezzo fisso sono ovunque nell'acquisto di bitcoin, e dietro ognuna c'è una scadenza.

La schermata di acquisto immediato di un exchange mostra un tasso accanto a un conto alla rovescia, di solito tra qualche secondo e un paio di minuti. Se lo lasci scadere, la quotazione viene ricostruita al prezzo corrente. Un ATM bitcoin fa la stessa cosa su una finestra più lunga, e questo è in parte il motivo per cui il suo spread è più ampio: l'operatore assorbe il rischio di prezzo per tutto il tempo che passi davanti alla macchina.

Lightning ha reso la scadenza obbligatoria invece che opzionale. Una fattura BOLT11 porta un campo x per la scadenza e, quando manca, il valore predefinito è 3600 secondi, un'ora. Se paghi più tardi, un nodo che si comporta correttamente rifiuta il pagamento invece di lasciarlo in sospeso.

Il consiglio pratico per chi paga è poco appariscente: quando c'è una scadenza, non risparmiare sulla commissione. Pagare meno per risparmiare qualche centinaio di satoshi è il modo più comune di perdere una finestra, e una transazione che arriva in ritardo è proprio il caso che finisce in una richiesta all'assistenza invece che in un ordine.

PP expires vs locktime

Una scadenza era una richiesta del commerciante che il software del wallet sceglieva di rispettare; il locktime è una regola che ogni nodo della rete applica. I due vanno anche in direzioni opposte, oltre che con forze diverse. expires segnava un momento dopo il quale non si sarebbe più dovuto effettuare un pagamento, e nessun miner lo ha mai controllato. Il locktime, scritto nella transazione stessa, indica un'altezza di blocco o un momento prima del quale la transazione non può essere inclusa in alcun blocco. L'uno chiude una finestra; l'altro la apre.

Da non confondere con

Domande frequenti

Cosa succedeva se pagavi una richiesta di pagamento bitcoin dopo la sua scadenza?

La transazione era comunque valida, perché la scadenza non è mai stata una regola della rete. Solo il software del commerciante decideva cosa fare dopo, il che in pratica significava accreditare il pagamento al nuovo tasso o inviare un rimborso al netto della commissione.

Perché la quotazione di un exchange scade dopo pochi secondi?

Perché il venditore ti garantisce un prezzo che deve rispettare. Un conto alla rovescia limita quanto il mercato può muoversi mentre decidi, e lasciarlo scadere ricostruisce semplicemente la quotazione al prezzo corrente invece di annullare il tuo ordine.

Leggi anche

Termini correlati

Altro in Riferimento per sviluppatori

Leggi questa pagina in inglese