Elastic Circuit Breakers: A Proposal for More Robust Crypto Market Infrastructure

Anatoly Yakovenko
Mar 18 · 4 min read

On Black Thursday, we saw multiple oracle and settlement platform failures that were tied to network congestion and spikes in transaction fees and prices. A lot of folks on Twitter have suggested that we need global circuit breakers for crypto trading. While we cannot confirm this, it appears that BitMEX instituted a circuit breaker — by just unilaterally shutting down the exchange without warning — to prevent BTC from cascading down to $0.

I think we can do much better than the status quo — CEXs — and build elastic circuit breakers that can dynamically adjust when volatility is high.

How do we build an elastic circuit breaker in a decentralized way? By default, orders are executed within the same block that they are matched. What if we allowed orders a fixed period of time measured in the number of blocks to cancel after they have been matched? Let’s call this value T, and under normal operation, T can be set to 0. During times of high volatility, instead of completely halting the marketplace, the underlying marketplace contract can dynamically increase T. This would give both traders and oracles more time to cancel their orders until the volatility subsides. During the extended period T, additional orders, cancels, price changes and oracle prices are allowed to enter the marketplace, and as long as one block producer is honest, a trader can adjust her order before it is executed and maintain a spread that is appropriate for the current volatility. Eventually, panic subsides, spreads tighten, volatility decreases, and T can automatically readjust to normal levels.

Should T be adjusted by an oracle, or programmatically from market place activity? This paper by Philip Daian does a great job of describing the problem of ‘Miner arbitrage’, https://arxiv.org/abs/1904.05234, and this problem applies to oracles as well. Inherently, the people who control which transactions go in each block (validators) will have undue influence on such a system.

If T is derived programmatically, we have a bit more control over how the market behaves even if the miners are dishonest. Assume T is calculated from the current volatility over a short period of time. We can start with T = 0 blocks. Most orders should execute when matched, and cancellation is not allowed. This works fine if most trades execute close to the spread. When an order is placed mid spread, a miner sees an opportunity and purchases the order in the same block and injects another order that buys the same asset in the same block. This allows the miner to make a small profit because all of the trades are occurring within the spread and executing in the same block. There is nothing particularly wrong with this since the miner is effectively acting as a market maker.

So, how does Solana help? We have a low-latency, high-capacity, and single-shard replicated state machine. We can help with the oracle and marketplace problem by offering more block producers per second, more traders per second, and more price feeds per second.

If a taker buys or sells deep into the order book, volatility is calculated for that market, and T increases to N blocks. Since the orders are not executed for N blocks after they are matched, anyone trying to use flash loans to secure that trade cannot be repaid in the same transaction, and those orders fail. During a panic, information flows to traders, block producers, and oracles at different times; if an order clears the entire order book, the market makers have a chance to cancel their positions and widen spreads.

This elastic circuit breaker idea is only viable in low-latency, high throughput environments.

So, how does Solana help? We have a low-latency, high-capacity, and single-shard replicated state machine. We can help with the oracle and marketplace problem by offering more block producers per second, more traders per second, and more price feeds per second. If you design your marketplace such that it behaves fairly and if at least one honest block producer participated in time T, then our performance can help maximize the odds of an honest block producer participating in the market. To give you some concrete numbers, Ethereum blocks are produced every 15 seconds, and we have 400 ms blocks, with block producers rotating every four slots (1600ms). Solana rotates through nine-block producers in the same amount of time of a single Ethereum block. If only 33% of Solana validators are honest, the likelihood of an honest producer is 98.7% within the same time frame of a single Ethereum block.

Pre-bidding is now live for our Coinlist auction. The actual auction will take place on March 23rd at 10pm PT.

Solana

Web-scale Blockchain

Anatoly Yakovenko

Written by

Solana

Solana

Web-scale Blockchain

More From Medium

More on Bitcoin from Solana

More on Bitcoin from Solana

Validator Feature Series

Austin Virts
Mar 19 · 5 min read

51

More on Bitcoin from Solana

More on Bitcoin from Solana

Tour de SOL Weekly Recaps

Austin Virts
Mar 4 · 9 min read

100

More on Technology from Solana

More on Technology from Solana

SOL Bandits On The Run

Austin Virts
Mar 4 · 3 min read

306

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade