NixOS e Nix-Bitcoin due rivoluzioni tecnologiche che si uniscono

Nell’articolo di oggi voglio parlare di Nixos, che non è solo una distribuzione Linux, ma è un sistema diverso di usare Linux e che a mio parere porta alcuni vantaggi estremamente importanti. Nixos è un sistema operativo Linux che ha alcune peculiarità che lo rendono particolarmente differente da ciò che già conosciamo ed usiamo.
Nei sistemi operativi Linux, definiamoli “standard” intendendo quelle versioni che esistono da decenni e che si sono fatte una reputazione, come Debian, Ubuntu, Fedora etc… ,  tendiamo ad avere un sistema operativo nel quale possiamo installare applicazioni usando dei comandi da terminale. Su Linux i packet manager, quindi la parte del sistema dedicata a gestire i pacchetti e le applicazioni, più utilizzati sono Apt, Yum, Pacman etc.
Quindi noi per esempio per installare un’app tenderemo ad utilizzare il comando :

# sudo apt install brave
(comando tipico per tutte le versioni Debian derivate per installare per esempio un browser)

Nixos invece funziona in maniera molto diversa. Infatti c’è un sistema operativo di base inalterabile, modificabile solo e soltanto tramite l’uso dell’utenza amministrativa nota come ROOT, senza la quale non potete andare direttamente ad agire sul sistema, tutto viene svolto dalle utenze normali che invece di passare comandi sulla shell possono dire al sistema che cosa installare tramite l’uso di un file di configurazione testuale. Riassumendo (repetita iuvant) noi non andiamo ad installare direttamente delle app dando dei complicati comandi nel terminale, ma abbiamo un file di testo che viene chiamato configuration.nix ; all’interno di questo file di configurazione andiamo a installare applicazioni, andiamo a personalizzare parti del sistema, installare servizi, eccetera eccetera. Detto questo facciamo una piccola overview di cosa è Nixos e perché si distingue dagli altri sistemi operativi in 3 punti principali:
 

  1. Il punto numero Uno è l’astrazione; abbiamo detto che tutti i pacchetti vengono astratti al posto che utilizzare tantissimi comandi dal terminale li definiamo in un file di configurazione, quindi nel sistema i pacchetti sono gestiti, con un file di linguaggio Nix. Es: vogliamo installare Brave, Tor e Telegram, non dobbiamo dare un sacco di comandi a terminale, ci basta aprire semplicemente il file di configurazione, aggiungere una linea con scritto Tor, una linea con scritto Brave, una linea con scritto Telegram, salvarlo, dire “aggiorna” al sistema e quando questo avrà caricato tutti i pacchetti ci troveremo all’interno del nostro sistema operativo tutte queste applicazioni installate. Il sistema inoltre è riproducibile. Cos’è? Cosa significa questo? Vuol dire che se io ho un computer con Nixos e voglio per esempio copiarlo uno a uno su un altro PC, mi basta copiare il file di configurazione da un PC all’altro, dare il comando per fare il build di un nuovo sistema operativo ed otterremo due sistemi operativi di base che sono, tra virgolette, identici e immutabili.
    [Per chiarezza diciamo, cosa che i più esperti e navigati già avranno capito, che NixOS non ha inventato nulla, sistemi per “clonare” i pacchetti già installati su una macchina anche su altre erano già possibili, ma è stato reso più facile e più fruibile l’uso di un metodo di configurazione esportabile che può assomigliare anche ai concetti di Ansible, che rende la gestione di un sistema Linux più accessibile a tante persone che non amano dover continuamente imparare “linguaggi” di programmazione/configurazione di sistemi, che in questo modo diventano solo un’interfaccia di replicazione velocizzando notevolmente i tempi di installazione e configurazione di una nuova macchina, sia essa fisica o virtuale…].  

    Tutte le personalizzazioni sono dunque integrate all’interno del file di configurazione di Nix. Se io lo copio da un computer all’altro, i due PC diventano praticamente identici, quindi installano gli stessi pacchetti, le stesse personalizzazioni dunque diventa molto facile andare a copiare per esempio il nostro computer sul nostro portatile, sul nostro server. Diventa estremamente più semplice fare due macchine identiche e con le stesse proprietà. Nix supporta gli Atomic Upgrade, per dirlo in parole facili, quando voi aggiornate il vostro sistema operativo non si potrà più bloccare con facilità. In poche parole, può capitare, in generale (capita sempre meno , ma può succedere) che quando si fanno importanti aggiornamenti di sistema o si aggiorna il Kernel del sistema operativo…, questo facendo l’upgrade di interi blocchi di librerie, possa andare in conflitto con parti della gestione hardware (molto spesso si hanno problemi con la gestione dei componenti delle schede video a causa di librerie parzialmente open source o proprietarie) dando come esito finale o che il sistema non riesce ad avviarsi o che non riesca a far partire l’interfaccia grafica, perda il punto di accesso dei permessi dell’utente con cui state cercando di collegarvi etc etc…; con gli aggiornamenti atomici invece se c’è qualsiasi tipo di problema, tipo il computer non si avvia, non parte, si corrompono delle funzioni fondamentali di esso; questo torna automaticamente alla versione precedentemente funzionante.
  2. La parte successiva interessante di NixOS è l’immutabilità. Come detto prima, il sistema non può essere modificato e quindi nemmeno, per esempio, potreste fare dei casini accidentalmente oppure a causa di software malevoli. Tranne nei casi in cui DECIDIATE di operare con l’utente ROOT, il sistema è sempre in protezione, fermo e immutabile. Quindi è molto più difficile fare casini all’interno di esso, sia in maniera involontaria che, per esempio, in maniera malevola.
  1. L’ultima parte su cui ci concentriamo è proprio il pacchetto Nix ossia il packet manager di NixOS, quindi l’equivalente di APT su Debian/Ubuntu, il quale ha delle funzionalità in più rispetto agli altri sistemi operativi, a mio parere, molto interessanti. Nix offre aggiornamenti e rollback atomici, più versioni dell’installazione dei pacchetti, gestione dei pacchetti multiutente e configurazione semplice degli ambienti di compilazione per un pacchetto, indipendentemente dai linguaggi di programmazione e dagli strumenti utilizzati dallo sviluppatore.
    Sotto Nix, i pacchetti sono costruiti da un linguaggio di pacchettizzazione, il linguaggio Nix è progettato per creare e comporre comodamente derivazioni : descrizioni precise di come i contenuti dei file esistenti vengono utilizzati per derivare nuovi file. Questo approccio funzionale alla gestione dei pacchetti garantisce che l’installazione o l’aggiornamento di un pacchetto non possa danneggiare altri pacchetti. Nix ha anche il supporto multiutente, il che implica che gli utenti di sistema normali (o non privilegiati) possono installare i pacchetti in modo sicuro e ogni utente è identificato da un profilo (una raccolta di pacchetti nello store Nix che appare nel PERCORSO dell’utente). Nel caso in cui un utente abbia installato un pacchetto, se un altro utente tenta di installare lo stesso pacchetto, il pacchetto non verrà compilato o scaricato una seconda volta.

In più è possibile eventualmente anche utilizzare software e applicazioni senza doverli direttamente installare. Questo, a mio parere, è un vantaggio comodissimo perché, per esempio, se voi state utilizzando Ubuntu e volete provare Electrum, perché non l’avete mai utilizzato, su NixOS potete semplicemente testare, utilizzare un software in maniera temporanea. Quindi lo provo, sia che mi piaccia, non mi piaccia, una volta che chiudo la shell, chiudo il programma, è tutto scomparso. Utilissimo per, per esempio, scoprire un software che non funziona. Invece se dovete utilizzare software che utilizzate soltanto occasionalmente, tipo, non so, balena Hatcher per creare chiavette, un wallet Bitcoin, non dovete per forza tenere tutto installato sul PC, potete anche avviare un programma una sola volta e nel momento in cui lo chiudete tutto dimenticato, tutto pulito. 

NIX-BITCOIN

(https://github.com/fort-nix/nix-bitcoin)
Alcuni sviluppatori di Bitcoin Core, esperti di sicurezza privacy e conoscenze in ambito bitcoin hanno sviluppato questo pacchetto per nixos che si chiama nix-bitcoin ; nix-bitcoin è dunque una raccolta di pacchetti Nix e moduli NixOS per installare facilmente nodi Bitcoin completi, con particolare attenzione alla sicurezza.

nix-bitcoin può essere utilizzato per portafogli personali o commerciali, per infrastrutture pubbliche o per backend di applicazioni Bitcoin. In tutti i casi, l’obiettivo è quello di fornire sicurezza e privacy per impostazione predefinita. Tuttavia, sebbene nix-bitcoin sia oggi già utilizzato in produzione, è ancora considerato sperimentale.

I nodi nix-bitcoin possono essere distribuiti su hardware dedicato, macchine virtuali o container. I pacchetti Nix e i moduli NixOS possono essere utilizzati indipendentemente e combinati liberamente.

nix-bitcoin è costruito sulla base del linguaggio Nix e NixOS, che forniscono potenti astrazioni per mantenerlo altamente personalizzabile e manutenibile. Ne sono testimonianza le robuste funzioni di sicurezza di nix-bitcoin e il suo potente framework di test; inoltre l’esecuzione di nix-bitcoin non richiede alcuna esperienza precedente con l’ecosistema Nix.

Considerando dunque in fine tutti punti trattati a favore di NixOS + NixBitcoin, vale certamente la pena per chi è sempre interessato a nuove possibilità e funzioni di accrescimento delle proprie libertà lavorative e tecnologiche, di fare almeno un test, uno studio a riguardo, per cercare di comprendere i tanti vantaggi che un sistema come NixOS ed il suo linguaggio di programmazione/configurazione, possono dare al miglioramento del tempo di lavoro, sicurezza e scalabilità dei sistemi.

High Performance Computing (HPC)- tornare ad investire sull’Edge Computing

OK, con questa dichiarazione si capirà che sono un sistemista di vecchia scuola, per l’appunto ho iniziato ad occuparmi di sistemi HPC/Cluster nei primi anni 2000 ed ho realizzato il mio primo importante sistema Cluste HPC nel lontano 2004, da quel momento ho lavorato nello stesso ambito per grosse aziende in ambiti bancario, assicurativo, editoria, pubblica amministrazione etc…… ; ho potuto dunque analizzare per esperienza diretta che quello che legava tutti questi ambienti, che si stavano aprendo al mondo dell’offerta di servizi web online per i loro clienti (outsourcing), era la “ovvia” gestione in loco (on premise) dei dati aziendali, nonostante questo comportasse un forte investimento in hardware/network e sviluppo del software. Tutto ciò permetteva di tenere sotto controllo l’andamento dei progetti perchè per far funzionare tutti quegli avanzamenti tecnologici serviva far crescere anche il livello di preparazione tecnologica del proprio personale IT, seppur con le dovute integrazioni esterne di consulenti ad hoc, atti a portare uno slancio alla realizzazione finale del prodotto.

Dunque in un’azienda servivano un tot persone skillate in vari ambiti che procedessero di pari passo nel far avanzare il progetto fungendo anche da beta tester per i colleghi degli altri team, team solitamente suddivisi in:

  • Sistemisti
  • Database Administrator
  • Networking
  • Sviluppo (developer)
  • Cyber Security

Ogni gruppo testava se stesso e faceva da tester per gli altri così da arrivare , step by step, ai vari rilasci di pre-produzione e produzione, diminuendo, a mio avviso, di gran lunga il Bug da errore umano.

Credo che tutto ciò abbia funzionato piuttosto bene, in una specie di “status quo” fino all’arrivo della crisi del 2008 ed in particolare degli strascichi sui budget i cui effetti si sono visti negli anni subito successivi, nel frattempo il maggior sviluppo di piattaforme Cloud proposte dai Big come Gloogle Cloud ed Amazon AWS (in particolare) hanno portato alla decisione sempre più massiccia dei Manager di esternalizzare tutti i processi verso queste piattaforme per massimizzare gli sforzi nello sviluppo (programmazione) dei servizi eliminando dai budget le spese hardware, quelle per le location da dedicare alla ridondanza dei dati ed ai sistemi di backup integrati. Tutto questo ora era possibile pagarlo in un forfait di servizi on chain offerti dalle piattaforme Web-Cloud che hanno invaso il campo di gioco con acronimi di ogni genere, tra cui i primi furono le PaaS, SaaS, IaaS, CaaS, DaaS etc…. (solo la fantasia li può fermare) tagliando così anche le competenze dirette dei team poichè adesso le piattaforme web, la loro gestione, il mantenimento software, gli aggiornamenti, i backup, le problematiche di rete, i DNS, le connessioni VPN, la sicurezza e quant’altro potevano essere preoccupazione ed appannaggio di altri.

Tutto ciò per me ha solo impoverito il nucleo di esperti IT, smembrando i suddetti team e generando nuovi mostri poichè le aziende diventarono prede di “metodologie” di lavoro in stile Silicon Valley (ma ehi la verità è che funzionano solo in Silicon Valley) come la Agile, è da li sono partiti inglesismi lavorativi come lo “stand up meeting”, il “parking lot”, arrivando oggi all’uso di Framework per supportare l’Agile come lo “Scrum” che ha introdotto la figura dello “scrum master” e via di questo passo.
Ma quello che si è potuto vedere è che mentre prima i Team IT aziendali necessitavano di specifiche competenze , adesso posson bastare come capo progetto uno sviluppatore Senior con conoscenze da sistemista o un sistemista con conoscenze di programmazione per mandare avantiil 70% dei progetti perchè il resto lo prepara la piattaforma Cloud che ti aiuta a gestirlo con comodi tool grafici Plug ‘n Play e se qualcosa non funziona c’è il blog/tutorial o il call center…….. semplice giusto?

Certo qualcuno potrà giustamente dire che così è tutto più mirato, perchè no più comodo, e le aziende possono essere più verticali sullo sviluppo e sul risultato finale, FORSE, ma se devo cedere capacità cognitive, conoscenza dei sistemi e competenze di problem solving solo perchè è più pratico allora forse sto sbagliando mestiere. Non parliamo poi del nuovo arrivato, la A.I. , con ChatGPT e compagnia bella… quella unita ai movimenti No-Code, non fanno ben sperare per una futura esistenza delle ultime figure rimaste (gli sviluppatori) che credo si dovranno preparare a periodi di transizione poco rosei.

Il futuro non lo si può arrestare, arriva comunque dunque è giusto imparare a conoscerlo per capire come e quali cose sono vantaggiose da utilizzare, e che cosa invece determinerà la perdita di competenze apprese con fatica, studio ed esperienza lavorativa. Si potrebbe fare qualcosa per riprendere un minimo il controllo? Credo di SI, innanzitutto diminuendo la dipendenza dai sistemi Cloud esterni e tornando a volersi sporcare le mani in casa, quindi spazio alla rinascita dei data center aziendali costruiti su misura dei progetti reali ed implementati dalle persone che li gestiranno e li faranno crescere e scalare nel tempo, quindi riprendiamoci il controllo dei dati, in primis, e dei sistemi con loro, più sistemi on premise e Edge Computing e meno esternalizzazione con il Cloud Computing.

Vantaggi dell’ Edge Computing

L’edge computing è preferibile al cloud computing in molte situazioni e per diversi motivi chiave, tra cui sicurezza, controllo dei dati e velocità di elaborazione dei dati.

  1. Sicurezza: Nell’edge computing, i dati sono elaborati più vicino alla loro origine, riducendo il rischio di esposizione a minacce esterne. Questo approccio migliora la sicurezza dei dati sensibili.
  2. Controllo dei Dati: Con l’edge computing, le organizzazioni mantengono un maggiore controllo sui propri dati. I dati rimangono locali o in prossimità dei dispositivi, consentendo un controllo diretto sull’accesso e sulla gestione.
  3. Velocità nell’Elaborazione dei Dati: Poiché i dati vengono elaborati localmente nell’edge computing, la latenza è ridotta al minimo. Questo è fondamentale per applicazioni in tempo reale, come il monitoraggio industriale o i molti sistemi di monitoraggio delle città moderne (IoT), dove ogni millisecondo conta.
  4. Risparmio di Banda: Elaborare i dati in loco riduce la necessità di trasferire grandi quantità di dati in cloud, risparmiando banda e costi associati.
  5. Affidabilità: L’edge computing migliora l’affidabilità delle applicazioni. In caso di interruzione della connettività cloud, i dispositivi edge possono continuare a funzionare autonomamente.
  6. Scalabilità: L’edge computing è altamente scalabile. È possibile aggiungere dispositivi edge in modo modulare per gestire carichi di lavoro crescenti.
  7. Privacy: Per alcune applicazioni, come il monitoraggio della salute in tempo reale, la privacy dei dati è essenziale. L’edge computing mantiene i dati locali, riducendo le preoccupazioni sulla privacy.

In sintesi, l’edge computing è una soluzione vantaggiosa per applicazioni che richiedono velocità, sicurezza e controllo dei dati. Tuttavia, è importante notare che non esclude completamente il cloud computing, ma piuttosto lo integra in un modello ibrido per massimizzare i benefici.

Svantaggi dell’uso del Cloud Computing

  1. Aumento della Latenza: Nel Cloud, i dati devono viaggiare attraverso una rete molto estesa fino ai server remoti, causando ritardi (latenza) nell’elaborazione. Nel modello di Edge Computing, la distribuzione delle risorse di elaborazione avviene all’edge della rete, vicino ai dispositivi o ai sensori. Ciò elimina la necessità di trasmettere dati su lunghe distanze ai server remoti del Cloud, riducendo significativamente la latenza. Questa bassa latenza è essenziale per applicazioni in tempo reale come il controllo industriale, la guida autonoma e la realtà virtuale, migliorando notevolmente l’efficienza e la reattività dei sistemi.
  2. Dipendenza dalla Connessione Internet: Il Cloud richiede una connessione Internet costante, mentre l’Edge Computing funziona anche offline, garantendo continuità operativa.
  3. Controllo sull’Infrastruttura: Nel Cloud, hai meno controllo sull’infrastruttura sottostante, poiché è gestita dal provider. Con l’Edge Computing, hai maggiore controllo su hardware e sul software.
  4. Sicurezza e Privacy: Il Cloud può presentare rischi di sicurezza dovuti alla memorizzazione dei dati su server remoti. L’Edge Computing può offrire un maggiore controllo sulla sicurezza, poiché i dati rimangono locali.
  5. Costi Operativi: Il mantenimento di server remoti nel Cloud può comportare costi operativi elevati, mentre l’Edge Computing può essere più economico in particolare per piccole implementazioni locali.
  6. Complessità della Gestione: La gestione di ambienti Cloud complessi può richiedere competenze specializzate, mentre l’Edge Computing può essere più semplice da gestire localmente.

Certo tutto questo può essere solo un parere soggettivo determinato dalle mie personali esperienze lavorative, per altre persone potrà essere l’esatto contrario, rimango comunque dell’avviso che ciò di cui ho parlato descrive, in un paragone calzante, le stesse problematiche che il mondo sta affrontando per l’eccessiva deindustrializzazione dell’occidente che ha deciso decenni addietro di esternalizzare i processi produttivi sull’onda del concetto di “globalizzazione”, per il quale si è arrivati oggi ad essere dipendenti dei nostri fornitori (vedi la Cina solo per fare l’esempio più lampante) senza i quali non potremmo assemblare un PC o un telefonino, produrre abbastanza energia elettrica etc….

Alla fine un’azienda non è così diversa da uno Stato, lo Stato per essere definibile come tale deve avere un popolo che lo contraddistingue ed un territorio su cui esercita la sua sovranità; un’azienda necessità di proprio personale che apporta lavoro ed intelletto, che crea e genera idee da cui scaturiscono know-how e magari anche brevetti e deve essere la proprietaria di tutto ciò che produce e/o trasforma, altrimenti per entrambi i casi parliamo solo di “Colonie”.

Crisi delle Banche ed effetto Cantillon ai giorni nostri

In questo ultimo periodo di Marzo 2023 stiamo assistendo ad un escalation di situazioni di crisi generalizzata in molte banche, tra cui banche sistemiche (una banca sistemica è un’istituzione finanziaria che, a causa delle sue grandi dimensioni e importanza nel mercato, la sua caduta o scomparsa avrebbe un impatto negativo significativo su un paese o addirittura sul pianeta), che “improvvisamente” perdono il controllo dei loro asset finanziari e si scoprono insolventi verso i propri creditori e clienti.

Tempo addietro anche l’attuale presidente della Banca Centrale Europea (Christine Lagarde) si era detta sorpresa dell’improvviso arrivo dell’inflazione……. davvero??

Best John Travolta GIFs  Gfycat

Certamente l’inflazione ha dei suoi cicli di Up & Down ma non arrivano a ciel sereno come una gelata improvvisa di fine Febbraio, semmai sono movimenti finanziari dettati e gestiti proprio dalla Finanza, dalle Banche e dalle loro decisioni di immettere flussi di nuovo contante nel mercato finanziario, che solo successivamente ed in minor flusso arriva anche come denaro contante nelle tasche delle persone comuni.

La magia della Moneta FIAT

Il “nuovo mondo monetario” si palesa con l’impossizione del sistema di monete FIAT, introdotto dagli USA nell’Agosto del 1971, tramite il discorso (il Nixon Shock) dell’allora Presidente amerciano Richard Nixon, il quale “SOSPENDEVA TEMPORANEAMENTE” la convertibilità del Dollaro in ORO.

Ma perchè il discorso di un Presidente, seppure quello degli USA cambia l’assetto mondiale dell’economia ? la risposta si trova negli accordi di Bretton Woods.

Nel 1944 a Bretton Woods, nel New Hampshire, vengono messe le basi del nuovo regolamento del “Gold Exchange Standard“, poichè con i blocchi geopolitici ad Est chiusi e filtrati dalla Cortina di Ferro, la Guerra Fredda ed altre divisioni, il mondo ad Est di Berlino si veniva a trovare staccato dal mondo Occidentale guidato a quel punto dagli USA che imposero al mercato la dollarizzazione. Tramite gli accordi di Bretton Woods dunque la valuta di riferimento degli scambi commerciali occidentali diventava il Dollaro, le altre valute erano legate al dollaro da un sistema di cambi fissi e il dollaro stesso poteva essere emesso in base alle riserve auree disponibili. Solo il dollaro, dunque, poteva essere convertito in oro e solo le banche centrali potevano compiere questa operazione, tutte le altre monete delle altre nazioni che aderirono agli accordi potevano essere convertite in dollari.

FINE del Gold Standard

Con questo nuovo assetto finanziario occidentale veniva “temporaneamente” stoppato il sistema che usava l’ORO come valuta di riferimento generando in pratica una nuova Storia monetaria.

Basta pensare a quello che fino a quel 15 Agosto 1971 aveva rappresentato per migliaia di anni la gestione monetaria associata all’estrazione, lavorazione e scambio/circolazione dell’oro.

Ed infatti se ci soffermiamo a dare un’occhiata al corso della storia, in ogni società l’oro ha sempre svolto un’importante funzione monetaria, tanto da rappresentare la riserva di valore per eccellenza.

L’oro infatti è stato a tutti gli effetti moneta, con le funzioni di:

  • Unità di conto
  • Mezzo di scambio
  • Riserva di valore

Ma il Gold Standard aveva già ricevuto alcuni primi scossoni ad inizio ‘900, infatti il primo momento negativo per l’oro lo si ebbe nel 1914, con lo scoppio della Prima Guerra Mondiale, in cui le nazioni coinvolte necessitavano di denaro e di poter contrarre debito velocemente , fu così che governi e banche iniziarono ad emettere mezzi fiduciari superiori, in valore nominale, alla reale quantità di oro detenuta nelle riserve. Tutto ciò per il semplice fatto che, mentre il metallo prezioso costituiva una forma di denaro rigida, determinatà dalla quantità e dalla scarsità, gli strumenti cartacei, usati per regolare i pagamenti tra banche centrali, seppur nominalmente riscattabili in oro, divennero più facili da produrre in grandi quantità facendo così perdere il rapporto del valore con il sottostante aureo.

Il secondo scossone è avvenuto nel 1933 quando il Presidente americano Frankiln Delano Roosevelt fece emanare ” l’ordine esecutivo 6102 “, il giorno 5 Aprile, in cui si PROIBIVA il possesso di Oro (in ogni sua forma: monete, lingotti e certificati aurei) da parte di qualsiasi individuo, associazione o società residente negli Stati Uniti d’America.

Dunque possiamo affermare che il XX secolo ebbe un inizio difficile per la Libertà economica delle persone le quali si videro, in più momenti storici, forzatamente costrette ad un cambio di gestione commerciale e monetaria come mai era accaduto prima in migliaia di anni, con i governi impegnati a sottrarre dai propri cittadini il controllo sull’oro, attraverso l’invenzione della moderna istituzione della Banca Centrale, istituita sulle fondamenta del Gold Standard. Una su tutte è sicuramente la FED (Federal Reserve System) istituita il 23 Dicembre del 1913 , i cui scopi iniziali e futuri sono meglio comprensibili leggendo il libro “The Creature from Jekyll Island: A Second Look at the Federal Reserve

Con la creazione e proliferazoine degli isituti bancari centrali, come la FED, col tempo tutto il denaro cartaceo e quello scritturale creato dalle banche venne di fatto monetizzato in sostituzione dell’oro. In questa nuova modalità la gestione di una banca forniva ai governi la possibilità di creare dal nulla nuovo denaro, il nuovo controllo dell’economia veniva quindi fornito grazie al controllo del settore bancario, da realizzarsi tramite le banche centrali.

Nota: la Moneta Scritturale

> La moneta scritturale è una moneta non materiale usata come strumento di pagamento data l’esistenza di un deposito o un rapporto creditizio bancario. Come anche riportato nell’articolo “La storia dell’Euro” della RAI Italiana, l’Euro, nel periodo storico compreso tra il 1º gennaio 1999 ed il 31 Dicembre 2001, in cui non erano ancora in circolazione le monete e le banconote, fu una moneta scritturale: era infatti possibile aprire conti in euro presso le banche ed effettuare, sempre tramite le banche, trasferimenti di denaro in euro, ma non erano consentite altre forme di pagamento in euro che richiedessero l’utilizzo di denaro contante.

Erosione del potere di acquisto

Accordi di Bretton Woods e fine del Gold Standard……, quindi in quale momento economico ci troviamo oggi?

E’ innegabile a questo punto che Il mondo si è avventurato in un sistema monetario che vede soltanto le valute FIAT. Questa situazione, come accennato poco sopra, non ha precedenti storici e dunque nessuno può sapere quale sarà il risultato finale, anche se il suo mal funzionamento è sotto gli occhi di tutti coloro che lo vogliono vedere.

Per comprendere quali sono i potenziali risvolti di tale situazione è necessario evidenziare due dati di fatto:

  • Con un sistema di valute 100% FIAT le banche centrali possono creare la quantità di valuta che desiderano, potenzialmente illimitata
  • Storicamente, nessuna valuta FIAT è mai stata in grado di preservare il suo valore

Questi due aspetti si pongono come un problema per il risparmiatore o per chiunque intenda preservare il potere di acquisto del proprio denaro, anche in vista di trasmissione alle generazioni future.

Ciò rende praticamente impossibile risparmiare accantonando del denaro sotto forma di valuta FIAT. Ecco qui di seguito un esempio pratico con il dollaro statunitense:

Nell’arco di 100 anni, la progressiva espansione della quantità di dollari in circolazione ha portato il valore del dollaro a ridursi del 95%.

Oggi gli interventi delle banche centrali (vedi la FED e la BCE) nell’economia reale ha fatto si che nel giro degli ultimi 15/20 anni, la base monetaria creata e fatta circolare è quintuplicata.

L’assenza di un limite alla creazione di valuta ha portato alla creazione di un’economia di debito spalmata su tutti i soggetti economici che siano essi operatori di banca, consumatori, imprese o stati nazionali.

Li dove qualche assennato economista aveva messo dei paletti, onde evitare l’eccesso di dipendenza degli stati dalla centralizzazione del debito, altri hanno ben deciso di eliminare queste limitazioni, mi riferisco allo statuto della BCE che, secondo gli accordi di Maastricht : ” La BCE non può acquistare bond, lo vietano i trattati di Maastricht “.

Questo punto importante di comportamento della BCE è stato vanificato dalle politiche al massacro dell’ex presidente della BCE Mario Draghi, il quale lanciando il famoso sistema del Quantitative Easing che permesso alla banca centrale di acquistare determinati importi di obbligazioni governative e altri tipi di attività finanziarie allo scopo di aumentare i livelli di liquidità, questo ha fatto si che la BCE è diventata creditrice degli stati che aiuta, ad oggi per esempio, la BCE possiede il 30% del debito pubblico italiano.

Ma cosa succede ad uno stato che, persa la propria gestione della moneta si ritrova con una banca centrale che, distorcendo totalmente il mercato, gli propone prestiti facili con tassi di interesse a propria scelta, seppur quello stato sia riconosciuto come cativo pagatore (vedi i PIGS) ??. Succede che lo stato accetta il nuovo prestito a debito a fronte del tasso di interessi basso proposto dalla banca centrale generando però internamente un disincentivo, nello specifico verso la classe politica, la quale a quel punto non ha più nessuno stimolo o interesse nel far funzionare le cose ed a far quadrare i conti, si perde così totalmente il senso di “Accountability“, ossia quel processo con cui (a livello sociale, politico, aziendale, contabile o comunque collettivo) si è chiamati a rendere conto delle conseguenze delle proprie azioni, tanto c’è la banca centrale che in qualità di “salvatore di ultima istanza” comprerà il debito e fonirà comunque liquidità.

Se questo non dovesse bastare, il danno economico più vicino e diretto verso i cittadini è certamente la riserva frazionaria.

Esempio di attività bancaria di riserva frazionaria

> Marco si reca in banca, apre un conto e deposita 100 euro. Grazie al sistema bancario di riserva frazionaria, la banca può ora prestare 97 euro del denaro di Marco, mantenendo solo il 3% di riserva. Luca, un altro cliente della banca, è interessato a un prestito, ottiene 97 euro per rimborsare una scommessa che ha perso con Sara. Sara prende i 97 euro e li mette sul proprio conto nella propria banca. > > Ora la banca di Sara può prestare 94,09 euro – alla prossima persona che avrà bisogno di un prestito, Lina, e così via. Alla fine dei conti avremo Marco con 100 euro sul suo conto, Sara con 94 euro sul suo conto e Lina con 94 euro in tasca, per un totale di 385 euro nella nostra piccola economia di esempio. Ma in realtà ci sono solo 100 euro.

Tutto ciò vale per le banche commerciali ma per le Banche Centrali il gioco è ancora più facile in quanto sono esse stesse a stampare dal nulla la valuta dunque non hanno neppure bisogno di avere un deposito pre-esistente prima della richiesta del prestito. Sarà il prestito stesso ad essere la moneta, ovviamente moneta-debito. Il prestito crea il denaro o in altri termini:

"IL PRESTITO CREA IL DEPOSITO"

Nota: la riserva frazionaria al 3% attuale è solo per il mercato europeo poichè negli USA, dopo il periodo pandemico e l’uso dell’ Helicopter Money, ad oggi è pari allo ZERO%

Ad ogni passaggio di questo sistema la cifra prestata dalla banca aumenta quando comunque come corrispettivo sottostante rimangono sempre e solo i 100€ depositati di cui la banca non è neppure la proprietaria (o forse lo è?) poichè quei 100€ non fanno parte del patrimonio della banca, dunque dov’è il rischio d’impresa?

Già ma ci stavamo chiedendo….. quando verso o deposito dei soldi in banca, rimangono soldi miei ? In realtà NO, quei soldi diventano di proprietà della banca, secondo l’articolo 1843 del Codice Civile che 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“. ]]

Male o forse anche malissimo, quindi i miei soldi diventano della banca che li investe come meglio crede, quindi facendo speculazioni in borsa, prestandoli magari a persone che non potranno ripagare il debito (vedi la crisi dei mutui subprime del 2008) etc… Certo io posso rientrarne in possesso, sempre che quando serviranno a me questi soldi saranno effettivamente presenti in banca perchè come abbiamo appena visto con la riserva frazionaria, tra il 3% e lo ZERO% cosa succede quando escono notizie di problemi creditizi delle banche? la tipica Bank Run e così tutti corriamo a recuperare i nostri soldi e scopriamo che non ci sono x tutti, quindi chi prima viene a conoscenza della notizia, prima può accedere ai fondi ancora esistenti e sperare di recuperare il salvabile, gli altri dovranno attendere che la banca venga scorporata e comprata da qualcun’altro per poi, forse un giorno, tramite un salvataggio di stato (con i soldi dei cittadini) accedere a qualche briciola residua.

A questo punto è chiaro che c’è chi può creare denaro dal nulla ed usufruire dei benefici dati dalla posizione predominante (o per meglio dire di maggior vicinanza alla stampante) sui flussi distributivi, come spiega l’effetto Cantillon, applicato al sistema moderno monetario, il quale avanzò la teoriaper cui:

> “il valore dei soldi cambia durante il flusso di distribuzione, chi riceve per primo i soldi avrà un maggiore potere di acquisto rispetto agli altri”

Esemplificando le parole di Cantillon possiamo sfruttare questo esempio:

> Immaginiamo che in uno stato venga scoperta una nuova miniera di oro. > > Quelli che ne beneficeranno subito saranno i proprietari della miniera, le fonderie e tutti coloro che sono direttamente legati alla miniera. Questi otterranno nuove entrate che andranno ad aumentare le loro spese in proporzione ai loro profitti. > > Le loro famiglie, quindi, consumeranno più beni (carne, vino etc..) di prima, si abitueranno ad abiti migliori e a maggiori comfort. Questo darà lavoro a parecchi artigiani che godranno, di riflesso, di maggior benessere andando a loro volta ad aumentare le loro spese e il loro tenore di vita. > > Succederà così che i prezzi inizieranno ad aumentare e le persone che direttamente o indirettamente non sono riusciti a partecipare al banchetto saranno costretti a lasciare lo stato. > > Cosa è successo quindi: > > – I primi che hanno avuto la nuova entrata economica hanno usufruito subito del beneficio non incappando in nessun processo inflazionistico > – Con il passare del tempo il denaro si è distribuito a tutta la popolazione ma al tempo stesso i prezzi continuavano ad aumentare > – Gli ultimi avranno ricevuto la loro parte quando già i prezzi erano alti > – Chi non ha ricevuto nulla è stato costretto ad andarsene

EFFETTO CANTILLON AI GIORNI NOSTRI

Come possiamo tradurre l’effetto Cantillon oggi?

Quello che nell’ottocento era una miniera può essere assimilato ora alla banche centrali che immettono liquidità nel sistema.

Avendo ormai capito che ad ogni immissione di moneta viene generata variazione dei prezzi, possiamo comprendere che l’iniezione di liquidità nel sistema ha un percorso ed un flusso specifico attraverso l’economia tale per cui il primo destinatario si trova in una posizione di vantaggio: quella di spendere moneta extra prima che i prezzi aumentino. L’ultimo della fila riceverà la sua parte di moneta solo dopo che i prezzi saranno già aumentati.

Un esempio calzante di questa teoria applicata al mercato reale è quello di El Salvador, una nazione che fino a poco tempo fa aveva come unica moneta di stato il Dollaro americano USD che non permetteva di attuare una propria politica monetaria, così da poter pagare per programmi sociali o migliorare le proprie infrastrutture.

Rendendo Bitcoin una moneta a corso legale, il governo ha compiuto un passo significativo per dare ai cittadini più libertà e opportunità finanziarie di quante non ne abbiano mai avute prima. Ad esempio, al momento dell’adozione di BTC, circa il 70% dei cittadini del Paese non disponeva di conti bancari. L’esperimento Bitcoin sta migliorando la vita di queste persone, fornendo loro un modo per entrare a far parte della grande economia e creando opportunità per accrescere la loro ricchezza.

El Salvador ha adottato Bitcoin per inaugurare una nuova era di sovranità monetaria, per fornire ai cittadini opportunità finanziarie che non avevano in passato e che probabilmente non avrebbero avuto in futuro.

El Salvador ha compiuto un importantissimo passo avanti, divenendo leader di un movimento che probabilmente si diffonderà presto in molte altre nazioni. Paesi come il Venezuela ed il Guatemala potrebbero presto seguire il percorso tracciato da El Salvador, alla ricerca di soluzioni finanziarie progressiste basate sulla tecnologia blockchain per responsabilizzare i cittadini e introdurre una nuova epoca di indipendenza e crescita economica.

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