mirror of
https://github.com/status-im/EIPs.git
synced 2025-03-03 16:10:58 +00:00
Automatically merged updates to draft EIP(s) 615
Hi, I'm a bot! This change was automatically merged because: - It only modifies existing Draft or Last Call EIP(s) - The PR was approved or written by at least one author of each modified EIP - The build is passing
This commit is contained in:
parent
0eabc51029
commit
d3078681fc
@ -15,9 +15,9 @@ In the 21st century, on a blockchain circulating billions of ETH, formal specifi
|
||||
|
||||
## Abstract
|
||||
|
||||
EVM code is currently difficult to statically analyze, hobbling critical tools for preventing the many expensive bugs our blockchain has experienced. Further, none of the current implementations of the Ethereum Virtual Machine—including the compilers—are sufficiently performant to reduce the need for precompiles and otherwise meet the network's long-term demands. This proposal identifies dynamic jumps as a major reason for these issues, and proposes changes to the EVM specification to address the problem, making further efforts towards a safer and more performant the EVM possible.
|
||||
EVM code is currently difficult to statically analyze, hobbling critical tools for preventing the many expensive bugs our blockchain has experienced. Further, none of the current implementations of the Ethereum Virtual Machine—including the compilers—are sufficiently performant to reduce the need for precompiles and otherwise meet the network's long-term demands. This proposal identifies dynamic jumps as a major reason for these issues, and proposes changes to the EVM specification to address the problem, making further efforts towards a safer and more performant EVM possible.
|
||||
|
||||
We also propose to validate—in linear time—that EVM contracts correctly use subroutines, avoid misuse of the stack, and meet other safety conditions _before_ placing them on the blockchain. Validated code precludes most runtime exceptions and the need to test for them. And well-behaved control flow and use of the stack makes life easier for interpreters, compilers, formal analysis, and other tools.
|
||||
We also propose to validate—in linear time—that EVM contracts correctly use subroutines, avoid misuse of the stack, and meet other safety conditions _before_ placing them on the blockchain. Validated code precludes most runtime exceptions and the need to test for them. Well-behaved control flow and use of the stack makes life easier for interpreters, compilers, formal analysis, and other tools.
|
||||
|
||||
## Motivation
|
||||
|
||||
@ -31,7 +31,7 @@ Absent dynamic jumps code can be statically analyzed in linear time. Static ana
|
||||
|
||||
The result is that all of the following validations and optimizations can be done at deployment time with **linear** **`(n)`** **or** **near-linear** **`(n log n)`** **time complexity**
|
||||
* The absence of most exceptional halting states can be validated.
|
||||
* The maximum use of resources can be sometimes be calculated.
|
||||
* The maximum use of resources can sometimes be calculated.
|
||||
* Bytecode can be compiled to machine code.
|
||||
* Compilation can optimize use of smaller registers.
|
||||
* Compilation can optimize injection of gas metering.
|
||||
|
Loading…
x
Reference in New Issue
Block a user