Solo a scopo educativo; non costituisce consulenza né raccomandazione d’investimento. Gli investimenti possono comportare perdite.
Risposta diretta
Un fault proof, spesso chiamato fraud proof, è il processo protocollare con cui si contesta un claim ottimistico su un calcolo o uno stato. Il proponente non prova ogni transizione prima dell’accettazione: un challenger idoneo può presentare una trace incompatibile entro i clock previsti e il contratto di settlement decide con il verifier specificato. Molti sistemi interattivi restringono una lunga trace fino a una singola istruzione controversa, quindi eseguono on-chain quel caso base.
Il nome non dimostra che il deployment sia permissionless, operativo o sicuro. Servono dati di derivazione disponibili, almeno un challenger corretto che ricostruisca il claim e agisca in tempo, accesso e gas sulla chain di settlement, programmi e contratti corretti e governance incapace di aggirare l’esito. Un claim sopravvissuto al gioco può autorizzare un prelievo secondo quelle regole; non prova retroattivamente ogni transazione L2 o risultato economico.
Il sequenziatore ordina le transazioni L2 e pubblica i dati delle transazioni o gli impegni.
Come funziona
- Fissare il deployment: chain ID L1/L2, versioni, hash, factory, portal o bridge, proof program, VM, game type, implementazioni e admin, permessi, cauzioni, profondità, clock, ritardi, pause e finalità.
fraud proofnon è una specifica comune a tutti i rollup. - Ricostruire il claim da input autenticati: anchor state, L1 head, blocco L2 o output root contestato, batch e blob, configurazione, pre-stato, withdrawal root e regole di derivazione. Una state root non basta; dati assenti possono rendere impraticabile la contestazione.
- Verificare creazione e rilevanza del gioco: root claim, proponente, blocco e ora, tipo, stato respected o blacklisted, cauzione, idoneità e regola del portal. Distinguere claim pending, esito del gioco e output utilizzabile per il prelievo.
- Rieseguire con nodo e implementazione indipendenti. Confrontare la trace corretta e conservare preimage, witness e versioni. Nel gioco interattivo attaccare o difendere l’intervallo corretto fino a isolare un’istruzione, poi inviare il witness base al verifier VM on-chain.
- Seguire clock e transazioni di ogni squadra: tempo, estensioni, inclusione e reorg L1, calldata, gas, sostituzioni, cauzioni, claim paralleli e soggetto tenuto a rispondere. Non esiste necessariamente un unico conto alla rovescia; una posizione corretta può perdere per ritardo o censura.
- Collegare la risoluzione alle conseguenze: claim confutati, vincitore, distribuzione di cauzioni e costi, esclusione dell’output invalido e ricostruzione di output, proof o prelievi dipendenti. Lo slashing incentiva, ma non risarcisce ogni perdita del bridge.
- Riconciliare separatamente finalità e prelievi: risoluzione, ritardi di maturazione e post-risoluzione, tipo respected, blacklist e pause, prova di inclusione, ricevuta e finalità L1. Archiviare le prove e testare contestazione, forced inclusion, nuova prova e uscita d’emergenza.
Esempi svolti
- Bisezione della trace. Una trace didattica contiene
1,048,576 = 2^20 instructions. Se ogni round dimezza l’intervallo,20 bisectionsisolano un’istruzione perché2^20 / 2^20 = 1. Giochi reali possono dividere trace diverse, ramificarsi in un DAG o richiedere mosse ulteriori. - Clock indipendenti. Un gioco ipotetico assegna
84 hoursa ciascuna squadra. Il defender usa30 hourse il challenger22 hours, lasciando54 hourse62 hours. Il tempo trascorso non è semplicemente84 hours: avanza solo il clock applicabile e estensioni, inclusioni e claim paralleli cambiano la scadenza. - Registro cauzione e gas. Per una regola esplicitamente ipotetica, una root invalida ha cauzione
2 ETH. Il vincitore ha versato0.5 ETH, recupera il capitale più1.4 ETH, spendendo0.08 ETHdi gas L1;0.6 ETHva alla tesoreria. Guadagno netto:1.4 - 0.08 = 1.32 ETH; i0.5 ETHrestituiti non sono profitto e1.4 + 0.6 = 2 ETH. Le regole reali dipendono dal contratto. - Clock del prelievo. Prova il
2026-08-01 12:00 UTC, maturazione7 days, risoluzione il2026-08-06 18:00 UTC, air gap1 day. Le soglie terminano il2026-08-08 12:00 UTCe il2026-08-07 18:00 UTC; il primo istante valido è2026-08-08 12:00 UTC. Con20 minutesdi finalità L1, il completamento è2026-08-08 12:20 UTC, salvo pause, blacklist, nuova prova o reorg.
Rischi
- Verificare L1, L2, deployment, game type o versione sbagliati.
- Ricostruire da anchor o L1 head obsoleti, non canonici o errati.
- Perdere batch, blob, preimage, state witness o configurazione.
- Confondere un commitment con disponibilità di tutti i dati.
- Ottenere una trace diversa per un bug del client challenger.
- Bug in proof program, VM, preimage oracle o step verifier.
- Proponente, challenger o creazione permissioned indisponibili o catturati.
- Nessun watcher onesto apre la disputa entro la scadenza.
- Censura, congestione, reorg o gas L1 impediscono una mossa.
- Leggere male clock, estensioni, profondità o inclusione.
- Attaccare claim, intervallo, posizione o istruzione sbagliati.
- Cauzioni o capitale rendono impraticabile la partecipazione.
- Distribuzione, freeloader o incentivi divergono dalle ipotesi.
- Giochi multipli, claim duplicati o implementazioni confliggono.
- La governance cambia game type, verifier, soglia o ritardo.
- Pause o blacklist del Guardian bloccano prelievi validi.
- Confondere risoluzione del gioco e finalità immediata.
- Provare contro un gioco invalidato senza ripetere la prova.
- Supporre che escludere un output ripari ogni effetto a valle.
- Estendere il modello di un rollup ottimistico a un altro.
Errori comuni
- Un claim ottimistico non contestato è provato crittograficamente.
- Chiunque può contestare ogni deployment senza permessi, capitale o infrastruttura.
- Un fault proof funziona senza dati di derivazione disponibili.
- Vincere finalizza subito ogni prelievo e rimborsa ogni perdita.
- Sette giorni, gioco binario e un osservatore onesto sono costanti universali.
Argomenti correlati
Fonti
- Optimistic Rollups - Ethereum.org (consultato: 2026-08-12)
- Fault Proof - OP Stack Specification (consultato: 2026-08-12)
- Fault Dispute Game - OP Stack Specification (consultato: 2026-08-12)
- Honest Challenger (Fault Dispute Game) - OP Stack Specification (consultato: 2026-08-12)
- Bridge Integration - OP Stack Specification (consultato: 2026-08-12)
- Optimism Portal - OP Stack Specification (consultato: 2026-08-12)
- Data availability - Ethereum.org (consultato: 2026-08-12)
- Arbitrum Nitro: A Second-Generation Optimistic Rollup - Offchain Labs (consultato: 2026-08-12)