Che cos’è la Proof of Existence?
Come sappiamo la blockchain ha una vasta gamma di utilità e casi d’uso pratici. Prima di vedere assieme cosa c’entra con la blockchain la cd. Proof of Existence dobbiamo ricordarci come, il potenziale dirompente di questo tipo di tecnologia sia così grande che è oramai destinato a cambiare non solo il “modo in cui registriamo le cose”, bensì molto altro ancora. È infatti una tecnologia relativamente nuova e che può essere applicata praticamente a tutti i settori “più tradizionali”.
Uno di questi casi d’uso della tecnologia in parola è senza dubbio la possibilità di registrare in maniera “immutabile” un qualsiasi documento all’interno del un registro pubblico distribuito noto appunto col nome di Blockchain.
La Proof of Existence
Il concetto di “Prova di Esistenza” (PoE) circola nel settore delle criptovalute da ormai un po’ di tempo. Esso è divenuto uno strumento molto utile quando si tratta di provare pubblicamente l’autenticità di un qualsiasi record o documento (perché ancora oggi un’e-mail o un messaggio firmato potrebbero spesse volte non essere sufficienti a dimostrare la genuinità del relativo testo messo per iscritto ed al quale viene fatto riferimento).
La proof of existence consiste nel “prendere l’hash di un record digitale ed archiviare quell’hash proprio nella Blockchain”. Siccome la Blockchain andrà poi a memorizzare tutte le transazioni confermate e tutti gli hash univoci inseriti, una volta confermata la relativa transazione, sarà sempre possibile fare riferimento ai dati così catalogati e di conseguenza “dimostrare che esiste un particolare documento”.
Cosa significa “timestamping”?
Detto semplicemente, mediante un processo di registrazione Blockchain e timestamping, la Proof of Existence consente a chiunque di archiviare in modo anonimo e sicuro una prova dell’esistenza su di un registro distribuito online di qualsiasi documento. I documenti non vengono archiviati in un database “centralizzato”, di conseguenza tutti i dati rimangono privati. Tutto ciò che viene memorizzato è un cd. “digest crittografico” del file, che è univocamente collegato al momento in cui è stato presentato il documento. Esso non è altro che un servizio online che consente alle persone di dimostrare pubblicamente che determinate informazioni appartengono a qualcuno senza rivelarne anche i relativi dati o il proprietario di essi, e ciò è reso possibile grazie ad una certificazione decentralizzata basata sulla rete Bitcoin.
I contratti possono essere timestampati, insieme alle firme digitali di entrambe le parti contraenti, così dimostrare quando sono stati effettivamente firmati. Una simile marcatura temporale attendibile consente di provare che si è in possesso di un documento (o alcune informazioni o un file) in un dato momento specifico, ed con un meccanismo che non può essere contraffatto. Si può ad esempio provare di aver sviluppato una revisione specifica del proprio software in un momento specifico applicando la marca temporale all’hash. Tutto questo processo non dipende da alcuna singola autorità centrale, come è solito succedere quando si parla di tecnologia blockchain. Nei modelli più tradizionali infatti i “timestamp affidabili” verrebbero emessi da terze parti affidabili chiamate TSA (Time Stamping Authorities), le quali sono senz’altro “soggette” a possibili tentativi di corruzione e manomissione dei dati. Sulla Blockchain Bitcoin invece il proprio timestamp viene archiviato in modo sicuro nei server che partecipano alla rete da tutto il mondo, e di conseguenza è intuitivo capire quanto sia molto più difficile da manomettere.
I casi d’uso della Proof of Existence
Gli utenti possono rivelare pubblicamente i propri digest ed in caso di conflitto provare di avere il possesso dei dati che hanno generato il digest pubblicato. La prova di esistenza è utile ad esempio per tutto il materiale protetto da copyright, brevetti, e simili. Un utente può provare con certezza che un determinato dato esiste in un determinato momento. Poiché viene utilizzata la blockchain di Bitcoin per archiviare la prova del documento in questione, chiunque può certificare l’esistenza di un documento senza che vi sia la necessità appunto di alcun ente centrale sul quale fare “cieco affidamento”. Sarà la potenza di calcolo dell’intera rete Bitcoin ad essere sfruttata per dare certezza alle certificazioni dei dati degli utenti. Facciamo qualche ulteriore esempio dell’utilizzo della Proof of Existence: in primis come abbiamo accennato può esservi la necessità di dimostrare la proprietà di determinati dati senza doverne per forza anche rivelarne il relativo contenuto; oppure la necessità di dimostrare l’avvenuto trasferimento di un determinato atto; ancora, la possibilità di verificare l’integrità (mancata manomissione) di un documento senza alcuna necessità di accedervi.
Se una persona “memorizza una prova” del proprio documento e successivamente ne fa un nuovo upload, il sistema lo riconoscerà esclusivamente nel caso il documento sia effettivamente identico a com’era nel momento dell’avvenuto timestamp. Basta un minimo cambiamento e la blockchain riconoscerà immediatamente la manomissione apportataa. Tale meccanismo consente all’utente quella sicurezza che è inevitabilmente necessaria ad impedire che importanti dati certificati possano essere fraudolentemente modificati.
Ci sono diversi progetti all’interno dell’ecosistema delle criptovalute in generale dedicati proprio alla Proof of Existence. Tra i più importanti possiamo ricordare ad esempio Factom (http://factom.org/), BTProof (https://www.btproof.com/), Origin timestamp (http://www.originstamp.org/), Florincoin (http://florincoin.org/), ed altri.
Quali sono i fondamentali tecnici della PoE?
Per quanto detto possiamo giungere alla conclusione che la Proof of Existence svolga essenzialmente un servizio notarile online, essa non è altro che un modo economico di utilizzare la potenza di calcolo distribuita della rete Bitcoin allo scopo di consentire alle persone di verificare che un documento esiste in un determinato momento.
Gli algoritmi possono essere utilizzati per creare un digest o una stringa crittografica rappresentativa di un singolo dato. Il digest creato da una funzione hash si basa sulle caratteristiche del documento. Non esistono infatti due digest che possano essere uguali, a meno che i dati utilizzati per calcolare i relativi digest non siano esattamente identici.
Il documento viene certificato incorporando il digest con algoritmo SHA256 della blockchain di Bitcoin. Ciò viene viene reso possibile tramite la genesi di una speciale transazione in Bitcoin la quale codifica e contiene l’hash. Questo codice operativo detto “di scripting” contrassegna l’output della transazione come “non spendibile” e contiene una piccola quantità di dati, che nel nostro caso rappresentano proprio l’hash del documento “notarizzato”, più un marker che consente di identificare tutte le proprie transazioni.
È possibile eseguire l’hash dei dati che si desidera timestampare e trasformarli in un indirizzo Bitcoin. Effettuando un piccolo pagamento (come ad esempio anche un solo satoshi, ossia 0.00000001 BTC) verso tale indirizzo, il minuscolo pagamento verrà chiaramente memorizzato sulla Blockchain assieme all’indirizzo a cui è stato diretto il pagamento. In quanto solo l’hash viene archiviato sulla blockchain di Bitcoin, nessuno potrà dire a quali dati esatti l’hash faccia riferimento, ma, partendo dai dati pre-hash si potrà provare essi siano proprio quelli ai quali il blocco che contiene il pagamento effettuato fa riferimento, e ciò poichè operando una nuova codificazione dei medesimi dati si otterrà esattamente la medesima stringa di codice.
Una volta confermata la transazione, il documento è certificato in modo permanente e la sua esistenza sarà dimostrata fin dal momento dell’avvenuta conferma del blocco contenente la transazione. Se il documento non fosse esistito nel momento in cui la transazione è entrata nella Blockchain, sarebbe stato impossibile incorporare il relativo digest nella transazione. Incorporare un po’ di hash ed adattare un documento futuro all’abbinamento di qeull’hash è matematicamente impossibile. Questo è il motivo per cui una volta che la blockchain di Bitcoin conferma la transazione generata per un documento, la sua esistenza è dimostrata senza possibilità di appello ed in modo permanente (non sarà necessaria alcuna “fiducia” particolare). L’esistenza di una transazione nella blockchain andrà a dimostrare che il documento esisteva nel momento in cui la transazione è stata inclusa nel blocco.
Perché viene utilizzata proprio la blockchain di BTC?
I vantaggi principali di Bitcoin sono l’anonimato, la privacy e ottenere una prova decentralizzata che non può essere cancellata o modificata da nessuno (immutabilità), ad esempio da terze parti o autorità governative. L’esistenza del proprio documento viene convalidata in modo permanente dalla Blockchain anche se il sito web dal quale accedervi viene compromesso o risultasse per qualsiasi motivo non funzionante, quindi non ci si troverà mai alle dipendenze di alcuna infrastruttura ulteriore alla catena madre. Ogni soluzione che è stata adottata in passato per tali funzionalità non ha mai avuto le predette caratteristiche tutte assieme. Nessuno conosce l’identità dell’utente, o quali dati stia timestampando, o ancora il fatto che si stia marcando qualcosa.
Non va dimenticata inoltre l’economicità dell’operazione. Ai tassi attuali, e comprendendo anche le commissioni di transazione impostate al minimo di priorità, si andrà a pagare solo qualche centesimo di Euro. Si consiglia tuttavia vivamente di pagare una commissione che sia quantomeno adeguata a supportare il lavoro svolto dai miners che verificano il timestamp con le proprie risorse informatiche. Anche i musicisti ed altri produttori di arte digitale possono provare la proprietà delle loro creazioni mediante la Proof of Existence. Prima di condividere idee con terze parti, gli imprenditori possono infatti timestampare le informazioni che stanno per essere condivise e così facendo evitare a monte ogni tipo di eventuale controversia.
Esiste un immenso potenziale per gli ulteriori utilizzi che vengono consentiti dalla tecnologia blockchain, e in questo momento molte di tali future applicazioni sono in una fase di sviluppo e verranno probabilmente implementate in prossimità della cd. “Internet of Things” (internet “delle cose”), ma di essa parleremo più approfonditamente in un ‘altra occasione..
Articolo precedente
Cos’e’ Lightning Network?Articolo successivo
Cosa sono gli Smart Contract?