<oembed><type>rich</type><version>1.0</version><title>Lloyd Fournier [ARCHIVE] wrote</title><author_name>Lloyd Fournier [ARCHIVE] (npub1kh…y05yp)</author_name><author_url>https://yabu.me/npub1khlhcuz0jrjwa0ayznq2q9agg4zvxfvx5x7jljrvwnpfzngrcf0q7y05yp</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2021-01-14&#xA;📝 Original message:&#xA;On Wed, Jan 13, 2021 at 11:54 AM Rusty Russell &lt;rusty at rustcorp.com.au&gt;&#xA;wrote:&#xA;&#xA;&gt; Lloyd Fournier &lt;lloyd.fourn at gmail.com&gt; writes:&#xA;&gt; &gt; Rusty, Zman,&#xA;&gt; &gt;&#xA;&gt; &gt; A concern I have with only doing one signaling transaction out of the&#xA;&gt; whole&#xA;&gt; &gt; group of inputs is that it means you don&#39;t prove ownership of the other&#xA;&gt; &gt; inputs.&#xA;&gt;&#xA;&gt; But that&#39;s by design.  You can contact two peers and middleman between&#xA;&gt; them to produce a single tx.&#xA;&gt;&#xA;&#xA;Ah. I missed this motivation. So you actually want to have sessions where&#xA;you use the same signaling transaction in all of them. That&#39;s a cool idea.&#xA;&#xA;&gt;&#xA;&gt; The practical problem with a signalling tx is that it&#39;s hard to tell if&#xA;&gt; it&#39;s conflicting.  Mallory uses a single UTXO to probe for everyone&#39;s&#xA;&gt; UTXO at once.  Poor Bob wants to both wait 60 seconds to see if a&#xA;&gt; conflicting tx ends up in his mempool, *and* broadcast it ASAP to signal&#xA;&gt; to others.  He wants to do both of these *before* revealing his own&#xA;&gt; UTXOs.&#xA;&gt;&#xA;&gt;&#xA;I think this is a problem with all three schemes I mentioned. You will&#xA;always have to wait for things to be gossiped in some way to catch attempts&#xA;at parallel sessions.&#xA;Of course there could be faster mediums than the mempool but it does seem a&#xA;convenient one to use.&#xA;Note that you should not wait a predictable amount of time but rather a&#xA;randomly sampled amount from e.g. 0-60 seconds (or longer). If everyone is&#xA;waiting the same predictable amount of time it does nothing to protect you.&#xA;&#xA;But the &#34;middleman&#34; idea you mentioned above makes this all the more&#xA;complicated: If you are meant to have parallel sessions then this is a&#xA;problem for an honest Alice who initiates a funding with Bob and Carol.&#xA;Bob decides to wait 24s and Carol decides to wait 55s to check the mempool&#xA;for the signaling before revealing their utxos. After Bob wakes up from his&#xA;24s he will add his own utxos and demand that Alice complete the&#xA;transaction by signing it. But since Alice is trying to also add Carol&#39;s&#xA;UTXOs to the transaction she will have to wait until Carol becomes&#xA;responsive again. To Bob this will look like Alice has become unresponsive&#xA;through no fault of her own and Bob will broadcast the signaling tx.&#xA;&#xA;In other words, if parallel sessions are legal then you shouldn&#39;t try and&#xA;catch parallel sessions. But if parallel sessions are legal there will&#xA;always be an effective dual funding UTXO discovery attack by using one UTXO&#xA;to hit many targets. I think this is true for all three schemes I mentioned.&#xA;&#xA;It seems the really difficult question is: is it even worth trying to stop&#xA;sequential attacks if parallel attacks are unstoppable?&#xA;&#xA;Not sure how to square this, but I do prefer this approach over PoDLE.&#xA;&gt;&#xA;&#xA;I think PoDLE might actually have an advantage in parallel attacks if the&#xA;scheme was changed a bit. A weakness of the lightning proposal as compared&#xA;to the joinmarket idea is that the `h2` point is not broadcast immediately&#xA;-- rather you wait for failure and then broadcast it.  Instead, a peer&#xA;should broadcast h2 as soon as they have agreed to create a transaction&#xA;with the initiator. Then if at any time during the tx creation protocol&#xA;they receive the same h2 from someone else, they cancel and don&#39;t reveal&#xA;their UTXOs (let&#39;s say they wait ~10s after broadcasting before revealing&#xA;any utxos). Note that here you don&#39;t have to randomly select the time you&#xA;wait.&#xA;&#xA;There are several (perhaps addressable) downsides to this scheme but it at&#xA;least has better protection against parallel attacks than the others.&#xA;Since it is effective it would also break the &#34;middleman&#34; idea unless Alice&#xA;funds with two utxos (a different h2 for each party) or there is some way&#xA;for all parties involved in the funding to distinguish gossiped h2s from&#xA;their funding session from others.&#xA;&#xA;Cheers,&#xA;&#xA;LL&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20210115/db7150a5/attachment.html&gt;</html></oembed>