Capire la privacy di Bitcoin con OXT - Parte 1 di 4

Chain analysis e privacy delle transazioni. Per utenti esperti che già eseguono le proprie transazioni, potendo osservare il comportamento e il grado di privacy da ottenerei | Samourai Wallet

Capire la privacy di Bitcoin con OXT - Parte 1 di 4

Autore: Samourai Wallet | Pubblicazione originale: 04/08/21 | Tradotto da: 31febbraio | Link: Articolo originale (su Medium) | Understanding Bitcoin Privacy with OXT — Part 1/4

Introduzione

La consapevolezza del valore di Bitcoin per i pagamenti resistenti alla censura è decollata nel 2011 con il lancio di Silk Road e il salvataggio di Wikileaks, a corto di donazioni.
Contemporaneamente ha preso piede una narrazione pericolosa e imprecisa sulla privacy delle transazioni in bitcoin: quella sui pagamenti 'anonimi'.

Fig. 1.1 - La richiesta di donazione da parte di Wikileaks Tweet
Fig. 1.1 - Il tweet con cui Wikileaks chiede donazioni 'anonime'


Questa percezione non è mai stata vera ed è in gran parte dovuta alla mancanza di comprensione delle funzionalità di base di Bitcoin. Inoltre, nel 2011 quasi nessuno faceva analisi sulla blockchain. Ma la blockchain è per sempre.
Oggi l'accesso delle forze dell'ordine agli strumenti di chain analysis ha contribuito a molti arresti di alto profilo. Le aziende che si occupano di analisi blockchain chiedono a gran voce di pubblicare per prime i post dei blog sull'ultimo 'crimine' che utilizza Bitcoin per i pagamenti. Le colonne portanti dei vecchi media pubblicano titoli sulla tracciabilità del Bitcoin.

Fig. 1.2 - Bitcoin è tracciabile (Intestazione)
Fig. 1.2 - Il titolo che annuncia Bitcoin tracciabile

La tracciabilità è mainstream

La realtà della privacy con Bitcoin, e di ciò che gli utenti sono in grado di fare quando li usano per effettuare pagamenti, si colloca a metà strada tra il totale anonimato e la perfetta tracciabilità.
La maggior parte delle tecniche di tracciamento si basa sull'euristica e sulla valutazione del flusso di Bitcoin. Senza miglioramenti fondamentali della privacy a livello di protocollo, queste tecniche devono essere depotenziate usando lo strumento in maniera accorta.
All'inizio della storia di Bitcoin, per sconfiggere l'euristica analitica è stata utilizzata l'impronta digitale randomizzata dei wallet. Strumenti come i custodial tumblers sono stati utilizzati per sconfiggere le analisi dei flussi finanziari con il rischio di perdita dei fondi. Oggi i coinjoin e le transazioni collaborative consentono una ragionevole privacy di spesa, con una maggiore sicurezza rispetto ai metodi precedenti. Tuttavia, resta ancora molto lavoro da fare per rendere sistematici i progressi per la privacy a livello di interfaccia.

Riteniamo che l'istruzione sia uno dei compiti ancora da svolgere per aiutare gli utenti a ottenere un livello di privacy finanziaria di base, tipicamente garantito dalla rete tradizionale. Questa è la motivazione principale che ci ha spinto a creare questa documentazione. In questa guida tratteremo quanto segue:

1. Cosa significa realmente 'tracciabile', con esempi.
2. Misure difensive che gli utenti possono adottare per sconfiggere la tracciabilità e perché funzionano.
3. Considerazioni pratiche per gli utenti che inviano e ricevono pagamenti.

ESPOSIZIONE DEIPRINCIPI - BITCOIN PSEUDONIMO


L'attività di transazione Bitcoin è pseudonima, non anonima. Il vero nome dell'utente e le informazioni di identificazione personale (PII) non sono incluse nel protocollo Bitcoin. Questo fornisce un livello molto elementare di privacy, poiché l'attività di transazione deve essere attribuita a un individuo.
Tuttavia, le transazioni in Bitcoin vengono effettuate per importi trasparenti a indirizzi trasparenti. Gli indirizzi sono pseudonimi e rappresentano l'attività di un utente reale o, più precisamente, l'attività di una chiave privata.

Fig. 1.3 - Esempio di una transazione Bitcoin
Fig. 1.3 - Esempio di una transazione Bitcoin

Le transazioni Bitcoin sono trasmesse alla rete e archiviate nel libro mastro della blockchain. Il libro mastro, con tutte le transazioni in esso incluse, sono visibili a chiunque gestisca un nodo bitcoin o abbia accesso a un blockchain explorer.
La trasparenza di queste informazioni pubbliche consente una facilità di accesso alle informazioni senza precedenti, che non è possibile con il sistema finanziario tradizionale.
Gli utenti possono interrogare un blockchain explorer attraverso un browser web e osservare la storia passata delle transazioni dell'intera rete bitcoin. Possono facilmente seguire i flussi di Bitcoin attraverso più transazioni.

In generale, questa pratica è diventata sinonimo dei termini tracciabilità e chain analysis.
La forma più comune di chain analysis si concentra sull'identificazione degli output di 'resto' che scaturiscono dalle transazioni. Il processo si basa su una serie di euristiche che possono essere utilizzate per seguire l'attività di un utente su più operazioni.
Se questa attività on-chain porta a un cluster di wallet di un'entità economica identificata, gli investigatori possono essere in grado di ottenere le PII dell'utente associate all'attività osservata.

Da qui possiamo dedurre due aspetti critici che possono essere utilizzati per attaccare la privacy di un utente:

1. Gli output di 'resto' possono essere utilizzati per tracciare l'attività di un utente sulla blockchain.

2. L'intersezione di questa attività con entità che ottengono PII collega l'attività osservata sulla blockchain con una possibile identità reale.

Sebbene il punto 2 sia una parte fondamentale di ciò che trasforma la chain analysis in una reale applicazione da parte delle forze dell'ordine, la presente documentazione si concentrerà specificamente sulla mitigazione del tracciamento on-chain.

Euristica
Le euristiche sono regole empiriche utilizzate per prendere decisioni in condizioni di incertezza. Spesso si basano su scorciatoie pratiche. Essendo scorciatoie, le euristiche non sono accurate al 100%.
Gran parte dell'analisi tradizionale della catena si basa sulle euristiche. Le euristiche principali hanno a che fare con il 'rilevamento dei resti' in transazioni semplici (simple spends) e con il raggruppamento di indirizzi separati mediante l'euristica del ‘proprietario comune di input’ osservati.

Da sole, queste euristiche possono essere fuorvianti e imprecise. Tuttavia, se combinate con modelli di transazione aggiuntivi o dati esterni come l'etichettatura dei cluster di wallet, i difetti di queste euristiche diventano meno dannosi per il tentativo di tracciamento.

Output di transazioni non spese (UTXO)
Le transazioni Bitcoin sono registrazioni dei flussi di bitcoin tra gli indirizzi.
Gli output delle transazioni non spese (UTXO) sono ‘pezzi di bitcoin’ utilizzati per costruire le transazioni. La struttura delle transazioni può essere suddivisa in input e output.
Un utente costruisce una transazione specificando un indirizzo di pagamento e un importo. Questi saranno gli output della transazione appena costruita.
In genere il software del wallet completa la transazione includendo algoritmicamente gli UTXO delle transazioni precedenti come input della nuova transazione.

Fig. 1.4 - UTXO, unspent transaction output
Fig. 1.4 - UTXO, unspent transaction output

C'è una differenza tra un indirizzo e un UTXO. Gli UTXO sono 'pezzi di bitcoin' versati a un indirizzo. Il modo più semplice per visualizzare la differenza è capire che un indirizzo può ricevere più UTXO, un processo dannoso per la privacy noto come 'address reuse', riutilizzo dell'indirizzo.

Esempi di transazioni

Esistono diverse categorie comuni di transazioni in bitcoin. Queste categorie sono dedotte in base al profilo di input e output delle transazioni, alla nostra esperienza e all'etichettatura dei cluster osservati. Di seguito sono riportati alcuni esempi dei principali tipi di transazione.

Transazione semplice (simple spent)
Le transazioni semplici sono tra i tipi di transazione più comuni e costituiscono circa il 50% delle operazioni della rete Bitcoin negli ultimi blocchi (fonte: transactionfee.info).
Questi tipi di transazione testimoniano il tipico comportamento degli utenti, che effettuano un pagamento e ricevono un resto in uscita.
Caratteristiche:
- Numero di input: 1 (o più)
- Numero di output: 2
- Interpretazione comune: 1 output di pagamento, 1 output di resto

Fig. 1.5 - Esempio di transazione semplice, o single spend
Fig. 1.5 - Esempio di transazione semplice, o sweep

Sweep
Gli 'sweep' spendono la totalità di un singolo UTXO verso un nuovo indirizzo.
Caratteristiche:
- Numero di input: 1
- Numero di output: 1
- Interpretazione comune: possibile trasferimento a sé stessi (self-transfer)

Fig. 1.6 - Esempio di sweep transaction

Consolidamento di UTXO
Le transazioni di consolidamento combinano più UTXO in un unico UTXO. Raramente si tratta di 'veri pagamenti', perché un normale pagamento ha un output di resto.
Caratteristiche:
- Numero di input: >1
- Numero di output: 1
- Interpretazione comune: possibile trasferimento a sé stessi (self-transfer)

Fig. 1.7 - Esempio di una TX di consolidamento 

Transazioni batch (da uno a molti)
I batch sono molto probabilmente eseguiti dagli exchange e comprendono 1 o più input e molti output. Queste transazioni mirano a risparmiare sulle commissioni dei miner, effettuando il maggior numero possibile di pagamenti in un'unica transazione.
Caratteristiche:
- Numero di input: ≥1
- Numero di output: MOLTE
- Interpretazione comune: Grande attività economica, probabile attività di un exchange centralizzato

Fig. 1.8 - Esempio di una transazione Batch, 'da uno a molti'

Transazioni multi-utente (Coinjoin)
Le transazioni multi-utente prevedono la collaborazione tra molti utenti per eseguire un'unica transazione che migliora la privacy dei partecipanti. Queste transazioni sono facilmente identificabili per l'uguaglianza degli importi in uscita.
Caratteristiche:
- Numero di input: MOLTI
- Numero di output: TANTISSIMI
- Profilo degli output: Il numero di output identici è un segnale del numero di partecipanti.

Fig. 1.9 - Esempio di un coinjoin


Rilevamento dei resti - Interpretazioni delle simple spends
In questa sezione introdurremo le interpretazioni delle transazioni per le simple spends (1 input, 2 output). Questa sezione si concentrerà sull'interpretazione più comune di queste transazioni, in cui un output viene interpretato come un pagamento e l'output rimanente viene interpretato come un resto che torna al wallet originale. Un elenco completo delle interpretazioni secondo questo modello è presentato nella Parte III. L'obiettivo di questa sezione è quello di far conoscere al lettore l'euristica utilizzata per valutare transazioni semplici e individuare un output di resto.

Quando si osserva una singola transazione in modo isolato, ci viene presentata una quantità limitata di dati che sono inclusi nella transazione. Queste informazioni vengono chiamate dati interni alla transazione.

I dati della transazione interna si limitano a quanto segue:

. importi (input, output, commissioni del miner)
. tipo di script dell'indirizzo di input
. tipo di script dell'indirizzo di output
. numero di versione della transazione
. locktime della transazione
. indicazione del replace-by-fee

Riconoscimento del resto
A causa delle commissioni dei miner, un normale pagamento in Bitcoin richiede sempre una spesa maggiore rispetto all'importo del pagamento previsto.
Quando viene consumato un singolo UTXO per un importo superiore a quello previsto per il pagamento, l'utente riceve un UTXO per il resto a un indirizzo generato dalla chiave privata del proprio wallet.

Gran parte dell'analisi tradizionale della blockchain si basa sul riconoscimento di questo output di resto. Se è possibile individuare con successo un output di resto, è possibile tracciare l'attività di un singolo utente attraverso una serie di transazioni.
In questa sezione rileveremo gli output di resto sulla base dei dati delle transazioni interne. Le euristiche sono presentate in ordine decrescente di efficacia. Verranno presentati esempi e schermate commentate per aiutare gli utenti a visualizzare questi concetti.

Riutilizzo degli indirizzi

Gli indirizzi sono creati da un'unica chiave privata. L'utilizzo multiplo dello stesso indirizzo è indice di attività della stessa chiave privata.
In una transazione semplice, se un output è verso un nuovo indirizzo e il rimanente è verso lo stesso indirizzo dell'input, sappiamo che l'indirizzo riutilizzato è l'output di resto.
Oggi, la maggior parte dei wallet genera automaticamente un nuovo indirizzo per ricevere i resti. Tuttavia, un portafoglio può essere configurato per ricevere i resti allo stesso indirizzo dell'UTXO della transazione. Questo comportamento è tipicamente indicativo di attività di wallet legati ai servizi centralizzati o di vecchie versioni di bitcoin core.

Fig. 1.10 - Transazione su indirizzo usato


Euristica di pagamento con numero 'tondo'
Quando un utente avvia un pagamento, inserisce nel proprio wallet la destinazione del pagamento (indirizzo), l'importo del pagamento e una commissione per le fee di rete. Il wallet selezionerà gli UTXO in input e genererà l'output di resto (se presente).
L'importo del resto in una transazione semplice è calcolato come segue:

importo dell'input - importo del pagamento - dimensione del tx (in vbyte) * fee di rete (in sat/vbyte)

È difficile che un utente generi di proposito un output di resto per un 'importo tondo'. In una sinple spend, l'output con numero tondo è il pagamento probabile che rende l'output rimanente quello relativo al resto.

Fig. 1.11 - Esempio di euristica per pagamento con importo 'tondo'


Euristica dei diversi tipi di script
Esistono diversi tipi di script per gli indirizzi bitcoin. I lettori avranno maggiore familiarità con i seguenti tipi di script:
. Pay to pubkey hash (P2PKH): Indirizzi che iniziano con un
. Pay to script hash (P2SH): Indirizzi che iniziano con 3
. Segwit nativo (versione 0) (bech32): Indirizzi che iniziano con bc1q

Per un dato tipo di script di input, se un output è dello stesso tipo dell'input e il restante output è di un nuovo tipo di script di indirizzo, l'output del nuovo tipo di script di indirizzo è il probabile pagamento.

Ciò fa sì che l'uscita allo stesso tipo di script dell'indirizzo sia un probabile resto.
In altre parole, l'output verso un tipo di script diverso è quello del pagamento probabile. Questa euristica può anche essere combinata con l'euristica del pagamento con numero tondo.

Fig. 1.12 - Esempio di euristica basata sulle tipologie di script differenti per gli output


Euristica degli importi di output più grandi
Un'altra semplice euristica, ipotizza che l'importo di output più grande sia il probabile resto. Si tratta di una delle euristiche più deboli, in particolare se presa isolatamente, ma come discuteremo nella Parte 2, questa euristica può essere utile nell'analisi del grafo delle transazioni.

Fig. 1.13 - Esempio di transazione con l'euristica dell'uscita maggiore


Considerazioni sulla prima parte e anticipazioni delle parti 2, 3 e 4

In questa sezione abbiamo introdotto molti dei concetti di base sulla privacy delle transazioni bitcoin. Bitcoin pseudonimo fornisce un livello base di privacy che non è direttamente associato a informazioni personali identificabili (PII).
Tuttavia, l'apertura del protocollo bitcoin consente di tracciare i flussi di valuta. Questo concetto è ampiamente definito "chain analysis". Il suo fulcro si concentra sull'individuazione degli output di resto attraverso l'uso di diverse euristiche. Se hanno successo, queste euristiche consentono di tracciare l'attività di un singolo utente su più transazioni.

La seconda parte introdurrà i concetti fondamentali della chain analysis, quali:
I dati delle transazioni esterne, che possono essere utilizzati per indebolire la privacy delle transazioni.
L'analisi del grafo delle transazioni, uno strumento principale per tracciare il flusso di bitcoin su più transazioni.
L'euristica del proprietario unico (o comune) degli input, nota anche come "raggruppamento dei wallet" e le sue implicazioni sulla rete bitcoin.
Questa sezione comprende anche un'analisi ed esempi dello strumento del grafo delle transazioni di OXT e dello schema di raggruppamento dei wallet.

La terza parte tratta  i concetti fondamentali per migliorare la privacy di bitcoin, tra cui:

  1. Impronta digitale randomizzata del wallet per sconfiggere il riconoscimento dei resti
  2. I flussi UTXO e il legame fondamentale tra input e output
  3. In che modo il coinjoin, a parità di output, affronta il problema dei flussi deterministici
  4. Entropia delle transazioni
  5. Come il payjoin annulla l'euristica della proprietà comune degli input.

La quarta parte tratta di:

  1. Come le analisi necessitino di un 'punto di partenza'
  2. Le implicazioni sulla privacy dell'invio e della ricezione di pagamenti
  3. Come le tecniche di privacy esistenti possono mitigare molti dei problemi discussi nella guida.

31febbraio | Milano Trustless

Se non diversamente specificato, il contenuto di questo articolo è concesso in licenza ai sensi del CC BY-SA 4.0