Autore: Liam 'Akiba' Wright, Cryptoslate Compilatore: Bai Shui, Golden Finance;
L’aggiornabilità dell’agente del contratto intelligente consente agli sviluppatori di aggiornare la logica dei contratti intelligenti distribuiti preservando lo stato e l’indirizzo del contratto. Ciò fornisce flessibilità per correggere bug o aggiungere funzionalità, ma introduce anche potenziali rischi.
I contratti intelligenti sono protocolli autoeseguibili su una rete blockchain che tradizionalmente vengono eseguiti come codice immutabile una volta distribuiti. Questa immutabilità è la pietra angolare della fiducia nella tecnologia blockchain, garantendo che i termini contrattuali non possano essere modificati unilateralmente. Tuttavia, non poter modificare il contratto dopo l'implementazione può causare problemi, soprattutto quando vengono scoperti bug o sono necessari miglioramenti.
Aggiornabilità degli agenti nei contratti intelligenti
L'aggiornabilità dell'agente risolve questa limitazione introducendo un sistema a doppio contratto. Il contratto proxy memorizza lo stato e detiene i fondi degli utenti, mentre un contratto logico separato contiene la funzionalità effettiva. L'agente delega le chiamate di funzione a contratti logici, che possono essere sostituiti con versioni aggiornate senza modificare l'indirizzo dell'agente o disturbare i dati memorizzati.
Questo approccio presenta vantaggi significativi. Gli sviluppatori possono correggere le vulnerabilità, implementare nuove funzionalità e ottimizzare le prestazioni senza interrompere l'interazione dell'utente o richiedere la migrazione del capitale. I principali protocolli DeFi tra cui Compound, Aave e Uniswap V3 hanno adottato contratti aggiornabili, utilizzando questa flessibilità per migliorare le loro piattaforme nel tempo affermandosi come entità relativamente affidabile.
Questi protocolli hanno implementato pratiche di sicurezza complete, inclusi controlli approfonditi, verifiche formali e programmi di bug bounty continui. I loro contratti intelligenti sono open source e consentono la revisione pubblica e la verifica della funzionalità. Inoltre, hanno adottato un sistema di governance decentralizzato in cui i possessori di token possono partecipare al processo decisionale, aumentando così la trasparenza e riducendo il rischio di cambiamenti unilaterali che potrebbero danneggiare gli utenti.
La loro comprovata esperienza accresce ulteriormente la credibilità di questi accordi. Operano con successo da molto tempo e gestiscono beni per miliardi di dollari. Aggiornano e migliorano costantemente i loro sistemi in base al feedback della comunità e alle mutevoli condizioni del mercato. Robusti sistemi di monitoraggio e allerta e piani dettagliati di risposta agli incidenti dimostrano il loro impegno per la sicurezza.
Inoltre, nonostante si trovino in un settore emergente, i loro sforzi di conformità normativa aggiungono un ulteriore livello di credibilità dal punto di vista del regolatore. L’elevata liquidità di questi protocolli li aiuta anche a resistere a determinati tipi di attacchi e manipolazioni del mercato. Tuttavia, nessun sistema è completamente esente da rischi e gli utenti dovrebbero sempre prestare attenzione e condurre la dovuta diligenza quando interagiscono con qualsiasi protocollo DeFi.
Rischi dei contratti intelligenti aggiornabili
La capacità di modificare la logica del contratto intelligente introduce nuove potenziali vie di sfruttamento. I rischi della centralizzazione diventano una delle principali preoccupazioni e le capacità di aggiornamento sono spesso controllate da un piccolo gruppo di amministratori o attori della governance. Se non combinata con pratiche DAO trasparenti, questa concentrazione di potere potrebbe essere in netto contrasto con l’etica decentralizzata di molti progetti blockchain.
Gli aggiornamenti dannosi rappresentano un'altra potenziale minaccia. Se attaccati o agendo in modo dannoso, gli amministratori potrebbero teoricamente alterare la logica del contratto per rubare i fondi degli utenti o manipolare le operazioni del protocollo. Sebbene i processi di governance e le misure di sicurezza siano progettati per ridurre questo rischio, con l’aumento delle sofisticate truffe di phishing basate sull’intelligenza artificiale, questa possibilità rimane fonte di dibattito all’interno della comunità.
Le vulnerabilità tecniche nel processo di aggiornamento stesso pongono ulteriori pericoli. Errori durante il processo di aggiornamento possono comportare la perdita di fondi, dati danneggiati o rendere il contratto inutilizzabile. La complessità della modalità proxy aumenta la superficie di attacco e può introdurre bug subdoli che potrebbero non essere notati finché non vengono sfruttati.
Come interagire in sicurezza con la DeFi
Per gli utenti che navigano nello spazio DeFi, identificare e valutare i contratti aggiornabili è diventato fondamentale. L’esame dei modelli proxy nel codice del contratto (come il modello proxy di OpenZeppelin) può rivelare capacità di aggiornabilità. La documentazione del contratto spesso rivela funzionalità di aggiornamento, ma gli utenti devono essere consapevoli che queste informazioni potrebbero non essere sempre evidenziate.
La valutazione della sicurezza di un contratto aggiornabile richiede un'attenta considerazione della struttura di governance e del processo di aggiornamento. Un ritardo del blocco temporale aggiornato consente agli utenti di reagire alle modifiche proposte. Il controllo multifirma delle funzioni di gestione distribuisce la potenza e riduce i singoli punti di guasto. La reputazione e il track record del team di protocollo forniscono un contesto aggiuntivo per valutare l’affidabilità.
Per gli utenti avversi al rischio, potrebbe essere consigliabile limitare l’esposizione in questi sistemi e immagazzinare grandi quantità di fondi a lungo termine quando interagiscono con contratti aggiornabili. Monitora attivamente le proposte di aggiornamento e partecipa, ove possibile, al processo di governance, consentendo agli utenti di rimanere informati e potenzialmente influenzare le decisioni sul protocollo.
Il dibattito sull’aggiornabilità dei contratti intelligenti riflette tensioni più ampie tra innovazione e sicurezza, flessibilità e immutabilità nello spazio blockchain. Sebbene i contratti aggiornabili forniscano strumenti potenti per lo sviluppo dei protocolli, richiedono agli utenti di fidarsi dei sistemi umani anziché fare affidamento esclusivamente su codice immutabile.
Trovare il giusto equilibrio tra scalabilità e sicurezza rimane una sfida fondamentale. Gli utenti devono rimanere vigili e valutare attentamente i rischi e i vantaggi derivanti dall'interazione con i sistemi aggiornabili. L'autonomia non è gratuita; il costo e il rischio della sicurezza sono a carico dell'utente finale. Nella finanza tradizionale, questi costi sono gestiti da istituzioni centralizzate come banche e istituti finanziari. È per questo motivo che "sicurezza di livello bancario" è un termine utilizzato per definire i sistemi di sicurezza di fascia alta.
Self-hosting significa che la responsabilità in ultima analisi ricade sull’utente e il tradizionale atteggiamento laissez-faire nei confronti della sicurezza e del rischio è incompatibile con il Web 3.
A supporto di ciò, gli sviluppatori e i team di protocollo sono responsabili dell’implementazione di forti meccanismi di governance e di processi di aggiornamento trasparenti per mantenere la fiducia degli utenti.