Scrypto: il nuovo codice che può salvare la Defi dagli attacchi Hacker, come funziona

Centinaia di nuovissime applicazioni e protocolli di finanza decentralizzata si sono riversati sulla rete Ethereum e su altri blockchain negli ultimi due anni.

Nel novembre 2021, il valore totale bloccato in tutte le app DeFi ha raggiunto l’incredibile cifra di 290 miliardi di dollari.

Secondo la narrativa, la DeFi mira a democratizzare l’accesso ai finanziamenti consentendo a chiunque di partecipare da qualsiasi parte del mondo, indipendentemente dal background o dall’identità. Tutto è decentralizzato, inaffidabile e peer-to-peer; non ci sono limiti geografici o finanziari.

scrypto solidity defi
Adobe Stock

È una visione che ha preso piede, poiché la DeFi si è espansa più rapidamente di quanto chiunque avrebbe potuto prevedere. Ma a causa di numerosi gravi rischi per la sicurezza, la sua ascesa è stata ostacolata, facendola sembrare uno sforzo molto rischioso per chiunque non abbia molta familiarità con il funzionamento delle criptovalute.

Gli attacchi hacker fermeranno la DeFi?

Mentre il 2021 è stato un anno significativo per la DeFi, è stato probabilmente ancora più significativo per gli hacker, secondo un recente rapporto di Chainalaysis, che ha scoperto furti di criptovalute per un valore totale di $ 3,2 miliardi in quell’anno.

Gli hacker probabilmente guadagneranno altrettanti soldi quest’anno. Nella prima metà dell’anno, DeFi e Web3 hanno perso insieme più di 2 miliardi di dollari a causa degli hacker, secondo il rapporto più recente di CertiK.

Identificazione delle vulnerabilità negli Smart Contract

La stragrande maggioranza degli hack DeFi avviene a causa di difetti negli smart contract sottostanti ai protocolli. Gli smart contract sono pezzi di codice autoeseguibile che eseguono transazioni automaticamente quando vengono soddisfatti criteri specifici. Sono una componente fondamentale della DeFi perché eliminano la necessità di un intermediario affidabile.

La buona notizia è che la community sta intervenendo per affrontare i contratti intelligenti, che sono una palese vulnerabilità nella sicurezza DeFi. Gli attuali protocolli DeFi più affidabili si assicurano di eseguire un audit completo di tutti gli smart contract per trovare eventuali vulnerabilità. Società rispettabili come CertiK e Hacken conducono audit, che esaminano le transazioni registrate in un registro blockchain nel tentativo di trovare eventuali errori.

Un altro metodo per trovare le vulnerabilità è il test di penetrazione da parte di team di esperti di sicurezza che cercano di violare i protocolli DeFi e segnalano i loro risultati agli sviluppatori in modo che possano correggere eventuali vulnerabilità rilevate. I protocolli possono anche fornire “ricompense per i bug”, che essenzialmente fanno il crowdsourcing della sicurezza. Decine di hacker “cappello bianco” competono per una ricompensa in denaro trovando punti deboli nei protocolli.

Le ricompense dei bug sono particolarmente utili perché incoraggiano i partecipanti a comportarsi come veri criminali informatici, il che significa che probabilmente cercheranno di hackerare il protocollo usando le tecniche utilizzate dai veri cattivi. L’idea è che tutti gli exploit evidenti saranno trovati dai bravi ragazzi prima che vengano rivelati nel mondo reale.

Gli audit del codice

I protocolli DeFi possono essere protetti dagli attacchi comuni incentrati su eccezioni non gestite e dipendenza dagli ordini di transazione con l’aiuto di audit del codice del contratto intelligente e ricompense di bug.

Sfortunatamente però, gli audit non sono perfetti; secondo lo studio Chainalaysis, il 30% degli exploit quest’anno è avvenuto su piattaforme che erano state recentemente oggetto di audit. Gli audit del codice e le ricompense dei bug possono quindi essere utili, ma non offrono alcuna garanzia. Di conseguenza, i protocolli DeFi incaricati di gestire miliardi di dollari di fondi degli utenti devono adottare una strategia di sicurezza più solida.

Servono smart contract di nuova generazione

Una delle soluzioni più interessanti da emergere è il linguaggio di programmazione Scrypto sviluppato da Radix, che è un protocollo blockchain di livello 1 progettato appositamente per la DeFi.

La maggior parte delle funzionalità del popolare linguaggio di programmazione Rust vengono trasferite nel linguaggio Scrypto. Tuttavia, aggiunge una serie di caratteristiche distintive basate sul Radix Engine. Può essere visto come un insieme di librerie ed estensioni Rust che offre funzionalità orientate alle risorse, consentendo alla logica scritta nel linguaggio di programmazione Rust di interagire con le risorse come un cittadino nativo di prima classe.

La principale differenza tra Scrypto e altre criptovalute è che i contratti intelligenti vengono essenzialmente eliminati. Elabora le transazioni utilizzando progetti e componenti anziché contratti intelligenti. I blueprint sono raccolte di codice sorgente compilato accessibili a tutti gli utenti sulla blockchain. Servono come “funzioni di costruzione” per le transazioni DeFi, fornendo loro parametri illimitati in modo che altri possano crearne un’istanza. Tendono ad avere funzionalità piuttosto specializzate, ma a seconda di come vengono istanziate, possono supportare una varietà di casi d’uso. A volte, se usati come “pacchetto”, i progetti possono cooperare tra loro.

Un blueprint non può essere attivato finché una delle sue funzioni di costruzione non è stata chiamata e non è stato ottenuto l’indirizzo di un’istanza appena creata, denominata “componente”. Le risorse possono essere raccolte, conservate e distribuite dai componenti secondo la logica contenuta nel progetto che le ha create. I componenti vengono utilizzati per gestire lo stato. In altre parole, i componenti di Scrypto sono simili agli smart contract ma derivano dalla logica delineata nel progetto che li ha originati.

Grazie alla sua architettura distintiva, Scrypto è in grado di eseguire transazioni in modo molto diverso dagli smart contract convenzionali creati in Solidity o in un altro linguaggio. Radix Engine trasferisce la proprietà dei token dal chiamante a un componente anziché inviare un numero o un riferimento ad alcuni token. Quando quel componente riceve un bucket o più bucket di risorse, ha la possibilità di prelevare tali risorse e depositarle in un deposito di sua proprietà o in un altro bucket. Il motore Radix assicura che il chiamante non possa accedere al bucket o al vault in seguito.

Di conseguenza, le transazioni nelle dApp basate su Radix sono molto più semplici e sicure. Radix utilizza l’analogia di un gumball machine che accetta token USD in cambio di un token tenuto all’interno del suo caveau per aiutarci a capire meglio come funziona.

In questa illustrazione, il metodo insertCoins del componente MyMachine riceve un bucket contenente 0,25 USD dall’utente. Quando è stato pagato il prezzo corretto, la logica del progetto aggiunge quei gettoni a un caveau, quindi prende 1 gumball dal suo caveau e lo restituisce al chiamante. Se il chiamante ha passato troppi dollari in USD, potrebbe anche restituire qualche resto.

Scrypto vs Solidity

Gli smart contract basati sulla piattaforma Solidity di Ethereum lo rendono molto più difficile e pericoloso. L’utente invocherà uno smart contract all’interno della stessa macchina per autorizzare il dispositivo a prelevare fondi dal proprio portafoglio per suo conto.

Verrebbe quindi chiamato uno smart contract gumball per inviare il gumball all’utente dopo che la macchina aveva chiamato il contratto USD per effettuare il prelievo. Infine, probabilmente verificherebbe anche l’eros durante l’aggiornamento di una cache interna di quanti gumball erano ancora rimasti. Ognuna di queste procedure fa uso di uno smart contract, mettendo ciascuna di esse a rischio di hacking a causa di una debolezza dello smart contract.

Questa è solo un’illustrazione di base. Le transazioni con DeFi possono essere molte volte più complesse, il che aumenta il rischio a cui sono soggette. Uno qualsiasi dei numerosi smart contract coinvolti in una transazione potrebbe avere una singola vulnerabilità, che consentirebbe a un utente malintenzionato di eseguire con successo un attacco.

Conclusione

Il rischio di sfruttamento aumenterà solo con l’espansione della DeFi e con l’aumento del valore totale bloccato. Se c’è una lezione che possiamo imparare dall’incredibile quantità di criptovaluta che gli hack DeFi hanno rubato, è che la sicurezza degli smart contract è ora più importante che mai.

Mentre gli audit del codice e le ricompense dei bug possono aiutare a identificare le vulnerabilità DeFi più evidenti, è ovvio che il settore trarrebbe grandi benefici da una riorganizzazione radicale basata su un’infrastruttura creata per ridurre il numero di potenziali exploit sin dall’inizio.

Impostazioni privacy