- Torna al menu
- Torna al menuPrezzi
- Torna al menuRicerca
- Torna al menuConsenso
- Torna al menu
- Torna al menu
- Torna al menu
- Torna al menuWebinar ed Eventi
La tendenza verso la Privacy della blockchain: prove di conoscenza zero
George Samman, ex CMO di Fuzo, LOOKS come soluzioni come le dimostrazioni a conoscenza zero potrebbero preservare la Privacy sulle piattaforme blockchain.
ONE delle tendenze più importanti nel mondo della blockchain, in particolare quando si tratta di servizi finanziari e in particolare di operazioni Mercati capitali, è stata la necessità di Privacy e riservatezza nel corso delle attività quotidiane. Ciò ha comportato che le soluzioni blockchain siano progettate tenendo presente questa esigenza primaria. Ciò ha portato allo sviluppo di tutte le soluzioni blockchain private oggi.
Quando si costruisce per la Privacy e la riservatezza, ci sono dei compromessi che ne conseguono. Principalmente si perde la trasparenza, che era la caratteristica principale della prima blockchain: Bitcoin. Come originariamente progettata, una blockchain è una macchina per la trasparenza. In questo sistema, i computer sono distribuiti e ONE entità controlla la rete. Non solo, ma chiunque può essere un validatore e chiunque può scrivere o leggere dalla rete. I client e i validatori possono essere anonimi e tutti i dati vengono archiviati localmente in ogni nodo (replica). Ciò rende pubblici tutti i dati delle transazioni.
La sicurezza di Bitcoin è resa possibile da un processo di verifica in cui tutti i partecipanti possono convalidare le transazioni individualmente e autonomamente. Mentre Bitcoin affronta il problema Privacy emettendo indirizzi pseudonimi, è ancora possibile scoprire di chi sono gli indirizzi attraverso varie tecniche.
Questo è l'esatto opposto di quanto accade nel mondo della blockchain privata, dove la decentralizzazione e la trasparenza non sono considerate necessarie per molti casi d'uso Mercati dei capitali.
Ciò che conta è la Privacy e la riservatezza, la latenza (velocità) e la scalabilità (capacità di mantenere elevate prestazioni man mano che vengono aggiunti più nodi alla blockchain). Le transazioni da nodo a nodo crittografate (n2n) significano che solo le due parti coinvolte nella transazione ricevono dati. In molti di questi sistemi ci sono opt-in per nodi di terze parti (regolatori) per far parte della transazione.
Altri sistemi in fase di sviluppo per scopi simili, che sono statiscritto su questo blog, hanno ONE generatore di blocchi designato che raccoglie e convalida le transazioni proposte, raggruppandole periodicamente in una proposta di nuovo blocco. Il consenso è fornito da un generatore che applica le regole (convalida) concordate dai nodi (core della catena) al blocco e ai firmatari del blocco designati.
In questi sistemi, la decentralizzazione semplicemente non è necessaria perché tutti i nodi sono parti note. Nelle blockchain private, i nodi devono essere noti per soddisfare determinati requisiti normativi e di conformità. L'attenzione si è concentrata su come preservare la Privacy e la riservatezza, ottenendo al contempo velocità, scalabilità e stabilità di rete. Pertanto, ci sono modi per ricorrere legalmente anche tra parti che T si fidano necessariamente l'una dell'altra.
Identificazione crittografica forte e durevole
Cosa sono la crittografia e la cifratura?
Come notato sopra, con la Privacy e la riservatezza che sono fondamentali, la crittografia è diventata un obiettivo importante per tutte le blockchain. Molte di queste soluzioni utilizzano tecniche crittografiche avanzate che forniscono forti garanzie matematicamente dimostrabili per la Privacy dei dati e delle transazioni.
In un recente post del blog intitolato "Un gentile promemoria sulla crittografia" di Kathleen Breitman di R3CEV, fornisce in modo sintetico un'ottima definizione pratica:
"La crittografia si riferisce all'operazione di mascheramento del testo in chiaro, informazioni da nascondere. L'insieme di regole per crittografare il testo è chiamato algoritmo di crittografia. Il funzionamento di un algoritmo dipende dalla chiave di crittografia, o da un input all'algoritmo con il messaggio. Affinché un utente ottenga un messaggio dall'output di un algoritmo, deve esserci un algoritmo di decrittazione che, quando utilizzato con una chiave di decrittazione, riproduce il testo in chiaro."
Se questa crittografia utilizza il testo cifrato per decifrare questo testo in chiaro, si ottiene la crittografia omomorfica e questa (combinata con le tecniche di firma digitale) è la base per le tecniche crittografiche che saranno discusse in questo post. La crittografia omomorfica consente di eseguire calcoli su dati crittografati senza prima doverli decifrare. In altre parole, questa tecnica consente di preservare la Privacy dei dati/transazioni mentre vengono eseguiti calcoli su di essi, senza rivelare tali dati/transazioni. Solo coloro che dispongono di chiavi di decifratura possono accedere a cosa fossero esattamente tali dati/transazioni.
La crittografia omomorfica significa che decrypt(encrypt(A) + encrypt(B)) == A+B. Questo è noto come omomorfismo rispetto all'addizione.
Quindi un calcolo eseguito sui dati crittografati quando vengono decrittografati è uguale a un calcolo eseguito sui dati crittografati.
La domanda chiave che ci si pone è:Come si può convincere un sistema di un cambiamento di stato senza rivelare troppe informazioni?
Dopotutto, le blockchain vogliono condividere uno (cambio di) stato; non informazioni. Su una blockchain, un processo aziendale è allo stato X e ora si sposta allo stato Y, questo deve essere registrato e dimostrato preservando la Privacy e non condividendo molte informazioni. Inoltre, questo cambio di stato deve avvenire legalmente, altrimenti si verifica una violazione Privacy .
Le tecniche crittografiche come le prove a conoscenza zero (ZKP), che utilizzano diversi tipi di crittografia omomorfica, separano:
1) giungere ad una conclusione su uno stato di cose
2) le informazioni necessarie per raggiungere quello stato di cose
3) dimostrare che tale stato è valido.
Il resto di questo post discuterà di come la tendenza verso la Privacy abbia portato all'uso di tecniche crittografiche, alcune vecchie e altre nuove, per crittografare le transazioni e i dati ad esse associati da tutti tranne che dalle parti coinvolte. L'attenzione sarà rivolta a Zero Knowledge Proofs, zk SNARK, Hawk, firme riservate, canali di stato e crittografia omomorfica.
Il problema Privacy su una blockchain rappresenta la principale lacuna nell'implementazione di tutte le soluzioni crittografiche illustrate di seguito.
Al di fuori di una blockchain, ci sono esempi di crittografia omomorfica in pratica. CryptDB è un esempio di sistema che utilizza la crittografia omomorfica e altre tecniche di crittografia con conservazione degli attributi per interrogare i database in modo sicuro. È utilizzato in produzione presso Google e Microsoft, tra gli altri posti.
Ha però delle limitazioni: devi definire in anticipo i tipi di query che vuoi ed è facile che i dati trapelino. CryptDB garantisce la riservatezza per il contenuto dei dati e per i nomi di colonne e tabelle; tuttavia CryptDB non nasconde la struttura generale della tabella, il numero di righe, i tipi di colonne o ildimensione approssimativa dei dati in byte. ONE metodo che CryptDB usa per crittografare ogni elemento di dati è l'onioning. Questo consente a ogni elemento di dati di essere inserito in strati di crittografia sempre più forte.
Firme riservate
Gregory Maxwell ha progettato uno strumento crittografico (CT) per migliorare la Privacy e la sicurezza delle blockchain in stile bitcoin. Mantiene gli importi trasferiti visibili solo ai partecipanti alla transazione. I CT rendono privati gli importi e i saldi delle transazioni su una blockchain tramite crittografia, in particolare crittografia additivamente omomorfica. Ciò che gli utenti possono vedere sono i saldi dei propri conti e le transazioni che stanno ricevendo. Sono necessarie prove di conoscenza zero per dimostrare alla blockchain che nessuno degli output crittografati contiene un valore negativo.
Il problema con le transazioni riservate è che consentono solo prove molto limitate, come detto sopra. Gli zkSNARK e le prove a conoscenza zero (Zero Knowledge Proofs, ZKP), che saranno descritti in dettaglio di seguito, consentono di dimostrare praticamente qualsiasi tipo di convalida di transazione mantenendo privati tutti gli input.
Dimostrazioni a conoscenza zero (ZKP)
Le Zero Knowledge Proof (ZKP) non sono una novità. Sono state concettualizzate per la prima volta nel 1985 in un documento "The Knowledge Complexity of Interactive proof Systemshttps://groups.csail.mit.edu/cis/pubs/shafi/1985-stoc.pdf". Una ZKP è una tecnica crittografica che consente a due parti (un dimostratore e un verificatore) di dimostrare che una proposizione è vera, senza rivelare alcuna informazione su quella cosa a parte il fatto che sia vera. Nel caso delle criptovalute e delle blockchain, si tratterà generalmente di dati sulle informazioni transazionali.
Una dimostrazione a conoscenza zero deve soddisfare tre proprietà:
- Completezza: se l'affermazione è vera, il verificatore onesto (cioè ONE che segue correttamente il protocollo) sarà convinto di questo fatto da un dimostratore onesto.
- Solidità:Se l'affermazione è falsa, nessun verificatore imbroglione può convincere il verificatore onesto che è vera, se non con una piccola probabilità.
- Conoscenza zero: se l'affermazione è vera, nessun verificatore imbroglione apprende altro che questo fatto. Ciò è formalizzato mostrando che ogni verificatore imbroglione ha un simulatore che, data solo l'affermazione da dimostrare (e nessun accesso al dimostratore), può produrre una trascrizione che "LOOKS " un'interazione tra il dimostratore onesto e il verificatore imbroglione.
Le prime due sono proprietà più generalisistemi di prova interattivi. Il terzo è ciò che rende la dimostrazione a conoscenza zero."
zk-SNARK
Uno zk-SNARK (zero-knowledge Succinct Non-Interactive Arguments of Knowledge) è una dimostrazione a conoscenza zero che è un modo per dimostrare un fatto computazionale sui dati senza rivelare i dati. Gli Zk-SNARK sono lo strumento crittografico sottostante utilizzato in Zcash e Hawk, entrambi i quali stanno costruendo blockchain con ZKP ed entrambi saranno spiegati in seguito. Nel caso di Zcash questi SNARK sono utilizzati per verificare le transazioni e nel caso di Hawk sono utilizzati per verificare gli smart contract. Ciò viene fatto proteggendo comunque la Privacy degli utenti.
Uno zk-SNARK è una prova di conoscenza zero non interattiva che è succinta e per la quale le prove sono molto brevi e facili da verificare. Possono essere pensati come piccoli circuiti logici che devono generare una prova di dichiarazione per verificare ogni singola transazione. Lo fanno scattando un'istantanea di ogni transazione, generano una prova e poi devono convincere il lato ricevente che il calcolo è stato eseguito correttamente senza rivelare alcun dato tranne la prova stessa. Il funzionamento di base di un'esecuzione SNARK è un input codificato in questo circuito che può essere decrittografato.
Poiché gli zk-SNARK possono essere verificati rapidamente e le prove sono piccole, possono proteggere l'integrità del calcolo senza gravare sui non partecipanti. Va notato che questa Tecnologie sta appena iniziando a maturare, ma ha ancora delle limitazioni. Sono molto intensivi in termini di CPU per generare prove e ci vuole fino a 1 minuto per generare nuove prove, quindi il ridimensionamento è ancora un problema che deve essere risolto.
I primissimi punti dati per zk-SNARK saranno Zcash , che è una combinazione di stato distribuito e prova della proprietà degli asset.
Zcash
Zcash può essere descritto come un registro aperto, senza autorizzazione e replicato crittografato. Un protocollo crittografico per mettere dati privati su una blockchain pubblica. Zcash può essere pensato come un'estensione del protocollo Bitcoin . Fondamentalmente Zcash ha aggiunto alcuni campi al formato di transazione Bitcoin per supportare le transazioni crittografate.
Zcash usa SNARK (ZKP) per crittografare tutti i dati e fornisce le chiavi di decrittazione solo alle parti autorizzate per vedere quei dati. Finora questo non poteva essere fatto su una blockchain pubblica perché se avessi crittografato tutto in passato, ciò avrebbe impedito ai miner di controllare se le transazioni sono valide. Gli ZKP hanno reso possibile tutto questo consentendo al creatore di una transazione di fornire una prova che la transazione è vera senza rivelare l'indirizzo del mittente, l'indirizzo del destinatario e l'importo della transazione.
Zooko lo descrive dicendo che Bitcoin ha 3 colonne, che sono le tre menzionate sopra (indirizzo del mittente, indirizzo del destinatario, importo della transazione) e Zcash ne ha 4. La quarta colonna proof T conosce l'indirizzo del mittente, l'indirizzo del destinatario e l'importo trasferito, ma sa che nessuno avrebbe potuto creare la prova che accompagna i valori crittografati a meno che non avessero una chiave Secret che ha un valore sufficiente a coprire l'importo della transazione. Questa è una prova che i dati all'interno della crittografia soddisfano correttamente i costrutti di validità. Ciò consente di prevenire doppie spese e transazioni inferiori a zero.
Zcash è per lo più uguale a Bitcoin. I miner e i nodi completi sono validatori di transazioni. Zcash usa POW che ha i miner che controllano gli ZKP allegati a ogni transazione e ottengono una ricompensa per la convalida di tali transazioni. I nodi completi sono uguali, tranne per il fatto che se hai le chiavi private puoi rilevare se alcune transazioni contengono denaro che è lì Per te. Gli SNARK fanno in modo che i miner possano rifiutare una transazione da qualcuno se la loro chiave privata T ha abbastanza denaro per quella transazione.
Mantenendo tutti i dati privati, ad eccezione della quarta colonna, si evita che le informazioni trapelino su una blockchain privata, consentendo a tutti di visualizzare le informazioni sulle transazioni. Zcash ha trasparenza selettiva mentre Bitcoin ha una trasparenza obbligatoria. Ciò significa che Zcash può rivelare cose specifiche a persone specifiche tramite autorizzazione. Rivela transazioni specifiche che chiunque le guardi può verificare nella blockchain.
Alcune differenze rispetto alLibro bianco su Zcashincludere:
"Il valore in Zcash è trasportato da note, che specificano un importo e una chiave di pagamento. La chiave di pagamento è parte di un indirizzo di pagamento, che è una destinazione a cui possono essere inviate le note. Come in Bitcoin, questo è associato a una chiave privata che può essere utilizzata per spendere le note inviate all'indirizzo; in Zcash questo è chiamato chiave di spesa.
Un indirizzo di pagamento include due chiavi pubbliche: una chiave di pagamento corrispondente a quella delle note inviate all'indirizzo e una chiave di trasmissione per uno schema di crittografia asimmetrica chiave-privata. "Chiave-privata" significa che i testi cifrati non rivelano informazioni sulla chiave con cui sono stati crittografati, tranne che al detentore della corrispondente chiave privata, che in questo contesto è chiamata chiave di visualizzazione. Questa funzione viene utilizzata per comunicare le note di output crittografate sulla blockchain al destinatario previsto, che può utilizzare la chiave di visualizzazione per scansionare la blockchain alla ricerca di note a lui indirizzate e quindi decifrare tali note.
La base delle proprietà Privacy di Zcash è che quando una nota viene spesa, chi la spende dimostra solo che è stato rivelato un impegno per essa, senza rivelare ONE. Ciò implica che una nota spesa non può essere collegata alla transazione in cui è stata creata."
Zcash è ciò che è noto come schema di pagamento anonimo decentralizzato (schema DAP). Uno schema DAP consente agli utenti di pagarsi direttamente l'un l'altro in privato: la transazione corrispondente nasconde l'origine, la destinazione e l'importo trasferito del pagamento.
In Zcash, le transazioni sono inferiori a 1 kB e richiedono meno di 6 ms per la verifica, ordini di grandezza più efficienti del meno anonimo Zerocoin e competitivi con Bitcoin. Tuttavia, la Privacy ottenuta è significativamente maggiore rispetto a Bitcoin. La de-anonimizzazione Bitcoin è diventata molto più semplice tramite servizi che tracciano e monitorano i movimenti Bitcoin e i dati ad esso associati. I servizi di mixer consentono di cambiare le monete mentre si spostano nel sistema tramite una parte centrale, ma questo non è ancora sufficiente.
IL Libro bianco su Zcashafferma:
"[I] mix soffrono di tre limitazioni: (i) il ritardo per recuperare le monete deve essere ampio per consentire di mescolare abbastanza monete; (ii) il mix può tracciare le monete; e (iii) il mix può rubare le monete. Per gli utenti con "qualcosa da nascondere", questi rischi possono essere accettabili. Ma i tipici utenti legittimi (1) desiderano KEEP le proprie abitudini di spesa private dai loro pari, (2) sono avversi al rischio e non desiderano impegnarsi continuamente per proteggere la propria Privacy e (3) spesso non sono sufficientemente consapevoli della propria Privacy compromessa."
Le motivazioni principali per ZKP e il protocollo Zcash sono 1) la Privacy e 2) la fungibilità. La fungibilità è la possibilità di sostituire singole unità di qualcosa come una merce o denaro per un importo uguale. Questo può essere un vero problema quando alcune unità di valore sono considerate inferiori perché considerate "sporche". Nascondere la cronologia dei metadati T consente che una moneta con una cattiva cronologia venga rifiutata da un commerciante o da uno scambio. Gregory Maxwell ha affermato " Privacy insufficiente può anche comportare una perdita di fungibilità, ovvero alcune monete sono considerate più accettabili di altre, il che comprometterebbe ulteriormente l'utilità di Bitcoin come moneta".
Si prevede che Zcash lancio imminente e con questo il blocco genesi della blockchain Zcash . Ciò consentirà, come la blockchain Bitcoin , a chiunque nel mondo di estrarre, per Zcash. Sarà un sistema aperto e senza permessi (completamente decentralizzato). Gli utenti saranno in grado di inviarlo a chiunque utilizzando la Privacy a conoscenza zero.
L'uso di tecniche crittografiche all'avanguardia da parte di ZCash comporta rischi sostanziali. Un attacco crittografico che consenta la falsificazione di prove a conoscenza zero consentirebbe a un aggressore di creare in modo invisibile valuta illimitata e svalutare il valore di Zcash. Attacchi di questo tipo sono stati trovati e risolti nel recente passato. Fortunatamente, le tecniche di occultamento dei metadati utilizzate in Zcash Tread sono più resistenti alla produzione e possono essere considerate meno rischiose.
Falco
Andrew Miller nel suoLibro bianco: "Hawk: il modello Blockchain di crittografia e contratti intelligenti che preservano la privacy" ha sviluppato un sistema di contratti intelligenti programmabili che funziona in modo molto simile a Zcash per i contratti intelligenti.
Hawk non memorizza le transazioni finanziarie sulla blockchain e mantiene privato il codice del contratto, i dati inviati al contratto e il denaro inviato e ricevuto dal contratto dal pubblico. È solo la prova che può essere vista e tutte le altre informazioni utili sono nascoste. Come Zcash, la trasparenza è selettiva in Hawk e T dovrebbe essere utilizzata da tutti i contratti intelligenti, ma in base ai casi d'uso e alle preferenze delle parti coinvolte. Mira anche ad affrontare i problemi di Privacy e fungibilità più o meno allo stesso modo del protocollo Zcash .
Il whitepaper di Hawk descrive molto bene le motivazioni alla base della sicurezza contrattuale che intende fornire per le transazioni finanziarie:
"Mentre la Privacy on-chain protegge la Privacy delle parti contrattuali dal pubblico (vale a dire, le parti non coinvolte nel contratto finanziario), la sicurezza contrattuale protegge le parti nello stesso accordo contrattuale l'una dall'altra. Hawk presuppone che le parti contrattuali agiscano egoisticamente per massimizzare il proprio interesse finanziario. In particolare, possono deviare arbitrariamente dal protocollo prescritto o persino interrompere prematuramente. Pertanto, la sicurezza contrattuale è una nozione multiforme che comprende non solo nozioni crittografiche di riservatezza e autenticità, ma anche equità finanziaria in presenza di comportamenti di imbroglio e interruzione."
Secondo Andrew Miller, Hawk si basa su diverse primitive crittografiche. Utilizza la stessa libreria di prova a conoscenza zero di Zcash, che si chiama libsnark. Hawk utilizza anche implementazioni personalizzate di una funzione hash basata su lattice e crittografia a chiave pubblica. Hawk utilizza uno strumento jSnark che è open source.
In Hawk, ogni parte genera le proprie chiavi Secret . Miller ha affermato che:"Per ogni contratto, c'è anche un parametro pubblico attendibile, simile a Zcash. L'unico modo per generare questi parametri è un processo che comporta la generazione di un valore Secret in una fase intermedia, che deve essere cancellato alla fine del protocollo. Per prendere in prestito il termine di Zcash per questo, è come un "sottoprodotto di rifiuti tossici" della procedura di installazione e, come tutti i rifiuti industriali, deve essere smaltito in modo sicuro. Ci sono molte opzioni... potremmo fare ciò che fa Zcash e utilizzare un calcolo multi-parte per generare questi parametri, semplicemente lasciare che una parte attendibile lo faccia (la parte attendibile deve essere utilizzata solo una volta e può andare offline in seguito), oppure utilizzare hardware attendibile come SGX."
Miller ha affermato che ci sono alcune differenze tra i contratti Ethereum e i contratti Hawk. A differenza di Ethereum, il linguaggio di input per i contratti privati in Hawk è il codice C. Un contratto Hawk privato non è un processo con stato di lunga durata come un contratto Ethereum , ma piuttosto un contratto 1-shot che procede in fasi, dove prima riceve gli input da ciascuna parte e poi calcola gli output per ciascuna parte. Dopo che gli output sono stati calcolati, il contratto è terminato e non detiene più alcun saldo. Quindi, è un modello di elaborazione leggermente diverso. Hawk supporta sia i contratti privati come descritto sopra, sia i contratti pubblici che sono esattamente come quelli in Ethereum. (Tuttavia, non vengono fornite garanzie Privacy per i contratti pubblici).
Come in Zcash, ci sono alcune sfide per la scalabilità della blockchain e l'ottimizzazione degli schemi crittografici in modo che siano efficienti quando si utilizzano ZKP. Hawk cerca di fare più calcoli possibili fuori dalla catena. Questo perché nelle blockchain pubbliche il calcolo sulla catena viene replicato su ogni nodo e rallenta le cose in modo drammatico. Produrre la prova può richiedere fino a diversi minuti (il che è lungo) e può essere costoso. I nodi che controllano la prova impiegano solo millisecondi per farlo. Dati dal whitepaper: in Hawk, ci vuole circa un minuto di tempo di CPU per ogni partecipante a un contratto Hawk. Il calcolo sulla catena richiede circa 9-20 millisecondi.
Hawk non ha ancora annunciato una data di rilascio poiché sta ancora lavorando all'ottimizzazione dei propri strumenti di compilazione Snark per migliorarne le prestazioni.
Canali statali
I canali di stato consentono canali di pagamento che sono off-chain e consentono aggiornamenti a qualsiasi tipo di applicazione che abbia un cambio di stato. Come Lightning Network, due o più utenti possono scambiare pagamenti che normalmente richiederebbero una transazione blockchain senza doverli pubblicare sulla blockchain o attendere conferme, tranne quando si imposta o si chiude il canale.
Vitalik Buterin lo spiega nel suo articolo per R3CEV "Recensione della piattaforma Ethereum"
"I canali di stato sono una strategia che mira a risolvere la sfida della scalabilità mantenendo lo stesso protocollo blockchain sottostante, cambiando invece il modo in cui il protocollo viene utilizzato: anziché utilizzare la blockchain come livello di elaborazione primario per ogni tipo di transazione, la blockchain viene invece utilizzata puramente come livello di regolamento, elaborando solo la transazione finale di una serie di interazioni ed eseguendo calcoli complessi solo in caso di controversia
I canali di stato non sono una soluzione perfetta; in particolare, è meno chiaro come si estendano alle applicazioni multiutente di massa e non offrono miglioramenti di scalabilità rispetto alla blockchain originale in termini di capacità di memorizzare una grande dimensione di stato: aumentano solo la produttività delle transazioni di fatto.
Tuttavia, presentano una serie di vantaggi, il più importante dei quali è forse che oltre a essere una soluzione di scalabilità, sono anche una soluzione Privacy , poiché la blockchain non vede nessuno dei pagamenti o contratti intermedi, fatta eccezione per la liquidazione finale e le eventuali controversie, e una soluzione di latenza, poiché gli aggiornamenti dei canali di stato tra due parti sono istantanei, molto più rapidi di qualsiasi soluzione diretta su blockchain, privata o pubblica, e potenzialmente persino più rapidi degli approcci centralizzati, poiché gli aggiornamenti dei canali da A a B possono essere sicuri senza passare attraverso un server centralizzato."
I canali statali mirano ad affrontare i problemi di scalabilità, di Privacy e i ritardi di conferma associati alle blockchain pubbliche, consentendo al contempo ad attori che T si fidano necessariamente l'uno dell'altro di effettuare transazioni.
Hai davvero bisogno di una blockchain? È necessario il consenso?
Per molte persone tutti questi metodi crittografici che MASK tutti i dati transazionali saranno una sorpresa. La blockchain dovrebbe essere una macchina di trasparenza in cui chiunque può unirsi alla rete e di conseguenza visualizzare tutte le informazioni su quella rete. Anche nelle blockchain private, c'è una visione più aperta sui dati rispetto ai protocolli che sono stati menzionati in questo post.
Un'altra domanda che potrebbe venire in mente è se il consenso sia davvero necessario, dal momento che tutto è privato tranne la prova. Se la prova è solo tra le due parti coinvolte nella transazione, perché è necessario il consenso e perché utilizzare una blockchain pubblica? Può sembrare controintuitivo, ma la risposta è che sì, una blockchain pubblica è necessaria e così anche il consenso, e ciò è dovuto alla Privacy delle prove. In sostanza, è necessaria una trasparenza completa per mantenere la Privacy delle prove.
ZKP e blockchain si completano a vicenda. T puoi semplicemente usare ONE per sostituire l'altro. Una blockchain viene utilizzata per assicurarsi che l'intera rete possa concordare su uno stato che può o non può essere crittografato. Gli ZKP ti consentono di essere sicuro di alcune proprietà di quello stato. In questo scenario, hai ancora bisogno di una fonte canonica di verità. Una chiave di visualizzazione che riveli tutte le transazioni in entrata ma non quelle in uscita. Affinché ciò accada, hai bisogno di un registro completamente decentralizzato con consenso in cui tutti siano d'accordo con i dati scritti lì.
Ad esempio, Zcash ha dati che contengono informazioni inutili e illeggibili per la maggior parte degli attori. È un database di impegni e pezzi di dati opachi. È solo un modo per sincronizzare i dati tra gli attori. (Zooko Wilcox ha dichiarato pubblicamente che se Chainalysis lo rappresentasse graficamente, sarebbe solo una serie di timestamp di quando si è verificata una transazione.) Nei casi in cui il numero di transazioni è basso, gli attacchi di temporizzazione potrebbero rivelare l'originatore delle transazioni, immagina che ciò equivalga a ONE nodo connesso a una rete Tor.
La vera enfasi è sul lato del portafoglio per gli attori perché questo consente loro di spendere denaro e spostare asset, in Bitcoin puoi prendere una chiave privata e spostare Bitcoin. Ora è di più. È una chiave privata e un set di segreti che KEEP per dimostrare la prova precedente e generare una nuova prova che usi per convincere gli altri. Per questo, è necessario un registro completamente decentralizzato con consenso in cui tutti sono d'accordo con i dati scritti lì.
Una blockchain è necessaria perché hai bisogno di un livello di consenso da parte di tutti: è necessario avere un accordo di prove nel registro per spostare le risorse in seguito, se quella prova T è disponibile in ogni nodo allora T puoi convincere nessuno della prova quando hai bisogno di spostare le risorse in seguito. Queste prove devono essere archiviate in modo aperto in modo che le prove possano essere viste come verificate e accettate dalle parti riceventi.
Ci sono due livelli diversi: 1) Deve esserci un accordo su quali prove tutti accettano 2) Deve esserci un accordo su cosa si può dimostrare e cosa succede in caso di dimostrazione di conoscenza zero e cosa succede una volta che si conoscono le informazioni.
Come si genera una prova e si passa tale informazione alla persona successiva? La chiave è ottenere l'autorità della transazione aggiungendo una prova o metadati alla transazione con un qualche tipo di script condizionale (istruzioni if then per l'accettazione della transazione). Questo codice contiene regole di validità della transazione. Una persona vede la prova dall'esterno ma T sa se la regola stessa è stata attivata o meno.
Ora che hai la Privacy dagli ZKP, per rispettare la transazione, devi dimostrare che la transazione rispetta le regole. Quindi puoi prendere 2 prove e crearne di nuove che la persona che le riceve può indicare e verificare che la prova sia accettata dall'intera rete. Una volta che le prove hanno un significato per te in base alle regole, puoi concordare che sono state dimostrate in passato e possono essere utilizzate in futuro per effettuare transazioni e trasferire denaro.
Limitazioni
Gli ZKP stanno uscendo dal regno della teoria e stanno diventando forza di produzione. Ora è il momento di vedere quanto sono pratici. Stanno solo ora iniziando ad avere test realmente mondiali e soffrono ancora di grandi problemi di scalabilità.
Il lavoro di sviluppo di una dimostrazione è enorme e ha costi di calcolo enormi. Come detto prima, in Zcash per creare una dimostrazione, se si sposta denaro da qualcun altro, ci vogliono tra 45 secondi e 1 minuto su un computer davvero potente. Attualmente, le persone stanno lavorando per rendere SNARK e ZKP più efficienti consentendo più dimostrazioni al secondo o dimostrazioni più elaborate nello stesso lasso di tempo.
È necessario apportare profondi cambiamenti architettonici ai DLT: comprendere la conoscenza dell'architettura ZKP significa comprendere i vincoli di ciò che è possibile dimostrare e a quale scala.
Questo articolo è stato precedentemente pubblicato sul sito dell'autorebloged è stato ripubblicato qui con autorizzazione.
Dichiarazione informativa:CoinDesk è una sussidiaria di Digital Currency Group, che detiene una quota di proprietà di Zcash.
Immagine di serrature e chiavitramite Shutterstock
Nota: Le opinioni espresse in questa rubrica sono quelle dell'autore e non riflettono necessariamente quelle di CoinDesk, Inc. o dei suoi proprietari e affiliati.
George Samman
George Samman è il co-fondatore e COO di <a> BTC.sx</a>, la prima piattaforma di trading al mondo basata solo su bitcoin. È un ex Senior Portfolio Manager e Market Strategist di Wall Street, nonché un analista tecnico. Ha conseguito la qualifica di Chartered Market Techician (CMT). Trader esperto, George ha oltre otto anni di esperienza nei Mercati finanziari.
