Vai al contenuto

Pausa di emergenza di un protocollo DeFi

Una pausa di emergenza può fermare specifiche azioni degli smart contract mentre si indaga su un incidente. Scopri come verificarne ambito, autorità, prove on-chain, vie di uscita e condizioni di riapertura.

Aggiornato

Solo a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.

Risposta diretta

Una pausa di emergenza è un controllo dello smart contract che blocca azioni selezionate mentre gli operatori indagano o contengono un incidente. Da sola non prova che i fondi siano persi, non li rende recuperabili e non ferma ogni funzione. Il codice distribuito determina se sono interessati depositi, prelievi, prestiti, rimborsi, liquidazioni, swap, trasferimenti, conio o aggiornamenti.

L’utilità Pausable di OpenZeppelin fornisce uno stato di pausa, i modificatori whenNotPaused e whenPaused e gli eventi Paused(account) e Unpaused(account). Il protocollo deve comunque collegare tali controlli a funzioni specifiche e proteggere i propri punti di pausa e riattivazione. Protocolli personalizzati possono usare più flag, blocchi per mercato, limiti o una macchina a stati.

Considera la pausa sia uno strumento di risposta sia un potere privilegiato. Verifica contratto e rete esatti, stato corrente, transazione di attivazione, chiamante, titolari dei ruoli, funzioni disponibili, contabilità durante la pausa e condizioni di riapertura. Un pulsante disabilitato sul sito non è prova on-chain autorevole.

Come funziona

  1. Viene rilevato un evento scatenante. Monitoraggio, collaboratori, auditor o utenti possono individuare difetti del codice, guasti dell’oracolo, variazioni anomale dei saldi, attacchi alla governance o dislocazioni di mercato.
  2. Un account autorizzato invia una transazione. Può essere proprietario, guardian, multisig, ruolo di accesso, esecutore di governance o altro contratto. Le etichette non sono permessi: esamina il percorso di autorizzazione distribuito e ogni amministratore proxy.
  3. Il contratto cambia stato. Un interruttore globale blocca tutte le funzioni protette; controlli granulari possono fermare un solo mercato o azione. Le funzioni senza il controllo pertinente continuano.
  4. Stato ed eventi forniscono prove. Leggi variabile o getter di pausa, input e ricevuta della transazione, eventi emessi, ora del blocco e chiamante. Gli eventi ricostruiscono la cronologia, ma lo storage corrente determina lo stato presente.
  5. La contabilità può continuare. Indici degli interessi, funding, premi, aggiornamenti dell’oracolo, code di prelievo o tempi di liquidazione possono continuare, bloccarsi o recuperare dopo. Non esiste comportamento universale.
  6. Proseguono risposta e correzione. Gli operatori possono indagare, comunicare, revocare ruoli, cambiare parametri, aggiornare codice, coprire un deficit o offrire un prelievo di emergenza. Ogni azione richiede autorità e verifica proprie.
  7. La riapertura è un’altra azione privilegiata. Conferma chi può riattivare, se valgono timelock o voto, quali codice e configurazione sono cambiati, quali test o audit coprono la modifica e se vecchie approvazioni o contratti restano rischiosi.

Usa un block explorer e sorgente o bytecode verificato per creare una matrice: azione, indirizzo del contratto, condizione di pausa, disponibilità corrente, chiamante autorizzato ed effetto su saldi o debito. Confronta gli annunci tramite dominio abituale, forum di governance e account ufficiali; non fidarti di risposte o pubblicità apparse durante l’incidente.

Esempio

Supponi che un protocollo di prestito rilevi che l’oracolo della garanzia dista 30% dal mercato di riferimento. Un guardian ferma nuovi prestiti e liquidazioni, ma consente rimborsi e depositi di garanzia. Ciò limita nuova esposizione ed evita liquidazioni al prezzo contestato, ma non dimostra che prelievi, interessi o tutti gli altri mercati siano sospesi.

L’utente deve verificare transazione del guardian, indirizzo del mercato, flag di pausa, stato dell’oracolo, riserve, indice del debito e avviso ufficiale. Se l’interfaccia mostra solo “Protocollo in pausa”, il messaggio non rivela l’intera matrice delle funzioni.

Se la governance installa poi un nuovo oracolo e riapre il mercato, verifica modifiche a implementazione e parametri, ambito dell’audit, chiamante della riattivazione e stato successivo. Riaprire non prova il ritorno di liquidità, solvibilità o normale profondità.

Rischi

  • Autorità eccessiva. Una chiave di pausa può anche aggiornare codice, cambiare oracolo, coniare asset, spostare riserve o assegnare ruoli. Elenca ogni permesso; non presumere che il guardian possa solo fermare.
  • Firmatari compromessi o indisponibili. Una chiave rubata può fermare il servizio; firmatari multisig assenti o correlati operativamente possono impedire pausa o ripresa tempestiva.
  • Aggiramenti nascosti. Amministratore proxy, modulo, ingresso alternativo, esecutore cross-chain o funzione non protetta possono aggirare il controllo dichiarato.
  • Uscite bloccate e obblighi attivi. I prelievi possono fermarsi mentre interessi, funding, posizione in coda o altri obblighi cambiano. Leggi le regole contabili prima di agire.
  • Riavvio non sicuro. La ripresa può avvenire prima della verifica completa di causa, identità del deployment, configurazione dell’oracolo, riserve e integrazioni dipendenti.
  • Phishing durante gli incidenti. False pagine di “recupero” o “migrazione” possono chiedere frase seed, chiave privata, firma o approvazione illimitata. Non divulgare segreti di recupero e verifica separatamente ogni indirizzo e approvazione.
  • Falsa sicurezza. La pausa riduce solo i percorsi realmente protetti. Non prova solvibilità, non è audit o assicurazione e non garantisce il recupero delle perdite.

Prima di interagire ancora, archivia transazione e annuncio, confronta il codice verificato con proxy e implementazione live, controlla ruoli e timelock, revoca approvazioni obsolete quando opportuno e prova le azioni essenziali con un importo che puoi perdere. Le chiamate dirette aggirano un’interfaccia guasta, ma anche i suoi controlli di sicurezza; non improvvisare senza capire calldata e stato.

Errori comuni

  • “In pausa significa che tutti gli asset sono spariti.” Può essere precauzionale; verifica saldi, passività, riserve e funzioni interessate.
  • “Interfaccia disabilitata significa contratto inutilizzabile.” Disponibilità del frontend e stato del contratto sono distinti. Fai chiamate dirette solo se puoi verificare obiettivo, funzione, argomenti e conseguenze.
  • “Un guardian può solo mettere in pausa.” L’etichetta non ha permessi standard. Leggi on-chain ruoli, proprietari, moduli e autorità di upgrade.
  • “Il tempo si ferma durante la pausa.” Contabilità economica e code possono continuare o riprendere con variazioni accumulate.
  • “Riattivato significa corretto e sicuro.” Riaprire è una transizione; correzione, audit, solvibilità, approvazioni e liquidità richiedono ancora verifiche indipendenti.

Argomenti correlati

Fonti

Navigazione

Cerca nella wiki...