Glossario / Privacy e sicurezza
Silent payments
Noto anche come BIP352.
- Che cosa sono i silent payments?
- I silent payments ti permettono di pubblicare un unico indirizzo riutilizzabile che non compare mai sulla blockchain, perché il mittente lo usa per calcolare una destinazione nuova e non collegabile per ogni pagamento.
Specificato nel BIP-352.
La stringa statica che distribuisci è una coppia di chiavi pubbliche, non un luogo in cui arrivano i bitcoin. Specificato come BIP352 da josibake, Ruben Somsen e Sebastian Falbesoner e creato a marzo 2023, lo schema deriva un nuovo output Taproot per ogni pagamento da un segreto che solo mittente e destinatario possono calcolare. Ottieni la comodità di un indirizzo riutilizzato senza alcun collegamento on-chain.
Come funziona
In un silent payment è il mittente a fare la derivazione dell'indirizzo, ed è il trucco che fa funzionare tutto il resto.
Un indirizzo di silent payment codifica due chiavi pubbliche, una per la scansione e una per la spesa, in bech32m con il prefisso sp1. La specifica indica ai wallet di gestire stringhe di almeno 117 caratteri, quindi è abbastanza lungo perché le persone lo condividano come codice QR o link invece di digitarlo. Quando qualcuno ti paga, il suo wallet esegue uno scambio Diffie-Hellman tra le chiavi private degli input che sta spendendo e la tua chiave di scansione. Ne risulta un segreto condiviso, il segreto modifica la tua chiave di spesa e il risultato è un normale output Taproot che somiglia a ogni altro output Taproot del blocco. Nulla on-chain lo collega all'indirizzo che hai pubblicato, e due pagamenti da due mittenti diversi non hanno alcun rapporto visibile.
Il costo ricade sul destinatario. Poiché nessun output porta il tuo indirizzo, il tuo wallet deve provare le transazioni candidate in ogni blocco ripetendo lo stesso calcolo con la tua chiave di scansione. I wallet lo fanno scansionando in locale, che costa tempo di sincronizzazione e batteria ma non dice nulla a nessun server, oppure appoggiandosi a un servizio di indicizzazione, che è più veloce e meno privato. Le etichette opzionali ti permettono di derivare varianti distinguibili del tuo indirizzo, così puoi ancora distinguere una donazione da uno stipendio senza pubblicare due identità.
Dove lo vedi
Il supporto ai silent payments è reale ma parziale, e serve a entrambe le estremità del pagamento.
Cake Wallet è stato il primo wallet mobile con invio e ricezione completi, Sparrow copre il desktop e Silentium esiste come implementazione di riferimento. Wasabi può inviare a un indirizzo sp1. Bitcoin Core non include un wallet per i silent payments in nessuna versione pubblicata: il lavoro è fermo da anni nella pull request 28122, sebbene le primitive crittografiche ora vivano nella library libsecp256k1 inclusa.
Il caso d'uso che giustifica la complessità è la ricezione pubblica. Un indirizzo per le donazioni su un sito web, un indirizzo per le mance nella descrizione di un video, un codice QR su un poster: tutti questi sono indirizzi riutilizzati per definizione, e ogni pagamento verso di loro si accumula in un unico mucchio pubblico che mostra al mondo il tuo totale incassato. Un indirizzo di silent payment risolve questo senza un passaggio interattivo, che è la parte che i precedenti tentativi di indirizzi riutilizzabili non sono mai riusciti a risolvere.
Silent payments vs un indirizzo unico
Un normale wallet HD ti dà già un indirizzo nuovo per ogni pagamento, e per un pagamento tra due persone è più semplice, più economico e accettato ovunque: tu chiedi, l'altro paga, non si deriva nulla. I silent payments contano quando non puoi fare la domanda, perché l'indirizzo deve restare pubblico ed essere pagato da sconosciuti in momenti imprevedibili. In cambio accetti lavoro di scansione e un supporto più ristretto tra i wallet, quindi la maggior parte delle persone dovrebbe continuare a usare indirizzi nuovi per i pagamenti ordinari e riservare un indirizzo di silent payment ai luoghi in cui i loro recapiti sono permanenti.