-
Notifications
You must be signed in to change notification settings - Fork 40
Description
In all the places in docs.spark.money that I looked, it is mentioned that a user can unilaterally exit by broadcasting their exit transaction.
From https://docs.spark.money/learn/withdrawals#unilateral-exit
Unilateral Exit
If the SE is unavailable or uncooperative, the user can perform a unilateral exit using the pre-signed exit transactions created during the deposit and transfer processes.
- Broadcasting Branch Transaction: The user broadcasts the branch transaction that was signed during the deposit process.
- Waiting for Confirmation: Once the branch transaction is confirmed, the user waits for the relative timelock to expire.
- Broadcasting Exit Transaction: After the timelock expires, the user broadcasts the exit transaction that was signed during the deposit or most recent transfer.
- Confirmation: Once confirmed, the funds are available in the user’s Bitcoin address.
Reading it, I get the impression that user needs to broadcast only two transaction to unilaterally exit, but reading the code, it seems like the user might have to broadcast up to 50 (!) txns to exit because it's not a exit transaction but rather a chain of transactions leading up to the exit transaction
The more hands the statechain has changed, the worse it gets
Is that correct?
If so, then a user using Spark doesn't have much of a exit guarantee and must rely on the operators to collaboratively exit. The system, thus is not any better than a completely custodial system for most of the users.