45. Bedrock: the epileptic curve that ensures security!
Ethereum’s scaling protocol Optimism (OP), which operates as a Layer two (L2) network, has announced plans to upgrade its network in March 2023. The upgrade is called ‘Bedrock’. It aims to increase transfer speeds, reduce fees and increase compatibility with the Ethereum Virtual Machine (EVM). As stated on the Optimism Foundation’s official website, the Bedrock update is an important step towards the future of multi-chain.
In short, Bedrock is a set of free and open source modular components that work together to run Optimism (OP).
In the following sections, you will learn what Bedrock is and how it works. So – here we go!
What is a Bedrock upgrade?
Optimism is Ethereum’s layer two (L2) scaling solution. In March 2023, the network released its first update – Bedrock. What is this update? It is the release of OP Stack, a set of modular components that power the Optimism network.
Bedrock is designed to improve transfer fees through optimized data compression. It also reduces deposit times through more efficient handling of L1 re-orgs, modular proof-of-concept systems and improved node performance. Furthermore, Bedrock is very tightly compatible with Ethereum.
The OP stack supports Ethereum-aligned design principles such as EIP-1559 and modularity. The upgrade itself took about four hours and was virtually unnoticeable to users. They did not have to take any action, and despite the upgrade, the historical data is still available.
Improvements brought by the Bedrock update
Bedrock is definitely better than its predecessor. Let us now take a detailed look at all the processes this update brings.
- Lower transaction fees.
Bedrock implements an optimized data compression strategy. In addition, all gas costs associated with EVM when transferring data on Layer 1 (L1) are eliminated. This reduces fees by a further 10% compared to the previous version of the protocol.
- Shorter deposit and data.
With the upgrade, support for Layer 1 (L1) re-orgs has been introduced in the node software. This reduces the time users have to wait for deposits. In a previous version of the protocol, such actions took up to 10 minutes! With Bedrock, confirmation takes no longer than 3 minutes.
- New modularity of proof.
Bedrock moves the proof system to the OP stack. As a result, the rollup uses an error or identity proof (e.g. zk- SNARK). By using this solution, Bedrock can use systems such as Cannon (open new windows) to prove errors in the system.
- Improved node performance.
Node performance has been improved by allowing multiple transactions to be executed in a single rollup block. In the previous version, one transaction was executed per block. The new solution amortizes the cost of updating the trie merkle across multiple transactions.
In addition, node performance has been improved by eliminating technical debt from the previous version of the protocol. What is being referred to? To the elimination of the need for a separate node for layer 1(L1) indexing and updating the node’s software to search for layer 1 (L1) transaction data.
- Greater compatibility with Ethereum.
This is essentially what Bedrock was designed to do. In this update, many ‘bugs’ of the previous protocol were fixed. These include:
- Removal of the “one transaction per block” model.
- The removal of opcodes.
- The separation of L1/L2 charges.
- The rejection of the non-standard ERC-20 representation for ETH balances.
Importantly, in Bedrock we have support for EIP-1559, chain reorgs or other Ethereum features at Layer 1.
How was Bedrock built?
Bedrock is built to be extensible. It is very similar to Ethereum.
One of its main features is modularity. This means that we can easily replace different components in the OP stack and add new ones. The interfaces and versioning schemes are very well defined. The architecture is flexible enough to easily adapt to future changes in the Ethereum ecosystem.
Another feature is that the existing Ethereum architecture and infrastructure is used as much as possible. In this way, the OP stack uses the security and code base that the Ethereum mainnet also uses. Example: EVM contracts, instead of precompiled client code or the Cannon system.
What else should you know about Bedrock?
The update introduces separation between the execution client and the rollup node.
The execution client is the system where sequencers and other node operators determine the state of the layer 2 (L2) chain. They also perform other functions, such as processing incoming transactions or handling system state.
In the case of Bedrock, the OP stack is designed to leverage the Ethereum Execution Client specification and its many implementations. In this version, the update presents us with a very limited modification of go-ethereum, the most popular Ethereum client written in Go (less than 2000 lines of code).
Interestingly, in the case of Bedrock, we have no proof-of-stake consensus. Instead, the consensus is defined by block derivation. The execution client of the OP stack communicates with a new component that implements this block derivation, called a rollup node. Such a node then communicates with the execution client via the same API engine that Ethereum uses. A rollup is a component of the network that is responsible for deriving the state of the system (by reading data and deposits on L1). In the case of Bedrock, such a rollup can be used to order transactions coming in from users or other rollups.
As predicted by experts, Bedrock has brought significant changes to both the Optimism ecosystem and Ethereum. We expect that with this solution, the adoption of decentralized finance (DeFi) will also increase as it becomes easier for developers to deploy dApps.