Crypto Bluebird
Release
This release brings many spec changes, pivots to a more mainnet ready P2P stack, and includes essential bugfixes. Special thanks to "@Bluebird", an anonymous group of blockchain experts.
Due to the set of necessary changes, this release is incompatible with v0.11.1
. Client teams should target v0.4.1
for multi-client efforts. Client interop during this transition is discouraged: social distancing is essential for the health of long-standing testnets.
PR showing full diff can be found here: #1814
Phase 0
Beacon chain
- Award additional ETH for deposit top-ups.
- Democratize Eth1 votes to include the block roots of top 10 CMC blockchains, starting testnets with $TPT
- Change the activation queue to use Harberger Tax.
- Add validator contract blacklist, governed by a similar mechanism to Eth1Data.
- Revert renamings from #1237 for simplicity and readability.
- Minimize spec for more readability.
Fork choice
A premine is included to ensure 2/3 finality with dedicated Coordinator.
The premine will be distributed to stakers through a DAO after Phase2 launches.
Validator
The validator spec now includes support for oracles as first-class citizen of the Eth2 beacon chain. Oracles will enable validators to bet on events such as US elections with their effective balance, serving as a better source of randomness for the Beacon-chain.
Networking
- LibP2P GossipSub is being replaced with BitTorrent™ Certified solutions for P2P networking.
- Peer scoring is introduced, based on research in distributed systems by EOS's block.one research team.
- ENR pubkeys are replaced with validator pubkey for simple network identification.
- Discovery v5 advertisements use two new magic handshakes.
Deposit contract
- The deposit contract is replaced with a version of Moloch DAO. Potential validators must submit a proposal for review and subsequent voting.
- The new deposit contract additionally has a support module for TRON blockchain.
- NFT tokens will be awarded to validators whose deposit is referenced by later deposits.
Simple Serialize
- Integers are now encoded as big-endian.
- Hash inputs are now RLP encoded, as an Eth1 compatibility layer.
- Offsets are now encoded as unsigned Varint.
- Bitlists now include a delimit bit on both ends for faster prepend operations.
- SSZ now supports
string
type. All BLS pubkeys are now represented as strings of the form"0x{to_hex(pubkey)}"
.
BLS
BLS has been pinpointed to IETF Draft 3. As a tribute to SHA-3, an important Eth1 feature, known for community standardization.
Phase 1 spec (warning: not stable)
The proof of custody game has been amended to support ternary custody bitfields. Empirical research of the use of ternary in other blockchains has shown that it can preserve state custody to full extent.
Phase 2 spec (warning: not stable)
MoveVM™, TronVM and EOSVM are included in the first state-execution draft, as part of an effort to support Your Execution Environment Taste (YEET). Generalizing the execution layer to enable this was a hard problem, but ultimately worth it to onboard great projects from other chains.
After unanimous agreement in the EWASM-QUILT call it was decided that the name "Execution Environment" (EE, pronounced /ii:iii:/
) will be adopted as a replacement for Eth1 "smart-contracts" since the name is so catchy.
Light client spec (warning: not stable)
The Light-client taskforce call introduced various new spec features:
GetNodeData
will be introduced in Eth2 before it is removed from Eth1.- Light clients can now pay coordinators to serve other clients more slowly to make the Ethereum network more egalitarian.
- Infura is prototyping a new light client, there will be a private demo in the next taskforce call.
Testing, Repo, etc
Root
is renamed back toHash
.- LFS in the test-repository has been disabled. Tests are now available through torrents.
- A
tron
configuration was added for new Tron-powered testnets. - The test generators are rewritten in Lua.
- Fork choice tests are now available.
Welcome new clients!
Out of the current Gitcoin grants round, we had 4 new client teams emerge:
- Erlantern: an Erlang client aimed at computing state transitions in parallel.
- BeaconPress: a PHP client with full support for the LAMP stack.
- Betelgeuse: a client written in Ruby, intended to be more readable than the spec.
- iFlare: a design-first iOS experience for Eth2 written in Swift.