Structuring Blobspace Futures for Fun andΒ Profit

This post is a continuation of my previous exploration into blobspace derivatives. The primary focus of this blog post is on the sell side: managing the risk that sellers undertake, identifying conditions under which manipulation may be profitable, and determining the appropriate risk premium that sellers should charge.

This approach is inspired by Julian Ma's post for next-block base fee options. Next-block options are less applicable for rollups hedging blobspace, since rollups can often roughly model their anticipated demand farther in advance than a single block. Similar to Julian's post on blockspace, this piece will articulate risk management strategies for sellers of 4844 blobspace derivatives.

Prerequisites: How is the base fee updated?

Blob data gas fees are modified based on the total gas used relative to a "target." The target is kept track of via a parameter EjE_j, which tracks the total excess gas consumed to date:

Ej+1:=max⁑(0,Ej+djβˆ’dβˆ—)E_{j+1} := \max(0, E_j + d_j - d^*)

where djd_j is the blob gas demanded for block jj and dβˆ—d^* is the target gas per block = 393216. The data gas price for a given slot jj, denoted as pjdatap^{\text{data}}_j, is defined as follows:

pjdata=mβ‹…exp⁑(Ejs)p^{\text{data}}_j = m \cdot \exp\left( \frac{E_{j}}{s} \right)

where the minimum base fee per blob gas (mm) = 1.

Note that for increasing EE,mβ‹…exp⁑(Ej+1s)m \cdot \exp\left( \frac{E_{j+1}}{s} \right) = mβ‹…exp⁑(Ej+djβˆ’dβˆ—s)m \cdot \exp\left( \frac{E_j + d_j - d^*}{s} \right) = mβ‹…exp⁑(Ejs)β‹…m \cdot \exp\left(\frac{E_j}{s} \right) \cdot exp⁑(djβˆ’dβˆ—s) \exp\left(\frac{{d_j - d^*}}{s}\right) = pjdataβˆ—exp⁑(djβˆ’dβˆ—s)p^{\text{data}}_j * \exp\left(\frac{{d_j - d^*}}{s}\right)

s is the data gas price update function, which is the value for s that corresponds to a maximum update of 12.5% up or down in consecutive blocks, assuming the max blob gas per block (max(\text{max} dj)d_j) = 786432.

What's the right financial instrument?

Understanding the fee mechanism allows us to create effective financial instruments, such as options and forward contracts.

The profit for a call option is given by the formula:

Profit=max(BFkβˆ’K,0)βˆ’Poption\text{Profit} = \text{max}(BF_k - K, 0) - P_{\text{option}}

Here, BFkBF_k represents the base fee at maturity of the option, KK is the strike price, and PoptionP_{\text{option}} is the price paid for the option. The profit is effectively the difference between the base fee at maturity and the strike price, adjusted by the price paid to purchase the option.

The profit for a forward contract is quite similar:

Profit=BFkβˆ’Pforward\text{Profit} = BF_k - P_{\text{forward}}

Where BFkBF_k​ again represents the base fee at the contract's maturity, and PforwardP_{\text{forward}} is the price paid upfront for the forward contract. The only difference here is that there is no optionality and no strike price.

How much do buyers and sellers make?

Since the instruments are quite similar, we'll use the forward contract structure for the purpose of this blog post. I also suspect the structure of a forward contract is more suitable to rollups than a basket of call options. The specific forward contract that we will explore is the sum of the base fees over a predefined time interval (e.g. the average 4844 base fee for each block over 1 month):

Payoff=βˆ‘i=jNBFi=mβ‹…βˆ‘i=jN(exp⁑(Eis))\text{Payoff} = \sum_{i=j}^{N} BF_i = m \cdot \sum_{i=j}^{N} (\exp\left(\frac{E_{i}}{s}\right))

Where βˆ‘i=jNBFi\sum_{i=j}^{N} BF_i represents the sum of the base fees for 4844 blobs for each block from the start of the forward strip (block jj) to the end of the forward strip (block NN). Pforward​P_{\text{forward}}​ is the price of the forward contract. The correct length of the forward strip is up for discussion, but something ~1 month feels appropriate, for the simple reason that it is short enough for a rollup to meaningfully hedge, while being long enough to consolidate liquidity across speculators and sellers/purchasers.

To calculate the maximum possible payoff, we assume the base fee changes by its maximum rate of change (12.5%) for each block:

MaximumΒ Payoff=cβ‹…βˆ‘i=jNBFi=cβ‹…BFjβˆ’1βˆ‘i=jN(98)iβˆ’j+1\text{Maximum Payoff} = c \cdot \sum_{i=j}^{N} BF_i = c \cdot BF_{j-1} \sum_{i=j}^{N} \left( \frac{9}{8} \right)^{{i - j}+1}

Where cc is the number of forward contracts issued. I've rewritten the payoff in terms of the base fee for the block immediately before the forward strip.

What's the cost of manipulation?

The blob gas base fee is prone to manipulation by anyone originating large volumes of blob-carrying transactions. Builders also have the potential to manipulate the blob base fee by selectively censoring or including blobs in specific blocks. In this post, we only analyze the cost of manipulating the price upwards (i.e. including blobs, not censoring).

The cost to manipulate the blob gas data fee for block ii is calculated as follows:

CoMi=BFiβ‹…(gmaxβˆ’gdi)CoM_i = BF_i \cdot (g_{\text{max}} - g_{\text{d}_{i}})

Where BFi​BF_i ​ is the base fee for block ii, gmaxg_{\text{max}} ​is the maximum gas limit for a block, and​ gdig_{\text{d}_{i}} is the actual gas used in block ii.

In "Next-Block Base Fee Options: Towards a Practical Implementation", Julian identifies that while the cost of manipulation is constant regardless of how many option contracts the manipulator holds, the payoff from such manipulation is not. Thus, if the supply of contracts is appropriately limited, manipulation is not incentivized.

The potential profit (Ο€) from manipulation is represented by:

Ο€=(Payoffβˆ’Price)β‹…cβˆ’CoM\pi = (\text{Payoff} - \text{Price}) \cdot c - CoM

Where Payoff\text{Payoff} is the benefit derived from the manipulation, and Price \text{Price} is the cost at which the contracts are sold. For manipulation to be unprofitable, cc must be set so that π≀0, ensuring that the costs of manipulation outweigh any potential gains.

c<=CoM(PayoffΒ -Β Price)c <= \frac{CoM}{\text{(Payoff - Price)}}

To calculate the profit for a manipulator of the base fee, we start by defining the maximum profit from manipulation minus the cost of manipulation:

cβ‹…(PayoffΒ -Β Price)βˆ’CoM=cβ‹…BFjβˆ’1βˆ‘i=1n(98)iβˆ’j+1βˆ’Pforwardβˆ’βˆ‘i=1n(BFiβ‹…(gmaxβˆ’gdi))c \cdot (\text{Payoff - Price}) - CoM = c \cdot BF_{j-1} \sum_{i=1}^{n} \left( \frac{9}{8} \right)^{{i - j}+1} - P_{\text{forward}} - \sum_{i=1}^{n} (BF_i \cdot (g_{\text{max}} - g_{\text{d}_{i}}))

Conversely, for sellers of forward contracts, the profit is exactly the additive inverse of the PayoffΒ -Β Price\text{Payoff - Price} for a buyer, since forward contracts are zero sum:

Ο€seller=mβ‹…βˆ‘i=jN(exp⁑(Eiβˆ’1s))βˆ’Pforward\pi_{\text{seller}} = m \cdot \sum_{i=j}^{N} (\exp\left(\frac{E_{i-1}}{s}\right)) - P_{\text{forward}}

How can we bound risk for sellers?

The buy side for blobspace derivatives includes rollups, L2s, applications, users, and speculators. On the other hand, the sell side is restricted to speculators who are comfortable with asymmetric risk. Clearly, the sell side must be incentivized and/or protected against adverse price movements to make participation attractive. Judging by the equation above, we can:

  1. Decrease the number of contracts cc: This approach limits leverage, thereby reducing how much an individual can make off $1 of price manipulation. The premium to purchase a forward contract will increase as we approach this constraint.

  2. Increase the cost per contract PforwardP_\text{forward}: Increasing the price per contract decreases the maximum potential profit that a manipulator can make by simply charging them more upfront.

How does this impact what I'm building?

The reason why this line of exploration is interesting to me is because it is possible that the best counterparty/seller for blobspace derivatives is an insurance fund. Such an insurance fund would need to have insight into its expected rate of return and bound its risk. The insurance fund might source its initial capital via a token sale.

If you are also interested in blobspace derivatives, don't hesitate to reach out on Twitter (@tamarajtran) or via email at tamarajtran [at] outlook.com.

Subscribe to Tamara Tran
Receive the latest updates directly to yourΒ inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.