(Questo articolo contiene materiale originariamente pubblicato nel 2019 in Blog RSK di IOV Labs)
La sicurezza di Bitcoin si basa sugli incentivi economici concessi ai minatori per estendere la “catena più pesante”, ovvero la catena con il maggior numero di difficoltà accumulate (di solito la più lunga). Attualmente, tali incentivi sono forniti dalla ricompensa in blocco, che consiste nel sussidio in blocco e nelle commissioni di transazione. Ma il sussidio (attualmente 6.25 BTC) è sostanzialmente più alto delle commissioni di transazione medie per blocco (attualmente 0.25 BTC). Il sussidio per Bitcoin si dimezza ogni 4 anni e, senza un apprezzamento del prezzo di BTC inversamente proporzionale, l’incentivo principale per il mining si sposterà dal sussidio in blocco alle commissioni di transazione in blocco. Per mantenere l’attuale budget per la sicurezza, i costi delle transazioni dovrebbero aumentare di 25 volte. È troppo presto per dire se questo diventerà mai un problema per Bitcoin. È possibile che Bitcoin abbia bisogno di un soft-fork o di un hard-fork per adattarsi a una nuova era di bassi sussidi. Nel 2014, ho mostrato come Bitcoin potrebbe diventare instabile quando ho presentato il progetto (principalmente teorico) Attacco FRONTALE. Carlsten et al. (2016) analizzato approfondito questo problema ma non sono riusciti a trovare una soluzione soddisfacente. Questo non è solo un problema di Bitcoin, ma dovrà essere affrontato da ogni criptovaluta la cui emissione di denaro diminuisce nel tempo.
Ma per ora non dobbiamo preoccuparci di Bitcoin. La comunità bitcoin potrebbe dover risolvere questo problema tra 10 o 20 anni, o forse mai. Ogni tanto il problema è riesaminato, con analisi entrambe mettendo in evidenza ed minimizzando il problema. Ma quando analizziamo le sidechain Bitcoin, come RSK, il problema è abbastanza reale.
Nel 2019, il CEO di Blockstream Adam Back ha menzionato lisciatura quando si discute del budget per la sicurezza a lungo termine di Bitcoin: "Altre idee a lungo termine per l'era dei bassi sussidi includono la media delle commissioni tra gli intervalli di blocco per livellare le entrate delle commissioni."
https://twitter.com/adam3us/status/1097031151921713152
RSK implementa esattamente questa idea, ovvero il livellamento delle entrate derivanti dalle commissioni, dal 2016. Ma prima di spiegare come RSK gestisce le transazioni con commissioni elevate, mostreremo più in dettaglio i tre principali attacchi di inversione dei blocchi che possono essere innescati dalle commissioni di transazione: fee sniping , transazioni di balene e atomizzazione mineraria.
Se il sussidio del blocco è basso e le commissioni di transazione nell’ultimo blocco minato sono molto più alte delle commissioni che possono essere raccolte dalle transazioni nel mempool, i minatori razionali a breve termine sono incentivati a prendere transazioni dall’ultimo blocco minato e ad estrarre un blocco concorrente. bloccare, invece di estenderlo. Questa è una deviazione dal Consenso di Nakamoto, e si chiama Sniping delle tariffe. Per definizione, una tale deviazione è un attacco al protocollo e il minatore è considerato un malintenzionato. Per incassare le commissioni di transazione, il minatore malintenzionato deve anche estrarre un ulteriore blocco di conferma più velocemente della catena onesta, in modo che il resto dei minatori passi alla sua catena. Pertanto il fee sniping non è sempre redditizio, poiché il minatore malintenzionato rischia di sprecare il suo hashrate se il suo fork egoista non supera la catena onesta. Il fee sniping poco frequente potrebbe non essere un problema, ma se i miner modificano il loro codice di consenso per trarre profitto dalle potenziali opportunità di fee sniping su tutti i fork esistenti, la rete può essere esposta ad attacchi più pericolosi.
Una volta che i nodi minatori eseguono il fee sniping automatico, un utente malintenzionato può trarre vantaggio da questa situazione per eseguire un attacco a doppia spesa. Un minatore malintenzionato può spendere monete nella catena onesta e ricevere in cambio un'altra risorsa esterna, e successivamente biforcare la catena onesta in un blocco prima del primo. Nel fork dannoso, l'attaccante spende due volte le monete ma introduce anche una caratteristica distintiva (ovvero un UTXO unico) che non deve esistere nel fork onesto. Subito dopo, l'attaccante trasmette a transazione “balena”. che fa uso di questa funzionalità (ovvero consuma questo UTXO) e offre una commissione di transazione insolitamente alta come esca (o tangente) ai miner che eseguono il codice di sniping delle commissioni. Mentre il termine “transazione Whale” può essere inteso come una transazione che trasferisce un valore elevato, qui utilizziamo la definizione contenuta nel documento di riferimento, come una transazione che paga commissioni elevate, indipendentemente dall’importo del valore trasferito. In Bitcoin, la transazione balena e i blocchi fork dannosi dovrebbero essere inviati direttamente ai nodi dei minatori, perché i fork non migliori non vengono inoltrati dai nodi completi nella rete peer to peer. Tuttavia, in molte piattaforme di contratti intelligenti, l’attacco è molto più semplice perché trasmettono fork non migliori. Anche nelle piattaforme smart-contract, creare una transazione balena è più semplice: l’attaccante può riutilizzare un nonce già utilizzato nella catena onesta impedendo così che la transazione balena venga inclusa nella catena onesta. In alternativa, la transazione balena può eseguire un contratto che controlla se l'hash del blocco precedente corrisponde a un hash del blocco che esiste solo nel fork selfish (cioè utilizzando il codice operativo BLOCKHASH) e paga una tangente solo sul fork selfish.
Una volta che i minatori rilevano una transazione balena, possono prendere in considerazione l’idea di estendere il fork dannoso, anche se restano indietro, se la tangente è abbastanza alta, scommettendo che supererà la catena onesta più lunga. Senza contratti intelligenti, la migliore strategia di attacco è trasmettere contemporaneamente una serie di transazioni balena corrompendo i seguenti minatori in modo che continuino ad estendere il fork dannoso. In Bitcoin, le transazioni possono essere concatenate CHECKLOCKLOCKVERIFY or VERIFICA SEQUENZA. Nelle piattaforme di contratto intelligente ciò può essere fatto riutilizzando i nonce o mediante chiamate contrattuali. Anche se non è automatizzato, l’aggressore può continuare a generare transazioni balene sul fork dannoso, finché non supera la catena onesta.
Nell’attacco Whale Transaction, abbiamo considerato che i minatori devono passare dinamicamente a una strategia di mining complessa per accettare tangenti basate sulle probabilità di vincita del fork. Possiamo considerare più realisticamente che i minatori stiano adottando una strategia più semplice che non considera future tangenti, ma solo il pagamento egoistico delle tariffe. Se questa è la strategia adottata dalla maggioranza dei miner, allora un nuovo attacco è possibile. L'attacco Miner Atomization è un attacco di negazione del servizio a livello di rete che tenta di invogliare tutti i minatori a lavorare simultaneamente su fork egoistici, riducendo quindi la velocità e la convergenza della catena onesta. L'attacco inizia con la trasmissione di una transazione con commissioni molto elevate, simile all'attacco di fee snipping o all'attacco di transazione balena. Questa transazione non ha lo scopo di aiutare la doppia spesa, ma è un'esca che mira ad atomizzare la rete mineraria. Mostreremo l'attacco con un esempio. Supponiamo che una transazione T in un blocco all'altezza N paghi 100 monete in commissioni, ma la ricompensa media del blocco è di sole 10 monete. Assumiamo che tutti i nodi dei minatori siano programmati per seguire questa strategia razionale:
- Se T è incluso in uno qualsiasi degli ultimi K blocchi della catena onesta, prendi la transazione T e prova a estrarre un blocco concorrente all'altezza N, quindi continua a estrarre i blocchi figli di questo fork egoista finché non supera la catena onesta.
- Se la catena onesta supera la forchetta egoista di più di K blocchi, arrenditi.
La transazione dannosa a tariffa elevata atomizza il mining a vantaggio del pool di mining più ampio, che ha le maggiori possibilità di estrarre la transazione T oltre a sufficienti blocchi di conferma egoistici aggiuntivi in modo che i miner rimanenti si arrendano. Curiosamente, quanto più decentralizzata è la rete mineraria, tanto peggiore è l’interruzione causata dalla transazione T. Ad esempio, per una blockchain con un intervallo di blocco medio di 10 minuti, se ci fossero 100 minatori ciascuno con l'1% dell'hashrate totale, la rete subirebbe un rallentamento di 100 volte per diversi blocchi fino alla convergenza finale. La rete rimarrebbe inutilizzabile per 2 giorni!
RSK è un sidechain Bitcoin puro, quindi ha dovuto affrontare la sfida di proteggere la blockchain con un budget per la sicurezza che consiste solo in commissioni di transazione sin dal suo inizio. Pertanto RSK doveva essere preparata a commissioni anormalmente alte o basse. RSK è stata la prima sidechain pronta per la produzione e utilizza il merge-mining per ottenere consenso. Attualmente più del 40% dei minatori Bitcoin unisci il mio RSK.
I miner RSK si aspettano un compenso economico per l'esecuzione dei full node RSK. La maggior parte delle blockchain emette nuove monete per questa compensazione. Alcuni altri registri distribuiti, come Ripple, non emettono monete per pagare i produttori di blocchi, ma i produttori di blocchi possono essere sovvenzionati esternamente. Ripple Labs, che ha pre-estratto XRP, ne ha così tanti che può fornire un compenso in XRP a terze parti affinché diventino produttori di blocchi. RSK, d'altro canto, si trova ad affrontare le condizioni più difficili: non ha emissione di monete (come Bitcoin) e non ha un premine di monete (come XRP). RSK rappresenta un esempio riuscito di sidechain Bitcoin, uno sguardo al futuro del consenso nelle blockchain deflazionistiche e a come una blockchain senza sussidi possa essere sostenibile. Tuttavia, non avere alcun sussidio significa che la sidechain deve essere progettata attentamente contro gli attacchi qui presentati. RSK implementa diverse funzionalità uniche per essere più sicuro contro le riorganizzazioni blockchain basate su transazioni con commissioni elevate:
- Bloccare il livellamento delle ricompense (chiamato anche livellamento delle commissioni).
- Blocca la condivisione della ricompensa
- Merge mining compatibile con fork
Nelle sezioni seguenti, presentiamo brevemente ciascuna tecnica.
Il livellamento delle commissioni è una regola di consenso che distribuisce le commissioni di transazione tra i minatori in modo più egualitario. Paga a ciascun minatore una funzione dei premi del blocco passato. La funzione potrebbe essere lineare o non lineare, basata su un piccolo numero di premi del blocco precedente o basata su uno stato che dipende da tutti i blocchi precedenti. Il progetto più semplice consiste nell'utilizzare una sorta di filtro passa-basso sulle tariffe accumulate. RSK utilizza una funzione di livellamento molto semplice, un IIR con α = 0.1. Se un minatore RSK risolve un blocco all'altezza N, verrà ricompensato con il 10% delle commissioni di transazione del blocco N e il 10% di tutte le commissioni minerarie non pagate precedentemente accumulate. In altre parole, esiste un conto “condiviso” tra i minatori, dove ad ogni blocco il minatore vincente versa le commissioni di transazione e preleva per sé il 10%.
Il livellamento delle ricompense aumenta l’incentivo ad estendere la blockchain rispetto all’incentivo a rieseguire l’estrazione di un blocco passato per accaparrarsi le commissioni pagate, perché il minatore può ottenere solo il 10% delle commissioni di transazione della balena. Riporteremo l'esempio precedente. Supponiamo che la ricompensa media per blocco sia di 10 monete e che un blocco contenga una tangente da 100 monete all'altezza N. In RSK, il blocco all'altezza N pagherebbe una ricompensa di 19 monete, mentre il blocco successivo pagherebbe 18.1 monete. Il minatore egoista ora ha bisogno di una potenza di hashing 10 volte maggiore rispetto a qualsiasi altro minatore affinché l’attacco sia redditizio.
Mostriamo ora altre misure protettive complementari.
RSK implementa un protocollo di consenso sulla condivisione della ricompensa chiamato DECOR. DECOR divide equamente le ricompense dei blocchi tra i blocchi fratelli, a condizione che le intestazioni dei blocchi facciano riferimento alla catena onesta. DECOR diminuisce l'incentivo per un attacco di atomizzazione perché il vincitore della transazione ad alta commissione deve condividere la ricompensa con un massimo di altri 10 minatori che hanno prodotto blocchi fratelli. Questo perché un blocco blockchain può avere fino a 10 riferimenti a blocchi fratelli e il protocollo DECOR condivide la ricompensa del blocco tra tutti loro. Per evitare la condivisione, il minatore dovrebbe minare altri 10 blocchi egoistici, impedendo i riferimenti dello zio, riducendo notevolmente le sue possibilità di successo. Considerando la condivisione della ricompensa insieme al livellamento delle commissioni, affinché un tentativo di interrompere la rete RSK abbia successo, la tangente deve essere almeno 110 volte superiore alla ricompensa media del blocco.
Mining unito con fork-aware è una variante del merged mining che consente agli utenti di monitorare la rete mainchain (ad esempio Bitcoin) per fork dannosi nella rete sidechain (ad esempio RSK). Per trarre profitto da un attacco basato su una transazione balena, l'aggressore deve trovare una vittima da spendere due volte. Quella vittima sarebbe probabilmente uno scambio di criptovalute online. Gli scambi di criptovalute attendono diverse centinaia di conferme di blocco prima di accettare un deposito, il che è tempo sufficiente per il Sistema Armadillo RSK per rilevare in anticipo il fork dannoso e avvisare l'exchange. Nel caso degli attacchi di fee sniping e miner atomization, i fork dannosi sono brevi, e quindi Armadillo può essere utilizzato solo come strumento per diagnosticare la situazione e identificare i pool che deviano dal protocollo onesto, ma non può prevenire l’attacco.
Un'altra misura protettiva complementare, che RSK attualmente non adotta, consiste nel limitare il prezzo della transazione del gas a un multiplo del prezzo minimo del gas (ovvero uno spread 10x). Ho proposto una misura comparabile per Bitcoin in 2013. RSK potrebbe implementarlo facilmente, poiché ogni blocco pubblicizza il prezzo minimo del gas accettato per la transazione. Tuttavia, fissare un prezzo massimo del gas non risolve completamente il problema se la rete è in uno stato in cui i blocchi non consumano tutto il limite di gas disponibile in un blocco. La commissione di transazione elevata in T può essere il risultato di una maggiore quantità di gas consumato anziché di un prezzo del gas più elevato (la commissione pagata è il prodotto di questi due importi).
Il livellamento delle ricompense non è la soluzione definitiva, poiché gli aggressori possono utilizzare una piattaforma di contratto intelligente corrompere minatori a fare praticamente qualsiasi cosa. Ho presentato la teoria teorica "Scelta eterna per l'attacco del lato oscuro" (o ECDSA :)) in 2014, come un modo per mostrare come i minatori potrebbero essere corrotti per deviare da un comportamento onesto. McCorry el a. (2018) ha presentato un'ampia gamma di attacchi teorici di corruzione. Tuttavia, il livello di comprensione e preparazione richiesto per accettare tangenti basate su contratti intelligenti è considerevole. Ciò rende gli attacchi di corruzione basati su contratti intelligenti molto più difficili da perpetrare. Un minatore deve essere consapevole del contratto di corruzione e capire come interagire con esso. Tuttavia, questo tipo di attacco è inevitabile: se la piattaforma può effettuare un pagamento all’attuale minatore del blocco, allora può anche eseguire uno smart contract che paga lo stesso minatore. Questo perché il linguaggio di programmazione che descrive il consenso del protocollo e quello utilizzato dai contratti intelligenti sono entrambi “Turing-complete”. Questo è un problema teorico interessante.
Si possono pensare a trucchi intelligenti per rendere più difficili i pagamenti di tangenti, come forzare gli indirizzi dei minatori a essere speciali (cioè solo una tantum), in modo che un contratto di corruzione non possa pagare il minatore. Tuttavia, una piattaforma di contratto intelligente completa di Turing non può impedire un pagamento da parte di una parte disposta a pagare a un’altra parte disposta a essere pagata. Costruiamo sempre un contratto intelligente di corruzione di successo che sfugge alle difese. Ad esempio, il minatore malintenzionato può creare una prova di conoscenza zero che dimostri il controllo di uno specifico indirizzo del minatore nel contratto, senza rivelare la chiave privata. Il minatore invierebbe questa prova al contratto di corruzione, insieme a un indirizzo di ricezione alternativo per ricevere la tangente.
Non è sufficiente limitare le capacità linguistiche del contratto intelligente della blockchain i cui minatori devono essere corrotti, dal momento che qualsiasi altra piattaforma di contratto intelligente completa di Turing può essere utilizzata per pagare tangenti ai minatori. La piattaforma deve solo eseguire un relè di intestazione del blocco (ad esempio btcrelay). Ad esempio, RSK ed Ethereum potrebbero essere utilizzati per pagare tangenti ai minatori di Bitcoin. Tuttavia, coordinare un attacco a una blockchain a ponte è più difficile.
Una potenziale difesa contro gli attacchi di corruzione consiste nell'utilizzare una variante del protocollo di consenso PoS che richiede che la maggior parte dei produttori di blocchi firmi i blocchi e richieda loro anche di avere un deposito di sicurezza (partecipazione) di monete per un periodo di mesi. La quota dei miner che equivocano (producono due blocchi contraddittori o estensioni di fork contraddittori) verrebbe confiscata da un hard fork lanciato dalla comunità. Sebbene questa protezione non elimini la vulnerabilità, può aumentare il costo dell’attacco, poiché la tangente deve essere superiore alla posta persa. Attualmente non è possibile abilitare lo staking dei minatori su Bitcoin. Sebbene RSK possa adottare un consenso PoS, non vi è alcuna proposta di passare alla PoS o di mescolare PoW e PoS in RSK.
Abbiamo presentato al consenso di Nakamoto diversi attacchi noti basati su transazioni dannose che pagano commissioni anormalmente elevate. Alcuni attacchi consentono la doppia spesa e altri causano instabilità della rete. Questi attacchi sono particolarmente rilevanti per tutte le sidechain Bitcoin, inclusa RSK. RSK implementa il livellamento delle ricompense dei blocchi, la condivisione delle ricompense dei blocchi e il merged mining con riconoscimento del fork come deterrenti. Sebbene il livellamento delle ricompense funzioni con tariffe esplicite, il caso generale delle tangenti pagate utilizzando contratti intelligenti non può essere evitato. La difesa da questi attacchi richiede un monitoraggio attivo della rete. Infine, sono necessarie ulteriori ricerche sulle potenziali soluzioni per questi attacchi.
- 100
- 2016
- 2019
- Il mio account
- attivo
- Adam Back
- aggiuntivo
- Vantaggio
- Tutti
- articolo
- attività
- Automatizzata
- MIGLIORE
- Scommesse
- a
- Bitcoin
- blockchain
- BTC
- prezzo BTC
- Contanti
- Causare
- ha causato
- ceo
- Challenge
- probabilità
- il cambiamento
- Controlli
- bambino
- codice
- Moneta
- Monete
- comunità
- compensazione
- Consenso
- consumare
- continua
- contratto
- contratti
- Creazione
- crypto
- Scambio criptato
- Scambi crittografici
- criptovaluta
- Corrente
- decentrata
- Difesa
- Denial of Service
- Design
- dettaglio
- disturbare
- Rottura
- registri distribuiti
- Presto
- Economico
- Ethereum
- exchange
- Cambi Merce
- estensioni
- Faccia
- facce
- caratteristica
- Caratteristiche
- Costi
- Infine
- Nome
- seguire
- forcella
- pieno
- function
- futuro
- GAS
- ge
- Generale
- GM
- GP
- afferrare
- GV
- hard fork
- hash
- hashing
- Hashrate
- qui
- Alta
- Come
- Tutorial
- HTTPS
- idea
- identificare
- Compreso
- Aumento
- IP
- IT
- Le
- conoscenze
- Labs
- Lingua
- Livello
- Lunghi
- maggiore
- Maggioranza
- misurare
- medie
- MemPool
- minatori
- Siti di estrazione mineraria
- soldi
- monitoraggio
- mese
- Rete
- nodi
- Offerte
- online
- Altro
- Carta
- Paga le
- Pagamento
- pagamenti
- peer to peer
- piattaforma
- Piattaforme
- pool
- Piscine
- PoS
- PoW
- energia
- presenti
- prevenzione
- prezzo
- un bagno
- chiave privata
- Prodotto
- Produttori
- Prodotto
- Profitto
- Programmazione
- prova
- proposta
- protezione
- protettivo
- riparazioni
- REST
- Le vendite
- Rewards
- Ripple
- laboratori di ripple
- Correre
- running
- problemi di
- Serie
- regolazione
- Condividi
- azioni
- spostamento
- Corti
- catena laterale
- Un'espansione
- piccole
- smart
- smart contract
- Smart Contract
- So
- Soluzioni
- RISOLVERE
- spendere
- diffondere
- palo
- Staking
- Regione / Stato
- Strategia
- sussidio
- il successo
- di successo
- sostenibile
- Interruttore
- terzi
- tempo
- delle transazioni
- Le transazioni
- Turing
- utenti
- APPREZZIAMO
- vulnerabilità
- aspettare
- wikipedia
- parole
- Lavora
- lavori
- XRP
- anni
- zero