Come poter massimizzare le proprie competenze da Developer per sfruttare la rivoluzione tecnologica che sta portando la Blockchain, le applicazioni decentralizzate e le Criptovalute (Bitcoin, Ethereum, Ripple, etc)? E' questa la domanda a cui ho cercato di rispondermi un paio di anni fa e che ha cambiato drasticamente gran parte della mia vita di "semplice" developer. In questo talk voglio raccontarti la mia esperienza facendo chiarezza su aspetti tecnici riguardanti la blockchain, lo sviluppo su Ethereum (Smart Contracts) e la nuova frontiera del mining Javascript.
26. Blockchain: cosa è
Blockchain è un file (ledger) che
cresce in maniera incrementale e
che tiene traccia di tutte le
transazioni in modo permanente,
cronologico e sicuro perché utilizza
complessi algoritmi di crittografia.
E’ un data-structure layer.
29. Blockchain: cosa è
Esistono 3 tipi di Blockchain:
- Pubbliche (codice scaricabile
da chiunque)
- Private (controllate da un ente
di solito banca)
- Consorzio (controllate da
computer e gruppi prescelti)
45. SHA Algorithm
SHA-2 (Secure Hash Algorithm 2) is a set
of cryptographic hash functions
designed by the United States National
Security Agency (NSA).
46. Crittografia
Hash sono funzioni one-way.
Potete generare un hash ma non
tonare al suo contenuto originale
(differenza con “encryption”)
54. Crittografia
Se viene fatta una modifica al blocco 2
tutti i blocchi successivi saranno da
validare di nuovo
55. Crittografia
Per risolvere il problema e validare i
blocchi con le nuove info bisogna
risolvere il NONCE di ogni blocco
successivo (facendo il mining)
56. Crittografia
Una volta che un miner ha trovare il NONCE
per validare il blocco, tutti gli altri miners
collaborano per verificare la validità della
soluzione (Proof of Work)
70. Smart Contracts
Es.
Sto vendendo una casa e mi muovo solo dopo
essere sicuro di averla venduta.
Il compratore acuqista usando la blockchain.
Io ottengo la ricevuta del pagamento in uno Smart
Contract.
Il compratore mi fornisce una entry-key entro il
giorno che abbiamo stabilito.
71. Smart Contracts
Es.
Se io decidessi di non vendere più la casa e
non confermo dando al enditore la mia entry
key, la blockchain mi restituisce il
pagamento entro quel giorno.
72. Smart Contracts
Es.
Il contratto è garantito da molti Nodi
garantendo che lo obligazioni del contratto
siano mantenute e nessuna parte del
contratto può essere modificata.
83. Ethereum Ecosystem
La blockchain di Ethereum sorpassa un
limite di quella di Bitcoin perché
permette non solo di conservare le
transazioni ma anche gli stati correnti
(asset digitali, contratti finanziari, etc)
90. Ethereum Ecosystem
Una cosa da capire è che nella
blockchain non salviamo il contenuto
originale ma la sua rappresentazione in
hash.
Altrimenti avremmo problemi di peso
(immaginato di conservare un film
come dato)
91. Ethereum Ecosystem
Invece uso una Hash Table IPFS
che mi ricorda un content
address che vado ad inserire
nella blockchain
93. Ethereum Ecosystem
I nodi della blockchain risiedono sul client
(possono essere scaricati).
Implementano il protocollo di Ethereum (in
diversi linguaggi di programmazione)