Skip to content

Latest commit

 

History

History
307 lines (239 loc) · 27.4 KB

File metadata and controls

307 lines (239 loc) · 27.4 KB
title Ipsilon website

Ipsilon {twitter.com/teamipsilon and team at ipsilon.xyz}

💡The name is a reference to the state transition function defined in the Yellow Paper.

[toc]

Who are Ipsilon?

Ipsilon is a research & development team funded by the Ethereum Foundation.

The team formed in late 2017 under the name Ewasm with the goal to bring WebAssembly to Ethereum. Research included both EVM and WebAssembly starting mid-2019, and as of 2021 it mostly shifted to EVM. To avoid confusion we have rebranded early 2021 to Ipsilon.

What do we do?

The team’s core concern is the execution environment / engine of Ethereum (aka the EVM or any future versions or replacements of it). We provide analysis and implementation of own and third party proposals (i.e. new EIPs proposing changes to the EVM), provide tooling (evmc, evmone, fizzy), and support existing teams (e.g. Solidity, go-ethereum, Silkworm, Erigon) with implementation and analysis.

We publish our findings on our public notes repository, Ethereum Magicians, and ethresear.ch. We also give talks at ecosystem events like Protocol Workshops, Devcon, EVM Summit, EthCC, EthOnline, Wasm on Web3, LisCon, etc.

Additionally, a regular summary on blog.ethereum.org: December 2022, December 2021, August 2021, April 2021, December 2020, April 2020, December 2019, June 2019.

We also organize the EVM Summit, a conference dedicated to discussions around the EVM. The inaugural summit was held during Devonnect Istanbul in November 2023, followed by an EVM mini-Summit at Devcon Bangkok in November 2024.

Current Projects

EOF

EVM Object Format (EOF) is the next step in the evolution of the EVM. It introduces a long sought format for separation of code and data, allows versioning, and enables a much easier and faster way to improve the EVM.

The work can be most accurately tracked on evmobjectoformat.org and the ipsilon/eof repository. It is currently slated for adoption in the Osaka network update.

For the earlier versions (Shanghai/Cancun/Prague), work was tracked in Everything About EOF and EOFv1 Checklist.

EVMMAX

EVMMAX aka EVM Modular Arithmetic eXtensions is the spiritual successor of evm384 (listed below). This extension of the EVM introduces a few instructions, which allow Montgomery multiplication to be done in an efficient manner.

evmone + evmc

evmone is a very fast C++ implementation of the Ethereum Virtual Machine (EVM). It can be integrated via the EVMC API or via a native API. It is used by Solidity for testing and in the Silkworm Ethereum client.

EIPs

The team is currently pursuing a number of EIPs: EIP-1985 (Sane limits for EVM parameters), EIP-3540 (EVM Object Format), EIP-3670 (Code Validation), EIP-3690 (JUMPDEST table), EIP-4200 (Static relative jumps), and EIP-4750 (Functions)

In has also contributed to numerous adopted EIPs: EIP-140 (REVERT instruction), EIP-141 (INVALID instruction), EIP-145 (Bitwise shifting), EIP-2681 (Limit account nonce), and EIP-3541 (Reject code starting with 0xEF), EIP-3855 (PUSH0 instruction), EIP-3860 (Limit and meter initcode) and EIP-5656 (MCOPY instruction).

And some proposals which are postponed or superseded: EIP-663 (Unlimited SWAP and DUP instructions), EIP-2045 (Particle Gas Costs), and EIP-2926 (Code Merkleization).

Scroll down for a complete list.

EVM Summit

The EVM Summit is a recurring event bringing together various groups interested in evolving the EVM. For further information visit the website or twitter.

EVM support

We support other projects and teams with review and feedback on EVM changes. Currently we work with the Verkle team with regards to changes to the EVM and code chunking.

Past Projects

fizzy (on hold)

fizzy is a fast, deterministic, and pedantic WebAssembly interpreter written in C++.

See this talk about Fizzy and this talk about WebAssembly peculiarities at the Wasm on Web3 2021 conference.

ASE (on hold)

Address Space Extension (ASE) is a working group exploring the ways to allow Ethereum to use 32-byte long addresses as opposed to the current 20-byte long ones. This would be beneficial to allow better quantum-resistant options and makes the state expiry proposal easier to accomplish. However it poses a large and mostly backwards-incompatble change.

The address-space tag on Ethereum Magicians includes most of the relevant links.

Ewasm (deprecated)

Ewasm was a research project adapting WebAssembly for blockchain use cases (which means ensuring determinism, including metering), and a lot of engineering implementing it in Ethereum clients and providing a vast array of tooling. A good starting point is the design and the benchmarking repository. While Ethereum Mainnet has not yet adopted WebAssembly, a lot of other projects have based their work on or took inspiration from Ewasm.

evm384 (superseded)

This was a proposal to introduce primitives into the EVM for efficient 384-bit arithmetics. It was later extended to higher and variable widths. It would allow efficient implementation of various elliptic curves (e.g. BLS12-381) and hashing functions (e.g. MiMC) without precompiles. The progress and links to the various stages of work can be followed in this Ethereum Magicians thread.

Eth 2.0 Phase 2 (superseded)

In an earlier design of "Eth 2.0", during Phase 2 execution was to be enabled on shards. The team has researched various strategies to include execution on the Beacon chain and/or on the shards (e.g. Scout and numerous Execution Environments), to interface with the Eth1 shard, and to support cross-shard communication (e.g. Eth1x64).

Reading the December 2020, April 2020, December 2019, and June 2019 updates paint a good overview of the work performed.

Stateless Ethereum (on hold)

Under the Stateless Ethereum umbrella we have worked on code merkleization, witness encoding, and light-client syncing.

The December 2020 update gives a good overview.

Team members

Active members

Name Github Twitter
Alex Beregszaszi https://github.com/axic https://twitter.com/alexberegszaszi
Andrei Maiboroda https://github.com/gumb0 https://twitter.com/gumb00
Danno Ferrin https://github.com/shemnon https://twitter.com/shemnon
Jose Hugo de la cruz Romero https://github.com/hugo-dc https://twitter.com/hugo_dc
Paweł Bylica https://github.com/chfast https://twitter.com/chfast
Piotr Dobaczewski https://github.com/pdobacz
Radosław Zagórowicz https://github.com/rodiazet https://twitter.com/rodiazet
Eniko (EVM Summit) https://github.com/Eni-G https://twitter.com/Eniko_G

Alumni

Expand
Name Github
Casey Detrio https://github.com/cdetrio
Everett Hildenbrandt https://github.com/ehildenb
Guillaume Ballet https://github.com/gballet
Jake Lang https://github.com/jakelang
Jared Wasinger https://github.com/jwasinger
Lane Rettig https://github.com/lrettig
Martin Becze https://github.com/wanderer
Paul Dworzanski https://github.com/poemm
Sina Mahmoodi https://github.com/s1na
ZX https://github.com/zixuanzh

Team repositories

Expand
Project Repo
Ipsilon org https://github.com/ipsilon
Ewasm org https://github.com/ewasm
Wasmx org https://github.com/wasmx
evmc https://github.com/ethereum/evmc
evmone https://github.com/ethereum/evmone
intx https://github.com/chfast/intx
ethash https://github.com/chfast/ethash
cable https://github.com/ethereum/cable
cpp-build-env https://github.com/ethereum/cpp-build-env

Publications

Articles

EIPs

This includes Ipsilon-driven proposals, and also collaborations by Ipsilon members.

Legend:

  • ✅ Adopted
  • 📖 Under review
  • 🚧 Currently being worked on
  • ❔ Not in focus currently
  • ♻️ Replaced
  • ❌ Withdrawn

Talks