<oembed><type>rich</type><version>1.0</version><author_name>npub16dt55fpq3a8r6zpphd9xngxr46zzqs75gna9cj5vf8pknyv2d7equx4wrd</author_name><author_url>https://nostr.ae/npub16dt55fpq3a8r6zpphd9xngxr46zzqs75gna9cj5vf8pknyv2d7equx4wrd</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2020-06-19&#xA;📝 Original message:&#xA;On Fri, Jun 19, 2020 at 09:44:11AM +0200, Bastien TEINTURIER via Lightning-dev wrote:&#xA;&gt; The gist is here, and I&#39;d appreciate your feedback if I have wrongly&#xA;&gt; interpreted some of the ideas:&#xA;&gt; https://gist.github.com/t-bast/22320336e0816ca5578fdca4ad824d12&#xA;&#xA;Quoted text below is from the gist:&#xA;&#xA;&gt; The trick to protect against a malicious participant that broadcasts a&#xA;&gt; low-fee HTLC-success or Remote-HTLC-success transaction is that we can&#xA;&gt; always blindly do a CPFP carve-out on them; we know their txid&#xA;&#xA;I think you&#39;re assuming here that the attacker broadcast a particular&#xA;state.  However, in a channel which potentially had thousands of state&#xA;changes, you&#39;d have to broadcast a blind child for each previous state&#xA;(or at least each previous state that pays the attacker more than the&#xA;latest state).  That&#39;s potentially thousands of transactions times&#xA;potentially dozens of peers---not impossible, but it seems messy.&#xA;&#xA;I think there&#39;s a way to accomplish the same goal for less bandwidth and&#xA;zero fees.  The only way your Bitcoin peer will relay your blind child&#xA;is if it already has the parent transaction.  If it has the parent, you&#xA;can just request it using P2P getdata(type=&#39;tx&#39;, id=$txid).[1]  You can&#xA;batch multiple txid requests together (up to 50,000 IIRC) to minimize&#xA;overhead, making the average cost per txid a tiny bit over 36 bytes.&#xA;If you receive one of the transactions you request, you can extract the&#xA;preimage at no cost to yourself (except bandwidth).  If you don&#39;t&#xA;receive a transaction, then sending a blind child is hopeless&#xA;anyway---your peers won&#39;t relay it.&#xA;&#xA;Overall, it&#39;s hard for me to guess how effective your proposal would be&#xA;at defeating the attack.  I think the strongman argument for the attack&#xA;would be that the attacker will be able to perform a targeted relay of&#xA;their outdated state to just miners---everyone else on the network&#xA;will receive the counterparty&#39;s honest final-state close.  Unless the&#xA;counterparty happens to have a connection to a miner&#39;s node, the&#xA;counterparty will neither be able to CPFP fee bump nor use getdata to&#xA;retrieve the preimage.&#xA;&#xA;It seems to me it&#39;s practical for a motivated attacker to research which&#xA;IP addresses belong to miners so that they can target them, whereas&#xA;honest users won&#39;t practically be able to do that research (and, even if&#xA;they could, it would create a centralizing barrier to new miners&#xA;entering the market if users focused on maintaining connections to&#xA;previously-known miners).&#xA;&#xA;-Dave&#xA;&#xA;[1] You&#39;d have to be careful to not attempt the getdata too soon after&#xA;    you think the attacker broadcast their old state, but I think that&#xA;    only means waiting a single block, which you have to do anyway to&#xA;    see if the honest final-commitment transaction confirmed.  See&#xA;    https://github.com/bitcoin/bitcoin/pull/18861&#xA;&#xA;-------------- next part --------------&#xA;A non-text attachment was scrubbed...&#xA;Name: signature.asc&#xA;Type: application/pgp-signature&#xA;Size: 833 bytes&#xA;Desc: not available&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200619/09974bd2/attachment.sig&gt;</html></oembed>