<oembed><type>rich</type><version>1.0</version><author_name>npub1pj9022f74rzq7d5x7gnxje6wpsgk4r5jgeck8y5awd423ydhan3q7x22xp</author_name><author_url>https://nostr.ae/npub1pj9022f74rzq7d5x7gnxje6wpsgk4r5jgeck8y5awd423ydhan3q7x22xp</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-02-19&#xA;📝 Original message:&#xA;&gt; Necromancing might be a reasonable name for attacks that work by getting an&#xA;&gt; out-of-date version of a tx mined.&#xA;&#xA;It&#39;s not an &#34;attack&#34;? There is no such thing as an out-of-date transaction, if&#xA;you signed and broadcasted it in the first place. You can&#39;t rely on the fact that&#xA;a replacement transaction would somehow invalidate a previous version of it.&#xA;&#xA;------- Original Message -------&#xA;&#xA;Le samedi 19 février 2022 à 10:39 AM, Peter Todd &lt;pete at petertodd.org&gt; a écrit :&#xA;&#xA;&gt; On Fri, Feb 18, 2022 at 04:38:27PM -0800, Jeremy Rubin wrote:&#xA;&gt;&#xA;&gt; &gt; &gt; As I said, it&#39;s a new kind of pinning attack, distinct from other types&#xA;&gt; &gt; &gt;&#xA;&gt; &gt; &gt; of pinning attack.&#xA;&gt; &gt;&#xA;&gt; &gt; I think pinning is &#34;formally defined&#34; as sequences of transactions which&#xA;&gt; &gt;&#xA;&gt; &gt; prevent or make it less likely for you to make any progress (in terms of&#xA;&gt; &gt;&#xA;&gt; &gt; units of computation proceeding).&#xA;&gt;&#xA;&gt; Mentioning &#34;computation&#34; when talking about transactions is misleading:&#xA;&gt;&#xA;&gt; blockchain transactions have nothing to do with computation.&#xA;&gt;&#xA;&gt; &gt; Something that only increases possibility to make progress cannot be&#xA;&gt; &gt;&#xA;&gt; &gt; pinning.&#xA;&gt;&#xA;&gt; It is incorrect to say that all use-cases have the property that any version of&#xA;&gt;&#xA;&gt; a transaction being mined is progress.&#xA;&gt;&#xA;&gt; &gt; If you want to call it something else, with a negative connotation, maybe&#xA;&gt; &gt;&#xA;&gt; &gt; call it &#34;necromancing&#34; (bringing back txns that would otherwise be&#xA;&gt; &gt;&#xA;&gt; &gt; feerate/fee irrational).&#xA;&gt;&#xA;&gt; Necromancing might be a reasonable name for attacks that work by getting an&#xA;&gt;&#xA;&gt; out-of-date version of a tx mined.&#xA;&gt;&#xA;&gt; &gt; In particular, for the use case you mentioned &#34;Eg a third party could mess&#xA;&gt; &gt;&#xA;&gt; &gt; up OpenTimestamps calendars at relatively low cost by delaying the mining&#xA;&gt; &gt;&#xA;&gt; &gt; of timestamp txs.&#34;, this is incorrect. A third party can only accelerate&#xA;&gt; &gt;&#xA;&gt; &gt; the mining on the timestamp transactions, but they can accelerate the&#xA;&gt; &gt;&#xA;&gt; &gt; mining of any such timestamp transaction. If you have a single output chain&#xA;&gt; &gt;&#xA;&gt; &gt; that you&#39;re RBF&#39;ing per block, then at most they can cause you to shift the&#xA;&gt; &gt;&#xA;&gt; &gt; calendar commits forward one block. But again, they cannot pin you. If you&#xA;&gt; &gt;&#xA;&gt; &gt; want to shift it back one block earlier, just offer a higher fee for the&#xA;&gt; &gt;&#xA;&gt; &gt; later RBF&#39;d calendar. Thus the interference is limited by how much you wish&#xA;&gt; &gt;&#xA;&gt; &gt; to pay to guarantee your commitment is in this block as opposed to the next.&#xA;&gt;&#xA;&gt; Your understanding of how OpenTimestamps calendars work appears to be&#xA;&gt;&#xA;&gt; incorrect. There is no chain of unconfirmed transactions. Rather, OTS calendars&#xA;&gt;&#xA;&gt; use RBF to update the timestamp tx with a new merkle tip hash for to all&#xA;&gt;&#xA;&gt; outstanding per-second commitments once per new block. In high fee situations&#xA;&gt;&#xA;&gt; it&#39;s normal for there to be dozens of versions of that same tx, each with a&#xA;&gt;&#xA;&gt; slightly higher feerate.&#xA;&gt;&#xA;&gt; OTS calendars can handle any of those versions getting mined. But older&#xA;&gt;&#xA;&gt; versions getting mined wastes money, as the remaining commitments still need to&#xA;&gt;&#xA;&gt; get mined in a subsequent transaction. Those remaining commitments are also&#xA;&gt;&#xA;&gt; delayed by the time it takes for the next tx to get mined.&#xA;&gt;&#xA;&gt; There are many use-cases beyond OTS with this issue. For example, some entities&#xA;&gt;&#xA;&gt; use &#34;in-place&#34; replacement for update low-time-preference settlement&#xA;&gt;&#xA;&gt; transactions by adding new txouts and updating existing ones. Older versions of&#xA;&gt;&#xA;&gt; those settlement transactions getting mined rather than the newer version&#xA;&gt;&#xA;&gt; wastes money and delays settlement for the exact same reason it does in OTS.&#xA;&gt;&#xA;&gt; If fee accounts or any similar mechanism get implemented, they absolutely&#xA;&gt;&#xA;&gt; should be opt-in. Obviously, using a currently non-standard nVersion bit is a&#xA;&gt;&#xA;&gt; possible approach. Conversely, with CPFP it may be desirable in the settlement&#xA;&gt;&#xA;&gt; case to be able to prevent outputs from being spent in the same block. Again,&#xA;&gt;&#xA;&gt; an nVersion bit is a possible approach.&#xA;&gt;&#xA;&gt; &gt; By the way, you can already do out-of-band transaction fees to a very&#xA;&gt; &gt;&#xA;&gt; &gt; similar effect, google &#34;BTC transaction accelerator&#34;. If the attack were at&#xA;&gt; &gt;&#xA;&gt; &gt; all valuable to perform, it could happen today.&#xA;&gt;&#xA;&gt; I just checked: all the BTC transaction accellerator services I could find look&#xA;&gt;&#xA;&gt; to be either scams, or very expensive. We need compelling reasons to make this&#xA;&gt;&#xA;&gt; nuisance attack significantly cheaper.&#xA;&gt;&#xA;&gt; &gt; Lastly, if you do get &#34;necromanced&#34; on an earlier RBF&#39;d transaction by a&#xA;&gt; &gt;&#xA;&gt; &gt; third party for OTS, you should be relatively happy because it cost you&#xA;&gt; &gt;&#xA;&gt; &gt; less fees overall, since the undoing of your later RBF surely returned some&#xA;&gt; &gt;&#xA;&gt; &gt; satoshis to your wallet.&#xA;&gt;&#xA;&gt; As I said above, no it doesn&#39;t.&#xA;&gt;&#xA;&gt; ----------------------------------&#xA;&gt;&#xA;&gt; https://petertodd.org &#39;peter&#39;[:-1]@petertodd.org&#xA;&gt;&#xA;&gt; Lightning-dev mailing list&#xA;&gt;&#xA;&gt; Lightning-dev at lists.linuxfoundation.org&#xA;&gt;&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev</html></oembed>