PayJoin e firma dei messaggi
Livello della guida: Avanzato. Comprendi prima la normale anteprima di invio, l’importo del destinatario e la commissione.
PayJoin e firma dei messaggi sono strumenti separati. PayJoin cambia il modo in cui è costruita una transazione di pagamento. La firma dei messaggi dimostra il controllo di una chiave per una specifica dichiarazione senza effettuare un pagamento. Nessuna delle due funzioni dovrebbe essere usata come motivo per rivelare le parole di recupero.
Invia una richiesta PayJoin
Sezione intitolata “Invia una richiesta PayJoin”PayJoin è un pagamento collaborativo in cui chi riceve può contribuire con un input. Questo può indebolire l’ipotesi che tutti gli input di un pagamento dall’aspetto ordinario appartengano a un solo mittente. Il destinatario deve fornire un URI di pagamento Bitcoin compatibile contenente un endpoint PayJoin; un normale indirizzo da solo non lo abilita. Il protocollo è descritto nel BIP78.
- Usa un portafoglio software con fondi spendibili. PayJoin supporta input e resto SegWit e Taproot del mittente. Questa versione rifiuta le richieste PayJoin per l’invio da portafogli hardware.
- Incolla l’URI di pagamento completo in Send, anziché copiarne solo l’indirizzo. Controlla destinazione e importo tramite lo stesso canale affidabile che useresti per qualsiasi pagamento.
- Controlla l’anteprima della transazione e l’indicatore PayJoin, poi autorizza il pagamento se l’importo e le impostazioni delle commissioni sono accettabili. PayJoin è una procedura per un solo destinatario; non può essere combinato con un pagamento multiplo o con la detrazione della commissione dall’importo del destinatario.
- Controlla la transazione risultante nella cronologia.
L’implementazione pubblicata può ripiegare sulla normale transazione di pagamento se la costruzione PayJoin fallisce. Pertanto, autorizzare questa procedura non garantisce che la transazione trasmessa sia un PayJoin. Non usarla quando il ripiego su un pagamento ordinario violerebbe i tuoi requisiti di privacy.
Su mainnet, un normale endpoint Internet deve usare HTTPS. Un endpoint .onion HTTP o HTTPS è supportato quando Tor è attivo e viene rifiutato quando Tor è disattivato. Gli altri schemi URL vengono rifiutati. Se l’endpoint non è supportato, Ginger ignora l’endpoint PayJoin: controlla quindi che l’anteprima identifichi ancora il pagamento come PayJoin prima di continuare.
Questa guida riguarda l’invio di una richiesta fornita dal destinatario. La normale procedura Receive di Ginger non gestisce un server di ricezione PayJoin e questa versione non offre una procedura utente per configurarne uno.
Output e commissioni negoziati
Sezione intitolata “Output e commissioni negoziati”La richiesta di pagamento può limitare la sostituzione degli output con pjos=0. Ginger inoltra questa limitazione al destinatario e rifiuta una proposta che sostituisce l’output di pagamento richiesto o ne riduce l’importo. Se la sostituzione è consentita, il destinatario può usare un output di ricezione diverso durante la negoziazione. L’input aggiunto dal destinatario può anche rendere l’output di ricezione on-chain maggiore dell’importo del tuo pagamento.
Ginger comunica un contributo massimo aggiuntivo alla commissione di mining, calcolato automaticamente dalla tariffa originale. Rifiuta una proposta che impone al tuo portafoglio un contributo superiore al limite comunicato. Questo rifiuto ricorre al pagamento ordinario alternativo descritto sopra; non annulla necessariamente il pagamento.
L’anteprima viene costruita prima della negoziazione PayJoin finale, che avviene dopo l’autorizzazione. La transazione negoziata può avere una commissione diversa da quella dell’anteprima originale. Ginger ricalcola le informazioni sulle commissioni della transazione completata dalla transazione finale, ma non mostra una seconda anteprima di conferma dopo la negoziazione. Controlla la transazione finale nella cronologia e non considerare l’indicatore PayJoin iniziale una prova che la negoziazione sia riuscita.
Cosa scoprono il destinatario e un osservatore
Sezione intitolata “Cosa scoprono il destinatario e un osservatore”Il destinatario conosce già la richiesta di pagamento, il suo indirizzo di ricezione e l’importo previsto. Se la richiesta è associata a un ordine collegato alla tua identità, PayJoin non cancella quel collegamento. Durante la negoziazione, il servizio di ricezione vede anche la transazione di pagamento proposta, compresi gli input proposti dal mittente. Non va considerato un soggetto a cui il pagamento stesso sia nascosto.
Prima di inviare la richiesta di negoziazione, Ginger rimuove i metadati sull’origine delle chiavi del portafoglio, inclusi i percorsi di derivazione Taproot e le chiavi pubbliche estese globali. Questo riduce le informazioni superflue sul portafoglio inviate al destinatario; input, output e importi della transazione proposta gli rimangono visibili.
Un osservatore esterno vede la transazione infine pubblicata su Bitcoin. Un PayJoin riuscito può rendere inaffidabile la comune ipotesi che «tutti gli input appartengano al mittente». Questo beneficio dipende dalla transazione e dalle altre informazioni dell’osservatore; non garantisce che la transazione sia indistinguibile da ogni pagamento ordinario.
Tieni distinti questi soggetti. Un destinatario può conoscere dettagli tramite l’ordine o la negoziazione anche se un osservatore estraneo non può attribuire con certezza gli input della transazione. Un esploratore pubblico delle transazioni può creare un’ulteriore divulgazione se cerchi il pagamento attraverso una sessione del browser collegata alla tua identità.
Tratti riconoscibili dei portafogli e ripiego sul pagamento ordinario
Sezione intitolata “Tratti riconoscibili dei portafogli e ripiego sul pagamento ordinario”I portafogli compiono scelte sui tipi di indirizzo degli input, sulla struttura della transazione e sulla firma. Combinazioni di queste scelte possono lasciare schemi riconoscibili. Una transazione può quindi perdere parte della sua ambiguità anche quando i messaggi del protocollo PayJoin sono validi. Gli esempi pubblicati di fingerprinting PayJoin illustrano il problema in particolari combinazioni di portafogli; non dimostrano che Ginger abbia gli stessi problemi e non quantificano la privacy di Ginger.
Come utente, scegli un servizio di ricezione aggiornato e compatibile, verifica la richiesta di pagamento e controlla la commissione e l’importo proposti. Non modificare opzioni di transazione che non conosci solo per imitare un altro portafoglio: una transazione dall’aspetto plausibile non dimostra un buon risultato di privacy.
Se hai bisogno di un pagamento collaborativo, concorda un metodo compatibile con il destinatario prima di autorizzare la procedura di invio di Ginger. Il ripiego sul pagamento ordinario significa che una negoziazione fallita può comunque produrre un pagamento valido. Dopo la trasmissione, non inviare di nuovo solo perché il risultato è poco chiaro; controlla prima la transazione e lo stato del pagamento del destinatario. Una negoziazione PayJoin fallita e un pagamento Bitcoin fallito sono situazioni diverse.
Firma un messaggio per un indirizzo
Sezione intitolata “Firma un messaggio per un indirizzo”Alcuni servizi chiedono di dimostrare che controlli un indirizzo di ricezione. Apri il menu del portafoglio e scegli Sign Message. Inserisci un indirizzo appartenente a questo portafoglio e la dichiarazione esatta che intendi firmare. Ginger rifiuta gli indirizzi che non gli appartengono. Inserisci il messaggio, scegli Continue e copia la firma risultante per il verificatore previsto.
Per un portafoglio hardware, segui la richiesta di firma del dispositivo; la disponibilità dipende dal dispositivo e dal supporto della firma dei messaggi. Un portafoglio in sola visualizzazione senza un dispositivo di firma non può produrre una firma. Devono essere compatibili anche il tipo di indirizzo e il formato di firma supportato dal verificatore.
Leggi il messaggio con la stessa attenzione di una dichiarazione di autorizzazione. Preferisci un testo circoscritto che identifichi destinatario, scopo e data o richiesta di verifica. Non firmare una dichiarazione vuota o di cui non comprendi le conseguenze. Una firma può essere copiata e mostrata ad altri dopo che l’hai condivisa.
La firma di un messaggio non trasferisce bitcoin e non stabilisce la proprietà di ogni indirizzo nel portafoglio. Crea inoltre un collegamento tra l’indirizzo firmato e la persona che il verificatore identifica come te. Se la richiede un exchange, quella divulgazione resta anche dopo un successivo uso di CoinJoin.