[BIP-47] Balancer <> Across Protocol for Bridging Tokens Across Chains

EDIT: Risk Labs Treasury has offered to provide the loan of 10K BAL tokens for the relayer. So the proposal is being modified to only request 40K BAL tokens to be deposited into Across BAL LP from Balancer Treasury.

This proposal suggests that Balancer treasury use 40,000 BAL to enable fast, cheap, and secure bridging between Ethereum, Arbitrum, Polygon, and Optimism via Across Protocol (website: across.to ; Twitter: @AcrossProtocol).

Motivation:

Balancer currently is using Multichain for this bridging. Due to the design of Multichain, BAL tokens are getting stuck in destination chains due to bridging flows, and thus not allowing users to easily go back and forth between L1<>L2 and between L2’s.

For example, right now, the state of the Multichain pools are:

Ethereum: 484;

Optimism: 41,287;

Polygon: 18,728;

Arbitrum: 20,328

*note that 20k BAL was very recently added to Polygon and Arbitrum via BIP-37, so those are still close to original balances. The BIP-3 proposal that added 20k to each of Ethereum and Optimism is now completely out of balance with only ~1% of the supply remaining on Ethereum. This means users cannot exit to Ethereum until a bridger comes along to rebalance the pools!

This has also made some bridging routes extremely expensive or not even possible.

For example, right now, if you want to bridge 100 BAL from Optimism to Ethereum. The charge to the user is 12% (they only get 88 tokens on the other side). If BAL was on Across, the charge would be 0.12%, which is 99% lower. The user would get 99.88 BAL on Ethereum instead of the 88 BAL offered by Multichain.

Also, if you wanted to transfer more than 484 BAL, it wouldn’t be possible. With Across, you could transfer up to the entire amount sitting in the relayer in 1-4 minutes, which is likely ~7,000 BAL (I’ll explain more about the relayer under specifications). And you could transfer the entire amount available in the liquidity pool within 2-4 hours, which is likely ~30,000 BAL! (subject to utilizations; it could be much more if other depositors participate in the LP).

Extra Protocol Incentive (Referral Program):

Across recently launched a referral program where referrers and referees are rewarded in (pre-launch) $ACX tokens.

Currently the rewards rate is between 40-80% of bridge fees being rebated back to the referrer/referee. There is an additional 2X boost bonus being paid at the moment as well. Since $ACX does not exist yet (but coming soon), the amount is calculated using $0.10 price (100mm FDV).

You can read more details on Across Doc site under ‘Referral Program’

Balancer could add a link to Across on their site and earn referral rewards to the Balancer Treasury for everyone that bridges using Across. Note also the bridgers will share a portion of this reward as well.

Risk:

All the ‘typical’ smart contract risks. You can read the Across (v2) and other UMA audits here: You searched for UMA - OpenZeppelin blog. The UMA Optimistic Oracle (OO) is used to settle any disputes if/when they occur. The OO has been battle tested on 100’s of millions (soon to be > 1B) worth of assets. Across itself just passed $500MM in transfer volume. It has been integrated into the front-ends of Optimism, Arbitrum, Polygon, and Boba.

Specification:


Add 40K BAL tokens to Across BAL LP as per the following steps:

  1. Get HubPool address from Mainnet (Chain ID: 1) - Across

  2. Approve HubPool contract to spend the right amount of BAL

  3. Call addLiquidity on the HubPool contract contracts-v2/HubPool.sol at master · across-protocol/contracts-v2 · GitHub

  4. This will give them LP tokens back.


Across works using (1) relayers and (2) liquidity pools.

  1. Relayers: The relayers facilitate fast bridging (1-4mins typically) by providing a short term loan to the bridger on the destination chain upon validating the bridgers deposit on the origin chain. The relayer is reimbursed by the liquidity pool (assuming the transfer is not disputed). The dispute period is 2hrs. Think of the relayer as providing ~2-4hr loans over and over.
  2. Liquidity Pools: The liquidity pools are reimbursed what they pay the relayers once the bridger’s deposit on the origin chain makes its way over that chain’s canonical (“official”) bridge, which typically takes 7days. Think of the liquidity pool as providing 7day loans over and over. Anyone can deposit BAL into the Across BAL LP.

It is our suggestion that Balancer treasury use 40,000 BAL to fund an Across BAL LP to set up bridging on Across.

Relayer: 10,000 BAL will be provided and used by Risk Labs (the foundation that built UMA and Across) to run a relayer. Since the relayer is permissionless, if Balancer is comfortable running their own relayer, they are more than welcome to do this in the future. You can read about how to run a relayer here: Running a Relayer - Across

Liquidity Pool: Balancer Treasury will deposit 40,000 BAL into an Across BAL Liquidity Pool. It is able to be withdrawn at any time (assuming it is not being utilized. ‘Utilized’ means it is in the canonical bridge en route back to Ethereum, which can take up to 7days.).

Case Study of Actual BAL pool on Multichain:

Looking through the BAL pool on Ethereum in Multichain, it looks like it supported 34 transfers (14 withdrawals) over a period of 53 days, and is now effectively shutdown (since there is only 484 BAL available). The sizes of the 6 withdrawals over 1,000 BAL were: 12,323; 9,494; 3,740; 2,225; 1,688; 1,339. The other 8 were all < 1,000.

Given the relayer allocation I proposed above, if Balancer was using Across, all 14 withdrawals would have no trouble being completed, and most importantly the relayer would be totally rebalanced within 2-4hrs and be ready to do more transfers! For 12 of the 14 transfers the users would have received their BAL on Ethereum in 1-4 mins. For the 2 biggest transfers, it would have taken 2-4hrs. Since these transfers occurred over a period of 53 days, the Across LP would have been totally replenished ~7x. Said another way, with the same seed amount of 20k BAL, Across could have supported 140,000 BAL (7 x 20k) worth of transfers and restored back to original conditions vs Multichain only supported ~34k and is now effectively turned off until a bridger comes along to rebalance their pools.

The Balancer treasury currently has 80k BAL tokens in Multichain. If they switched to Across, the treasury could take back 40,000 tokens, be able to support >5x the volumes at a fraction of the cost, and always be operational.

Across also could do all of this at ~0.12% on each transaction. Right now, the Multichain fee on moving 100 BAL to Ethereum is 12% (100x more!).

Out of fairness, the Multichain fee to move 100 BAL to Optimism from Ethereum is 0.10%. If Balancer treasury wanted Across to only be 0.10% (or lower) that is easy to do, Balancer could just specify a lower LP fee (explained in next section). It’s about striking a balance between low bridge fees for your users vs high BAL APYs to attract external LPs. Depending where Balancer treasury wants to be along that curve, we can set the LP fee model accordingly.

Fees:
Across has 3 fees in its system:

  1. LP Fee: Fee paid to liquidity providers for proving passive liquidity that is utilized by the system to refund relayers. This fee is configurable via a rate model. Balancer treasury can specify what they would like it to be. Obviously, the higher the LP fee, the more the LPs make on each transaction, but the more expensive the transaction is to the user. We would suggest a 5% LP APY fee, which effectively results in the bridger paying 0.09% on each transfer. Our rate model does have an Aave style feature that at high utilizations of the LP, the 5% number will increase (in order to preserve some liquidity in the system), but this amount and slope of increase is configurable.
  2. Relayer Fee: Fee paid to incentivize relayers to relay your bridge transaction quickly. This is currently 0.03% and gets paid to the relayer that fills the transfer.
  3. Destination Gas Fee: Fee paid by bridger to cover the gas cost on their destination chain. Obviously going to a L2, this number will typically be quite small. Going to Ethereum, it’s subject to gas prices and can vary.

The ~0.12% total Across fee mentioned earlier is (1) + (2) = 0.09% + 0.03% = 0.12%. This number will be higher when going to Ethereum as fixed gas costs scale up quickly as a percentage of the transfer amount when the transfer amount is sufficiently small.

17 Likes

I think moving away from Multichain make sense but I don’t see the merit in giving 10k BAL to a 3rd party entity when Balancer could be leveraging the A.P.D (Autonomous Pool Deployment) of Stargate while retaining all the ownership of the tokens & earning a share of the 300k OP tokens available for grabs by partners in addition to capture part of the kickback fee accumulated by all the pools …

Of course I am bias because of my involvement at Stargate but this doesn’t seems like the best deal Balancer could get :grinning:

6 Likes

I agree the sticking point of this proposal is the 10k BAL loan. Didn’t know that Stargate was an option though. Forgive my ignorance but say we supply BAL liquidity to Stargate - will we run into the same situation we’re in with Multichain where everyone bridges in one direction and liquidity dries up?

4 Likes

Hey @0xMaki thanks for contributing your thoughts. I think this proposal from DerivativeKid makes a lot of sense. Risk Labs (foundation that supports UMA) can provide the 10k BAL to fund a relayer especially if that’s a concern. Ideally it would be great for the Balancer community to run their own relayer as there are multiple benefits. For the time being Risk Labs would be happy to provide this loan.
In addition I very much agree with @solarcurve. I think stargates solution could lead to the same result as multichain. I think stargates has some rebalancing fees that can help but increases the cost for users whereas Across has this rebalancing natively built in their system. Across has one LP pool and assets are redistributed automatically. Please provide any additional details DerivativeKid if I’m missing something. UMA community has been a huge supporter and partner of Balancer over the years so would love to see this proposal go through.

4 Likes

So on the Stargate side, Stargate liquidity is self balancing and bound by the novel Delta Algorithm. It does have curve-style pricing at the bounds to incentivize stable pools and 100% of the imbalanced pricing goes to anybody balancing significant chunks of the other direction, so you can often find positive slippage.

The math for balancing is below


When comparing pricing across protocols Stargate is almost always the most liquid pathway and the most competitive pricing. It also has extremely consistent timing, so comparing to across I grabbed a couple of random examples (I did not omit any pathway results I tried) and Stargate was better pricing on every pathway and I also saw across had extremely variable timing with some results giving timing as long as 2-4 hours for a single transfer.






Ultimately Stargate provides extremely competitive pricing, the benefit of Instant Guaranteed Finality, consistent timing for users and a user experience that is always a single transaction and always allows the user to pay up front entirely in source gas (no destination gas needed).

The base fee on Stargate is half of that of across (6 bps vs 12 bps) and if Balancer wanted to charge 12 (or any arbitrary number) bps it would be able to and keep the entire additional 6 bps for itself/it’s treasury. Lastly as mentioned by Maki Stargate also is providing incentivized pools as well as a partner fee that is additional revenue going directly to Balancer and coming right out of the the base Stargate fee of 6 bps.

4 Likes

Hi @PrimordialAA - I think a more accurate comparison for Balancer purposes would be to compare assets on Stargate where the pool is not as deep as USDC (since Balancer pool is also unlikely to be that deep, especially if they care about capital efficiency).

So take a look at moving ETH from Mainnet to Optimism. #1 Stargate can only handle 1,000; Across can do 5,000+. #2 Stargate charges 13 ETH for 1,000; Across charges 1.4ETH (screenshots attached). As you can see, when you try to transfer a large size vs what is available in the pool, Stargate fees skyrocket. This would likely happen to Balancer as well, which is clearly not good for them. They will be stuck in the same situation they are now with Multichain.

Stargate also overcharges for gas in their gas estimator. Screenshot attached. $47 to go from Optimism to Mainnet vs Across is $5. So imagine if you’re a small user trying to transfer $500 worth of Balancer token between chains. That’s going to be 10% (1,000bp) fee using stargate (inclusive of Stargate gas) vs Across would only be 1% (inclusive of gas).

Stargate is good at transferring assets, in good size, when the liquidity is good and the pools are very deep on all of the destinations. (Note that is also not required with Across since there is only 1 pool on Mainnet). From a capital efficiency perspective, the Balancer treasury would have to deploy 4-5x as much BAL token to try and have a reasonable bridging experience for their users. And even then, assets would likely get trapped. The “delta algorithm” just changes prices, it doesn’t rebalance. Across rebalances every ~4hrs at no charge or inconvenience to the user. Most bridgers do not want to see very volatile fees, especially when they are penalizing them for moving a way that doesn’t rebalance the pools. That never happens with Across, which I believe is a much more appropriate model for Balancer.

Lastly, the “Stargate incentives” such as the $OP program are pro-rata. So given the volumes Stargate does in USDC and ETH, the share of that Balancer would see via transfers in BAL is likely <0.5% (maybe $1,000 all in). The Across Referral Program would very likely outperform those rewards.

3 Likes

2 Likes

1 Like

fwiw the gas difference you’re seeing here is because it gets airdropped to you on the destination chain, this doesn’t happen if the user already has a reasonable amount of gas there and can be toggled off in advanced settings for anyone who doesn’t want or need gas on the destination chain to be able to play around with in that ecosystem (i.e. this is a feature not a bug).

also I’ll avoid adding too many new pictures to the thread but just checked for 10 eth from ETH → Optimism, ETH → Arbitrum, Arbitrum → ETH, Optimism → ETH (for ETH asset) and Stargate had better pricing on 4/4. I think for near every pathway for a random sampling of amounts Stargate will have both better pricing and better timing (i.e. never making a user wait 2-4 hours as the Across relayer randomly rebalances pools).

All of this is pretty observable by simply using both and I think the data is pretty straightforward.

(edit: even the example above you posted screenshots for, it’s both a worse end-price to the user and roughly 7x as long ~20 min vs ~3m15s)

1 Like

What do you mean a worse end-price? With Stargate you put 1,000 ETH in and you get 987 ETH out, that’s a 13 ETH fee. With Across the fee is 1.4ETH.

I’d be ok waiting the extra 17 mins to save > $20,000. I think others would agree.

That sounds cool about the airdropping of the gas, but I don’t see it. Please let me know if I’m doing something wrong. I went into advanced settings like you said, it shows 0 gas on destination chain, but the base gas cost to go from Ethereum to Optimism is ~0.03ETH ($60) vs $5 on Across.

2 Likes

here is the raw data for all ETH <> L2 pathways for the ETH asset. Stargate has better pricing for all transfers under $1M and for all transfers period other than 2. It also is significantly faster estimated timing in general and that does not even account for the times it’s 2-4 hours on Across vs ~40s / 3m15s on Stargate.

Data doesn’t need much commentary

1 Like

Balancer should know they can set the fee anywhere they want on Across: as low as 3bps and as high as they would like it to be. Across doesn’t have a protocol fee as Stargate does, so whatever bridge fee Balancer likes is shared between LP and relayers. If they want bridge cheap for users, but APYs lower for relayer/LP, they can do that, and vice versa.

As far as the topic of this proposal, namely adding BAL to Across LP, It’s not really productive or relevant to debate Across vs Stargate pricing on USDC and ETH, so I won’t anymore. Appreciate your interest in our proposal though and the dialog. :pray:

3 Likes

I don’t see any downside to having BAL liquidity on multiple bridges. The great thing about Across is their system rebalances the liquidity which avoids the situation we’re in with Multichain where all the liquidity is on one side of the bridge. Really appreciate that Risk Labs will handle the 10k BAL on their own too - that makes this an easy proposal to vote for in my mind. I’d also support exploring BAL liquidity on Stargate too - I predict we will see a lot of growth in our L2 activities over the next few months and we want to make it as frictionless as possible to bridge BAL between all of our deployments.

7 Likes

支持。。。。。不错的项目。。。。。。速度快,费用低

across is the best and safest bridge i have used ,give it a thumb up

I like Across very much because he is fast and safe enough to trade

Yeah, in favor of deploying liquidity across various bridges that are an improvement on multichain. If anything, its better to have liquidity various bridges, instead of relying on a sole bridge which can lead to user issues.

2 Likes

soounds good! really looking forward to

https://snapshot.org/#/balancer.eth/proposal/0x69b044ed3253c9d2b279d80535f0beaedf8ae21d4d04be0807d5243f0e8c3771

1 Like