Skip to main content

Fraud Proofs

Fraud proofs are transactions that state a disagreement with the published state root by a RollApp sequencer. Fraud proofs are handled in a single-round setup managed by Dymension. RollApp full nodes may detect a fraudulent state transition and generate a unique fraud proof transaction. To assemble the transaction a list of all state transitions inside a specific block up to the fraudulent one are gathered. The application then traces and stores logs of state access during the transaction execution for creating the necessary state witnesses for the fraud proof. Once the transaction is generated, it is sent to Dymension for dispute.

Data commitment

For each blob published, the sequencer must submit the following data to Dymension:

  • State root
  • BLOB DA height
  • DA initial share position and length (or end position) for all submitted blobs for the block data (i.e. DA span) along with share commitment

This information is provided as part of a Dymension transaction used to update the RollApp state on Dymension.

Fraud proofs

In case of a fraudulent state root a fraud proof transaction may be submitted to Dymension which includes:

  • Block height: Block height of the invalid transaction.
  • TX index: Transaction index inside the block.
  • Blob shares: Blob data with the specified transactions.
  • Blob inclusion proofs: Collection of proofs from the blob to the Data root of the DA block.
  • State witnesses: State witnesses for the state prior to executing the transaction, necessary to validate the state transition.

Once the data is verified, Dymension full nodes compute the state transition using the aforementioned data. If the computed state transition leads to a different ISR, the fraud proof is proven to be valid resulting in the revert of the disputed and subsequent states and slashing of the sequencer. In case the fraud proof was proven invalid, the fraudulent full-node is slashed.

Running fraud proofs

NOTE:

Fraud proofs are currently in final stages of testing and implementation and include only the EVM DRS (Dymension RollApp Standard).

Provided here is a docker container for producing a fraudulent transaction on a RollApp, a full node producing a fraud proof, and the full node submitting the unique fraud proof transaction to a local instance of the Dymension blockchain for verification.

This extensible framework enables the use of various virtual machines as part of the RollApp execution environments. This fraud proof mechanism is in the final testing and auditing stages and will be supported as part of the upcoming upgrades to Dymension.