Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Skill da...

104
Monetizzare le tue Skill:Blockchain, Bitcoin, Ethereum, Javascript Mining Marco Casario CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017

Transcript of Marco Casario - Blockchain, Bitcoin, Ethereum e Javascript Mining: Monetizzare le proprie Skill da...

Monetizzare le tue Skill:Blockchain, Bitcoin, Ethereum, Javascript MiningMarco Casario

CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017

Marco 1.0

Marco 1.0

Le mie competenze vendute al miglior offerente per generare soldi.

Più progetti prendo, più tempo lavoro più guadagno

Marco 1.0

Scalabilità ZERO

Marco 2.0

Le mie competenze per generare soldi svincolate dal mio tempo e dalla mia persona.

Marco 1.0

Marco 2.0: Business Models

Azienda di sviluppo. Libri. Apps. Corsi online. Network Marketing.

Marco 2.0: Business Models

Marco 3.0: Business Models

Trading

Marco 3.0: Business Models

Ma noi siamo developer!

Marco 3.0: Business Models

Trading Automatico

Marco 3.0: Business Models

Marco 3.0: Business Models

Blockchain e Criptovalute

Marco 3.0: Business Models

Marco 3.0: Business Models

BLOCKCHAIN

Chi detiene i nostri dati ?

Loro.

Chi detiene i nostri dati ?

Loro.

Blockchain

Fornisce una Single Source of Truth

Verificabile A prova di manomissione Immutabile

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 è

Blockchain è un commercialista digitale !

Blockchain: cosa è

Blockchain è immutabile. Una volta scritte le infomazioni sono immutabili

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)

IL RUOLO DEI MINERS

Miners

Hanno il ruolo di processare le transazioni e verificarle

Miners

Lo fanno risolvendo problemi matematici e crittografici con computer super potenti

Miners

Lo fanno risolvendo problemi matematici e crittografici con computer super potenti

Miners

Costruiscono i record della blockchain (Blocchi) che formano Bitcoin (o una criptovaluta)

Miners

Ogni Blocco contiene le transazioni che sono state fatte.

Miners

Per fare questo il loro lavoro viene ripagato con la criptovalute (es. bitcoin)

Mining: Opportunità di guadagno

Il mining di Bitcoin è insostenibile per un privato. Ma ci sono altre cripto (come Monero)

Mining: Opportunità di guadagno

Cloud Mining: la nuova frontiera (o una sola) ?

Mining: Opportunità di guadagno

Il mining di Bitcoin è insostenibile per un privato. Ma ci sono altre cripto (come Monero)

Mining: Opportunità di guadagno

Coinhive.JS

Mining in Javascript

Mining: Opportunità di guadagno

Mining: Opportunità di guadagno

CRITTOGRAFIA

Crittografia

Hash è una “impronta digitale” di una certa informazione

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: DEMO

https://anders.com/blockchain/

Blocchi

Crittografia

Il NONCE è un numero random che rende valido un blocco

Crittografia

Quando il NONCE è valido l’Hash avrà 4 zeri davanti. Questo rappresenta il livello di difficoltà

Crittografia

Maggiore è hashing powers maggiore è 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

Ogni blocco della blockchain è legato in maniera crittografata al successivo.

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)

Crittografia

A questo punto il blocco è aggiunto alla blockchain

Miners: DEMO

https://anders.com/blockchain/block.html

Bitcoin

Valuta Digitale.

Oggi può essere considerato un asset al pari dell’oro !

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

Bitcoin

Limite di emissioni di BTC 21 Milioni che finiranno nel 2140

Bitcoin

Ogni 10 minuti vengono aggiunti 12.5 BTC (rewward per i miners)

Bitcoin

BlockExplorer

Bitcoin

Bitcoin

SMART CONTRACTS

Smart Contracts

Permettono di trasferire qualcosa di valore in modalità trasparente e sicura

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.

Smart Contracts

Vantaggio #3

Fiducia e Backup Non possono essere persi

Smart Contracts

Vantaggio #4

Sicurezza Le informazioni sono crittografate

Smart Contracts

Vantaggio #5

Velocità e risparmio economico

Smart Contracts

Contesti di utilizzo:

Online voting Patents Renting/Buyng houses Aste online

ETHEREUM

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 è programmabile (a differenza di quella di Bitcoin)

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 Stack

Ethereum Stack

Ethereum Serverless Stack

Ethereum Serverless Stack

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

Geth, Parity, Solidity, Remix, Truffle, Webpack, Angular,…

Ethereum Ecosystem

I nodi della blockchain risiedono sul client (possono essere scaricati).

Implementano il protocollo di Ethereum (in diversi linguaggi di programmazione)

Ethereum Ecosystem

Puoi pensarli come Nodi di un MySQL Cluster

Ethereum Ecosystem

Metamask (chrome plugin)

Ethereum Ecosystem

MIST

Ethereum Ecosystem

Solidity Linguaggio High level (deve essere compilato Ethereum Virtual Machine Assembly)

Assomiglia a Javascript

Ethereum Ecosystem

Remix.ethereum.org

E’ l’IDE di sviluppo

Ethereum Ecosystem

Web3.js e ETHJS

Frameworks e librerie che aiutano ad interagire con la blockchain (Javascript HTTP-RPC)

Ethereum Ecosystem

Ethereum Ecosystem

Ethereum Ecosystem

Blockchain, Bitcoin, Ethereum, Javascript MiningMarco Casario

CODEMOTION MILAN - SPECIAL EDITION 10 – 11 NOVEMBER 2017