The $OPEN Q3 rebalance
This post will explore the $OPEN Q3 rebalance, focusing more on the why and what, as the specific number have already been covered by the previous post by @Pangea and I have no reason to doubt them unlike the rest of their production which is rather shallow and misses the forest for the tree.
This approach will allow me to show that v4.0.0 doesn’t do what u think it do rather than hand-waving my way trough it just to meet some requirement.
But first let me present you the ecosystem ![]()
What is $OPEN
The $OPEN stablecoin token index is an index much like the famous S&P 500 or MSCI World to name a few. An index is something that will track the value of a mix of other assets (be it stock, raw materials or even other index!).
However $OPEN is unique in few way:
- what it track: the index is made of equally weighted tokens of various protocol that issue stablecoins on the EVM ecosystem who meet the $OPEN standard
- who decide it’s composition: the token making up the index are decided by $SQUILL holder through a governance process. Meanning you can participate in the adventure if you want.
- fully backed: you can redeem your index token for the underlying whenever you want without having to ask for anyone permission. Moreover with a few click anyone can audit the backing, no need to wait for a trusted (by who?) third party to do their once in a blue-moon audit!
- on_chain: $OPEN is issued on ethereum as a regular ERC-20. This means it is compatible and benefit from the broader ethereum landscape, swap it on Uniswap, lend/borrow it on Ajna, integrate it in another DTF (moar on them later)
- flexibility: $OPEN can be divided up to the 18th decimals place. (granted on a $2 per share index it is not a killer feature)
What is Reserve
Long story short Reserve is a DTF as a Service. They offer an infrastructure to create DTF just by snapping your fingers, just like some web2 platform let you create your e-shop in a few clicks.
Thus to understand Reserve and it’s offering it is necessary to understand DTF. DTF stand for Decentralized Token Folio, it is amazing branding to designate what is basically an ETF enhanced by being on_chain with the advantage mentioned earlier (redeem/mint 24/7, composable with DeFi, auditable by anyone).
To do this Reserve offer the infrastructure to create your own DTF, once it’s done anyone can mint or redeem your newly created index according to the weighting you specified. Moreover they offer the means to pilot those weight either directly or via a governance system. As such when you or the governance decide that those weight needs to be changed their re-balancing infrastructure will do it for you.
You can watch the following video if you can’t read: https://www.youtube.com/watch?v=EL9OHjIab_w
The Q3 re-balance situation
At launch 8 tokens where selected to be equal part of the index, a few month later the composition had shifted as some tokens performed better than other over this period of time. As decided at launch, a first discussion on what token to keep, remove or add was scheduled to happen in June to engage the community on the project. $ENA was showed the exit while $FXN, $OGN and ALCX were to be on-boarded.
Once this was decided a governance proposal to sell/buy token was launched with the goal to end up with the index composed of equal part (pricewise) of the 10 tokens selected. It didn’t went as planned and you can look up the number in the post above if you want the number as I won’t be discussing them.
At what cost ?
How do you determine the price of something ? This question is fundamental to the working of the society, the finance sector and DeFi. Yet, despite it’s importance it is a really hard question to get right. In finance (and defi) we often use the “market price”, it means whatever price peoples are willing to buy/sell. Depending on the number of peoples and their degree of agreement this metric can be more or less usable. As such for highly traded assets like EUR<>USD in the Forex it is easier to answer the question than if someone asked you the price of a wenllama (hint: wenllama are priceless).
Food for though
Now let’s imagine that you learn that someone is going to trade a lot of EUR for USD in a couple of hours at market price, how do you profit from it? That’s right you swap as much as possible for USD and wait for it to happen to sell back for your original currency hopping the trade was enough to move the price. This is what happened in the late 200X with the Forex Cartel.
This is easily transferable to Defi as transaction tends to be submitted to the public mempool, the place were transaction wait to be executed, and with far less liquidity than the Forex. One main problem, it is public and anyone can see you are going to trade a lots of USDC for a lots of Ether, leaving them free to buy as much Ether as possible before you (as you can pay for your transaction to happen faster on ethereum) and once you bought Ether at an inflated price then can sell it back pocketing the difference. This is the essence of a sandwich attack.
For most case this is trivial to fix, just sets up limit on what price you are willing to take. This is the approach taken by most front-end when they ask you to select a slippage.
However $OPEN needs to go through a governance were the transaction needs to be sets in stone 3-4 days in advance for peoples to vote on whether or not it should be executed. But how can you sets up price limit for a trade that will happen in 4 days? in a volatile market like crypto? knowing that if the trade is not accepted due to setting price limit too tight you are good for a new vote ?
The trade limit approach is fundamentally flawed for slow entity. No amount of effort to avoid MEV can fix this! You just broadcasted for the last 4 days that you are going to sell a certain amount of asset for an obsolete price. Any person with access to the internet and 2 neurons can just go to Uniswap a few minutes before the execution do the same trade as you, wait for the governance to execute and do the trade in reverse to pocket a few bucks on your back.
A give and take relationship
I hope that the last section was enough to argue my case on the needs of a different approach than price limit. This is solved by a secret technique to be sure you get the best price: sell to the highest bidder through an auction!
In defi the teacher’s favourite is called Dutch auction. It is use by a lots by protocols, including Ethereum Name Service, Yearn or Ajna to name a few. They work by starting at a price no sane person would take and gradually decrease the price over time. First one to pay the price get the product. They work great for defi as they integrate quite well with flashloan-based-MEV, if price go too low a bot can just flashloan the money to get the stuff, dump it on Uniswap and pay back the flashloan pocketing the change. This may seems bad, but this is great, because MEV is GOOD! When there are multiple bot competing to do the same, the “change” amount grow rapidly to “what covers the gas cost plus a few Gwei” ensuring that the protocol get a fair price with no manipulation possible.
This can be explained by the fact that MEV is a winner take all game. Let’s say you write a bot that take a $1 profit per dutch auction. But I set up mine to take only a 0.99$ profit and we participate in the same auction. I will get $0.99 and you get nothing. The only way to win for you is to take only 0.98$ profit, this way next auction you will get $0.98 and I get nothing. If I want to win against you I have to further lower my margin, this is a chase that ends up with both of us optimizing our bot to the opcode level to compete for a few Gwei of profit. Furthermore as it is happening on a permission-less chain we can’t agree on something like both setting a $1 profit limit and taking turn as any third party could come and set their bot to 0.99$ and we would get nothing.
The v4.0.0
I know what you are thinking right now, “Surely all that build up was to tell us that v2.0.0 was directly swapping and setting price limit while v4.0.0 will use dutch auction so that it doesn’t happen again!”. Well let me tell you anon that you are wrong~
technically v4.0.0 does solve MEV sandwich that happened but not how you think it does
v2.0.0 use dutch auction too and price limit are just set up to speed up the auction and guarantee a minimal price if no bidder participate. “But how could a sandwich happen then? You just told us dutch auction fixed this ?” I hear you say. Reread what I wrote and you will see there is a pretty big assumption, we need at least 2 competing actor to get a fair price with dutch auction.
in a theoretical world after an infinite amount of auction 2 is enough, in practice just assume the more participant the merrier for the auctioneer
It’s a dog-eat-dog world out there
During the Q3 rebalance there was not enough participant in the auction, allowing a bot to get assets from the $OPEN index under their fair value. However in a twist of fate this first bot got sandwiched by a more sophisticated bot. What you see in this tweet isn’t the $OPEN protocol being sandwiched, but a bot trying to profit from the lack of participation in the auction getting back-stabbed by another one in the on_chain jungle. Not once, not twice but many time (I don’t have time to dig & analyse all of them, but here a few pic of the one I found by just doing basic research).
The root of all evil
The root cause was the lack of participation in the auction, not “poor execution” (whatever that means), got nothing to do with price limit settings and cannot be fixed by MEV protection or any amount of infra. The only fix is to ensure there will be enough participant in the auction for it to be fair. This is the whole point of the CoW integration in v4.0.0, it increase the odd of the CoW resolvers participating in the auction, increasing the number auction participant and thus minimizing the risk of the protocol getting an unfair offer!
I repeat, unlike stated by @Pangea the CoWswap integration has nothing to do with MEV protection, it is written white on black in the docs
The remaining upgrade brought by the v4.0.0 aren’t here to get a better price during rebalance, their only goal is to help index get closer to the desired ratio after a rebalance
Conclusion
The MEV “problem” (read protocol getting unfair price) should be fixed thanks to the CoW integration, however writing a small-run-it-yourself-bot using Silverback for the community to run during rebalance can only strengthen the protocol and could make for a fun community bonding exercise.
However the uneven balance at the end of rebalance operation are here to stay. But they shouldn’t be as wide as before as the auction process is now more flexibility on how it happen (+ introduction of trusted third party that can refine some non critical parameter)
alice@wonderland:~$ whoami
I am an idol
wannabe currently working for the Aave-chan initiative where I mainly write part of the code so that the AAVE DAO’s will can be executed on_chain permissionlessly. (BTW I wrote a smoll utils to make proposal for the $OPEN governance)
V curious, I really enjoy searching for info on_chain and reading smart contract to understand how stuff work. Same goes for OSInt in general. ![]()
Squidllionnaire, I am following $OPEN progress with an attentive eye. (considerin’ settin’ up a delegate platform)
Know for surviving the consequence of my action and wielding word as my weapons, I am usually sweet as long as you don’t waste my time ![]()




