I wish I had more visibility on nostr. I get pretty much nothing on here when I post content
Wait: Don’t we have to mine this huge pile of Tx eventually, for everyone to REALLY get their coins?
If we collaborate, NO! We can build alternate spend paths. But that’s a whole thread.
You now understand covenants 101: commitments made *without always touching the chain*.
#m=image%2Fjpeg&dim=1118x668&blurhash=i8BzB%7D%3F%5B00DPVt9ZIA%3FH%25N%24%3AQ%3FDiNYScMyRQ%25M%25fEbti-pt8s%3Bs%3Ax%5DWCMx00DjWB%3Fb%3Fvt8spM%7BE0IURjsoxu%25MxuRjIUMx&x=63b4dcf0ac4f4e43b44c443a7fd3746da00b765dbc08b483ab0bdd78446f32c7
Instead of each L1 Tx being one ownership change, we can plant a whole tree full of many users, all sovereign, but only using 1 UTXO of block space.
If the leaves were lightning channels, you can even be spending sats freely - only updating the tree rarely for channel closures.
#m=image%2Fjpeg&dim=1106x671&blurhash=iD9asXxaRRoyMzx%40MyW.RkD8Vvx%40V%5BoxozaxbFay%3F%5BtQV%5DkBV%5Boze%3AWBaeMhbaoMWBoxnmW-WBa_i%25btjbaykUjIX5e%3Aoe&x=e0dde6b60451a24531945c751fc8a5a8b97a9e9c19b1977e724c94b467225953
What if each layer paid many people, not just one?
We can go as deep as we can coordinate in advance.
When Alice makes that ONE payment on chain, EVERYONE in the tree is paid:
The guy before them CAN’T take coins back, and keyholders can all exit whenever they want.
#m=image%2Fjpeg&dim=1192x669&blurhash=iHEo*%2BV%3BX9E3RQxWxuR-4n%7EWR7RkozWnoft8NGD%259%5ByDxZw%5DafNLSOV%3Fs802M%7D%252aJt7R.IUsm%25MDingt7R-R*s%2CjDozkr&x=12493c317e26b3f4a521ca6b8aa397d505f8b0da47e20e9b127862271d7b90aa
We burden the chain with only 1 transaction, yet get more than 1 ownership change, or said differently: irreversible commitments.
What if Charlie did the same thing in creating HIS address, with someone HE needs to pay?
What if they did it too?
#m=image%2Fjpeg&dim=1193x669&blurhash=iDD9q%3B_09ZIvRQs8-%3BNH00%7EDnAIWozbXofxvM%7B9YAXpb-owIRkNyNIVsw%5B00WG%251s7ozR.IUjE%3FH4mxBt7NIWXs8ngozp0&x=17ba9658e51d6b21db07c5af96eff67e8f5dc2107a7d18d01d2d5da510978810
If you choose to ACCEPT payment via CTV, the payer needs to pass you the Template for every step between your coins and the mined Tx.
That’s what you need to fully exit if you want. We always have to store data: private keys, channel states for LN, now spend paths for CTV.
#m=image%2Fjpeg&dim=958x670&blurhash=r5B3%24gL30A%5EN00r%2CIs4p%25g*f4ZEl%3FWIBrpOWXSxu1X.0%3D%5D9H%3Fd%25hRQxbIU00Mc%24_S%25%3FvtTxZ%25LIUbxowjYa*WTV%40oga%5EV%5D%3Fw-%3AxZRSD%24E1WFV%3Dxu&x=368e9f7ce313fab67d6af1690bbb7169708c83ee74119c9a655bbbd077538e81
If CTV was live, Bob can make his address key be a signed but unbroadcast Tx sending to Charlie’s address. Nodes will reject any other spend as invalid.
If Bob hands that Tx to Charlie, he can SEE Bob can’t spend them differently. And pay himself out any time, without asking Bob.
#m=image%2Fjpeg&dim=1192x669&blurhash=iDD0AP%7ES4%3AI%5EMxxa%25LNL00%7EErZIWtRR%24t8t8NG9FFZcE-.rqRnNeNLVsxC00NN-Ui%5DtRNGIVjE%3Fa8%5En%23xuNHa%24nhs7ozks&x=87fb386b20b37aa79c7066ff1b00c4cb7da3de3e8e7456b81827a21a9bb9a770
OP_CTV, Check Template Verify, proposes a new primitive added to the family: check that the SPENDING transaction, hashed, matches one we defined.
It’s kind of like using Tx data as the key for the lock, instead of a private key. And if YOU build the address, YOU decide the terms.
#m=image%2Fjpeg&dim=1192x672&blurhash=iBBWY*8%5EM%7Bxv4ox%5E00Rk_2%3FbD%24ozt7aeoLayofR*00Ip-%3Bs%2CxZRO%7Ept74oWBV%40t7j%5BWXRj%25MRjRi%7EVemITbbkXkXD*NG-p&x=d26abb0dd8bb9c4b41f29adb2b9205c603d82bde91a0338f31f6eb22e7f2a66b
You build a transaction with the To addresses, attach your UTXOs, and show whatever’s needed to unlock them. Then broadcast.
Before it’s included in a block, Bob can’t be SURE he’ll get the coins. EVERY ownership change MUST touch the chain to become immutable.
#m=image%2Fjpeg&dim=1191x670&blurhash=iADS%25P_059nmwuXn009bM%7C%7D%5EMgN%7BtQagf94mj%3BWB6%7Cl8%24LMzOai%5E%3DtxBkD00rt%2C%2CWTOGIU_4W%3DR.4TxVf%2BM%7CxBS4k%5BS6xs&x=88f9bcb0507eadb4359a919f44ced66be1f2ddf1056a5bda5e36636e8970111b
There are other things we can use to make our locks: extra keys, relative or fixed timelocks, & logic to combine them. The address encodes it all.
(Technically, they’re all actually scripts - the different functions used inside: OP_CheckSig, OP_Multisig, OP_CheckLocktimeVerify…)
#m=image%2Fjpeg&dim=1194x671&blurhash=iICZU%7BfP9Ys%3AD*xu009Z%7EqMvWBbXjFt9ofxvXSRjs*ayWUoKj_t7bJNGWA%3FbofV%40WBNHWBD%25kC%25L4mjv%252WBkWRj%25g%253IT&x=560797a2678a79e78834b14a9e958e2256fca7d5d99a492bf8645efa771af48c
Addresses are built from the spending conditions YOU want for YOUR coins. You have a key, you define a lock that it opens, that IS your address.
Coins (UTXOs) sent to the address must be unlocked to be spent. You defined the lock, you decide what opens it, nobody else.
#m=image%2Fjpeg&dim=1193x670&blurhash=iB9Z%7D%5BR4MwV%40R%2B_401E2bwxaV%40j%5BayWCogNGogay00p0x%5Dozsm8_%7EV-oi%5EE1tRa%23oes.V%3F-pRij%3F%7EWr%3BMxWBkCx%5EE1E2g3&x=0074ba584c939245de6642f0af58fb03a58caa071c164670b1edbee8f2a5deff
Welcome to Covenants 101, with a focus on CTV.
What are they? Is this an attack on bitcoin? Can the government lock up all our coins?
Without an accurate mental model of what's actually going on, it's hard to reason on what they can and can't do.
So let's walk through it. 📩👇
So Rearden went through the process to creating a version of txhash that was CTV+APO, here's a table that shows what's hashed.
#m=image%2Fjpeg&dim=1034x1696&blurhash=%5D45r3%5D_4WBRjIU-%3BofM%7BRjof%25NofM%7BRjofxut7j%5Bayj%5Bt7t7ofRjaya%7Doft7off6Rjayt7ofWBayj%5BoffkjtWAfQj%5BaefQ&x=aae7b5146327c887b41cecb244d7ab58c602405609a3ceb7f6e46821b15afa5
The script itself should look relatively normal, but there'll be an extra associated 32 byte hash that is used to evaluate the script when you're spending from it.
#m=image%2Fjpeg&dim=960x540&blurhash=iIGR%7C-0N9b9bbb%251V%3FxZjE%7EVIWIVM%7CV%5Bocj%3Ft6oe00%3FYxp%25Lj%40NHt8WEj%5E01xZsls.jaRnt7bIbIxubHofayWBs%3BfiWBRj&x=49ba0becf3db3d0e8819a2955b8a554b8d9bee2d2bf00ed87012c8a40f161ce4
The guys are trying to get the minsc branch that supports CTV to compile so it's easier to build PoC's. Trying to look at these clips in bare script is going to be a near nightmare as you can build trees and many exit options. Here Jeremy talks about splitting and evicting a single individual.
https://nitter.net/JeremyRubin/status/1744140391249506504#m
Here's a split and evict for a payment pool
#m=image%2Fjpeg&dim=1080x626&blurhash=i6SigQM%7B%7Eqt7xuoft7xuIU%3FbM%7BD%25ofM%7BWBj%5Bj%5B%25MIURjayt7%25MWBRjofWB_3ofRjofWBWBWBWBj%5B%3Fbt7t7ayIUj%5Bt7WBWB&x=798c91dd2ca084c01188221c54b9224908ddf482201dadda342a77d33ffabf9b
Here's a payment pool that was compiled in Sapio
#m=image%2Fjpeg&dim=1920x1200&blurhash=r5S%24ovkC.8xuxuofWVRjaexbV%40RikCa%7CWAj%5BayWB_4NGD%25RPV%40ofayt7ofV%3F%25MxuM%7BRjofj%40ofoyD%25W.ofxut7RPozWAae%25NjEf5ofj%5Bjuaeaxaz&x=257179487fff78e3a471c9c728415d83d158cf2c39c3709778311abdfd1bb880
Here's the txhash with CTV+APO by Rearden. He ended up abandoning it in favor of Template Key which is a 33rd byte extension to CTV but it isn't anywhere near ready and needs probably years of bikeshedding to finalize it. He's in favor CTV now then later extending to either TXHASH or CTV as necessary.
https://gist.github.com/reardencode/2aa98700b720174598d21989dd46e781
Sorry about the fire hose of information, there's just so much here.
Weird. It was set but when I went to the edit settings, it was blank. I entered it again and appears in the settings now. It fix it on your end?
Makes sense. Still learning nostr etiquette. Here's the nitter links
Covenants 101
https://nitter.net/OwenKemeys/status/1741575353716326835#m
Covenants 102
Owen made them up for his Covenants 101 and Covenants 102 threads over on X.
101
https://twitter.com/OwenKemeys/status/1741575353716326835?t=cgvZGJoMLv9P5DGPV5Sq3A&s=19
102
https://twitter.com/OwenKemeys/status/1744181234417140076?t=jnW9Wd89NwRT8StZ0SQqxA&s=19
102 covers the more advanced use-cases such as Cold Channels whereas just covers the basics such as Congestion Control. Let me know if these help
Have you had time to think on it?
The Scroll of Truth!
#m=image%2Fjpeg&dim=517x499&blurhash=%7CKNT%2ClkC-pjF%25OkC-%3BM%7Cn%2B9F4.%25M%25LIoxuofxuof%7EpV%40Rjo%23V%40Ria%7DofRj%7EX%3FaIVM%7BoIMxfiWYNGE3%25LWERkf4t8adWVt6xuNGa%7Et6WBj%5DWBn%24s%3Bxujbs%3BRibHoMRjj%5BoKxYxZRjbJt7WBflWUkDaJWYkBV%40WBofogWCt7&x=11af9d273a9a7ca268ae1bf202c6e58182dcfc2afbd0218874f2b7f0978afe9f
I discuss LNHANCE here which will further improve on the concepts like Cold Channels.

#m=image%2Fjpeg&dim=819x540&blurhash=r89tP%25yUD*M%7CNZV%5BM%7BxuRRGcnhr%3BoInhWBV%40kWWBHbICbrkURQoybYfRox%5EcW%3DNIW%3DS4oLWCjYayucyAVun%2Ct7V%5BahWAV%5B%7DmR.NKWXNIoeW%3BjFWB&x=860ed55345f9f855729c8bf1dfd19accc63cac0b31f90d19fef23c3a444d4263
#m=image%2Fjpeg&dim=825x540&blurhash=r67xBu.5RzRjVtRRIUt8xtpPjKRCaixca_V%5Dk8WBDSH%5DIBodx%40tPf%23WXayr%23bWR%24oxoxa%23k9WEf6tGyBtkogaQRQt7WARj%23xWANEk8k7j%5BbXaija&x=3329ea1a5da027f809f762a80c17fb860055934d498ac379894bcc18adbee1a3