Ethereum – il consenso e l’arrivo del PoS

PoW vs PoS

Ormai da alcuni anni si sente parlare dell’arrivo “imminente” del Proof of Stake (PoS) su Ethereum e, in effetti, molti, moltissimi tra appassionati di tecnologia, o semplici utilizzatori (trader etc…), stanno aspettando che tutto ciò si verifichi. Forse questa volta ci siamo e, in questa estate, gia molto strana, potrebbe portare il cambiamento che renderebbe il 2020 un’anno davvero da studiare e ristudiare in futuro.

Come sappiamo, “il consenso” è la base del meccanismo della blockchain, ma fino ad oggi, il protocollo che ha fatto funzionare il tutto, è sempre stato il PoW (Proof of Work), molto interessante (all’inizio), quando nei primi tempi ci si poteva avvicinare al mining di Bitcoin, anche solo installando il software ad hoc su di un pc/portatile e provare a capire come fare mining. Tutto questo è svanito piuttosto in fretta quando si è capita l’enorme rivoluzione tecnologica prima, ed economica dopo, che la blockchain ed il mining di Bitcoin avevano regalato al mondo. Ad oggi è possibile trovare video in cui si vedono enormi stabilimenti stracolmi di RIG (computer specifici per portare a compimento i calcoli matematici che servono per il mining, in cui le schede grafiche, le GPU, sono la base portante della potenza e, tra le marche più famose sicuramente c’è la ASICs.) impossibili da avvicinare a causa degli enormi costi di acquisto dei singoli pezzi, in particolare delle GPU e dell’ancor più alto costo di consumo elettrico, necessario a tenere accese queste macchine potenti h24. Non a caso la maggior parte di questi stabilimenti, farm, o come li si voglia chiamare sono stati costruiti in zone del mondo in cui l’elettricità costa poco.

Mining Farm

Bene, tutto ciò sta per cambiare, poichè con l’arrivo del protocollo PoS il sistema di mining, o meglio ancora il sistema di consenso per la costruzione e validazione dei blocchi sarà del tutto diverso, cambiando completamente l’attuale Status quo. Se ti sei incuriosito e vuoi sapere come, ecco qui sotto il link all’articolo completo che ho pubblicato su etherevolution.

Buona lettura

Come raggiungere il consenso PoW vs PoS

Blockchain dApp DeFi e Decentralizzazione

PREMESSA

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

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

 

IL CAMBIAMENTO

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

 

LA NOVITA’

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

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

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

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

Il miracoloso NodeJS

piattaforma Open Source event-driven

NodeJS – una piattaforma Open Source event-driven

Ok, ammetto che fino a non molto tempo fa mi ero quasi scordato di Javascript, nonostante fosse stato uno dei primi linguaggi da me studiati, nel lontano 1997, quando mi approcciai al mondo del web; negli anni successivi pero’, non essendo io uno sviluppatore, le tecnologie di gestione e deploy dei server web che dovevo gestire si erano spostate verso un grande quantitativo di linguaggi, in particolare per la parte back-end , passando cosi dal php, perl, python, java, ruby, lua etc……

Come stavo dicendo, per me javascript era rimasto in sordina come un linguaggio di scripting che intercorreva tra l’hmtl ed il css, nella composizione piu’ o meno dinamica di una pagina web ,prima che i pesi massimi sopra citati entrassero in campo per svolgere il duro lavoro.

Poi, un giorno, a ciel sereno……BOOOOOOOMMMM ! scopro l’esistenza di NodeJS, ed iniziai a chiedermi a cosa si dovesse tutto l’interesse di cui stavo leggendo; scopro quindi che NodeJS e’ una piattaforma Open Source event-driven per l’esecuzione di codice JavaScript Server-side, costruita sul motore V8 di Google Chrome. Mmmmhhhh, ok bene, ma quindi? cosa fa?

Ebbene questa piccola rivoluzione creata da Google consente agli sviluppatori di realizzare web application con JavaScript non più solo lato client, ma anche sfruttandolo come linguaggio di programmazione lato server.

E gli sviluppi sono davvero moltissimi, cosi tanti che mettere un’elenco sarebbe noioso e stancante ma, tanto per farne uno molto odierno, con NodeJS possiamo, ad esempio, realizzare dei ChatBot.

Ma qual’e’ dunque il funzionamento che lo rende cosi appetitoso? Innanzitutto partiamo dal dire che Node funziona con una logica a eventi: quando un evento viene generato, allora viene eseguita un’azione. Grazie a questa tecnica non bisogna attendere che le istruzioni precedenti siano terminate, rendendo cosi il tutto molto veloce.

Nella pratica, non c’e’ bisogno di sapere come funziona il V8 per poter utilizzare NodeJS, basti sapere che e’ l’interprete javascript piu’ veloce al mondo, poiche’ e’ stato altamente ottimizzato utilizzando un tipo di programmazione JIT (Just In Time), che trasforma rapidamente il codice javascript in linguaggio macchina.

Ma la cosa che, almeno a parere personale, mi ha maggiormente colpito, e’ stato quello che possiamo chiamare come “Modello non bloccante” , questo si basa sul concetto degli eventi, ma per meglio chiarire dovremmo spiegare un minimo la differenza tra modello bloccante e NON bloccante.

Immaginiamo di dover creare un programma che ci permetta di scaricare un file da internet e che alla fine dell’esecuzione del download ci mostri un messaggio.

Bene, con il modello classico (bloccante) basato sulla programmazione sincrona potremmo schematizzare il processo nel seguente modo:

  • Scarica il file
  • Mostra il messaggio
  • Fai qualcos’altro

Ci aspetteremmo quindi che le azione vengano eseguite in ordine, leggendo le operazioni da eseguire dall’alto verso il basso.

Nel sistema asincrono di NodeJS invece le operazioni verranno svolte nel seguente modo:

  • Scarica file
  • Fai qualcos’altro
  • Mostra il messaggio

Perche’ questa diversita’ nell’esecuzione rende il tutto piu’ veloce e performante? Beh perche’ mentre il sistema effettua il download del file, il programma non rimane in attesa che il processo venga portato a termine ma anzi nell’attesa il programma esegue altre operazioni.

Il codice in oggetto avra’un aspetto tipo questo:

request(‘http://www.site.com/file.zip’, function (error, response, body) {
console.log(“Download completato!”);
});

console.log(“Mentre aspetto eseguo il resto del codice…”);

Quello appena descritto qui sopra e’ un’esempio di procedura di callback 

Ok ma se non fosse ancora del tutto chiaro, proviamo ancora a spiegare perche’ le callback sono cosi importanti, procediamo con l’esempio di prima ed aggiungiamo una difficolta’; adesso i file da scaricare sono diventati due, dunque nel sistema sincrono il programma procederebbe nel seguente modo:

  • Scarico primo file
  • Attendo che finisca
  • Scarico secondo file
  • Attendo che finisca
  • Mando messaggio

La grande differenza in questo esempio sarebbe che con NodeJS verrebbero lanciati entrambi i download, nello stesso momento, permettendo gia cosi un piu’ veloce download e, nel frattempo il programma e’ in grado di svolgere eventuali altri compiti. Ma questo come dicevo e’ soltanto un esempio, invece di un download multiplo, potrebbero essere delle query ad un DB, o la richiesta di dati a servizi esterni tramite API (Facebook, Twitter).

Pensiamo quindi ad un sistema come Facebook, che riceve X richieste di Like ogni tot secondi e vengono cosi aperti N operatori che devono attendere il loro turno per fare la modifica (del like) consumando comunque energie anche mentre sono fermi in attesa; invece NodeJS nella stessa situazione di richiesta di “reaction” sul sisto di FB (like o altro) si comporterebbe nel seguente modo:

metterebbe tutte le richieste in ordine di arrivo, prenderebbe la prima e, vedendo che si tratta di una sfilza di input le inserirebbe all’interno del sistema e, una volta capito che si tratta di stesse azioni (ad esempio che aggiungono un Like) che devono contattare un DB, NodeJS contatta il DB e invece di attendere per effettuare ogni singola modifica, aggancia alla richiesta una callback, per ogni richiesta di modifica, tutti uno dietro l’altro. Quando il DB finisce la prima modifica scatta la callback e NodeJS restituisce all’utente l’avvenuta modifica della pagina e cosi via, gestendo quindi con un solo operatore le N richieste di modifica del Like invece di crearne uno per ogni richiesta e parcheggiandoli tutti in attesa della loro singola modifica. Quindi con un server (magari anche un container con Docker) e con poche risorse possiamo gestire un’enorme quantita’ di richieste al secondo.

Inoltre NodeJS usa come sistema di pacchetti e librerie l’NPM, ma di questo fantastico sistema di librerie parleremo in un’altro articolo.

Nel prossimo articolo su NodeJS parleremo anche di 5 nuovi framework ottimi per chi si occupa di sviluppare.

#NodeJS

 

Cyber Risk – il Dipendente infedele (la minaccia e’ in azienda)

il dipendente infedele

The Unfaithful Employee – #Cyber Risk

The unfaithful employee

Ormai leggiamo, sentiamo, vediamo speciali alla TV, che hanno come tema l’esponenziale crescita del Cyber Risk da cui derivano attacchi di ogni genere che vanno dalla truffa online, alla compra vendita di carte di credito, all’uso di speciali software/scripts ai Ransomware, che “rapiscono” i nostri device, personali o aziendali per un vero e proprio riscatto, spesso in cripto valute, etc….. e la lista e’ varia come la fantasia delle persone che le studiano.

Oltre ai pericoli sopra citati dobbiamo aggiungerne uno che negli ultimi anni sta evidenziandosi alla stregua dei cosiddetti “attacchi hacker”, questo pericolo e’ il rischio del “dipendente infedele”.
Gia, perche’ se e’ ancora vero che piu’ dell’80% delle spese in ambito security delle aziende e’ ancora improntato verso la “sicurezza del perimetro esterno”, sono sempre piu’ in aumento i casi documentati di violazioni (spesso ad hoc) da parte o con la complicita’ di dipendenti infedeli.

Del resto sono sempre piu’ lontani, o confinati nella cinematografia, gli attacchi del singolo hacker che punta ostinatamente la grande preda (Banche o Assicurazioni, la NASA ed i soliti noti….), mentre nella realta’ ormai siamo tutti collegati a tutti tramite e-mail, social network e cosi anche chi punta “alla balena bianca” passa prima per quelli che, nella migliore delle ipotesi, possono diventare vittime collaterali, ma comunque vittime.
Chi entra nella nostra privacy per poter arrivare ad un bersaglio piu’ importante, colpisce comunque prima noi ed i nostri diritti; questo perche’ non venga mai sottovalutata l’importanza che ormai rivestiamo tutti nei confronti di tutti, un po’ come spiegato anche nel famoso concetto dei 6 gradi di separazione (Six Degrees of Separation).
Basta quindi con l’idea ormai assurda di credere di essere al sicuro, affermando semplicemente: “perche’ dovrebbero colpire proprio me, io non ho nulla da nascondere….” ;
e’ esattamente questo modo di pensare che aiuta chi usa con capacita’ le tecniche di ingegneria sociale e di phishing a perpretare i loro crimini.

In effetti possiamo elencare alcuni punti importanti che possiamo descrivere come sfavorevoli alla lotta al Cyber Risk:

  • apparente e diffusa sensazione di sicurezza – troppe persone pensano che avere un antivirus sul pc ed un Firewall da 2 euro al mese sul cellulare basti alla protezione;
  • sottostimiamo che i danni possono essere pesantissimi – per un privato puo’ essere il trovarsi con il conto bancario svuotato, oppure dover pagare un riscatto x riavere l’accesso alle proprie foto, mentre per le aziende molto spesso e’ la perdita della reputazione e molto altro ancora….
  • il campo di gioco/battaglia e’ il mondo intero – questo e’ uno degli aspetti meno considerati, oggi giorno si puo’ venire attaccati da chiunque, da ogni parte del mondo, ed i motivi che smuovono gli attacchi possono essere i piu’ diversi, non soltanto quelli economici o legati allo spionaggio industriale (che fa molto spy story)
  • il rischio dell’errore umano e’ dietro l’angolo – quotidianamente i nostri software e le nostre app vengono aggiornate, spesso in automatico, perche’ le aziende scoprono (spesso troppo in ritardo) bugs e malfunzionamenti di ogni genere, a volte sono errori di programmazione, altri sono modifiche richieste dal mercato, altri ancora iniettati da dipendenti fraudolenti, o pagati per farlo etc….etc….

Non a caso, anche il mercato assicurativo sta introducendo polizze per il “cyber risk”, studiate per garantire risposte certe e complete a questo rischio in forte ascesa.

Ma torniamo al tema portante di questo articolo e proviamo a definire chi e’ il “dipendente infedele”.
Il dipendente infedele è quel soggetto che essendo all’interno di una azienda, attraverso svariate tecniche tra cui il social engineering e, l’utilizzo dei sistemi e delle tecnologie informatiche, riesce a carpire/rubare informazioni sensibili circa l’azienda stessa e i colleghi di lavoro.

Sbagliamo se pensiamo che per arrivare ad avere informazioni tanto importanti o confidenziali si debba essere per forza parte dell’ingranaggio dei Manager (anch’essi spesso non esenti da questo rischio per via del ruolo chiave che rivestono) , invece tipicamente queste figure, qualora non abbiano privilegi particolari o amministrativi, punteranno ad acquisire informazioni in qualsiasi  modo possibile, tipo rovistando tra le varie scrivanie in cerca di
post-it riportanti utenze e password, accedendo alle postazioni dei colleghi durante la loro assenza oppure introducendosi in aree con accesso restrittivo in cerca di documenti lasciati in vista, effettuando backup dalla rete aziendale interna o di database contenenti progetti in corso o qualsiasi altra informazione che potrebbe tornare utile, salvando il tutto su supporti esterni come chiavette USB e molto altro ancora……

Quali sono le cause

Generalizzando il concetto, potremmo dire che questa figura è solitamente caratterizzata da un forte senso di insoddisfazione verso l’azienda, i titolari o i colleghi.

I dati sottratti illecitamente solitamente vengono utilizzati per i seguenti scopi:

  • vendita delle informazioni ad una azienda concorrente in cambio di un compenso economico oppure di una offerta lavorativa migliore;
  • riutilizzo dei dati sottratti per aprire una società in parallelo spesso violando patti di non concorrenza;
  • estorsione di denaro verso i legittimi proprietari dei dati;
  • modifica/cancellazione di dati, oppure divulgazione senza scopo di lucro al fine di creare un danno economico e di immagine all’azienda.

Questo ci porta ad interrogarci circa la validita’ sul campo di molte delle piu’ comuni tecniche di policy aziendale, ma nel caso si verifichi una fuga di dati verso l’esterno ad opera di un dipendente infedele sara’ importante effettuare delle indagini per far luce sullo scenario accaduto e trattare nel modo più opportuno l’incidente verificatosi, e quale miglior sistema che adottare le tecniche della Digital Forensics ed i tencici specializzati in questa materia.

Questo fenomeno e’ in grande ascesa e le aziende che monitorano lo sviluppo del Cyber Crime, fanno notare come negli ultimi anni nel dark web, gli hacker stanno reclutando e preparando tecnicamanete degli insider con gli strumenti e le conoscenze necessarie a perpetrare attacchi, informatici e non, nei confronti delle loro aziende.

Il rischio del DarkWeb

Il dark web sta facendo leva principalmente su tre fattori predominanti, per creare la propria “armata” di dipendenti infedeli, quali:

  • insider trading: bastera’ dimostrare di poter accedere ad informazioni non disponibili al grande pubblico, per poter essere reclutati;
  • vendita di numeri di carte di credito da parte di insider che lavorano presso negozi di vendita al dettaglio;
  • installazione di malware all’interno delle aziende, eludendo così ogni sistema di sicurezza perimetrale.

Tutti motivi per i quali oggi giorno alle aziende non basta piu’ monitorare soltanto la parte fisica dei propri dati e device ma e’ costretta ad introdurre anche quelli che vengono definiti come “vigilanti del sentiment”, ossia personale preparato ed addestrato a riconoscere non soltanto gli abusi a livello tecnico ma principalmente i “segnali” della possibile infedelta’ , quindi del “sentiment negativo” dei dipendenti verso specifiche figure aziendali o dell’intera azienda, insomma dei veri e propri investigatori.

Anche in questo caso potremmo dettagliare con tre punti chiave, i motivi per cui un’azienda dovrebbe rivolgersi ad un’agenzia investigativa:

  • a tutela del patrimonio e della produttività aziendale;
  • a salvaguardia del know-how aziendale;
  • a sostegno del management

A coadiuvare questo articolo useremo le parole di due veri esperti del mondo digitale e della sicurezza, in grado di spiegare ancora meglio i concetti sopra descritti; eccovi dunque il video dell’ottima intervista fatta da Matteo Flora a Marianna Vintiadis

Godetevi il video:

Progetto Mozilla per l’IoT

Mozilla Webthings per IoT

Mozilla Webthings per IoT

Su questo portale abbiamo iniziato a parlare di IoT gia alcuni anni fa, se interessati potete fare una pausa e leggervi prima l’articolo del 2015 dal titolo: Internet of Things , e poco tempo fa abbiamo iniziato a descrivere i nuovi scenari inerenti all’arrivo ed all’uso della tecnologia 5G .

Ed e’ proprio in questo anno che la tecnologia, grazie all’arrivo del 5G, subira’ una nuova impennata, non a caso su queste pagine parleremo a breve di diversi nuovi argomenti quali :

  • assistenti virtuali,
  • connessione ultraveloce 5G,
  • intelligenza artificiale per azioni legate alla vita quotidiana,
  • blockchain al di fuori delle aziende,
  • crescita degli eSport,
  • cloud,
  • i rischi della cybersecurity,
  • i furti informatici di dati biometrici,
  • la consapevolezza dell’importanza dell’etica nel mondo business

Come gia spiegato in precedenza, la tecnologia IoT sta avendo un rapidissimo sviluppo, ed ancor piu’ avra’ un’enorme diffusione in ogni campo della nostra vita, lavorativa e personale.
Il McKinsey Global Institute ha recentemente stimato che ogni secondo vengono connessi circa 127 nuovi devices IoT.
Seguendo questo andamento, le previsioni per il 2020, riguardo gli oggetti connessi alla rete, vanno dalla stima di 37 miliardi di device, calcolati da Cisco, fino ai 200 miliardi stimati da Intel.

Mozilla WebThings

In tutto questo fervore attorno al mondo IoT, il Mozilla IoT Team ha presentato recentemente un nuovo progetto denominato Mozilla WebThings, un progetto completamente open source sul quale è possibile contribuire direttamente al suo sviluppo dal repository pubblico di Github.
Il concetto alla base del progetto e’ quello di fornire una open platform pensata per il monitoraggio ed il controllo dei device IoT.

Sostanzialmente si tratta di una distribuzione Linux, da installare su una Raspberry Pi dove, al suo interno, sara’ possibile trovare vari tool che insieme generano un Hub dedicato alla gestione dei “device smart” connessi alla rete locale, come ad esempio le lampadine o i sensori di movimento e molto altro ancora……

I vari dispositivi potranno essere successivamente configurati tramite una pratica dashboard richiamabile dal Web browser.

Mozilla WebThings è animato dalle Web Thing API, grazie a questi set di librerie ad hoc, gli sviluppatori possono realizzare delle Web Things, ovvero le app dedicate alla gestione dei vari smart device supportati.

Sempre tramite l’utilizzo di queste API, gli sviluppatori potranno anche creare degli add-on in modo da abilitare funzionalità connesse ad un determinato Cloud provider e connettervi i molti device gestiti.

Il Mozilla WebThings è suddiviso in due componenti principali:

  • WebThings Gateway
  • WebThings Framework

Con Mozilla WebThings sara’ possibile tenere sotto controllo tutti i dettagli della propria rete di device IoT. Si potra’, ad esempio, monitorare il numero di utilizzi di un determinato dispositivo o i consumi energetici durante uno specifico arco temporale.

Tramite Mozilla WebThings l’utente potrà anche centralizzare la gestione di molti allarmi, quali, allarmi dei sensori di fumo, umidità e movimento da un’ unico pannello, impostando le varie regole e la quantità di notifiche da generare in caso di un evento o trigger.

Mozilla Webthings gestione consumi

Mozilla Webthings gestione consumi

Il team di Mozilla è anche al lavoro su una versione personalizzata di OpenWrt, famosa distribuzione Linux dedicata ai device embedded.

Seguiremo gli sviluppi del progetto, per tutti gli altri aggiornamenti potete andare a vedere direttamente sul repository di Github.