Hi John,
Thanks for the read!
> Agreed that signing updates and monitoring the blockchain both create always-online requirements that are not compatible with casual users' desires. I think
> it's helpful to separate these two cases, as they affect different parties and their solutions differ.
> In particular, limited availability to sign updates affects one's partners and can be addressed by having fewer partners, not partnering with casual users, evicting > unresponsive users, etc.
> Limited availability to monitor the blockchain affects the security of one's own funds and can be addressed by increasing one's safety parameters (such as the > to_self_delay parameter in Lightning).
Yes, I think effectively the logical coordination of the signed off-chain updates and the chain monitoring is defining the problem space. Of course, there is the solution of
having less off-chain partners and bumping safety timelocks.
Though here I think it comes at the downside of more UTXO storage requirements for base-layer nodes and an average increase in the price of liquidity for LN users due to more extensive timevalue.
I think an intermediary solution can be to make the signing updates (and the fraud proofs or "partition statements" in the post) a structure enforceable by Bitcoin Script in a way than all the "revoked" on-chain partitions can be punished, like with some OP_MERKLE_ADD/TAPROOT_LEAF_UPDATE_VERIFY to ensure the cheater cannot escape the clawback ?
> I would argue that we want a completely trust-free solution, if at all possible, while respecting users' actual availability.
> We should only consider solutions that require trust if we can't find a trust-free solution that meets all other requirements.
I would love to find a completely trust-free solution. One of the hard things is defining trust :)
Note, as soon as you start to consider off-chain Bitcoin trust models you have a multi-dimensional risks model to solve e.g miners incentives, network connectivity, mempools congestion, proactive security of your threshold signing shares in face of your counterparty liveliness, consensus upgrades
altering network-wide transaction-relay rules, ...
> Actually, there's a third class of solutions that are possible, namely ones that use separate control transactions and value transactions (where the value > transactions "spend", and therefore depend on, the control transactions).
> If an invalid control transaction is put on-chain, it can be blocked by another user by spending its output(s) before the output(s) can affect the value transaction.
> Thus, control transactions can be viewed as proposals for state updates, and those proposals are blocked if they aren't valid.
> These solutions differ from prophylactic solutions, as they allow incorrect transactions to be put on-chain and require another user to block them.
> They also differ from your definition of a corrective security model, as they never allow the state update to be applied to the value in the channel or pool, so
> there's nothing to be corrected.
> An example of this third class of solutions is the Tunable-Penalty Factory protocol [1].
> Of course, this example was not available when you noted that solutions are either prophylactic or corrective.
FYI, I think the idea of separating control transactions and value transactions (as done in electronic engineering between control signal and actual voltage) has been explored in the past [0].
I still believe this family of solutions can be fitted in the corrective class, as you have an invalid control transaction that can be corrected by another *valid* control transaction, and I still think it's incentive-based as there is a risk of the valid control transaction never confirming ? Or the funds getting frozen due to a miscellaneous broadcast?
> On the other hand, protocols that use separate control and value transactions do not have this limitation.
> For example, the Tunable-Penalty Factory protocol is a multi-party protocol in which every dishonest party is penalized and there is no economic disequilibrium.
Yes, I think this is a good observation. For the partitioned-payment pool this can be corrected by ensuring only the honest party can enforce the partitioned statement and you have to timestamp them in the chain for Bitcoin Script itself to order them, I think.
Do the Tunable-Penalty Factory protocol have any "partition-throughput" limit due to a subsidiary reliance on the chain or the liveliness of the N counterparties ?
> If I understand this correctly, I think a penalty mechanism that allows a "wronged" user to take some or all of a dishonest user's funds could be exploited by a malicious coalition.
> Consider the case where Alice is an honest user who joins a partition with Bob, where Bob and Carol are in a malicious coalition.
> Alice believes she has pooled her funds with Bob's and so she is able to work with Bob to implement an off-line update of their balances, with Alice believing
> that she has gained ownership over some of Bob's funds.
> However, when the partitioning Update transaction that joins Alice's and Bob's funds is put on-chain, Carol pretends to have been "wronged" by Bob and uses > the penalty mechanism to seize Bob's funds.
> In this case, Alice won't be able to get the funds that she thought she had obtained from Bob.
Yes you need to order the "partition-statements" otherwise you're falling on this issue and the ordering happening in a proof-of-non-publication space, I think [1].
Best,
Antoine