ZmnSCPxj [ARCHIVE] on Nostr: 📅 Original date posted:2019-04-04 📝 Original message:Good morning Ariel, > ...
📅 Original date posted:2019-04-04
📝 Original message:Good morning Ariel,
> However, consider the situation where a group of participants are playing poker. One participant loses all their funds and decides to present to the escrow the contract+an old contract state+a signed message following the contract rules (eg. an independently signed cashing out message). How would the escrow know that the contract state is old and the operation is disallowed, without using a consensus mechanism like a blockchain?
One might point to the various channel mechanisms (Poon-Dryja, Decker-Wattenhofer, Decker-Russell-Osuntokun) as counterarguments.
Though they require a blockchain as backing, old states are invalidated (Poon-Dryja) or replaceable (Decker-*), without necessarily requiring a blockchain to keep track of all the states.
Suppose our purported smart contract platform supports some kind of covenant system.
This means, that it is possible to make a branch of the contract require that the fund go to a specific address template in the transaction that spends it.
Suppose we use this mechanism to require that the Bitcoin-level transaction pay again to a contract in the same contract platform.
It then becomes possible to make a covenant that requires spending the transaction to the same covenant.
This can allow us to enforce creating an offchain sequence of transactions T1...Tn, such that T2 spends T1, T3 spends T2, etc.
Then the final transaction Tn completes the sequence and pays out according to the rules of Poker, or whatever.
This sequence is anchored on an onchain transaction T0 which enters the funds into the smart contract.
The smart contract platform just signs "blindly" without particularly caring whether the signature went onchain, or even whether the UTXO being spent exists onchain --- all it cares, is that the smart contract can be given witnesses correctly.
Now upon reaching Tn, the winner(s) can just publish the sequence of transactions T1...Tn.
Alternately, they can present the sequence of transactions T1...Tn to all participants, and offer to give back part of the money allocated to fees for all the transactions T1...Tn in exchange for a single transaction that shortcuts all of that and spends to however Tn splits out.
Basically, consider that the Decker-Russell-Osuntokun mechanism starts with a mechanism very much like the above (a sequence of update transactions) and then does some optimizations to allow the final transaction Tn to spend any transaction Ti where i < n.
But the basic concept that the sequence is at all possible, and can be kept offchain, implies this state does not require to be stored onchain at all.
Regards,
ZmnSCPxj
Published at
2023-06-07 18:17:33Event JSON
{
"id": "c28ce1145224bf2016d2d1b16e055f4541dba39eeeb2a7286dd196981087e7da",
"pubkey": "4505072744a9d3e490af9262bfe38e6ee5338a77177b565b6b37730b63a7b861",
"created_at": 1686161853,
"kind": 1,
"tags": [
[
"e",
"78bdc6743a466b79edd05ba41690eaee43f610226f78863dfdd4695a8196fee9",
"",
"root"
],
[
"e",
"ca8b059dbb0f842d1800afad86399cbddaefa23125b3220420a900bfe3bb598e",
"",
"reply"
],
[
"p",
"5d373bc44b6cb694f096ec148573e6a122bc33455bc167ade3ae63d1189185d2"
]
],
"content": "📅 Original date posted:2019-04-04\n📝 Original message:Good morning Ariel,\n\n\u003e However, consider the situation where a group of participants are playing poker. One participant loses all their funds and decides to present to the escrow the contract+an old contract state+a signed message following the contract rules (eg. an independently signed cashing out message). How would the escrow know that the contract state is old and the operation is disallowed, without using a consensus mechanism like a blockchain?\n\nOne might point to the various channel mechanisms (Poon-Dryja, Decker-Wattenhofer, Decker-Russell-Osuntokun) as counterarguments.\nThough they require a blockchain as backing, old states are invalidated (Poon-Dryja) or replaceable (Decker-*), without necessarily requiring a blockchain to keep track of all the states.\n\nSuppose our purported smart contract platform supports some kind of covenant system.\nThis means, that it is possible to make a branch of the contract require that the fund go to a specific address template in the transaction that spends it.\nSuppose we use this mechanism to require that the Bitcoin-level transaction pay again to a contract in the same contract platform.\nIt then becomes possible to make a covenant that requires spending the transaction to the same covenant.\n\nThis can allow us to enforce creating an offchain sequence of transactions T1...Tn, such that T2 spends T1, T3 spends T2, etc.\nThen the final transaction Tn completes the sequence and pays out according to the rules of Poker, or whatever.\nThis sequence is anchored on an onchain transaction T0 which enters the funds into the smart contract.\n\nThe smart contract platform just signs \"blindly\" without particularly caring whether the signature went onchain, or even whether the UTXO being spent exists onchain --- all it cares, is that the smart contract can be given witnesses correctly.\n\nNow upon reaching Tn, the winner(s) can just publish the sequence of transactions T1...Tn.\nAlternately, they can present the sequence of transactions T1...Tn to all participants, and offer to give back part of the money allocated to fees for all the transactions T1...Tn in exchange for a single transaction that shortcuts all of that and spends to however Tn splits out.\n\nBasically, consider that the Decker-Russell-Osuntokun mechanism starts with a mechanism very much like the above (a sequence of update transactions) and then does some optimizations to allow the final transaction Tn to spend any transaction Ti where i \u003c n.\nBut the basic concept that the sequence is at all possible, and can be kept offchain, implies this state does not require to be stored onchain at all.\n\n\n\n\nRegards,\nZmnSCPxj",
"sig": "5de7155465da3a182a3a9602034123bd7747963487a1f32eb51d6515d0cb2e4a5203e0fa5855887096241ea3665dd58cf312b20c9c51202782c9ae214c6cc791"
}