Opzioni per implementare un’API per la vostra dApp Web3

Introduzione

I progetti Web3 sono più simili alla blockchain quando sono completamente decentralizzati, ma in alcuni casi è necessario creare un’API centralizzata per la propria applicazione a causa delle limitazioni della blockchain. Molti progetti di successo si affidano alle loro potenti API per essere in grado di rispondere alle centinaia di migliaia di richieste al minuto. Ad esempio, Opensea non sarebbe così veloce se non avesse il suo database.
In questo articolo, accennerò ad alcune limitazioni della blockchain e poi presenterò i modi per implementare un’API per la vostra dApp.

Perchè abbiamo bisogno di una API ??

Leggere i dati dalle blockchain richiede molto tempo. Inoltre, alcune applicazioni hanno una logica complessa e l’implementazione di questa logica nei contratti intelligenti aumenta il consumo di gas.
Un’interfaccia di programmazione delle applicazioni (API) definisce una modalità di comunicazione tra programmi informatici. Creando un’API per la vostra dApp potrete recuperare i dati richiesti da essa invece di interrogare l’intera blockchain.

Ma dunque che cosa sono le API ??

Le API (Application Programming Interface) sono un insieme di protocolli e strumenti per la creazione di applicazioni che interagiscono con un determinato sistema.
In pratica, le API servono a consentire la comunicazione tra due sistemi differenti.

Nel caso della Blockchain, le API possono essere utilizzate per consentire a un’applicazione di interagire con la catena di blocchi e di utilizzare i dati in essa contenuti.
Ad esempio, un’applicazione potrebbe utilizzare le API di una Blockchain per verificare la validità di una transazione o per recuperare il saldo di un indirizzo specifico.

Le API possono velocizzare l’utilizzo della Blockchain in diversi modi. Innanzitutto, consentono di semplificare l’interazione con la catena di blocchi, rendendo più facile per gli sviluppatori creare nuove applicazioni basate sulla Blockchain. Inoltre, le API possono essere utilizzate per creare “ponti” tra diverse Blockchain, consentendo ai dati di essere condivisi e utilizzati tra più piattaforme diverse.

Inoltre, le API possono essere utilizzate per creare servizi “on demand”, ovvero per fornire accesso ai dati della Blockchain solo quando sono richiesti, evitando di dover fare una copia di tutti i dati in un database locale e quindi rendendo più efficiente l’utilizzo della memoria.

Infine, le API possono essere utilizzate per creare servizi di “abstracting”, ovvero per nascondere la complessità della Blockchain agli utenti finali, rendendo più facile per loro utilizzare le applicazioni basate sulla Blockchain.

In sintesi, le API rappresentano un modo semplice e veloce per gli sviluppatori di creare applicazioni che interagiscono con la Blockchain, rendendo più facile per gli utenti finali utilizzare queste applicazioni e facilitando la condivisione dei dati tra diverse piattaforme basate sulla Blockchain.

GraphQL – un linguaggio per interfacciarsi con la Blockchain

GraphQL è un linguaggio di query progettato per fornire un modo semplice ed efficiente per i clienti di interagire con i dati di un server.
GraphQL consente ai clienti di richiedere esattamente i dati di cui hanno bisogno, e solo quelli, evitando di dover scaricare tutti i dati presenti in un database o in una risorsa.

Per utilizzare GraphQL per interagire tra la Blockchain Ethereum e IPFS (InterPlanetary File System), è necessario prima di tutto creare un server GraphQL che faccia da intermediario tra le due piattaforme. Questo server dovrà essere in grado di connettersi alla Blockchain Ethereum utilizzando una libreria come Web3.js, e di utilizzare le API di IPFS per accedere ai file presenti sulla rete.

Una volta creato il server GraphQL, sarà possibile utilizzare GraphQL per eseguire query sui dati presenti sulla Blockchain Ethereum e su IPFS.

Ad esempio, sarà possibile utilizzare GraphQL per richiedere il saldo di un indirizzo specifico sulla Blockchain Ethereum o per ottenere il contenuto di un file su IPFS.

Per eseguire queste query, sarà sufficiente inviare una richiesta HTTP POST al server GraphQL con il corpo della richiesta in formato JSON contenente la query GraphQL. Il server GraphQL eseguirà quindi la query e restituirà i dati richiesti al client in formato JSON.

In sintesi, GraphQL consente di interagire con la Blockchain Ethereum e con IPFS in modo semplice e veloce, fornendo un modo efficiente per accedere ai dati di cui si ha bisogno senza dover scaricare tutti i dati presenti in un database o in una risorsa.

MORALIS

Moralis non è solo un indicizzatore, questa piattaforma fornisce molte soluzioni come API blockchain, API NFT, autenticazione web3, API token e API stream.
I prodotti di Moralis possono rispondere facilmente a molte delle vostre esigenze. In questo modo non sarà necessario implementare un’API o un indicizzatore da zero per avere un accesso veloce ai dati della blockchain.

In Moralis, potrete creare un database di eventi di smart contract e interrogarlo come vorrete.

Sviluppare una propria API

Questa è sempre un’opzione valida e che da pieno controllo sul codice e sulle azioni che si andranno a sviluppare. Dovrete però spendere molto tempo per sviluppare un’API che potrebbe comunque rivelarsi non buona come le opzioni precedenti.
Richiede maggiori conoscenze, studio e tempo di sviluppo.

L’aspetto positivo è che potete implementare e aggiungere funzionalità uniche per la vostra dApp. Gli indicizzatori di cui ho parlato nelle sottosezioni precedenti sono progettati per rispondere al maggior numero possibile di scenari diversi. Ma quando si crea un’API personalizzata, è possibile personalizzarla come si desidera.

Potete sviluppare l’API utilizzando qualsiasi linguaggio di programmazione, ma dovete tenere conto dei seguenti suggerimenti:

  • Integrazione della blockchain
  • Manutenibilità
  • Velocità
  • Strumenti disponibili

Conclusioni

Se volete sviluppare un’API per la vostra dApp o se non siete sicuri di quale delle opzioni disponibili sia la più adatta a voi, tenete sempre presente che anche utilizzando un indicizzatore potreste aver bisogno di sviluppare un’API personalizzata per tenere traccia di alcuni lavori che l’indicizzatore già pronto potrebbe non supportare.
Nelle prossime parti ci cimenteremo nello sviluppo di un’API per un semplice smart contract, quindi assicuratevi di seguire il blog per non perdervi i prossimi aggiornamenti!

Bitcoin un anno di studio


Parte 1 – Bitcoin è tanta roba

E’ passato più di 1 anno dall’ultimo articolo pubblicato sul Blog ed è stato un anno intenso lavorativamente ma ancor di più di studio. Mi sono voluto prendere il tempo necessario per studiare ed approfondire davvero l’argomento Blockchain/Bitcoin che necessitava di quel quid in più per poter arrivare ad avere una vera chiave di lettura sia sul come davvero funziona, addentrandomi davvero ad ogni parte che compone questa straordinaria macchina tecnologica, sia il capirne a fondo le idee rivoluzionarie in ambito sociale e finanziario che lo hanno ispirato, a partire dai movimenti #Chyperpunk degli anni 90.

Dunque in questo anno ho seguito alcuni corsi mirati, uno dei quali durato ben 8 mesi, che mi hanno pemesso di comprendere meglio i tanti, molti, aspetti non solo tecnologici che ruotano attorno a Bitcoin.

Questo perchè troppo spesso si pensa ad una tecnologia come un software o hardware da sviluppare, gestire, espandere etc….. mentre in questo specifico caso stiamo parlando di qualcosa che, oltre al suo già ampio bagaglio tecnologico (… vedi: Reti & Protocolli, Cybersecurity, Crittografia, Programmazione Smartcontract , NFT, A.I. etc…) necessità dello studio di tematiche quali:

  • Eco sostenibilità dell’era digitale
  • Etica nel digitale e fairness degli algoritmi
  • Teoria dei Giochi & Byzantine Fault Tollerance
  • Storia della Moneta e concetti di Finanza
  • Ecosistemi e DeFi
  • Regolamentazione giuridica
  • Privacy e Fiscalità

…… etc ! Dunque l’argomento è vasto e richiede di studiare molte materie non direttamente legate all’informatica.


Ora, prima di addentrarci nel lungo cammino di che cosa ho imparato sul funzionamento di #Bitcoin, proverò a fare un ripasso su ciò che credo sia importante capire di “che cosa è Bitcoin“.

Che cosa hai imparato da Bitcoin?

Se mi fossi fatto questa domanda prima di questa pausa di studio avrei iniziato sicuramente descrivendo come funziona, il mining, gli hash, le caratteristiche di sicurezza della crittografia etc…. ma non avrei quasi sicuramente parlato degli aspetti sociali e filosofici che sono alla base di questa rivoluzionaria strategia tecnologica per la quale l’aspetto tecnico è il motore per far funzionare gli aspetti economico-sociali che lo hanno ispirato.

Premessa

<<Bitcoin aiuta a superare l’ignoranza finanziaria>>, se ci riflettiamo possiamo un pò tutti confermare che, nell’arco degli studi elementari/medie/superiori vengono insegnate : scienze, matematica, chimica, fisica, storia etc…. ; ma quando viene insegnata l’economia-finanza ?? bisogna attendere l’Università se si decide di andare a seguire alcuni indirizzi specifici; dunque la maggioranza di noi ignora i termini della finanza o dell’economia spiccia, che vediamo come un’arte oscura e che deleghiamo alle banche ed ai politici, nulla di più SBAGLIATO e di deleterio per il nostro futuro.

Partiamo

Bitcoin come accennato poco sopra è figlio di molte discipline che si interconnettono, inoltre essendo una “cosa nuova” non è equiparabile a tecnologie precedenti, eviterò quindi di definirlo come molti fanno in giro per il web con vezzeggiativi quali: “oro digitale, internet del denaro” …etc.. dirò semplicemente che Bitcoin si basa essenzialmente su due importanti aspetti decentralizzazione e immutabilità.

Proviamo a guardare al Bitcoin come ad un contratto sociale automatizzato il cui software è solo un ingranaggio del puzzle, ma anche con la Banca facciamo un contratto di cui però non conosciamo le regole perchè con le istituzioni subentra un aspetto di “fiducia” che fa si che non si vada mai ad approfondire quali regolamenti gestiscono realmente i nostri soldi. Già i nostri soldi….. quanti di noi sanno che cosa dice l’articolo 1834 del Codice Civile ??? Beh questo articolo recita così :

[[ “Articolo 1834 Codice Civile
(R.D. 16 marzo 1942, n. 262)
[Aggiornato al 01/12/2021]
Depositi di danaro
Nei depositi di una somma di danaro presso una banca, questa ne acquista la proprietà ed è obbligata a restituirla nella stessa specie monetaria, alla scadenza del termine convenuto ovvero a richiesta del depositante, con l’osservanza del periodo di preavviso stabilito dalle parti o dagli usi“. ]]


Quindi i soldi sono i tuoi fino a che non li depositi in banca o quando li ritiri in contante (chiedendo se cortesemente te li fanno prendere poichè anche sul ritiro cospicuo dei propri soldi esistono limitazioni di quantità), in tutte le altre fasi il tuo denaro non è tuo e la banca lo gestirà come meglio le farà comodo. SAPPILO !!”

Tenendo ben presente come negli ultimi tempi sia facile per un istituto bancario bloccare i conti dei propri clienti, con scuse tra le più disparate, possiamo far evolvere ed aggiornare quello che era il significato del “I NOSTRI SOLDI” ad un concetto aleatorio, in pratica sono in ostaggio della banca che potrebbe ridarceli come no, vedi i casi negli ultimi 2/3 anni accaduti a residenti in Italia di origine Russa o Iraniana, i cui conti correnti sono stati CHIUSI senza se e senza ma, che tradotto vuol dire che i tuoi soldi sono svaniti.

Tutto questo accade quindi per merito di regolamenti di cui ignoriamo l’esistenza e per quel finto concetto di sicurezza verso le istituzioni alle quali molto volentieri deleghiamo il da farsi:
<< “ma si ci penseranno loro, io mi fido, del resto non ho nulla da nascondere…“. >>
Questo con Bitcoin non può accadere perchè per gestire i tuoi fondi in Bitcoin devi studiare, capire, prenderti le tue responsabilità, imparare che non esiste il concetto di fiducia ma di verifica e solo a quel punto sarai pronto per amministrare i TUOI beni, perchè in questo paradigma i tuoi beni saranno davvero i tuoi, al punto che se non condividerai come gestirli con coloro di cui ti fidi (moglie, figli etc…) neppure loro potranno prendere possesso dei TUOI beni.
Ma come per tutte le cose belle c’è un prezzo da pagare, in questo caso “non si ammette ignoranza”. Certo puoi iniziare con il capire come funziona aprendoti un conto su uno dei tanti Exchange (Coinbase, Binance, Kraken…etc) ma poi bisogna diventare responsabili e fare quel passo in più che da la libertà di decidere per i propri averi senza interlocutori.

LA SCARSITA’

Il primo concetto da cui partiamo per descrivere i concetti base di Bitcoin è quello della “scarsità”; cos’è che da valore a Bitcoin?

“Solo due cose scarseggiano davvero: il tempo e i bitcoin”
by Saifedean Ammous (economist)
@saifedean

Il concetto di scarsità è conosciuto dall’uomo dall’origine dei tempi e in molte epoche diverse questo ruolo è stato ricoperto da svariati “asset” come il grano, il sale, le spezie etc….. la difficoltà nel reperire questi ed altri asset, la quantità recuperata e/o estratta (pensiamo ai raccolti o alla scoperta di nuove venature di materiali preziosi) rendeva il loro prezzo oscillante nel corto e medio tempo. Tra questi asset sicuramente due hanno accompagnato gli uomini fino ai giorni moderni, l’oro e l’argento e solo la separazione da questi asset, iniziata verso la fine del 1800 e conclusasi tra gli anni 60 e 70 del ‘900 ci hanno portati alla dipendenza forzosa verso le monete FIAT, ma della storia della moneta parleremo meglio nei prossimi articoli.

La produzione eccessiva di un asset, che sia esso una moneta o la scoperta di nuovi giacimenti di petrolio, non è necessariamente un bene, anzi comporta alcuni fenomeni distorsivi nell’ecconomia. Bitcoin, al contrario è un bene digitale scarso dal momento della sua creazione, destinato ad avere una produzione limitata e conosciuta nel tempo, 21 milioni, che lo renderà sempre più prezioso, più prezioso dell’oro stesso, con cui spesso viene comparato, perchè nel momento in cui venisse scoperto un nuovo giacimento di oro la sua scarsità diminuirebbe e di conseguenza il suo prezzo destinato a scendere e ad oscillare.

<< Esempio : 22 Giugno 2022 – “Nuovi e ricchi giacimenti minerari di oro sono stati trovati in Uganda. ll volume delle riserve è stimato in 31 milioni di tonnellate di minerale d’oro.”>>

Bitcoin è, ma soprattutto sarà, probabilmente lo strumento migliore per il trasferimento di valore senza confini, virtualmente resistente alla censura e alla confisca, così com’è una riserva  di valore autosufficiente, che consente agli individui di immagazzinare la loro ricchezza indipendentemente da banche e governi.

A questo punto giustamente qualcuno potrebbe osservare che comunque la si voglia raccontare anche Bitcoin risente dei mercati e dei cicli di inflazione, motivo per cui sale e scende di valore; è indubbiamente vero, ad oggi, ma credo che questa situazione cesserà di esistere molto presto, questo per il fatto che proprio la sua offerta strettamente limitata ai 21 mln ad un certo punto assesterà l’inflazione, non a caso oggi possiamo suddividere il mondo monetario in due filoni, quello inflazionistico, in cui il denaro viene stampato (e se digitale viene semplicemente creato al computer) arbitrariamente, e poi c’è Bitcoin, la cui offerta finale è fissa e facilmente verificabile per tutti, dunque non si possono fare giochini di bilancio e frodi per far apparire magicamente soldi che non c’erano, così come fanno tutte le banche centrali.

Dunque, SI, Bitcoin è ancora molto giovane e come conseguenza si porta ancora dietro un pò di “volatilità” per cui al momento risente di una capacità di immagazzinare valore in modo affidabile sulla base di ciò che conosciamo noi oggi, ossia il metodo di assegnazione del valore dei mercati di scambio azionari per cui ragionando ancora secondo le loro metriche si fa fatica a determinare il giusto prezzo di questa nuova moneta, sarà il paradigma di valore che cambierà man mano che il Bitcoin verrà conosciuto e capito.
Questi due mondi hanno di fondo un’enorme differenza sociale poichè il primo è politico e gestito dalla grande finanza e viene imposto con le guerre (pensate come nella storia dell’uomo siano state imposte molte monete, quelle degli imperi vincitori, per poi sparire per essere sostituiti dal nuovo potente di turno), l’altro può essere adottato da chiunque desidera farlo, senza nessuna barriera all’ingresso, nessuno a cui chiedere il permesso ed in cui la partecipazione è volontaria…… ecco questa è la grande bellezza di Bitcoin.

Perchè ho voluto sottolineare alcuni aspetti così negativi delle monete di uso comune, le monete Fiat ?, beh pochi ci pensano ma degli 8 miliardi di persone che siamo su questa Terra non tutti hanno accesso ad un conto corrente bancario, non tutti possono o riescono ad aprirlo ma tutti in un modo o nell’altro necessitano di soldi e devono poterli gestire, Bitcoin ed il meccanismo della Blockchain (ovviamente intendendo quella permissionless o originale, come preferite definirla) non pongono barriere di accesso al denaro ne condizionano l’uso tramite enti o persone terze che ne dettino le regole d’uso.

Ignoranza finanziaria

Poco fa abbiamo accennato a quanto spiccata sia l’ignoranza in ambito finanziario ed anche semplicemente dei termini economici, ma per poter comprendere un nuovo sistema monetario, bisogna prima familiarizzare con il vecchio.

Proviamo a fare un piccolo TEST – sapresti rispondere alle seguenti macro domande??

  • Come funziona il sistema bancario ?
  • Come funziona il mercato azionario ?
  • Che cosa sono le monete Fiat ?
  • Perchè esiste un debito così alto ? Perchè non si riesce a cancellarlo?
  • Quanto denaro può essere stampato? Chi lo decide?

PS: va sempre tenuto a mente che da quando non c’è più il Gold Standard (che spiegheremo meglio in un prossimo articolo) e sono state introdotte le monete Fiat, è comparso il concetto di soldi “stampabili” per cui chi detiene il potere di stampare può stamparne quanto ne vuole, di conseguenza i soldi che possono essere stampati verranno stampati questo perchè senza dei limiti oggettivi o fisici ci sarà sempre da parte dell’uomo la tentazione di approfittare di questo potere pur sapendo che troppi soldi in circolazione portano a più inflazione. Eppure mentre alcuni economisti sostengono che l’inflazione è una cosa positiva, altri sostengono che il denaro vero , non inflazionabile facilmente, come quello basato appunto sul Gold Standard, è essenziale per un sistema economico sano.
Bitcoin elimina la tentazione umana a stampare denaro e lo fa in un modo molto ingegnoso, infatti Satoshi (e/o chi per lui) era evidentemente ben consapevole dell’avidità per cui ha basato tutto il meccanismo di determinazione e gestione di Bitcoin sulla matematica.


Personalmente concordo con la seconda visione tenendo in considerazione che gli effetti negativi dell’inflazione (peggio ancora se associati anche ad una stagflazione) non sono immediatamente evidenti, infatti , a secondo del tasso di inflazione, il tempo che intercorre tra la causa e l’effetto può durare anche diversi anni, inoltre l’inflazione influisce in modo pesante su alcuni tipologie di persone, o gruppi sociali, rispetto che altri.
Un esempio di questa situazione la possiamo vedere oggi negli U.S.A. che dopo aver usato metodi come l’helicopter money (il Governo eroga soldi a fondo perduto tramite la banca centrale, direttamente nelle tasche dei cittadini e delle imprese) per sopperire alle perdite di lavoro e di chiusura di molte attività lavorative a causa dei Lock down, oggi come conseguenza di quel mix di situazioni e scelte, si ritrova con troppo denaro immesso direttamente nell’economia reale – aumentando così il totale della moneta in circolazione nell’economia senza una crescita parallela della produzione di beni o servizi, nel tentativo di evitare che i consumi ed i prezzi aumentino in modo improvviso nell’immediato, cercando di non far fermare di colpo l’economia (recessione). Tutto questo però genera nel tempo nuovi livelli sempre crescenti di inflazione che faranno aumentare tutti i costi dei beni e dei servizi annessi e, nei casi peggiori, come quelli che stiamo vivendo in questo periodo storico, possono portare alla STAGFLAZIONE ossia ad un tipo di ciclo economico dettato da due fenomeni concomitanti di stagnazione (recessione) e d’inflazione.

Come si capisce dall’evolversi di questo primo articolo a tema Bitcoin, l’argomento è davvero ampio, dunque prima di chiudere questo primo articolo ci tengo ad inserire un concetto bancario molto importante e che determina alcuni degli aspetti negativi ai quali cerchiamo delle risposte, non facili da trovare in particolare fino a quando non ci si addentra volontariamente nello studio della materia economico-finanziaria.

La Riserva frazionaria bancaria

L’economia, la Finanza e lo stesso Denaro non sono argomenti banali da trattare, soprattutto al giorno d’oggi e, tra le cose meno banali da capire e valutare c’è certamente il processo di creazione della moneta all’interno del nostro sistema bancario. Attenzione però non voglio dire che gli argomenti siano difficili, cosa che innesca la reazione del “non ci capisco nulla, facciano loro, io mi fido…” ma è il sistema che lo trasforma in apparentemente complesso, nascondendo i concetti dietro a strati di gergo tecnico e ad inglesismi al solo scopo di confondere e creare una barriera verso la gente. E’ chiaro che se parlando di moneta e sistema bancario iniziassi a colorire le frasi con termini come “quantitative easing, Loan, investment found, Yeld, Bail-Out & Bail-In” … etc, diventerebbe subito palese che il comune cittadino non può che rimane confuso finendo spesso col decidere di non voler approfondire un qualcosa che invece lo toccherà direttamente nelle tasche.

Purtroppo da qui si innesca un meccanismo di protezione delle persone che finiscono persino con il coniare modi di dire come: “avere soldi è peggio che non averli” ; ovviamente questa “battuta” è assolutamente infondata e basata unicamente sulla pigrizia nel doversi informare, almeno minimamente, su come andrebbe gestito il proprio denaro, ed invece si preferisce DELEGARE , deleghiamo alla banca, deleghiamo al notaio, all’avvocato, al commercialista, al dottore …… insomma a chiunque si prenda lo sbattimento di studiare ciò che noi non abbiamo voglia di comprendere.

WTF ?!

Torniamo al tema per spiegare il quale vorrei citare un’intervento fatto dall’Euro parlamentare inglese Godfrey Bloom, il quale dichiarò che :

“Tutte le banche sono in bancarotta. Banca Santander, Deutsche Bank, Royal Bank of Scotland… sono tutte al verde! E perché sono al verde? Non è un atto divino. Non è una specie di tsunami. Sono al verde perché noi abbiamo un sistema chiamato “banca a riserva frazionaria”, il che significa che le banche possono prestare denaro che in realtà non hanno! È uno scandalo criminale che va avanti da troppo tempo […] La stampa artificiale di denaro è tale per cui, se una persona comune lo facesse, andrebbe in prigione per molto tempo […] e fino a quando non iniziamo a mandare i banchieri — e includo banchieri centrali e i politici — in prigione per questo, l’oltraggio continuerà.“

Per sintetizzare questo concetto potremo dire che la riserva frazionaria altro non è che un metodo attraverso cui le banche creano denaro, ex novo, praticamente dal nulla attraverso un semplice click su un computer.

Se per esempio i correntisti di una stessa filiale bancaria, provassero tutti insieme ad andare allo sportello della banca a richiedere il loro denaro depositato, sapete cosa accadrebbe? l’impiegato allo sportello sarebbe costretto a comunicar loro che i soldi non attualmente sono disponibili e di ritornare dopo qualche giorno ma su invito della banca.

Il motivo? I vostri soldi in quella banca NON ESISTONO fisicamente.

La riserva frazionaria rende possibile alle banche svolgere legalmente un’attività criminale molto profittevole, rendendo così il sistema economico strutturalmente instabile e cioè necessariamente esposto a cicli economici di boom e crisi.

Godfrey Bloom – intervento all’Europarlamento – “La riserva frazionaria è il cuore del problema”

Dunque volendo ulteriormente fissare il concetto principale esposto anche nel video possiamo ribadire che:
le banche possono prestare denaro che loro in realtà non posseggono

Ed in effetti, grazie alla riserva frazionaria bancaria, una banca ha l’obbligo di detenere solo una piccola frazione (di solito intorno al 10%) di ogni dollaro/euro che ottiene dai depositi dei correntisti. Dunque che cosa fanno le banche con il resto dei soldi? che cosa succede a quel 90% (o più) che possono utilizzare a loro piacere? Beh lo prestano a copertura di altri investimenti, speculano su titoli azionari, li investono in altri asset, vedi la crisi dei mutui Subprime americani del 2008, ossia prestiti ad alto rischio finanziario erogati dagli istituti di credito in favore di clienti a forte rischio debitorio (insolvenza), dunque facenti parte di un fenomeno tipico di eccessiva speculazione finanziaria.

Conclusione

Nella speranza di essere stato in grado di farvi capire quale straordinario mondo ruota ai mille aspetti toccati da Bitcoin, nel prossimo articolo affronteremo tra gli altri argomenti le differenze sulle tematiche finanziarie tra economisti keynesiani e la scuola austriaca.

FileSystem Decentralizzato – IPFS

Per chi ancora non conosce il progetto IPFS (creato all’interno del MIT di Boston), posso cominciare dando la definizione riportata sulla pagina Wikipedia, ossia che: L’InterPlanetary File System (IPFS) è un protocollo di comunicazione e una rete peer-to-peer per l’archiviazione e la condivisione di dati in un file system distribuito.

IPFS basa il suo funzionamento sull’utilizzo di molteplici tecnologie, racchiudendo in se le più moderne idee alla base di precedenti sistemi peer-to-peer, inclusi DHT, BitTorrent, Git e SFS.

Bene, dopo questa introduzione dobbiamo capire cosa si può già realmente fare con IPFS, poichè essendo un progetto in forte sviluppo, sono già parecchi gli usi pratici su cui potremo inserire IPFS in un nostro progetto.

Ma quella definizione di “Sistema Interplanetario per la gestione dei dati” potrebbe forse farvi comprendere la vicinanza di questo progetto con la blockchain. Infatti quando è nata la tecnologia della Blockchain, il Bitcoin aveva lo scopo di far usare la blockchain per espandere la libertà finanziaria a tutti coloro che avrebbero usato quel sistema. IPFS vuole portare ulteriormente avanti il concetto da cui è nata la blockchain, non a caso, per gli sviluppatori del progetto la stessa blockchain non dovrebbe essere vista legata solamente alle transazioni di denaro (immagine che attualmente è stata appiccicata a questa fantastica tecnologia ), ma bensì dovrebbe rappresentare la nuova infrastruttura di Internet.

In pratica, Internet, così come lo conosciamo oggi, non dovrà più essere il sistema a cui noi semplicemente accediamo, e di cui qualcun’altro possiede l’infrastruttura.

Proviamo a fare un esempio che possa essere chiaro per tutti:

Oggi quando cerchiamo Facebook sul motore di Google, stiamo compiendo le seguenti azioni

Chiediamo a Google di cercare Facebook, per poi

Chiedere a Facebook di mostrarci che cosa fanno i nostri contatti

..tutto ciò senza considerare tutti i passaggi intermedi che ci servono per arrivare su Google e successivamente arrivare a Facebook, ad iniziare dalla prima "request" che viene fatta dal nostro device al nostro gestore di connessione, che sia il provider che ci fornisce la linea di casa o l’operatore telefonico che ci fornisce la rete per navigare.

Passaggi nei quali lasciamo in rete un sacco di tracce, dal nostro indirizzo IP, il nostro indirizzo MAC(ossia l’identificatore unico e univoco del nostro dispositivo connesso in rete), la localizzazione geografica della nostra posizione in tempo reale, la versione di Browser che stiamo utilizzando, fino alla stringa di ricerca che vogliamo venga esaudita. Insomma un bel pò di dati per una semplice ricerca.

Consideriamo adesso che tutte le aziende attraverso cui passano i nostri dati di navigazione, possono leggere e dunque sfruttare tutte queste informazioni per capire come ci comportiamo in rete, cosa siamo soliti cercare, se siamo appassionati di viaggi o di informatica, se abbiamo preferenze verso certi prodotti piuttosto che altri, e molto altro ancora, una vera e propria profilazione.

Ma una profilazione non serve solo come agglomerato di dettagli e specifiche di un’ utente, vendute agli inserzionisti per creare una pubblicità su misura per ogni singolo internauta. Una profilazione di questo tipo identifica una specifica persona meglio delle sedute dallo psicanalista, e non serve usare il concetto di coloro che sono soliti dire: "ma io non ho nulla da nascondere", in quanto il concetto di Privacy non nasce per difendere coloro che hanno qualcosa da nascondere. Immaginate di diventare dei VIP e che improvvisamente stuoli di giornalisti e paparazzi si piazzino davanti a casa vostra, cercando di rubare un momento qualunque della vostra vita, fotografandovi ovunque voi siate……, credo che invochereste il diritto di privacy immediatamente, non perchè abbiate qualcosa da nascondere, ma perchè avete una vostra vita da vivere; allora immaginiamo questi "scrutatori" della vostra vita, come costantemente parcheggiati nel vialetto davanti alla vostra stradina per navigare in Internet. Appena vi collegate, per un qualunque motivo, loro sono già li tutti pronti a scattare foto di ogni attimo della vostra navigazione, che sia per lavoro o per svago.

Adesso immaginiamo come potrebbe essere la stessa esperienza se non ci fosse bisogno di "Internet, per accedere ad Internet", questo è quello che stanno cercando di realizzare con IPFS, costruendo un protocollo di navigazione che sostituisca HTTP/S, ormai vecchio, accroccato e che non riesce più a stare al passo con la costante crescita delle innovazioni del WEB. Tenendo anche presente che l’http/s è un protocollo di livello 4, mentre nella pila (ISO/OSI) dei protocolli di rete ci sono ben 7 livelli.

IPFS vuole dunque cambiare il protocollo standard da https:// a ipfs:// , che può sembrare una cosa insignificante, invece tutto questo cambia moltissimo l’uso della rete per ogni utente, perchè con IPFS quando richiediamo un’informazione in rete , non la stiamo più chiedendo ad un insieme di server, sparsi chissà dove nel mondo, e di proprietà di una Big Corporation, ma lo stiamo chiedendo a qualcuno che si trova vicino a noi e che condivide quella informazione, nello spirito dei sistemi peer-to-peer.

Oggi il web è fondamentalmente inefficiente e costoso perché internet costa in ogni suo singolo aspetto, dalla connessione, alle infrastrutture per i servizi che si appoggiano, tutti, troppo, alle infrastrutture GAFA (Google, Amazon, Facebook, Microsoft), di conseguenza, non è possibile immaginare l’attuale Internet come il luogo che preserverà la storia umana.

I vantaggi che si potrebbero trarre dall’utilizzo di IPFS sarebbero molteplici, ad esempio:

• download più veloci ed efficienti: mentre HTTP può scaricare una risorsa da un solo computer alla volta, IPFS pu`o recuperare parti diverse di un file da molteplici computer contemporaneamente;

• un web più robusto: l’architettura di IPFS elimina i server centrali che rappresentano un single point of failure permettendo la creazione di un Web “permanente”. IPFS crea una rete resiliente dove ogni risorsa è sempre disponibile grazie al mirroring dei dati su più nodi;

• resistenza alla censura: mentre può essere molto semplice per un governo bloccare l’accesso a un determinato sito internet ospitato presso un server centralizzato, IPFS crea un Web immune alla censura.

Wikipedia è stato uno dei primi progetti ad essere stato “portato” su IPFS con un progetto che si chiama Distributed Wikipedia.

Dunque come iniziato ad accennare all’inizio dell’articolo, <u>IPFS è un sistema distribuito per l’archiviazione e l’accesso a file, siti Web, applicazioni e dati</u>.

Questo, in soldoni, significa che potrai archiviare qualsiasi tipo di dato/file in IPFS e, dopo averli archiviati, IPFS fornirà un hash che inizia con Qm. Si potrà quindi accedere ai dati usando quell’hash.

HASH

Che cosa sono e quale scopo hanno gli hash ?

L’hash in termini tecnici è noto come Identificatore di contenuto (CID) in IPFS. Il CID è sostanzialmente un’etichetta utilizzata per indicare il contenuto in IPFS, ma non indica dove è archiviato il contenuto. L’hash crittografico del contenuto viene quindi utilizzato per generare CID. L’hash corrisponde a un multihash di caratteri che inizierà con “Qm”. Le lettere “Qm” definiscono l’algoritmo (SHA-256) e la lunghezza (byte 32) utilizzati da IPFS.

Gli hash sono funzioni che accettano input arbitrari e restituiscono un valore di lunghezza fissa. Essi possono essere rappresentati in diverse basi (base2, base16, base32, ecc…).

Caratteristiche degli hash crittografici:

  1. Deterministico
  2. Non correlato
  3. Unico
  4. Senso unico

L’utilizzo dell’hash come chiave per l’identificazione dei file ha inoltre il vantaggio di garantirne l’integrità, poichè, così facendo, il nodo che ha richiesto una risorsa, per assicurarsi che il file ottenuto sia effettivamente quello richiesto e che non abbia subito alcuna alterazione, non dovrà far altro che ricalcolarne l’hash e verificare che questo corrisponda con quello che aveva inizialmente richiesto. Oltre ad aggiungere questa misura di sicurezza gratuitamente, la scelta di utilizzare l’hash come chiave porta un secondo vantaggio, ovvero la deduplicazione dei file: ogni volta che un utente pubblica un nuovo file su IPFS, la rete verifica attraverso il suo hash se questo è già presente, evitando automaticamente che ne vengano mantenute molteplici copie qualora più utenti caricassero la medesima risorsa.

Dal momento che IPFS utilizza l’indirizzamento basato sul contenuto, i file memorizzati su di esso non possono più essere modificati, infatti qualunque aggiornamento al file produrrebbe anche una modifica dell’hash che lo identifica. Per questa ragione IPFS, esattamente come Git, supporta il versioning dei file. Ogni volta che il contenuto di un file viene aggiornato, IPFS crea un oggetto chiamato commit che rappresenta un particolare snapshot nella cronologia delle versioni di un determinato IPFS object. Ogni commit contiene un riferimento al commit precedente e un link alla specifica versione dell’IPFS object (vedi immagine). IPFS tiene traccia in questo modo dell’ultima versione del file e di tutte le versioni precedenti.

SALVARE I DATI

pinning

Ora, una volta spiegato cosa c’è alla base del progetto IPFS, dobbiamo chiarire alcuni punti importanti. IPFS usa lo slogan per cui ciò che SALVI sul sistema rimarrà li per sempre….. SI & NO. La precisazione va ben fatta perchè, facciamo un esempio: Qualche giorno fa abbiamo assistito ad un service-down da parte di Google, che ha precluso l’accesso ai dati personali e lavorativi di milioni di persone, le quali improvvisamente, non riuscivano più ad accedere all’account Gmail, ai dati (privati e di lavoro) su Google Drive etc…. (e la lista è lunga). Pensiamo ai danno provocati da questo “blackout informatico”. Tutto ciò non sarebbe accaduto se i dati a cui noi volevamo attingere fossero stati già salvati su IPFS perchè non dipendono dai servizi e dalle architetture di un’azienda, per grande che sia, ma sono attivi perchè condivisi e replicati da tutti i pc degli utenti che utilizzano questo sistema/protocollo. Quindi se io salvo in rete un documento, questo sarà accessibile fino a quando ci sarà anche solo 1 pc nella rete IPFS in grado di condividermelo. Seppur banalizzato, il concetto è questo ma, non tutto ciò che possiamo caricare su IPFS rimane in eterno, questo perchè non ci serve mantenere ogni cosa, quindi esiste un processo, il PINNING, che ci permette di dire alla rete quali file noi consideriamo IMPORTANTI e vogliamo vengano mantenuti, altrimenti IPFS ha un suo sistema di pulizia della cache per cui, tutto ciò che non è stato “pinnato” verrà svuotato. Un pò come il garbage collector.

PROBLEMA

Chiaramente nessun sistema è perfetto, dunque anche IPFS, seppur abbia ottimi punti di partenza e di futuro sviluppo, ha anch’esso alcuni aspetti problematici da tenere presente, ma così come la Blockchain ha creato i Bitcoin come sistema di INCENTIVAZIONE per poter far crescere l’uso della sua innovazione, così anche IPFS ha dovuto trovare la soluzione per lo stesso dilemma.

Infatti, il problema principale di IPFS è quello di riuscire a mantenere i file sempre disponibili, poichè se un file è condiviso da pochi nodi della rete questo diventerà non disponibile non appena questi nodi andranno offline, esattamente come capita su BitTorrent per i file con pochi seeders. L’unico modo per risolvere questo problema è offrire un incentivo ai nodi per rimanere online quanto più tempo possibile e distribuire così proattivamente i file sulla rete in modo che ci sia sempre un certo numero minimo garantito di nodi, che ne mantenga una copia disponibile.

SOLUZIONE

Per questo gli stessi sviluppatori di IPFS hanno creato il progetto Filecoin, una blockchain basata su IPFS che punta alla creazione di un mercato decentralizzato per lo storage di dati. In questo modo chi offre il proprio spazio di archiviazione per il salvataggio di dati su IPFS è al tempo stesso incentivato economicamente a farlo e a mantenere il proprio nodo online per quanto più tempo possibile. In pratica come Bitcoin per la Blockchain.

Di Filecoin parleremo approfonditamente in un prossimo articolo.

IPNS

L’IPNS, ossia Inter-Planetary Name System è la parte tecnologica di IPFS che possiamo associare a ciò che noi conosciamo sulla internet, basata sul protocollo HTTP, come il servizio DNS, tramite il quale possiamo navigare, grazie alla traduzione da indirizzo-IP basato su numeri, a sequenza ordinata di lettere che compongono gli URL che utilizziamo ogni giorno.

Secondo la documentazione ufficiale di IPFS:

” l’ IPNS è un sistema per la creazione e l’aggiornamento di collegamenti mutabili al contenuto IPFS. Poiché gli oggetti in IPFS sono indirizzati al contenuto, il loro indirizzo cambia ogni volta che il loro contenuto lo fa. È utile per una varietà di cose, ma rende difficile ottenere l’ultima versione di qualcosa.”

Quindi, un nome gestito su IPNS equivale all’hash di una chiave pubblica, ed è associato a un record contenente informazioni sull’hash a cui è collegato, che è firmato dalla chiave privata corrispondente. Chiaramente tutti i nuovi record possono essere firmati e pubblicati in qualsiasi momento.

OGNI COSA HA BISOGNO DEL PROPRIO ATTREZZO

Come ho carcato di spiegare (data la vastità dell’argomento) , IPFS può rendervi indipendenti dall’Internet tradizionale, infatti posso salvalre file, pubblicare un sito ed altro ancora, senza dover usare Google, un DNS, o avere un dominio comprato su un ISP……, già dimenticavo di dire che, così come oggi siamo abitutati a comprare e registrare un dominio per il nostro sito, la stessa cosa la possiamo fare in modo indipendente anche su IPFS, tramite ENS (Ethereum Name Service).

In questo caso possiamo vedere come due tecnologie, simili nei concetti, si possono unire, ed è il caso proprio di IPFS+ENS.

L’ Ethereum Name Service (ENS) è definito come un “sistema di denominazione distribuito, aperto ed estensibile basato sulla blockchain di Ethereum”. Ethereum, per coloro che non lo sapessero, è una piattaforma di contratto intelligente (una blockchain) che vanta un gran numero di applicazioni decentralizzate (dapps), una vivace community di sviluppatori e una dichiarata community di utenti.

ENS è stato progettato per creare un sistema simile al DNS, tuttavia, a causa della diversa architettura decentralizzata di Ethereum, l’ENS varia dalla struttura sfruttata nei sistemi DNS. Tuttavia, proprio come il DNS, l’ENS detiene un record di nomi gerarchici separati da punti chiamati domini, con il proprietario del dominio di primo livello che ha il pieno controllo sui sottodomini.

Ad esempio, se “tizio” possiede il dominio “soldiapalate.eth”, può creare “blog.soldiapalate.eth” e configurarlo come desidera.

Per gli utenti della rete principale di Ethereum, l’ENS semplifica decisamente le cose, inquanto migliora l’usabilità delle dapps restituendo, attraverso la risoluzione inversa, nomi leggibili dall’uomo invece dei lunghi hash di IPFS.

WEB 3.0

Come stavo chiarendo qui sopra, posso essere indipendente da tutto se voglio usare IPFS come sistema di backup/scambio di file ma, cosa succede se voglio usare queste nuove tecnologie per creare un sito web?. Da questi ragionamenti è nato quello che oggi è il web3, che accomuna sistemi decentralizzati come IPFS alle Blockchain, come Ethereum, ma non solo. Infatti, seppur abbiamo chiarito che IPFS funziona, a livello concettuale com Torrent, se i contenuti che voglio condividere sono presenti solo su un computer e quel computer, per qualsiasi motivo, non è disponibile, quei contenuti saranno irragingibili.

Per questo motivo, da qualche tempo per IPFS esistono anche dei servizi di pinning: che ci aiutano a garantire la disponibilità dei nostri contenuti. Tra questi, alcuni nomi sono quelli di Pinata, Infura ed anche il blasonato Cloudflare ha aggiunto tra i suoi servizi quelli di “Gateway Website for IPFS” …… and more.

Il vantaggio del Web 3.0 è che i dati sono distribuiti punto a punto, quindi non è necessario preoccuparsi di perdere i dati se i server sulla rete vengono interrotti. Non è lo stesso di un Web centralizzato, quando il server di accesso viene interrotto, non è possibile accedere al sito Web.

CONCLUSIONE

Per questo primo articolo introduttivo è tutto, nel prossimo inizieremo ad affrontare alcuni casi pratici per vedere come si salvano i dati, li si recuperino in caso di cancellazione, vedremo come attivare un nostro nodo locale e come accedere alla Dashboard di gestione del nodo, e come usare alcuni dei servizi di gateway per velocizzare e gestire il pinning dei dile importanti.

Alla prossima !!

IPFS – Filesystem distribuito

Blockchain dApp DeFi e Decentralizzazione

PREMESSA

Da circa un paio di anni ho riportato la mia attenzione verso il mondo cripto monete e Blockchain. Devo dire che per questioni anagrafiche faccio parte di quelle persone che nel lontano 2009, colti dall’ euforia della novità installarono subito il software per fare mining, quando tutto ruotava dietro al neo nato concetto di Blockchain e l’unica moneta cripto era il Bitcoin.

Non ricordo nemmeno per quante settimane e/o mesi quel pc è rimasto operativo ma, non comprendendo il vero valore della novità tecnologica, dopo un tot di tempo il pc in questione venne dedicato a fare chissà quali altre cose.

 

IL CAMBIAMENTO

Il tempo è passato e le cose sono davvero cambiate, non solo per la nascita delle infinite cripto monete oggi disponibili, ma, almeno per ciò che mi riguarda, il salto è avvenuto nel momento in cui è stato presentato il progetto di Ethereum. Una vera piattaforma innovativa perchè usciva dallo schema del Bitcoin portando al mondo un’idea di operabilità a 360 gradi. Con Ethereum puoi fare mining, puoi fare trading, ma soprattutto puoi investire il tuo tempo e le tue conoscenze per imparare la creazione degli Smart Contract, una seconda grande rivoluzione all’interno del mondo Blockchain.

 

LA NOVITA’

Per non farla troppo lunga, ho ricominciato a studiare ed a sperimentare, da questa curiosità ed da un pizzico di fortuna, è nata pochi mesi fa una collaborazione con il canale Etherevolution e con il team di Shin (Milano) ed il progetto “Impatto Reale“.

Una collaborazione questa che sta accellerando la mia crescita in questo nuovo ambito, portandomi a collaborare con professionisti del settore. A fronte di questa collaborazione che sta man mano crescendo linkerò su questo mio blog gli articoli inerenti il mondo Ethereum/Blockchain che scrivo e scriverò sulla piattaforma di Etherevolution, dunque buona lettura.

Questo è il primo degli articoli gia pubblicati sul canale di Ethereum

Ethereum: tutto pronto per la l’introduzione della Proof of Stake