Skip to content

Commit

Permalink
Merge pull request ethereum-optimism#51 from ethereum-optimism/cl/reo…
Browse files Browse the repository at this point in the history
…rg-stage-one

chore: Reorganize stage one specs
  • Loading branch information
clabby authored Feb 21, 2024
2 parents 1e00b5a + cc0928c commit 3ed3741
Show file tree
Hide file tree
Showing 8 changed files with 29 additions and 16 deletions.
10 changes: 6 additions & 4 deletions specs/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
<!-- DOCTOC SKIP -->

# Summary

- [Root](./root.md)
Expand Down Expand Up @@ -27,10 +28,11 @@
- [Experimental]()
- [Fault Proof](./experimental/fault-proof/index.md)
- [Cannon Fault Proof VM](./experimental/fault-proof/cannon-fault-proof-vm.md)
- [Dispute Game Interface](./experimental/fault-proof/dispute-game-interface.md)
- [Fault Dispute Game](./experimental/fault-proof/fault-dispute-game.md)
- [Honest Challenger](./experimental/fault-proof/honest-challenger-fdg.md)
- [Bond Incentives](./experimental/fault-proof/bond-incentives.md)
- [Stage One Decentralization](./experimental/fault-proof/stage-one/index.md)
- [Dispute Game Interface](./experimental/fault-proof/stage-one/dispute-game-interface.md)
- [Fault Dispute Game](./experimental/fault-proof/stage-one/fault-dispute-game.md)
- [Honest Challenger](./experimental/fault-proof/stage-one/honest-challenger-fdg.md)
- [Bond Incentives](./experimental/fault-proof/stage-one/bond-incentives.md)
- [Plasma](./experimental/plasma.md)
- [Interoperability](./interop/README.md)
- [Dependency Set](./interop/dependency_set.md)
Expand Down
6 changes: 3 additions & 3 deletions specs/experimental/fault-proof/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -310,7 +310,7 @@ but can be overridden for testing purposes:
- `rollup_config`: The rollup configuration used by the rollup-node (also known as `rollup.json`)

The implied inputs rely on L1-introspection to load attributes of the `dispute` through the
[dispute game interface](dispute-game-interface.md), in the L1 history up and till the specified `l1_head`.
[dispute game interface](./stage-one/dispute-game-interface.md), in the L1 history up and till the specified `l1_head`.
The `dispute` may be the claim itself, or a pointer to specific prior claimed data in L1,
depending on the dispute game interface.

Expand Down Expand Up @@ -494,5 +494,5 @@ The allocated response time is limited by the dispute-game window,
and any additional time necessary based on L1 fee changes when bonds are insufficient.

> Note: the timed, bonded, bisection dispute game is in development.
> Also see [fault dispute-game specs](fault-dispute-game.md) for fault dispute game system specifications,
> And [dispute-game-interface specs](dispute-game-interface.md) for dispute game interface specifications.
> Also see [fault dispute-game specs](./stage-one/fault-dispute-game.md) for fault dispute game system specifications,
> And [dispute-game-interface specs](./stage-one/dispute-game-interface.md)
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@

<!-- Glossary References -->

[g-output-root]: ../../glossary.md#L2-output-root
[g-output-root]: ../../../glossary.md#L2-output-root

## Overview

Expand Down Expand Up @@ -115,7 +115,7 @@ $2^{d-1}$ positions, where $d$ is the `MAX_GAME_DEPTH` (unless $d=0$, in which c
The full game tree, with a layer of the tree allocated to output bisection, and sub-trees after an arbitrary split
depth, looks like:

![ob-tree](../../static/assets/ob-tree.png)
![ob-tree](../../../static/assets/ob-tree.png)

### Position

Expand Down Expand Up @@ -180,7 +180,7 @@ The attack position relative to a node can be calculated by multiplying its gind

To illustrate this, here's a Game Tree highlighting an attack on a Claim positioned at 6.

![Attacking node 6](../../static/assets/attack.png)
![Attacking node 6](../../../static/assets/attack.png)

Attacking the node at 6 moves creates a new claim positioned at 12.

Expand All @@ -189,14 +189,14 @@ Attacking the node at 6 moves creates a new claim positioned at 12.
The logical move against a claim when you agree with both it and its parent.
A defense at the relative position to a node, `n`, in the Game Tree commits to the first half of n + 1’s trace range.

![Defend at 4](../../static/assets/defend.png)
![Defend at 4](../../../static/assets/defend.png)

Note that because of this, some nodes may never exist within the Game Tree.
However, they're not necessary as these nodes have complimentary, valid positions
with the same trace index within the tree. For example, a Position with gindex 5 has the same
trace index as another Position with gindex 2. We can verify that all trace indices have valid moves within the game:

![Game Tree Showing All Valid Move Positions](../../static/assets/valid-moves.png)
![Game Tree Showing All Valid Move Positions](../../../static/assets/valid-moves.png)

There may be multiple claims at the same position, so long as their `ClaimHash` are unique.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ The Honest Challenger has two primary duties:
The honest challenger polls the `DisputeGameFactory` contract for new and on-going Fault
Dispute Games.
For verifying the legitimacy of claims, it relies on a synced, trusted rollup node
as well as a trace provider (ex: [Cannon](cannon-fault-proof-vm.md)).
as well as a trace provider (ex: [Cannon](../cannon-fault-proof-vm.md)).
The trace provider must be configured with the [ABSOLUTE_PRESTATE](fault-dispute-game.md#execution-trace)
of the FDG being interacted with to generate the traces needed to make truthful claims.

Expand Down
9 changes: 9 additions & 0 deletions specs/experimental/fault-proof/stage-one/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!-- DOCTOC SKIP -->

# Stage One Decentralization

[g-l2-proposal]: ../../../glossary.md#l2-output-root-proposals

This section of the specification contains the system design for stage one decentralization, with a fault-proof system
for [output proposals][g-l2-proposal] and the integration with the `OptimismPortal` contract, which is the arbiter of
withdrawals on L1.
8 changes: 5 additions & 3 deletions specs/root.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,11 @@ that maintains 1:1 compatibility with Ethereum.
Specifications of new features in active development.

- [Fault Proof](./experimental/fault-proof/index.md)
- [Dispute Game Interface](./experimental/fault-proof/dispute-game-interface.md)
- [Fault Dispute Game](./experimental/fault-proof/fault-dispute-game.md)
- [Honest Challenger Behavior](./experimental/fault-proof/honest-challenger-fdg.md)
- [Stage One Decentralization]()
- [Dispute Game Interface](./experimental/fault-proof/stage-one/dispute-game-interface.md)
- [Fault Dispute Game](./experimental/fault-proof/stage-one/fault-dispute-game.md)
- [Bond Incentives](./experimental/fault-proof/stage-one/bond-incentives.md)
- [Honest Challenger Behavior](./experimental/fault-proof/stage-one/honest-challenger-fdg.md)
- [Cannon VM](./experimental/fault-proof/cannon-fault-proof-vm.md)
- [Plasma](./experimental/plasma.md)
- [Interoperability](./interop/README.md)
Expand Down

0 comments on commit 3ed3741

Please sign in to comment.