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!

Il web3 è sicuro, se sai quello che fai


Mentre ero affacendato nella preparazione del prossimo articolo su Bitcoin, e tutto il mondo che gli ruota attorno, mi sono imbattuto in un post Linkedin che recitava esattamente “Il web3 è sicuro, se sai quello che fai”.

Questo pensiero mi ha intrattenuto in una serie di pensieri articolati che proverò a sciorinare senza esprimere verdetti ma dando, come sempre, il mio parere personale.

Consapevolezza

I progressi tecnologici diventano veramente di massa nel momento in cui l’avanzamento delle nuove tecnologie si evolve talmente tanto da diventare quasi invisibile per cui il loro utilizzo si trasforma in uno standard in nuova gestualità a cui non dobbiamo più pensare. Oggi quasi chiunque ha familiarità con l’account di posta, con l’uso di diversi tool di messaggistica (su pc e smartphone) o anche l’uso di vari sistemi di pagamento tra carte di credito, pagamenti online o anche tramite App su smartphone e smartwatch.

Molta della tecnologia appena descritta fruisce dalle pagine web dei nostri browser che usiamo per comprare su Amazon, per scrivere messaggi su Whatsapp, per sbrigare una commissione amministrativa sui portali delle Regioni magari usando un sistema SPID e molto altro ancora. A tutto ciò che potremmo includere in quelli che sono ad oggi la base portante dei servizi web online su quello che viene chiamato WEB 2.0 si sono aggiunti e continuano ad aggiungersi nuovi servizi con nuove modalità che sono quelli che appartengono alla galassia del WEB 3.0, tra i quali spiccano certamente in pole-position le crypto, gli nft ed i metaversi.

Ma in molti servizi giornalistici/TG continuano a comparire i rischi di frode dati dalla poca conoscenza delle metodologie migliori per gestire i propri dati personali durante l’uso dei servizi online, per cui filoni come il Phishing sono ancora oggi una delle minacce più importanti per le frodi online, frodi che spaziano dal furto di identità online da rivendere nel DarkWeb fino al furto di username/password per l’accesso a servizi bancari, carte di credito e quant’altro.

Dunque sarebbe logico affermare che ci troviamo ancora in una fase di “studio” da parte della CriticalMass nell’imparare i metodi per un uso consapevole dei mezzi informatici, potremmo paragonarci all’inizio del ‘900 in cui l’uso dell’automobile iniziava a diffondersi ma ancora non esistevano molti sistemi di verifica e controllo per un uso intelligente e consapevole da parte dei neo possessori dell’auto, mancanza di segnaletica stradale, mancanza di semafori per un controllo dei flussi di marcia, mancanza dei sistemi di sicurezza e di divisione stradale tra il flusso dei pedoni e quello dei mezzi a 4 ruote etc…. In tutto ciò stiamo gia vivendo l’affiancamento delle tecnologie appartenenti al WEB 3.0 che porta con se sia la necessità di una maggiore conoscenza e consapevolezza da parte dell’utente ma anche di chi sta creando le nuove applicazioni. Infatti potremmo dire che mai come oggi i TEST ed il DEBUG delle Applicazioni web sono di vitale importanza.

I test sono una parte importante di qualsiasi progetto di sviluppo software, ma si sono rivelati particolarmente cruciali per il successo dei progetti Web3. Mentre con le app Web2 si possono verificare registrazioni errate o pagamenti falliti, i bug introdotti nello sviluppo delle app Web3 possono consentire agli utenti malevoli di sgonfiare il valore di un token coniando token in eccesso, modificare le regole di funzionamento di una DAO o persino congelare in modo permanente i fondi collegati a uno smart contract.

Con i progetti Web2, i bug possono essere risolti con semplici rami di correzione che vengono distribuiti prima che altri dati vengano corrotti o che importanti vendite vadano perse. Questo non è il caso di Web3: i bug in un’applicazione Web3 sono permanenti, poiché qualsiasi smart contract distribuito sulla blockchain è immutabile. Si può trovare una soluzione, ma una volta che il contratto è attivo diventa impossibile implementarla.

Possiamo realisticamente pensare di scrivere codice invulnerabile agli attacchi? L’idea di una sicurezza perfetta, anche nel Web3, è un’aspirazione impossibile ?!. Tuttavia, con test adeguati ed una maggiore conoscenza da parte di tutti gli attori, possiamo ridurre le superfici di attacco per i malintenzionati.

SAFER SMART CONTRACTS

Proverò ora ad introdurre un nuovissimo sistema di TESTING che potrebbe essere di aiuto nella gestione e verifica della stesura degli SmartContracts per Bitcoin, questo strumento si chiama CLARITY.

Clarity porta i contratti intelligenti in Bitcoin usando un linguaggio decidibile (che può essere deciso, cioè risolto, stabilito, determinato), il che significa che si può sapere con certezza dal codice stesso cosa farà il programma. Clarity è interpretato (non compilato) ed il suo codice sorgente è pubblicato sulla blockchain. Clarity offre così agli sviluppatori un modo sicuro per costruire contratti intelligenti complessi per la blockchain più sicura del mondo.

I progetti Clarity vengono creati con Clarinet (clarinet è un runtime di Clarity confezionato come strumento a riga di comando, progettato per facilitare la comprensione, lo sviluppo, il test e la distribuzione dei contratti intelligenti) sono dotati di un framework di test TypeScript integrato. Utilizzando questo framework è possibile distribuire i nostri smart contract su catene di test per eseguire le nostre varie funzioni su di esse. Questo ci permette di simulare funzioni pubbliche e di sola lettura e di verificare come accedono e modificano lo stato della catena.

Conclusioni

Dunque se una maggiore integrazione di sistemi per i test è fondamentale per una buona progettazione Web3, allora conoscere gli strumenti di test migliori è fondamentale per scrivere test ottimi e a copertura totale. Per il momento posso solo consigliare a coloro che sono interessati all’argomento di dare un’occhiata al materiale distribuito sullo spazio Github del progetto:

https://github.com/clarity-lang

L’importanza ed il valore del Web3

Durante la preparazione del secondo articolo su #Bitcoin 1 anno di studio, ho riflettuto su alcune considerazioni che spesso si fanno al volo nel momento in cui si sentono determinate notizie su prossimi fenomeni sociali e/o sconvolgimenti degli assunti modelli di Status quo.

Quasi come una profezia sul futuro, o forse come un monito al cambiamento sociale verso cui ci stanno spingendo, uno dei nuovi mantra più rilevanti lo ha da tempo messo in agenda il World Economic Forum, che già dal lontano 2017 ha iniziato a proporre un messaggio che potremmo tradurre in questa immagine:

Letto velocemente e senza riflettere su quali siano le evidenze della nostra vita quotidiana di Occidentali privilegiati, sembra una forzatura, ma se provassimo ad analizzare insieme ciò che abbiamo attorno, potremo vedere che i semi di questo frutto avvelenato stanno gi crescendo nell’humus della nostra società, una società che, rispetto a quella dei nostri nonni o anche solo dei nostri genitori (intendendo perlomeno i baby boomers, dunque persone nate tra il 1945 ed il 1965), è stata spinta ad un sostanziale distacco dalla condivisione dei problemi della comunità, creando una sorta di noncuranza apatica, che negli ultimi 2 anni si è trasformata in “distanziamento”.

Un cambiamento sociale che nel dopo guerra era sinonimo di mutuo soccorso tra le persone, e che invece oggi ha assunto il ben più lugubre significato di : “…tutto è stato trasformato in intrattenimento e le persone non hanno più voluto preoccuparsi di problemi difficili”, ossia di quei problemi, politici, industriali, economici che sembrano così complicati al punto che finiamo col pensare che “non sono affar nostro” e che, per organizzare e gestire i quali, si debba delegare tutto agli esperti, ai tecnici, agli scienziati (i virologi), gli amministratori delegati, i grandi finanzieri, i media mainstrem, i moralizzatori… “…sapranno ben loro occuparsi di tutto per noi, assicurandoci la felicità”.

Io ho trascorso infanzia e giovinezza tra gli anni 70-80 e le case erano piene di dischi in vinile, musicassette, video cassette, cartucce di video giochi, album fotografici etc……; quindi possedevamo fisicamente le nostre collezioni di arte nelle sue differenti forme.
Ma OGGI ??

  • la Musica la “paghiamo” (non la compriamo) su Spotify;
  • i Film li vediamo in streaming da Netflix, Disney channel etc…..;
  • i Video giochi si stanno spostando su piattaforme di streaming online e a breve sui Metaversi;
  • le Fotografie sono tutte nel cloud tra servizi Social come FB o Instagram che usiamo come store (magazzino) della nostra vita
  • i Documenti li scriviamo, li condividiamo su piattaforme come GoogleDocs;
  • i Progetti sono parcheggiati su piattaforme cloud come Github
  • i Server aziendali sono quasi tutti nel cloud di AWS e simili, tra macchine virtuali senza alcuna identità

e potrei continuare ancora a lungo. Dunque che cosa succede se e quando uno di questi servizi ha problemi di connessione di qualunque genere, e negli ultimissimi anni è capitato un pò a tutti i Big del Cloud di avere delle cadute di servizio improvvise, a volte anche di diverse ore. Abbiamo così visto uffici impossibilitati a gestire i documenti, le fatture, le spedizioni o solo a mandare email , riunioni annullate, disservizi di ogni genere in ambito lavorativo/professionale. E nella vita personale ??, cosa succede se Netflix non funziona o non riesci a rinnovare l’abbonamento? come la ascolti la musica se Spotify ti chiude l’utenza, magari per sbaglio, magari per altri motivi, che fine fa tutto il lavoro di creazione delle tue splendide Playlist?, perso in un attimo, e le foto di una vita ?, le vacanze, il primo giorno di scuola dei figli etc…. cosa accade se Facebook cambia il regolamento delle politiche aziendali e magari!! a causa di quel post in cui hai criticato l’ultima iniziativa del governo vieni segnalato ed il tuo account viene sospeso o cancellato?

Questa lunga premessa era d’obbligo per cercare di farvi entrare nel ragionamento per cui personalmente penso che il Web 2, quello che viviamo ancora oggi, si sia strasformato in un sistema ultra centralizzato in cui pochi attori decidono le sorti dei loro utenti, altro che il motto “il cliente ha sempre ragione”, qui il cliente può solo fare ACCETTA ad ogni aggiornamento di regolamento del Social di turno, oppure finire estromesso dalla sua esistenza virtuale, SI perchè siamo noi, tuenti e creator che creiamo i contenuti dei loro Social ma i padroni di quei contenuti, stranamente, non siamo noi ma sono loro.

Ma come siamo arrivati a questo e perchè nutro la speranza che il web3 possa riportarci ai fasti del web1 ma con in più l’innovazione e l’accento sulla proprietà personale delle informazioni.

L’evoluzione di Internet

WEB 1.

Il web1 , che possiamo inquadrare nel periodo che va, all’incirca, tra il 1990 ed il 2005, riguardava fondamentalmente la nascita e la prolificazione dei protocolli del web aperti, decentralizzati e governati dalle community, certo la comunicazione era unidirezionale ma chiunque poteva aprirsi un sito, un blog e condividere i propri interessi senza censura.

Tutto ciò significava che, inizialmente, le persone o le aziende potevano aumentare la loro presenza su Internet sapendo che le regole del gioco non sarebbero cambiate in seguito. In questa prima fase sono così nati i più importanti soggetti del web quali Yahoo, Google e Amazon.

WEB 2.

Con il web2 (all’incirca 2005-2020) si sono successivamente sviluppati tutta una serie di servizi centralizzati gestiti da società che si sono trasformate in Monopolio del web. La maggior parte del valore è stato acquisito da una manciata di aziende come Google, Apple, Amazon e Facebook, avvantaggiate dalla crescita esplosiva degli smartphone che ha generato la tendenza all’uso delle app, che sono diventate ad oggi la maggior parte dell’uso quotidiano di Internet. Questo ha fatto si che alla fine gli utenti sono migrati dai servizi aperti a questi servizi centralizzati, inizialmente più sofisticati.

Bene ma non BENISSIMO; certamente questo ha fatto si che miliardi di persone abbiano avuto accesso a tecnologie straordinarie, molte delle quali erano gratuite ma, la cattiva notizia è che è diventato molto più difficile per startup, senza appoggio di Venture Capitalist, riuscire ad aumentare la propria presenza su Internet senza preoccuparsi che le piattaforme centralizzate cambiassero le regole su di loro in corso d’opera, portandogli via pubblico e profitti. Di riflesso, anche se potrebbe non sembrare, questo ha soffocato l’innovazione, rendendo Internet meno interessante e dinamico. La CENTRALIZZAZIONE ha anche, in seconda battuta, creato tensioni sociali più ampie, generando un sistema di controllo e censura del web che ritroviamo in concetti come fake news, fact checker , privazione della privacy degli utenti per un bene più alto e tanto altro.

Ci troviamo in questo momento storico all’inizio di un nuovo paradigma, poichè stiamo vivendo la nascita dell’era web3, che combina l’etica decentralizzata e governata dalla community del web1 con le funzionalità avanzate e moderne del web2.

WEB 3.

Il web3 è l’Internet della proprietà e degli utenti, non più delle multi nazionali della Silicon Valley, dove il tutto viene orchestrato attraverso i #token. Innanzitutto, diamo un’occhiata ai problemi delle piattaforme centralizzate.

Le piattaforme centralizzate seguono un ciclo di vita prevedibile e, all’inizio, fanno tutto il possibile per reclutare utenti per formare una community e creatori di contenuti da eleggere ad influencer, cercano il sostegno di grandi Brand così da poter rafforzare il loro effetto e la loro presenza in rete.

Man mano che le piattaforme aumentano la curva di adozione, il loro potere sugli utenti e sulle terze parti cresce costantemente, a tal punto che una volta raggiunta la vetta della curva di crescita/adozione, le loro relazioni con i partecipanti alla rete si azzerano, trasformando i propri partner in competitor: esempi famosi di questo sono Microsoft contro Netscape, Google contro Yelp, Facebook contro Zynga etc, e gli utenti che hanno formato la massa di adozione vengono controllati con sempre più aggiornamenti dei regolamenti della community, che di community a questo punto hanno ben poco visto che non esiste una votazione per la decisione delle modifiche e se vuoi rimanere nel Social puoi solo che cliccare sul campo “accetta”, altrimenti verrai buttato fuori in tempo zero.

Dunque una forma di controllo delle masse basato sul consenso forzato delle “regole della community” ; si arriva così, solo dopo, a capire che che i Social sono solo aziende private con le loro policy aziendali ed i loro interessi commerciali, non sono centri sociali di scambio e divulgazione del pensiero libero democratico.

La Speranza nasce dal fatto che nel web3, la proprietà e il controllo sono decentralizzati, ciò significa che gli utenti possono partecipare attivamente nei progetti, insieme ai costruttori delle nuove piattaforme, possedendo pezzi di servizi Internet tramite il possesso di token, sia non fungibili (NFT) che fungibili (come le criptovalute). I token conferiscono agli utenti dei diritti di proprietà: questi diritti possono riguardare arte, foto, codice, musica, testi, oggetti da gioco, credenziali, diritti di governance, pass di accesso, e, in linea generale, tutto ciò che la gente può immaginare.

BENVENUTI NELLA RIVOLUZIONE DEL WEB 3

Nel prossimo articolo continueremo su questa traccia iniziando a descrivere il mondo del Branding e degli NFT.

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.

RESTIC il backup funzionale e cross platform

INTRODUZIONE

 Restic è un’applicazione per la gestione di backup sia in locale che in cloud, che supporta la crittografazione (AES-256) e la deduplicazione dei dati, riducendo dunque in modo significativo lo spazio necessario per conservare i file bekappati.

Restic è già ad oggi compatibile con la maggior parte dei servizi cloud quali : “OpenStack Swift, bucket Amazon S3, Backblaze B2, Microsoft Azure Blob Storage, Google Cloud”, e sono presenti anche immagini Docker.

Restic è sviluppato in linguaggio GO, cosa che lo rende molto leggero ed efficiente, risolvendo anche molti problemi di gestione di dipendenze.

– INSTALLAZIONE

Esistono molti pacchetti di installazione per la maggior parte dei sistemi operativi, coprendo un range che va da Arch Linux a MacOS, fino ai sistemi *BSD/*NIX……

Per i sistemi più “standard” l’installazione è banale:

– Debian

apt-get install restic

– Fedora

dnf install restic

– MacOS

brew install restic

….. per tutti gli altri sistemi si possono trovare tutte le specifiche sul sito ufficiale di Restic (https://restic.readthedocs.io/en/latest/020_installation.html#stable-releases)

Una volta installato il pacchetto i comandi per l’utilizzo di Restic sono davvero semplici ed immediati.

Prima di tutto va inizializzato lo spazio che si decide di stanziare, dedicare, al backup, ricordandosi che Restic chiama la destinazione per i backup “repository” ( –repo oppure -r ).

Quindi per inizializzare la Directory prescelta per la gestione dei backup possiamo agire in 3 modi diversi:

  • spostarci all’interno della DIR prescelta e dare il comando # restic init
  • indicare il PATH dei backup # restic init –repo /mnt/data/<nome_utente>/backup/
  • indicare un percorso di rete # restic -r sftp:<utente>@<indirizzo_IP>:/mnt/data/<nome_utente>/backup init

– COMANDI PRINCIPALI

  • init
  • backup
  • ls
  • restore
  • snapshots
  • tag
  • copy
  • stats

…….. e molti altri ancora che potete trovare sulla documentazione ufficiale, al sito restic-official-docu

Per poter automatizzare gli accessi ad aree esterne come, altri server, servizi cloud o altro, possiamo usare due metodi diversi;

1) creiamo un file .restic.env nel quale possiamo inserire i dati di accesso (es. ad AWS S3) , aggiungendo la password creata durante la fase di inizializzazione [“init“]

oppure

2) creiamo un file .rest_pass in cui inseriamo soltanto la password 

– ESEMPI

Es. file di tipo ENV ( .restic.env )

#!/bin/bash

export RESTIC_REPOSITORY=” s3:https://s3.amazonaws.com/restic-backup-test

export AWS_SECRET_ACCESS_KEY=”IVZ6GSBXEaZ1DeXzhN1gr4eCWcxD7hhMOt1RWMdn”

export RESTIC_PASSWORD=”<PASSWD>”

Prima di lanciare i comandi per restic, in ambiente Cloud, eseguo il comando:

source .restic.env

per caricare le variabili d’ambiente indicate nel file .restic.env

Es. file di tipo PASSWD ( .rest_pass )

< password >

….quando si decide di usare il file .rest_pass basta indicarlo alla fine della stringa di comando, come ad esempio:

restic -r sftp:<utente>@<indirizzo_IP>:/home/<utente>/backup/database snapshots -p .rest_pass

– Esempi Pratici

INIZIALIZZO UNA DIRECTORY LOCALE

.\restic.exe init –repo C:\Users\User\Desktop\restic-repo

enter password for new repository:

enter password again:

created restic repository 80ee4591fd at C:\Users\User\Desktop\restic-repo

Please note that knowledge of your password is required to access the repository. Losing your password means that your data is irrecoverably lost.

Esegui il BACKUP

.\restic.exe backup -r C:\Users\User\Desktop\restic-repo E:\TEST1.txt
enter password for repository:
repository 80ee4591 opened successfully, password is correct
created new cache in C:\Users\User\AppData\Local\restic

Files: 1 new, 0 changed, 0 unmodified
Dirs: 1 new, 0 changed, 0 unmodified
Added to the repo: 467 B

processed 1 files, 0 B in 0:00
snapshot 0161a85c saved

Vedere la lista degli snapshot effettuati

.\restic.exe snapshots -r C:\Users\User\Desktop\restic-repo
enter password for repository:
repository 80ee4591 opened successfully, password is correct

ID Time Host Tags Paths

0161a85c 2021-08-05 13:08:45 Windows10 E:\TEST1.txt

1 snapshots

Vedere la lista dei files di una snapshot:

.\restic.exe ls -l -r C:\Users\User\Desktop\restic-repo 0161a85c
enter password for repository:
repository 80ee4591 opened successfully, password is correct
snapshot 0161a85c of [E:\TEST1.txt] filtered by [] at 2021-08-05 13:08:45.8317433 +0200 CEST):
drwxrwxrwx 0 0 0 1979-12-31 23:00:00 /E
-rw-rw-rw- 0 0 0 2021-08-05 13:07:20 /E/TEST1.txt

Esegui il Restore

Per effettuare un test reale, ho cancellato il file E:\TEST1.txt

.\restic.exe restore 0161a85c -r C:\Users\User\Desktop\restic-repo –target E:\restore
enter password for repository:
repository 80ee4591 opened successfully, password is correct
restoring to E:\restore

….così facendo ho recuperato la copia di backup facendone il restore sul disco E:\restore

$ ls -l E:\restore

Directory: E:\restore

Mode LastWrite Time Length Name
—- ————- —— —-
d—– 31/12/1979 23:00 0 TEST1.txt

Elimina gli snapshot

.\restic.exe forget –prune 0161a85c -r C:\Users\User\Desktop\restic-repo
enter password for repository:
repository 80ee4591 opened successfully, password is correct
[0:00] 100.00% 1 / 1 files deleted
1 snapshots have been removed, running prune
loading indexes…
loading all snapshots…
finding data that is still in use for 0 snapshots
[0:00] 0 snapshots
searching used packs…
collecting packs for deletion and repacking
[0:00] 100.00% 1 / 1 packs processed

to repack: 0 blobs / 0 B
this removes 0 blobs / 0 B
to delete: 2 blobs / 531 B
total prune: 2 blobs / 531 B
remaining: 0 blobs / 0 B
unused size after prune: 0 B ( of remaining size)

rebuilding index
[0:00] 0 packs processed
deleting obsolete index files
[0:00] 100.00% 1 / 1 files deleted
removing 1 old packs
[0:00] 100.00% 1 / 1 files deleted
done

N.B.: bisogna ricordarsi che, nel caso stessimo agendo sull’eliminazione di un backup/snapshot in ambiente cloud, tipo Amazon Bucket S3, prima del comando di forget –prune bisognerà dare un “restic unlock <ID dello snapshot>

Auto Pulizia

.\restic.exe forget –prune –keep-daily 7 –keep-monthly 12 –keep-yearly 3 -r C:\Users\User\Desktop\restic-repo
enter password for repository:
repository 80ee4591 opened successfully, password is correct
Applying Policy: keep 7 daily, 12 monthly, 3 yearly snapshots

Aggiorna la versione

Prima di tutto verifichiamo quale versione abbiamo al momento:

.\restic.exe version
restic 0.12.0 compiled with go1.15.8 on windows/amd64

oppure

$ restic version
restic 0.12.0 compiled with go1.15.8 on linux/amd64

Sulla macchina ArchLinux la versione è già l’ultima disponibile al momento (5 Agosto 2021) quindi non eseguiremo l’aggiornamento ma, ricordate che in caso di macchine nascoste da un Firewall a cui è vietato fare download di pacchetti si può comunque scaricare su di un’altra macchina l’ultima versione del software dal repository ufficiale su github , scompattarlo e sostituire il nuovo “restic” direttamente in /usr/bin

RESTIC Last Version Binaries Page

Es. :

bunzip2 restic_0.12.0_linux_amd64.bz2

mv restic_0.12.0_linux_amd64.bz2 restic

chmod +x restic

mv restic /usr/bin/

restic self-update

L’invito è quello di leggere la documentazione ufficiale poichè è davvero ricca di esempi, spiegazioni e modi di utilizzare questo fantastico strumento, ultra flessibile e davvero performante.