Introduzione alla tecnologia Blockchain

VII parte: Risorse per la blockchain in Javadi

Introduzione: una raccolta di risorse

Quando si inizia a studiare una tecnologia, una delle prime cose che si tendono a fare è quella di documentarsi, raccogliere indirizzi, seguire dei webinar, partecipare a eventi e così via.

Dato che nelle puntate precedenti ho toccato solo in modo superficiale alcuni siti che offrono servizi e informazioni legate al mondo della Blockchain, all’interno di questa puntata darò uno spazio maggiore alle fonti alle quali attingere per documentarsi e trovare servizi liberamente disponibili.

Per questo tipo di puntata, ho voluto scegliere il numero di luglio/agosto di MokaByte per potervi fornire una serie di spunti di lettura che potrete usare durante i pomeriggi di relax sotto l’ombrellone; e per chi ritiene la lettura faticosa… ho anche inserito una serie di link a videocorsi e webinar.

 

Da quali siti partire

Realizzare una scaletta ragionata di siti web potrebbe essere un compito particolarmente oneroso. Per questa ragione inizierò parlando dei siti nell’ordine in cui li ho presentati all’interno del corso, aggiungendone altri che sicuramente possono fare comodo a chi sviluppa in ambito Blockchain. Chiaramente non è una lista onnicomprensiva, ma un elenco che tocca gli argomenti trattati e qualcosa di cui parleremo nei prossimi mesi.

CoinMarketCap

CoinMarketCap [1] è un sito utile, non tanto dal punto di vista della programmazione, quanto per avere una visione di quante sono le criptovalute conosciute e di qual è loro valore di scambio di mercato.

Nel momento in cui scrivo, sono censite 1620 criptocurrency, partendo da Bitcoin ed Ethereum, fino ad arrivare alle sconosciute SISA, ENTCash e FCoin Token.

Per ognuna sono indicati il valore di mercato, i volumi di vendita, l’andamento nell’ultimo periodo oltre che una serie di interessanti grafici comparativi, sia relativi agli scambi globali che per singola valuta. Molto interessante per chi cerca un riscontro storico o vuole capire l’andamento nel tempo delle singole valute.

CryptoKitties

CryptoKitties [2] è stato il primo esempio di utilizzo ludico di smart contract. In realtà viene anche ricordato non tanto per aver utilizzato in modo creativo la rete Ethereum, quanto per averla fortemente rallentata a dicembre 2017.

Se prima di CryptoKitties tutti erano convinti che la rete potesse supportare qualsiasi tipo di utilizzo, dopo CryptoKitties si è capito che l’attuale struttura, e probabilmente anche i prossimi aggiornamenti, non sono ancora maturi per poter supportare sia il volume di traffico necessario a certe applicazioni, sia la scalabilità che si dovrebbe avere con l’aumento delle richieste della rete.

BitcoinWisdom

Simile in alcuni aspetti a CoinMarketCap, BitcoinWisdom [3] offre alcune analisi aggiuntive, come quella relativa al calcolo della potenza necessaria per risolvere un PoW di alcune criptovalute, tipo BitCoin o Ethereum.

Infura

Un sito che ho trovato molto interessante quando ho scritto la puntata relativa ad Ethereum è stato quello di Infura [4].

Uno dei problemi che si incontrano quando si inizia a sviluppare con Ethereum, ma in generale con molte Blockchain, è quello di avere una copia locale e aggiornata dell’intera catena. Al di sopra di questa copia vengono istanziati i servizi, utilizzati dalle nostre applicazioni, ad esempio, per mandare un ETH a un wallet o per utilizzare uno smart contract.

Infura permette di evitare la copia locale della blockchain, esponendo le API di Ethereum a un personale indirizzo, al quale potete far riferimento nelle vostre chiamate. Questo approccio consente di essere subito operativi, senza la necessità di avere vari GB di spazio disco allocati e senza la perdita di tempo dovuta alla replica della Blockchain.

Bitcoin Globe e Bitcoin Ticker

Il concetto di transazione fatto a livello mondiale è semplice da capire, un po’ meno da visualizzare. Bitcoin Globe [5] e Bitcoin Ticker [6] forniscono una visualizzazione grafica delle transazioni planetarie di criptovaluta. Dal punto di vista tecnico non sono dei siti che offrono molto, ma se cercate materiale per una presentazione sono sicuramente delle fonti interessanti

Figura 1 – Bitcoin Globe fornisce una visualizzazione grafica delle transazioni decisamente accattivante.

Figura 1 – Bitcoin Globe fornisce una visualizzazione grafica delle transazioni decisamente accattivante.

Yogh Bitcoin Reader

Per chi volesse andare nel dettaglio di un blocco di Blockchain, esistono numerosi siti che permettono l’analisi della sequenza di byte che lo compongono. Yogh.io [7] è uno di questi.

Come potete notare dalla figura, ogni blocco è scomposto e spiegato nelle sue componenti base. Un ottimo sito per poter andare ad analizzare il dettaglio della struttura della Blockchain di Bitcoin.

Figura 2 – Yogh Bitcoin Reader consente di analizzare il dettaglio dei singoli blocchi che compongono la Blockchain di Bitcoin.

Figura 2 – Yogh Bitcoin Reader consente di analizzare il dettaglio dei singoli blocchi che compongono la Blockchain di Bitcoin.

Blockchain.com

Avere delle statistiche è sempre importante. Su Blockchain.com [8] sono presenti una serie di informazioni e statistiche interessanti su Bitcoin, come la dimensione media dei blocchi, la grandezza della Blockchain, il numero di transazioni medie del giorno. Dati interessanti per capire quanto sia il volume di informazioni in circolazione e quale sia il parallelismo con il suo valore.

Bitcoin Who's Who

Sempre sul fronte delle analisi dei dati, Bitcoin Who's Who [9] questo sito permette di analizzare un wallet e capire, ad esempio, se è stato utilizzato per fare delle truffe.

A titolo di esempio, potete provare ad utilizzare gli indirizzi di analisi di alcuni dei wallet usati da WannaCry per ricevere i pagamenti:

https://bitcoinwhoswho.com/address/12t9YDPgwueZ9NyMgw519p7AA8isjr6SMw

Da questo indirizzo è possibile vedere che tale wallet ha ricevuto un totale di 19.27213777 bitcoin su 125 transazioni ed è stato successivamente svuotato con un paio di transazioni.

Se volete divertirvi su questo tipo di analisi, vi consiglio la lettura di un articolo su Quartz [10] che si occupa delle analisi di alcuni wallet. All’interno dell’articolo sono riportati tre differenti wallet riconosciuti come destinatari di WannaCry, sui quali potete fare analisi per capire dove sono andati alcuni pagamenti di questi cyber-attacchi.

Bitcoin Links

Esistono in rete una serie di directory che riportano elenchi di siti e relative specializzazioni in ambito blockchain. Bitcoin Links [11] è uno di questi, interessante perché espone una lista ragionata con alcuni link a portali utili in ambito di programmazione.

Se volete un’alternativa più asciutta, potete fare riferimento anche a Blockchain Stuff [12] oppure a Bitcoin Resources [13].

 

YouTube e video tutorial

Anche YouTube è una fonte interessante per gli sviluppatori blockchain. Suggerisco la visione di alcuni canali:

  • Blockchain at Berkeley” [14] per la spiegazione tecnica dei meccanismi usati dalle Blockchain;
  • Marco Casario” [15] non tanto per la parte tecnica, quanto per la visione a 360 gradi del mondo delle criptovalute;
  • Blockchain caffè” [16] per notizie fresche e in italiano su Blockchain;
  • Criptocurrency & Blockchain school” [17] altro canale tecnico di analisi dei meccanismi delle Blockchain.

Sempre in ambito video è interessante la visione dei tutorial della Bitcoin Edge Initiative: 10 ore di spiegazioni tecniche s oiu mining, blockchain, reti peer-to-peer e wallet [18].

 

Libri

Esistono poi libri che parlano di criptovalute e blockchain. Tra questi, ce ne sono anche alcuni gratuiti disponibili in rete. Ne cito solamente due, come punto di partenza:

  • Narayanan, J. Bonneau, E. Felten, A. Miller, S. Goldfeder. Bitcoin and Cryptocurrency Technologies. Princeton University Press, 2016 [19];
  • M. Antonopoulos. Mastering Bitcoin. 2nd Edition [20].

 

Tool e librerie

Come ultimi link vi volevo lasciare qualce risorsa con cui “giocare”:

  • btcrecover [21], un tool per il recover delle password dei wallet;
  • bitcoinj [22], libreria Java per interagire con la rete Bitcoin;
  • web3j [23], libreria per l’utilizzo della rete Ethereum, vista nella puntata dedicata ad Ethereum;
  • Corda [24], una blockchain open source scritta in Kotlin e utilizzata in ambito bancario.

 

Conclusioni

L’universo delle blockchain è molto vasto e condensare in un articolo tutte le risorse che ad esso fanno riferimento è abbastanza complicato; occorre pertanto considerare questo elenco come uno spunto e non come un punto d’arrivo.

Spero di avervi dato un approfondimento delle fonti che abbiamo utilizzato fino ad ora, aggiungendo qualche particolare che durante le puntate era sfuggito. Oltre a questo, ho aggiunto qualche link interessante a libri e video tutorial che potessero essere fruiti anche in qualche ora di relax.

Se poi avete notato qualche sito che, secondo voi, andava citato… scrivetemi e lo inseriremo in una successiva revisione di questa lista.

 

Riferimenti

[1] CoinMarketCap

https://coinmarketcap.com/

 

[2] CryptoKitties

https://www.cryptokitties.co/

 

[3] BitcoinWisdom

https://bitcoinwisdom.com/

 

[4] Infura

https://infura.io/

 

[5] Bitcoin Globe

http://bitcoinglobe.com/

 

[6] Bitcoin Ticker

https://bitcointicker.co/

 

[7] Yogh Bitcoin Reader

http://yogh.io/

 

[8] Blockchain. Connecting the world to Crypto

https://www.blockchain.com/

 

[9] Bitcoin Who's Who

https://bitcoinwhoswho.com/

 

[10] Keith Collins, Watch as these bitcoin wallets receive ransomware payments from the ongoing global cyberattack

https://goo.gl/PRPqyc

 

[11] Bitcoin Links

http://www.bitcoinlinks.net/

 

[12] Blockchain Stuff

https://github.com/Xel/Blockchain-stuff#bitcoin

 

[13] Bitcoin Resources

https://lopp.net/bitcoin.html

 

[14] Blockchain at Berkeley

https://www.youtube.com/channel/UC5sgoRfoSp3jeX4DEqKLwKg

 

[15] Marco Casario

https://www.youtube.com/user/marcocasario

 

[16] Blockchain caffè

https://www.youtube.com/channel/UC45fFhSPMzXN2TRqgkGLPsw

 

[17] Criptocurrency & Blockchain school

https://www.youtube.com/channel/UC1y2yA6CTN_O866SkeNnfYg

 

[18] Tutorial della Bitcoin Edge Initiative

https://bitcoinedge.org/tutorials

 

[19] A. Narayanan, J. Bonneau, E. Felten, A. Miller, S. Goldfeder. Bitcoin and Cryptocurrency Technologies. Princeton University Press, 2016

https://lopp.net/pdf/princeton_bitcoin_book.pdf

 

[20] A.M. Antonopoulos. Mastering Bitcoin. 2nd Edition

https://github.com/bitcoinbook/bitcoinbook

 

[21] btcrecover

https://github.com/gurnec/btcrecover

 

[22] bitcoinj

https://bitcoinj.github.io

 

[23] web3j

https://github.com/web3j/web3j

 

[24] Corda

https://github.com/corda/corda

 

Condividi

Pubblicato nel numero
241 luglio 2018
Matteo Baccan è un informatico per passione. Si occupa di sviluppo e architetture software da quando 64k erano sufficienti per qualsiasi tipo di applicazione. Al momento gestisce team di programmatori e sviluppa progetti mission critical per alcune aziende italiane e internazionali. Parte del suo lavoro è consultabile sul sito http://www.baccan.it
Articoli nella stessa serie
Ti potrebbe interessare anche