Quote from the README:
The current EIP and ECIP process basically composes of
“changelogs”. We define, as informal specifications, about what is
changed when the EIP is applied. This works well for simple changes
such as gas cost modification and opcode addition, because the change
is only at a single point and assumed not to affect the rest of the
However, totally relying on changelog format has its expressiveness
limit. For pressing issues on Ethereum we’re facing nowadays, many
structual and potentially complex changes of the EVM are required. When
writing them under EIP “changelog” format, it’s both hard for authors
to express themselves, and for readers to understand the
specification. This has led to confusions and implementation consensus
issues in the past. What’s more, some of the previously-thought single
point changes turned out to affect a larger part of the EVM, such as
EIP-1283 and EIP-1884, relying on changelog format solely made it
harder for readers to review those effects.
The Core Paper Project of EVM is an attempt to address those
issues. Instead of one-step “changelog” process as in EIP and ECIP,
here feature upgrades are defined under a two-step process:
- Refactoring: Any new feature upgrades is identified as a “module
change”. We first refactor the whole EVM specification to get a
functionally equivalent specification.
- Module change: We then add the module change, and write the
“changelog” simply as the actual module change.
As an example, to add new EVM features that require additional
validation step in the beginning, we first refactor the whole EVM
specification to have a no-op validation step, which is functionallly
equivalent to what we have now. After that, the new feature can simply
be added as an additional module. This process is much more clear
compared with the changelog process.
At the same time, we hope the modular design and specification allow
reusibility outside of the context of Ethereum and Ethereum Classic,
and can encourage better standardization, for EVM features that are
not designed for Ethereum or Ethereum Classic mainnet.
The current goal is to define account versioning using the core paper format, and see how it goes.