Davide Gessa - La trasparenza ai tempi della blockchain
Ethereum italia mining.ppt
1. Blockchain ed il Mining di Ethereum
ETHEREUM
Ethereum - The
New Beginning
2. ...Blockchain
La blockchain è un registro pubblico ed è la tecnologia sottostante una
criptomoneta (valuta virtuale);
La blockchain è stata implementata per la prima volta con il Bitcoin.
Essa è costituita da blocchi che vengono “aggiunti” (in ordine cronologico ) ogni
qual volta uno o più miner giunge(ono) alla risoluzione di un calcolo
computazionale prestabilito “funzione di hash”.
La blockchain è “conservata” e distribuita informaticamente presso ogni nodo della
rete che la “compone”.
I portafogli di criptomoneta si collegano a questi nodi per effettuare delle
operazioni che vengono contestualmente segnate sul libro mastro “ledger” della
blockchain
3. Cos’è il Mining ?
Il Mining è un’attività computazionale volta ad eseguire calcoli
complessi (hashing) al fine di garantire la sicurezza di una rete
Blockchain.
MINING
4. MINING
Blockchain e Rewards
● I fruitori di una determinata blockchain sono “protetti” da frodi (quali
ad es. il double spending) per mezzo dalla potenza computazionale
garantita dall’attività dei miners;
● I miners sono privati (spesso società specializzate) che mettono a
disposizione hardware specializzato (CPU, GPU, FPGA, ASIC)
● I miners garantiscono la sicurezza della rete. Il loro “lavoro” è
“premiati” attraverso un reward corrisposto ogni qual volta viene
risolto un blocco per mezzo della risoluzione di un algoritmo
predeterminato.
5. L’ Algoritmo di Mining di Ethereum
Problema:
Se da una parte gli algoritmi di mining delle criptomonete hanno assicurato un ottimo grado di sicurezza delle
rispettive blockchain, dall’altro questi sono stato il loro “point of failure”. Pensiamo ai sistemi Pow ed in
partciolare al Bitcoin...
Con riferimento al Bitcoin è noto come dalla progettazione ed assemblaggio di appositi circuiti integrati (Asic)
sia derivata un’eccessiva concentrazione di ricchezza nelle “mani” delle industrie specializzate in questo
settore. Infatti molto spesso è avvenuto che mining “farm”, costruite per mezzi di chip Asic proprietari, abbiano
centralizzato una grande quantità di potenza di calcolo per ottenere ingenti quantità di Bitcoin.
6. Ethash, precedentemente conosciuto come Dagger-Hashimoto è un nuovo algoritmo scritto appositamente per
Ethereum. Al contrario degli attuali algoritmi di mining esso è stato pensato per essere resistente agli Asic,
ma “GPU friendly”. Il suo fine è quello di prevenire eccessive concentrazioni di ricchezza “nelle mani” dei
produttori di chip.
Gli sviluppatori di Ethereum hanno specificato che nel corso della prima fase del rilascio di Ethereum
detta “Frontier” l’algoritmo utilizzato sarà del tipo Pow…
Ethash !
Possibile soluzione...
7. Blockchain e Mining
La blockchain di Ethereum è in molti modi simile a quella del Bitcoin, seppur con qualche
differenza. La differenza princiale tra Ethereum e Bitcoin con riguardo all'architettura
della blockchain, è che, contrariamente al Bitcoin, i blocchi di Ethereum contengono una
copia sia dell'elenco delle transazioni sia lo stato più recente. A parte questo, gli
altri due valori, il numero di blocco e la difficoltà, vengono memorizzati nel blocco.
L'algoritmo di validazione del blocco alla base in Ethereum funziona in questo modo:
1) Controlla se il se il precedente blocco di riferimento esiste ed è valido.
2) Controlla se la marca temporale del blocco è più grande di quella del blocco di
riferimento precedente ed inferiore di 15 minuti nel futuro.
3) Controlla che il numero del blocco, difficoltà, l'origine della transazione, la
transazione derivata ed il limite del gas ( vari e specifici concetti di basso-livello
di Ethereum) sono validi.
4) Controlla se il proof of work sul blocco sia valido.
5) Sia S[0] lo stato alla fine del blocco precedente.
6) SiaTX la lista delle transazioni del blocco, con n transazioni. Per tutti in 0...n-1,
set S[i+1] = APPLY(S[i],TX[i]). Se qualsiasi applicazioni dà errore, o se il gas totale
è consumato nel blocco fino a che questo punto eccede il GASLIMIT, anche questo, dà
errore.
7) Sia S_FINAL S[n], ma aggiungendo la ricompensa per il blocco pagata al miner.
8) Controlla che lo stato originario del Merkle tree S_FINAL sia uguale allo stato finale
originario fornito nell'intestazione del blocco. In tal caso, il blocco è valido; in
caso contrario, quest'ultimo non è valido.
9. … segue
Il Dev Team di Ethereum ha, in via precauzionale, deciso di “stressare”(per mezzo di una Testnet e
mediante la collaborazione della community), l’intera infrastruttura di Ethereum.
Gli utenti che hanno “minato” sulla Testnet, cercando e trovando dei blocchi, per mezzo dei loro
hardware (sia Cpu che Gpu), hanno ottenuto in cambio 0.5 Eth per ogni blocco trovato (distribuiti al
monmento della Genesis Block).
Con riferimento all’immagine della precedente slide è interessante analizzare come il totale della
“hashing power” convogliato, per mezzo dell’ elaborazione dell’ algoritmo Ethash, sulla blockchain di
Ethereum sia stato molto rilevante 1.2 Gh/s.
Mai prima d’ora, una Testnet era stata “bersagliata” in tal modo ed in così poco tempo
10. GENESIS BLOCK (FRONTIER)
Il momento del Genesis Block è davvero vicinissimo. Gli sviluppatori di Ethereum hanno deciso che entro 48
ore dall’ottimizzazione (raggiungimento del 100% su Github) del Client scritto in linguaggio Go
(implementazione principale è più aggiornata del wallet) sarà rilasciato il Genesis Block e contesualmente
la prima versione di Ethereum: Frontier
Status dello Sviluppo del Client (Frontier ) di Ethereum scritto in linguaggio Go
https://github.com/ethereum/go-ethereum/milestones:
11. CLIENTS (WALLETS)
Ethereum sarà accessibile per mezzo di Wallets compatibili con:
● Linux
● Windows
● Mac
https://github.com/ethereum/go-ethereum
Al momento del rilascio del Genesis Block basterà lanciare un eseguibile per accedere alla blockchain e minare. Ethereum Italia rilascierà a tal
proposito un How to
12. ETHEREUM ITALIA
Sito principale: https://www.ethereum.org
Italia
http://www.ethereum-italia.it/
@ethereumita
http://www.meetup.com/Italian-Ethereum-Meetup
presented by Leonardo Maria Pedretti
@LeonPedretti e Massimiliano Terzi @terzim