riepilogo
Gli audit sulla sicurezza dei contratti intelligenti possono anche eseguire analisi dettagliate dei contratti intelligenti del progetto. Queste misure sono molto importanti per proteggere i fondi investiti nel contratto. Poiché tutte le transazioni sulla blockchain sono definitive, una volta rubati i fondi non possono essere recuperati. In genere, il revisore esaminerà il codice del contratto intelligente, genererà un rapporto e lo consegnerà al team di progetto. Viene quindi emesso un rapporto finale che descrive in dettaglio eventuali bug in sospeso e il lavoro svolto per risolvere problemi di prestazioni o sicurezza.
Introduzione
Gli audit sulla sicurezza dei contratti intelligenti sono comuni nell’ecosistema della finanza decentralizzata (DeFi). Se investi in un progetto blockchain, la tua decisione potrebbe essere influenzata in parte da una revisione del codice del contratto intelligente.
Sebbene la maggior parte delle persone comprenda l'importanza del controllo della sicurezza della rete, pochi approfondiscono le singole righe di codice. Diamo un'occhiata ai metodi, agli strumenti e ai risultati comunemente utilizzati negli audit di sicurezza dei contratti intelligenti per aiutarti a prendere decisioni più informate.
Cos’è l’audit del contratto intelligente?
L'audit di sicurezza del contratto intelligente ispezionerà e commenterà il codice del contratto intelligente del progetto. In genere, questi contratti sono scritti nel linguaggio di programmazione Solidity e forniti da GitHub. Gli audit di sicurezza sono particolarmente preziosi se un progetto DeFi elabora transazioni blockchain del valore di milioni di dollari o con un gran numero di partecipanti. Gli audit in genere seguono questi quattro passaggi:
1. Fornire il contratto intelligente al team di audit per l'analisi preliminare.
2. Il gruppo di audit presenta i risultati al gruppo di progetto per l'azione.
3. Il team di progetto apporta modifiche in base ai problemi rilevati.
4. Il gruppo di audit terrà conto delle nuove revisioni e degli errori pendenti prima di pubblicare una relazione finale.
Per molti utenti di criptovalute, gli audit dei contratti intelligenti sono indispensabili quando si investe in nuovi progetti DeFi. È diventato lo standard per progetti importanti. Alcune società di revisione sono anche diventate leader del settore, aumentando il valore del loro lavoro di revisione agli occhi degli investitori.
Perché abbiamo bisogno dell’audit dei contratti intelligenti?
Una grande quantità di valore viene scambiata o bloccata nei contratti intelligenti, che li rendono facili bersagli per gli hacker. Anche piccoli errori di codifica possono portare al furto di enormi quantità di denaro. Ad esempio, l'hacking DAO sulla blockchain di Ethereum ha portato via circa 60 milioni di dollari di ether e ha persino provocato un hard fork della rete Ethereum.
Poiché le transazioni blockchain non possono essere annullate, garantire la sicurezza del codice del tuo progetto è fondamentale. L’elevato livello di sicurezza della tecnologia blockchain rende difficile recuperare fondi e risolvere problemi a posteriori, quindi è meglio prevenire possibili vulnerabilità a tutti i costi.
Come funziona l'audit del contratto intelligente?
Il processo di audit dei contratti intelligenti è abbastanza standard tra le istituzioni di audit. Sebbene l'approccio di ciascun revisore possa essere leggermente diverso, un processo generale è simile al seguente:
1. Determinare l'ambito dell'audit. I contratti intelligenti e le specifiche del progetto sono definiti dal progetto (lo scopo previsto) e dall’architettura complessiva. Le specifiche del progetto aiutano il team di audit a comprendere gli obiettivi del progetto durante la scrittura e l'utilizzo del codice.
2. Fornire un preventivo preliminare in base alla quantità di lavoro richiesto.
3. Eseguire il test. La sua natura esatta varierà a seconda del gruppo di audit, dei suoi strumenti e metodi analitici. Solitamente vengono utilizzati due metodi di test, manuale e automatico.
4. Creare una prima bozza del report contenente gli errori riscontrati e fornirla al team di progetto per feedback e successive correzioni.
5. Considerare le azioni intraprese dal team per risolvere le questioni sollevate e pubblicare un rapporto finale.
Audit del contratto intelligente
efficienza del carburante
Gli audit dei contratti intelligenti non si concentrano solo sulla sicurezza della blockchain, ma anche sull’efficienza e sull’ottimizzazione. Alcuni contratti completano le funzioni previste attraverso una serie complessa di transazioni. Poiché le tariffe del gas sono relativamente elevate su reti come Ethereum, contratti efficienti possono far risparmiare molti costi di transazione.
L'ottimizzazione delle sue prestazioni è anche un indicatore dell'abilità dello sviluppatore. I passaggi inefficienti creeranno più punti di errore e dovrebbero essere evitati il più possibile. I contratti intelligenti potrebbero non essere eseguiti quando i costi del carburante sono elevati, soprattutto quando si utilizzano vincoli di carburante a basso costo.
Lacune contrattuali
Gran parte del lavoro di un audit prevede il controllo dei contratti per le vulnerabilità della sicurezza. Sebbene alcuni problemi siano facili da individuare, molti exploit utilizzano tecniche e strategie avanzate per drenare fondi. Ad esempio, la manipolazione del mercato può essere combinata con contratti intelligenti deboli per condurre attacchi di prestiti lampo. Per scoprire questi problemi, gli auditor avvieranno un processo di test di decifrazione che simula attacchi dannosi ai contratti intelligenti. Le vulnerabilità comuni includono:
1. Problema di rientro: quando un contratto intelligente effettua una chiamata esterna a un altro contratto esterno prima che qualsiasi impatto sia stato risolto. Quindi, poiché il saldo del contratto originale non è stato aggiornato, il contratto esterno può richiamare ricorsivamente lo smart contract originale e interagire con esso in modi non dovrebbero.
2. Overflow e underflow di numeri interi: quando il contratto intelligente esegue operazioni aritmetiche, ma l'output supera la capacità di archiviazione (solitamente 18 cifre decimali). Ciò potrebbe comportare errori nel calcolo degli importi.
Opportunità di trading preventivo: un codice scarsamente strutturato può fornire un avviso tempestivo di acquisto o vendita sul mercato. Ciò a sua volta consente ad altri di utilizzare queste informazioni per condurre transazioni a proprio vantaggio.
Vulnerabilità della sicurezza della piattaforma
La maggior parte degli audit include l’esame della rete che ospita il contratto e persino delle API utilizzate per interagire con la DApp. Se un progetto è potenzialmente vulnerabile a un attacco DDoS o ha l'interfaccia utente del sito Web compromessa, ciò significa che gli utenti collegheranno effettivamente i loro portafogli ad applicazioni blockchain dannose.
Che cos'è un rapporto di audit?
Il rapporto di audit è il rapporto emesso al termine dell'audit. Per aumentare la trasparenza, il team di progetto dovrebbe condividere i risultati con la comunità. La maggior parte dei rapporti classifica i problemi in base alla gravità, ad esempio critici, gravi, minori, ecc. Il rapporto elenca anche lo stato dei problemi, poiché il progetto avrà ancora tempo per risolverli prima del rilascio del rapporto finale.
Oltre a un riepilogo esecutivo, il rapporto standard includerà raccomandazioni, esempi di codici ridondanti e dettagli completi su dove si sono verificati gli errori di codifica. Il progetto ha tempo per agire in base ai risultati del rapporto prima che venga rilasciata la versione finale.
Dove sono disponibili gli audit dei contratti intelligenti?
Molte agenzie di servizi di auditing di contratti intelligenti hanno sviluppato una reputazione per il servizio eccezionale. Due sono particolarmente popolari e ottenere un audit da loro richiederà la fornitura di preventivi preliminari e informazioni sulla consegna.
Certificato
CertiK è leader del settore quando si tratta di audit dei contratti intelligenti. Centinaia di progetti hanno avuto i loro contratti intelligenti controllati tramite loro. PancakeSwap, il più grande market maker automatizzato (AMM) di BSC, ne è un esempio. Di seguito è riportato uno screenshot dell'audit effettuato da Certik per PancakeSwap.

Inoltre, la stragrande maggioranza dei progetti supportati da Binance Labs prevede la verifica dei contratti tramite CertiK. CertiK pubblica una classifica dei progetti di audit, completa di punteggi di sicurezza, in modo da poter confrontare ciascun progetto. Tieni presente che oltre a Ethereum, CertiK intraprende anche progetti BSC e Polygon.

ConsenSys Diligence
ConsenSys, gestito dal co-fondatore di Ethereum Joseph Lubin, è uno dei più grandi nomi del settore delle criptovalute nello sviluppo della blockchain. Presso ConsenSys Diligence, l'azienda offre audit dei contratti intelligenti di Ethereum. Forniscono inoltre servizi automatizzati per verificare la presenza di errori comuni nei contratti Ethereum Virtual Machine (EVM).
Quanto costa verificare uno smart contract?
L’esatta commissione di audit dipende dal numero di contratti intelligenti che devono essere controllati. In genere, le spese di revisione ammontano a migliaia di dollari. Su alcuni progetti di grandi dimensioni, il costo può facilmente superare i 10.000 dollari. Anche la società di revisione che esegue la revisione e la sua reputazione influiranno sull'importo che pagherai.
Riassumere
Fortunatamente per investitori e utenti, la verifica dei contratti intelligenti è diventata uno standard di riferimento. Tuttavia, se ogni progetto fosse sottoposto a un audit dello smart contract, questo non sarebbe più un semplice indicatore di valore. Ecco perché è importante imparare a leggere da soli gli audit. Anche se non hai conoscenze tecniche, può essere utile rivedere le recensioni e valutare la gravità del potenziale problema.
Quando ti imbatti in un audit, dovrebbe almeno essere più facile capire di cosa si tratta. Come sempre, è importante guardare al quadro generale e considerare tutte le informazioni quando si prende una decisione di investimento.




