<div dir="ltr"><div><div><div><div>I was thinking about something similar, the big problem is that everyone has to be online.  What is needed is a way to do consensus enforced sequence numbers.<br><br></div>The principle is that the locktime would lock the transaction outputs (like with the coinbase outputs) rather than prevent the transaction from being included in the blockchain.  Transactions could double spend these transactions (and make them invalid) as long as they had higher sequence numbers.    Once the locktime is hit, then the last one is locked.<br><div><br></div><div>Thinking more about it, this could be done by a soft fork, if the locked transactions list was committed to in the coinbase.  You could only replace transactions in the &quot;pending&quot; list if they have higher sequence numbers.  At this point, it could need a new field, since sequence numbers are being used for relative CLTV.  Transactions which double spend transactions in the pending list would not be allowed in the main blocks.<br></div><div><br></div><div>This means that broadcasting an expired state of the channel will just have someone else broadcast one with a higher sequence number and have your transaction removed from the pending list.  It doesn&#39;t protect against a party broadcasting early, but at least the final state is the one that ends up as the channel close transaction.<br><br></div><div>There would be fees to pay to get into the pending list too, and it doesn&#39;t change when the final locktime is anyway.<br></div><div></div><br></div>I think the ideal situation would be where only those who are negatively affected have to sign to change the state.  Moving money from A to B would only require A&#39;s signature on the state change.<br><br></div>For example, a join-channel could have a &quot;moderator&quot; and normal participants.  To sign a state change, you need the moderator&#39;s agreement and anyone who would lose money by the change.  The moderator is responsible for making sure each sequence number is only signed once.  Any of the participants can poll the moderator to get the current state of the channel after they have been offline for a while.  The hub would probably act as moderator and there would have to be a penalty if the moderator signs the same state number twice.<br><br></div><div>Ideally, the users would sign the updates periodically even if they aren&#39;t trading to reduce clutter.  If someone signs state 180, then they are signing all previous states too.  This means that you don&#39;t even need to have any state that everyone has signed.<br></div></div>