Presentazione del mining Bitcoin

20
Bitcoin - Introduzione INTRODUZIONE AL MINING „Introduzione al bitcoin mining“ @Treatbit Incubatore Politecnico di Torino 7 Ottobre 2014 Vincenzo Agui - [email protected] IT Consultant Network&Security Analyst http://www.linkedin.com/vincenzoagui Bitcon Foundation International http://www.bitcoinfoundation.org Bitcoin Foundation Italia http://ww.bitcoin-italia.org Founder Coinsecurity – htttp://www.coinsecurity.it INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

description

Presentazione del mining Bitcoin - Vincenzo Aguì, Network Security Consultant - Bitcoin Foundation Italia. Talk presentato all'evento organizzato da TreataBit e Kabminer "Bitcoin per privati e aziende". Per approfondimenti sull'evento http://www.treatabit.com/article/bitcoin

Transcript of Presentazione del mining Bitcoin

Page 1: Presentazione del mining Bitcoin

Bitcoin - IntroduzioneINTRODUZIONE AL MINING„Introduzione al bitcoin mining“@Treatbit Incubatore Politecnico di Torino 7 Ottobre 2014

Vincenzo Agui - [email protected] Consultant Network&Security Analyst http://www.linkedin.com/vincenzoagui

Bitcon Foundation International http://www.bitcoinfoundation.org

Bitcoin Foundation Italia http://ww.bitcoin-italia.org

Founder Coinsecurity – htttp://www.coinsecurity.it

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 2: Presentazione del mining Bitcoin

Introduzione al BitcoinCos'è Bitcoin ?

● Un protocollo decentralizzato (p2p) che permette di effettuare transazioni senza l'intervento di una autorità terza o di certificazione

● Basato sulla „prova del lavoro“ dei minatori (PoW) che in cambio di una ricompensa generano i bitcoin e validano/certificano le transazioni degli utenti.

● Basato su regole e standard (crittografiche e matematiche),aperte e ben definite.

● Elenco di tutte le transazioni condiviso e pubblico (blockchain)● Progetto opensource avviato nel 2009 da sviluppatore anonimo

Satoshi Nakamoto

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 3: Presentazione del mining Bitcoin

Introduzione al BitcoinQuali sono le caratteristiche ?

● Decentralizzazione

● Sicurezza e controllo

● Trasparenza e neutralità

● Impossibilità di chiudere un portafoglio

● Irreversibilità delle transazioni (no chargeback)

● Bassi o nulli costi di transazione

● Velocità di transazione

● Progetto Opensource in continuo sviluppo

● Divisibilità, universalità...

● PseudoanonimoINTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 4: Presentazione del mining Bitcoin

Introduzione al BitcoinAlcuni campi di applicazione

● Compravendita online

● Micropagamenti

● Trasferimenti di denaro

● Servizi di escrow

● Servizi proof of existence/ownership

● Crowfunding

● Servizi derivati da multi-signature address

● Servizi di contrattualistica

● Servizi di incentivazione/job

● Strumenti finanziari tradizionali...INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 5: Presentazione del mining Bitcoin

Introduzione al Bitcoin – Come Funziona – attori in campo

● Minatori/Miners● Exchangers● Blockchain● Utenti/Wallets● Merchants

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 6: Presentazione del mining Bitcoin

Introduzione al Bitcoin – invio di una transazione

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 7: Presentazione del mining Bitcoin

Blockchain

● Registro distribuito di tutte le transazioni● Pubblico e consultabile da tutti● Prima transazione 6 gennazio 2009 – „genesis block“● Dimensioni attuali 25 Gbyte● Associazione utenti indirizzi „pseudonimo“● Altri utilizzi

proof of existenceproof of ownershiptimestampsmart contracts...

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 8: Presentazione del mining Bitcoin

Bitcoin come funziona - IndirizzoGli indirizzi (address) Bitcoin sono stringhe alfanumeriche di 34 caratteri come questa:

1933phfhK3ZgFQNLGSDXvqCn32k2buXY8a

Possono essere generate da chiunque e in maniera istantanea e sono concettualmente equivalenti al codice IBAN.

Sono pubblici, se si vuole ricevere un pagamento in Bitcoin è sufficiente fornire questa stringa all’utente che la userà come indirizzo di destinazione.

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 9: Presentazione del mining Bitcoin

I principi delle transazioniGli utenti inviano e ricevono bitcoin attraverso un «wallet»

Il «saldo» mostrato dal portamonete è la somma dell’ammontare dei bitcoin depositati sugli indirizzi controllati dal portamonete . Se viene aggiunta una chiave privata (importata) al portamonete, la quantità depositata nel corrispondente indirizzo viene aggiunta al saldo del portamonete.

Quando Alice vuole pagare una quantità di Bitcoin a Bob, Alice usa il suo portamonete bitcoin per firmare un messaggio di transazione bitcoin includendo l’importo e l’indirizzo di Bob. La firma di Alice usa la chiave privata corrispondente ad un indirizzo finanziante del suo portamonete.

Se necessario, il portamonete di alice combinerà più di uno dei suoi indirizzo nel messaggio di transazione per finanziare la sua operazione di pagamento.

Il messaggio viene trasmesso a tutti i nodi validatori (nodi completi) sul network bitcoin che verificheranno la firma/e di Alice usando la chiave pubblica/e anch’essa inclusa nel messaggio.

I validatori controlleranno anche che la transazione sia coperta con indirizzi contententi quantità sufficenti.

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 10: Presentazione del mining Bitcoin

Le transazioni● Per impedire la possibilità di usare gli

stessi Bitcoin in più di una transazione il protocollo implementa un server di marcatura oraria P2P

● Ogni transazione che viene effettuata in Bitcoin inizia con lo status di “non confermata”

● La transazione viene inserita all’interno di un blocco assieme a molte altre transazioni, quando il blocco viene verificato dai miners, la transazione riceve una prima conferma.

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 11: Presentazione del mining Bitcoin

BlocchiLe informazioni sulle transazioni sono perennemente salvate nella rete Bitcoin all’interno di files chiamati “blocchi”

● Ogni 10 minuti circa viene creato un nuovo blocco

● La conferma da parte dei miners della correttezza e unicità delle transazioni al suo interno lo rende permanente all’interno della blockchain

● Ogni blocco contiente fra le altre cose: un 256-bit hash dell’header del blocco precedente e un 256-bit hash basato sulle transazioni del blocco

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 12: Presentazione del mining Bitcoin

Bitcoin – Regole di emissione

Quanti sono i Bitcoin ? Come vengono emessi ? ● Totale bitcoin 21.000.000 (21 milioni BTC) ● Inflazione programmata, Ricompensa per i minatori

dimezzata ogni 210.000 blocchi (attuale 25BTC/Blocco)

Difficoltà si autoregola ogni 2016 blocchicirca ogni 2 settimane

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 13: Presentazione del mining Bitcoin

Introduzione al Bitcoin – curva di emissione

time:

10.5M

21.0M

2009 +4 years

blocks:

+8 +12 +16 +20 +24

210k0 420k 630k 840k 1.05M 1.26M

50 BTC/ block

25 BTC/ block

12.5

6.253.125

1.5625 0.78125To

tal B

TC In

Exi

sten

ce

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 14: Presentazione del mining Bitcoin

Mining – a cosa serve ?

● Validazione delle transazioni● Prevenzione della “doppia spesa”● Emissione di nuove monete● Remunerazione per il lavoro svolto

(“commissioni di transazione”)

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 15: Presentazione del mining Bitcoin

Mining – PoW- Proof of Work

● Algoritmo di mining SHA-256Bitcoin usa: SHA256(SHA256(Block_Header))

● Il SHA-256 hash dell' header di un blocco deve essere inferiore al target

● difficoltà = difficoltà_1_target / current_targetLa difficoltà si regola periodicamente per far si che i blocchi siano generati al tasso prestabilito (uno ogni 10 minuti). La difficoltà cambia ogni 2016 blocchi (circa 14 giorni), è basata su quanto velocemente siano stati trovati i precedenti 2016 blocchi.

● Ricompensa per i minatori dimezzata ogni 210.000 blocchi● Ricompensa= Bitcoin generati + ∑ tasse di transazione

all’interno del blocco verificatoINTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 16: Presentazione del mining Bitcoin

Mining – Principali attività di un miner

● Broadcast di tutte le transazioni verso altri nodi della rete● Ogni nodo collezziona le nuove transazioni in blocchi● Ogni nodo lavora per trovare il proof-of-work per il blocco● Quando un nodo trova proof-of-work, fa il broadcasts del

blocco agli altri nodi della rete.● I nodi accettano il blocco solo se tutte le transazioni al suo

interno sono valide e non già spese● I nodi dimostrano di accettare il nuovo blocco

semplicemente iniziando a lavorare al successivo blocco della catena usando l'hash del precedente blocco accettato.

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 17: Presentazione del mining Bitcoin

Mining – strategie di mining

● Solo Mining● Pool mining● P2Pool mining● Mining Services/CloudMining

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 18: Presentazione del mining Bitcoin

L’evoluzione del mining• 2009 – Inizio mining, esiguo numero di minatori, alta ricompensa (50 BTC a blocco) ma ancora basso o

nullo il valore

• Successivo aumento interesse, aumento di minatori e quindi aumento di difficoltà, primo aumento prezzo di vendita.

• Inizio diffusione capillare del Bitcoin, aumento esponenziale di minatori, quindi di difficoltà e calo di probabilità di ottenere singolarmente il premio da rivendere.

• Passaggio dall’operare singolarmente a attività collettiva, collegandosi a mining pool con suddivisione della ricompensa.

• Ingegnerizzazione del mining, passaggio da CPU, a GPU, chip FPGA fino all’ultimo anno con ASIC, macchine apposite. (aumento esponenziale della difficoltà)

• Costo hardware specializzato ormai inaccessibile ai più. Si ricorre all’acquisto condiviso.

18

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 19: Presentazione del mining Bitcoin

Introduzione al Bitcoin – difficoltà grafico dal 2009

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Page 20: Presentazione del mining Bitcoin

Difficoltà nel Tempo

Source: Peter Wuille

Maggio 2013 Gennaio 2014

INTRODUZIONE AL MINING @TREATBIT| Martedi 7 Ottobre 2014 - Bitcoin Foundation Italia – www.bitcoin-italia.org

Ottobre 2014