Cardano propone il supporto nativo a Poseidon per applicazioni a conoscenza zero

CIP-0199 propone di aggiungere la permutazione Poseidon come funzione nativa di Plutus, offrendo agli sviluppatori di Cardano una base più efficiente per applicazioni che combinano smart contract con prove a conoscenza zero. La proposta è in revisione formale e non è disponibile su mainnet.

By SongMarketCap

Updated:

Cardano News - Cardano propone il supporto nativo a Poseidon per applicazioni a conoscenza zero

Cardano Improvement Proposal 0199 introduce una nuova primitiva crittografica di Plutus per applicazioni a conoscenza zero. Gli editor dei CIP lo hanno confermato come candidato il 15 settembre dopo una prima revisione tecnica. Le transazioni ADA ordinarie non sono interessate poiché la proposta non è stata integrata né attivata.

CIP-0199 introduce una nuova primitiva di Plutus

La proposta aggiungerebbe una funzione integrata di Plutus chiamata bls12_381_poseidonPermutation. Gli smart contract potrebbero eseguire la permutazione Poseidon tramite l’implementazione nativa di Plutus di Cardano invece di riprodurre il calcolo all’interno di uno script.

Poseidon è una famiglia di funzioni crittografiche progettate per sistemi a conoscenza zero. A differenza degli hash tradizionali come SHA-256 e Blake2b, utilizza lo stesso tipo di aritmetica in campo finito presente in molti circuiti ZK.

Gli hash tradizionali sono efficienti sui processori convenzionali ma richiedono molti più vincoli all’interno di un circuito a conoscenza zero. Una funzione nativa Poseidon potrebbe ridurre tale divario computazionale quando i dati vengono elaborati all’interno di una prova e successivamente verificati da uno smart contract su Cardano.

CIP-0199 è stato redatto da Gamze Orhon Kilic e Thomas Vellekoop. La relativa pull request rimane aperta mentre i dettagli di implementazione vengono discussi con il team Plutus.

Poseidon collega Cardano agli strumenti ZK esistenti

Le applicazioni a conoscenza zero utilizzano spesso alberi di Merkle per dimostrare che un’informazione appartiene a un dataset più ampio senza rivelare il dataset completo. Una radice può essere conservata on chain mentre le singole prove di appartenenza vengono verificate quando necessario.

Secondo CIP-0199, le funzioni di hash tradizionali possono richiedere decine di migliaia di vincoli di circuito per una singola valutazione. Poseidon può svolgere un lavoro comparabile con alcune centinaia di vincoli perché si basa su somme e moltiplicazioni nel campo finito nativo.

Il registro iniziale conterrebbe due varianti di Poseidon. Una è basata su midnight-zk, la libreria a conoscenza zero utilizzata da Midnight. La seconda segue l’ecosistema R1CS in stile Circom sul campo scalare BLS12-381.

Gli script Plutus potrebbero quindi verificare impegni e prove prodotti tramite due approcci di sviluppo ZK consolidati. La proposta standardizza la permutazione sottostante consentendo al contempo alle applicazioni di riprodurre le convenzioni di hashing richieste da ciascun sistema.

I benchmark preliminari collocano una permutazione Poseidon tra 22 e 24 microsecondi sulla macchina di benchmarking del modello di costo di Plutus. Si stima che una chiamata consumi circa lo 0,24 per cento dell’attuale budget CPU per transazione, mentre una prova di Merkle con profondità 20 utilizzerebbe approssimativamente il 4,8 per cento. Questi risultati provengono da lavori di integrazione preliminari, non da una versione di produzione di Cardano.

La revisione della sicurezza definisce il percorso di attivazione

CIP-0199 propone una permutazione Poseidon invece di una funzione di hash completa. Gli ecosistemi ZK usano convenzioni diverse per disporre gli input, inizializzare lo stato interno e selezionare l’output finale.

Plutus eseguirebbe la permutazione computazionalmente intensa, mentre ogni applicazione resterebbe responsabile dell’implementazione della corretta struttura di hash circostante. La proposta include vettori di test e indicazioni d’uso poiché un inquadramento errato potrebbe creare costruzioni incompatibili o non sicure.

La realizzazione preliminare si basa anche su un core Poseidon scritto in C che non ha completato un audit indipendente. Restano necessarie un’ulteriore integrazione con Plutus, la finalizzazione dei parametri di costo, la verifica incrociata dei vettori di test e una revisione di sicurezza esterna.

Lo stato di candidato non aggiunge automaticamente la funzione a Cardano. Sarebbero comunque necessarie un’implementazione completata, l’approvazione tecnica e l’attivazione del protocollo prima che gli sviluppatori possano utilizzarla su mainnet.

Se attivato, CIP-0199 fornirebbe a Plutus un componente nativo per la verifica di impegni e prove a conoscenza zero basati su Poseidon. Amplierebbe l’infrastruttura di sviluppo di Cardano attorno ad ADA stabilendo al contempo un percorso di compatibilità definito per i sistemi di prova basati su Midnight e Circom.