Piattaforma K è la piattaforma su blockchain realizzata da KNOBS, che permette la creazione di un wallet e la ricezione di token senza la necessità di avere e spendere criptovalute per eseguire l’operazione.
I token sono le unità di valore digitali, trasferibili e programmabili, custodite nel wallet, il portafoglio virtuale. Sono uno degli strumenti più interessanti e promettenti della tecnologia blockchain, poiché si prestano ad applicazioni in tantissimi settori.
In questo post, ti raccontiamo un esempio di applicazione reale della blockchain: la procedura ideata da KNOBS per la distribuzione di token digitali agli utenti attraverso l’utilizzo di gettoni fisici.
L’obiettivo?
Rendere semplice e intuitivo il procedimento di onboarding per gli utenti finali, non ancora necessariamente familiari a strumenti e concetti della blockchain.
Perché Piattaforma K è un interessante esempio di applicazione reale della blockchain e uno strumento agile per la distribuzione di asset digitali?
Questo è proprio l’argomento del post.
Cercheremo di spiegarlo in modo chiaro e comprensibile, proprio descrivendo caratteristiche e funzionamento di Piattaforma K, che è a tutti gli effetti un caso d’uso reale della blockchain.
Hai presente quella domanda: “tecnologia interessante, si, ma cosa si può fare con la blockchain?”
Ecco: Piattaforma K è un esempio concreto dell’applicazione e dei vantaggi di questa tecnologia.
Nel primo post di questo blog “Cos’è la blockchain. In parole semplici?”, abbiamo cercato di spiegare cos’è la blockchain, a cosa serve e perché può essere utile, con un linguaggio chiaro e immediato e in modo completo.
Con l’esempio di un’applicazione reale, Piattaforma K, facciamo un altro passo per approfondire insieme questa tecnologia.
Lo use case riguarda la piattaforma utilizzata nel gennaio 2020, durante la giornata di presentazione finale dell’anno di ricerca dell’Osservatorio Blockchain & DLT del Politecnico di Milano.
Con spirito misto tra il romantico ed il markettaro, abbiamo deciso di chiamare questo progetto “Piattaforma K”.
Ecco come funziona.
Come acquisire la proprietà di un documento pdf e poterla dimostrare attraverso la blockchain?
E’ proprio a questa domanda che abbiamo cercato di rispondere ideando Piattaforma K.
Riflettiamo un momento.
Come fai di solito quando vuoi condividere un documento PDF con qualcuno? Quali strumenti hai a disposizione?
Puoi usare un link che punta a Google Drive, caricare il pdf in un’area FTP, usare Dropbox o, ancora, ricorrere a WeTransfer.
Se pesa poco, puoi anche pensare di inviarlo semplicemente via e-mail.
Tutti questi passaggi sono piuttosto semplici e intuitivi, non c’è dubbio.
Ma a tutti manca un tassello fondamentale: nessuno di questi strumenti è in grado di creare un documento certificato o certificabile.
Questo significa che chiunque, volendo, potrebbe inoltrare il documento a chi desidera, farne una copia o ancora affermare che il documento è ed è sempre stato suo…Le casistiche sono potenzialmente infinite.
Il nostro obiettivo però è esattamente il contrario e cioè poter dimostrare che una certa persona (o un certo indirizzo) è effettivamente in possesso di un certo documento in un determinato momento.
Come possiamo farlo?
Uno strumento d’eccezione è proprio la blockchain!
Scopriamolo insieme, con l’esempio di applicazione reale di Piattaforma K.
Piattaforma K è nata dall’intento di supportare l’Osservatorio Blockchain & Distributed Ledger Technology del Politecnico di Milano per la giornata conclusiva dell’anno di ricerca 2019/2020.
Si tratta di un’occasione importante: ci sono molti invitati, tutti interessati alle tematiche blockchain, e nasce l’esigenza di far avere a ciascuno il report finale dell’Osservatorio. In formato digitale ovviamente.
Ecco allora l’idea!
E se potessimo far sì che le persone possano non soltanto scaricare il report, ma anche dimostrare di averlo fatto e di essere in possesso di uno specifico documento?
Se parliamo di un documento semplice, magari senza valore legale, questa può sembrare una questione di poca importanza.
Prova però ad applicare questa funzione ad un documento di proprietà o ad un contratto: poter dimostrare in modo certo e incorruttibile di detenere il possesso di un documento che certifica la proprietà di un bene…
Se solo ci fosse qualcosa in grado di permettere tutto questo…
In effetti esiste. E si chiama…blockchain!
Piattaforma K, la soluzione che abbiamo ideato per la distribuzione dei report digitali dell’Osservatorio, si avvale di uno smart contract sulla blockchain di Ethereum.
Una volta invocato, lo smart contract invia all’utente (o meglio, all’indirizzo del wallet che “firma digitalmente” il messaggio) un token, che potrà poi essere utilizzato per scaricare il singolo report e dimostrarne il possesso.
Un dettaglio importante: i report del nostro use case non sono tutti uguali.
Si tratta di report numerati.
Questo significa che, utilizzando il token, l’utente non entrerà in possesso di un report generico ma, ad esempio, proprio del report numero 3. E di quel report numero 3 esiste una sola copia al mondo.
Detto così, sembra molto semplice.
In realtà, si aprono tantissime domande e obiezioni, prima fra tutte quella legata a possesso e gestione di un wallet.
Non tutti gli ospiti presenti alla giornata conclusiva dell’osservatorio, così come la stragrande maggioranza delle persone, infatti, possiedono un wallet.
Inoltre, quando si crea un wallet, è necessario inserire criptovalute al suo interno per poterlo attivare e compiere operazioni. Anche, ad esempio, per “reclamare” il proprio token.
Magari molti di noi hanno avuto modo di creare un wallet, ma comprare ether o bitcoin è un passaggio ulteriore e non così intuitivo (e costa!). Non tutti hanno ether sul proprio wallet, ma le transazioni su blockchain devono essere necessariamente pagate (come illustriamo in questo post).
In altre parole, se voglio che gli utenti possano richiedere un token, se chiedo cioè ad uno smart contract di inviare un token su un wallet, è necessario pagare l’operazione, spendere valuta perché l’operazione venga eseguita.
Non tutti, però, potrebbero essere disposti a pagare per ricevere il report.
C’è una questione ulteriore legata al wallet.
L’intento principale del progetto è rendere il sistema assolutamente imparziale, corretto, trasparente, inattaccabile e decentralizzato.
Questo però può scontrarsi con la tentazione di creare un wallet custodial.
Il wallet custodial è basato su un’architettura in cui un intermediario detiene chiave pubblica e chiave privata del portafoglio e provvede a fornire all’utente un’interfaccia di facile utilizzo.
Per il concetto di chiave pubblica e chiave privata, in sintesi, funziona così: la chiave pubblica è l’indirizzo del wallet, come se fosse il codice IBAN, mentre la chiave privata è la password per accedere.
I wallet custodial sono la soluzione più diffusa sul mercato per creare e gestire la proprietà di un wallet. Hanno però un punto debole: introducendo enti terzi come garanti (in questo caso chi detiene chiave pubblica e privata), infatti, scivolano verso un ritorno alla “centralizzazione” del sistema.
L’obiettivo del progetto era però ideare e proporre un sistema che consentisse la distribuzione di token attraverso l’utilizzo di QR code, senza richiedere all’utente il possesso di software particolari o conoscenze approfondite in ambito blockchain.
Ecco quindi i principali requisiti che ci siamo proposti di sviluppare e garantire con l’implementazione di Piattaforma K:
Per la procedura di onboarding non viene richiesto il possesso di un wallet né di alcun altro strumento, così come per ricevere un token associato ad uno dei report dell’Osservatorio non è richiesto il pagamento di alcuna fee.
Il sistema è totalmente decentralizzato: nessuno, al di fuori dell’utente che è legittimo proprietario del wallet deve conoscerne chiave pubblica e chiave privata.
I report “tokenizzati” vengono assegnati agli utenti in modo del tutto casuale, come in una lotteria imparziale e trasparente dove è soltanto il caso a decidere le combinazioni.
Prima di vedere insieme qualche dettaglio sull’architettura di Piattaforma K, diamo un’occhiata a quali sono i passaggi per l’utente finale.
Ogni step è improntato alla massima semplicità e intuitività di utilizzo.
Perché questo aspetto è importante?
Perché dimostra che, nonostante la complessità della tecnologia sottostante e le sfide che lo sviluppo di Piattaforma K ha posto, l’esperienza utente non viene assolutamente intaccata. Anzi, come accennato (e come vedremo meglio ora) il processo di onboarding per l’utente è assolutamente semplice ed intuitivo.
Ecco cosa avviene lato utente:
Alla fine di questo processo semplice ed intuitivo, l’utente è proprietario del token e può utilizzarlo per effettuare il download del report personalizzato ad esso associato.
Tra le sue tante funzionalità, Piattaforma K permette all’utente di esportare le credenziali del proprio wallet e trasferire il wallet stesso su altre applicazioni (ad esempio Metamask).
User experience, dunque, facile e piacevole: in pochi click, come abbiamo appena visto, l’utente può interagire con la blockchain di Ethereum, creare un wallet, riscattare un token.
Semplice a dirsi e a farsi…per l’utente.
Il meccanismo che regola queste azioni, rispettando i principi di massima trasparenza e decentralizzazione enunciati sopra, però non è così semplice.
Ecco cosa avviene dietro le quinte.
Tutto inizia da semplici QR code.
QR code stampati su 500 gettoni di plastica (come il numero degli invitati all’evento) che chiunque può prendere e toccare, gettoni fisici dunque.
A cosa serve il QR code?
Permette di fare una cosa molto semplice: indirizzare ad una determinata pagina web.
Questo vale, naturalmente, anche per i nostri QR code.
Ciascuno di essi indirizza alla pagina web di Piattaforma K, ma contiene anche un’informazione aggiuntiva, specifica e unica.
Quale informazione? Ogni token è collegato ad una precisa chiave pubblica di una particolare credenziale di uno specifico wallet.
Il QR code è creato combinando due dati: l’indirizzo della pagina dell’applicazione web, comune a tutti i QR code, e una chiave privata.
Ogni chiave privata corrisponde alla chiave pubblica della credenziale a cui è associata.
È come se nel QR code di ogni gettone fosse nascosta la password associata ad un codice IBAN. Non appena inquadri il QR code, vieni catapultato all’interno di un conto corrente di cui hai la password già in mano.
C’è ancora un dettaglio, molto importante: a ciascun QR code è associato un token distribuito tramite Ethereum. Questo token però non è associato di default ad un report specifico.
Cosa significa? Vuol dire che se io ho il gettone numero 1, non è detto che riceverò il report numero 1.
Il file HTML della pagina web a cui l’utente viene indirizzato è fornito grazie al sistema IPFS, l’archivio web decentralizzato che:
Quando lo smart contract riceve la chiamata per emettere un token, attiva una funzione del contratto che sorteggia in modo casuale uno dei 500 report unici disponibili.
In questo modo, non è possibile prevedere, basandosi sul QR code in mio possesso, quale token riceverò quando farò richiesta per scaricare il report.
Per semplificare l’associazione report-token, abbiamo deciso di utilizzare dei token ERC721, cioè token facilmente trasferibili, ma non fungibili poiché rappresentano un bene preciso ed unico, come può essere appunto il possesso di un report numerato dell’Osservatorio Blockchain del Politecnico.
Ciascuno di questi token, una volta creato all’interno dello smart contract e associato all’utente che l’ha richiesto, fa riferimento ad uno specifico report (estratto casualmente dallo smart contract) e ne rappresenta il possesso.
Resta ancora un problema.
Poco sopra abbiamo parlato del fatto che non tutti hanno un wallet…come fare?
Scansionando il QR code, avviene la prima magia.
E’ la piattaforma K stessa che si comporta come un wallet, cioè come il tuo personale portafoglio digitale per ricevere ed eventualmente scambiare token e criptovalute.
Ecco la funzionalità più interessante in assoluto: anche se non hai un wallet (essenziale per ricevere i token), ti basta cliccare su “Crea Wallet” per creare istantaneamente il tuo wallet su Ethereum all’interno del browser con cui stai navigando ed ottenere la tua copia di chiave pubblica e chiave privata.
Senza fatica, lunghe procedure, complicazioni, dati da fornire. Basta un click ed ecco creato il tuo wallet non custodial direttamente sul tuo browser.
Ora hai tutto quello che ti serve per poter ricevere il token.
Una volta che hai creato il tuo wallet, puoi cliccare su “richiedi token” e attivare così lo smart contract che genera e rilascia il tuo personale token di Piattaforma K, che abbiamo chiamato per convenzione KDT (KNOBS Demo Token).
Ora che hai un token KDT, hai il possesso del report associato a quel token e il diritto di scaricare il tuo report personalizzato.
Perché personalizzato? Perché i report sono tutti diversi uno dall’altro:
Il token viene distribuito da uno smart contract creato ad hoc e può essere riscattato solo dagli utenti che dimostrano di averne il diritto.
Come funziona in dettaglio?
Lo smart contract implementa dei token non fungibili e ad ognuno di essi associa un pdf contenente un report dell’Osservatorio. Contiene, inoltre, al suo interno un set di chiavi pubbliche che rappresentano gli utenti abilitati a riscattare il token.
Tutti i report dell’Osservatorio sono precedentemente archiviati su IPFS, così che ad ogni documento è associato un HASH registrato su blockchain e questo HASH è a sua volta associato ad ogni nuovo NFT generato dallo smart contract.
I token non fungibili (a cui è associato l’HASH di uno specifico report) e le chiavi pubbliche sono archiviati in due liste differenti e associati tra loro in modo dinamico durante il processo di riscatto del token. Questo vuol dire che l’associazione tra un token e una certa chiave pubblica viene effettuata in modo casuale durante il processo di generazione del token non fungibile.
La chiave pubblica corrispondente ad una chiave privata può essere in questo modo distribuita agli utenti e potrà essere utilizzata per generare una firma che dimostra il diritto ad ottenere il proprio token.
Complesso? Sì, ma proviamo a semplificare.
– Scansionando il QR code (che contiene la password per autenticarti), vieni indirizzato su una pagina in cui puoi creare un conto corrente che a questo punto diventa tuo in quanto solo tu conosci la sua chiave privata (una volta dentro il conto corrente puoi vedere sia il codice IBAN, la chiave pubblica, che la sua password, la chiave privata).
– Nel momento in cui clicchi sul tasto che ti permette di richiedere il tuo token, invii un messaggio, firmato con la tua password segreta stampata sul QR code che serve solo per autenticarti. Il messaggio contiene la richiesta di inviare il token ad una certa chiave pubblica, un certo IBAN, che è proprio quello del conto corrente che hai appena generato all’interno della piattaforma.
– Quando lo smart contract riceve, da qualunque mittente, un messaggio di questo tipo, verifica che sia firmato correttamente dalla password segreta stampata sul corrispondente QR code e poi assegna all’indirizzo del codice IBAN contenuto nel messaggio un token non fungibile (che rappresenta il possesso di un pdf) scelto in modo casuale.
– Una volta ricevuto il tuo token sul tuo conto corrente personale, cliccando su “download” puoi scaricare il pdf unico associato al token di cui sei ora in possesso.
Ecco, in questa schermata, come si presenta l’interfaccia di un wallet.
La prima stringa alfanumerica in alto è l’indirizzo del tuo wallet, il codice IBAN personale a cui chiedere la spedizione di un token.
Il saldo di Ether e token al momento della creazione del wallet ovviamente è a zero: 0 ETH e 0 KDT. Cliccando però sul bottone verde “Richiedi Token”, ricevi sul tuo wallet il token KDT ed il saldo viene aggiornato a 1.
Non proprio.
Questa è stata una delle difficoltà di cui ti ho parlato all’inizio del post.
Non è possibile compiere transazioni su Ethereum senza pagare il “gas”, la fee (la tassa richiesta dalla blockchain di Ethereum per effettuare la transazione) al miner che minerà il blocco contenente la transazione di richiesta del token.
Qual è stata la nostra soluzione?
Il costo delle transazioni è stato preso in carico da KNOBS.
Come è possibile?
Lo smart contract preposto al rilascio del token è progettato in modo tale da poter ricevere un messaggio da qualunque mittente e poterlo poi interpretare per decidere se portare a termine o meno la richiesta di rilascio di un token.
In particolare, lo smart contract verifica che il messaggio ricevuto sia effettivamente firmato da una delle chiavi private presenti all’interno dei QR code stampati sui gettoni fisici.
In caso affermativo, legge all’interno del messaggio l’indirizzo (il nuovo IBAN da te creato) del conto corrente (wallet) a cui deve inviare il token, scelto a caso tra quelli non ancora assegnati.
I possessori dei gettoni possono quindi creare un nuovo conto e poi firmare il messaggio con la chiave privata contenuta all’interno del QR code stampato sul loro gettone. Il messaggio firmato può essere a quel punto inviato allo smart contract da chiunque (loro stessi o un terzo attore).
KNOBS ha realizzato un server che rimane in attesa di messaggi firmati e li inoltra allo smart contract non appena ricevuti. Alla pressione del tasto “richiedi token”, l’applicazione su IPFS non fa altro che firmare il messaggio e inviarlo a questo server, che si occuperà di inoltrarlo allo smart contract, pagando le commissioni (fee) relative alla transazione.
Verificando nel tuo wallet puoi vedere che il report ha il suo HASH identificativo, diverso da quello di ogni altro report.
Cliccando su “Controlla su Etherscan” all’interno del wallet, puoi verificare che la transazione su blockchain con cui lo smart contract rilascia un token verso il tuo wallet sia avvenuta con successo. Significa che ora il possesso del token, quindi del report, è tuo.
Che cos’è Etherscan?
E’ semplicemente uno dei siti che permettono di vedere, tramite una semplice interfaccia grafica, tutte le transazioni che vengono registrate sulla blockchain Ethereum.
Leggendo questo post, ti sarai accorto di due cose:
– dietro la facilità estrema di utilizzo di un wallet come quello appena descritto, si nasconde in realtà un meccanismo molto complesso, che pone difficoltà tecniche non indifferenti
c) scambiare facilmente e senza intermediari token e il valore da essi rappresentato
Se ti sembra ancora tutto molto difficile da capire, non ti preoccupare.
Abbiamo due consigli per te.
L’esempio di applicazione reale della blockchain che Piattaforma K rappresenta illustra bene vantaggi come trasparenza, decentralizzazione, asset digitali, certificazione del possesso di un bene, emissione di token.
Il secondo consiglio è di leggere tutti i post del nostro blog, per entrare in modo semplice e divertente nell’universo blockchain, a cominciare da qui, e di iscriverti alla nostra newsletter per scoprire passo dopo passo tutti gli aspetti e le potenzialità di questa incredibile tecnologia.