Come mantenere la privacy quando si spendono bitcoin mixati (dopo Whirlpool e Coinjoin)

Miscelando i bitcoin con Whirpool si può ottenere l'anonimato. Ecco alcuni strumenti che aiutano a mantenere la privacy necessaria anche a spenderli | Econoalchemist | Bitcoin Magazine

Come mantenere la privacy quando si spendono bitcoin mixati (dopo Whirlpool e Coinjoin)
Pic. by Bitshills

Autore: econoalchemist | Pubblicazione originale: 25/07/2022 | Tradotto da: 31febbraio | Milano Trustless | Link: How To Maintain Privacy When Spending Mixed Bitcoin

Un articolo dedicato ad utenti esperti, molto lungo: di quelli da leggere rilassati sotto l'ombrellone [n.d.t.]

Quando si spendono gli output di transazione non spesi (UTXO) ottenuti da Whirlpool e Coinjoin  è necessario fare delle considerazioni, in modo da mantenere intatti i vantaggi dell'anonimato derivanti dalla miscelazione. Esistono strumenti di transazione che aiutano a spendere i bitcoin post-mix in modo da mantenere l'anonimato; ogni strumento offre tecniche diverse ed è importante comprenderne le differenze in modo da poter utilizzare sempre lo strumento giusto per lo scopo giusto.

Questo articolo esplorerà alcuni concetti di base relativi alla struttura del wallet riguardo il mix e dimostrerà gli strumenti di spesa post-mix integrati in Samourai e Sparrow. Sebbene questo articolo si concentri sull'utilizzo di questi post-mix, possono essere utilizzati anche dagli altri wallet.

Struttura di base del portafoglio Bitcoin

Sia in Samourai Wallet che in Sparrow Wallet, l'implementazione della miscelazione prevede una struttura a quattro portafogli. Questi quattro sono tutti gestiti dal software del wallet in background e, dal punto di vista dell'utente, è possibile navigare tra essi senza problemi.

Strutturare i wallet in questo modo è importante per far sì che gli UTXO rimangano isolati l'uno dall'altro; in questo modo gli UTXO seguono un percorso logico attraverso i diversi stadi lungo il loro cammino verso la fase post-mix e vi arrivano senza alcun legame deterministico con le transazioni precedenti.

Sia Samourai che Sparrow supportano i seguenti formati di indirizzo:

  • Indirizzi Pay-to-Public-Key-Hash (P2PKH) che assomigliano a '17SkEw2md5avVNyYgj6RiXuQKNwkXaxFyQ', detti anche 'legacy'.
  • Indirizzi Pay-to-Script-Hash (P2SH) che assomigliano a '3EEJFjZURxShNr2AoJtbfcvCB749yzP7LP', definiti anche 'nested SegWit'.
  • Indirizzi Pay-to-Witness-Public-Key-Hash (P2WPKH) che assomigliano a 'bc1qmmc3s46efrdq0jglhf8l8jg0xw37exgne6q3k', definiti anche 'SegWit nativo' o 'Bech32'.
  • Indirizzi Pay-to-Taproot (P2TR) che assomigliano a 'bc1p0004nx9sh2qkvd7nzrkffx4xe5wacl8ya9yv5gtqkasatqrtgpaqrrcdg7', anche chiamati 'Taproot'. Samourai Wallet supporta la spesa verso questi indirizzi, Sparrow Wallet supporta sia spesa che ricezione degli indirizzi taproot.
  • Gli indirizzi Testnet Pay-to-Witness-Public-Key-Hash (P2WPKH) che assomigliano a 'tb1qqakszcjex7zvjg7slarps5mpdngwlwsc5ll8v7', servono solo per i test e non hanno alcun valore.

Il supporto di tutti questi tipi di indirizzo non significa che tutti funzionino con Whirlpool. Whirlpool funziona solo con gli indirizzi P2WPKH sia sulla mainnet che sulla testnet di Bitcoin. Pertanto, i portafogli pre-mix, post-mix e bad-bank descritti di seguito sono tutti in grado di ricevere solo indirizzi P2WPKH e possono spendere in indirizzi P2PKH, P2SH, P2WPKH o P2TR.

Il wallet utilizza derivation path (percorsi di derivazione) diversi per ottenere portafogli separati. I percorsi di derivazione utilizzano numeri diversi per rappresentare diversi dettagli sul percorso della chiave: 'm / purpose' / coin_type' / identity'.  Nell'esempio che segue, il portafoglio di deposito può gestire diversi tipi di indirizzi, da cui 'm/44'|m/49'|m/84'|m/47'' per ciascuno dei diversi scopi. I portafogli pre-mix, post-mix e bad bank gestiscono solo il derivation path ‘m/84'.

  • Wallet di deposito: (Deposit wallet): Questo è il wallet in cui si effettuano i depositi. Gli UTXO in questo wallet possono essere utilizzati per creare input per i Whirlpool CoinJoin attraverso la cosiddetta "Transaction Zero" (tx0). Da qui è anche possibile spendere come da qualsiasi altro portafoglio Bitcoin.
  • Pre-Mix Wallet: È il luogo in cui gli UTXO vanno a finire una volta usciti dal portafoglio di deposito attraverso un tx0. Gli UTXO non risiedono qui a lungo, si tratta solo di un passaggio in cui gli UTXO vengono registrati come input disponibili per i CoinJoin di Whirlpool. Non è consigliabile depositare direttamente in questo wallet o spendere direttamente da esso; l'interfaccia del software lo rende molto facile da gestire
  • Portafoglio Post-Mix: È il luogo in cui vengono depositati gli UTXO dopo aver effettuato una Whirlpool CoinJoin. Questi UTXO possono risiedere qui per tutto il tempo che desiderate per continuare a essere selezionati casualmente come free-riders per ulteriori round di Whirlpool CoinJoin gratuiti.
  • Portafoglio della Bad Bank: il luogo in cui vanno a finire le monete tossiche dei vostri tx0.

    In Samourai Wallet è possibile passare dal portafoglio di deposito al portafoglio post-mix premendo l'icona Samourai nell'angolo in alto a sinistra.

In Sparrow Wallet è possibile passare da un portafoglio all'altro utilizzando le schede a sinistra dell'interfaccia.

Pools e tx0

In Whirlpool ci sono quattro dimensioni di pool: 0,5, 0,05, 0,01 e 0,001 BTC. Ciò significa che ogni output di Whirlpool sarà uguale alla dimensione del pool. Quando si selezionano gli UTXO dal proprio wallet di deposito per i CoinJoin di Whirlpool, questi passano prima attraverso un tx0. I risultati di questo tx0 variano in base alle dimensioni del pool selezionato. Ad esempio, se si desidera mixare 10 bitcoin, le diverse dimensioni del pool produrranno i seguenti risultati attraverso il tx0:

Pool 0,5

  • 10,00000000 BTC in
    • 1 x 0,01750000 BTC UTXO per la quota del coordinatore di Whirlpool
    • 19 x 0,50001000 BTC UTXO per gli input di Whirlpool con un piccolo extra per il compenso dei miner. In questo esempio è stata utilizzata una tariffa per i miner di 1.000 sat, ma questa varia in base alla congestione della mempool e all'urgenza desiderata.
    • 1 x 0,48231000 BTC UTXO come resto tossico

Pool 0,05

  • 10,000000 BTC in
    • 1 x 0,00175000 BTC UTXO per la quota del coordinatore Whirlpool
    • 199 x 0,05001000 BTC UTXO per gli input di Whirlpool con un piccolo extra per il compenso dei miner. Anche in questo caso, 1.000 sats utilizzati come esempio.
    •1 x 0,04626000 BTC UTXO come resto tossico

Pool 0,01

  • 10,00000000 BTC in
    • 1 x 0,00050000 BTC UTXO per la quota del coordinatore Whirlpool
    998 x 0,01001000 BTC UTXO per gli input di Whirlpool con un piccolo extra per i miner, 1000 sats
    • 1 x 0,00952000 BTC UTXO come come resto tossico

Pool 0,001

  • 10,000000 BTC in
    • 1 x 0,00005000 BTC UTXO per la quota del coordinatore Whirlpool
    • 9.900 x 0,00101000 BTC UTXO per gli input di Whirlpool con 1.000 sats extra per i miner.
    • 1 x 0,00095000 BTC UTXO come come resto tossico

Si noti che la tariffa del coordinatore Whirlpool rimane la stessa indipendentemente dalla quantità di bitcoin miscelati. Se si mescola 1 BTC o 100 BTC nel pool 0,5, ad esempio, si pagherà 0,0175 BTC per la commissione di coordinamento in entrambi i casi.

Si noti inoltre che la commissione di miner inclusa in ogni UTXO pre-mix può accumularsi fino a raggiungere un importo elevato, in proporzione all'aumentare del numero di UTXO pre-mix. Nell'esempio del pool 0,001 di cui sopra, il totale delle commissioni di miner è di 0,099 BTC.

Il tx0 si applica sia a Samourai che a Sparrow. Un tx0 è sempre costruito in modo tale che uno o più input dal vostro wallet di deposito siano divisi in:

  • Diversi output di dimensioni simili, questi sono i pre-mix UTXO che andranno in seguito nei Whirlpool CoinJoins.
  • Un output per la quota del coordinatore di Whirlpool.
  • Un output per il resto, chiamato 'resto tossico'.

Ecco un esempio di tx0 attuale, in cui si può notare che c'era:

  • un input di 0,81804189 BTC
  • 16 output di dimensioni uguali di 0,0501 BTC
  • un output di fee per il coordinatore Whirlpool di 0,0025 BTC (la fee attuale è stata ridotta a 0,00175 BTC)
  • un output di resto tossico di 0,0136981 BTC

È possibile visualizzare questa transazione su KYCP.org.

Ciascuno dei 16 output di dimensioni uguali sarà selezionato individualmente per l'ingresso in Whirlpool CoinJoins. Questi output risiedono temporaneamente nel wallet pre-mix come input disponibili per i mix di CoinJoin e Whirlpool. Quando vengono avviate nuove transazioni Whirlpool, il coordinatore cercherà input disponibili come questi. Il coordinatore applica regole rigorose per garantire che due output provenienti dallo stesso tx0 o dallo stesso wallet non finiscano nello stesso mix. Ognuno di questi 16 output porta con sé una piccola quantità di bitcoin extra in modo che, una volta selezionati come input, possano contribuire a coprire il costo del miner per Whirlpool CoinJoin, che è una transazione.

Il coordinatore passa casualmente dalla creazione di transazioni con due UTXO di partecipanti freschi e tre UTXO di re-mix o tre UTXO di partecipanti freschi e due UTXO di re-mix. Gli UTXO dei partecipanti freschi coprono sempre la tariffa del miner e gli UTXO 'free-rider' provenienti da altri round possono sempre entrare in coinjoin gratuitamente. In questo modo, la quota del coordinatore si paga una sola volta e poi gli UTXO possono rimanere nel portafoglio post-mix aper essere rimescolati gratuitamente per tutto il tempo che si desidera.

Resto tossico

Occorre prestare particolare attenzione al resto tossico del tx0. Per impostazione predefinita, Samourai Wallet chiederà all'utente di contrassegnare l'UTXO del resto come 'non spendibile' durante l'avvio del tx0. Contrassegnare questo UTXO in questo modo impedisce al portafoglio di visualizzarlo come disponibile e lo esclude dal saldo visualizzato.

È sempre possibile navigare nel menu a tre punti nell'angolo in alto a destra dell'applicazione Samourai e selezionare 'Mostra gli output non spesi', scorrere fino alla fine dell'elenco e si vedrà il proprio resto tossico elencato sotto la voce 'Non spendere'. Selezionare l'UTXO di interesse e aggiornare lo stato di spesa a 'Spendibile', se lo si desidera. A quel punto, il denaro verrà visualizzato come parte del saldo del portafoglio di deposito e sarà nuovamente spendibile.

In Sparrow, il resto tossico viene automaticamente inviato al portafoglio della bad bank dopo il tx0. È possibile accedere alla scheda del portafoglio della bad bank e spendere l'UTXO da lì in qualsiasi momento.

Il problema del resto è che sul registro onchain è ancora legato al tx0 da cui proviene. Ciò significa che è anche collegato a tutta la storia delle transazioni precedenti di tutti gli input di quel tx0. Quindi, se un osservatore esterno stesse seguendo il movimento di bitcoin appartenenti a un'entità nota, saprebbe che questo output di resto appartiene a quell'entità. Pertanto, utilizzando l'euristica della chain analysis, l'osservatore esterno potrebbe ragionevolmente supporre che qualsiasi bitcoin combinato con il toxic change in una transazione futura appartenga anch'esso all'entità osservata.

Secondo questa logica, la combinazione di un UTXO di resto (tossico) con un UTXO post-mix annullerebbe i vantaggi dell'anonimato ottenuti con Whirlpool. Tuttavia, a causa della struttura del wallet, si dovrebbe davvero fare qualcosa di strano per combinare un UTXO resto con un output Whirlpool.

La 'tecnica della cascata' consiste nell'iniziare con la più grande dimensione di pool possibile, date le UTXO disponibili nel wallet di deposito. Poi si prende l'output di resto e lo si usa da solo nel pool successivo, di dimensioni maggiori, quindi si ripete questo processo fino a quando non si rimane con la quantità di resto tossico più piccola possibile.

Un'altra tecnica attualmente in fase di sviluppo con Samourai Wallet consiste nell'effettuare un subatomic swap con una shitcoin. Ciò richiede un wallet separato, perché non implementato in Samourai Wallet. Poi, in un secondo momento, si può scambiare di nuovo con bitcoin o si può spendere la coin swappata: le opzioni sono aperte.

UTXO Whirlpool

Dopo essere passati dal vostro wallet di deposito al vostro wallet pre-mix attraverso un tx0, gli UTXO pre-mix sono pronti per essere inclusi nei CoinJoin di Whirlpool. Il vostro wallet e il coordinatore di Whirlpool se ne occupano automaticamente in background dopo aver avviato il vostro tx0. Ogni uscita di una Whirlpool CoinJoin è uno dei cinque output di dimensioni uguali. Un osservatore esterno che guardi un block explorer non ha modo di stabilire con certezza se un determinato output appartiene a un determinato input. Tutti gli output hanno la stessa probabilità di appartenere a uno qualsiasi dei cinque input. Questo concetto è ben illustrato da KYCP.org.

Ecco un altro modo di vedere la stessa transazione Whirlpool CoinJoin, come una tabella che elenca la probabilità di trasferimento del valore tra input e output.

Poiché tutti gli output hanno la stessa dimensione e la stessa probabilità di appartenere a un dato input, non vi è alcuna caratteristica che li distingua. Questo è l'anonimato, la qualità o lo stato di indistinguibilità dalla moltitutine. Una volta ottenuto l'anonimato, è necessario assicurarsi di preservarlo in modo da poter continuare a spendere bitcoin su una blockchain pubblica senza divulgare dettagli che rivelerebbero una precedente cronologia delle transazioni onchain che espone ulteriori dettagli su di voi come entità.

Per saperne di più sugli anonimity set in relazione a Whirlpool CoinJoins, leggete questo articolo.

BIP47 e PayNyms

BIP47 consente di creare codici di pagamento riutilizzabili che possono essere visualizzati come un indirizzo Bitcoin statico su un sito web o una vetrina, ad esempio. Il vantaggio del codice di pagamento è che gli osservatori esterni non possono vedere la cronologia delle transazioni o i saldi del codice di pagamento come possono fare con un indirizzo Bitcoin.

Ad alto livello, i dettagli vengono combinati dai codici di pagamento appartenenti a entrambi i partecipanti alla transazione, dando vita a un indice di indirizzi che è noto solo ai due partecipanti. In questo modo, chiunque si avvicini a un codice di pagamento visualizzato pubblicamente e si connetta ad esso con la transazione di notifica on-chain sarà in grado di inviare pagamenti agli indirizzi risultanti che sono unici per quella particolare connessione. Non è necessario che un server attivo fornisca ogni volta un nuovo indirizzo, come nel caso di un server di pagamento come BTCPay Server.

Questo è un esempio di codice di pagamento BIP47:

'PM8TJK7rnkDXabzmo4ZyxX49JxdLWhbFANDr4eBCwk1shDEs1qDysW5hFCFr6hschwJe4ny7C7GcSnsNPzBYvE6giabxfJyNSrAWRJYCoHMo7iveHned”

Che può anche essere visualizzato come QR code

I PayNyms, d'altro canto, sono un'implementazione di BIP47 utilizzata nei wallet Samourai e Sparrow. I PayNyms derivano dall'hashing del codice di pagamento per generare un avatar robotico unico e un nome unico. L'avatar e il nome facilitano l'interpretazione e la gestione da parte degli esseri umani. Samourai Wallet gestisce un elenco di PayNyms se si desidera esplorare, cercare e connettersi con altri: https://paynym.is/. Si tratta di una directory opt-in che è possibile utilizzare per registrare il proprio PayNym se si sceglie di farlo dall'app durante l'inizializzazione.

I  PayNym possono essere utilizzati in un paio di modi diversi.

Ad esempio, è possibile utilizzarli per effettuare pagamenti diretti al PayNym di qualcun altro, effettuando la connessione on-chain e generando l'indice degli indirizzi segreti. Parlando specificamente di pagamenti PayNym non collaborativi, se non si effettua la transazione di notifica on-chain, il destinatario non conoscerà gli indirizzi da osservare tra quelli di vostra proprietà.

Questo non deve essere confuso con le transazioni collaborative che utilizzano i PayNym, le quali richiedono solo che i PayNym si seguano a vicenda e non la notifica della transazione on-chain. In altre parole, se importate il codice di pagamento di qualcun altro nel vostro wallet e iniziate a calcolare gli indirizzi per inviargli bitcoin, a meno che non venga effettuata la transazione di notifica on-chain, il destinatario non saprà quali indirizzi osservare per quei pagamenti; in questo scenario, dovreste comunicargli il vostro codice di pagamento in modo che sappia come ricavare quegli indirizzi e osservarli. Una volta che il codice di pagamento è stato scansionato e la transazione di notifica onchain è stata completata, non c'è bisogno di collaborazione da parte del destinatario; si può semplicemente iniziare a inviare i pagamenti.

L'altro modo di utilizzare PayNyms è attraverso transazioni collaborative come Stowaway e StonewallX2, che verranno trattate nelle sezioni successive.

Samourai Wallet

Per prima cosa, verrà illustrata l'esecuzione della connessione on-chain:
• per trovare il codice di pagamento che interessa in questo esempio, è stato utilizzato paynym.is.
• In Samourai, premere il segno '+' blu, quindi l''icona PayNym'.
• Una volta nella schermata di PayNym, premere nuovamente il segno '+' blu.
• Premere 'SCAN QR CODE', in alternativa è possibile incollare un codice di pagamento copiato se lo si ha negli appunti.
• Scansionare il codice QR del codice di pagamento con cui si desidera stabilire una connessione

• I dettagli di PayNym appariranno sullo schermo, premete 'SEGUI'.
• Confermare che si desidera seguire questo PayNym
• Una volta seguito, è possibile connettersi, premendo 'CONNETTI'.
• Apparirà una finestra di dialogo che vi indicherà l'importo totale della connessione, 15.000 sats e la fee per i miner. Premere 'OK, FOLLOW'.
• Lo stato del contatto PayNym cambierà per visualizzare sia "Seguito" che "Connesso", e si vedranno anche le conferme in attesa.

Una volta confermata la connessione onchain, è possibile tornare a PayNym e premere l'icona dell'aeroplano di carta per avviare un pagamento al contatto dal proprio wallet di deposito. È sufficiente inserire l'importo, controllare la transazione e trasmettere.


In alternativa, potete spendere dal vostro portafoglio post-mix direttamente al contatto PayNym.

• Navigate nel vostro wallet post-mix, premete il segno '+' blu e selezionate 'Invia'.
• Premere l'icona dell'avatar nell'angolo in alto a destra.
• Selezionate il contatto dall'elenco che appare
• Inserite l'importo, revisionate la transazione e trasmettete.

Wallet Sparrow

Anche Sparrow presenta le stesse caratteristiche appena descritte per l'invio di pagamenti diretti PayNym. Il layout dell'interfaccia è leggermente diverso.
• In Sparrow andare su 'Strumenti' e poi su 'Mostra PayNym'.
• Copiare un codice di pagamento e incollarlo nella finestra di dialogo 'Trova contatto'.
• Quindi fare clic su 'Aggiungi contatto'.

• Una volta aggiunto il PayNym, sarà possibile effettuare la connessione onchain facendo clic su 'Link Contact'.
• Apparirà una finestra di dialogo che vi informerà che questa transazione di notifica costerà 546 sats. Fare clic su 'Invia' per iniziare.


• È possibile effettuare l'invio direttamente dal proprio wallet di deposito accedendo alla scheda 'Deposito' e quindi alla scheda 'Invia'.
• Fare clic sul menu a discesa della finestra di dialogo 'Paga a' e selezionare 'PayNym o Codice di pagamento'.
• Selezionare il contatto PayNym collegato e cliccare su 'Invia direttamente'.

Strumenti di spesa collaborativa post-mix: Stowaway

Stowaway è uno strumento di spesa collaborativa post-mix che nasconde l'importo speso. La persona con cui si collabora sarà quella che riceve i fondi. Voi fornite alcuni input, il destinatario fornisce alcuni input, voi ricevete il vostro resto in output, il destinatario riceve il suo resto più l'importo che gli avete inviato, in modo che l'importo effettivo speso sia nascosto in quel totale. Il mittente paga l'intera fee del miner.

• L'immagine qui sopra illustra una transazione Stowaway onchain.
• Si può notare che i tre input erano 0,01, 0,00993439 e 0,01644414 per un totale di 0,03637853.
I due output risultano 0,00484087 e 0,03144414 (e 0,00009352 per la fee dei miner).
• In questa transazione, chi ha speso ha inviato 0,015 al destinatario, ma questo importo non corrisponde a nessun input o output perché è offuscato.
Il destinatario ha collaborato fornendo l'input di 0,01644414 e ha ricevuto indietro questo importo più il pagamento di 0,015 per un totale di 0,03144414 in output.
• L'output di 0,00484087 corrisponde al resto del mittente.

Un osservatore esterno non avrebbe modo di sapere che questa transazione è diversa da quella presentata al valore nominale. L'euristica della proprietà dell'input comune non funziona a causa degli input e degli output multipli, e bisogna considerare che più persone hanno contribuito agli input.

Chiunque invii una transazione Stowaway deve utilizzare Samourai o Sparrow con il proprio PayNym. Come minimo, i PayNym dovrebbero seguirsi a vicenda, ma non è necessario effettuare la transazione di notifica sulla catena per 'collegare' i PayNym.

I collaboratori dovranno avere un modo per comunicare tra loro al di fuori della banda, ad esempio con un'app di messaggistica, una telefonata, ecc.

Samourai

Per creare una transazione Stowaway collaborativa in Samourai Wallet, assicuratevi che voi e il vostro partner di PayNym stiate seguendovi a vicenda; non è tuttavia necessario stabilire una connessione on-chain.
• Navigate nel vostro wallet post-mix.
• Selezionate il segno '+' blu e poi 'Invia'.
• Attivare 'Cahoots'.
• Selezionare 'Stowaway'.
• Selezionare 'Online'.


• Selezionare il partner dall'elenco dei contatti.
• Inserire l'importo che si desidera inviare. Al termine, selezionare 'Rivedi transazione'.
• Impostare l'importo della fee del miner
• Contattare il peer che ha collaborato e comunicargli di aspettare la transazione dal suo wallet.
• Selezionate 'Iniziare Stowaway'.

• I dettagli della transazione saranno comunicati tra i peer in modo criptato tramite Tor sul livello di comunicazione Soroban.
• Vedrete lo stato della transazione attraverso cinque fasi in meno di 10 secondi.
• Una volta terminato, rivedete i dettagli e selezionate 'Invia'.
• Una finestra di dialogo vi chiederà se siete sicuri di voler trasmettere questa transazione; selezionate 'Sì'.

Il peer che collabora riceverà il suo input alla transazione con l'importo inviato aggiunto al nuovo output. L'importo effettivo inviato viene oscurato.

Sparrow

Per creare una transazione Stowaway collaborativa in Sparrow, assicuratevi che voi e il vostro interlocutore seguiate i rispettivi PayNyms; non è tuttavia necessario stabilire una connessione on-chain.

• Accedere alla scheda del wallet 'Postmix', quindi alla scheda 'Invia'.
• Selezionare l'opzione a discesa sul lato destro del campo 'Paga a'.
• Selezionare 'PayNym o codice di pagamento'.

• Nella finestra a comparsa, scorrere l'elenco dei contatti fino al PayNym voluto e cliccarlo.
• Selezionare quindi l'opzione 'Invia collaborativamente'.

• Inserite un'etichetta per la transazione, inserite l'importo da inviare e impostate la fee del miner.
• Quindi selezionare l'icona blu 'Mix Partner' nell'angolo in basso a sinistra della schermata di transazione.


• Nella schermata a comparsa, si vedrà che il PayNym selezionato è già stato scelto.
• Selezionare 'Avanti' per avviare la transazione.
• A questo punto è necessario informare il peer che collabora che è giunto il momento di procedere dal suo wallet. Si tratta di una comunicazione fuori banda.

• Una volta che il partner di mix ha accettato la richiesta, la transazione viene avviata.
• Sono necessari alcuni input da parte di entrambe le parti che restituiscono a ciascuna il resto appropriato.
• Il resto del destinatario include l'importo inviato.
• Non appena tutto sembra a posto, selezionare 'Firma e trasmetti'.

• Una volta trasmessa la transazione, si riceverà una conferma.

È possibile controllare la transazione sul proprio testnet explorer preferito, ad esempio su mempool.space.
L'importo inviato è stato di 69 sats, ma un osservatore esterno di questa transazione non lo saprebbe mai.

Strumenti collaborativi di spesa post-mix: StonewallX2

StonewallX2 è un altro strumento di spesa collaborativa che aiuta a rompere l'euristica onchain e a mantenere l'anonimato. Le transazioni StonewallX2 hanno sempre quattro output. Il numero di input può variare. Almeno due di questi output sono di dimensioni identiche, il che crea un output esca delle stesse dimensioni della spesa. Gli altri due output sono il resto che viene restituito a entrambi i collaboratori. A differenza delle transazioni Stowaway, le transazioni StonewallX2 possono essere spese a favore di una terza parte - la spesa non deve essere necessariamente effettuata al partner che collabora. I peer che collaborano in una transazione StonewallX2 dividono le fee al 50%. L'algoritmo di selezione degli input fa sì che nessun UTXO che condivide la stessa transazione precedente venga utilizzato insieme come input in una nuova transazione.

Ecco come appare una StonewallX2 (e una Stonewall) onchain:

Samourai

Per creare una transazione StonewallX2 in Samourai Wallet, assicuratevi che voi e il vostro interlocutore stiate seguendo i PayNyms dell'altro; non è tuttavia necessario stabilire una connessione on-chain. Tuttavia, se il destinatario di questa spesa collaborativa è un PayNym, è necessario effettuare la connessione on-chain con lui.
• Andate al vostro wallet post-mix
•  Premere il segno '+' blu e selezionare 'Invia'.
• Incollare o scansionare l'indirizzo del destinatario o, se si invia a un PayNym, selezionarlo dall'elenco dei contatti premendo l'icona della persona.
• Selezionare 'STONEWALLX2'.

• Selezionare 'Online'.
• Selezionate il vostro peer dall'elenco dei contatti una volta che sarà comparso l'elenco.
• Inserire l'importo da inviare.
• Quindi premere 'RIVEDI TRANSAZIONE'.

• Impostare la fee per il miner.
• Ricontrollare i dettagli.
• Utilizzate il metodo di comunicazione fuori banda che preferite per avvisare il vostro peer collaboratore, che deve iniziare ad attendere la vostra richiesta dal suo wallet.
• Premere 'BEGIN STONEWALLX2'.
• Si vedrà l'invio della richiesta.
• Verrà visualizzato lo stato di avanzamento delle cinque fasi.
• Si avrà quindi la possibilità di rivedere la transazione prima di trasmetterla, e si riceverà anche un messaggio che chiede se si è sicuri di voler trasmettere la transazione.

Sparrow

Per creare una transazione StonewallX2 con Sparrow, assicuratevi che voi e il vostro interlocutore stiate seguendo i rispettivi PayNyms; non è necessario stabilire una connessione on-chain. Tuttavia, se il destinatario di questa spesa collaborativa è un PayNym, è necessario effettuare la connessione on-chain con lui.
• Andare alla scheda 'Postmix' e poi 'Invia'.
• Inserite l'indirizzo a cui volete destinare la spesa.
• Aggiungere un'etichetta.
• Inserire un importo.
• Impostare le fee.
• Cliccate sulla pila di monete blu nell'angolo in basso a sinistra della finestra di transazione e noterete che si trasforma nell'icona di un contatto.


• Nella finestra a comparsa, selezionare il proprio peer collaboratore dall'elenco a discesa dei contatti.
• Selezionare quindi 'Avanti' per avviare la transazione StonewallX2.
• A questo punto si dovrà notificare al peer di aspettare la richiesta di transazione dal suo wallet, con un metodo di comunicazione fuori banda di propria scelta.


Si attende che il peer accetti la richiesta e la transazione viene creata. Entrambi i peer forniscono input alla transazione.


Dopo un attimo, verrà presentato un riepilogo della transazione creata. Non appena tutto è verificato OK, selezionare 'Sign & Broadcast'.


Una volta trasmessa la transazione, si riceverà un segno di spunta verde.

È possibile esaminare la transazione sul proprio explorer preferito, ad esempio su mempool.space.

La transazione ha quattro output e due di esse sono della stessa dimensione, una spesa di 25.000 sat e un'esca di 25.000 sat. Un osservatore esterno non può sapere quali output appartengono all'entità che controlla gli input.

Strumenti di spesa post-mix non collaborativi: Stonewall

Ecco come appare Stonewall (e StonewallX2) onchain. Stonewall è uno strumento di spesa non collaborativo che aiuta a rompere l'euristica applicata nella chain analysis e a mantenere l'anonimato. Onchain le transazioni Stonewall e StonewallX2 sono indistinguibili: entrambe hanno sempre quattro output. Il numero di input può variare. Almeno due di questi output sono di dimensioni identiche, il che crea un output esca delle stesse dimensioni della spesa. Gli altri due output sono il resto che torna ai due peer.

Nel caso di una transazione Stonewall, il wallet costruisce la transazione utilizzando più input e quattro Outpuo, di cui solo uno è la spesa e gli altri tre sono tutti rimandati al wallet del mittente con uno di essi della stessa dimensione della spesa. Sia Samourai che Sparrow tenteranno di comporre una transazione Stonewall per impostazione predefinita quando si spende.

Samourai

Per effettuare una transazione Stonewall con Samourai:
• Accedere al proprio wallet post-mix e premere il segno '+' blu.
• Selezionare 'Invia'.
• Incollare o scannerizzare l'indirizzo verso cui si vuole spendere.


• Inserire l'importo da spendere e premere su 'REVIEW TRANSACTION'.
• Impostare le fee.
• Per impostazione predefinita la protezione Stonewall sarà attivata se il wallet ha gli UTXO necessari per crearne una transazione come quella che si vuole fare ora. Si noteranno i bit di entropia in basso, che possono variare se si cambiano gli importi delle fee  Il wallet sta provando diversi UTXO per gli input mentre si esegue questa operazione.
• Non appena tutto è a posto, premere 'INVIA'.
• Quando viene richiesto, confermate di voler spendere.
• Verrà quindi visualizzata la schermata verde di conferma che la transazione è stata trasmessa.

È possibile esaminare questa transazione sull'explorer preferito, ad esempio su mempool.space.

La transazione ha quattro output e due di essi sono della stessa dimensione, uno di 42.000 sat spend e uno di 42.000 sat decoy. Un osservatore esterno non può sapere quali output appartengono all'entità che controlla gli input. Tre dei quattro output vengono restituiti al wallet post-mix del mittente.

Sparrow

Per effettuare una spesa Stonewall con Sparrow:
• Inserire l'indirizzo verso il quale si desidera effettuare la spesa.
• Aggiungere un'etichetta.
• Inserire l'importo da spendere.
• Impostare le fee.
Si noti la differenza nel modo in cui viene costruita la transazione quando si imposta 'Efficienza'; ci sono due output, la spesa e il resto:

Impostando invece su 'Privacy', viene creata una transazione Stonewall con quattro output, tra cui unì esca:

• Fare clic su 'Crea transazione'.
• Nella schermata successiva, fare clic su 'Finalizza transazione per la firma'.

Se tutto sembra a posto nella schermata successiva, selezionare 'Firma'.

Una volta firmata, è possibile trasmettere la transazione.

È possibile verificare la transazione su un explorer, ad esempio su mempool.space.

La transazione ha quattro output e due di essi sono della stessa dimensione, uno di 690.000 sat spend e uno di 690.000 sat decoy. Un osservatore esterno non può sapere quali output appartengono all'entità che controlla gli input.

Strumenti di spesa post-mix: Ricochet

Ricochet è uno strumento di spesa post-mix che crea più passaggi tra la transazione iniziale di invio e la destinazione finale. Questa tecnica può essere utile quando si inviano bitcoin ad un destinatario in grado di curiosare nella cronologia delle transazioni per determinare se c'è qualcosa nel vostro UTXO che non gli piace.

Spesso questo tipo di comportamento è messo in atto dagli exchange o da alcuni commercianti; leggete questo articolo scritto da 6102 per maggiori dettagli sul flagging di CoinJoin. Non esiste uno standard industriale a cui queste società di flagging si attengono, decidono arbitrariamente quanti salti indietro rientrano nella loro tolleranza al rischio. Ma i cinque salti che Ricochet fornisce sembrano funzionare bene. Sparrow non supporta le transazioni Ricochet. Samourai riscuote una commissione di 100.000 sat per questo servizio.

Per comporre una transazione Ricochet in Samourai Wallet:
• Navigare nel proprio wallet post-mix e premere il segno '+' blu.
• Quindi selezionare 'Invia'.


• Attivare l'opzione 'Ricochet'.
• Attivare quindi l'opzione 'Consegna scaglionata' se si desidera che ogni salto avvenga in un blocco separato.
Altrimenti, tutti e cinque i salti avverranno nello stesso blocco, il che potrebbe essere preferibile se il tempo è essenziale.
• Incollare o scansionare l'indirizzo verso il quale si desidera spendere.
• Immettere l'importo da spendere (l'importo che si desidera depositare alla destinazione finale).
• Quindi premere 'REVIEW TRANSACTION'.


• Impostare le fee (quella per tutti e cinque i salti è inclusa).
• Rivedete i dettagli della transazione.
• Appena tutto è confermato e a posto, premere 'INVIA' e confermare la spesa per trasmettere la transazione alla rete.

Ecco come appare questa transazione Ricochet su testnet. È possibile seguire i salti lungo il percorso.

Conclusioni

Questo articolo ha spiegato come funziona la struttura del wallet nei software abilitati a Whirlpool, Samourai e Sparrow.

Comprendendo i vantaggi dell'anonimato ottenuti grazie a Whirlpool, è possibile capire meglio quale sia lo strumento di spesa post-mix più adatto. Ogni strumento di spesa post-mix è stato spiegato in dettaglio con istruzioni passo-passo su come utilizzarlo e sui vantaggi aggiuntivi di conservazione dell'anonimato che offre.

Per saperne di più, unitevi alle comunità sul canale Telegram di Samourai o sul canale Telegram di Sparrow , dove troverete molti altri utenti che si aiutano a vicenda su una varietà di argomenti.

31febbraio | Milano Trustless