Come funziona il protocollo di consenso di Ethereum nel 2018

in #ita6 years ago (edited)

Screen Shot 2018-08-30 at 09.57.45.png

Le primitive crittografiche di Ethereum utilizzano ECDSA per le firme, Keccack256 per la generazione di identificatori univoci e Ethash per la Proof of Work (Mining).
Basato su Dagger e Hashimoto, Ethash è una funzione hash ad alta intensità di memoria, compatibile con GPU e resistente agli ASIC.

L'algoritmo è composto da quattro passaggi.

  • Nella prima fase, viene creato un seed dalla blockchain creando un hash dalle intestazioni di ciascun blocco insieme con l'epoch corrente usando Keccak. Un'epoch consiste di 30 mila blocchi.
  • Nel secondo passo, una cache pseudocasuale da 16 MB viene generata dal seed utilizzando una funzione hash hard-memory.
  • Nella terza fase, eseguito per ogn epoch, un set di dati in crescita lineare (circa 2 GB nel 2017) composto da elementi da 64 byte viene generato dalla cache utilizzando una funzione hash non crittografica Fowler-Noll-Vo.
  • Nel quarto passaggio, il set di dati, un'intestazione e un nonce vengono ripetutamente sottoposti a hash finché il risultato soddisfa la difficoltà target.

Sia Dagger che Hashimoto, in contrasto ai tentativi di standardizzazione come SHA-3 o il Password hashing, sono stati annunciati poco prima del lancio di Ethereum e non sono stati sottoposti a crittanalisi nella comunità accademica.
La logica del design di Ethash manca di dettagli sul perché funzioni ben collaudate funzioni di hash hard-memory non sono state integrate. Per garantirne la sicurezza a lungo termine è necessaria una rigorosa crittanalisi dei primitivi crittografici di Ethereum.

Meccanismo di consenso

Anche se alcuni sostengono che PoW è l'unico meccanismo di consenso blockchain percorribile, Ethereum sta progettando di passare dalla Proof of Work alla Proof of Stake (PoS). A partire da settembre 2017, è stato pubblicato il primo passo di un processo a due fasi che sarà terminato nel 2018, che permetterà in futuro (2020?) di passare prima ad un meccanismo di consenso ibrido PoW-PoS poi completamente PoS.

PoS vuole risolvere i problemi che affliggono il PoW:

  • consumo di energia paragonabile ad un paese di medie dimensioni dal 2017;
  • rischi di centralizzazione: i minatori sono incentivati ​​a investire in hardware specializzato, che spinge in su il costo di partecipazione al mining e da ai grandi minatori un vantaggio dovuto alle economie di scala;
  • game-theoretic attack.

Il PoS può essere descritto come "virtual mining": un minatore acquista monete invece di hardware ed elettricità. Il meccanismo di consenso distribuisce la potenza in proporzione alla quantità di monete che i minatori detengono (quota), non alla potenza di calcolo.
I problemi noti con le implementazioni di PoS ingenue includono:

  • Nothing-at-stake: Poiché la produzione di nuovi blocchi comporta solo un costo trascurabile, un validatore PoS potrebbe appendere blocchi su tutte le catene conosciute per ottenere una ricompensa indipendentemente da chi vince. Ciò apre la porta ad attacchi che richiedono molto meno del 51% per la generazione casuale.
  • Transaction finality: In PoW, un'intestazione di blocco che ha un hash inferiore al target rappresenta contemporaneamente la scelta del prossimo validatore e l'atto stesso della convalida del blocco. PoS separa la scelta dei prossimi validatori e la produzione del blocco. Un validatore PoS può creare la propria catena, inserire una costante invece di un generare numeri pseudo casuali (PRNG) e produrre blocchi nonostante possieda una quota di moneta relativamente piccola. In Bitcoin vengono considerate valide le transazioni più vecchie di sei blocchi, poiché la possibilità che un attacco superi la catena principale dopo sei blocchi diventa trascurabile. Al contrario, poiché la produzione di blocchi in PoS non costa quasi nulla, un attaccante può creare segretamente una catena alternativa a partire dal blocco di genesi. Per evitare ciò, una blockchain PoS deve fornire una finalità - cioè, garantire che dopo un numero fisso di blocchi la vecchia transazione non possa essere modificata.

Il concetto centrale del proposto algoritmo Ethereum PoS Casper è "consenso per scommessa": i validatori scommettono sul futuro stato di blockchain. Casper affronta il problema del "Nothing-at-stake" introducendo punizioni ai validatori per promuovere un comportamento scorretto. Gli attacchi a lungo raggio sono affrontati con il concetto di finalità. I progetti PoS recenti includono anche blockchain 2-hop, Algorand, Ouroboros, SnowWhite, Proof of Luck. Le reti Blockchain Ripple e Stellar utilizzano meccanismi di consenso ispirati a "Byzantine fault tolerant" come PBFT. Sviluppare un algoritmo PoS compatibile efficace, sicuro e incentivante è un compito importante nella ricerca blockchain.

Scalabilità

Le Open Blockchain sacrificano deliberatamente le prestazioni per quello che un pioniere dei contratti intelligenti Nick Szabo descrive come scalabilità sociale: "la capacità di un istituto [...] di superare le carenze nelle menti umane [...] che limitano chi o quanti possono partecipare con successo".
Sia Bitcoin che Ethereum hanno affrontato problemi di scalabilità. Migliorare la scalabilità della blockchain sacrificando minimamente la sicurezza è una direzione di ricerca importante.
La scalabilità di Blockchain può essere definita in due obiettivi: aumentare il throughput della transazione e ridurre i requisiti di larghezza di banda, storage e potenza di elaborazione per i nodi (preservando così la decentralizzazione).
Il primo obiettivo può essere risolto dalle reti di canali di pagamento e sharding.
Un canale di pagamento bidirezionale è un protocollo che consente agli utenti di scambiare transazioni firmate prima di pubblicarle sulla blockchain per l'esecuzione. Una rete di canali di pagamento è un protocollo che trova una sequenza di canali di pagamento la rete, un meccanismo simile all'instradamento dei pacchetti IP.
Le reti di canali di pagamento per Bitcoin ed Ethereum sono in fase di sviluppo.
Nelle blockchain aperte, ogni nodo è richiesto per elaborare ogni transazione. Ciò fornisce una forte sicurezza, ma limita fortemente la scalabilità. Lo Sharding potrebbe risolvere questo problema distribuendo le transazioni tra gruppi di nodi (shards), che dovrebbero essere abbastanza grandi da fornire un livello di sicurezza sufficiente e un throughput significativamente migliore. Il secondo obiettivo può essere risolto saltando la convalida di vecchi blocchi o fornendo in aggiunta nuovi nodi comprendenti snapshots completi degli stati precedenti.

Queste le quotazioni correnti delle monete principali

NameMarket CapQuote24h
Bitcoin.png Bitcoin (BTC)€ 103.162.905.027,98€ 5.984,0921-0.89 %
Ethereum.png Ethereum (ETH)€ 24.738.675.403,10€ 243,3889-2.84 %
XRP.png XRP (XRP)€ 11.405.885.593,52€ 0,2877-2.54 %
Bitcoin Cash.png Bitcoin Cash (BCH)€ 8.095.676.244,57€ 467,4013-1.66 %
EOS.png EOS (EOS)€ 4.610.968.043,82€ 5,08800.72 %
Stellar.png Stellar (XLM)€ 3.568.519.517,88€ 0,1901-3.6 %
Litecoin.png Litecoin (LTC)€ 3.007.751.651,59€ 51,7968-2.51 %
Tether.png Tether (USDT)€ 2.376.995.276,32€ 0,85440.07 %
Cardano.png Cardano (ADA)€ 2.280.611.731,17€ 0,0880-0.2 %
IOTA.png IOTA (MIOTA)€ 1.648.456.688,13€ 0,5931-9.81 %