I risultati di una revisione del codice di uno smart contract spesso influenzano le decisioni di investimento nei progetti blockchain. Per questo motivo gli audit di sicurezza per smart contract sono comuni nell'ecosistema della Finanza Decentralizzata (DeFi).
Capire l'importanza degli audit di cybersecurity è essenziale per prendere decisioni sagge e informate.
Un audit di sicurezza di uno smart contract tipicamente comprende quattro fasi. Serve a esaminare approfonditamente e commentare il codice scritto del progetto (spesso in Solidity) fornito tramite GitHub. Tali audit sono fondamentali per i progetti DeFi che prevedono grandi transazioni sulla blockchain del valore di milioni di dollari e l'interazione di molti attori.
1)Il team di audit esegue un'analisi iniziale degli smart contract.
2)Il team di audit presenta i risultati al team di progetto affinché possano intervenire.
3)Il team di progetto modifica e adegua il progetto in base ai problemi individuati.
4)Il team di audit pubblica il rapporto finale, tenendo conto delle revisioni o delle vulnerabilità non risolte.
Un audit di smart contract è oggi considerato obbligatorio per i nuovi progetti DeFi che vogliono attrarre utenti crypto ed essere percepiti come affidabili. Alcuni fornitori di audit sono considerati autorità nel campo, il che rafforza ulteriormente il valore dei loro audit agli occhi degli investitori.
Abbiamo bisogno degli audit di smart contract per garantire la sicurezza di un registro distribuito e verificare che il codice dello smart contract funzioni come previsto. Gli audit possono identificare vulnerabilità potenziali e assicurare che il codice rispetti gli standard e i requisiti richiesti.
Gli smart contract sono asset preziosi, dato che possono essere trasferite o immagazzinate somme ingenti di denaro. Questo li rende anche bersagli per attacchi malicious, dove anche un piccolo errore di codice può causare perdite significative. Un esempio rilevante è l'hack della DAO su Ethereum, in cui furono sottratti circa 60 milioni di dollari in ETH, tanto che la rete Ethereum dovette effettuare un hard fork per mitigare le perdite.
Poiché le transazioni blockchain non possono essere annullate, gli sviluppatori devono essere certi che i loro progetti abbiano codice sicuro. La tecnologia blockchain è estremamente sicura, il che significa che recuperare fondi o risolvere problemi successivamente è spesso impossibile. Come precauzione, tutte le potenziali sorgenti di vulnerabilità devono essere eliminate immediatamente.
Indipendentemente dal fornitore di audit, è possibile aspettarsi un processo standard per l'auditing di uno smart contract. Anche se gli audit possono variare in alcuni aspetti, c'è una sequenza tipica di passaggi che di solito viene seguita:
Durante l'audit degli smart contract non si valuta solo la sicurezza della blockchain. Gli auditor analizzano anche l'efficienza e l'ottimizzazione per ridurre i costi delle transazioni. Le transazioni complesse possono essere costose su reti come Ethereum, dove le commissioni del gas sono relativamente alte. Pertanto, contratti efficienti possono far risparmiare cifre significative nelle commissioni. Inoltre, ottimizzare le prestazioni è un indicatore cruciale delle competenze dello sviluppatore. Passaggi inefficienti offrono maggiore margine di errore e vanno evitati. Quando i costi del gas sono elevati, gli smart contract potrebbero non essere eseguiti, specialmente se si utilizza un limite di gas basso.
Le vulnerabilità di sicurezza sono il fulcro principale degli audit per smart contract. Tuttavia, molti problemi possono richiedere tecniche avanzate e strategie per drenare fondi. Per esempio, la manipolazione del mercato può sfruttare smart contract deboli per condurre attacchi con flash loan. Per identificare questi problemi, gli auditor iniziano con un processo di break-testing e simulano attacchi malicious sullo smart contract. Le vulnerabilità comuni includono problemi di reentrancy, overflow/underflow degli interi e opportunità di front-running.
La maggior parte degli audit prevede l'esame della rete che ospita i contratti e persino dell'API usata per interagire con la DApp. Un progetto può essere vulnerabile a un attacco DDoS o avere l'interfaccia del sito compromessa, il che potrebbe indurre gli utenti a collegare i loro wallet ad applicazioni blockchain malevole.
Il processo di audit culmina con la pubblicazione del rapporto di audit. Per favorire la trasparenza, i risultati dell'audit dovrebbero essere condivisi pubblicamente. Il rapporto tipicamente organizza i risultati per gravità, includendo categorie critiche, significative e minori. Inoltre, il rapporto dovrebbe indicare lo stato delle problematiche individuate, permettendo ai progetti di affrontare eventuali problemi prima della pubblicazione definitiva.
Un rapporto standard includerà quanto segue:
Il progetto ha un periodo designato per intervenire sulle scoperte del rapporto prima che la versione ufficiale venga condivisa.
Sono disponibili diversi servizi noti per l'audit di smart contract. Due dei più popolari richiedono l'invio di informazioni per poter fornire un preventivo prima di iniziare l'audit.
CertiK garantisce la sicurezza degli utenti attraverso rigide misure di sicurezza. Exchange di primo piano, tra cui Binance, OKEx e Huobi, considerano CertiK il loro auditor raccomandato per blockchain e smart contract. L'azienda conduce audit completi di tutti i componenti delle piattaforme Web3, includendo progetti su Ethereum, BNB Chain, Polygon e oltre una dozzina di Layer 1.
Fondata da Joseph Lubin, cofondatore di Ethereum, ConsenSys è un attore importante nello sviluppo di criptovalute e blockchain. Tramite ConsenSys Diligence, l'azienda offre audit di smart contract per Ethereum e un servizio automatizzato che valuta i contratti della Ethereum Virtual Machine (EVM) alla ricerca di errori frequenti.
Il costo di un audit può variare molto a seconda del numero di smart contract da esaminare. La maggior parte degli audit costa migliaia di dollari, e per progetti più grandi il prezzo può superare facilmente i 10.000$. Inoltre, la reputazione e l'esperienza della società di audit scelta influenzeranno l'importo da pagare.
Gli audit di smart contract sono diventati un elemento importante nel processo di valutazione per investitori e utenti. Tuttavia, visto l'elevato numero di progetti che ormai dichiarano di avere un audit, esso non è più un riferimento assoluto. Perciò è fondamentale leggere una valutazione con occhio critico. Pur non essendo alla portata di tutti una comprensione profonda dei dettagli tecnici, anche una rapida analisi dei commenti relativi a potenziali problemi e alla loro gravità può offrire preziose intuizioni.