TIP-027b tBTC v1 : The Sunsettening

tBTC v1 : The sunsettening

The main goal of this proposal is to preserve tBTC decentralization until the launch of v2 while simultaneously preventing losses to users.

In the opposing proposal, WBTC was introduced as an option to back tBTC v2 until migration in order to enable scaling. I’ve argued that losing decentralization for potential (and temporary) scaling is not worth the trade-off. My proposal will not enable new growth in supply over the next 2-3 months (while we wait for the bridge), but it will align incentives so that more tBTC ends up on v2.

Three ways to shutdown tBTC v1

  1. tBTC v1 are redeemed and tBTC v1 is shut down
  2. tBTC v1 are upgraded to tBTC v2 and then converted back to v1 by the DAO after launch of bridge
  3. tBTC v2 becomes backed by WBTC and the DAO seizes control of the vending machine to prevent conversions back. The DAO can mint v2 using WBTC, convert back to v1 and redeem.

Operating tBTC v1 is very costly, it’s highly dependent on a relay that costs $150k worth of ETH every month. It’s currently subsidized by Keep developers as a public good. Matt Luongo has voiced that he can only stomach another 2 months of paying for the relay (June, July).

Option 1. is therefore interesting, because the running costs will go away. But so will tBTC, and that’s a serious blow.

It means we have to start from scratch and bootstrap from 0 after the launch of v2. Even worse, with zero tBTC backing, any trading pair that has tBTC will fail and investors that are not paying attention will lose funds. This will also impact v2 pairs and ultimately cause tremendous damange as tBTC becomes unlisted and removed from exchanges and defi projects.

Shutting down tBTC v1 is also not going to happen in one day, it will drag on for weeks, or more likely months as we work to diligently gather node operators, tBTC holders and organize flag days to shut down in order to minimize losses. This option is unrealistic.

Option 3. will also not shut down right away. We can expect the running costs to continue for a while, but it might be justifiable to shut down before all redemptions are complete if the costs of running relay outweights covering losses. The main drawback of this proposal is turning tBTC v2 into a centralized wrapper and giving custody to third parties.

In this proposal we suggest option 2. which is to continue running tBTC v1, but focus on bringing people over to v2. That will allow us 2-3 months of getting people to migrate so that we can quickly shut down tBTC v1 when the bridge is live.

Option 2 : How it works

Effective immediately, Keep team will ask all node operators to deauth the sortition pool (meaning no more tBTC can be minted).

To incentivize node operators, the DAO will pledge to cover ETH losses that are caused as a direct result of the shut down (more on this later). Node operators who refuses to deauth will not be eligble for cover of their losses.

It’s important that minting is disabled so that redemptions will not result in available minting capacity (and therefore minting of new tBTC).

When the majority of node operators have disabled minting, the redemption process can be set in motion.

Redemption process

The distribution of reedemable deposits within Keep Nodes:

BTC lot size Number of lots Total locked
10 22 220 BTC
5 76 380 BTC
1 64 64 BTC
0.5 10 5 BTC
0.2 2 0.4 BTC
0.1 1 0.1 BTC
0.01 2 0.02 BTC
Total BTC locked: 669.52 BTC

As can be seen from the table above and AllTheKeeps website, all funds are redeemable. In order to redeem, the DAO will hire a “redeemer”. The role of the redeemer is to redeem requested lots using their own funds (or funds borrowed from the DAO if collateral is provided).

The redeemer must have a minimum 30 BTC (+ fees) available for the job, but the ideal candidate will have at least 50-100 BTC.

I suggest that the redeemer is accepted loosely based on a reverse auction principle, whoever offers the best price AND the larger BTC balance is accepted by the DAO as redeemer. But to prevent unreliable actors, the DAO treasury will judge at their sole discretion if the user is a worthy candidate.

As a backstop, if nobody wishes to perform the redemption processes, Agoristen is making himself available at gas/fee costs +0.25% premium. Any other offers should be 0.25% or less.

To redeem 670 tBTC, profit to redeemer is 1.675 BTC or less. The DAO also covers gas/minting fees.

Agoristen has performed large quantities of redemptions in the past and has been hired by several community members to perform redemptions, but he is happy to cede if other community members would like to take this role.

The redemptions will happen on one or multiple “flag days”. These are days announced in advance to get as many node operators to be available as possible. The Keep team will avail themselves on the flag day to help ensure a smooth redemption process and minimize or eliminate risk of losses. Keep team will also coordinate potential auctions to return as much funds as possible to operators.

To further minimize losses, redemptions will be performed based on lot size and collateral ratio. A larger lot size (10 BTC) is riskier to node operators and will be most difficult to close last (when there are few tBTC left). Additionally, we focus on completing lots with a high collateral ratio first as they represent a higher monetary loss risk to node operators.

Example below on which lots to first redeem (marked with red arrows):

As tBTC v1 is redeemed, the redeemer will deposit the resulting BTC into the v2 bridge and mint v2 tBTC, these will be moved through the vending machine, back to v1, which is then subsequently redeemed. The process is repeated until the vending machine is emptied.

At that point, we can expect a smaller amount of tBTC to be left in v1.

Now there will be a discussion in the DAO on how to proceed. How we proceed depends on the amount of tBTC left. If it’s a small, negligible amount, the remaining node operators can collaborate to seize the BTC outright, transfer it to v2, then take the loss of ETH collateral which is refunded by the DAO.

If it’s a larger amount, the Keep multisig can organize to reduce collateral requirements to 101%, a group of 3 community members and/or Keep team will initiate one node each with the minimum KEEP stake (10k KEEP) and sufficient ETH stake and the redeemer will then churn to reduce the collateral ratio to 101%. Finally this group will seize remaining BTC (at very little cost that is refunded by the DAO) and transfer it to v2.

Seizure of funds shall be fronted by the DAO by making a deposit to v2. E.g if we’re seizing 10 tBTC, the DAO should front the amount by deposting 10 BTC into v2. This way, tBTC always remain fully collateralized.

One note on cover of losses: The DAO will cover losses related to organized seizure of BTC (thus resulting in ETH collateral seized) - but will not cover normal operating losses such as nodes being unresponsive. Flag days will be organized to minimize the risk of operating losses. To be specific, when there is a small amount of tBTC left that cannot be redeemed, the node operators can seize the underlying BTC and transfer them to v2, but that will result in their ETH collateral being auctioned off (and the auction will never close - because there are zero or unavailable tBTC left to redeem with), the DAO will cover this loss. For situations when the auction does run in relation to seizure of BTC, it is intended that the Keep team will attempt to cover as much as possible from the auction and then the DAO will cover the difference lost.

Since seized funds are transfered into v2, any remaining tBTC v1 tokens will still be backed 1:1. This creates continuity and ensures all tBTC v1 pairs and defi protocols will operate unaffected by the migration. Any tBTC v1 user not paying attention will be able to migrate to v2 at any time through the vending machine.

Once all BTC are seized, tBTC v1 can be sunset.

How to bring people over to v2?

Incentives are implemented to incentivize migration to v2. The sooner a user migrates their tBTC, the more rewards.

Rewards distribution

Month 1 Month 2 Month 3 Month 4
Conversion to v2 tBTC 0.25% 0.75% 0.75% 0.75%
Deposit to curve pool + 0.10% + 0.10% + 0.10% + 0.10%

The expected timeline is 2 months, but in case of delays we have two additional months of rewards. A user who deposits before Month 1 (starting on June 20th 2022) will gain in total 1% rewards on their tBTC minimum and up to 2.5% maximum. An additional 0.10% per month is awarded for depositing into Curve tBTC v2 pool, thus yielding a minimum of 1.2% or a maximum of 2.9%.

The requirements to be eligble for rewards is that funds are not converted back to v1 at any time, or for the curve pool, only last deposit date will count towards rewards. Additionally (to prevent users from grabbing tBTC from the curve pool and converting to v1 then back to v2) only net inflow of tBTC v1 to the vending machine is counted for rewards. That rule applies also if using multiple addresses. Attempts at gaming the reward system will be elimination criteria. Any funds converted from v2 to v1 after this proposal is in effect will not be rewarded, and funds mixed with them will neither (with exceptions judged by the DAO treasury to be honest actions). To be 100% sure you will get rewards, simply convert from v1 to v2 and leave the funds in that address untouched or deposit to the curve pool.

Once the v2 bridge is launched and the redeemer has emptied the vending machine, rewards can be distributed to v2 token holders.

A form is submitted to claim rewards after tBTC v1 has been sunset. The form is anonymous and can be accessed through Tor network. In the form, user will submit a signature from their ETH address signing tx hash of their deposit into the vending machine and optionally the tx hash of their deposit into the curve pool). DAO treasury will validate that their claim is correct and proceed to transfer tBTC v2 rewards to their ETH address. There will be a deadline to submit of 3 months.

Costs

Relay costs
This will be a separate proposal.

Incentives for migration to v2:
1% - 2.9% (of 670 BTC) is between 6.7 - 19.43 BTC (or measured in usd: $201,000 - $582,900)

If we’re using a claim form, we can expect that not everyone will submit a claim, that will reduce the amount we have to pay.

Incentives for redeemer:
1.675 BTC + gas/mint costs ( $50,250 + gas/mint costs )

Cover of losses:
This loss is unpredictable and unavoidable, but can be minimized by setting c-ratio to 101%. There’s about 10 tBTC worth of balances below 1 tBTC each which could be a rough estimate on loss (using the assumption that anyone with more than 1 tBTC is going to care enough to keep up with what is happening). If we assume coverage of 100% loss on 10 tBTC the DAO will cover $303,000 (using $30k per BTC price and 101% c-ratio) worth of losses.

But let’s also make a more pessimistic assumption that there is 30 tBTC not redeemed in the end: 30 tBTC = $909,000

Range of loss guesstimate: $303,000 - $909,000

I suggest that the loss is capped at $1 million - if there are bigger losses a new proposal have to be put forth in order to consider how to deal with such situation.

Deployment of 3 nodes:
Keep team has voiced that they will likely take care of this if necessary. I’m assuming no cost in this proposal.

Total cost estimate:

$0.5 - $1.5 million

Proposal summary

Advantages

  • Preserves decentralization of tBTC
  • Simplifies the sunsetting process
  • Continuity, both tBTC v1 and tBTC v2 remains operational indefinitely
  • No loss for last standing node operators
  • No loss for tBTC holders and tBTC v1 holders can hold forever if they wish to

Disadvantages

  • 2-3 months of no growth (capped at ~670 tBTC)
  • Relay has to be paid during this period
  • Costs of redeemer, incentives, cover of losses

Disclosures

Agoristen

  • Large tBTC holder
  • No longer a node operator (I shut down my nodes early last year)
  • Is most likely candidate for the redemption job (but happy to let it go to someone else)
9 Likes

I support this proposal

4 Likes

I strongly support this proposal, and I think it’s very important we gain consensus on a solution very soon: a ton of capital is locked up, it’s been provided by the stakers who made v1 possible, rewards ended in March, we certainly don’t want to start v2 from zero, and those who assumed there was a solution in place will be less inclined to migrate and support tBTC the longer this drags on.

To me, the costs to the DAO are well worth it; in addition to being the right thing to do, the cost of not creating and executing a solution soon could be enormous.

Some may be OK with an approach that relies on WBTC, but a) I would expect (and hope) not many, and b) Threshold’s reputation/brand would suffer tremendously, as the centralized bridges would be likely to pummel us for talking a big game and then relying on one of them to get stakers over to v2.

Thanks, @Agoristen - for the thought behind the proposal and for offering to be the backstop redeemer at such low compensation (unless a qualified person offers to do so at lower cost).

2 Likes

我支持这个提案,tBTC一定会成为一匹白马!未来可期!

3 Likes

It’s been 30 years since I studied 中文, so I had to ask Google Translate. I’m guessing they got the first part right, but the rest is a little off. :slight_smile:
“I support this proposal, tBTC will definitely be a white horse! The future can be expected!”

1 Like

I support this proposal.
I also think it’s important to preserve tBTC reputation.

Thank you Agoristen for the detailed proposal.

1 Like

I think this is a reasonable proposal for how to shut things down in a timely way with minimal losses.

2 Likes

Hi all,

I’m onboard with this proposal.

2 Likes

Thanks @Agoristen.

An alternative to T incentives for migrating from v1->v2 is to incentive the tBTCv2 Curve gauge. I’m not immediately sure which would be more effective but this would remove the need to do the manual rewards accounting.

We should probably submit a Curve governance proposal to remove the gauge from the v1 pool. With the TVL going down, it’s currently tied for the highest CRV APY for BTC pairs, which will hinder migrations. After discussing with the Curve core team, I think a governance proposal originating from the Threshold community will avoid any negative optics associated with a gauge removal.

To play devil’s advocate, what happens if the v2 bridge does not launch in August or September as currently estimated? Is it reasonable for the DAO to subsidize the relay for an uncapped period of time? (Maybe this is something that is better addressed in the separate relay proposal mentioned.)

3 Likes

I considered this, but then there would be no way to prevent people from moving funds back to v1 (they could take curve rewards, and move back to v1 whenever)? I suggested retroactive rewards for this reason.

(they could take curve rewards, and move back to v1 whenever)

Since the vending machine contract is upgradeable, it would be possible for the DAO to turn off unminting back to v1, although this maybe undesirable from an optics standpoint as well as foreclosing the ability for holders to redeem back to native BTC for a period of time.

This could also be accomplished without an upgrade, at the moment the vending machine has a 0% unmint fee, this can be increased with initiateUnmintFeeUpdate and then confirmed via finalizeUnmintFeeUpdate

6 Likes

Any thoughts as to the cost assumptions for this as an alternative?

1 Like

If the DAO can set the fee to something that will limit unminting in practice while still preserving the option for people who want to go back to native BTC that feels like a good outcome.

I’m not sure what the appropriate level is: 5%, 10%? Opinions?

2 Likes

+ @ben .With the very limited (insufficient) TBTCv1 liquidity on the curve pool, this un-minting fee in practical terms would be passed on to the Redeemer (suggested role in the proposal).

I’d say it makes sense if this gets added to the list of reimbursements to the Redeemer. Otherwise it makes no sense and (if I’m correct??) would represent a separate proposal (incentivize vs disincentivize).

1 Like

It might be possible to whitelist the redeemer’s address (although this might require more substantive contract changes than a simple parameter change). Alternatively, if the unminting fee goes to the DAO, any fees charged to the redeemer could simply be refunded to them.

1 Like

Thanks for the proposal, @Agoristen. I’m not fully aware of tBTC v1 and KEEP staking mechanics to understand everything, and I have a couple of questions:

Can you elaborate on this? Isn’t the goal to sunset v1, and hence, not making it operational after some date?

Another question (although this may need input from the KEEP team @pdyraga @mhluongo ): How does this affect to the long-term goal of migrating all KEEP to T? As one of the core maintainers of the Threshold staking smart contract, I’d like to have a timeline to discontinue the support for legacy KEEP stakes, for several reasons including reduction of attack surface and code maintainability (which are extremely important aspects of smart contract development). If my understanding is correct, the main limitation for this was KEEP stakers that are currently locked into v1; hence the importance of sunsetting v1 from the perspective of the Threshold staking contract.

So, my question is, what happens to current KEEP stakes on this proposal? Will they be able to eventually withdraw the KEEP and migrate to T, so we can shutdown support for legacy KEEP stakes?

1 Like

The fee idea is interesting, but could disincentivize people from moving over in the first place. Especially node operators who might need tBTC if the btc/eth ratio falls further. It could also put the backing into question if the fee is too high.

I think if the DAO pledges to refund the fee to anyone going back to v1 with the requirement that the funds are only used to redeem, the fee could be higher than if conversion back is a pure loss.

To determine a fee amount it might be useful to consider what kind of arbitrage/premium might appear near the end. People holding for 2 months are up 1%, but if premium is above 2% they are still incentivized to move back and sell into that premium. A fee of 1% or more would be sufficient in that case.

The premium on the very last fraction of tBTC is infinity because the funds will remain inaccessible at any price. But at that point the DAO will refuse to pay and let it go to liquidation (and thus resulting in 0% premium for the last tBTC holder instead of a reasonable premium). This becomes a speculative game then, where we have to think about premiums in the later stages before the DAO takes the loss. Hard to know, but Curve is probably our best guess. IIRC the premium to sell 10 BTC (WBTC → tBTC) hit around 5% at one point, but the premium to sell tBTC would not be that high.

You can take out almost 90% of all tBTC in the curve pool for about 8.75% cost right now, but selling the same amount of tBTC would only yield you a 0.3% premium. Selling 10 tBTC would yield you 0.7%. But not many will be able to do that. Since our concern is tBTC holders converting back to v1 (and presumably selling) we only need to account for that part of the equation. 5% fee is likely a good amount to aim for, even if the premium would hit that high, only a small subset of the tBTC would be able to get that premium. But if we let anyone convert back and redeem with refund of the fee, 10% also seems fine and gives a little extra protection.

The redeemer can be refunded by the DAO for all fees.

Correct, but the token (could have clarified that better) for tBTC v1 will continue to exist forever, and the critical point here is that it should remain backed. Whatever BTC is seized in the end is moved to v2. This way all v1 tokens continued to be backed, even if v1 (the network) is shut down.

Yes.

This is a bit more complicated. Stakers who were locked in v1 could not undelegate their tokens and wrap them to T for staking. This is the reason we support the legacy KEEP staking contract in T staking contract.

After v1 sunsetting, these stakers can initiate undelegation in KEEP staking contract and claim tokens after 2 months undelegation period but it means they would need to undelegate them from T staking contract first and stop earning rewards.

I do not know how many stakers are in this situation but I know at least few. One option I see to eliminate the support for legacy KEEP stakers would be to:

  1. Find all staking providers with a non-zero keepInTStake by querying stakes function on the T token staking.
  2. Have the DAO borrow them T tokens for 2 months equal to their keepInTStake and top-up their stake with T tokens.
  3. Have all these stakers undelegate KEEP at the same time.
  4. After two months of undelegation delay, have them withdraw their KEEP from KEEP staking contract, wrap them to T and return to the DAO.
2 Likes