Bartosz Kuśmierz ci parla in questo articolo dell’analisi di attacco e della catena parassita. Un articolo di livello avanzato.

Nota: questo post è destinato a un lettore con una conoscenza sul funzionamento del Tangle. In particolare, facciamo pesantemente affidamento su concetti come la passeggiata aleatoria nel Tangle, il peso cumulativo (e come influenza la passeggiata aleatoria), il parametro α e l’attacco a catena parassita. Consigliamo di leggere prima il white paper IOTA (in particolare la sezione 4), fare clic qui (in inglese). Si consiglia inoltre di leggere il post del blog di Alon Gal sul parametro α (il link porta alla mia traduzione in italiano).

Il problema: doppia spesa (double spend)

IOTA, a differenza dei registri distribuiti di prima generazione, non si basa su una blockchain, ma piuttosto su un grafico aciclico diretto (DAG). Questa nuova architettura porta numerosi vantaggi. I più enfatizzati sono la scalabilità e la mancanza di senza tasse da parte dei miner. Tuttavia, con un nuovo approccio nella gestione del registro distribuito arriva la questione fondamentale della sicurezza per questa nuova soluzione. In questo post, si risponde parzialmente a questa domanda, fornendo una breve introduzione all’attacco della catena parassita (ParasiteChain), proposto nel white paper del Tangle (sottosezione 4.1). Questo argomento è un’area di ricerca attiva nella IOTA Foundation.

L’attacco a catena parassita è un tentativo di raddoppiare i fondi spesi nel Tangle basato sulla seguente idea:

L’aggressore costruisce segretamente un sub-tangle, invisibile al pubblico. Chiameremo questo sub-tangle “la catena parassita”, o PC. Ad un certo punto, lui/lei invia una transazione nel Tangle principale (MainTangle), acquistando alcune merci da un commerciante. L’attaccante ha già costruito una transazione in conflitto sulla PC (che trasferisce il denaro su uno dei conti dell’attaccante, invece del venditore), pertanto ha creato una transazione a doppia spesa.

Poiché la transazione in conflitto nel PC è nascosta, dopo qualche tempo il commerciante accetta il pagamento sul MT. L’attaccante spera quindi di “invalidare” questa transazione trasmettendo la PC al pubblico.

La PC è costruito per sfruttare l’algoritmo di selezione dei tip e fare in modo che la maggior parte delle transazioni in entrata approvi la transazione a doppia spesa dalla PC. Se ha successo, questa azione cambia in modo efficace il passato e invalida la transazione “buona” che il commerciante ha accettato. Vale la pena notare che un attacco di successo risulta non solo nel rubare merci dal commerciante, ma provoca anche danni collaterali – tutte le transazioni “innocenti” che approvano il trasferimento del fondo sul conto del commerciante sono invalidate.

Perché questo problema è difficile?

L’analisi di una PC generale è molto complicata poiché le PC sono disponibili in tutte le forme e dimensioni. L’utente malintenzionato ha la libertà di scegliere quante transazioni dalla PC approveranno le transazioni dal MT e quali transazioni l’attaccante dovrebbe approvare. Qual’è la posizione relativa ottimale delle transazioni nella PC? Dovrebbe essere una catena o qualche altra struttura più efficiente? Tutte queste domande sono importanti e stimolanti perché implicano un enorme numero di gradi di libertà. Tenendo presente questo disclaimer, in questo post non tenteremo di eseguire un’analisi generale, ma piuttosto di concentrarci su un esempio specifico di una PC. Si presentano i dati per la cosiddetta catena parassita semplice (SimpleParasiteChain). Come sarà mostrato, nonostante la sua semplicità, la SPC possiede proprietà interessanti e in molti modi sorprendenti. È stato deciso di analizzare questa particolare catena in primo luogo perché in molti modi è la più naturale.

Cerchiamo di definire la SPC:

Una catena parassita semplice è una sequenza di transazioni in cui ogni transazione approva direttamente:

1) La precedente transazione dalla SPC
2) Una transazione MT specificata che chiamiamo r

Una delle transazioni SPC è in conflitto con una determinata transazione MT. È importante che r sia inserita prima della transazione MT a doppia spesa. Altrimenti, le transazioni PC sarebbero tutte non valide. Si illustra la  SPC nella fig. 1.

Catena Parassita Semplice

Figura 1: La catena parassita semplice. I due punti rossi sono transazioni in conflitto tra MT e SPC. Tutte le transazioni PC approvano direttamente la stessa transazione r, inserita nel MT.

Come stimare quando un attacco ha successo

Ci si concentra sulla seguente quantità: la probabilità che una passeggiata aleatoria arbitraria raggiunga la transazione finale della SPC. Se ciò accade per la maggior parte delle transazioni in entrata, significa che l’attacco ha probabilità di successo. In caso di conflitto gli utenti onesti della rete preferiranno la PC in sostituzione del MT.

Uno dei metodi usato per stimare questa probabilità era una simulazione in cui si esegue semplicemente un numero elevato di passeggiate aleatorie e contiamo quanti di queste raggiungono la SPC. Prima di mostrare i risultati, si sottolinea che questa quantità non è la stessa del tasso di successo dell’attacco. Affinché un attacco abbia successo, la maggior parte delle transazioni in entrata deve approvare la SPC e quindi renderla il sub-tangle dominante. Se la probabilità che una passeggiata arbitraria finisca nella SPC è del 10%, la probabilità che l’attacco abbia successo è ancora minuscola. L’unico danno per il Tangle è che il 10% delle transazioni associate alla SPC, normalmente risultanti valide, diventeranno orfane (ciò non significa che i fondi derivanti da tali transazioni andranno persi, ma che tali transazioni dovranno essere riattribuite re-attached). Un attacco potrebbe effettivamente essere minaccioso quando la probabilità analizzata è vicina o superiore al 50%.

Risultati

Ora si presentano i dati di simulazione per uno scenario di attacco in cui l’attaccante ha una percentuale molto significativa di potenza di hashing. Consideriamo che la particella arbitraria raggiungerà la SPC in funzione del parametro α.

 

Risultati

Figura 2: Probabilità che una passeggiata aleatoria finisca sulla SPC come funzione di α. Ci sono 400 transazioni nel MT e 100 transazioni nella SPC, il che implica che l’attaccante ha il 20% della potenza di hashing totale

I dati presentati rivelano un massimo di probabilità locale. Questo è in qualche modo sorprendente perché, crescendo, fa sì che le particelle si attacchino alla parte più pesante del Tangle: il MT. Tenendo presente questo, ci si aspettava una probabilità monotonicamente decrescente. Tuttavia, questo pensiero ingenuo si è rivelato solo una parte della storia.

La distribuzione di probabilità ci dice che ci sono almeno due “forze” in gioco. Per discuterle, specifichiamo due condizioni che devono essere soddisfatte affinché la passeggiata arrivi sulla PC:

a) La passeggiata deve passare attraverso r
b) La passeggiata deve saltare da r alla PC

Senza dubbio è vero che come α cresce la probabilità dell’evento b) diminuisce. Tuttavia, l’evento a) diventa più probabile man mano che α cresce.

Ciò è dovuto al fatto che i pesi cumulativi delle transazioni dalla PC “attraggono” percorsi casuali alle transazioni referenziate dalla PC. La forza di questa attrazione cresce con α. Nel caso dell’attacco SPC, in cui la PC è collegato ad una singola transazione r, si ha la seguente situazione: da un lato, la passeggiata vuole rimanere nella regione con un peso cumulativo aggiuntivo (vedi figura 3 – area grigio scuro), ma d’altra parte va alla deriva del Tangle. Poiché r è alla fine dell’area grigia, le passeggiate tendono a passare attraverso di essa.

transazioni referenziate da r

Figura 3: rappresentazione grafica della catena parassita semplice. Le transazioni nell’area grigio scuro sono referenziate da r ed acquisiscono un peso cumulativo aggiuntivo dalla SPC.

Torniamo indietro ed esaminiamo la probabilità dell’evento b). È stato utilizzato un calcolo analitico per stimare questo valore. La figura 4 mostra i valori di questa espressione analitica per alcuni parametri di esempio.

Probabilità di evento b)

Figura 4: Probabilità dell’evento b) in funzione di α, per 400 transazioni in MT e 100 transazioni in SPC.

In sostanza la figura 4 visualizza il livello di sicurezza (la probabilità di una passeggiata aleatoria che salta sulla PC) in funzione di α. Va notato di nuovo che questa non è la probabilità che un attacco abbia successo, ma solo che l’evento b) accada. Tuttavia, è un indicatore importante per la sicurezza. È anche possibile invertire questa funzione. La funzione invertita darebbe il valore di α richiesto per assicurare che il livello di sicurezza sia superiore ad un dato livello p. La figura 5. mostra una mappa termica del valore alfa risultante per una selezione di dimensioni del MT e della SPC e dove il livello di sicurezza richiesto p = 0,1.

Transazioni in SPC

Figura 5: il valore di α presentato su un grafico fornisce la probabilità p=0,1 che la particella raggiungerà la SPC, per diverse dimensioni di SPC e MT. Il grafico è valido quando un numero di transazioni nel MT è maggiore rispetto alle transazioni nella SPC.

Sommario

In questo post del blog, è stato esaminato l’attacco catena parassita semplice ed alcune delle sue interessanti proprietà. In particolare, è stato visto che esiste un valore di α “ideale” per questo tipo di attacco, dove è più efficace, il che è un risultato non banale. Sebbene la SPC non sia probabilmente il modo più efficace per tentare una doppia spesa, è un valore basale importante. Possiamo usarlo per definire un limite di sicurezza inferiore per α e per il confronto con futuri attacchi più sofisticati. In futuro sarà pubblicata una relazione sulla sicurezza del Tangle, in cui saranno forniti più dati di simulazione, ricavando tutte le formule e discutendo  la metodologia della IOTA Foundation.

Per ulteriori approfondimenti sul Tangle consigliamo:

Il blog post di Clara Shikhelman su Validity in the Tangle (il link porta alla mia traduzione in italiano)

Il blog post di Darcy Camargo su The many faces of the Tangle (n.d.t. sarà tradotto in futuro)

Il post sul blog di Alon Gal – Confirmation rates in the Tangle (n.d.t. sarà tradotto in futuro)


Il testo originale in lingua inglese si trova qui: https://blog.iota.org/attack-analysis-the-simple-parasite-chain-42a34bfeaf23


Da oggi è possibile dare il vostro supporto su Patreon https://www.patreon.com/antonionardella

Per ulteriori informazioni in italiano o tedesco trovate i miei contatti a questa pagina.
Se avete trovato utile la mia libera traduzione, accetto volentieri delle donazioni 😉

IOTA:
QOQJDKYIZYKWASNNILZHDCTWDM9RZXZV9DUJFDRFWKRYPRMTYPEXDIVMHVRCNXRSBIJCJYMJ9EZ9USHHWKEVEOSOZB
BTC:
1BFgqtMC2nfRxPRge5Db3gkYK7kDwWRF79

Non garantisco nulla e mi libero da ogni responsabilità.


Also published on Medium.