← Ultimi articoli
💻 computer science

Decoupling Reentrancy Protection from Smart Contract Implementation Logic

Questo documento presenta Sentinel, un nuovo framework basato su proxy che disaccoppia la protezione dalla reentrancy dalla logica degli smart contract per ottenere una copertura del 100% contro i principali attacchi di reentrancy, incluse le varianti read-only, intercettando le chiamate a livello di proxy con un sistema di sicurezza a doppio modulo.

Autori originali: Shashank Joshi, Wojciech Golab

Pubblicato 2026-05-26
📖 5 min di lettura🧠 Approfondimento

Autori originali: Shashank Joshi, Wojciech Golab

Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo

Immagina il mondo della blockchain come una banca frenetica e ad alto rischio, dove chiunque può scrivere le proprie regole su come si muove il denaro. Queste regole sono chiamate Contratti Intelligenti (Smart Contracts). Sebbene siano potenti, presentano una famosa debolezza nota come Reentrancy (Rientranza).

Il Problema: Il Furtino del "Doppio Libro"

Per comprendere il problema, immagina un cassiere della banca (il Contratto Intelligente) che dovrebbe:

  1. Verificare il tuo saldo.
  2. Consegnarti il denaro.
  3. Poi aggiornare il libro mastro per mostrare che ti sono rimasti zero dollari.

In un mondo normale, questo è sicuro. Ma nel mondo della blockchain, il "cassiere" è un robot che può essere interrotto. Un ladro astuto (l'attaccante) può chiamare il cassiere per prelevare denaro. Prima che il cassiere completi il passaggio 3 (aggiornare il libro mastro), il contratto-robot del ladro chiama il cassiere di nuovo per prelevare altro denaro.

Poiché il libro mastro non è stato ancora aggiornato, il cassiere pensa ancora che il ladro abbia l'importo completo. Il ladro può ripetere questo ciclo decine di volte in un singolo secondo, svuotando la cassaforte della banca prima che il cassiere si renda conto che qualcosa non va. Questo è un Attacco di Rientranza.

Le Vecchie Soluzioni: Il Cartello "Non Disturbare"

In passato, gli sviluppatori cercavano di risolvere il problema apponendo un cartello "Non Disturbare" (un blocco) sulla scrivania del cassiere.

  • Il Difetto: Questi cartelli erano spesso incollati a scrivanie specifiche (funzioni specifiche). Se un ladro trovava una porta sul retro (una funzione diversa) priva di cartello, poteva comunque entrare.
  • La Limitazione: Se la banca aveva più filiali (contratti multipli) che comunicavano tra loro, un cartello su una filiale non impediva a un ladro di correre tra le filiali per confondere il sistema.
  • Il Punto Cieco: Questi cartelli bloccavano anche le richieste legittime di "solo lettura" (come controllare il saldo senza spendere), rendendo la banca lenta e goffa.

La Nuova Soluzione: Sentinel (Il Portinaio Intelligente)

Gli autori di questo documento, Shashank Joshi e Wojciech Golab, propongono un nuovo sistema chiamato Sentinel. Invece di cercare di riparare la scrivania del cassiere, costruiscono un Portinaio Intelligente (un Proxy) che si trova all'ingresso della banca.

Ecco come funziona Sentinel, utilizzando semplici analogie:

1. Il Portinaio intercetta tutti

Indipendentemente da chi cerchi di entrare in banca o da cosa voglia fare, deve prima passare attraverso il Portinaio Sentinel. Il Portinaio non si cura delle regole complesse all'interno della banca; si concentra solo sulla sicurezza. Ciò significa che le regole interne della banca (la logica di business) non devono essere riscritte per essere sicure.

2. Due Modalità di Funzionamento

Il Portinaio ha due uniformi diverse, o "modalità", a seconda di quanto è rischiosa la situazione:

  • Modalità Ottimizzata (La Guardia a Singola Scrivania):
    Se la banca è piccola e ha una sola filiale, il Portinaio utilizza una serratura semplice e veloce sulla porta. È economica e rapida. Se qualcuno tenta di rientrare di nascosto mentre la porta è chiusa, viene respinto immediatamente. Questo è ideale per situazioni semplici con un unico contratto.

  • Modalità ad Alta Sicurezza (La Rete di Sicurezza Globale):
    Se la banca fa parte di una vasta rete di filiali, il Portinaio si connette a un Centro di Sicurezza Centrale (chiamato LockRegistry).

    • Immagina che il Portinaio chiami al Centro Centrale: "La Filiale A è attualmente occupata?"
    • Se il Centro risponde "Sì", il Portinaio blocca l'ingresso.
    • Questo impedisce ai ladri di correre tra filiali diverse per ingannare il sistema. Coordina la sicurezza su tutta la rete, non solo in una stanza.

3. L'Eccezione "Solo Lettura"

Una cosa complicata della blockchain è che a volte le persone vogliono solo guardare il saldo senza spendere (chiamato staticcall).

  • I vecchi blocchi ostacolavano questi osservatori, causando ritardi.
  • Sentinel è abbastanza intelligente da rilevare se qualcuno sta solo "guardando". Se è così, il Portinaio permette loro di sbirciare dalla finestra senza chiudere la porta, ma li osserva comunque attentamente per assicurarsi che non tentino di entrare di nascosto dal retro mentre guardano.

Perché Questo È Importante

Gli autori hanno testato Sentinel contro 70 diversi contratti intelligenti noti per essere vulnerabili a questi attacchi.

  • Il Risultato: Sentinel ha bloccato il 100% degli attacchi, inclusi quelli insidiosi che avvengono tra contratti diversi o coinvolgono trucchi di "solo lettura".
  • Confronto: I vecchi strumenti standard (come il guardiano di OpenZeppelin) hanno bloccato solo circa il 73% degli attacchi. Hanno fallito nei furti complessi tra contratti multipli.
  • Costo: Il "Portinaio" costa un po' di energia extra (gas) per funzionare, ma gli autori affermano che è un prezzo piccolo da pagare per fermare furti per milioni di dollari.

La Conclusione

Questo documento introduce un modo per separare la sicurezza di un contratto intelligente dalla sua logica di business. Mettendo un "Portinaio" intelligente e adattabile davanti al contratto, è possibile fermare i ladri dallo sfruttare le lacune temporali nel sistema, indipendentemente da quanto siano complesse le regole interne del contratto. È un passaggio dal tentativo di riparare ogni possibile buco nel muro alla costruzione di un cancello inespugnabile.

Sommerso dagli articoli nel tuo campo?

Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.

Prova Digest →