Quando inizi a lavorare con il Sign Protocol, una decisione sorge quasi subito. Quindi dove risiede l'attestazione? On-chain implica che l'intero record sia memorizzato sulla blockchain. Off-chain implica che esista in un altro luogo, solo un riferimento è posizionato on-chain. Entrambi sono validi. Entrambi non sono necessariamente migliori. La decisione corretta sarà basata sul tipo di dati che stai costruendo e su cosa sono realmente i dati.
Inizia con on-chain. Nei casi in cui un'attestazione è completamente on-chain, tutti i dati in quel record sono memorizzati nella blockchain di un singolo blocco. È permanente. È leggibile pubblicamente. Qualsiasi utente finale con l'hash della transazione o l'ID dell'attestazione può cercare immediatamente la transazione senza dover ottenere nulla da un server remoto. Non dipendono da una terza parte per rimanere online, non sono a rischio di perderla se il loro fornitore di archiviazione va offline, non hanno dubbi che i loro dati siano stati alterati. Ciò che va sulla catena è ciò che c'era, e rimarrà lì.
Questo è efficace in alcune categorie di dati. Un documento che prova che un portafoglio è stato coinvolto in un evento. Un'identificazione che indica che un utente ha superato con successo un test di verifica. Un indicatore che un determinato voto è stato espresso in un giro di governance. Questi sono fatti che dovrebbero essere pubblici, sono abbastanza piccoli da essere memorizzati a basso costo, e la disponibilità a lungo termine è proprio ciò di cui hai bisogno. La memorizzazione on-chain è la decisione appropriata in questo caso.
Non tutte le attestazioni sono di quel tipo. Le informazioni contenute nelle cartelle cliniche sono informazioni personali sensibili che non dovrebbero essere conservate su un registro pubblico. Denaro, messaggi personali, contratti commerciali contenenti informazioni riservate - tutto ciò implica informazioni che devono poter essere dimostrate eppure non possono essere viste da chiunque sappia come utilizzare una blockchain per richiedere dati. Tutto ciò sarebbe inappropriato per la memorizzazione on-chain e, nella maggior parte delle leggi, confliggerebbe direttamente con le leggi sulla privacy come il GDPR e l'HIPAA che impongono il diritto di cancellare / limitare l'accesso ai dati personali.
Questo viene fatto tramite memorizzazione off-chain. I dati reali esistono in qualche luogo oltre la blockchain: sull'IPFS, su un server locale, in un database crittografato o sul computer personale dell'utente. Ciò che viene posizionato on-chain è un hash crittograficamente calcolato di tali dati. Un hash è una stringa di lunghezza predeterminata calcolata matematicamente in base al contenuto. Alterare un carattere dei dati originali comporta una modifica completa dell'hash. Questo significa che l'hash on-chain è un'impronta digitale che non può essere alterata. Chiunque desideri verificare l'attestazione recupera i dati off-chain, li esegue utilizzando la stessa funzione di hash e determina se l'output corrisponde ai dati on-chain. Nel caso in cui sia identico, l'informazione è reale. Qualcosa è stato cambiato, altrimenti non lo avrebbe fatto.
La fase di autenticazione introduce una piccola tassa alla pura memorizzazione on-chain, ma affronta la questione della privacy in modo pulito. La blockchain non entra mai in contatto con i dati sensibili. La prova che non è mai stata alterata o modificata da persone malintenzionate persiste solo on-chain. Un professionista sanitario è in grado di attestare a un paziente riguardo alla loro idoneità a ricevere un trattamento senza mettere nessuno dei loro dettagli sanitari in un registro. Il paziente porta i dati. Il verificatore controlla l'hash. Niente di sensibile è memorizzato nella catena.
Un altro fattore di cui non si parla molto inizialmente ma che con le condizioni di scala è molto costoso. La memorizzazione sulla blockchain non è gratuita. Scrivere on-chain comporta un costo di gas. Questo è insignificante nel caso di un'attestazione piccola con un numero limitato di campi di testo. Un processo costoso di memorizzazione dell'intero contenuto on-chain non sarebbe fattibile per un grande documento, un rapporto di conformità elaborato, o qualsiasi attestazione con media ricchi. La memorizzazione off-chain ti consente di ancorare qualsiasi quantità di dati on-chain a un costo comparabile a quello di ancorare una piccola stringa, poiché solo l'hash è memorizzato on-chain, indipendentemente dalle dimensioni del documento che stai memorizzando.
Ci sono modelli ibridi in quei casi in cui non ce n'è uno ovvio o l'altro. Altri elementi di un'attestazione possono richiedere di essere visibili e leggibili pubblicamente immediatamente - una forma di credenziale, un'identità dell'emittente, un tempo. Altre aree della stessa attestazione possono dover rimanere riservate - i particolari che dimostrano l'idoneità, gli identificatori personali che supportano l'affermazione. Una soluzione ibrida colloca i componenti on-chain dei campi pubblici e i componenti off-chain dei campi privati, il componente on-chain essendo un hash del componente off-chain. Questo fornisce ai verificatori le informazioni delle persone e non rivela ciò che non dovrebbe essere detto.
Il Sign Protocol è stato utilizzato per facilitare tutti e tre i modelli. La decisione viene determinata durante la preparazione dell'attestazione. Non richiede alcuna modifica architettonica e non ha un sistema distinto da eseguire. La scelta di uno sviluppatore dipende da cosa sono i dati, in quale caso d'uso vengono utilizzati e il resto è gestito dal protocollo.
Una domanda che può essere utile nella decisione è porre due domande. Prima deve essere dati permanenti e immediatamente leggibili senza dipendenza esterna. Se sì, on-chain. Secondo, contiene dati sensibili, grandi dati o dati soggetti a leggi sulla privacy? Sì, off-chain e ancorato da un on-chain. Nel caso in cui la risposta alle due sia in parte sì, ibrido. La stragrande maggioranza dei casi d'uso di attestazione del mondo reale è facilmente divisibile in uno di questi tre gruppi una volta che si considera cosa siano effettivamente i dati e chi dovrebbe accedervi.
Il tipo di flessibilità qui non è un caso. Una memorizzazione solo on-chain sarebbe inutile in settori regolamentati. Il protocollo che supportava esclusivamente la memorizzazione off-chain non sarebbe utile in situazioni in cui la verificabilità pubblica permanente è importante. Garantire che entrambi siano supportati e consentire agli sviluppatori di fare la scelta a seconda delle loro reali esigenze rende Sign Protocol rilevante per un ambito molto più ampio di settori e scenari di distribuzione rispetto a una varietà limitata di applicazioni crypto-native.
