<oembed><type>rich</type><version>1.0</version><title>Jeremy Rubin [ARCHIVE] wrote</title><author_name>Jeremy Rubin [ARCHIVE] (npub1xu…fzef0)</author_name><author_url>https://yabu.me/npub1xukrzempxc95ags094lgrfvnvwm7gkuwj3d98qwrzgsynskyhp9qkfzef0</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2022-02-10&#xA;📝 Original message:&#xA;That&#39;s not really pinning; painning usually refers to pinning something to&#xA;the bottom of the mempool whereas these mechanisms make it easier to&#xA;guarantee that progress can be made on confirming the transactions you&#39;re&#xA;interested in.&#xA;&#xA;Often times in these protocols &#34;the call is coming inside the house&#34;. It&#39;s&#xA;not a third party adding fees we are scared of, it&#39;s a direct party to the&#xA;protocol!&#xA;&#xA;Sponsors or fee accounts would enable you to ensure the protocol you&#39;re&#xA;working on makes forward progress. For things like Eltoo the internal&#xA;ratchet makes this work well.&#xA;&#xA;Protocols which depend on in mempool replacements before confirmation&#xA;already must be happy (should they be secure) with any prior state being&#xA;mined. If a third party pays the fee you might even be happier since the&#xA;execution wasn&#39;t on your dime.&#xA;&#xA;Cheers,&#xA;&#xA;Jeremy&#xA;&#xA;On Wed, Feb 9, 2022, 10:59 PM Peter Todd via bitcoin-dev &lt;&#xA;bitcoin-dev at lists.linuxfoundation.org&gt; wrote:&#xA;&#xA;&gt; On Sat, Jan 01, 2022 at 12:04:00PM -0800, Jeremy via bitcoin-dev wrote:&#xA;&gt; &gt; Happy new years devs,&#xA;&gt; &gt;&#xA;&gt; &gt; I figured I would share some thoughts for conceptual review that have&#xA;&gt; been&#xA;&gt; &gt; bouncing around my head as an opportunity to clean up the fee paying&#xA;&gt; &gt; semantics in bitcoin &#34;for good&#34;. The design space is very wide on the&#xA;&gt; &gt; approach I&#39;ll share, so below is just a sketch of how it could work which&#xA;&gt; &gt; I&#39;m sure could be improved greatly.&#xA;&gt; &gt;&#xA;&gt; &gt; Transaction fees are an integral part of bitcoin.&#xA;&gt; &gt;&#xA;&gt; &gt; However, due to quirks of Bitcoin&#39;s transaction design, fees are a part&#xA;&gt; of&#xA;&gt; &gt; the transactions that they occur in.&#xA;&gt; &gt;&#xA;&gt; &gt; While this works in a &#34;Bitcoin 1.0&#34; world, where all transactions are&#xA;&gt; &gt; simple on-chain transfers, real world use of Bitcoin requires support for&#xA;&gt; &gt; things like Fee Bumping stuck transactions, DoS resistant Payment&#xA;&gt; Channels,&#xA;&gt; &gt; and other long lived Smart Contracts that can&#39;t predict future fee rates.&#xA;&gt; &gt; Having the fees paid in band makes writing these contracts much more&#xA;&gt; &gt; difficult as you can&#39;t merely express the logic you want for the&#xA;&gt; &gt; transaction, but also the fees.&#xA;&gt; &gt;&#xA;&gt; &gt; Previously, I proposed a special type of transaction called a &#34;Sponsor&#34;&#xA;&gt; &gt; which has some special consensus + mempool rules to allow arbitrarily&#xA;&gt; &gt; appending fees to a transaction to bump it up in the mempool.&#xA;&gt; &gt;&#xA;&gt; &gt; As an alternative, we could establish an account system in Bitcoin as an&#xA;&gt; &gt; &#34;extension block&#34;.&#xA;&gt;&#xA;&gt; &lt;snip&gt;&#xA;&gt;&#xA;&gt; &gt; This type of design works really well for channels because the addition&#xA;&gt; of&#xA;&gt; &gt; fees to e.g. a channel state does not require any sort of pre-planning&#xA;&gt; &gt; (e.g. anchors) or transaction flexibility (SIGHASH flags). This sort of&#xA;&gt; &gt; design is naturally immune to pinning issues since you could offer to&#xA;&gt; pay a&#xA;&gt; &gt; fee for any TXID and the number of fee adding offers does not need to be&#xA;&gt; &gt; restricted in the same way the descendant transactions would need to be.&#xA;&gt;&#xA;&gt; So it&#39;s important to recognize that fee accounts introduce their own kind&#xA;&gt; of&#xA;&gt; transaction pinning attacks: third parties would be able to attach&#xA;&gt; arbitrary&#xA;&gt; fees to any transaction without permission. This isn&#39;t necessarily a good&#xA;&gt; thing: I don&#39;t want third parties to be able to grief my transaction&#xA;&gt; engines by&#xA;&gt; getting obsolete transactions confirmed in liu of the replacments I&#xA;&gt; actually&#xA;&gt; want confirmed. Eg a third party could mess up OpenTimestamps calendars at&#xA;&gt; relatively low cost by delaying the mining of timestamp txs.&#xA;&gt;&#xA;&gt; Of course, there&#39;s an obvious way to fix this: allow transactions to&#xA;&gt; designate&#xA;&gt; a pubkey allowed to add further transaction fees if required. Which Bitcoin&#xA;&gt; already has in two forms: Replace-by-Fee and Child Pays for Parent.&#xA;&gt;&#xA;&gt; --&#xA;&gt; https://petertodd.org &#39;peter&#39;[:-1]@petertodd.org&#xA;&gt; _______________________________________________&#xA;&gt; bitcoin-dev mailing list&#xA;&gt; bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20220210/bfed4525/attachment.html&gt;</html></oembed>