Bitcoin, una falla nel sistema?

Bitcoin, una falla nel sistema?

Un documento pubblicato da due ricercatori della Cornell University spiega una tecnica che può essere usata per piegare il sistema e trarre profitto in maniera non equa dal processo di mining

di Andrea Bai pubblicata il , alle 14:31 nel canale Mercato
 

Due ricercatori della Cornell University hanno pubblicato nei giorni scorsi un documento nel quale descrivono una particolare tecnica che potrebbe consentire, almeno in linea teorica, di sovvertire il principio fondamentale su cui si regge il sistema della moneta elettronica Bitcoin, ovvero la sua natura distribuita e decentralizzata.

I ricercatori hanno chiamato questa tecnica "selfish mining" e consente ad un miner (in realtà, come vedremo meglio poco oltre, ad un pool di miner) di piegare il sistema a suo vantaggio riscuotendo in maniera artificiosa le ricompense legate alla scoperta dei nuovi blocchi della catena pubblica. Nel documento Majority is not Enough: Bitcoin Mining is Vulnerable i ricercatori affermano: "Il sistema Bitcoin è aperto alla manipolazione e ad un potenziale assoggettamento dai miner che cercano un modo di massimizzare le proprie ricompense". Per capire il principo di questa tecnica è necessario riassumere brevemente cosa sia il mining e come esso funzioni, lasciando al lettore la facoltà di approfondire ulteriormente l'argomento nei due articoli Bitcoin, è la moneta del futuro? e Il mondo Bitcoin tra wallet e mining.

Il mining è il fondamentale processo del sistema Bitcoin che permette di verificare che una moneta non sia stata usata per due diverse transazioni, accorpando queste ultime in blocchi marcati cronologicamente e che vengono aggiunti ad un registro pubblico chiamato blockchain. La realizzazione del blocco comporta una serie di calcoli più o meno complessi e che si basano inoltre sull'ultimo blocco pubblico verificato. Contestuale al mining è anche l'emissione della moneta, dal momento che l'individuazione di un blocco comporta una ricompensa che spetta al miner o al pool di miner che hanno scoperto il nuovo blocco. La ricompensa non è fissa e viene dimezzata ogni 210 mila blocchi trovati. Attualmente la ricompensa per l'individuazione di un nuovo blocco è di 25BTC, corrispondenti indicativamente a circa 5500 dollari secondo i tassi di cambio attuali.

Trattandosi di un processo computazionale dove la soluzione di un problema numerico comporta la creazione di un nuovo blocco, ne consegue che maggior potenza computazionale viene messa a disposizione da un miner, maggiori sono le probabilità che questo miner trovi la soluzione al problema e, in ultima istanza, possa riscuotere la sua ricompensa. In altri termini, sintetizzando estremamente, si può affermare che i miner beneficiano in maniera proporzionale alla potenza computazionale investita per il processo di mining.

E' importante osservare che la blockchain potrebbe biforcarsi dal momento che non tutti i miner lavorano sul medesimo blocco. La formazione di vari rami dalla biforcazione della catena è un'eventualità sgradita dal momento che i miner devono mantenere un set di transazioni che abbia un ordine cronologico sul quale vi sia un comune consenso.

Il protocollo Bitcoin prevede ovviamente questa eventualità e dispone che i miner proseguano il proprio lavoro sulla catena più lunga di cui sono a conoscenza o su quella di cui sono venuti a conoscenza per prima nel caso vi siano rami diversi di uguale lunghezza. Il protocollo Bitcoin chiede che i miner pubblichino i blocchi nuovi non appena essi siano scoperti. E' ovviamente anche nell'interesse del miner pubblicare i nuovi blocchi il prima possibile, dal momento che, come detto poco sopra, è la precedenza cronologica a determinare la validità di due blocchi (o due rami) identici, consentendo così al miner che per primo ha pubblicato il blocco di riscuotere la propria ricompensa.

E' proprio su questo aspetto che si può innestare la tecnica di "selfish mining": mentre tutti i miner lavorano partendo dall'ultimo blocco pubblicato (pensiamolo come blocco originario), un pool di miner scopre un nuovo blocco e decide di non annunciarlo pubblicamente. Questo pool (che per comodità chiameremo "selfish pool") prosegue quindi la costruzione della blockchain dal blocco non pubblicato, mentre il resto dei miner continua a lavorare sul blocco originario.

In particolari circostanze il selfish pool potrebbe scoprire un secondo blocco prima ancora che i restanti miner individuino il successore del blocco originario. Il vantaggio del selfish pool sarebbe quindi di due blocchi a uno. Maggiore è il vantaggio che il selfish pool riesce ad accumulare, maggiore sarà la ricompensa che riusciranno a riscuotere: quando i miner onesti pubblicano la soluzione al blocco originario, il selfish pool pubblica immediatamente i blocchi che ha trovato. A questo punto la catena si biforca, ma il ramo più lungo (e quindi quello valido) è stato interamente scoperto dal selfish pool al quale spetta così la ricompensa per tutti i blocchi individuati.

Dal momento che l'impiego di questa tecnica consente, almeno in linea teorica, di beneficiare in maniera non equa dal processo di mining, altri miner avranno ovviamente l'incentivo ad aderire al selfish pool il quale sarà a sua volta incline ad accettare nuovi miner poiché in questo modo potrà disporre di maggiore potenza computazionale e quindi maggiori capacità di scoprire nuovi blocchi in anticipo sui miner onesti.

Si verificherebbe a questo punto un meccanismo che, senza alcun contrasto, porta il selfish pool ad allargarsi sempre di più fino a quando non coincide con la maggioranza dei miner. A questo punto il pool, essendo maggioranza, ha il controllo sulla blockchain. La strategia di selfish mining non è più necessaria, dal momento che nessun altro miner o gruppo di miner può essere più veloce nella scoperta dei blocchi. Un pool di maggioranza può quindi raccogliere tutte le ricompense del sistema seguendo il protocollo bitcoin e ignorando i blocchi generati al di fuori dal pool, senza inoltre avere alcun interesse ad accettare nuovi membri e sgretolando inoltre il principio di decentralizzazione.

Secondo le valutazioni condotte dai ricercatori la tecnica di selfish mining potrebbe essere applicata con successo da un gruppo di miner che controlli almeno il 25% delle risorse di computazione dedicate al processo di mining. Un gruppo di queste dimensioni già esiste: secondo le statistiche di Blockchain Info il pool BTC Guild mina attualmente oltre un quarto dei blocchi scoperti quotidianamente. Secondo i ricercatori nessun gruppo ha impiegato fino ad ora una strategia di selfish mining, anche se ovviamente i grossi gruppi di miner rappresentano una minaccia al sistema.

I ricercatori della Cornell propongono un cambiamento al protocollo di mining che potrebbe parzialmente arginare il problema: nel caso di una biforcazione con rami della stessa lunghezza i miner dovrebbero scegliere in maniera casuale su quale blocco lavorare. Secondo i calcoli questa modifica nel protocollo renderebbe più difficile, anche se non impossibile, trarre vantaggio dalla tecnica del selfish mining. I miner dovrebbero inoltre staccarsi dai grandi pool fino a quando nessun pool superi la dimensione di guardia e quindi nessuno sia in grado di beneficiare della strategia di selfish mining.

2 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
HostFat08 Novembre 2013, 15:24 #1
http://godd2.blogspot.it/2013/11/wh...ot-problem.html
http://www.reddit.com/r/Bitcoin/com...s_not_a_problem
Leggete il messaggio del blog e la discussione su Reddit.

Il punto è, che solo perche qualcosa esce da un "università", non vuol dire che sia tutto oro colato
Tanto più una ricerca che non aveva ancora passato nessuna peer review.
+Benito+11 Novembre 2013, 10:00 #2
Quanta attenzione per questa cagata che interessa allo 0,0001% della popolazione mondiale (circa, stando a quel che leggo ci sono meno di 500.000 utenti singoli attivi). E' palese che c'è merda dentro fino al collo, tra frodi, acquisti di droga, "banche" che sono state violate andrebbe solo chiuso questo sistema.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^