-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Watchtowers utxo pool and insufficient funds for being able to fee-bump revocation transactions #16
Comments
Ok, this've been here for almost 2 months. Now we need to discuss the actual UX of refilling the watchtower wallet as it has been brought up during the UI meeting. I'd like to discuss this during Monday's meeting @kloaec @JSwambo @edouardparis so please give it some thoughts. |
|
Yes. And in practice have some breathing room.
I think that the entire utxo pool of each watchtower must satisfy:
So, ideally each utxo would satisfy:
However, while it seems really intricate to keep this satisfied for the In addition, and in case of massive breakdown, a fee-bumping transaction can be batched, ie:
That confirms in (hopefully!) one block and then you have the entire remaining CSV time to make the revaulting txs to confirm. I (and @edouardparis) mentioned the importance of a pool of utxos yesterday, but it therefore may not be a requirement. Let's already figure out a way to keep this total balance decently high enough.
For each in-house WT, I think so.
I don't think we should seriously consider the unvault outputs i mention in #28.
Conceptually, that seems to be a red herring: they do not trust each other. The only intent of a WT might be to pin your transactions.
It'll always broadcast it with a
Huh? WT2 already has this transaction, hopefully ! Otherwise one participant is not protected. In addition to the great questions by Jacob, i'd like to share some thoughts regarding specific issues we mentioned yesterday. Duplication of the collateralWe don't support it yet, but each party will eventually have/hire multiple watchtowers. Does this mean the 100% reserve must be timed by the number of watchers ? Not necessarily if they are ran by the same entity:
RefillWe mentioned refilling the WT utxo pool / wallet. This imposes a burden on the participants already. So instead, let's encourage consolidation ? Better for everyone.
Note however the (practical) requirement for the bypass feature which, as we agreed in #21, should not be used for normal operations. |
Another question brought up by Edouard: |
We could argue over
Yeah I think that should be supported.
Agreed.
I think it's a big risk to allow the software to have additional outputs that go to 'external wallets'. There would have to be another layer of (distributed) validation of the un-vault tx (from each stakeholder or their WT). I think it would require WTs knowing eachother's xpub and that being very difficult to spoof. Yeah... seems like a can of worms...
... Perhaps its the same situation with the signing routine though. We need to think through the whole process and how it fits into the routine...
By this you mean independent refill ceremonies?
And here you mean create a parallel unvault/spend process (with every spend) that also sends funds to a WT? Not sure I fully understand... |
They'd have to maintain their own independent wallet to do this. Might be a good way around requiring ceremonies. Is it less of a burden for each stakeholder? |
We could, but let's not waste time to only get out with another arbitrary value that's going to be blown up anyways during the next bull run.
That's not possible, or Bitcoin would not work. The best we can do is forcing them to pay a higher fee in order to "attack" us. There is no real attack on the funds tho.
I'd argue that a stakeholder being used to re-sign transaction is a threat. Passive attacks work here.
No, consolidation ceremonies.. that's the point..
Think of it as an active consolidation. Trying to draw it here: Current model
My proposition
|
Agreed! It can always be done at a later stage.
I just mean the current_top_feerate choice shouldn't be automatically updated if some Tx has a ridiculous fee paid on it. That's game-able.
Something like this will definitely be necessary. Perhaps the distribution of vault UTXOs can be managed incrementally, and targeting an amount that is determined by the operational capacity of the WTs (all this predefined, not determined on the fly). |
TODO(darosior): talk about the discussion re inactive vaults |
As discussed IRL: This still leaves the question of a "secured" vault with an emergencyTx but no UnvaultTx: how do we deal with the Emergency fees? I'm really not confident with consolidating vaults into a very few UTXOs as the risk is higher when they are Active, but the fee management for both Active and Secured is really easier/cheaper/more realistic from a mempool space available perspective. |
We can also consolidate using a higher threshold (eg don't go higher than X vaults in fly) and transcribe it in the coin control screen (h/t @edouardparis) |
Problem: Watchtower re-fills are cumbersome/ impractical. Can minimize them with the following approach. This idea doesn't prevent the fundamental problems of fee-market spike. Consider 'vault' as any combination of deposit UTXOs that are secured/ active. Limits:
AlgoHow to handle deposits that increase the number of vaults (potentially above capacity)? Number of vaults x Value of vaults =< WT required capital
Requirements:
|
I'll remove the FIXME in messages.md to move it here for a broader reflexion about this case. There are input from @JSwambo in https://github.com/re-vault/practical-revault/pull/1.
Long story short: the number of different vaults a watchtower can track is limited by its available funds, otherwise it could not be able to handle the worst case scenario (revault all unvault transactions of all vaults).
Note that it is also inherently limited by feerate increase (as we can't bet on future feerate)... Is it the fractional reserve of tomorrow ?
The text was updated successfully, but these errors were encountered: