Skip to content

Commit

Permalink
deploy: cd7cb4e
Browse files Browse the repository at this point in the history
  • Loading branch information
ajsutton committed Jun 13, 2024
1 parent 014f018 commit 55f179f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 12 deletions.
12 changes: 6 additions & 6 deletions fault-proof/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -236,18 +236,18 @@ <h1 id="fault-proof"><a class="header" href="#fault-proof">Fault Proof</a></h1>
<h2 id="overview"><a class="header" href="#overview">Overview</a></h2>
<p>A fault proof, also known as fraud proof or interactive game, consists of 3 components:</p>
<ul>
<li><a href="#Fault-Proof-Program">Program</a>: given a commitment to all rollup inputs (L1 data) and the dispute, verify the dispute statelessly.</li>
<li><a href="#Fault-Proof-VM">VM</a>: given a stateless program and its inputs, trace any instruction step, and prove it on L1.</li>
<li><a href="#Fault-Proof-Interactive-Dispute-Game">Interactive Dispute Game</a>: bisect a dispute down to a single instruction, and resolve the base-case using the VM.</li>
<li><a href="#fault-proof-program">Program</a>: given a commitment to all rollup inputs (L1 data) and the dispute, verify the dispute statelessly.</li>
<li><a href="#fault-proof-vm">VM</a>: given a stateless program and its inputs, trace any instruction step, and prove it on L1.</li>
<li><a href="#fault-proof-interactive-dispute-game">Interactive Dispute Game</a>: bisect a dispute down to a single instruction, and resolve the base-case using the VM.</li>
</ul>
<p>Each of these 3 components may have different implementations, which can be combined into different proof stacks,
and contribute to proof diversity when resolving a dispute.</p>
<p>"Stateless execution" of the program, and its individual instructions, refers to reproducing
the exact same computation by authenticating the inputs with a <a href="#Pre-image-Oracle">Pre-image Oracle</a>.</p>
the exact same computation by authenticating the inputs with a <a href="#pre-image-oracle">Pre-image Oracle</a>.</p>
<p><img src="../static/assets/fault-proof.svg" alt="Diagram of Program and VM architecture" /></p>
<h2 id="pre-image-oracle"><a class="header" href="#pre-image-oracle">Pre-image Oracle</a></h2>
<p>The pre-image oracle is the only form of communication between
the <a href="#Fault-Proof-Program">Program</a> (in the <a href="#client">Client</a> role) and the <a href="#Fault-Proof-VM">VM</a> (in the <a href="#server">Server</a> role).</p>
the <a href="#fault-proof-program">Program</a> (in the <a href="#client">Client</a> role) and the <a href="#fault-proof-vm">VM</a> (in the <a href="#server">Server</a> role).</p>
<p>The program uses the pre-image oracle to query any input data that is understood to be available to the user:</p>
<ul>
<li>The initial inputs to bootstrap the program. See <a href="#bootstrapping">Bootstrapping</a>.</li>
Expand Down Expand Up @@ -446,7 +446,7 @@ <h3 id="main-content"><a class="header" href="#main-content">Main content</a></h
and matches the processing in the <a href="../protocol/rollup-node.html">rollup node</a> and
<a href="../protocol/exec-engine.html">execution-engine</a>.</p>
<p>The difference is that rather than retrieving inputs from an RPC and applying state changes to disk,
the inputs are loaded through the <a href="#Pre-image-Oracle">pre-image oracle</a> and the changes accumulate in memory.</p>
the inputs are loaded through the <a href="#pre-image-oracle">pre-image oracle</a> and the changes accumulate in memory.</p>
<p>The derivation executes with two data-sources:</p>
<ul>
<li>Interface to read-only L1 chain, backed by the pre-image oracle:
Expand Down
12 changes: 6 additions & 6 deletions print.html
Original file line number Diff line number Diff line change
Expand Up @@ -4691,18 +4691,18 @@ <h1 id="fault-proof"><a class="header" href="#fault-proof">Fault Proof</a></h1>
<h2 id="overview-12"><a class="header" href="#overview-12">Overview</a></h2>
<p>A fault proof, also known as fraud proof or interactive game, consists of 3 components:</p>
<ul>
<li><a href="fault-proof/index.html#Fault-Proof-Program">Program</a>: given a commitment to all rollup inputs (L1 data) and the dispute, verify the dispute statelessly.</li>
<li><a href="fault-proof/index.html#Fault-Proof-VM">VM</a>: given a stateless program and its inputs, trace any instruction step, and prove it on L1.</li>
<li><a href="fault-proof/index.html#Fault-Proof-Interactive-Dispute-Game">Interactive Dispute Game</a>: bisect a dispute down to a single instruction, and resolve the base-case using the VM.</li>
<li><a href="fault-proof/index.html#fault-proof-program">Program</a>: given a commitment to all rollup inputs (L1 data) and the dispute, verify the dispute statelessly.</li>
<li><a href="fault-proof/index.html#fault-proof-vm">VM</a>: given a stateless program and its inputs, trace any instruction step, and prove it on L1.</li>
<li><a href="fault-proof/index.html#fault-proof-interactive-dispute-game">Interactive Dispute Game</a>: bisect a dispute down to a single instruction, and resolve the base-case using the VM.</li>
</ul>
<p>Each of these 3 components may have different implementations, which can be combined into different proof stacks,
and contribute to proof diversity when resolving a dispute.</p>
<p>"Stateless execution" of the program, and its individual instructions, refers to reproducing
the exact same computation by authenticating the inputs with a <a href="fault-proof/index.html#Pre-image-Oracle">Pre-image Oracle</a>.</p>
the exact same computation by authenticating the inputs with a <a href="fault-proof/index.html#pre-image-oracle">Pre-image Oracle</a>.</p>
<p><img src="fault-proof/../static/assets/fault-proof.svg" alt="Diagram of Program and VM architecture" /></p>
<h2 id="pre-image-oracle"><a class="header" href="#pre-image-oracle">Pre-image Oracle</a></h2>
<p>The pre-image oracle is the only form of communication between
the <a href="fault-proof/index.html#Fault-Proof-Program">Program</a> (in the <a href="fault-proof/index.html#client">Client</a> role) and the <a href="fault-proof/index.html#Fault-Proof-VM">VM</a> (in the <a href="fault-proof/index.html#server">Server</a> role).</p>
the <a href="fault-proof/index.html#fault-proof-program">Program</a> (in the <a href="fault-proof/index.html#client">Client</a> role) and the <a href="fault-proof/index.html#fault-proof-vm">VM</a> (in the <a href="fault-proof/index.html#server">Server</a> role).</p>
<p>The program uses the pre-image oracle to query any input data that is understood to be available to the user:</p>
<ul>
<li>The initial inputs to bootstrap the program. See <a href="fault-proof/index.html#bootstrapping">Bootstrapping</a>.</li>
Expand Down Expand Up @@ -4901,7 +4901,7 @@ <h3 id="main-content"><a class="header" href="#main-content">Main content</a></h
and matches the processing in the <a href="fault-proof/../protocol/rollup-node.html">rollup node</a> and
<a href="fault-proof/../protocol/exec-engine.html">execution-engine</a>.</p>
<p>The difference is that rather than retrieving inputs from an RPC and applying state changes to disk,
the inputs are loaded through the <a href="fault-proof/index.html#Pre-image-Oracle">pre-image oracle</a> and the changes accumulate in memory.</p>
the inputs are loaded through the <a href="fault-proof/index.html#pre-image-oracle">pre-image oracle</a> and the changes accumulate in memory.</p>
<p>The derivation executes with two data-sources:</p>
<ul>
<li>Interface to read-only L1 chain, backed by the pre-image oracle:
Expand Down

0 comments on commit 55f179f

Please sign in to comment.