Midnight dettaglia le correzioni di sicurezza in Ledger 9.1.0.1

La versione attivata su mainnet affronta problemi relativi a commissioni di transazione, limiti di blocco e saldi dei wallet. Introduce anche una validazione più rigorosa per gli sviluppatori che costruiscono su Midnight.

By SongMarketCap

Updated:

Midnight News - Midnight dettaglia le correzioni di sicurezza in Ledger 9.1.0.1

Midnight ha pubblicato il codice sorgente e le note di rilascio di Ledger 9.1.0.1, la versione attivata su mainnet durante l’aggiornamento di rete del 6 novembre. Il rilascio elenca 13 correzioni, incluse modifiche al calcolo delle commissioni di transazione, ai limiti di blocco e al modo in cui i wallet mostrano le monete.

Secondo le note di rilascio, gli operatori di nodo hanno ricevuto il software il 3 novembre. Il codice sorgente e le descrizioni delle correzioni sono stati pubblicati il 7 novembre. L’aggiornamento rifiuta inoltre alcune transazioni che le build precedenti di Ledger 9 accettavano.

Modifiche alle commissioni di transazione e ai limiti di blocco

Il ledger è la parte del software di Midnight che determina se le transazioni sono valide e quanto costano. Midnight è passata a Ledger 9 senza il consueto periodo di preavviso sulla rete di test Preprod. Il progetto ha spiegato che utilizza un processo di rilascio più controllato quando le correzioni di sicurezza lo richiedono.

Un problema riguardava il modo in cui i nodi gestivano voci ripetute nelle strutture dati condivise. Secondo le note di rilascio, una piccola transazione poteva costringere un nodo a svolgere una quantità di lavoro in aumento esponenziale prima di verificare la sua commissione. Il ledger aggiornato rifiuta le voci ripetute prima di calcolare la commissione ed elabora i dati in un tempo proporzionale alla loro dimensione.

Altre due correzioni riguardano i limiti di blocco. In precedenza una transazione poteva dichiarare eliminazioni che non eseguiva, riducendo le commissioni per altre parti della transazione e aggirando il limite sui byte netti scritti. Un distinto problema di calcolo consentiva che un tempo di calcolo dichiarato di almeno 2⁶³ picosecondi fosse addebitato come zero. Entrambi i tipi di transazione ora vengono rifiutati come non validi.

DUST, wallet e il bridge Cardano

Le commissioni di transazione su Midnight si pagano con DUST, una risorsa generata dalle detenzioni di NIGHT. Le note di rilascio descrivono un problema in cui uno smart contract poteva catturare risorse di commissione in eccesso accreditate durante la registrazione mentre il registrante riceveva comunque l’importo completo. Le chiamate di contratto che trasferiscono la risorsa commissione come input o output pubblico ora vengono rifiutate.

Un’altra correzione riguarda il modo in cui i wallet riproducono gli eventi dalla chain. Un output valido poteva contenere un record cifrato che non corrispondeva al suo commitment crittografico. Questo poteva indurre un wallet a mostrare monete che non poteva spendere oppure a sovrascrivere la posizione di una moneta che già deteneva. Le note di rilascio affermano che lo stato on chain non è stato influenzato.

L’aggiornamento cancella inoltre in modo più approfondito dalla memoria i dati sensibili derivati dai seed del wallet. Alcune delle correzioni elencate fanno riferimento a riscontri di audit, e le note di rilascio rimandano a nove avvisi di sicurezza su GitHub le cui pagine non erano pubblicamente disponibili la mattina dell’8 novembre.

Una correzione separata si applica al bridge di protocollo destinato a trasferire token da Cardano a Midnight. In precedenza le richieste a valore zero potevano superare la validazione senza pagare una commissione. Le richieste ora devono soddisfare il minimo richiesto oppure coprire l’intero saldo residuo. Il bridge è presente nel codice di Ledger 9 ma resta disabilitato su mainnet finché una separata azione di governance non lo abilita.

[NEWSBREAK]

Pacchetti per sviluppatori e problemi rimanenti

Il rilascio include @midnight-ntwrk/ledger-v9 1.0.1, onchain-runtime-v4 4.0.1 e Proof Server 9.0.1. Un proof server genera le prove a conoscenza zero usate nelle transazioni. La documentazione dell’aggiornamento a mainnet di Midnight elenca separatamente Proof Server 9.0.0 tra i suoi componenti compatibili.

Ledger 9.1.0.1 rifiuta le transazioni con firme del comitato duplicate o con registrazioni della commissione duplicate. Un contratto può contenere non più di 256 operazioni, ogni deployment è addebitato per il suo stato completo, e il gas dichiarato deve restare entro il limite del blocco.

Diverse funzioni di calcolo dei costi in Rust ora restituiscono un errore invece di un valore. Gli sviluppatori che calcolano direttamente le commissioni devono tener conto di questo cambiamento nelle loro integrazioni.

Due problemi noti della versione 9.1.0.0 restano aperti. Uno può causare il rifiuto di una chiamata di contratto quando la sua commissione è pagata con esattamente una spesa di DUST. La documentazione di Midnight indica l’uso di due o più spese DUST come soluzione temporanea mentre è pianificata una correzione per una versione successiva.