Post on 22-Jan-2018
Monetizzare le tue Skill:Blockchain, Bitcoin, Ethereum, Javascript MiningMarco Casario
CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017
Marco 1.0
Le mie competenze vendute al miglior offerente per generare soldi.
Più progetti prendo, più tempo lavoro più guadagno
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.
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)
Mining: Opportunità di guadagno
Il mining di Bitcoin è insostenibile per un privato. Ma ci sono altre cripto (come Monero)
Mining: Opportunità di guadagno
Il mining di Bitcoin è insostenibile per un privato. Ma ci sono altre cripto (come Monero)
SHA Algorithm
SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA).
Crittografia
Hash sono funzioni one-way.
Potete generare un hash ma non tonare al suo contenuto originale (differenza con “encryption”)
Crittografia
Quando il NONCE è valido l’Hash avrà 4 zeri davanti. Questo rappresenta il livello di difficoltà
Crittografia
Su BTC è aggiornato ogni 2 settimane per assicurarsi che i miners che stanno competendo riescano a risolvere un blocco ogi 10 minuti
Crittografia
Se viene fatta una modifica al blocco 2 tutti i blocchi successivi saranno da validare di nuovo
Crittografia
Per risolvere il problema e validare i blocchi con le nuove info bisogna risolvere il NONCE di ogni blocco successivo (facendo il mining)
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)
Bitcoin
Distribuito (peer-to-peer) Decentralizzato Trustless (non c’è una banca o qualcosa a garanzia)
Bitcoin
Composto da:
Codice (regole e metodi per le transazioni) Crittografia Hardware (computer dei miners) Ricompensa
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.
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.
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.
Smart Contracts
Vantaggio #1
Non possono essere manipolati da terze parti perché sei tu che stipuli gli accordi
Smart Contracts
Vantaggio #2
Non hai bisogno di un notaio e sei meno legato ai servizi di un avvocato.
Ethereum Ecosystem
Ethereum fa con le applicazioni, quello che bitcoin fa per i soldi (rimuove il bisogno di terze parti)
Ethereum Ecosystem
La blockchain di Ethereum può contenere non solo le transazioni ma oggetti come Smart Contracts
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)
Ethereum Ecosystem
Questo perché usa complesse strutture (Merkle Tree) per 3 tipi di oggetti: - Transazioni - Ricevute - Stati
Ethereum Ecosystem
Si può usare per creare applicazioni decentralizzate. Es. Weifound.io (crowdfunding) Augur.net (events predictions) Provenance.org (supply chain)
Ethereum EcosystemUna 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)
Ethereum Ecosystem
Invece uso una Hash Table IPFS che mi ricorda un content address che vado ad inserire nella blockchain
Ethereum Ecosystem
I nodi della blockchain risiedono sul client (possono essere scaricati).
Implementano il protocollo di Ethereum (in diversi linguaggi di programmazione)
Ethereum Ecosystem
Solidity Linguaggio High level (deve essere compilato Ethereum Virtual Machine Assembly)
Assomiglia a Javascript
Ethereum Ecosystem
Web3.js e ETHJS
Frameworks e librerie che aiutano ad interagire con la blockchain (Javascript HTTP-RPC)