07
Blockchain
Registri verificabili e token, quando servono davvero
Serve a poche aziende, e va detto: nella maggior parte dei casi un database fatto bene risolve lo stesso problema costando molto meno. Quando invece serve davvero un registro che nessuno può riscrivere, il lavoro cambia natura.
- Modello delle minacceAttori, confini di fiducia e dove si muovono i fondi
- TestLe proprietà che non devono mai rompersi, scritte come regole
- Analisi automaticaGli errori noti, cercati su tutti i contratti a ogni modifica
- Sequenze casualiMigliaia di combinazioni che nessuno scriverebbe a mano
- Verifica matematicaLa regola dimostrata per tutti i valori possibili, non solo per quelli provati
- Audit esternoObbligatorio prima della produzione: il codice vale soldi veri
Il codice vale soldi, quindi si dimostra
Test come base, poi analisi automatica su tutti i contratti, prove con migliaia di sequenze casuali sulle proprietà che non devono mai rompersi, e verifica matematica sulle regole critiche.
Sono strumenti che trovano cose diverse: l’analisi automatica riconosce gli errori noti, le sequenze casuali trovano combinazioni che nessuno avrebbe scritto a mano, la verifica matematica dimostra che una regola vale per tutti i valori possibili e non solo per quelli provati.
Aggiornabile ma non arbitrario
I contratti che devono poter evolvere passano da un ritardo obbligatorio prima di ogni modifica: chi tiene i fondi ha il tempo di vedere cosa sta per cambiare e di uscire. Quelli che non devono cambiare restano immutabili e senza poteri speciali.
Sui prelievi valgono limiti espliciti, e chi ha diritto a qualcosa se la ritira invece di riceverla: così un destinatario che si comporta male non blocca tutti gli altri.
Una catena è anche infrastruttura
Dietro una rete ci sono processi che devono restare in piedi: chi ordina le transazioni, il nodo pubblico, il componente che pubblica i dati sulla catena sottostante, l’esploratore e il monitoraggio. È lavoro di sistemi tanto quanto di contratti.
Prima domanda: vi serve davvero?
Nella maggior parte dei casi la risposta è no, e conviene sentirselo dire da chi la costruisce. Un database ben fatto, con registro delle modifiche in sola aggiunta e backup verificati, risolve il novantacinque per cento dei problemi di tracciabilità a una frazione del costo e senza legarvi a un ecosistema in movimento.
Serve davvero quando il registro deve essere verificabile da soggetti che non si fidano l’uno dell’altro e nessuno di loro può essere il custode: consorzi, filiere con più attori, strumenti che rappresentano valore trasferibile. Se le parti si fidano di voi, non serve.
Quando la risposta è no ve lo diciamo, e proponiamo la strada più economica. È l’unico modo in cui la risposta contraria, quando arriva, vale qualcosa.
Il costo che nessuno mette a preventivo
Non è lo sviluppo dei contratti: è la verifica. Su un progetto serio la parte di prove, analisi e dimostrazione formale pesa quanto la scrittura, a volte di più. È la ragione per cui i preventivi bassi in questo campo sono un segnale, non un affare.
C’è poi il costo dell’audit esterno, che va messo a bilancio dall’inizio: nessuna organizzazione seria mette in produzione contratti che gestiscono valore senza una revisione indipendente. E c’è la manutenzione, perché anche una catena cambia: aggiornamenti del protocollo, versioni dei nodi, dipendenze da rivedere.
Cosa resta fuori dalla catena
Quasi tutto. Sulla catena vanno le poche cose che devono essere verificabili da tutti e non modificabili da nessuno: la prova che un evento è accaduto, il trasferimento di un diritto, il saldo di uno strumento. Tutto il resto — anagrafiche, documenti, dati personali — resta fuori, in sistemi normali.
È anche un obbligo pratico prima che una scelta di stile: un dato personale scritto su una catena pubblica non si cancella più, e questo entra in rotta di collisione con il diritto alla cancellazione. Il modo corretto è tenere fuori il dato e metterci al più un’impronta che permette di verificarlo senza rivelarlo.
Con cosa lavoriamo, e come lo verifichiamo
In questo campo lo stack conta meno della pipeline di verifica: sono strumenti che trovano cose diverse, e servono tutti.
Contratti
- Solidity
- OpenZeppelin
- proxy aggiornabili
- ritardo obbligatorio sulle modifiche
Si parte da librerie usate e riviste da migliaia di progetti invece di riscrivere primitive delicate. Quello che deve poter evolvere passa da un ritardo dichiarato prima di ogni modifica; quello che non deve cambiare resta immutabile e senza poteri speciali.
Prove
- Hardhat
- Foundry
- copertura del codice
- scenari di attacco
Le prove non verificano solo che funzioni: verificano che non funzioni quando non deve. Buona parte dei casi scritti riproduce tentativi di abuso, non usi corretti.
Verifica
- Halmos
- Certora
- Echidna
- Slither
- Mythril
Strumenti che trovano cose diverse: l’analisi automatica riconosce gli errori noti, le sequenze casuali trovano combinazioni che nessuno scriverebbe a mano, la dimostrazione formale prova che una regola vale per tutti i valori possibili e non solo per quelli provati.
Rete
- Arbitrum Nitro
- nodo pubblico
- esploratore
- monitoraggio
- Docker
Dietro una catena ci sono processi che devono restare in piedi come qualsiasi altro sistema: chi ordina le transazioni, il nodo che risponde alle interrogazioni, il componente che pubblica i dati sul livello sottostante. È lavoro di sistemi tanto quanto di contratti.
Portfolio
Cosa abbiamo fatto, progetto per progetto, su questa competenza.
Manora
Rete Layer 2 con moneta di gas propria
- Sette contratti su base OpenZeppelin: moneta a offerta fissa immutabile, wrapper, rimborso dei costi di pubblicazione, distribuzione con maturazione progressiva, tesoreria con prelievi ritardati e tetto giornaliero, staking a cinque livelli con sconti sulle commissioni dal 10% al 70%.
- Base comune aggiornabile con ritardo obbligatorio di 48 ore su ogni modifica, controllo dei ruoli e blocco d’emergenza.
- 487 test automatici con copertura al 99,4% delle istruzioni; verifica matematica su 27 proprietà di 29 e su 50 regole di 51, sequenze casuali sulle invarianti dello staking, analisi automatica senza veri positivi.
- Rete su Arbitrum Nitro con moneta di gas personalizzata e identificativi distinti fra sviluppo e produzione per la protezione dai replay.
- Rilascio in fasi con manifesto e controlli successivi, più un pacchetto di tredici documenti per gli auditor esterni.
- Solidity
- OpenZeppelin
- Hardhat
- Foundry
- Docker
- Arbitrum Nitro
Ti serve questo?
Raccontaci il problema e vi diciamo come lo affronteremmo — e se non è il caso di farlo, ve lo diciamo lo stesso.
Parliamone