Skip to content

Commit c8e96a2

Browse files
pdobaczgumb0axic
authored
Restructure the website content to focus on "whys" not "eips" (#2)
* Restructure the website content to focus on "whys" not "eips" Co-authored-by: Andrei Maiboroda <[email protected]> * Apply suggestions from code review Co-authored-by: Alex Beregszaszi <[email protected]> --------- Co-authored-by: Andrei Maiboroda <[email protected]> Co-authored-by: Alex Beregszaszi <[email protected]>
1 parent 498d795 commit c8e96a2

File tree

1 file changed

+22
-32
lines changed

1 file changed

+22
-32
lines changed

index.html

Lines changed: 22 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
<nav id="nav">
2727
<ul>
2828
<li><a href="#intro" class="active">Introduction</a></li>
29-
<li><a href="#first">EOF EIPs</a></li>
29+
<li><a href="#first">Motivation</a></li>
3030
<li><a href="#second">Implementations</a></li>
3131
<!--<li><a href="#faq">FAQ</a></li>-->
3232
<li><a href="#cta">Learn More</a></li>
@@ -40,9 +40,6 @@
4040
<section id="intro" class="main">
4141
<div class="spotlight">
4242
<div class="content">
43-
<header class="major">
44-
<h2>Introduction to EVM Object Format</h2>
45-
</header>
4643
<p>The EVM Object Format (EOF) is an important upgrade for the Ethereum Virtual Machine, comprising a series of
4744
EIPs. It introduces an extensible and versioned container format for EVM bytecode with a once-off
4845
validation at deploy time, focusing on separating code and data, enhancing code validation, and improving
@@ -55,49 +52,42 @@ <h2>Introduction to EVM Object Format</h2>
5552
<!-- First Section -->
5653
<section id="first" class="main special">
5754
<header class="major">
58-
<h2>EOF EIPs</h2>
55+
<h2>Motivation</h2>
5956
</header>
6057
<ul class="features">
6158
<li>
62-
<span class="icon solid major style1 fa-check"></span>
63-
<h3><a href="https://eips.ethereum.org/EIPS/eip-3541">EIP-3541</a></h3>
64-
<p>Rejects deploying code starting with the byte 0xef. This EIP is already live on Ethereum Mainnet</p>
59+
<h3>Code validation at deploy time</h3>
60+
<p>Instead of having the interpreter validate instructions repeatedly at runtime, EVM bytecode is validated only once during contract creation, providing a faster, cheaper, and more secure execution.</p>
6561
</li>
6662
<li>
67-
<span class="icon major style3 fa-file-code"></span>
68-
<h3><a href="https://eips.ethereum.org/EIPS/eip-3540">EIP-3540</a></h3>
69-
<p><b>EOF - EVM Object Format</b>.</br> Introduces the EOF container format with once-off validation at deploy time.</p>
63+
<h3>Code-data separation</h3>
64+
<p>EOF separates EVM bytecode from data, making it easier for static analysis tools, formal verification, and L2s to process executable code.</p>
7065
</li>
7166
<li>
72-
<span class="icon major style5 fa-file-code"></span>
73-
<h3><a href="https://eips.ethereum.org/EIPS/eip-3670">EIP-3670</a></h3>
74-
<p><b>EOF - Code Validation</b>.</br> Defines how EOF bytecode is validated for correctness at deploy time.</p>
67+
<h3>Removal of dynamic JUMPs</h3>
68+
<p>EOF bytecode uses only static relative jumps, which is very desirable for tools involving static analysis, formal verification, compilation to native code, zero-knowledge circuits, as well as L2 EVMs.</p>
7569
</li>
76-
</ul>
77-
<ul class="features">
7870
<li>
79-
<span class="icon major style2 fa-file-code"></span>
80-
<h3><a href="https://eips.ethereum.org/EIPS/eip-4200">EIP-4200</a></h3>
81-
<p><b>EOF - Static Relative Jumps</b>.</br> Introduces new instructions: RJUMP, RJUMPI, and RJUMPV with a signed immediate encoding the jump destination.</p>
71+
<h3>Code and gas non-observability</h3>
72+
<p>Lack of code and gas observability is a <a href="https://ethereum-magicians.org/t/eof-proposal-ban-code-introspection-of-eof-accounts/12113">long-sought trait of the EVM</a> allowing a more maintainable and upgradeable protocol.</p>
8273
</li>
8374
<li>
84-
<span class="icon major style4 fa-file-code"></span>
85-
<h3><a href="https://eips.ethereum.org/EIPS/eip-4750">EIP-4750</a></h3>
86-
<p><b>EOF - Functions</b>.</br>Introduces EOF Functions as separate code sections. Also introduces two new instructions; CALLF and RETF to call and return from functions.</p>
75+
<h3>Removal of JUMPDEST-analysis</h3>
76+
<p>By obsoleting JUMPDEST-analysis done at contract runtime, EOF simplifies reasoning about EVM bytecode, as well as other changes, like <a href="https://eips.ethereum.org/EIPS/eip-6690">EVMMAX</a>, <a href="https://verkle.info">Verkle</a> or bytecode size increase.</p>
8777
</li>
8878
<li>
89-
<span class="icon major style7 fa-file-code"></span>
90-
<h3><a href="https://eips.ethereum.org/EIPS/eip-5450">EIP-5450</a></h3>
91-
<p><b>EOF - Stack Validation</b>.</br> Deploy-time validation of stack usage for EOF Functions.</p>
79+
<h3>First-class support for EVM functions</h3>
80+
<p>Functions in EOF are a subroutine mechanism not relying on dynamic jumps. It improves analysis opportunities by encoding the number of inputs and outputs for each given function, and isolating the stack of each function.</p>
9281
</li>
93-
</ul>
94-
<ul class="features">
9582
<li>
96-
<span class="icon major style8 fa-file-code"></span>
97-
<h3><a href="https://eips.ethereum.org/EIPS/eip-6206">EIP-6206</a></h3>
98-
<p><b>EOF - JUMPF intruction.</b><br>Introduces JUMPF instruction for chaining function calls.</p>
83+
<h3>Code versioning</h3>
84+
<p>Introducing versioning will make backwards-incompatible upgrades much easier. Backwards compatible changes can be done without bumping the EOF version, even if new instructions are introduced.</p>
9985
</li>
100-
</ul>
86+
<li>
87+
<h3>Addressing EVM pain points</h3>
88+
<p>EOF proposals address many long-standing issues and quirks of the EVM, streamlining compiler development, providing new compiler optimization opportunities, and ultimately improving developer experience. An example of this are the new improved stack management instructions.</p>
89+
</li>
90+
</ul>
10191
</section>
10292

10393
<!-- Second Section -->
@@ -145,7 +135,7 @@ <h2>Learn More</h2>
145135
</li>
146136
<li class="style2">
147137
<span class="icon solid fa-file"></span>
148-
<strong><a href="#first">EOF EIPs</a></strong>
138+
<strong>EOF EIPs (pending...)</strong>
149139
</li>
150140
<li class="style3">
151141
<span class="icon solid fa-play"></span>

0 commit comments

Comments
 (0)