Welcome to London! This is an exciting time for the Ethereum ecosystem, and the pace will only pick up further as we approach Altair [1] [2] and the Merge in the months ahead.
The Beacon Chain now has 6.5+ million Ether staked, and 200K+ active validators online across five clients, and the network is now burning Ether as part of the changes made with the London update.
As always, there’s much more progress being made by EF-supported projects and teams that help to improve our Ethereum experience. This roundup series is an opportunity to highlight their efforts to grow and improve Ethereum as a whole. Included in this edition are updates from many teams highlighted in the previous Supported Teams update, and more.
Enjoy!
Ecosystem Support Program
Authored by ESP Team
Office hours
Road to Devcon Grants
We’re collaborating with the Devcon team on a round of small grants and other support for community event organizers. Organizers of virtual and in-person events can apply directly for grants of $500-1500 to cover costs like space or equipment rental, swag, snacks or other incidentals. Learn more and apply here. Lee esta página en español; 用中文阅读本页.
We also recently published our Q1 Allocation Update, with details of 47 grants awarded in Q1 totaling $5,341,000.
Eth2 Research
Beyond the content that makes it into Danny Ryan’s Finalized
series, the research team has continued into areas including stateless research, proofs of custody for EVM execution, sharding specs and prototypes, and other scaling/security research. Most of their progress can be found on posts on ethresear.ch.
Additionally, find a few of their recent posts and other content below:
Ethereum.org
Authored by Sam Richards
To make our work more accessible and to foster more community collaboration, our team publishes an overview of our quarterly roadmap goals. See last quarter’s roadmap here: #2849.
Greetings fellow Ethereans!
Happy L2 summer 😎 (or winter for our friends in the southern hemisphere)! Hope you’re enjoying your time in this space – we know we are! As always, our vision with ethereum.org is to create the best portal for Ethereum’s growing community, and to serve as the front door to Ethereum for the millions of new visitors each month.
Content updates
In Q3 our ethereum.org product focus will be to keep pace with all the incredible progress in the space so that our broader community can stay informed on developments on Ethereum network upgrades, Layer 2 projects, developer tooling, user applications and more.
Thank you to the hundreds of folks who have contributed content so far ❤️
Learn how to get involved
CLR funding round for Eth2 projects
New funding mechanisms for public goods offer massive potential for the Ethereum ecosystem and the world beyond crypto. While not directly related to ethereum.org, our team is part of the Ethereum Foundation, which is one of the largest funders of grants and public goods within the ecosystem. We want to increase the cultural momentum around ecosystem funding for public goods as well as experiment with mechanisms in which support is allocated to the ecosystem.
We’ll continue our work from Q2 with teams in the space, aiming to launch a CLR.fund round for Eth2 projects on an L2 mainnet by the end of Q3.
This work will also allow our team to stay on top of the latest tools, technologies, and best practices involved with dapp development, from testing and deployment tools to identity solutions and Layer 2 technologies. We plan to to bring these first-hand insights back into our developer resources.
Learn more, follow along & get involved
Translation Program
Thanks to our >1,400 volunteer translators over the past couple years, ethereum.org now supports 35 languages! Yet as the website has grown & is constantly updated to keep pace with the developments in the space, many of our languages have fallen somewhat out of date. We’ll be making a push in Q3 to update 20+ of our translations to more recent versions of our website content.
With our new Translation Program Lead, @lukassim, we also plan to improve our supporting documentation & improve use of our translation tools to improve consistency and quality throughout the translation process.
Learn how to get involved
As you can see from all our goals above, our success is driven by our open source community of collaborators. Contributors come in many shapes & sizes – translators, developers, copywriters, designers, experts & amateurs. We want to continue to educate & empower folks who are curious to get involved in the Ethereum ecosystem & our ethereum.org community.
Our new Community Lead, @minimalsm, will be leading efforts to support & empower our growing ethereum.org community. Stay tuned for the specific initiatives we plan to roll out this quarter!
Have ideas? Reach out on our Discord server or here on GitHub.
How does that sound?
We appreciate feedback on our roadmap. Our guiding principles are based on delivering the most value in the shortest time, so if there’s something you think we should work on, please let us know! We welcome ideas and PRs from anyone in the community.
More on contributing
Ipsilon (previously Ewasm)
Authored by Alex Beregszaszi
The Ewasm team has rebranded to a new name: Ipsilon. It is a reference to the state transition function defined in the Yellow Paper. We want to signal that our work for a long time has been more broad than only Ewasm.
The team’s core concern is the execution environment / engine of Ethereum (aka the EVM or any future versions or replacements of it). We provide analysis and implementation of own and third party proposals (i.e. new EIPs proposing changes to the EVM), provide tooling (evmc, evmone, fizzy), and support existing teams (e.g. Solidity, go-ethereum, Silkworm) with implementation and analysis.
Most of our content is published here.
EVM Object Format (EOF)
In the previous update we have mentioned the EVM Object Format (EOF) as a new proposal. In the last three months a lot of progress has been made. The first step, EIP-3541, has been accepted into the London update – this only reserves a starting byte which can be used to introduce EOF in a future protocol update.
A concrete proposal, EIP-3540, which introduces the container format and code-and-data separation has been published. Furthermore there is an explainer document giving background and a roadmap (this will be updated as we go), and we also gave a PEEPanEIP presentation (video and slides).
Both EIP-3541 and EIP-3540 have been implemented in geth and evmone.
Lastly, we shared a short proposal to revamp EIP-2938 using EOF and other teams considered building on EOF.
Address Space Extension (ASE)
The second big topic for us has been the address space extension, which is a requirement for the state expiry roadmap.
It was first described in an Ethereum Magicians post and various discussions on the Eth R&D discord. Our specification builds on all this prior work and aims to give a coherent overview of how to implement this change. An additional document listing a comprehensive set of test cases was also released.
While the core of the proposal is not too complicated, there are many implications. This discussion document is the basis of the ongoing Address Space Extension Working Group, which already had three calls (recordings: #1, #2, and #3).
Other research
On the topic of code merkleization / code chunking, we published a thorough analysis of the impact of code chunking costs. The new version of the verkle tree proposal reconsidered costs based on the results.
The idea of an MCOPY
instruction was prompted by the research on EVM384. We published a short writeup detailing this proposal, providing a pricing, and evaluating the benefits for regular contracts besides the use in EVM384.
EVMC
- 8.0.0 release
- Berlin support, new callbacks to update global account/storage accessed list.
- 9.0.0 release
- London support and
block_base_fee
added to transaction context evmc run
with--bench
- London support and
evmone
- 0.7.0 release
- Berlin support
- Optimizations in Baseline interpreter’s jumpdest analysis
- Improvements to the C++ API
- 0.8.0 release
- London support and
BASEFEE
instruction implementation - Instruction tracing following EIP-3155 format added to Baseline interpreter
- Option to count the number of executed instructions in Baseline interpreter
- More optimizations in Baseline interpreter and in
intx
andethash
libraries. - Improvements to benchmarking tools
- London support and
Formal Verification
The Formal Verification Team will post their own updates (covering Act, hevm, SMTChecker and more) here, and in recent months, some of the notes saw improvement as well.
Act
SMT backend rewrite
Pretty printed counterexamples
hevm
Invariant testing
Berlin support
Solidity 0.8 support
Symbolic constructor arguments
Sourcemap support for Solidity immutables
SMTChecker
Support to Solidity free functions/constants
External calls to known code
Trusted mode
Report contract invariants to the user
Geth
authored by Felix Lange
In Q2, we shipped four releases of Geth. The team was mostly busy implementing
the London fork changes, especially EIP-1559. We also conducted a lot of testing of
the new snap sync, which is now enabled by default in Geth.
And as always, make sure to download the latest version of Geth!
Javascript Team
Authored by Holger Drewes
In Q2 we substantially grew our team and had three team members joining to work on the EthereumJS libraries – Andrew, Emmett and Gabriel. Our work itself largely concentrated on getting EIP-1559 ready to ship and overall make our libraries ready for the London HF. The latest round of releases (VM v5.5.0, Tx v3.3.0 and others) from early July now come with finalized London support including all hardfork block numbers and are ready to send EIP-1559 style txs over the wire.
The 1559 tx library update brought in a lot of community requests and responses and we took the occasion to have a closer look at the usability of the library. As some follow-up we improved a lot on documentation and also made several substantial usability improvements which should make the library easier to use. We also caught up with the recent broader trend of Ethereum activity moving to side chains and L2 and our tx library is now better prepared to send txs to networks like Arbitrum, Polygon or xDaiChain, see tx README for details.
And, worth to mention this again, though the release itself is already some while ago (late April): due to a lot of live testing we did along our EthereumJS client development, our devp2p library is now finally ready to be used in production and we are eager to see your use cases along digging deeper into the Ethereum devp2p networking stack.
Some outlook: we recently merged our first PR on “The Merge” allowing our client some first interaction with an Eth 2.0 PoS client via RPC. This will likely be followed by a lot of additional work and be a main work emphasis for the upcoming quarter.
Privacy & Scaling Explorations
Authored by Thore Hildebrandt
The Privacy & Scaling Explorations team works to bridge the gap between cutting-edge research in zero-knowledge proofs, and application development on Ethereum.
zkEVM
The goal of zkEVM is to run smart contracts in a zk-rollup. Unfortunately, the EVM was not designed to run in a zk circuit which makes it a challenge. Projects like zksync tackle this problem by recompiling to some other vm. We want to implement the full set of EVM opcodes directly into the zk circuits so a smart contract running on L1 can be deployed to L2 with minimal modifications. This will allow full compatibility with existing tooling and enable us to leverage knowledge of the EVM that the ecosystem has built up over the past years.
We have put together a team over the past couple of months, got many of the hard research problems out of the way, and are in the process of designing and building the first prototypes.
We’ve defined two snarks to check the computation validity of the EVM, a state proof and an EVM proof. The former protects the read-write consistency of the stack, memory, and storage. The latter checks the execution integrity of opcodes.
We’ve specced out a way to do common arithmetics on 256 bit word in the circuit. We specified basic EVM opcodes and in the progress of implementation. We have test cases for witnessing EVM execution created. And we are in the process of specifying the way to do cross contract message calls.
Perpetual Powers of Tau
In September 2019, we launched the Perpetual Powers of Tau ceremony (PPOT). PPOT aims to benefit the zero-knowledge ecosystem, particularly zk-SNARK projects built on Ethereum, by partially easing the burden of trusted setup ceremonies. Many zk-SNARK projects require two phases of parameter generation, and PPOT replaces the first phase, which can be shared by all circuits. Individual teams can choose any contribution from the ceremony to branch out and perform their own phase-2 setup.
This ceremony supports circuits up to 2 ^ 28 constraints, which means that each contribution requires a 97G download, a 1-day computation, and a 49G upload. At the time of writing, we collected 71 contributions and all contribution files can be downloaded and independently verified against a public ceremony transcript.
Projects that are planning to use or have used the ceremony include tornado.cash, Semaphore, Hermez, MACI and zkopru. The easiest way to contribute is to reach out to Wei Jie via Telegram @weijiek. Listen to this podcast to hear Wei Jie speak about the ceremony.
MPC Phase 2 UI
The goal of a trusted setup is to securely generate zk-SNARK parameters. As long as one party in the ceremony behaves honestly and is not compromised, the entire setup is trustworthy. The computation can be split up into two phases. In the first phase (see Perpetual Powers of Tau) participants generate powers of a secret (tau) on an ongoing basis. In the second phase, participants take the output of phase one and apply it to a specific circuit. Projects that want to conduct a trusted setup can reduce their work as only the (circuit specific) second phase needs to be performed.
Our goal with the MPC Phase 2 UI project was to make it easy for projects to run a user-friendly public phase 2 trusted setup without having to develop their own infrastructure. We successfully performed a ceremony for zkopru with a first version of the UI and applied learnings from this process in the latest release. If you want to learn more check out the repo and join our telegram channel.
Hubble
Optimistic Rollups (OR) allows greater layer 2 scalability with the use of on-chain data availability and fraud proofs. Hubble allows for the creation of optimistic rollup chains with the same interface so that people can enter the rollup space once and then move between chains instantly at negligible costs and remove the need to ever “exit” the low cost rollup world.
Key features include mass migrations and a global account registry. Burn auctions will be used to decentralise the coordinator and to distribute MEV to CLR’s. Transfers to new accounts are possible directly from L2 without having to deposit on L1. With the help of BLS signatures the team was able to achieve ~2700 tps. The hubble BLS wallet aims to support other OR’s such as Arbitrum, Optimism and Fuel.
Hubble’s code is available on Github. We have a stable devnet up and running, completed database work and multi-token tx pool. Next step is polishing clients and we are targeting a testnet release soon.
Zkopru
zkopru (zk-optimistic-rollup) is a layer-2 scaling solution for private transactions using zk-SNARK and optimistic rollup. It supports private transfer and private atomic swap within the layer-2 network between ETH, ERC20, ERC721 at a low cost. It also provides instant withdrawal with pay-in-advance features and compliance compatibility using spending key and viewing keys. Wanseob presented the system at zk-summit.
We have completed a trusted setup for the project (one of the largest ever conducted). We also completed an audit with Least Authority and are in the process of doing a second one. Within the next couple of weeks we will launch Zkopru on public testnet and, if all goes well, also on mainnet. Stay tuned for updates on our medium blog and join the telegram group.
Blind Find
Blind Find is a p2p network allowing users to search for others without revealing their identity. After a successful search, the user can prove the search path exists in the network with a MPC-based construction, without revealing the path itself. The v1.5 search protocol now works.
For the next version of Blind Find, we are changing our direction to build a privacy-reserved reputation system in a peer-to-peer network, based on EigenTrust. To learn more and discuss, please join the telegram group.
Unirep & Unirep Social
UniRep is a private and non-repudiable reputation system. Users can receive positive and negative reputation from attesters, and voluntarily prove that they have at least a certain amount of reputation without revealing the exact amount. Moreover, users cannot refuse to receive reputation from an attester. We are using Unire to build Unirep Social: a reddit-like platform that allows users to privately accumulate karma.
We finished the core functions in Unirep and Unirep Social, started building and designing the Unirep Social frontend. Next steps are setting up a website and deploying Unirep on testnet.
Join the telegram channel to learn more and discuss!
BLS Sig Aggregation
The project aims to tower layer 2 transaction cost via a smart contract wallet. Smart contract wallets give users additional safety mechanisms independent of any wallet UI they may use, but are expensive to deploy (and use on) on Ethereum’s layer 1. Layer 2 solutions like Optimism and Arbitrum greatly lower this cost-barrier, and allow more users to benefit from smart contract wallets. This is primarily due to these being general purpose computation solutions. DApps bridged to layer 2 will be more usable than those only on layer 1 thanks to faster transactions at lower-cost, but there are further gas savings to be had by DApps and users. We use BLS signatures to reduce the on chain storage which can increase throughput to ~3000 tps. You can check the project’s current status on Github. Next steps are to deploy to optimistic-kovan and gas cost/estimation as well as social recovery functionality.
CLR.fund for Everyone
The goal of the project is to make it easy for any community to run their own CLR round with clr.fund. We paused some backlog work to focus on an instance of clr.fund for cryptorelief. We ran into some scale limits for that instance, so refocused around upgrading clr.fund core contracts to use new x32 MACI circuits and MACI 0.9.4. Part of clr.fund-deployer’s promise is to enable easy deployment of the clr.fund app, so we also participated in the recent work to coordinate merging select features from the ETH2 clr.fund instance’s app into the canonical clr.fund front end.
Next focus it to coordinate trusted ceremonies for the new x32 circuits, to finalize the clr.fund subgraph and to deploy the next round of clr.fund. See the project on Github.
InterRep
Reputation is the key to trust. People spend years building up their reputation on centralized social platforms, but they have to start from nothing whenever they start using a new app. InterRep aims to make reputation portable to expand the compounding benefits of trusted human interactions across the web. Check out this blogpost for the initial announcement. We’re working on the next iteration of the project.
Research
Rollup Diff Compression
We have investigated how the data footprint of a rollup can be further compressed for the airdrop use case. We used Reddit’s airdrop as an example. Check out our blogpost for more info.
EVM Rollup Reviews
Were conducting a series of security reviews on EVM Optimistic rollups starting with Optimisim. The review is completed and will be available soon, in the meantime we published this explanatory blogpost on the system. A review for Arbitrum is currently in the process.
MACI
Originally proposed by Vitalik Buterin in an ethresear.ch post, systems built with MACI make collusion among participants difficult, while retaining the censorship resistance and correct-execution benefits of smart contracts. Although MACI can provide collusion resistance only if the coordinator is honest, a dishonest coordinator can neither censor nor tamper with its execution. See Wei Jie explaining how MACI works on Youtube. You can use the MACI command-line interface to run a demo.
The team has completed a major milestone (version 1.0 of the smart contracts and zero-knowledge circuits), and we are completing end-to-end test suites. Furthermore, we have started working with an auditor to challenge the security and functional assumptions of the system. We are still working closely with EF folks working on an ETH2 funding round and also a Covid relief funding round. We have also begun work on an additional feature that allows for negative voting.
Join the Telegram group to learn more and discuss.
Remix
Authored by Rob Stupay
In Q2 Remix worked on its ability to interoperate with other tools in the ecosystem.
See more in our blog.
Snake Charmers [Python Ecosystem: PyEVM/Trinity/Web3.py/Fe]
Fe-lang
Authored by Grant Wuerker
In the past, Fe development has focused on supporting the features needed to compile certain demo contracts. The most advanced demo being the Uniswap V2 core contracts. In Q2 of 2021, development focus was shifted from demos to preparing for a release that can be used in production safely (aka MVP release). We plan on cutting an MVP release before the end of the year.
Here are some development highlights from Q2:
- Four more alpha releases (0.4.0 – 0.6.1).
- Added Rust-style diagnostic messages.
- More runtime checks.
- ABI data validation
- Arithmetic overflow checks
- Support for custom error types and panic codes following Solidity.
- Fixed bugs identified by compiler fuzzing.
- Launched website with links to documentation and tutorials.
- Regular development updates.
Web3py
Authored by Keri Clowes
The main focus of the web3py team in Q2 has been EIP-1559 compatibility and support for asynchronous JSON-RPC calls. Async work will continue into Q3. Documentation was a priority in Q2 as well, adding many clarifications and examples from commonly asked questions.
Stateless Ethereum
Authored by Piper Merriam
The Stateless Ethereum effort continues. In the last months, we have filled in the last remaining roadmap items needed to deliver on the end goal of protocol level support for stateless block execution.
The Verkle Trie
is a new data structure for storing the Ethereum state which solves the problems of reducing block witnesses down to a manageable size. Our plans for “State Expiry” give a clean and easy way to migrate the existing hexary patricia trie onto the new verkle trie structure. This will also solve the “state rent” problem, establishing economic bounds to the total state size.
The verkle trie migration also simplifies the process of establishing economic bounds on the size of block witnesses, something that was previously much more difficult under the hexary patricia trie. The last major puzzle piece which needs to be figured out is how to execute on “Address Space Extension” aka ASE.
These items represent everything necessary to support stateless block execution in our protocol, but maybe more importantly, they are significant upgrades to our protocol which address multiple long standing and difficult to fix issues.
Security [Security / Consensus Tests]
Authored by Martin Holst Swende
Q2 was mainly focused on the London hardfork, implementation of EIP 1559 and cross client testing. An exploitable flaw was found in the specification which could cause maliciously bloated transactions/blocks. Erigon has also been added to the fuzzing framework.
The Hive testing framework identified issues in the ENR interoperability between Besu and other clients, causing ENR exchange to fail.
Solidity
Collection of blog posts:
ZoKrates
Authored by Thibaut Schaeffer
This quarter, the ZoKrates team made progress on all fronts.
Language
When it comes to language features, ZoKrates now has improved support for constant generics, user-defined and low level constants. This enables clearer code which works on a variety of inputs, proof systems and curves. The u64 type was also added.
Runtime
Runtime performance was improved thanks to cheaper conditionals and random array access as well as optimised comparison checks. They translate into fewer generated constraints, which in turn reduces the cost of proof generation. In addition, an optional branch isolation feature was added to simulate short circuiting at execution.
Standard Library
The standard library gained support for the SHA3 family of hash functions, as well as the SNARK-friendly Poseidon hash function. Another major addition is the support for recursive proof composition.
Targets
Finally, ZoKrates now supports the Marlin universal SNARK as a target, which reduces the trust requirements to a single trusted setup phase.
For a full list of the changes, check out the changelog
Welcome to London! That is an thrilling time for the Ethereum ecosystem, and the tempo will solely choose up additional as we method Altair [1] [2] and the Merge within the months forward.
The Beacon Chain now has 6.5+ million Ether staked, and 200K+ lively validators on-line throughout 5 purchasers, and the community is now burning Ether as a part of the adjustments made with the London replace.
As at all times, there’s way more progress being made by EF-supported initiatives and groups that assist to enhance our Ethereum expertise. This roundup sequence is a chance to focus on their efforts to develop and enhance Ethereum as a complete. Included on this version are updates from many groups highlighted within the earlier Supported Groups replace, and extra.
Take pleasure in!
Ecosystem Assist Program
Authored by ESP Workforce
Workplace hours
Street to Devcon Grants
We’re collaborating with the Devcon workforce on a spherical of small grants and different help for group occasion organizers. Organizers of digital and in-person occasions can apply instantly for grants of $500-1500 to cowl prices like area or tools rental, swag, snacks or different incidentals. Study extra and apply right here. Lee esta página en español; 用中文阅读本页.
We additionally just lately printed our Q1 Allocation Replace, with particulars of 47 grants awarded in Q1 totaling $5,341,000.
Eth2 Analysis
Past the content material that makes it into Danny Ryan’s Finalized
sequence, the analysis workforce has continued into areas together with stateless analysis, proofs of custody for EVM execution, sharding specs and prototypes, and different scaling/safety analysis. Most of their progress will be discovered on posts on ethresear.ch.
Moreover, discover a number of of their latest posts and different content material beneath:
Ethereum.org
Authored by Sam Richards
To make our work extra accessible and to foster extra group collaboration, our workforce publishes an outline of our quarterly roadmap objectives. See final quarter’s roadmap right here: #2849.
Greetings fellow Ethereans!
Glad L2 summer season 😎 (or winter for our associates within the southern hemisphere)! Hope you’re having fun with your time on this area – we all know we’re! As at all times, our imaginative and prescient with ethereum.org is to create the perfect portal for Ethereum’s rising group, and to function the entrance door to Ethereum for the tens of millions of recent guests every month.
Content material updates
In Q3 our ethereum.org product focus might be to maintain tempo with all of the unbelievable progress within the area in order that our broader group can keep knowledgeable on developments on Ethereum community upgrades, Layer 2 initiatives, developer tooling, consumer functions and extra.
Thanks to the a whole lot of oldsters who’ve contributed content material to date ❤️
Discover ways to become involved
CLR funding spherical for Eth2 initiatives
New funding mechanisms for public items supply huge potential for the Ethereum ecosystem and the world past crypto. Whereas indirectly associated to ethereum.org, our workforce is a part of the Ethereum Basis, which is without doubt one of the largest funders of grants and public items inside the ecosystem. We need to enhance the cultural momentum round ecosystem funding for public items in addition to experiment with mechanisms by which help is allotted to the ecosystem.
We’ll proceed our work from Q2 with groups within the area, aiming to launch a CLR.fund spherical for Eth2 initiatives on an L2 mainnet by the top of Q3.
This work may also enable our workforce to remain on prime of the most recent instruments, applied sciences, and finest practices concerned with dapp growth, from testing and deployment instruments to id options and Layer 2 applied sciences. We plan to to deliver these first-hand insights again into our developer assets.
Study extra, comply with alongside & become involved
Translation Program
Because of our >1,400 volunteer translators over the previous couple years, ethereum.org now helps 35 languages! But as the web site has grown & is continually up to date to maintain tempo with the developments within the area, a lot of our languages have fallen considerably old-fashioned. We’ll be making a push in Q3 to replace 20+ of our translations to newer variations of our web site content material.
With our new Translation Program Lead, @lukassim, we additionally plan to enhance our supporting documentation & enhance use of our translation instruments to enhance consistency and high quality all through the interpretation course of.
Discover ways to become involved
As you may see from all our objectives above, our success is pushed by our open supply group of collaborators. Contributors are available many shapes & sizes – translators, builders, copywriters, designers, consultants & amateurs. We need to proceed to teach & empower of us who’re curious to become involved within the Ethereum ecosystem & our ethereum.org group.
Our new Neighborhood Lead, @minimalsm, might be main efforts to help & empower our rising ethereum.org group. Keep tuned for the particular initiatives we plan to roll out this quarter!
Have concepts? Attain out on our Discord server or right here on GitHub.
How does that sound?
We recognize suggestions on our roadmap. Our guiding ideas are primarily based on delivering essentially the most worth within the shortest time, so if there’s one thing you assume we must always work on, please tell us! We welcome concepts and PRs from anybody locally.
Extra on contributing
Ipsilon (beforehand Ewasm)
Authored by Alex Beregszaszi
The Ewasm workforce has rebranded to a brand new title: Ipsilon. It’s a reference to the state transition perform outlined within the Yellow Paper. We need to sign that our work for a very long time has been extra broad than solely Ewasm.
The workforce’s core concern is the execution surroundings / engine of Ethereum (aka the EVM or any future variations or replacements of it). We offer evaluation and implementation of personal and third occasion proposals (i.e. new EIPs proposing adjustments to the EVM), present tooling (evmc, evmone, fizzy), and help present groups (e.g. Solidity, go-ethereum, Silkworm) with implementation and evaluation.
Most of our content material is printed right here.
EVM Object Format (EOF)
Within the earlier replace we’ve talked about the EVM Object Format (EOF) as a brand new proposal. Within the final three months a number of progress has been made. Step one, EIP-3541, has been accepted into the London replace – this solely reserves a beginning byte which can be utilized to introduce EOF in a future protocol replace.
A concrete proposal, EIP-3540, which introduces the container format and code-and-data separation has been printed. Moreover there’s an explainer doc giving background and a roadmap (this might be up to date as we go), and we additionally gave a PEEPanEIP presentation (video and slides).
Each EIP-3541 and EIP-3540 have been carried out in geth and evmone.
Lastly, we shared a brief proposal to revamp EIP-2938 utilizing EOF and different groups thought-about constructing on EOF.
Tackle House Extension (ASE)
The second huge subject for us has been the handle area extension, which is a requirement for the state expiry roadmap.
It was first described in an Ethereum Magicians submit and varied discussions on the Eth R&D discord. Our specification builds on all this prior work and goals to offer a coherent overview of the way to implement this alteration. A further doc itemizing a complete set of take a look at circumstances was additionally launched.
Whereas the core of the proposal will not be too sophisticated, there are various implications. This dialogue doc is the idea of the continuing Tackle House Extension Working Group, which already had three calls (recordings: #1, #2, and #3).
Different analysis
On the subject of code merkleization / code chunking, we printed an intensive evaluation of the affect of code chunking prices. The brand new model of the verkle tree proposal reconsidered prices primarily based on the outcomes.
The thought of an MCOPY
instruction was prompted by the analysis on EVM384. We printed a brief writeup detailing this proposal, offering a pricing, and evaluating the advantages for normal contracts apart from the use in EVM384.
EVMC
- 8.0.0 launch
- Berlin help, new callbacks to replace world account/storage accessed record.
- 9.0.0 launch
- London help and
block_base_fee
added to transaction context evmc run
with--bench
- London help and
evmone
- 0.7.0 launch
- Berlin help
- Optimizations in Baseline interpreter’s jumpdest evaluation
- Enhancements to the C++ API
- 0.8.0 launch
- London help and
BASEFEE
instruction implementation - Instruction tracing following EIP-3155 format added to Baseline interpreter
- Choice to depend the variety of executed directions in Baseline interpreter
- Extra optimizations in Baseline interpreter and in
intx
andethash
libraries. - Enhancements to benchmarking instruments
- London help and
Formal Verification
The Formal Verification Workforce will submit their very own updates (masking Act, hevm, SMTChecker and extra) right here, and in latest months, a number of the notes noticed enchancment as nicely.
Act
SMT backend rewrite
Fairly printed counterexamples
hevm
Invariant testing
Berlin help
Solidity 0.8 help
Symbolic constructor arguments
Sourcemap help for Solidity immutables
SMTChecker
Assist to Solidity free capabilities/constants
Exterior calls to identified code
Trusted mode
Report contract invariants to the consumer
Geth
authored by Felix Lange
In Q2, we shipped 4 releases of Geth. The workforce was largely busy implementing
the London fork adjustments, particularly EIP-1559. We additionally carried out a number of testing of
the brand new snap sync, which is now enabled by default in Geth.
And as at all times, make sure that to obtain the most recent model of Geth!
Javascript Workforce
Authored by Holger Drewes
In Q2 we considerably grew our workforce and had three workforce members becoming a member of to work on the EthereumJS libraries – Andrew, Emmett and Gabriel. Our work itself largely targeting getting EIP-1559 able to ship and total make our libraries prepared for the London HF. The newest spherical of releases (VM v5.5.0, Tx v3.3.0 and others) from early July now include finalized London help together with all hardfork block numbers and are able to ship EIP-1559 type txs over the wire.
The 1559 tx library replace introduced in a number of group requests and responses and we took the event to have a better have a look at the usability of the library. As some follow-up we improved rather a lot on documentation and in addition made a number of substantial usability enhancements which ought to make the library simpler to make use of. We additionally caught up with the latest broader pattern of Ethereum exercise transferring to facet chains and L2 and our tx library is now higher ready to ship txs to networks like Arbitrum, Polygon or xDaiChain, see tx README for particulars.
And, price to say this once more, although the discharge itself is already some whereas in the past (late April): as a result of a number of stay testing we did alongside our EthereumJS consumer growth, our devp2p library is now lastly prepared for use in manufacturing and we’re desperate to see your use circumstances alongside digging deeper into the Ethereum devp2p networking stack.
Some outlook: we just lately merged our first PR on “The Merge” permitting our consumer some first interplay with an Eth 2.0 PoS consumer through RPC. This can possible be adopted by a number of further work and be a most important work emphasis for the upcoming quarter.
Privateness & Scaling Explorations
Authored by Thore Hildebrandt
The Privateness & Scaling Explorations workforce works to bridge the hole between cutting-edge analysis in zero-knowledge proofs, and software growth on Ethereum.
zkEVM
The aim of zkEVM is to run sensible contracts in a zk-rollup. Sadly, the EVM was not designed to run in a zk circuit which makes it a problem. Initiatives like zksync sort out this downside by recompiling to another vm. We need to implement the complete set of EVM opcodes instantly into the zk circuits so a wise contract operating on L1 will be deployed to L2 with minimal modifications. This can enable full compatibility with present tooling and allow us to leverage information of the EVM that the ecosystem has constructed up over the previous years.
We’ve put collectively a workforce over the previous couple of months, received most of the laborious analysis issues out of the way in which, and are within the means of designing and constructing the primary prototypes.
We’ve outlined two snarks to verify the computation validity of the EVM, a state proof and an EVM proof. The previous protects the read-write consistency of the stack, reminiscence, and storage. The latter checks the execution integrity of opcodes.
We’ve specced out a solution to do widespread arithmetics on 256 bit phrase within the circuit. We specified primary EVM opcodes and within the progress of implementation. We’ve take a look at circumstances for witnessing EVM execution created. And we’re within the means of specifying the way in which to do cross contract message calls.
Perpetual Powers of Tau
In September 2019, we launched the Perpetual Powers of Tau ceremony (PPOT). PPOT goals to profit the zero-knowledge ecosystem, significantly zk-SNARK initiatives constructed on Ethereum, by partially easing the burden of trusted setup ceremonies. Many zk-SNARK initiatives require two phases of parameter era, and PPOT replaces the primary part, which will be shared by all circuits. Particular person groups can select any contribution from the ceremony to department out and carry out their very own phase-2 setup.
This ceremony helps circuits as much as 2 ^ 28 constraints, which implies that every contribution requires a 97G obtain, a 1-day computation, and a 49G add. On the time of writing, we collected 71 contributions and all contribution recordsdata will be downloaded and independently verified towards a public ceremony transcript.
Initiatives which are planning to make use of or have used the ceremony embrace twister.money, Semaphore, Hermez, MACI and zkopru. The best solution to contribute is to succeed in out to Wei Jie through Telegram @weijiek. Take heed to this podcast to listen to Wei Jie converse concerning the ceremony.
MPC Section 2 UI
The aim of a trusted setup is to securely generate zk-SNARK parameters. So long as one occasion within the ceremony behaves truthfully and isn’t compromised, your complete setup is reliable. The computation will be cut up up into two phases. Within the first part (see Perpetual Powers of Tau) individuals generate powers of a secret (tau) on an ongoing foundation. Within the second part, individuals take the output of part one and apply it to a particular circuit. Initiatives that need to conduct a trusted setup can cut back their work as solely the (circuit particular) second part must be carried out.
Our aim with the MPC Section 2 UI challenge was to make it simple for initiatives to run a user-friendly public part 2 trusted setup with out having to develop their very own infrastructure. We efficiently carried out a ceremony for zkopru with a primary model of the UI and utilized learnings from this course of within the newest launch. If you wish to be taught extra try the repo and be a part of our telegram channel.
Hubble
Optimistic Rollups (OR) permits better layer 2 scalability with using on-chain information availability and fraud proofs. Hubble permits for the creation of optimistic rollup chains with the identical interface so that individuals can enter the rollup area as soon as after which transfer between chains immediately at negligible prices and take away the necessity to ever “exit” the low price rollup world.
Key options embrace mass migrations and a worldwide account registry. Burn auctions might be used to decentralise the coordinator and to distribute MEV to CLR’s. Transfers to new accounts are attainable instantly from L2 with out having to deposit on L1. With the assistance of BLS signatures the workforce was capable of obtain ~2700 tps. The hubble BLS pockets goals to help different OR’s resembling Arbitrum, Optimism and Gasoline.
Hubble’s code is obtainable on Github. We’ve a secure devnet up and operating, accomplished database work and multi-token tx pool. Subsequent step is sprucing purchasers and we’re concentrating on a testnet launch quickly.
Zkopru
zkopru (zk-optimistic-rollup) is a layer-2 scaling resolution for personal transactions utilizing zk-SNARK and optimistic rollup. It helps personal switch and personal atomic swap inside the layer-2 community between ETH, ERC20, ERC721 at a low price. It additionally offers instantaneous withdrawal with pay-in-advance options and compliance compatibility utilizing spending key and viewing keys. Wanseob introduced the system at zk-summit.
We’ve accomplished a trusted setup for the challenge (one of many largest ever carried out). We additionally accomplished an audit with Least Authority and are within the means of doing a second one. Throughout the subsequent couple of weeks we’ll launch Zkopru on public testnet and, if all goes nicely, additionally on mainnet. Keep tuned for updates on our medium weblog and be a part of the telegram group.
Blind Discover
Blind Discover is a p2p community permitting customers to seek for others with out revealing their id. After a profitable search, the consumer can show the search path exists within the community with a MPC-based development, with out revealing the trail itself. The v1.5 search protocol now works.
For the subsequent model of Blind Discover, we’re altering our path to construct a privacy-reserved popularity system in a peer-to-peer community, primarily based on EigenTrust. To be taught extra and focus on, please be a part of the telegram group.
Unirep & Unirep Social
UniRep is a non-public and non-repudiable popularity system. Customers can obtain optimistic and adverse popularity from attesters, and voluntarily show that they’ve not less than a specific amount of popularity with out revealing the precise quantity. Furthermore, customers can’t refuse to obtain popularity from an attester. We’re utilizing Unire to construct Unirep Social: a reddit-like platform that enables customers to privately accumulate karma.
We completed the core capabilities in Unirep and Unirep Social, began constructing and designing the Unirep Social frontend. Subsequent steps are organising a web site and deploying Unirep on testnet.
Be a part of the telegram channel to be taught extra and focus on!
BLS Sig Aggregation
The challenge goals to tower layer 2 transaction price through a wise contract pockets. Sensible contract wallets give customers further security mechanisms unbiased of any pockets UI they could use, however are costly to deploy (and use on) on Ethereum’s layer 1. Layer 2 options like Optimism and Arbitrum vastly decrease this cost-barrier, and permit extra customers to profit from sensible contract wallets. That is primarily as a result of these being normal function computation options. DApps bridged to layer 2 might be extra usable than these solely on layer 1 because of quicker transactions at lower-cost, however there are additional fuel financial savings available by DApps and customers. We use BLS signatures to cut back the on chain storage which may enhance throughput to ~3000 tps. You’ll be able to verify the challenge’s present standing on Github. Subsequent steps are to deploy to optimistic-kovan and fuel price/estimation in addition to social restoration performance.
CLR.fund for Everybody
The aim of the challenge is to make it simple for any group to run their very own CLR spherical with clr.fund. We paused some backlog work to concentrate on an occasion of clr.fund for cryptorelief. We bumped into some scale limits for that occasion, so refocused round upgrading clr.fund core contracts to make use of new x32 MACI circuits and MACI 0.9.4. A part of clr.fund-deployer’s promise is to allow simple deployment of the clr.fund app, so we additionally participated within the latest work to coordinate merging choose options from the ETH2 clr.fund occasion’s app into the canonical clr.fund entrance finish.
Subsequent focus it to coordinate trusted ceremonies for the brand new x32 circuits, to finalize the clr.fund subgraph and to deploy the subsequent spherical of clr.fund. See the challenge on Github.
InterRep
Status is the important thing to belief. Folks spend years increase their popularity on centralized social platforms, however they’ve to start out from nothing every time they begin utilizing a brand new app. InterRep goals to make popularity transportable to broaden the compounding advantages of trusted human interactions throughout the net. Try this blogpost for the preliminary announcement. We’re engaged on the subsequent iteration of the challenge.
Analysis
Rollup Diff Compression
We’ve investigated how the info footprint of a rollup will be additional compressed for the airdrop use case. We used Reddit’s airdrop for instance. Try our blogpost for more information.
EVM Rollup Evaluations
Had been conducting a sequence of safety critiques on EVM Optimistic rollups beginning with Optimisim. The assessment is accomplished and might be accessible quickly, within the meantime we printed this explanatory blogpost on the system. A assessment for Arbitrum is at the moment within the course of.
MACI
Initially proposed by Vitalik Buterin in an ethresear.ch submit, methods constructed with MACI make collusion amongst individuals troublesome, whereas retaining the censorship resistance and correct-execution advantages of sensible contracts. Though MACI can present collusion resistance provided that the coordinator is sincere, a dishonest coordinator can neither censor nor tamper with its execution. See Wei Jie explaining how MACI works on Youtube. You should utilize the MACI command-line interface to run a demo.
The workforce has accomplished a serious milestone (model 1.0 of the sensible contracts and zero-knowledge circuits), and we’re finishing end-to-end take a look at suites. Moreover, we’ve began working with an auditor to problem the safety and practical assumptions of the system. We’re nonetheless working intently with EF of us engaged on an ETH2 funding spherical and in addition a Covid reduction funding spherical. We’ve additionally begun work on a further characteristic that enables for adverse voting.
Be a part of the Telegram group to be taught extra and focus on.
Remix
Authored by Rob Stupay
In Q2 Remix labored on its skill to interoperate with different instruments within the ecosystem.
See extra in our weblog.
Snake Charmers [Python Ecosystem: PyEVM/Trinity/Web3.py/Fe]
Fe-lang
Authored by Grant Wuerker
Prior to now, Fe growth has centered on supporting the options wanted to compile sure demo contracts. Probably the most superior demo being the Uniswap V2 core contracts. In Q2 of 2021, growth focus was shifted from demos to making ready for a launch that can be utilized in manufacturing safely (aka MVP launch). We plan on chopping an MVP launch earlier than the top of the yr.
Listed here are some growth highlights from Q2:
- 4 extra alpha releases (0.4.0 – 0.6.1).
- Added Rust-style diagnostic messages.
- Extra runtime checks.
- ABI information validation
- Arithmetic overflow checks
- Assist for customized error sorts and panic codes following Solidity.
- Fastened bugs recognized by compiler fuzzing.
- Launched web site with hyperlinks to documentation and tutorials.
- Common growth updates.
Web3py
Authored by Keri Clowes
The primary focus of the web3py workforce in Q2 has been EIP-1559 compatibility and help for asynchronous JSON-RPC calls. Async work will proceed into Q3. Documentation was a precedence in Q2 as nicely, including many clarifications and examples from generally requested questions.
Stateless Ethereum
Authored by Piper Merriam
The Stateless Ethereum effort continues. Within the final months, we’ve stuffed within the final remaining roadmap gadgets wanted to ship on the top aim of protocol degree help for stateless block execution.
The Verkle Trie
is a brand new information construction for storing the Ethereum state which solves the issues of lowering block witnesses all the way down to a manageable dimension. Our plans for “State Expiry” give a clear and straightforward solution to migrate the present hexary patricia trie onto the brand new verkle trie construction. This may also resolve the “state hire” downside, establishing financial bounds to the overall state dimension.
The verkle trie migration additionally simplifies the method of creating financial bounds on the scale of block witnesses, one thing that was beforehand way more troublesome below the hexary patricia trie. The final main puzzle piece which must be discovered is the way to execute on “Tackle House Extension” aka ASE.
This stuff signify every thing essential to help stateless block execution in our protocol, however perhaps extra importantly, they’re vital upgrades to our protocol which handle a number of lengthy standing and troublesome to repair points.
Safety [Security / Consensus Tests]
Authored by Martin Holst Swende
Q2 was primarily centered on the London hardfork, implementation of EIP 1559 and cross consumer testing. An exploitable flaw was discovered within the specification which might trigger maliciously bloated transactions/blocks. Erigon has additionally been added to the fuzzing framework.
The Hive testing framework recognized points within the ENR interoperability between Besu and different purchasers, inflicting ENR trade to fail.
Solidity
Assortment of weblog posts:
ZoKrates
Authored by Thibaut Schaeffer
This quarter, the ZoKrates workforce made progress on all fronts.
Language
In relation to language options, ZoKrates now has improved help for fixed generics, user-defined and low degree constants. This permits clearer code which works on a wide range of inputs, proof methods and curves. The u64 sort was additionally added.
Runtime
Runtime efficiency was improved because of cheaper conditionals and random array entry in addition to optimised comparability checks. They translate into fewer generated constraints, which in flip reduces the price of proof era. As well as, an non-compulsory department isolation characteristic was added to simulate quick circuiting at execution.
Normal Library
The usual library gained help for the SHA3 household of hash capabilities, in addition to the SNARK-friendly Poseidon hash perform. One other main addition is the help for recursive proof composition.
Targets
Lastly, ZoKrates now helps the Marlin common SNARK as a goal, which reduces the belief necessities to a single trusted setup part.
For a full record of the adjustments, try the changelog