Open mhluongo opened 5 years ago
This is so crazy, it might just work. Had some time to brew over this:
Leverage is tricky. If we pursue this, it counters potential malicious signing fine but lowers the exchange rate delta the system can tolerate, since all signing bonds move together.
Salient point from https://github.com/keep-network/tbtc/issues/14#issuecomment-471380393 - if we stick to a purely BTC<->ETH price oracle, not including a Uniswap pool for example, then the peg should be maintained and there shouldn't be a feedback loop. I'm still weary that this makes the system more fragile, and governance less effective at overseeing the ecosystem (ie custodial fees).
eg. I wonder about a scenario like MakerDAO had for DAI - TBTC is always backed by a real amount of BTC, but will it have a different price on the market (ie. from lower Eth tx fees)? And what does that mean for overcollateralisation?
Have to think more on this tomorrow. Might be tired, might be a complex issue, but very keen if we can do this.
I want to know why MakerDAO doesn't do this already
They're planning to do part of it- the part where bonds can be deposited elsewhere (eg Compound) then locked in a CDP. For DAI, though, this trick doesn't work- the point of the reserve is to stabilize the price, and that doesn't stabilize the price.
For us, it's a supply peg, not a price peg. The tricky part is making sure signing fees are high enough to justify locking up the TBTC you minted to sign for more to be minted.
the bond needs to have value - unlike ETH, TBTC isn't volatile, so it's lower risk for signers in terms of upkeep. I like this, it sounds nice, but ... no free lunch?
Free lunch my man. We only need ETH to bootstrap the bonds. The rest is just BTC opportunity cost.
TBTC is always backed by a real amount of BTC, but will it have a different price on the market (ie. from lower Eth tx fees)?
This was always the case due to signing fees- and that's okay, as we're building a supply peg, not a price peg.
This could actually counter that by acting as a TBTC "savings account".
Luckily
what does that mean for overcollateralisation?
The answer here appears to be "very little".
it's a supply peg, not a price peg
Those magic words - this is the essence of it. Let's do it!
I've discussed this with a couple folks outside Github, and I'm seeing confusion around
why MakerDAO doesn't do this already
Intuitively, folks are asking "well, why can't we just do this with DAI? DAI backed by DAI?"
The answer I've intuited is that in a price peg, reflexive collateral leads to a more volatile peg, "diverging"- and that with a supply peg, more reflexive collateral "converges"- because we're leaning more and more on someone else's Bitcoin being the collateral, and lowering the amount of F/X risk the system is built around.
At scale, if tBTC as a system approaches being entirely bonded on the EVM side with TBTC, there is no F/X risk- but there's also no liquid TBTC on the EVM, as it's all required for signing collateral.
@gakonst would be fun to get your take on this. No idea if we can feel good / comfortable getting this into the docs by initial spec peer review but I think we could announce it as a major improvement shortly after.
In addition to the docs it's probably worth a long-form blog post- https://crosschain.group/ launching will give us a place for stuff like that.
We can either do this all in one PR, or split this into a doc and implementation PR- open to either
Documenting this process is next on my schedule for #238.
https://github.com/keep-network/tbtc/pull/238/commits/02f84ef96a40246ef56bf3d1f2c58ac5a53b38fd should address the first 3 unchecked boxes
@Shadowfiend @NicholasDotSol have we gotten anywhere with this? Working to make sure we all know what "done" is for #326
have we gotten anywhere with this? Working to make sure we all know what "done" is for #326
Totally lost track of this one. On it.
Had some preliminary thoughts, probably best to write down here. Assumptions:
Requirements / initial thoughts:
retrieveSignerPubkey
. This needs to be set somewhereseizeSignerBonds
is now under scrutiny again. Redemption and liquidation flow specifically.purchaseSignerBondsAtAuction
won't have an auction. bonded tBTC will be seized from signers and sent to TDT owner. TDT owner should receive a full tBTC (maybe minus signer fee if not fraud?) since the user should not be punished further in case of signer fraud or abort. tBTC burned if TDT owner is vending Machine. There isn't much wealth to spread, so caller incentives might be odd here. Don't have TBTC to skim, so maybe signer fee...gotten anywhere
Late to the question ofc, but I'm not sure what this question was meant to be asking in the first place. We aren't doing this, so in that sense… No? The ball's in your court if you're wanting to land this post-audit or for follow-up audit purposes. Implementing it would need to push into the Keep side to support ERC20 bonds, and we could look at that as part of our poking at adding to the Keep staking mechanism.
Enabling TBTC as signing bond collateral can lower the overall collateral requirements of the supply peg.
Consider 10 BTC under custody. With a 6 month deposit term and 50 basis point fee, 9.95 TBTC are in circulation, and 15 BTCETH ("15 BTC worth of ETH") is bonded.
With optional TBTC signing bonds, 9 more BTC can be deposited and backed by 9 TBTC, meaning a total TBTC supply of 19 TBTC, only requiring 15 BTCETH in additional collateral. That's a 1.79X collateralization across the whole system, including Bitcoin and signing bonds- versus the 2.5X collateralization required naively by an ETH-only signing bond.
Fully playing out the example, more and more BTC can be deposited and backed by TBTC signing bonds. At 100 BTC, collateralization is only 1.15X- and as the BTC collateral grows further, the total collateral requirements approach 1.
At 100 BTC, however, only 9.5 TBTC is fully liquid- meaning that a 50 basis point return to signers and the use of 9.5 TBTC is the only incentive driving this loop. To see this behavior live, there needs to be additional incentive to sign and deposit. This incentive can be accomplished via #117. As long as signing bonds can be safely lent, the returns on those loans should incentivize signers to also act as large depositors.