{"id":18216,"date":"2026-03-12T15:20:29","date_gmt":"2026-03-12T15:20:29","guid":{"rendered":"https:\/\/cryptoted.net\/index.php\/2026\/03\/12\/ef-supported-teams-research-development-update-2\/"},"modified":"2026-03-12T15:20:29","modified_gmt":"2026-03-12T15:20:29","slug":"ef-supported-teams-research-development-update-2","status":"publish","type":"post","link":"https:\/\/cryptoted.net\/index.php\/2026\/03\/12\/ef-supported-teams-research-development-update-2\/","title":{"rendered":"EF-Supported Teams: Research &#038; Development Update"},"content":{"rendered":"<p> <br \/>\n<br \/><img decoding=\"async\" src=\"https:\/\/blog.ethereum.org\/images\/posts\/devcon-lights-edit.jpg\" \/><\/p>\n<div id=\"\">\n<p class=\"chakra-text css-gi02ar\">Friends,<\/p>\n<p class=\"chakra-text css-gi02ar\">Leaves have fallen for those in the global north, Summer is on the way in the south, and ETH is staked across the globe. The jolliest of holidays has arrived, the birth of the beacon chain. Moreover, incredible progress has been made in recent months by <em class=\"chakra-text css-0\">all<\/em> EF supported teams. But without the ability to interact in person recently, we might\u2019ve missed quite a bit from one another. So as this unique year draws to a close, we\u2019re excited to bring a whole host of detailed updates to you from some of the teams that help to move Ethereum forward in so many ways. It&#8217;s a long read, but there is a lot of progress to work through (or feel free to navigate around using the table of contents).<\/p>\n<p class=\"chakra-text css-gi02ar\">As always, this series of updates focuses on EF-supported teams whose members are working to grow and improve Ethereum as a whole. Included in this edition are updates from many teams highlighted in <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/04\/14\/ef-supported-teams-research-and-development-update-2020-pt-1\">the previous report<\/a>, and other new and rotating groups.<\/p>\n<p class=\"chakra-text css-gi02ar\">Enjoy!<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"applied-zkp\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"applied zkp permalink\" href=\"#applied-zkp\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Applied ZKP<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Thore Hildebrandt<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">The Applied ZKP team works to bridge the gap between cutting-edge research in zero-knowledge proofs, and application development on Ethereum.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"perpetual-powers-of-tau\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"perpetual powers of tau permalink\" href=\"#perpetual-powers-of-tau\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Perpetual Powers of Tau<\/h3>\n<p class=\"chakra-text css-gi02ar\">In September 2019, we launched the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/medium.com\/coinmonks\/announcing-the-perpetual-powers-of-tau-ceremony-to-benefit-all-zk-snark-projects-c3da86af8377\">Perpetual Powers of Tau<\/a> 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.<\/p>\n<p class=\"chakra-text css-gi02ar\">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 63 contributions and all contribution files can be downloaded and independently verified against a public ceremony <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/weijiekoh\/perpetualpowersoftau\">transcript<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">Projects that are planning to use or have used the ceremony include <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/tornado.cash\/\">tornado.cash<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/appliedzkp\/semaphore\">Semaphore<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hermez.io\/\">Hermez<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/appliedzkp\/maci\">MACI<\/a> and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/zkopru.network\/\">zkopru<\/a>. The easiest way to contribute is to reach out to Wei Jie via Telegram @weijiek. Listen to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/www.youtube.com\/watch?v=YbJw8_liYyo\">this podcast<\/a> to hear Wei Jie speak about the ceremony.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"semaphore\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"semaphore permalink\" href=\"#semaphore\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Semaphore<\/h3>\n<p class=\"chakra-text css-gi02ar\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/appliedzkp\/semaphore\">Semaphore<\/a> is a generic privacy gadget which enables use cases such as mixers, anonymous login, and anonymous voting as well as reputation systems.<\/p>\n<p class=\"chakra-text css-gi02ar\">Semaphore went through an audit and is currently conducting a phase 2 ceremony based on Perpetual Powers of Tau. There are 51 participants so far, please <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hackmd.io\/oja21FipQ5KhQcXeyuQWFQ?view\">participate<\/a> to help make Semaphore secure. Join the conversation on the Semaphore Society <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hackmd.io\/oja21FipQ5KhQcXeyuQWFQ?view\">Telegram chat group<\/a>.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"maci\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"maci permalink\" href=\"#maci\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>MACI<\/h3>\n<p class=\"chakra-text css-gi02ar\">Originally proposed by Vitalik Buterin, systems built with <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/appliedzkp\/maci\">MACI<\/a> 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 <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/www.youtube.com\/watch?v=sKuNj_IQVYI\">on Youtube<\/a>. You can use the MACI <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/appliedzkp\/maci\/tree\/master\/cli#demonstration\">command-line interface<\/a> to run a demo.<\/p>\n<p class=\"chakra-text css-gi02ar\">Recently, clr.fund <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.clr.fund\/round-0-review-round-1-launch\/\">conducted<\/a> a quadratic funding round in which results were computed using MACI. Bribery could become a major problem for Gitcoin when it reaches scale but MACI can help as it makes it impossible to prove who one voted for. MACI 1.0 is <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hackmd.io\/NOqoWrRwRli55Ark6-S48Q\">in progress<\/a>, join the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/t.me\/joinchat\/LUgOpE7J2gstRcZqdERyvw\">Telegram group<\/a> to learn more and discuss.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"mimc-bounty\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"mimc bounty permalink\" href=\"#mimc-bounty\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>MiMC Bounty<\/h3>\n<p class=\"chakra-text css-gi02ar\">There is an ongoing <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"http:\/\/mimchash.org\/\">bounty<\/a> for collision finding in the MiMC hash function.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"hubble\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"hubble permalink\" href=\"#hubble\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Hubble<\/h3>\n<p class=\"chakra-text css-gi02ar\">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 &#8220;exit&#8221; the low cost rollup world.<\/p>\n<p class=\"chakra-text css-gi02ar\">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\u2019s. 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 <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/thehubbleproject\/hubble-contracts\/runs\/1453324477?check_suite_focus=true#step:8:11\">2500 tps on ropsten<\/a>. The hubble BLS wallet aims to support other OR\u2019s such as Arbitrum, Optimism and Fuel.<\/p>\n<p class=\"chakra-text css-gi02ar\">Hubble&#8217;s code is available on <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/thehubbleproject\">Github<\/a>. Contracts are frozen and the team is preparing for an upcoming audit.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"zkopru\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"zkopru permalink\" href=\"#zkopru\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>zkopru<\/h3>\n<p class=\"chakra-text css-gi02ar\">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, the recording will be available on Youtube soon.<br \/>\nzkopru is entering the \u201cBurrito\u201d stage of its <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/zkopru.network\/roadmap\/\">roadmap<\/a>, you can try it out on <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/zkopru.network\/testnet\/\">testnet<\/a> now. Also, the UI for its trusted setup and burn auction for the decentralized coordination are in pipe. An audit is scheduled to start in January.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"experimental-directions\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"experimental directions permalink\" href=\"#experimental-directions\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Experimental directions<\/h3>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/mhchia\/blind-find\">Blind Find<\/a> &#8211; 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. To learn more and discuss, please join the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/t.me\/joinchat\/GIaIkRr2NxiFoYHTP6PACg\">telegram group<\/a>.<\/li>\n<li class=\"css-0\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/NIC619\/UniRep\">UniRep<\/a> &#8211; 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. Join the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/t.me\/joinchat\/GIaIkRqYKbzuYgR8dWmivw\">telegram channel<\/a> to learn more and discuss!<\/li>\n<li class=\"css-0\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/mhchia\/peek-a-book\">PeekABook<\/a> &#8211; a private order matching system on Ethereum. It allows users to advertise and search for trading orders without leaking the order price. Check out the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/mhchia.github.io\/peek-a-book\/\">demo<\/a>. Join the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/t.me\/joinchat\/GIaIkRr2NxiFoYHTP6PACg\">telegram group<\/a> for discussion.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"ecosystem-support-program\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"ecosystem support program permalink\" href=\"#ecosystem-support-program\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Ecosystem Support Program<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by ESP Team<\/em><\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"delivering-support\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"delivering support permalink\" href=\"#delivering-support\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Delivering support<\/h3>\n<p class=\"chakra-text css-gi02ar\">The ESP team is always exploring new ways to help and encourage the many amazing builders in the Ethereum ecosystem. We highlighted a few teams that received support other than traditional grants in <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/08\/19\/esp-beyond-grants\">this post<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">Meanwhile, almost $6.3 million in grants were awarded in Q2-Q3; learn more about the 50+ recipients in our <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/09\/08\/esp-q2-updates\">Q2<\/a> and <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/25\/esp-q3-updates\">Q3<\/a> allocation updates, and keep an eye out for a Q4 post in the new year!<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"outreach-and-communication\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"outreach and communication permalink\" href=\"#outreach-and-communication\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Outreach and communication<\/h3>\n<p class=\"chakra-text css-gi02ar\">We\u2019ve made an effort to provide more resources for teams looking for support, as well as Ethereum community members who want to keep up with what we\u2019re supporting.<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">Events: we\u2019ve been making the (virtual) rounds at meetups and hackathons to connect in real time with builders, spread the word about ESP and help answer any questions or concerns.<\/li>\n<li class=\"css-0\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/esp.ethereum.foundation\/en\/guide\/\">Guide to ESP<\/a>: this new page of our website goes into detail about ESP inquiry and grant proposal process<\/li>\n<li class=\"css-0\">More blogging: We\u2019ve posted regular updates on newly awarded grants throughout the year, but what these teams do with their grant funding is the real story! In November, we published the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/18\/esp-grantee-roundup-november-2020\">first post<\/a> in a new blog series meant to recognize grantees\u2019 ongoing accomplishments.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"eth2-research\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth2 research permalink\" href=\"#eth2-research\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth2 Research<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Danny Ryan<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">December 1st marked the launch of the eth2 beacon chain. This bootstrapped Ethereum\u2019s proof of stake consensus that will ultimately serve as Ethereum\u2019s new consensus home.<\/p>\n<p class=\"chakra-text css-gi02ar\">Looking past the launch of the beacon chain, the eth2 research team is concentrating on the next set of upgrades to eth2 &#8212; native light client support, the merge of eth1 into eth2, and scalable sharded data.<\/p>\n<p class=\"chakra-text css-gi02ar\">For the latest from our team, keep posted to the \u2018eth2 quick updates\u2019 on the EF blog. A few recent editions can be seen here: <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/27\/eth2-quick-update-no-21\">#21<\/a>, <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/13\/eth2-quick-update-no-20\">#20<\/a>, <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/04\/eth2-quick-update-no-19\">#19<\/a>.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"ethereumorg\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"ethereumorg permalink\" href=\"#ethereumorg\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>ethereum.org<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Ryan Cordell<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">The <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"http:\/\/ethereum.org\">ethereum.org<\/a> team has spent the last half of 2020 adding yet more content and features to our ever-growing portal of Ethereum goodness.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"onboarding\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"onboarding permalink\" href=\"#onboarding\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Onboarding<\/h3>\n<p class=\"chakra-text css-gi02ar\">As we&#8217;re quite often the first place users find when searching &#8220;Ethereum&#8221; for the first time, we&#8217;ve spent a lot of time enriching the content that helps you get started.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"eth2\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth2 permalink\" href=\"#eth2\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth2<\/h3>\n<p class=\"chakra-text css-gi02ar\">And in the build up to the launch of the deposit contract, Eth2 has filled the headlines and our backlog. It&#8217;s clearly been front of mind for our users, as in the last month, visits to our Eth2 pages have surpassed even the homepage.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"developers\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"developers permalink\" href=\"#developers\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Developers<\/h3>\n<p class=\"chakra-text css-gi02ar\">Finally our other main initiative in the latter part of 2020 was improving our developer content,.to help users get started with information from a single, trusted source. It&#8217;s still a work-in-progress, but so far we&#8217;ve built: ]<\/p>\n<p class=\"chakra-text css-gi02ar\">And after some user testing we&#8217;ve got plenty of ideas on how to improve these as we head into the new year.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"translations\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"translations permalink\" href=\"#translations\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Translations<\/h3>\n<p class=\"chakra-text css-gi02ar\">It was also a massive year for expanding our reach into other languages. In the last half of 2020 our community of translators has updated content in:<\/p>\n<p class=\"chakra-text css-gi02ar\">You can find all 33 of the languages we now support at <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum.org\/en\/languages\/\">ethereum.org\/en\/languages<\/a> and learn how to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum.org\/en\/contributing\/translation-program\/\">get involved with translation efforts<\/a>.<\/p>\n<hr aria-orientation=\"horizontal\" class=\"chakra-divider css-1e6gg7n\"\/>\n<p class=\"chakra-text css-gi02ar\">We can&#8217;t go into everything, so take a look at <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum.org\">ethereum.org<\/a> and <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/category\/ethereum-org\">our previous updates<\/a> to see the other bits we&#8217;ve worked on since you last visited.<\/p>\n<p class=\"chakra-text css-gi02ar\">As always if you want to contribute in any way, stop by <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/discord.gg\/CetY6Y4\">our Discord<\/a> or raise an issue\/PR in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/ethereum-org-website\">GitHub<\/a>.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"ewasm\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"ewasm permalink\" href=\"#ewasm\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Ewasm<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Written by Alex Beregszaszi, Pawe\u0142 Bylica, and Sina Mahmoodi<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">As proposed in the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/04\/14\/ef-supported-teams-research-and-development-update-2020-pt-1\">last update<\/a>, we have continued to work on Eth1, Eth1.x, and Eth2.0 related topics.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"eth1\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth1 permalink\" href=\"#eth1\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth1<\/h3>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"evm384\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"evm384 permalink\" href=\"#evm384\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>EVM384<\/h4>\n<p class=\"chakra-text css-gi02ar\">One key motivator for our work on assessing performance bottlenecks of various virtual machine designs (<em class=\"chakra-text css-0\">EVM and WebAssembly<\/em>) and their various implementations is to improve the speed of execution within Ethereum. As reported in a <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2019\/12\/03\/ef-supported-teams-research-and-development-update-2019-pt-2\">previous update<\/a> we had success scaling WebAssembly for executing the elliptic curve pairing operation efficiently.<\/p>\n<p class=\"chakra-text css-gi02ar\">In the past six months we have embarked on the EVM384 project with the goal to reproduce the same scaling on EVM. While it started out as <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@axic\/evm384-preview\">a small proof of concept<\/a>, we have released a <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@axic\/evm384\">comprehensive explanation<\/a> and several updates (<a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@poemm\/evm384-interface-update\">2<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@poemm\/evm384-update3\">3<\/a>, and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/notes.ethereum.org\/@poemm\/evm384-update4\">4<\/a>) along the way. In these updates we present:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">an overview of the precompile problem,<\/li>\n<li class=\"css-0\">three new EVM opcodes facilitating efficient 384-bit calculations,<\/li>\n<li class=\"css-0\">multiple design choices for EVM384,<\/li>\n<li class=\"css-0\">a comparison of the languages Yul and Huff,<\/li>\n<li class=\"css-0\">and an implementation of the pairing operation over the BLS12-381 curve using the proposed opcodes.<\/li>\n<\/ul>\n<p class=\"chakra-text css-gi02ar\">Updates about EVM384 can be followed on the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum-magicians.org\/t\/evm384-feedback-and-discussion\/4533\">appropriate EthMagicians topic<\/a>.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"evm-subroutines\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"evm subroutines permalink\" href=\"#evm-subroutines\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>EVM subroutines<\/h4>\n<p class=\"chakra-text css-gi02ar\">The team <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum-magicians.org\/t\/eip-2315-simple-subroutines-for-the-evm-analysis\/4229\">performed analysis and proposed significant changes<\/a> to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-2315\">EIP-2315 \u201cSimple Subroutines for the EVM\u201d<\/a>. The resulting discussions highlighted potential risks and opportunities, and led us to conduct research on <span class=\"chakra-text css-ons8vw\">JUMPDEST<\/span> analysis techniques. The outcome of this is the <em class=\"chakra-text css-0\">baseline interpreter<\/em> as discussed next.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"evmone\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"evmone permalink\" href=\"#evmone\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>evmone<\/h4>\n<p class=\"chakra-text css-gi02ar\">Based on <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ewasm\/benchmarking\">our benchmarks<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmone\">evmone<\/a> is a really fast EVM interpreter. One of the strengths of evmone is the extensive bytecode analysis it performs, allowing for <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmone\/blob\/master\/docs\/efficient_gas_calculation_algorithm.md\">pre-computation of gas cost and stack requirement checks<\/a>. However, this can also be a downside or vulnerability.<\/p>\n<p class=\"chakra-text css-gi02ar\">A new variant of evmone called the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmone\/pull\/261\">&#8220;baseline interpreter&#8221;<\/a> has been prototyped in the project. The goal is to evaluate a much simpler interpreter design in order to avoid analysis vulnerabilities and perhaps question the speed benefits of analysis. While this implementation is not yet battle tested, it does pass all of evmone&#8217;s unit tests, the Ethereum State Tests, and Solidity&#8217;s test suite.<\/p>\n<p class=\"chakra-text css-gi02ar\">Unexpectedly, this na\u00efve design performs surprisingly well. On &#8220;average&#8221; contracts the speed difference between the baseline vs. the &#8220;advanced&#8221; evmone is negligible, however on computation-heavy EVM bytecode the &#8220;advanced&#8221; evmone would perform up to 40% faster.<\/p>\n<p class=\"chakra-text css-gi02ar\">The TurboGeth team has bootstrapped the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/torquem-ch\/silkworm\">Silkworm<\/a> project which uses evmone as the EVM implementation. They also proposed a number of interesting changes to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmone\/pulls?q=involves:AlexeyAkhunov+involves:yperbasis\">evmone<\/a> and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\/pulls?q=involves:AlexeyAkhunov+involves:yperbasis\">EVMC<\/a>.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"evmc\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"evmc permalink\" href=\"#evmc\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>EVMC<\/h4>\n<p class=\"chakra-text css-gi02ar\">Three new versions of <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\">EVMC<\/a> were released: <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\/releases\/tag\/v7.2.0\">7.2.0<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\/releases\/tag\/v7.3.0\">7.3.0<\/a> and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\/releases\/tag\/v7.4.0\">7.4.0<\/a>. The releases brought various improvements for the C++, Go, and Java language support, as well as for tooling.<\/p>\n<p class=\"chakra-text css-gi02ar\">The Java support has received a lot of attention recently as part of its integration into <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/tuweni.apache.org\">Apache Tuweni<\/a>. See the list of <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/evmc\/pulls?q=is:pr+java\">related changes and discussions<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">EVMC support was adopted by a number of projects lately, including <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ledgerwatch\/turbo-geth\">TurboGeth<\/a>, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/torquem-ch\/silkworm\">Silkworm<\/a>, and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/second-state\/ssvm\">Second State&#8217;s SSVM<\/a>.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"eth1x--stateless-ethereum\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth1x  stateless ethereum permalink\" href=\"#eth1x--stateless-ethereum\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth1.x \/ Stateless Ethereum<\/h3>\n<p class=\"chakra-text css-gi02ar\">Under the Stateless Ethereum umbrella we have been involved with multiple efforts.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"code-merkleization\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"code merkleization permalink\" href=\"#code-merkleization\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Code merkleization<\/h4>\n<p class=\"chakra-text css-gi02ar\">After the initial feasibility experiments on code merkleization, which was mentioned in the last update, we proposed <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/eips.ethereum.org\/EIPS\/eip-2926\">EIP-2926<\/a> and implemented the specification in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/s1na\/go-ethereum\/blob\/code-merkleization-ssz\/codetrie\/codetrie.go\">geth<\/a> and a <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/hugo-dc\/code-chunks\">standalone tool<\/a> in Python. There have been further experiments, such as using SSZ for merkleization and performance overhead analysis, which can be seen in the discussion <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum-magicians.org\/t\/eip-2926-chunk-based-code-merkleization\/4555\">thread<\/a>.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"witness-format\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"witness format permalink\" href=\"#witness-format\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Witness format<\/h4>\n<p class=\"chakra-text css-gi02ar\">The team, with Paul&#8217;s lead, has participated in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/stateless-ethereum-specs\/blob\/master\/witness.md\">specifying<\/a> and optimizing the witness format. The format has been implemented in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/poemm\/eth_witness_experiments\">Python<\/a> as well as <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/s1na\/eth-witness\/blob\/master\/src\/index.ts\">Javascript<\/a>. The Python implementation has been additionally used for generating tests for the format.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"binarification\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"binarification permalink\" href=\"#binarification\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Binarification<\/h4>\n<p class=\"chakra-text css-gi02ar\">We have furthermore closely followed the binarification effort and contributed to the design <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/binary-trie-format\/7621\">discussion<\/a>. Our goal is to ensure the design works well with other components of a stateless Ethereum. With this in mind we have aimed to keep the code merkleization proposal aligned with the binarification effort.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"regenesis\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"regenesis permalink\" href=\"#regenesis\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>ReGenesis<\/h4>\n<p class=\"chakra-text css-gi02ar\">We had previously argued for a state cache to reduce (stateless) witness sizes in Eth2.0 Phase 2. Hence we find <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/regenesis-resetting-ethereum-to-reduce-the-burden-of-large-blockchain-and-state\/7582\">ReGenesis<\/a> to be a promising direction. To help with the discussion, Paul published an early work-in-progress version of a <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"http:\/\/paul.oemm.org\/eth\/regenesis_recursive_function_def.pdf\">formal specification<\/a> for a potential variant of ReGenesis. The specification follows the notation introduced by the Yellow Paper.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"light-client-sync\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"light client sync permalink\" href=\"#light-client-sync\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Light-client sync<\/h4>\n<p class=\"chakra-text css-gi02ar\">Light clients are bottlenecked by the amount of data they &#8220;pull&#8221; from altruistic servers. We believe techniques first developed for Stateless Ethereum combined with a commitment to chain history can reduce pressure on the servers. As a first step towards this goal we have <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/state-of-block-header-sync-in-light-clients\/8047\">surveyed<\/a> approaches that reduce bandwidth requirements for syncing the header chain. Commitment to the chain history might further prove useful in contexts (such as ReGenesis) outside of light client sync.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"eth20\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth20 permalink\" href=\"#eth20\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth2.0<\/h3>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"deposit-contract\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"deposit contract permalink\" href=\"#deposit-contract\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Deposit contract<\/h4>\n<p class=\"chakra-text css-gi02ar\">Our team led the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/axic\/eth2-deposit-contract\">Solidity rewrite<\/a> of the deposit contract, which underwent successful <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/06\/23\/eth2-quick-update-no-12\">audit and verification<\/a>, and was <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/eth2.0-specs\/blob\/dev\/specs\/phase0\/deposit-contract.md#solidity-code\">adopted as a part of the Eth2.0 specification<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">The <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/runtimeverification\/deposit-contract-verification\/blob\/master\/deposit-contract-verification.pdf\">verification report<\/a> mentions a benefit of the rewrite:<\/p>\n<blockquote class=\"chakra-code css-gk0tva\">\n<p class=\"chakra-text css-gi02ar\">Despite the additional runtime checks, the Solidity implementation is more gas-efficient (30~40% less gas cost) than the original Vyper implementation, thanks to the advanced code optimization of the Solidity compiler.<\/p>\n<\/blockquote>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"eth1x64\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"eth1x64 permalink\" href=\"#eth1x64\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Eth1x64<\/h4>\n<p class=\"chakra-text css-gi02ar\">In the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/04\/14\/ef-supported-teams-research-and-development-update-2020-pt-1\">previous update<\/a> we described our work on Eth2 Phase 2 and introduced Eth1x64 as a concept.<\/p>\n<p class=\"chakra-text css-gi02ar\">The first variant of Eth1x64, named <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/eth1x64-variant-1-apostille\/7365\">Apostille<\/a>, specifies a minimally-invasive extension to Eth1 and EVM. This extension allows contracts on the Eth1 chain to communicate with other execution shards on Eth2.<\/p>\n<p class=\"chakra-text css-gi02ar\">The experiment describes a situation where all 64 shards of Eth2 are homogenous and running the EVM, and allows these shards to communicate with each other. Furthermore the techniques presented can be (re)used in the context of the Eth1-Eth2 merge.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"fizzy\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"fizzy permalink\" href=\"#fizzy\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Fizzy<\/h4>\n<blockquote class=\"chakra-code css-gk0tva\">\n<p class=\"chakra-text css-gi02ar\">Fizzy aims to be a fast, deterministic, and pedantic WebAssembly interpreter written in C++.<\/p>\n<\/blockquote>\n<p class=\"chakra-text css-gi02ar\">The four main goals of <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/wasmx\/fizzy\">Fizzy<\/a> are:<\/p>\n<ol role=\"list\" class=\"css-vgl4zd\">\n<li class=\"css-0\">high code quality and simplicity<\/li>\n<li class=\"css-0\">strict specification conformance<\/li>\n<li class=\"css-0\">efficiency<\/li>\n<li class=\"css-0\">first class support for deterministic applications<\/li>\n<\/ol>\n<p class=\"chakra-text css-gi02ar\"><a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/04\/14\/ef-supported-teams-research-and-development-update-2020-pt-1\">Following April<\/a> significant progress has been made and three out of the four major goals have been already met.<\/p>\n<p class=\"chakra-text css-gi02ar\">Compared to other interpreters, we have deliberately restricted the scope to WebAssembly 1.0, avoided implementing any pending proposals, and resisted the urge to create an all-encompassing library. Fizzy only supports the canonical binary representation (<span class=\"chakra-text css-ons8vw\">.wasm<\/span>) of WebAssembly and does not support the text formats (<span class=\"chakra-text css-ons8vw\">.wat<\/span>\/<span class=\"chakra-text css-ons8vw\">.wast<\/span>). This allowed us to keep the code simple and straightforward.<\/p>\n<p class=\"chakra-text css-gi02ar\">The pedantic adherence to the specification, combined with exhaustive use of static analyzers and fuzz-testing, allowed us to find missing test coverage in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/WebAssembly\/spec\/issues?q=involves:chfast+involves:axic+involves:gumb0\">the specification<\/a>, and upstream issues in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/WebAssembly\/wabt\/issues?q=involves:chfast+involves:axic+involves:gumb0\">wabt<\/a> and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/wasm3\/wasm3\/issues?q=involves:chfast+involves:axic+involves:gumb0\">wasm3<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">While execution speed was not the first goal, we have been conscious about design decisions affecting it. This allowed Fizzy to become the second fastest interpreter on the market, beating our previous favorite <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/WebAssembly\/wabt\">wabt<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">Fizzy in numbers:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">5 major releases<\/li>\n<li class=\"css-0\">~2300 lines of well commented modern C++17 code<\/li>\n<li class=\"css-0\">additional ~7300 lines of unit tests<\/li>\n<li class=\"css-0\">99.96% <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/codecov.io\/gh\/wasmx\/fizzy\">code coverage<\/a><\/li>\n<li class=\"css-0\">100% &#8220;spectest&#8221; pass rate (the official WebAssembly test suite)<\/li>\n<li class=\"css-0\">second fastest WebAssembly interpreter<\/li>\n<\/ul>\n<p class=\"chakra-text css-gi02ar\">We are preparing the 0.6.0 release which will introduce a public C and Rust API, and provide support for <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/WebAssembly\/WASI\">WASI<\/a>, which allows executing a wide range of applications.<\/p>\n<p class=\"chakra-text css-gi02ar\">After that our attention will be focused on blockchain specific behaviour (efficient metering) and continued upstream contributions for specification conformance.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"formal-verification\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"formal verification permalink\" href=\"#formal-verification\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Formal Verification<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Leo Alt, Martin Lundfall, David Terry<\/em><\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"act\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"act permalink\" href=\"#act\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Act<\/h3>\n<p class=\"chakra-text css-gi02ar\">Act 0.1 is close to being released. It is converging as a language, and a lot of work went into tooling for Act in the past months, as planned:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\"><a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/act\/blob\/master\/docs\/smt.md\">SMT backend<\/a>. Inductive high level properties such as contract invariants and post conditions written in Act can be proven automatically using the Act SMT backend. The properties are encoded as inductive theorems using the required SMT theories, and given to an SMT solver. This feature allows users to prove properties in a simple, easy and standalone way, separated from the bytecode. The SMT backend assumes that the contract\u2019s bytecode is correctly represented by the storage updates in the specification. In order to prove that, you can use the<\/li>\n<li class=\"css-0\">Hevm backend. Hevm now has <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/fv.ethereum.org\/2020\/07\/28\/symbolic-hevm-release\/\">symbolic execution features<\/a>, which are now fully integrated into Act. Given an Act specification and the compiled bytecode, it will automatically check whether the storage updates described in the specification match what the bytecode actually does.<\/li>\n<li class=\"css-0\">Coq backend. Similarly to the SMT backend, this feature is useful to prove inductive high level properties in a standalone way. SMT solvers are automatic and fast, but can\u2019t solve everything. Some problems require more expressiveness, and those are the target of the Coq backend. It generates Coq definitions and theorems so the user can use the Coq proof assistant to prove the high level properties.<\/li>\n<\/ul>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"hevm\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"hevm permalink\" href=\"#hevm\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Hevm<\/h3>\n<p class=\"chakra-text css-gi02ar\">Hevm&#8217;s symbolic execution features were <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/fv.ethereum.org\/2020\/07\/28\/symbolic-hevm-release\/\">explained in detail earlier in the year<\/a>, and here\u2019s a summary of the features added since the last update:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">Symbolic execution. As explained in the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/fv.ethereum.org\/2020\/07\/28\/symbolic-hevm-release\/\">previous blog post<\/a>, <span class=\"chakra-text css-ons8vw\">hevm<\/span> is now capable of exploring the possible execution paths of a smart contract, keeping one or more variables abstract. The resulting post states can be checked for assertion violations, or against a given specification. State can be fetched from an rpc node, or kept fully abstract. The tree of execution traces can be explored interactively in a debugger view.<\/li>\n<li class=\"css-0\">Equivalence checking. <span class=\"chakra-text css-ons8vw\">hevm equivalence<\/span> symbolically executes two smart contracts and compares all resulting end states. This is particularly useful for proving safety of compiler optimizations, or comparing different implementations of contracts implementing the same semantics.<\/li>\n<li class=\"css-0\">Decompilation of smart contracts. The first initial steps towards a symbolic decompiler have been taken. Running <span class=\"chakra-text css-ons8vw\">hevm symbolic<\/span> with the flag <span class=\"chakra-text css-ons8vw\">&#8211;show-tree<\/span> prints a summary of the reachable end states, their path conditions and the state updates performed. This feature is still in its early stages, but the plan is that this will generate a set of <span class=\"chakra-text css-ons8vw\">act<\/span> specifications from EVM bytecode, which could then be used to further reason about the smart contract\u2019s behaviour.<\/li>\n<li class=\"css-0\">DSTest integration. <span class=\"chakra-text css-ons8vw\">hevm<\/span>\u2019s symbolic execution capabilities have been integrated with the <span class=\"chakra-text css-ons8vw\">dapp<\/span> <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/dapphub\/dapptools\">testing framework<\/a>. This means that you can now write properties and formally verify them in Solidity in the same way you write tests! There is a lot more to be said here and we are working on a longer blog post which goes into detail.<\/li>\n<\/ul>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"smtchecker\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"smtchecker permalink\" href=\"#smtchecker\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>SMTChecker<\/h3>\n<p class=\"chakra-text css-gi02ar\">Many important features have been added to the SMTChecker since the last update, including:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">Much more language support. The SMTChecker is by now almost able to analyze any syntax modulo 1) some language features we don\u2019t see being used that much, such as function pointers and complicated memory\/storage aliasing; and 2) things that are too hard to have a reasonably efficient representation in the SMT universe, like ABI encoding\/decoding and hash functions.<\/li>\n<li class=\"css-0\">External calls to unknown code. This is a big one! The SMTChecker\u2019s <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/docs.soliditylang.org\/en\/v0.7.5\/security-considerations.html#constrained-horn-clauses-chc\">Constrained Horn Clauses<\/a> (CHC) engine abstracts external calls to non-trusted contracts as an unbounded number of nondeterministic calls to the analyzed contract. Using this abstraction the CHC engine can compute precisely what state changes can or cannot happen via this external call, allowing it to keep inductive invariants that were inferred previously and\/or compute new ones. This enables the tool to automatically prove and learn invariants about more complex properties, that involve external calls and potential reentrancy. This also reduces greatly the number of false positives caused by external calls.<\/li>\n<li class=\"css-0\">Multi-transaction counterexamples. Another big one! The CHC engine now reports the full transaction trace from the contract\u2019s constructor to the function that causes the verification condition to be triggered. It also includes concrete values for the function\u2019s arguments and state variables, if applicable, for value types and arrays. Some upcoming features are reporting concrete values for structs and reporting reentrant calls in the transaction trace.<\/li>\n<li class=\"css-0\">Better control and usability. The user can now choose separately which engine should run, <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/docs.soliditylang.org\/en\/v0.7.5\/security-considerations.html#bounded-model-checker-bmc\">BMC (Bounded Model Checker)<\/a>, CHC or both. Besides, a timeout in milliseconds can also be given and is applied to each query. This makes fully deterministic reruns hard, but is useful when trying to prove complex properties that might need more time.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"geth\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"geth permalink\" href=\"#geth\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Geth<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by P\u00e9ter Szil\u00e1gyi<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">The Geth team&#8217;s primary focus in the past months was around laying the groundwork for a number of features we&#8217;re gradually rolling out in the next few weeks and also towards Eth1-Eth2 interoperability:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">One feature we&#8217;ve run ourselves for the better part of the year but have been holding back on rolling out to everyone is the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/07\/17\/ask-about-geth-snapshot-acceleration\">snapshotter<\/a>, which allows storing the Ethereum state in a flat format in the database. Although the core functionality worked well, we&#8217;ve spent a significant amount of time working on various recovery features so crashes and de-syncs with the state trie can be gracefully handled. You can already run your node with &#8211;snapshot, but as it is consensus critical, we&#8217;ll only be enabling it by default on our next major release, slated for early January.<\/li>\n<li class=\"css-0\">The primary purpose of the snapshotter was to enable snap sync, a successor to fast- and warp sync, having the advantages of both, whilst working around the disadvantages of both. The protocol was fully specced and published in the last few months in the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/devp2p\/blob\/master\/caps\/snap.md\">devp2p repo<\/a>, and it has a full production implementation pending merge on the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/go-ethereum\/pull\/21482\">Geth repo<\/a>. As a teaser, the stats from our <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/twitter.com\/peter_szilagyi\/status\/1323488829769175040\">last benchmark<\/a>: network packets reduced by 5(!) orders of magnitude, serving disk IO and upload by 2 orders of magnitude. 5x faster sync, 2x less download.<\/li>\n<li class=\"css-0\">One of the Achilles&#8217; heels of Geth since its inception was that once some data hit the database, we never deleted it. Long term, our disk usage kept growing and bloating with stale states belonging to ancient blocks. The fast iteration capability of the snapshotter provides us with a unique new opportunity to implement a very simple <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/go-ethereum\/pull\/21724\">state pruner<\/a>. We will not be enabling it as a background process within Geth any time soon, but you&#8217;ll be able to prune your database offline via <span class=\"chakra-text css-ons8vw\">geth snapshot prune-state<\/span>, which should finish in a few hours.<\/li>\n<li class=\"css-0\">On a more research-y front, we&#8217;ve been investigating the practicality of replacing the current hexary state trie with a <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/medium.com\/@gballet\/structure-of-a-binary-state-tree-part-1-48c587836d2f\">binary one<\/a>, the purpose of which would be to significantly reduce witness sizes (stateless direction) and light client proofs. In addition, binary tries could also help reduce some of the code complexity for new clients that would be willing to join the Ethereum network only from a future block and not care about chain history based on the hexary tries. Landing this work is still far out as this is as much of an open-heart-surgery of Ethereum as we can do.<\/li>\n<li class=\"css-0\">Since the Eth2 beacon chain now live, we&#8217;ve been <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/go-ethereum\/pull\/21614\">working<\/a> on a possible <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/architecture-of-a-geth-based-eth1-engine\/7574\">integration<\/a> of the current Ethereum chain into a shard of the beacon chain; which would implicitly also enable running arbitrary EVM shards on Eth2. There are still a number of pieces missing to make it production ready (mostly around needing a new sync model, though no new protocol), but a prototype Geth EVM shard on top of Eth2 was already <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethresear.ch\/t\/architecture-of-a-geth-based-eth1-engine\/7574\">demonstrated<\/a>.<\/li>\n<li class=\"css-0\">We&#8217;ve come to the realization that &#8211; at this point in time &#8211; most clients do not focus on network protocol improvements, even though Geth defined (ACD approved) and shipped quite a few lately. This is a problem as it prevents us from dropping old protocol versions, which makes our code brittle. Implementing these changes is not hard, but validating them is, which is our best guess as to why other clients aren&#8217;t keen on doing it. To try to offset some of the burden, we began working on a protocol tester to allow validating an arbitrary client&#8217;s implementations of the discovery protocol, devp2p and higher level overlays (<span class=\"chakra-text css-ons8vw\">eth<\/span>, <span class=\"chakra-text css-ons8vw\">snap<\/span>, etc).<\/li>\n<li class=\"css-0\">In a similar vein to the above protocol tester, a lot of effort went into bringing <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereum\/hive\">hive<\/a> up to speed with new clients and new test suites. Our hopes are that other clients will also start contributing some tests to cross validate each others&#8217; code and that soon Eth2 clients would also join a combined effort to keep the network stable.<\/li>\n<li class=\"css-0\">Geth implemented and ran 2 testnets for the upcoming Berlin hard fork (YOLO v1 and v2), with the 3rd one currently being prepped once all the proposed EIPs are more or less finalized. This also implicitly means that we&#8217;ve spent a lot of time implementing and shipping the various EIPs that will make up the Berlin hard fork. Progress on this front is a big jaggedy as the EIP process is not the leanest and the proposals evolve quite a bit, but we&#8217;re hopeful that all the details will get nailed down soon enough to launch YOLOv3 and then Berlin.<\/li>\n<li class=\"css-0\">For a list of security improvements in Geth &#8211; in order not to duplicate the same things multiple times &#8211; please check the <em class=\"chakra-text css-0\">Security<\/em> section a bit further down authored by Martin Holst Swende.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"javascript-team\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"javascript team permalink\" href=\"#javascript-team\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>JavaScript Team<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Holger Drewes<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">The JavaScript team just recently had its big EthereumJS VM v5 release which consists of six major version releases:<\/p>\n<p class=\"chakra-text css-gi02ar\">VM v5 is the first full-featured JavaScript EVM available with backports for all hardforks down to genesis. It also comes with dedicated support for EIPs, moving away from a hardfork-centric VM. These new library versions complete our TypeScript transition and all now provide a modern JS Promise-based API. Furthermore, necessary refactors have been done on the block and tx libraries to get rid of technical debt. You can read more on the release in the <a class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ethereum.org\/2020\/11\/26\/ethereumjs-vm-v5-release\">blog post<\/a> on the EF blog, covering things in a lot more detail.<\/p>\n<p class=\"chakra-text css-gi02ar\">These new releases provide the ground for us to turn more strongly towards protocol research and development. Our <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereumjs\/ethereumjs-vm\/tree\/master\/packages\/client\">@ethereumjs\/client<\/a>, which we have just <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethereumjs\/ethereumjs-vm\/pull\/973\">integrated<\/a> into our monorepo, will play a central role. Building upon the new VM, Common and Blockchain release versions we are now able to finish a conceptually simple full-sync implementation on the client and start to join development efforts around developer testnets like the <span class=\"chakra-text css-ons8vw\">Yolo<\/span> or <span class=\"chakra-text css-ons8vw\">EIP-1559<\/span> test networks. The client is far from being ready for mainnet but will serve us well in all sorts of development and research scenarios.<\/p>\n<p class=\"chakra-text css-gi02ar\">There is continued development on <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethers-io\/ethers.js\">Ethers<\/a> as well, and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/twitter.com\/ricmoo?lang=en\">@ricmoo<\/a> has done 23 (!) small feature and bug fix releases since the big <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethers-io\/ethers.js\/releases\/tag\/v5.0.0\">v5 release<\/a> in June 2020 (see preceding beta release notes for the full picture). Noteworthy features are the added support for EIP-712 signed typed data in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethers-io\/ethers.js\/releases\/tag\/v5.0.18\">v5.0.18<\/a> and new ENS resolver functions for contentHash in <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethers-io\/ethers.js\/releases\/tag\/v5.0.10\">v5.0.10<\/a>, together with many smaller fixes and improvements introduced. A lot of work has also been done on Ethers to ensure it remains a reliable infrastructure component in the large ecosystem it is used within. An example here is the work to ensure more robust Alchemy and Infura provider support: see <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/ethers-io\/ethers.js\/releases?after=v5.0.6\">v5.0.6<\/a> and subsequent releases. See this <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.ricmoo.com\/highlights-ethers-js-december-2020-2e2db8bc800a\">blog post<\/a> for a more in-depth update on the latest highlights.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"remix\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"remix permalink\" href=\"#remix\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Remix<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Yann Levreau &amp; Rob Stupay<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">In the past 6 months, Remix Project has undergone more than a modicum of developmental loveliness. We\u2019ve updated the functionality, the quality of the codebase, and the ability of the IDE to work with other projects. We have also been preparing for future iterations of the IDE. And yet, the totality of our programmatic handiwork would mean nothing if we didn\u2019t reach out to teach new users, partner with other organizations and grow our community. So we did!<\/p>\n<p class=\"chakra-text css-gi02ar\">Remix IDE is used by both newcomers to Ethereum and by experienced devs. We have fortified the tool for both types of users. We have also been striving to improve the DevX for those coding plugins for IDE as well as ensuring that their plugins look good and continue to function well.<\/p>\n<p class=\"chakra-text css-gi02ar\">There are some large changes coming to Remix. Currently the IDE uses the yoyo framework, which is no longer being maintained. So we are moving on and have begun the transition to React and also to Theia &#8211; a framework specifically for building IDEs. In addition, we have finished the first iteration of a Remix plugin for VSCode.<\/p>\n<p class=\"chakra-text css-gi02ar\">See the specifics of the updates on <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/medium.com\/remix-ide\/remix-project-the-last-6-months-4a7ad00ff536?source=friends_link&amp;sk=d4a16b143362ae8e0e6ef5cdb816847b\">our blog post about the last six months<\/a>.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"snake-charmers-python-ecosystem-pyevmtrinityweb3pyvyper\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"snake charmers python ecosystem pyevmtrinityweb3pyvyper permalink\" href=\"#snake-charmers-python-ecosystem-pyevmtrinityweb3pyvyper\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Snake Charmers [Python Ecosystem: PyEVM\/Trinity\/Web3.py\/Vyper]<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Piper Merriam<\/em><\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">Fe-Lang, a new smart contract language is under active development.\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">The language was originally born as a rewrite of the Vyper compiler (in Rust) but has since moved on to follow its own path. More on the backstory and goals can be read in the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/snakecharmers.ethereum.org\/fe-a-new-language-for-the-ethereum-ecosystem\/\">official announcement post<\/a>.<\/li>\n<li class=\"css-0\">We are on track to have an ERC-20 implementation in Fe functional before the end of the year. To be clear, the compiler will in no way be a suitable choice for a production ERC20 by that time, but we look forward to demonstrating the capabilities of Fe with such a well understood working example.<\/li>\n<li class=\"css-0\">More information can be found at <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/fe.ethereum.org\/\">https:\/\/fe.ethereum.org\/<\/a> as well as our most recent <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/snakecharmers.ethereum.org\/fe-development-update-1\/\">development update<\/a>.<\/li>\n<\/ul>\n<\/li>\n<li class=\"css-0\">The Trinity team is winding down development on the Trinity Ethereum client in order to re-focus on more impactful problems with the core protocols.<\/li>\n<li class=\"css-0\">We are starting work to build out a DHT based network for more effectively serving the chain history, as well as continued research on how to solve on-demand state availability. The project is moving forward under the name \u201cAlexandria\u201d. Read more in our recent <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/snakecharmers.ethereum.org\/alexandria-dev-update-1\/\">development<\/a> <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/snakecharmers.ethereum.org\/alexandria-dev-update-2\/\">updates<\/a>.<\/li>\n<li class=\"css-0\">The Web3.py team continues to focus on stability of the library which has matured nicely over the past years. Looking forward, we are still working towards implementing native <span class=\"chakra-text css-ons8vw\">async<\/span> support. We are also working on exposing the Eth2 beacon chain APIs.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"stateless-ethereum\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"stateless ethereum permalink\" href=\"#stateless-ethereum\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Stateless Ethereum<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Piper Merriam<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">The \u201cStateless Ethereum\u201d effort continues. In our latest call earlier in November we reviewed the roadmap and goals. Teams are actively working on conversion of the main Ethereum state trie from its current hexary format to a new binary format, as well as a modification to introduce a merklization layer to the way that contract code is stored. These two changes have the largest impact on reducing witness sizes. Re-genesis is also under active research as it provides major benefits to client developers, allowing them to drop old fork rules from their codebases while also giving us an incremental path towards full statelessness.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"security-security--consensus-tests\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"security security  consensus tests permalink\" href=\"#security-security--consensus-tests\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Security [Security \/ Consensus Tests]<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Martin Holst Swende<\/em><\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">We&#8217;ve started doing bi-weekly cross-client fuzzing calls among client developers, where we&#8217;ve been iterating on the practicalities of evm-based fuzzing, getting the clients to agree on formats and chain definitions. We&#8217;ve performed ~100K fuzzed testcases focusing on YOLOv2, specifically EIP-2929, between Geth, OE and Besu.<\/li>\n<li class=\"css-0\">Further improvements and additions to Hive (<a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/hivetests.ethdevops.io\">https:\/\/hivetests.ethdevops.io<\/a>), to expand the protocol testing capabilities and cover a larger portion of the ETH\/63 protocol. Also improve documentation and API, to make it easier for other eth1 teams to integrate\/use for testing, and make it possible to use for eth2 clients later on.<\/li>\n<li class=\"css-0\">Go-ethereum is now enrolled in OSS-Fuzz, which resulted in an upstream Go-lang bug being detected. Since the integration, we&#8217;ve further improved and expanded the fuzzing targets.<\/li>\n<li class=\"css-0\">Work in progress that we hope will land soon, is to implement a(n optional) vulnerability-check into Geth, which fetches information from a vulnerability-feed that can be used to check if the client suffers from any known vulnerability.<\/li>\n<li class=\"css-0\">The forkmon (<a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/forkmon.ethdevops.io\">https:\/\/forkmon.ethdevops.io<\/a>) has been created, and 17 public and\/or nodes are connected to it. It is a dashboard to help visualize\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">if the various clients are in agreement the head block<\/li>\n<li class=\"css-0\">if not, where the disagreement (fork) started<\/li>\n<li class=\"css-0\">whether any particular client has become stuck<\/li>\n<\/ul>\n<\/li>\n<li class=\"css-0\">We have also expanded on the number of in-house clients that are used for monitoring the Mainnet, which now includes Geth, Besu, Nethermind and OpenEthereum.<\/li>\n<\/ul>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"solidity\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"solidity permalink\" href=\"#solidity\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Solidity<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Franziska Heintel and Christian Reitwiessner<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">End of July, Solidity v0.7.0 was <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.soliditylang.org\/2020\/07\/28\/solidity-v0.7.0-release-announcement\/\">released<\/a>. You can find a detailed list of all breaking changes <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/docs.soliditylang.org\/en\/latest\/070-breaking-changes.html#\">here<\/a>.<\/p>\n<p class=\"chakra-text css-gi02ar\">With the Solidity 0.8.0 release being just around the corner, we wanted to try out a new format to share the implementation details and changes of breaking releases with you beforehand. Hence, we published a preview release. The <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.soliditylang.org\/2020\/10\/28\/solidity-0.8.x-preview\/\">preview release post<\/a> includes 0.8.x test binaries as well as a detailed description of the upcoming \u201cChecked Arithmetic\u201d feature (bye bye SafeMath!) with its three sub-features. We hope you find these kind of preview releases helpful and look forward to hearing your thoughts on the implementation of the breaking changes. And, as per usual, if you are interested in discussing language design with us, make sure to join the solidity-users <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/groups.google.com\/g\/solidity-users\">mailing list<\/a>!<\/p>\n<p class=\"chakra-text css-gi02ar\">At the moment, the Solidity team is working on the last items to get into Solidity 0.8. Most notably, adding overflow checks for arithmetic operations and the activation of ABI coder V2 by default. See above for the preview release!<\/p>\n<p class=\"chakra-text css-gi02ar\">The second big chunk of work, which is also nearing completion, is the use of Yul as an intermediate language in the compiler. For this, we re-implemented most of the code generator. You can try it out using <span class=\"chakra-text css-ons8vw\">solc &#8211;experimental-via-ir<\/span> or <span class=\"chakra-text css-ons8vw\">solc &#8211;ir<\/span> and <span class=\"chakra-text css-ons8vw\">solc &#8211;ir-optimized &#8211;optimize<\/span>. The goal of using Yul is that the compiler gets more transparent because you can actually read and understand the code it generates. Furthermore, it allows more opportunities for optimization and you might soon say goodbye to \u201cstack too deep\u201d errors!<br \/>\nWith regard to features, we want to change the Solidity language to support more items at the file-level, which allows you to better structure your code and introduce nicely isolated helper functions.<br \/>\nFinally, with the introduction of error codes, you will soon be able to flag problems that are readable to the user and at the same time only consume little gas.<br \/>\nOh and then the language server&#8230;<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"solidity-summit\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"solidity summit permalink\" href=\"#solidity-summit\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Solidity Summit<\/h3>\n<p class=\"chakra-text css-gi02ar\">The first Solidity Summit took place online on April 29-30 2020 and featured discussions &amp; talks on Solidity, Yul, language design and tooling. The event encouraged discussions around language design and language improvement and aimed to foster communication between teams working on similar topics. Furthermore, the goal was to identify needs for the Ethereum smart contract ecosystem. With enough content and talks for a packed agenda over two days, it was a great success. The conference featured 23 talks and 13 open discussion rounds. To learn more, read the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.soliditylang.org\/2020\/06\/09\/solidity-summit-recap\/\">recap<\/a> of the event or watch the videos of all talks online in this <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/www.youtube.com\/playlist?list=PLaM7G4Llrb7xlGxwlYGTy1T-GHpytE3RC\">playlist<\/a>. We are planning to host more Solidity Summits in future and will keep you updated on when and how.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"solidity-language-portal--domains\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"solidity language portal  domains permalink\" href=\"#solidity-language-portal--domains\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Solidity Language Portal &amp; Domains<\/h3>\n<p class=\"chakra-text css-gi02ar\">In October, we were excited to <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/twitter.com\/solidity_lang\/status\/1318953677332357126?s=20\">announce<\/a> the launch of the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/soliditylang.org\">Solidity language portal<\/a>, a one-stop-shop for all important links and high-level information around Solidity. Alongside with the launch of this portal, we tidied up domains and moved most of the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/twitter.com\/solidity_lang\/status\/1329031139495964673?s=20\">Solidity pages<\/a> under the new <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/soliditylang.org\">soliditylang.org<\/a> domain umbrella.<br \/>\nWe have also recently changed the hosting of the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/docs.soliditylang.org\/en\/breaking\/installing-solidity.html#static-binaries\">static builds<\/a>, which are now available at <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/binaries.soliditylang.org\">binaries.soliditylang.org<\/a>. While the transition should have been seamless for most users, please make sure to switch if you are still using <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/ethereum.github.io\/solc-bin\/\">https:\/\/ethereum.github.io\/solc-bin\/<\/a>.<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"solidity-underhanded-contest\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"solidity underhanded contest permalink\" href=\"#solidity-underhanded-contest\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Solidity Underhanded Contest<\/h3>\n<p class=\"chakra-text css-gi02ar\">Throughout October, we hosted a new edition of the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/underhanded.soliditylang.org\/\">Solidity Underhanded Contest<\/a>. The contest\u2019s goal is to raise awareness of smart contract security and uncover language design faults by writing innocent-looking Solidity code, which contains malicious behavior or backdoors. Submissions closed on October 31st and we are thrilled to share the winners with you in the coming days!<\/p>\n<h3 class=\"chakra-heading group css-xuzltg\" id=\"sourcify\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"sourcify permalink\" href=\"#sourcify\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Sourcify<\/h3>\n<p class=\"chakra-text css-gi02ar\">Besides the core update, the Solidity team has been working on an initiative called Sourcify (formerly known as source-verify) for a while now. Sourcify is a contract verification service and metadata repo, which aims to make interacting with smart contracts on the blockchain safer and <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.soliditylang.org\/2020\/06\/02\/sourcify-towards-safer-contract-interaction-for-humans\/\">more transparent<\/a> for users. To achieve this goal, Sourcify supports several efforts to foster adoption of open-source source verification, metadata files and NatSpec comments.<\/p>\n<p class=\"chakra-text css-gi02ar\">At its core, Sourcify currently maintains<\/p>\n<p class=\"chakra-text css-gi02ar\">Last, but not least, we <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/blog.soliditylang.org\/2020\/07\/08\/solidity-turns-5\/\">celebrated<\/a> the 5th birthday of Solidity version 0.1.0 with a walk down memory lane, reflections on 5+ years of language design and a brief look into the future.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"zkp-research\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"zkp research permalink\" href=\"#zkp-research\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>ZKP Research<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Dmitry Khovratovich, Mary Maller and Dankrad Feist<\/em><\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"improving-stark-based-vdfs\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"improving stark based vdfs permalink\" href=\"#improving-stark-based-vdfs\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Improving STARK-based VDFs<\/h4>\n<p class=\"chakra-text css-gi02ar\">The idea is to prove a long incompressible iteration using a zkSTARK (Ben-Sasson et al). We suggested a new iterative construction with increased performance and security over the Starkware proposal Veedo. The new one minimizes the arithmetic operations per step and reduces the hardware requirements. We also analyzed:<\/p>\n<ul role=\"list\" class=\"css-1ars4k6\">\n<li class=\"css-0\">How time-memory tradeoffs can affect the construction and suggested secure parameters.<\/li>\n<li class=\"css-0\">Quantum attacks on the function and quantum enhancements to tradeoff algorithms.<\/li>\n<\/ul>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"designing-a-more-secure-hash-function-for-zk-applications\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"designing a more secure hash function for zk applications permalink\" href=\"#designing-a-more-secure-hash-function-for-zk-applications\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>Designing a more secure hash function for ZK applications<\/h4>\n<p class=\"chakra-text css-gi02ar\">Current ZK-friendly hash functions rely too much on algebraic attacks, but the proof system UltraPLONK (adding the Plookup construction to PLONK) adds a lookup table (like an AES S-box) as a fast operation.<br \/>\nWe show how to combine lookups with field operations to be fast both in proofs and in regular hashing.<br \/>\nThe security relies much more on regular cryptanalysis than on (not much understood) Groebner basis attacks.<\/p>\n<h4 class=\"chakra-heading group css-qm6a1\" id=\"new-protocol-for-single-secret-leader-election-ssle-that-can-be-implemented-in-eth2\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"new protocol for single secret leader election ssle that can be implemented in eth2 permalink\" href=\"#new-protocol-for-single-secret-leader-election-ssle-that-can-be-implemented-in-eth2\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>New protocol for Single Secret Leader Election (SSLE) that can be implemented in Eth2<\/h4>\n<p class=\"chakra-text css-gi02ar\">The consensus protocol in Eth2 is leader based. This means that for each shard, a leader is selected who is responsible for proposing blocks and driving progress. Thus a malicious party could theoretically stall the entire network simply by DDOSing the selected leader. We have designed a preventative measure against such attacks based on a single secret leader election (SSLE) put forward by Boneh and others.<\/p>\n<p class=\"chakra-text css-gi02ar\">The SSLE ensures that the only person who knows who the leader is, is the leader themselves. The leader only reveals their identity upon proposing a block. Thus our malicious party does not know who to attack. The SSLE is achieved by shuffling encryptions in zero-knowledge. We have implemented a shuffle argument inspired by that of Bayer and Groth, but using more modern inner product arguments to improve efficiency. The argument is fast enough to be included in the Eth2 design and does not require a trusted setup. It is still awaiting a formal audit.<\/p>\n<h2 class=\"chakra-heading group css-1kpzc4q\" id=\"zokrates\" data-group=\"true\"><a class=\"chakra-link css-128fqrf\" aria-label=\"zokrates permalink\" href=\"#zokrates\"><svg viewbox=\"0 0 24 24\" focusable=\"false\" class=\"chakra-icon css-173jpr1\"><g fill=\"currentColor\"><path d=\"M10.458,18.374,7.721,21.11a2.853,2.853,0,0,1-3.942,0l-.892-.891a2.787,2.787,0,0,1,0-3.941l5.8-5.8a2.789,2.789,0,0,1,3.942,0l.893.892A1,1,0,0,0,14.94,9.952l-.893-.892a4.791,4.791,0,0,0-6.771,0l-5.8,5.8a4.787,4.787,0,0,0,0,6.77l.892.891a4.785,4.785,0,0,0,6.771,0l2.736-2.735a1,1,0,1,0-1.414-1.415Z\"\/><path d=\"M22.526,2.363l-.892-.892a4.8,4.8,0,0,0-6.77,0l-2.905,2.9a1,1,0,0,0,1.414,1.414l2.9-2.9a2.79,2.79,0,0,1,3.941,0l.893.893a2.786,2.786,0,0,1,0,3.942l-5.8,5.8a2.769,2.769,0,0,1-1.971.817h0a2.766,2.766,0,0,1-1.969-.816,1,1,0,1,0-1.415,1.412,4.751,4.751,0,0,0,3.384,1.4h0a4.752,4.752,0,0,0,3.385-1.4l5.8-5.8a4.786,4.786,0,0,0,0-6.771Z\"\/><\/g><\/svg><\/a>ZoKrates<\/h2>\n<p class=\"chakra-text css-gi02ar\"><em class=\"chakra-text css-0\">Authored by Jacob Eberhardt<\/em><\/p>\n<p class=\"chakra-text css-gi02ar\">We\u2019ve been hard at work since our last update, and are happy to announce several new features and improvements today.<br \/>\nThroughout the last couple of months, we extended the ZoKrates language and compiler, added a new backend, and improved our documentation to make zkSNARKs even more accessible to Ethereum developers today.<\/p>\n<p class=\"chakra-text css-gi02ar\">We extended support for unsigned integers with additional operators and efficiency tweaks. This allowed us to rewrite important standard library functions, such as SHA256, fully in our DSL instead of relying on imports of hand-optimised circuits for performance.<\/p>\n<p class=\"chakra-text css-gi02ar\">To further improve usability and developer experience, we added syntax highlighting to the ZoKrates Remix plugin, extended input validation, and enabled convenient input forms for complex data types.<\/p>\n<p class=\"chakra-text css-gi02ar\">As groundwork for the integration of new proving schemes and recursive proof composition, we added support for the <a target=\"_blank\" rel=\"noopener\" class=\"chakra-link css-vezwxf\" href=\"https:\/\/github.com\/arkworks-rs\">Arkworks<\/a> zkSNARK libraries as an additional backend (<em class=\"chakra-text css-0\">this library was called ZEXE until very recently<\/em>). We thank the EY Blockchain R&amp;D team for their valuable contributions in this context!<br \/>\nBuilding on that, we are currently working towards enabling recursive zkSNARK composition within the ZoKrates toolbox.<\/p>\n<p class=\"chakra-text css-gi02ar\">Besides the usual documentation updates to describe new features and changes, we added a new tutorial to help onboarding new users.<\/p>\n<p class=\"chakra-text css-gi02ar\">We\u2019ll close with a little teaser: We\u2019re getting close to finalizing support for generic ZoKrates programs that depend on compile-time constants. This will significantly improve code reusability and make our standard library easier to use. Stay tuned.<\/p>\n<\/div>\n<p><script async src=\"\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><br \/>\n<br \/><br \/>\n<br \/><a href=\"https:\/\/blog.ethereum.org\/en\/2020\/12\/09\/ef-supported-teams-research-and-development-update-2020-pt-2\">Source link <\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Friends, Leaves have fallen for those in the global north, Summer is on the way in the south, and ETH is staked across the globe. The jolliest of holidays has arrived, the birth of the beacon chain. Moreover, incredible progress has been made in recent months by all EF supported teams. But without the ability [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":18043,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"tdm_status":"","tdm_grid_status":"","footnotes":""},"categories":[24],"tags":[],"kronos_expire_date":[],"class_list":["post-18216","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ethereum"],"_links":{"self":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18216","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/comments?post=18216"}],"version-history":[{"count":0,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/posts\/18216\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media\/18043"}],"wp:attachment":[{"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/media?parent=18216"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/categories?post=18216"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/tags?post=18216"},{"taxonomy":"kronos_expire_date","embeddable":true,"href":"https:\/\/cryptoted.net\/index.php\/wp-json\/wp\/v2\/kronos_expire_date?post=18216"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}