Skip to content
Blockchain

Perché posso verificare il codice rispetto a una specifica, ma non posso verificare la specifica stessa?

84

Opportunità

La verifica formale degli smart contract dimostra che il codice soddisfa una specifica scritta, ma non è in grado di stabilire se tale specifica rifletta effettivamente il comportamento previsto dal contratto. Un sondaggio MDPI del 2025 sugli strumenti di audit automatizzati all’avanguardia ha rilevato che questi rilevano solo dall’8 al 20 per cento dei bug sfruttabili presenti in produzione, pur segnalando una copertura superiore al 90 per cento dei modelli sintattici di basso livello. Il divario risiede proprio nelle specifiche: errori logici, condizioni di blocco delle risorse e ipotesi relative agli oracoli non compaiono quasi mai nelle specifiche perché gli ingegneri non sanno come elencarli prima che un attacco dimostri la necessità di farlo. Il documento PropertyGPT presentato all’NDSS 2025 afferma chiaramente che la comunità non dispone ancora di una generazione automatizzata di proprietà complete per una verifica formale efficace. Ogni audit che approva un contratto sulla base di specifiche incomplete produce un falso livello minimo di fiducia anziché una garanzia di sicurezza

Perché è importante

Uno strumento in grado di generare invarianti candidati a partire dal codice contrattuale, dal contesto aziendale e dai database storici degli exploit trasformerebbe la verifica formale da un semplice controllo di correttezza in una vera e propria garanzia di sicurezza.

Come valuto l'opportunità

L'Opportunity Score è la mia valutazione personale, non una misurazione: quanto fa male, con quale frequenza colpisce e quanto poco esiste per risolverlo oggi. Un punteggio più alto significa che lo ritengo più degno di essere sviluppato.

Gravità8/10

Quanto dolore provoca quando si manifesta.

Frequenza7/10

Quanto spesso le persone ci si imbattono davvero.

Spazio bianco9/10

Quanti pochi strumenti validi esistono oggi per affrontarlo.

Altri problemi che vale la pena risolvere