Sviluppare applicazioni smart contract in poche settimane. UniquID sfrutta le peculiarità della blockchain per risolvere i principali problemi del paradigma IoT: sicurezza, installazione e gestione dei dispositivi. La startup è incubata da Alchemist, uno dei più importanti acceleratori californiani d’imprese B2B.

Forse sta negli smart contract la vera rivoluzione di blockchain. Per questo ci sembra interessante parlare di UniquID, che offre una soluzione di IAM (identity acccess management) semplice concettualmente, robusta e molto innovativa, basata appunto sulla gestione degli smart contract tramite blockchain. La filosofia che c’è dietro? Azione e approccio pragmatico ai problemi: poco marketing, tanta concretezza. «Nel mondo industry generare grandi hype serve a ben poco: i problemi non si risolvono con le aspettative. Servono, piuttosto, soluzioni efficaci, pronte, che funzionino», spiega Giuseppe Cardinale Ciccotti, seasoned CTO e cofounder di UniquID, illustrando la value proposition dell’azienda. La blockchain quindi non perché va di moda e bisogna farci per forza qualcosa, ma perché si è rivelata lo strumento ideale per gestire gli smart contract e per risolvere un classico problema di cybersecurity: la difficoltà di garantire l’integrità di un sistema complesso in maniera centralizzata.

La storia

L’avventura di UniquID inizia circa 3 anni fa, da un incontro un po’ per caso. «Stefano Pepe, attuale CEO, e io abbiamo background molto diversi. Lui era ed è un esperto influencer della community italiana ed europea di blockchain. Io ho 30 anni di esperienza di progettazione di sistemi; sono stato dirigente della pubblica amministrazione di un grosso ente, ho fondato diverse aziende. All’epoca non si chiamavano startup, oggi si chiamerebbero così.»

Come vi siete conosciuti?

«Ci incontrammo grazie ad amici comuni. La mia idea era garantire la sicurezza delle comunicazioni dal punto di vista delle informazioni eliminando però le autorità centralizzate perché generano frizione. Si immagini: lei ora sta comunicando con me via Skype ma nessuno le ha confermato chi sono veramente. Non ci stiamo neanche vedendo in video quindi potrei benissimo essere un impostore. Ora, in questo caso siamo impegnati in una comunicazione di reciproco interesse. Ma prendiamo l’eventualità di una comunicazione di tipo politico, finanziario o anche aziendale: dovremmo avere modo, sempre reciprocamente, di scambiarci l’identità. Ecco, siamo partiti da quest’idea, da questo concetto: che qualunque comunicazione è o perlomeno implica uno scambio di identità.»

Identità e dunque smart contract. Ma in che modo, partendo da questa idea, siete approdati al mondo dell’IoT?

«In principio cominciammo a lavorare a un dispositivo hardware che aveva lo scopo di facilitare il riconoscimento delle persone. Poi a San Francisco entrammo in contatto con alcuni influencer che invece ci indirizzarono verso il problema dell’identificazione reciproca degli smart object. Iniziammo allora a pensare a come la nostra idea, la nostra tecnologia, che avevamo già cominciato a sviluppare, potesse essere applicata concretamente al paradigma dell’IoT.»

Poi c’è stato lo sbarco nella Silicon Valley, giusto?

«Sì, siamo riusciti a portare la nostra vision all’interno dell’acceleratore più importante di Stanford e di San Francisco per quanto riguarda il B2B e l’enterprise application: Alchemist accelerator. Su sedici startup selezionate a trimestre, siamo stati la prima italiana e fra le pochissime europee. Siamo stati selezionati nonostante fossimo a uno stadio embrionale rispetto ai profili più gettonati –  parlo di startup che hanno già una buona traction e qualche centinaio di migliaia di dollari se non milioni di profitto. Noi all’epoca non avevamo ancora un cliente. Come si dice in gergo, ci presero sullo slideware. La nostra vision però era – e tuttora è – fortemente innovativa e robusta. Così come il nostro background: non siamo una tipica startup di San Francisco di giovani venticinquenni. In realtà siamo tutti ben stagionati. E l’esperienza ha il suo peso: abbiamo una conoscenza più matura del mercato e una capacità dimostrativa già comprovata. Questo genera confidenza. Il nostro progetto va poi a cogliere i punti nevralgici dell’IoT: sicurezza, installazione e gestione dei dispositivi.»

Smart contract per smart object

Per spiegare come funziona la vostra soluzione, partiamo da un caso pratico: per esempio un veicolo a guida autonoma, un’automobile.

«Ottimo esempio. Supponiamo che questa automobile, nel compiere il tragitto da un punto A a un punto B, attraversi un cancello, percorra una strada, magari a pedaggio, e debba effettuare una sosta di rifornimento – o per ricaricare la batteria. Tutte queste azioni di solito sono performate con dei token: il telecomando per aprire il cancello, il telepass per pagare il pedaggio, etc.. Ora, in realtà, per mezzo di questi token, i diversi oggetti (cancello, telepass, erogatore carburante, colonnina elettrica) non stanno riconoscendo l’automobile. Stanno riconoscendo il proprietario, colui che garantisce, anche da un punto di vista giuridico-legale, per l’automobile.

Ecco lo smart contract, dunque.

«Esatto. Con la nostra tecnologia, d’altra parte, il riconoscimento avviene tra gli oggetti stessi – che si scambiano l’identità. Quando l’automobile sarà in prossimità del cancello, automaticamente il cancello si aprirà. Stessa cosa per il telepass: non ci sarà bisogno di installare a bordo un trasponder, perché tra il telepass e automobile esisterà un contratto che permette all’automobile di passare alla barriera. Idem con la colonnina di ricarica. In questo caso magari è stato sottoscritto un servizio premium. La colonnina riconosce l’automobile e scatta allora l’autorizzazione per una ricarica rapida. Di oggetti e casi simili se ne possono immaginarie tanti.»

Quindi sono gli oggetti che comunicano?

«Gli oggetti si riconoscono e creano delle relazioni fra di loro che permettono di performare azioni cooperanti. Il tutto in funzione dei contratti (smart contract) che sono stati ordinati dal proprietario  – o dal gestore – degli oggetti stessi (smart object).Un contratto altro non è che un’informazione mantenuta a sistema su un registro. Nel nostro caso viene codificato e inscritto su una blockchain. La capacità del software di scrivere uno smart contract determina la capacità di questi oggetti di cooperare.»

Questione di identità

Facciamo altri esempi.

«Immaginiamo il caso di reti molto più complesse, come quella di una flotta di veicoli. Tenere le chiavi di tutto, le password di tutti i transponder e di tutti i telecomandi è estremamente complicato. Con una console di gestione tuttavia si può ordinare a centinaia di automobili di performare la medesima azione. Tutti i contratti sottesi interoperabilità degli oggetti infatti possono essere automatizzati. In questo senso è il produttore stesso dell’automobile che avrà interesse a implementare la nostra tecnologia a bordo dell’auto, anche soltanto per migliorare le performance e abbattere il costo dell’upgrade del software della centralina.»

E la sicurezza?

«Direi che, quando parliamo di smart contract, è soprattutto una questione di security. Un’automobile che riconosce il server per l’aggiornamento, e che può dunque fidarsi del suo interlocutore virtuale, è un’automobile più sicura – oltre che più semplice da gestire. A sua volta il server centrale è certo di inviare informazioni critiche all’auto giusta e non a un fake. Spingendosi oltre, uno scambio e un riconoscimento sicuro ed efficiente di identità fra smart object può diventare la base su cui fondare partnership e azioni di co-business. Per esempio, tra una casa automobilistica, una società di telepedaggio o un distributore di energia.»

Insomma, identità è essenziale per fare qualsiasi tipo di business.

«Nelle attività umane conoscere la controparte, direttamente o indirettamente, è alla base della fiducia necessaria come fondamento di un rapporto proficuo. Gli oggetti, d’altro canto, sono privi di una coscienza del sé e, al momento, non dispongono di informazioni relative al contesto in cui operano. L’unica cosa di cui possono fidarsi, oltre ai i bit che ricevono sui  canali di comunicazione, è un’autorità terza. Attualmente nelle infrastrutture informatiche si utilizzano autorità centralizzate con tutti i costi e le difficoltà di far scalare un’infrastruttura simile su miliardi di oggetti variamente connessi.

Le più comuni soluzioni di identity access management, inoltre, al di là di costi e problemi di scalabilità, lavorano tendenzialmente con oggetti omogenei. Ma nella realtà abbiamo plurimi e variegati dispositivi, ognuno distaccato dagli altri. Le integrazioni sono complicatissime. UniquID offre un sistema di IAM orientato agli oggetti, anche di natura eterogenea (auto con cancello, con telepass , con server aggiornamento, smartphone, centralina), lavorando a livello applicativo. Riusciamo così a risolvere i problemi di sicurezza delle architetture centralizzate. Primo fra tutti, quello di avere un unico punto critico di accesso che deve essere poi protetto e mantenuto sicuro con ingenti costi.

UniquId Blast

Parliamo delle caratteristiche tecniche della vostra soluzione.

«Il prodotto principale si chiama Blast. È una sorta di blockchain as a service, una parte di codice open source che prevede dei nodi di back-end che performano azioni utili a far funzionare tutto il sistema e che possono essere scaricate dal nostro sito sotto forma di docker o di immagini per cloud. Abbiamo poi delle librerie, sempre open source, nei linguaggi più diffusi: C, Java – fra poco usciranno in node.js. Servono per creare le applicazioni client che girano sui dispositivi.»

Ma come funziona il tutto?

«Si va sul nostro sito, ci si iscrive, si scaricano i componenti di backend seguendo il file getting started, si installano su dei docker, su cloud o su dei server locali. Quando si è capito il funzionamento – abbiamo delle applicazioni demo pensate apposta per questo scopo – si utilizzano le librerie per scrivere il codice utente. Una volta sviluppata l’applicazione il nostro sistema garantisce che automaticamente gli oggetti vengano identificati (che venga cioè fatto l’enrollment nel sistema) e possano essere in seguito controllati e gestiti, o con le nostre console o per mezzo di API. Di fatto gestiamo le access controll list di ciascun oggetto. Questi espongono le proprie risorse, che verranno agganciate a un determinato contratto –  che stipula, per esempio, che l’oggetto A, un’automobile, ha diritto di interagire con l’oggetto C, un cancello, e, in particolare di aprire il cancello dal momento che tale oggetto espone le funzioni apertura e chiusura.»

Utilizzate particolari configurazione della blockchain che si chiamano sidechain. Di che cosa si tratta?

«Le sidechain ono blockchain permissioned. In pratica l’accesso è consentito solo a determinati nodi. Il punto di partenza è la blockchain di Bitcoin, che è la blockchain più robusta e sicura. Abbiamo scelto quella anche se siamo blockchain agnostici: possiamo lavorare con e su qualsiasi blockchain. Ebbene, con il sistema Blast creiamo una blockchain permissioned che viene configurata a sidechain. La sidechain è una blockchain permissioned – quella che forniamo al cliente nel nostro pacchetto iniziale – che viene resettata e a cui vengono apportate alcune modifiche a livello di backend: cambio di indirizzi e installazione di un minatore diverso che non genera token (frazioni di criptovaluta) ma si comporta come se tutti i coin fossero già stati minati – in realtà non sono stati minati, verranno inseriti. Si fa quindi una sorta di transazione di genesi, one o two way peg, una transazione originaria con cui vengono immessi i token. I device scambiano token e ricevono smart contract. Questi token verranno spesi per stipulare dei contratti (smart contract) fra gli oggetti.

Quali sono i vantaggi di questa tecnologia?

«Il principale è che il nostro cliente, a sua volta, sarà in grado di generare altre sidechain a partire dalla propria sidechain. Quindi se è un system integrator genererà sidechain per i propri committenti; se è un’organizzazione potrebbe voler generare una sidechain per ogni cluster di oggetti o di funzioni di business.»

E poi?

«Le sidechain sono una tecnologia semplice robusta, consolidata. Possiamo renderle private, che è una cosa che le aziende chiedono sempre, ma, con le giuste aperture, in maniera controllata, anche connetterle fra loro. Si distinguono quindi dalle semplici blockchain permissioned, veri e propri sistemi chiusi che mal si sposerebbero con un paradigma nativamente open come quello dell’IoT, dove l’interazione fra gli oggetti è tutto.

In sostanza fornite un sistema aperto?

«Esatto. Un sistema che possa essere integrato e sviluppato in soluzioni embedded. Con UniquID Blast forniamo una facilitazione. Chi volesse sfruttare la blockchain per funzionalità di questo tipo, può tranquillamente e molto più semplicemente utilizzare il nostro framework, con un time-to-market estremamente rapido. Uno sviluppatore medio infatti, grazie al nostro sistema, è in grado di costruire un’applicazione che utilizza una sidechain, se non addirittura una blockchain, in poche settimane (una volta compresi i meccanismi della sidechain, si può tranquillamente passare a una blockchain pubblica).

Quello che offriamo, quindi, non è soltanto un sistema di IAM, ma anche una scorciatoia per chi vuole imparare a lavorare con una blockchain. Il nostro prodotto è una soluzione a portata di mano, molto semplice, con bassi costi di ingresso, un sistema abilitante per fare esperienza in ambito blockchain. Gli sviluppatori di un’azienda possono vedere cosa significa utilizzare una blockchain in maniera diretta, senza il bisogno di montare infrastrutture o concepire configurazioni troppo complesse.»

Iot e bitcoin

Si discute molto del rapporto fra blockchain e Bitcoin. Voi come la vedete?

«Per quanto riguarda le scelte tecnologiche, la nostra soluzione è basata su blockchain. Bitcoin è la blockchain, la più affidabile, quella che ha più storia. In termini di sistemi open source e nuovi paradigmi che impattano molto sulla sicurezza e sulla crittografia, avere una storia di robustezza e di affidabilità è un asset importantissimo. Per noi la blockchain di bitcoin è un punto di riferimento.

Della blockchain sfruttiamo alcune peculiarità. Innanzitutto il fatto che è completamente decentralizzata. Permette poi l’interscambio di valori ed è resistente alla censura – non si possono modificare le informazioni che vi sono state scritte. Inoltre è robusta. E lo è tanto più quanti più nodi sono presenti nella rete. In questo modo è la rete stessa che si auto-protegge: più è distribuita, più è grande, e più è robusta. Ecco allora che, con milioni se non miliardi di dispositivi – quindi di nodi – connessi, l’IoT trova nella blockchain il partner ideale.