Capire la privacy di Bitcoin con OXT - Parte 2 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 2 di 4
Credits: geralt from Pixabay

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

Introduzione

Dopo aver presentato i concetti di base nella Parte 1, possiamo passare ai concetti fondamentali che stanno alla base della chain analysis, ampliando le nostre analisi ai dati delle transazioni "esterne".
In particolare, la seconda parte si concentrerà su due degli strumenti più importanti alla base della chain analysis:
. Il grafico delle transazioni
. L'euristica della proprietà dell'input comune ( nota anche come clustering dei wallet)

ati delle transazioni esterne

I dati delle transazioni esterne possono essere utilizzati per migliorare la fiducia nel rilevamento delle modifiche (indebolire la privacy delle transazioni) sfruttando informazioni e modelli aggiuntivi.
I dati delle transazioni esterne comprendono qualsiasi informazione non strettamente limitata alle informazioni incluse in una singola transazione dal protocollo bitcoin. Gli esempi includono:
. il riutilizzo degli indirizzi per più transazioni
. il co-spending da più indirizzi nella stessa transazione (wallet clustering)
. scritture multi-sig (che vengono rivelate solo dopo aver speso un UTXO)
. fingerprinting del wallet su una serie di transazioni
. dati off-chain, come gli output spesi per i cluster etichettati e gli indirizzi IP dei nodi che trasmettono una transazione
. analisi del volume, della tempistica e di altri modelli di riconoscimento delle transazioni.

Analisi del grafico delle transazioni

I grafici delle transazioni sono il modo più semplice per mostrare la relazione tra input e output in più transazioni. Il grafo delle transazioni di OXT è un grafo aciclico diretto (DAG). I grafi DAG sono utilizzati per mappare la relazione tra due oggetti diversi. Nel caso di bitcoin, il grafo delle transazioni mappa la relazione tra UTXO e transazioni.

Nozioni di base del grafo delle transazioni OXT

Il grafo delle transazioni si comprende meglio attraverso l'interazione, ma prima di iniziare introdurremo alcune funzionalità del grafo fornito da OXT.

  1. Per accedere al grafico delle transazioni, navigare nella scheda TRANSACTION di OXT inserendo o facendo clic su un TxID di interesse..
  2. Cliccare sull'icona TX GRAPH nella barra degli strumenti sul lato sinistro dello schermo.
Fig. 2.1 - Pagina delle TX su base OXT e navigazione verso il TxGraph

Viene visualizzata la transazione iniziale. Le transazioni sono presentate come vertici (puntini) sul grafico. I vertici rappresentano un cambiamento nel set di UTXO, mostrando una nuova relazione tra gli UTXO consumati e creati da una transazione.
Facendo un clic sulla singola transazione, questa viene selezionata, il suo colore passa da blu a verde e vengono visualizzate altre opzioni sulla barra degli strumenti (lato sinistro dello schermo).

Fig. 2.2 - TxGraph iniziale con selezione e barra degli strumenti

Le icone della barra degli strumenti eseguono le seguenti funzioni:

Fig. 2.3 - Funzioni della barra degli strumenti di TxGraph

Fare doppio clic sulla transazione per espandere completamente tutti gli UTXO della transazione. Gli UTXO sono visualizzati come "bordi" (linee) con frecce che indicano se l'UTXO è un input (rivolto verso la transazione) o un output (diretto dalla transazione). Il grafico mostra anche la transazione che crea gli input o consuma gli output. Se l'uscita non è spesa, all'estremità dell'UTXO viene visualizzato una figura a rombo non riempito.

Fig. 2.4 - Transazione espansa completamente

Il doppio clic o l'espansione completa di una transazione può rendere il grafico delle transazioni confuso e difficile da leggere. Per ridurre al minimo il disordine, si consiglia di espandere selettivamente gli UTXO. Per espandere selettivamente gli UTXO, selezionare la transazione e aprire la finestra 'Dettagli transazione'. Gli input e gli output della transazione possono essere espansi selettivamente passando il mouse a destra del testo dell'indirizzo e selezionando la voce 'Espandi grafico Tx'.

Fig. 2.5 - Espansione selettiva dell'UTXO

Nel grafico, passando il mouse su un input o un output vengono visualizzate ulteriori informazioni sull'oggetto di interesse, senza dover espandere la scheda dei dettagli della transazione.

Fig. 2.6 - Peso e anteprima della linea del grafico Tx

Il grafico delle transazioni di OXT aiuterà anche a elaborare automaticamente alcune informazioni aggiuntive. Le transazioni e gli UTXO saranno "ponderati" su base relativa in base ai loro volumi di BTC. Ciò può essere molto utile per il rilevamento delle modifiche e per l'illustrazione delle "peel chains", di cui parleremo in dettaglio più avanti.

Esempio di grafico delle transazioni OXT Peel Chain

Di seguito viene presentato un semplice esempio di grafico delle transazioni.


  1. Navigare al collegamento ipertestuale della pagina della transazione ed espandere il grafico della transazione.
  2. Selezionare la transazione con un solo clic.
  3. Aprire la finestra dei dettagli della transazione facendo clic sull'icona corrispondente nella barra degli strumenti di sinistra.
Fig. 2.7 - Transazione selezionata e tutti i suoi dettagli

4. Fare doppio clic sulla transazione iniziale per espandere tutti gli ingressi e le uscite.

5. Ridurre lo zoom con la rotellina del mouse e riorientare il grafico con le transazioni più vecchie nell'ordine preferito (per es. da sinistra a destra) facendo clic e trascinando le transazioni nell'orientamento preferito.

I due output ci pongono una domanda a cui rispondere se vogliamo cercare di tracciare l'attività del wallet che ha creato la transazione.

Quale output seguire?

Se applichiamo l'euristica dei diversi script (si veda la Parte I), identifichiamo il secondo output come resto.

6. Fare doppio clic sulla transazione successiva che passa il secondo output dalla transazione originale.

7. Ripetere il processo di identificazione delle modifiche utilizzando l'euristica presentata nella Parte I. Espandere altre due transazioni utilizzando questo processo.

Fig. 2.8 - Esempio di Peel Chain (bookmark grafico Tx)

Successivamente, il grafico dovrebbe apparire simile all'immagine della Fig. 2.8. Per dare maggiore risalto agli UTXO di resto, è possibile contrassegnarli ed evidenziarli in arancione utilizzando il pulsante della barra degli strumenti di sinistra. Un grafico delle transazioni che mostra una serie di simple spends dallo stesso wallet viene comunemente definito "peel chain".

Le aziende che si occupano di sorveglianza delle catene cercano di inquadrare le peel chains come una forma di attività sospetta legata "al riciclaggio di denaro". Tuttavia, come abbiamo descritto nella prima parte, circa il 50% delle transazioni in bitcoin sono transazioni semplici con 1 input e 2 output, in altre parole un comportamento del tutto normale.
Per i nostri scopi, una peel chain è il semplice processo di tracciamento dell'attività di un singolo wallet su più transazioni.

Fingerprinting del wallet e interpretazione del grafico delle transazioni

Continuando a interagire con l'esempio di peel chain, si evidenziano ulteriori schemi indicativi di un'impronta digitale coerente del wallet. Tra cui i seguenti:

  1. L'uscita più grande, mostrata dalla funzione di peso ponderato delle linee di OXT, rende immediatamente evidenti gli output di resto.
  2. Gli output di resto sono sempre pagati agli indirizzi P2PKH.
  3. I resti sono sempre la seconda delle due out.
  4. Il numero di versione della transazione (2) e il locktime (0) non sono mostrati nel grafico, ma sono degni di nota. Per visualizzare queste informazioni, fare clic sull'ID della transazione nella finestra dei dettagli per passare alla pagina TRANSAZIONE. Selezionare quindi la scheda TECNICA per visualizzare il numero di versione della transazione e il locktime del blocco.
  5. Espandendo la cronologia delle spese precedenti o future di questo grafico di transazione, si scopriranno altre transazioni con le stesse caratteristiche.

Ciascuno di questi schemi può essere utilizzato per descrivere il comportamento del software wallet osservato. La generalizzazione del comportamento del wallet osservato viene definita "impronta digitale del wallet", che sfrutta i seguenti pattern:

  1. script degli indirizzi di Input e Output
  2. Coerenza della posizione del resto dell'UTXO
  3. Numero di versione e locktime

La combinazione di questi schemi può dare all'analista un'elevata fiducia nell'interpretazione dei resti. Abbiamo confermato queste interpretazioni delle modifiche interagendo con il servizio responsabile di questa attività di transazione. La peel chain di esempio mostra l'attività di un noto meccanismo di pagamento custodial tumbler. L'esplorazione della fonte del grafo è stata effettuata partendo dalla transazione fornita per trovare le monete relative all'hack di un exchange.

Nella prossima sezione, discuteremo di come l'analisi del grafo delle transazioni possa essere ulteriormente migliorata utilizzando il clustering dei wallet e il monitoraggio degli output per transazioni da e verso exchange centralizzati.

Clustering dei wallet - Euristica della proprietà dell'input comune

Il prossimo strumento critico di chain analysis è denominato "clustering del wallet". Il clustering aggrega gli indirizzi in base ai loro modelli di co-spesa e alle ipotesi sul normale comportamento del software wallet.
La maggior parte dei portafogli bitcoin oggi sono portafogli gerarchico-deterministici. Generano una singola chiave privata principale che viene utilizzata per ricavare le chiavi private/pubbliche dei figli e gli indirizzi associati.
I software wallet di solito creano automaticamente un nuovo indirizzo per ogni pagamento ricevuto (UTXO ricevuto). Se un singolo UTXO o indirizzo non è sufficiente per effettuare un pagamento, un wallet includerà altri UTXO/indirizzi controllati da chiavi private/indirizzi diversi, se necessario, per spendere l'importo desiderato. La maggior parte dei portafogli esegue questa operazione automaticamente, senza che l'utente la inserisca.
A causa di questa normale funzionalità del wallet e del supporto crittografico a chiave privata/pubblica di bitcoin, un analista può presumere che ogni indirizzo utilizzato come input di una transazione sia controllato dalla stessa chiave privata o dallo stesso software wallet.

L'ipotesi che ogni input di una transazione sia controllato dallo stesso wallet è chiamata euristica della proprietà dell'input comune (CIOH) o, più semplicemente, euristica dell'input condiviso.

Fig. 2.9 - Esempio di CIOH e cluste

Come tutte le euristiche, esistono scenari specifici in cui il CIOH non è valido. Le rotture del CIOH tendono a riguardare transazioni appositamente costruite per migliorare la privacy. In una parte successiva di questa serie tratteremo gli scenari speciali in cui il CIOH viene meno e di come OXT gestisce queste eccezioni.

Gli ANON - Lo schema di raggruppamento di OXT

Agli indirizzi separati che si presume siano controllati dallo stesso wallet viene solitamente assegnato un ID cluster di wallet dal software di analisi. A causa della natura pseudonima di bitcoin, un cluster di portafogli può essere rappresentativo dell'attività di un singolo utente o di un servizio centralizzato.
Ma senza informazioni aggiuntive, il portafoglio rimane 'anonimo' in quanto non è stato attribuito ad alcuna attività di un'entità reale. Di conseguenza, OXT assegna a ogni nuovo cluster un prefisso ANON seguito da un numero di indice.

Fig. 2.10 - Esempio di cluster wallet ANON

OXT calcola diversi tipi di attività del cluster, tra cui:

. Un riepilogo dell'attività generale (saldo, numero di transazioni, date attive, numero di indirizzi)
. Grafici dell'attività mensile e giornaliera delle transazioni, dei volumi di BTC inviati e ricevuti, degli UTXO inviati e ricevuti e delle statistiche degli indirizzi
. Un modello temporale dell'attività del cluster per giorno della settimana e per ora
. Una sezione di note in cui gli utenti di OXT possono aggiungere note sulla possibile attribuzione o sul contesto di interazione con un cluster sconosciuto durante un'indagine.

Le statistiche generali sui cluster di OXT sono visualizzabili senza un account. Tuttavia, con un account OXT gratuito (non è richiesta l'email), l'utente può accedere a funzioni aggiuntive. Una volta effettuato l'accesso, sono accessibili le statistiche del cluster, tra cui il saldo giornaliero, i volumi giornalieri, gli elenchi delle transazioni, gli elenchi degli indirizzi e altro ancora.

Fig. 2.11 - Modelli temporali del cluster wallet ANON
Fig. 2.12 - Finestra attività di un UTXO nel cluster wallet ANON


Attribuzione del cluster - da ANON a Servizio etichettato


Utilizzando il CIOH, OXT terrà traccia dell'attività di un cluster di portafogli sulla blockchain. Per attribuire il clustering del wallet a un servizio specifico è necessario interagire con il servizio.
Un analista può creare un account con un servizio e inviare Bitcoin a un indirizzo fornito dal servizio. Da lì, l'analista può monitorare la spesa dei suoi UTXO depositati. Una volta spesi, l'analista può attribuire l'indirizzo e i suoi indirizzi co-spesi all'ID cluster corrispondente.

In alternativa, l'analista può utilizzare tecniche di intelligence open source per cercare informazioni pubblicamente disponibili e pubblicate dagli utenti del servizio. Gli indirizzi di deposito e prelievo si trovano comunemente nei post dei social media. Anche questi dati disponibili pubblicamente possono essere utilizzati per attribuire un cluster di portafogli a un servizio centralizzato.

Fig. 2.13 - Esempio di cluster etichettato


Applicazione dei dati delle transazioni esterne all'identificazione del resto

Per interpretare e identificare i resti possono essere applicate informazioni aggiuntive, tra cui l'impronta digitale del wallet, la tempistica delle transazioni e il clustering degli output.
Il caso più dannoso per la privacy delle transazioni è quello in cui una simple spend viene effettuata a favore di un cluster di wallet che è stato identificato come un exchange centralizzato.
Quando una transazione semplice viene effettuata a un servizio centralizzato, tutta l'ambiguità del rilevamento del resto viene meno. L'output al servizio centralizzato è chiaramente il pagamento.
L'unico output rimanente è l'ovvio output di resto. Di seguito è riportato un esempio di spesa futura della peel chain.

Fig. 2.14 - Esempio di transazione semplice, pagamento in un exchange centralizzato

L'aspetto più cruciale del CIOH non è necessariamente il modo in cui viene utilizzato per colpire la privacy dei singoli utenti, ma il modo in cui il raggruppamento dei wallet tra i servizi centralizzati influisce negativamente e in modo significativo sulla privacy, e si vede del grafico delle transazioni della rete bitcoin.
Una parte significativa dell'attività economica di bitcoin proviene immediatamente da o verso un servizio centralizzato, il che ha un importante effetto di centralizzazione sul grafico complessivo delle transazioni della rete bitcoin.

Conclusioni e considerazioni alla seconda parte

Nelle parti 1 e 2 abbiamo introdotto i fondamenti della chain analysis, tra cui il rilevamento dei resti, l'analisi del grafo delle transazioni e l'euristica della proprietà degli input condivisi.

L'identificazione del resto consiste in una serie di euristiche utilizzate per determinare un probabile output di resto della transazione. L'analisi del grafico delle transazioni può illustrare rapidamente e visivamente queste interpretazioni euristiche per tracciare l'attività di un singolo utente. Per migliorare la fiducia nel rilevamento degli output di resto, è possibile utilizzare dati aggiuntivi, tra cui il raggruppamento dei wallet in base all'euristica della proprietà comune dell'input. L'attribuzione di un cluster di wallet a un utente o all'attività di un servizio centralizzato richiede ulteriori dati off-chain che leghino l'indirizzo sospetto e l'attività di spesa al servizio rilevato.

Nella sezione successiva verranno introdotti i concetti utilizzati per sconfiggere la chain analysis e rendere più difficile il tracciamento dell'utente, 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