Il direttore tecnico della Fondazione Cardano, Matthias Benkort (noto anche come @KtorZ), ha incapsulato con successo l'intera blockchain Bitcoin in un unico blocco sulla blockchain Cardano. Questo annuncio , fatto tramite X (ex Twitter), ha avuto ripercussioni nella comunità blockchain, evidenziando il potenziale per la gestione avanzata dei dati e l'interoperabilità tra blockchain.
Una svolta per Cardano e la tecnologia Blockchain
La rivelazione di Benkort è arrivata con il rilascio di una nuova libreria open source su GitHub, intitolata "Merkle Patricia Forestry". La libreria introduce una serie di strumenti sia on-chain che off-chain progettati per funzionare con Merkle Patricia Tries su Cardano. Come descritto nella documentazione del rilascio, un Merkle Patricia Trie è "una struttura dati persistente e autenticata per mappare chiavi e valori arbitrari". Essenzialmente, funziona come una hashmap altamente efficiente e sicura.
La documentazione approfondisce la struttura, affermando: "Gli elementi sono rappresentati in un trie ottimizzato per lo spazio (noto anche come albero dei prefissi) di radice 16. L'hash digest delle loro chiavi fornisce il percorso ai valori nel trie". Questo approccio offre numerosi casi d'uso, come il mantenimento di grandi registri on-chain (ad esempio, domini), o la fornitura di vasti set di dati oracolati di dati intrinseci (ad esempio, una mappa di deleganti/delegati) o dati estrinseci (ad esempio, dati GitHub relativi a un ecosistema di progetti). È particolarmente adatto per set di dati di lunga durata che crescono a un ritmo lento, come una blockchain Proof-of-Work (PoW) .
Le caratteristiche principali della libreria Merkle Patricia Forestry includono l'iscrizione, l'inserimento e l'eliminazione rapidi di qualsiasi elemento chiave/valore in un archivio di grandi dimensioni, facilitato da un root hash digest (32 byte) e da una prova concisa (<1KB). La libreria incorpora diverse ottimizzazioni ispirate al Modified Merkle Patricia Trie (MPT) di Ethereum, ma introduce un nuovo approccio per organizzare i nodi come piccoli Sparse Merkle Trees. Questa innovazione si traduce in prove di dimensioni molto più piccole e costituisce la base per il nome della biblioteca: Merkle Patricia Forestry.
Benkort ha spiegato i compromessi in termini di prestazioni, sottolineando che l'ottimizzazione sacrifica alcune unità di esecuzione della memoria e della CPU per ottenere dimensioni di prova più piccole. Nonostante ciò, la libreria raggiunge un buon equilibrio tra dimensioni della prova, utilizzo della memoria ed efficienza della CPU, come dettagliato nelle tabelle delle prestazioni incluse nella documentazione. Queste tabelle riepilogano le dimensioni della prova, le unità di memoria e le unità CPU richieste per le varie dimensioni del trie, evidenziando l'efficienza della libreria in diversi scenari.
Spiegazione e dimostrazione dettagliate
In una serie di post dettagliati su X, Benkort della Cardano Foundation ha fornito ulteriori approfondimenti sull'implementazione e sulle capacità della libreria. Ha spiegato che la libreria è composta da due parti: una implementata in Aiken per utilità specifiche per i contratti intelligenti e un'altra in Node.js per le operazioni off-chain. Questa implementazione completa del Merkle Patricia Tries modificato, con una svolta unica, è ciò che Benkort chiama "Merkle Patricia Forestry".
"Fondamentalmente, si tratta di una struttura dati autenticata per mappare chiavi arbitrarie su valori arbitrari", ha affermato Benkort. "Tuttavia, è fatto in modo tale che sia possibile eseguire alcune operazioni solo a partire da un piccolo hash e da una prova concisa, senza la necessità di trasportare l'intera struttura dei dati."
Per chi ha familiarità con la tecnologia blockchain, i Merkle Trees sono una struttura simile, anche se più semplice, utilizzata principalmente per rappresentare elenchi di elementi e verificarne l'appartenenza utilizzando un hash root. Tuttavia, Merkle Patricia Tries (MPT) estendono questa funzionalità, consentendo non solo la verifica dell'appartenenza ma anche l'inserimento e l'eliminazione di coppie chiave/valore. Ethereum utilizza MPT per lo stato della blockchain e l'archiviazione delle transazioni, consentendo ai light client di interrogare i saldi senza archiviare l'intera blockchain.
Un problema significativo con gli MPT tradizionali è la grande dimensione delle prove, che possono estendersi su più kilobyte per archivi di dati estesi. Questo non è così problematico per le operazioni fuori catena, ma in catena ogni byte è prezioso. L'implementazione di Benkort risolve questo problema utilizzando minuscoli alberi Merkle sparsi di 16 elementi ad ogni livello, creando effettivamente alberi all'interno dei tentativi. Questa struttura riduce drasticamente la dimensione delle dimostrazioni, scambiando alcuni passaggi computazionali con i guadagni di efficienza di Cardano.
Benkort ha dimostrato questa capacità attraverso una recente transazione che ha trascorso un UTxO contenente l'hash root di un Merkle Patricia Forestry che rappresenta l'intero hash dell'intestazione del blocco Bitcoin, compresso in soli 32 byte. La transazione ha dimostrato la capacità di continuare la catena inserendo un nuovo blocco nel trie, mantenendo una catena autenticata di oltre 850.000 blocchi con un sovraccarico di dati minimo.
"La transazione che ho appena collegato sta facendo qualcosa di abbastanza inaspettato", ha spiegato Benkort. "Trascorre un UTxO che contiene l'hash root di un Merkle Patricia Forestry che rappresenta l'intero hash dell'intestazione del blocco Bitcoin, mappato sulle loro transazioni. Sono circa 850.000 blocchi, compressi in 32 byte."
Per spendere questo UTxO è necessario fornire una prova on-chain per mostrare la continuazione della catena inserendo un nuovo blocco nel trie. L'hash root aggiornato memorizzato sulla catena deve rappresentare la catena precedente più un blocco. L'intero validatore per questa operazione rientra in sole 26 righe dell'Aiken di Cardano.
Implicazioni future e casi d'uso
Benkort ha evidenziato le potenziali applicazioni di questa tecnologia, che vanno dai bridge trustless ai negozi chiave/valore arbitrariamente grandi gestiti completamente on-chain. “Immaginate il regno delle possibilità con set di dati così grandi”, ha suggerito. “Un registro di domini? Un feed di dati sui mercati finanziari? Statistiche su GitHub? Vedo un mondo in cui istituzioni o comitati pubblicano grandi set di dati sotto forma di un semplice root hash on-chain, fungendo effettivamente da oracoli per una varietà di contratti intelligenti su tutta la linea."
Benkort ha concluso riflettendo sul percorso di questo progetto, iniziato come progetto parallelo alla fine dello scorso anno. "È bello rilasciarlo finalmente", ha detto. “Originariamente era qualcosa che ho iniziato alla fine dello scorso anno, un po’ come progetto parallelo. Date le molte conversazioni a riguardo ultimamente, ho pensato di resuscitare e impacchettare adeguatamente quel codice. Open source per la vittoria."
Al momento della stesura di questo articolo, Cardano (ADA) veniva scambiato a 0,455$.