diff --git a/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-auction-workflow.png b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-auction-workflow.png new file mode 100644 index 000000000..9a8c9b190 Binary files /dev/null and b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-auction-workflow.png differ diff --git a/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-highway-lanes.png b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-highway-lanes.png new file mode 100644 index 000000000..8a515ea6c Binary files /dev/null and b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-highway-lanes.png differ diff --git a/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-transferring-ownership-withdrawing-funds.png b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-transferring-ownership-withdrawing-funds.png new file mode 100644 index 000000000..f57d7f32d Binary files /dev/null and b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-transferring-ownership-withdrawing-funds.png differ diff --git a/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-using-the-express-lane-workflow.png b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-using-the-express-lane-workflow.png new file mode 100644 index 000000000..6fa2b1f42 Binary files /dev/null and b/arbitrum-docs/how-arbitrum-works/timeboost/assets/timeboost-using-the-express-lane-workflow.png differ diff --git a/arbitrum-docs/how-arbitrum-works/timeboost/gentle-introduction.md b/arbitrum-docs/how-arbitrum-works/timeboost/gentle-introduction.md new file mode 100644 index 000000000..cc62cc3ec --- /dev/null +++ b/arbitrum-docs/how-arbitrum-works/timeboost/gentle-introduction.md @@ -0,0 +1,138 @@ +--- +title: 'A gentle Introduction: Timeboost' +sidebar_label: 'A gentle introduction' +description: 'Learn how Timeboost works and how it can benefit your Arbitrum-based project.' +author: leeederek +sme: leeederek +user_story: As a current or prospective Arbitrum user, I want to understand how Timeboost works and how to use it. +content_type: gentle-introduction +--- + +import ImageWithCaption from '@site/src/components/ImageCaptions/'; + +This introduction will walk you through Arbitrum Timeboost: a novel transaction ordering policy for Arbitrum chains that allows chain owners to capture the Maximal Extractable Value (MEV) on their chain and reduce spam, all while preserving fast block times and protecting users from harmful types of MEV, such as sandwich attacks and front-running. + +Timeboost is the culmination of over a year of research and development by the team at Offchain Labs and will soon be available for any Arbitrum chain, including Arbitrum One and Arbitrum Nova (should the Arbitrum DAO choose to adopt it). Like all features and upgrades to the Arbitrum technology stack, Timeboost will be rolled out on Arbitrum Sepolia first for testing, and chain owners will have the option of adopting Timeboost at any time or customizing Timeboost in any way they choose. + +### In a nutshell + +- The current "First-Come, First-Serve (FCFS)" ordering policy has many benefits, including a great UX and protection from harmful types of MEV. However, nearly all MEV on the chain is extracted by searchers who invest wastefully in hardware and spamming to win latency races (which negatively strains the network and leads to congestion). Timeboost is a new transaction ordering policy that preserves many of the great benefits of FCFS while unlocking a path for chain owners to capture some of the available MEV on their network and introducing an auction to reduce latency, racing, and, ultimately, spam. +- Timeboost introduces a few new components to an Arbitrum chain’s infrastructure: a sealed-bid second-price auction and a new "express lane" at an Arbitrum chain’s sequencer. Valid transactions submitted to the express lane will be sequenced immediately with no delay, while all other transactions submitted to the chain’s sequencer will experience a nominal delay (default: 200ms). The auction winner is granted the sole right to control the express lane for pre-defined, temporary intervals. +- Timeboost is an optional feature for Arbitrum chains aimed at two types of groups of entities: (1) chain owners and their ecosystems and (2) sophisticated on-chain actors and searchers. Chain owners can use Timeboost to capture additional revenue from the MEV their chain generates already, and sophisticated on-chain actors and searchers will spend their resources on buying rights for the express lane (instead of spending those resources on winning latency races, which otherwise leads to spam and congestion on the network). +- Timeboost will work with both centralized and [decentralized sequencer setups](https://medium.com/@espressosys/espresso-systems-and-offchain-labs-publish-decentralized-timeboost-specification-b29ff20c5db8). The specification for a centralized sequencer is public ([here](https://github.com/OffchainLabs/timeboost-design)) and the [proposal before the Arbitrum DAO](https://forum.arbitrum.foundation/t/constitutional-aip-proposal-to-adopt-timeboost-a-new-transaction-ordering-policy/25167/1) allows us to deliver Timeboost to market sooner, rather than waiting until the design with a decentralized sequencer set up and its implementation are complete. + +## Why do Arbitrum chains need Timeboost? + +Today, Arbitrum chains order incoming transactions on a "First-Come, First-Serve (FCFS)" basis. This ordering policy was chosen as the default for Arbitrum chains because it is simple to understand and implement, enables fast block times (starting at 250ms and down to 100ms if desired), and protects users from harmful types of MEV like front-running & sandwich attacks. + +However, there are a few downsides to an FCFS ordering policy. Under FCFS, searchers are incentivized to participate in and try to win latency races through investments in off-chain hardware. This means that for searchers on Arbitrum chains, generating a profit from arbitrage and liquidation opportunities involves a lot of spam, placing stress on chain infrastructure and contributing to congestion. Additionally, all of the captured MEV on an Arbitrum chain today under FCFS goes to searchers - returning none of the available MEV to the chain owner or the applications on the chain. + +Timeboost retains most FCFS benefits while addressing FCFS limitations. + +#### Timeboost preserves the great UX that Arbitrum chains are known for + +- The default block time for Arbitrum chains will continue to be industry-leading at 250ms, even after Timeboost. What will change with Timeboost is that some transactions not in the express lane will be delayed to the next block. + +#### With Timeboost, Arbitrum chains will continue to protect users from harmful types of MEV + +- Timeboost only grants the auction winner a _temporary time advantage_ - not the power to view or re-order incoming transactions or be the first in every block. Furthermore, the mempool for transactions will continue to be private, which means users with Timeboost enabled will continue to be protected from harmful MEV-like front-running and sandwich attacks. + +#### Timeboost unlocks a new value accrual path for chain owners + +- Chain owners may use Timeboost to capture a portion of the available MEV on their chain that would have otherwise gone entirely to searchers. There are many flavors of this, too - including custom gas tokens and/or redistribution of these proceeds back to the applications and users on the chain. + +#### Timeboost may help reduce spam and congestion on a network + +- By introducing the ability to “purchase a time advantage” through the Timeboost auction, it is expected that rational, profit-seeking actors will spend on auctions _instead of_ investing in hardware or infrastructure to win latency races. This diversion of resources by these actors is expected to reduce FCFS MEV-driven spam on the network. + +## What is Timeboost, and how does it work? + +Timeboost is a _transaction ordering policy_. It's a set of rules that the sequencer of an Arbitrum chain is trusted to follow when ordering transactions submitted by users. In the near future, multiple sequencers will be able to enforce those rules with decentralized Timeboost. + +For Arbitrum chains, the sequencer’s sole job is to take arriving, valid transactions from users, place them into an order dictated by the transaction ordering policy, and then publish the final sequence to a real-time feed and in compressed batches to the chain’s data availability layer. The current transaction ordering policy is FCFS, and Timeboost is a modified FCFS ordering policy. + +Timeboost is implemented using three separate components that work together: + +- **A special “express lane”** which allows valid transactions to be sequenced as soon as the sequencer receives them for a given round. +- **An off-chain auction** to determine the controller of the express lane for a given round. This auction is managed by an autonomous auctioneer. +- **An auction contract**, deployed on the target chain to serve as the canonical source of truth for the auction results and handling of auction proceeds. + +To start, the default duration of a round is 60 seconds. Transactions not in the express lane will be subject to a default 200-millisecond artificial delay to their arrival timestamp before their transaction is sequenced, which means that some non-express lane transactions may get delayed to the next block. It’s important to note that the default Arbitrum block time will remain at 250 milliseconds (which can be adjusted to 100 milliseconds if desired). Let’s dive into how each of these components works. + +### The express lane + +The express lane is implemented using a special endpoint on the sequencer, formally titled `timeboost_sendExpressLaneTransaction`. This endpoint is special because transactions submitted to it will be sequenced immediately by the sequencer, hence the name, express lane. The sequencer will only accept valid transaction payloads to this endpoint if they are correctly signed by the current round’s express lane controller. Other transactions can still be submitted to the sequencer as normal, but these will be considered non-express lane transactions and will, therefore, have their arrival timestamp delayed by 200 milliseconds. It is important to note that transactions from both the express and non-express lanes are eventually sequenced into a single, ordered stream of transactions for node operators to produce an assertion and later post the data to a data availability layer. The express lane controller does _not_: +Have the right to re-order transactions. +Have a guarantee that their transactions will always be first at the “top-of-the-block.” +Guarantee a profit at all. +The value of the express lane will be the sum of how much MEV the express lane controller predicts they can extract during the upcoming round (i.e., MEV opportunity estimates made before the auction closes) _plus_ the amount of MEV extracted by the express lane controller while they are in control (that they otherwise did not predict). Understanding how the value of the express lane is determined can be useful for chain owners when adjusting to the artificial delay and the time before the auction closes. + +### The Timeboost auction + +Control of the express lane in each round (default: 60 seconds) is determined by a per-round auction, which is a sealed-bid, second-price auction. This auction is held to determine the express lane controller for the next round. In other words, the express lane controller was determined at any point in time in the previous auction round. Bids for the auction can be made with any ERC20 token, in any amount, and be collected by any address - at the full discretion of the chain owner. + +![Timeboost auction workflow](assets/timeboost-auction-workflow.png) + +The auction for a round has a closing time that is `auctionClosingSeconds` (default: 15) seconds before the beginning of the round. This means that, in the default parameters, parties have 45 seconds to submit bids before the auction will no longer accept bids. In the 15 seconds between when bids are no longer accepted and when the new round begins, the autonomous auctioneer will verify all bids, determine the winner, and make a call to the on-chain auction contract to formally resolve the auction. + +### Auction contract + +Before bidding in the auction, a party must deposit funds into the Auction Contract. Deposits can be made, or funds can be added to an existing deposit at any time. There is no minimum deposit amount, but there is a starting minimum bid of 0.001 ETH (default amount and token). These deposits are fully withdrawable, with some nominal delay, so as not to impact the outcome of an existing round. + +Once the autonomous auctioneer determines an auction winner, the auction contract will deduct the second-highest bid amount from the account of the highest bidder and transfer those funds to a `beneficiary` account designated by the chain owner by default. + +The `expressLaneControllerAddress` specified in the highest bid will become the express lane controller for the round. + +The auction contract also has functions that enable the express lane controller to update the address they wish to use for the express lane, which allows unique express lane control reselling use cases. + +### Default parameters + +Below are a few of the default Timeboost parameters mentioned earlier. All these parameters and more are configurable by the chain owner. + +| Parameter name | Description | Recommended default value | +| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | +| `roundDurationSeconds` | Duration of time that the sequencer will honor the express lane privileges for transactions signed by the current round’s express lane controller. | 60 seconds | +| `auctionClosingSeconds` | Time before the start of the next round. The autonomous auctioneer will not accept bids during this time interval. | 15 seconds | +| `beneficiary` | Address where proceeds from the Timeboost auction are sent to when `flushBeneficiaryBalance()` gets called on the auction contract. | An address controlled by the chain's owner | +| `_biddingToken` | Address of the token used to make bids in the Timeboost auction. It can be any ERC20 token (assuming the token address chosen does not have fee-on-transfer, rebasing, transfer hooks, or otherwise non-standard ERC20 logic). | WETH | +| `nonExpressDelayMsec` | The artificial delay applied to the arrival timestamp of non-express lane transactions _before_ the non-express lane transactions are sequenced. | 0.2 seconds, or 200 milliseconds | +| `reservePrice` | The minimum bid amount accepted by the auction contract for Timeboost auctions, denominated in `_biddingToken`. | None | +| `_minReservePrice` | A value that must be equal to or below the `reservePrice` to act as a "floor minimum" for Timeboost bids. Enforced by the auction contract. | 0.001 `WETH` | + +## Who is Timeboost for, and how do I use it? + +Timeboost is an optional addition to an Arbitrum chain’s infrastructure, meaning that enabling Timeboost is at the discretion of the chain owner and that an Arbitrum chain can fully function normally without Timeboost. + +When enabled, Timeboost is meant to serve different groups of parties with varying degrees of impact and benefits. Let’s go through them below: + +#### For regular users: + +Timeboost will have a minimal impact. Non-express lane transactions will be delayed by a nominal 200ms, which means to the average user, their transactions will take up to 450ms to be sequenced (up from 200ms). Regular users will remain protected from harmful MEV activity, such as sandwich attacks and front-running. + +#### For chain owners: + +Timeboost represents a unique way to accrue value to their token and generate revenue for the chain. Explicitly, chain owners can set up their Timeboost auction to collect bid proceeds in the same token used for gas on their network and then choose what to do with these proceeds afterward. + +#### For searchers/arbitrageurs: + +Timeboost adds a unique twist to your existing or prospective MEV strategies that may become more profitable than before. For instance, purchasing the time advantage offered by Timeboost’s auction may end up costing _less_ than the costs to invest in hardware and win latency races. Another example is the potential new business model of reselling express lane rights to other parties in time slots or on a granular, per-transaction basis. + +### Special note on Timeboost for chain owners + +As with many new features and upgrades to Arbitrum Nitro, Timeboost is an optional feature that chain owners may choose to deploy and customize however they see fit. Deploying and enabling/disabling Timeboost on a live Arbitrum chain will not halt or impact the chain but will instead influence the chain's transaction ordering policy. An Arbitrum chain will, by default, fall back to FCFS if Timeboost is deployed but disabled or if there is no express lane controller for a given round. + +It is recommended that Arbitrum teams holistically assess the applicability and use cases of Timeboost for their chain before deploying and enabling Timeboost. This is because some Arbitrum chains may not have that much MEV (e.g., arbitrage) to begin with. Furthermore, we recommend that Arbitrum chains start with the default parameters recommended by Offchain Labs and closely monitor the results and impacts on your chain’s ecosystem over time before considering adjusting any of the parameters. + +### Wen mainnet? + +Timeboost’s auction contract has completed a third-party audit and is rapidly approaching production readiness. Specifically for Arbitrum One and Arbitrum Nova, a [temperature check vote on Snapshot](https://snapshot.box/#/s:arbitrumfoundation.eth/proposal/0xffe9bb38228fdaf3d121140856fd2d51c2ca7f8e0d1021c07e791cebb541129a) has already passed and the AIP will move towards an on-chain Tally vote next hopefully before the end of Q4 2024. + +In the meantime, please read the following resources to learn more about Timeboost: + +- [Arbitrum DAO Forum Post on Timeboost](https://forum.arbitrum.foundation/t/constitutional-aip-proposal-to-adopt-timeboost-a-new-transaction-ordering-policy/25167/86) +- [Timeboost FAQ](https://www.notion.so/bba234acf92e476b8ca5db6855d7da45?pvs=21) +- [Debunking common misconceptions about Timeboost](https://medium.com/offchainlabs/debunking-common-misconceptions-about-timeboost-92d937568494) +- [Technical specification for Timeboost with a centralized sequencer](https://github.com/OffchainLabs/timeboost-design/blob/main/research_spec.md) +- [Engineering design of Timeboost with a centralized sequencer](https://github.com/OffchainLabs/timeboost-design/blob/main/implementation_design.md) +- [Implementation of Timeboost with a centralized sequencer](https://github.com/OffchainLabs/nitro/pull/2561) +- [Technical specification for Timeboost with a decentralized sequencer](https://github.com/OffchainLabs/decentralized-timeboost-spec) diff --git a/arbitrum-docs/partials/_glossary-partial.mdx b/arbitrum-docs/partials/_glossary-partial.mdx index 18b0ec234..ccc394a51 100644 --- a/arbitrum-docs/partials/_glossary-partial.mdx +++ b/arbitrum-docs/partials/_glossary-partial.mdx @@ -242,6 +242,16 @@ A component of Timeboost, the express la An address, defined in the Auction Contract, that is granted the privilege to use the Express Lane. These privileges are granted after verifying that the incoming transactions were properly signed by the express lane controller, among other checks.
+### Express Lane {#express-lane} ++A component of Timeboost, the express lane is a special endpoint on the Sequencer that immediately sequences incoming, valid transactions signed by the current express lane controller. +
+ +### Express Lane Controller {#express-lane-controller} ++An address, defined in the Auction Contract, that is granted the privilege to use the Express Lane. These privileges are granted after verifying that the incoming transactions were properly signed by the express lane controller, among other checks. +
+ ### Fair Ordering Algorithm {#fair-ordering-algorithm}BFT algorithm in which a committee comes to consensus on transaction ordering; current single-party Sequencer on Arbitrum may eventually be replaced by a fair-ordering committee. @@ -453,6 +463,7 @@ A user-initiated interaction with a Blockchain. Transactions are typically signe
### Transaction Ordering Policy {#transaction-ordering-policy} +The rules and logic employed by a chain to order incoming transactions into a block.
@@ -466,12 +477,6 @@ In the context of Ethereum, trustless refers to the ability of a system to opera This is achieved through the use of cryptographic techniques and decentralized consensus mechanisms that let users verify the integrity of network transactions using open-source software. Trustless systems are considered to be more secure and resistant to fraud or tampering because they don't rely on a single point of failure that can be exploited by attackers. -- -
- - - ### Underlying Chain {#underlying-chain}Synonymous with Parent chain. diff --git a/website/sidebars.js b/website/sidebars.js index 63255560d..eb9a80a5f 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -951,51 +951,11 @@ const sidebars = { }, { type: 'category', - label: 'The BoLD dispute protocol', + label: 'Timeboost', items: [ { type: 'doc', - id: 'how-arbitrum-works/bold/gentle-introduction', - label: 'A gentle introduction', - }, - { - type: 'link', - href: 'https://github.com/offchainlabs/bold-validator-starter-kit', - label: 'Deploy a validator on testnet', - }, - { - type: 'link', - href: 'https://arxiv.org/abs/2404.10491', - label: 'BoLD Whitepaper', - }, - { - type: 'doc', - id: 'bold/concepts/bold-technical-deep-dive', - label: 'Technical deep dive', - }, - { - type: 'doc', - id: 'how-arbitrum-works/bold/bold-economics-of-disputes', - label: 'Economics of disputes', - }, - { - type: 'link', - href: 'https://github.com/OffchainLabs/bold', - label: 'Specification on Github', - }, - { - type: 'link', - href: 'https://github.com/trailofbits/publications/blob/master/reviews/2024-04-offchainbold-securityreview.pdf', - label: 'Audit Report by Trail of Bits', - }, - { - type: 'link', - href: 'https://code4rena.com/reports/2024-05-arbitrum-foundation', - label: 'Audit Report by Code4rena', - }, - { - type: 'doc', - id: 'how-arbitrum-works/bold/public-preview-expectations', + id: 'how-arbitrum-works/timeboost/gentle-introduction', label: 'Public preview', }, ], diff --git a/website/static/glossary.json b/website/static/glossary.json index 3ae3cd4e2..dd662d404 100644 --- a/website/static/glossary.json +++ b/website/static/glossary.json @@ -1,4 +1,5 @@ { +"-state-transition-function":{"title":"🧱 State Transition Function","text":"
\nThe STF (State Transition Function) defines how new blocks are produced from input messages (i.e. transactions) in an Arbitrum chain.\n
"}, "active-validator":{"title":"Active Validator","text":"\nA staked Validator that makes disputable assertions to advance the state of an Arbitrum chain or to challenge the validity of others' assertions. (Not to be confused with the Sequencer ).\n
"}, "address-alias":{"title":"Address Alias","text":"\nAn address deterministically generated from an L1 contract address used on L2 to safely identify the source of an L1 to L2 message.\n
"}, "arb-token-bridge":{"title":"Arb Token Bridge","text":"\nA series of contracts on an Arbitrum chain and its underlying chain that facilitate trustless movement of ERC-20 tokens between the two layers.\n
"},