Closed timbeiko closed 5 years ago
For Berlin, I think what’s important is figuring out is this:
From my perspective, I see two likely ways this can go:
There is also the option of moving straight to EIP-Centric forking after Istanbul. Personally, I find this a bit fast, given our previous cadence. I would rather see us getting good at doing progressively shorter forks (i.e. 1 year -> 6 months -> 3 months) over a period of time, rather than going straight to very short upgrades after only having 1+ year cycles.
basically EIP-1962
IMO, Eip-1962 is not ready. 1962. I missed the ACD where it was 'tentatively accepted', and I don't understand how that happened. It contains a huge chunk of text, mostly opaque to non-cryptographers. Things like:
In the case of limited set of curve the following set is proposed as a minimal:
BN254 curve from the current version of Ethereum BN curve from DIZK with 2^32 roots of unity
An even more detailed spec is available though, here. It's huge. You can skip towards the end, General notices for implementation, where they acknowledge that it's not feasible to expect consensus among clients:
"Garbage in - garbase out". While any valid implementation will give the same results on the same valid input parameters (that define a legitimate curve), caller can supply random values that would pass the ABI checks and gas estimations, but be meaningless in a sense of operations performed. Such input is called "garbage". It's not immediately clean whether or not different implementations will return the same output in this case. This is important for consensus between different implementations and there are two ways to resolve this issue:
If I understand correctly, they recommend using one reference client, which, if we were to implement this, I might actually think is the only sane approach. BUT , doing so will force the same library to always be included in every future fork, also 2.0 execution environments (possibly ported to wasm at that time).
Adding 1962 is basically adding a whole new virtual machine for cryptographic operations, and a huge chunk of code that (I'm guessing) none of the current maintainers of ethereum clients can meaningfully debug nor make sense of.
Thanks for sharing! I only mentioned that EIP given it seemed to have some consensus last time we discussed, but clearly that's not the case. If not enough of the "Tentatively Accepted" from Berlin actually move to Accepted, then it does not make much sense to have Berlin be shortly after Istanbul with just those EIPs.
In that case, we should probably just make Berlin another "regular" hard fork.
Upgrade in Ethereum is for improving performance and to solve existing issues. So, EIP is the heart of upgrades. But again having a timeline bound could add value.
IMO how about a hybrid model incorporating EIP Centric + EIP 1872 + Train model (ref: https://medium.com/@timbeiko/train-planes-network-upgrades-6edfc9f6b7dd) Key points that could be considered:
I am not sure if we've any such model if not could be considered for discussion.
If we want a dry run of hybrid model with Berlin upgrade, we have
Hey looks like I'm a little late here. Is it possible to discuss https://github.com/ethereum/EIPs/pull/2310 during the next meeting?
Closed in favor of https://github.com/ethereum/pm/issues/134
Ethereum Core Devs Meeting 73 Agenda
Agenda
a) Geth
b) Parity Ethereum
c) Aleth/eth
d) Trinity/PyEVM
e) EthereumJS
f) EthereumJ/Harmony
g) Besu
h) Turbo Geth
i) Nimbus m) Nethermind