<oembed><type>rich</type><version>1.0</version><title>Nadav Kohen [ARCHIVE] wrote</title><author_name>Nadav Kohen [ARCHIVE] (npub1ge…rtua0)</author_name><author_url>https://yabu.me/npub1geqdlge6ysz9qlq3w758422flnkgqklpu9veu80ehjprcd04ugyqkrtua0</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2020-04-02&#xA;📝 Original message:&#xA;Good morning ZmnSCPxj,&#xA;&#xA;&gt; The consideration is that much of the cost of a channel is with the setup&#xA;and teardown --- E could always just reopen the CE channel again later.&#xA;&gt; Thus, the cost that E bears in setting up EE and tearing down EE would be&#xA;still similar to the cost of losing CE and reestablishing it again.&#xA;&gt; Further, any amount it places in the EE channel would be an amount it&#xA;could have been using as liquidity on Lightning, but which it cannot use&#xA;for forwarding (because it is a channel to nowhere).&#xA;&gt; Ultimately, proof-of-closure is an economic mechanism, not an&#xA;information-theoretic one.&#xA;&#xA;Okay, I see what you mean now but I&#39;m still a bit worried due to the&#xA;following: although it is true that the same nominal penalty is incurred,&#xA;the real economic value for the attacker in channel E-E&#39; is significantly&#xA;less than that in A-E, which can be used for routing. As such, a rich&#xA;attacker who wishes to crowd out their competition might occasionally open&#xA;channels with themselves equal to the value needed to lock up a&#xA;competitor&#39;s channels, then do such a payment to themselves (with a high&#xA;&#34;hard&#34; locktime) and close their temporary channel, but still hold their&#xA;competitor&#39;s funds hostage, and still have enough liquidity in the channels&#xA;they didn&#39;t have to close in order to facilitate all routing that was done&#xA;by their competitor. Furthermore this route (for self-payment) could attack&#xA;multiple competitors at the same time (likely leaving some funds to all but&#xA;the least liquid competitor).&#xA;&#xA;I could be missing something, but it seems to me like the proposal to close&#xA;channels after a soft timeout unless non-cooperation can be proven upstream&#xA;adds a cost to the attacker of two on-chain transactions, which they can&#xA;immediately revoke (as they know both pieces to the revocation priv key),&#xA;but still allows very long lock-ups of other&#39;s funds (with a 10x multiplier&#xA;if they choose a long route). I do think that this is certainly an&#xA;improvement on what we have now but I&#39;m not sure it properly punishes the&#xA;attacker in its current form.&#xA;&#xA;&gt; Since this is a proof-of-***closure***, this is indeed an actual closing&#xA;of the channel.&#xA;&#xA;Ah I see, I was misunderstanding a couple things, but I get it now, makes&#xA;sense :)&#xA;&#xA;Best,&#xA;Nadav&#xA;&#xA;On Wed, Apr 1, 2020 at 7:43 PM ZmnSCPxj &lt;ZmnSCPxj at protonmail.com&gt; wrote:&#xA;&#xA;&gt; Good morning Nadav,&#xA;&gt;&#xA;&gt;&#xA;&gt; &gt; Love the idea! I have a couple questions though:&#xA;&gt; &gt;&#xA;&gt; &gt; I&#39;m not convinced that &#34;Purely Falsified Proof-Of-Closure&#34; aren&#39;t&#xA;&gt; effective. Consider a similar network to the one you described where we&#xA;&gt; have channels A - B - C and A - E - C but where we add a &#34;fake&#34; channel E -&#xA;&gt; E&#39;. Now if the attacker sets up a payment from E to E&#39; using the route E -&#xA;&gt; C - B - A - E - E&#39;, then the attacker can successfully lock up all of B&#39;s&#xA;&gt; channels (as is desirable to get rid of competition) and also generate a&#xA;&gt; false proof of closure for the E - E&#39; channel. Even if this false proof&#xA;&gt; (which is a commitment tx) ends up being published on chain, E has lost no&#xA;&gt; ability to route and has successfully made B unable to route between A and&#xA;&gt; C. If my understanding of the proposal is correct, and it may not be, then&#xA;&gt; the punishment for grieving payments is the threat of closing channels that&#xA;&gt; would benefit from the grieving attack. But adding a new channel on the end&#xA;&gt; to be closed seems to invalidate this punishment?&#xA;&gt;&#xA;&gt; The consideration is that much of the cost of a channel is with the setup&#xA;&gt; and teardown --- E could always just reopen the CE channel again later.&#xA;&gt; Thus, the cost that E bears in setting up EE and tearing down EE would be&#xA;&gt; still similar to the cost of losing CE and reestablishing it again.&#xA;&gt; Further, any amount it places in the EE channel would be an amount it&#xA;&gt; could have been using as liquidity on Lightning, but which it cannot use&#xA;&gt; for forwarding (because it is a channel to nowhere).&#xA;&gt; Ultimately, proof-of-closure is an economic mechanism, not an&#xA;&gt; information-theoretic one.&#xA;&gt;&#xA;&gt; So the mere existence of EE, to be later sacrificed, is enough punishment&#xA;&gt; on E.&#xA;&gt; I think.&#xA;&gt;&#xA;&gt; &gt;&#xA;&gt; &gt; A second question I have is if you think that it would be advisable to&#xA;&gt; use up-front payments (pay for attempt, not just success) on payments with&#xA;&gt; abnormally high soft timeouts? If all this works, this combination seems to&#xA;&gt; be a way to enable hodl invoices under the proof of closure proposal.&#xA;&gt;&#xA;&gt; Possibly, though this increases the complexity of the proposal even more.&#xA;&gt;&#xA;&gt; &gt;I just thought of a potentially more serious problem, at least for&#xA;&gt; Poon-Dryja channels, isn&#39;t it true that giving a proof of closure is&#xA;&gt; equivalent to actually closing the channel since once other parties have&#xA;&gt; copies of the fully signed commitment transaction, it cannot be safely&#xA;&gt; revoked since other parties now have the ability to publish an old state? I&#xA;&gt; might be missing something but this seems like a big problem.&#xA;&gt;&#xA;&gt; Since this is a proof-of-***closure***, this is indeed an actual closing&#xA;&gt; of the channel.&#xA;&gt; It would not be proof-of-closure if the channel was not being closed, but&#xA;&gt; proof-of-something-else.&#xA;&gt;&#xA;&gt; What is desired is simply that C can plausibly say &#34;I punished somebody&#xA;&gt; else by closing on them, please do not punish me for punishing them&#34;.&#xA;&gt;&#xA;&gt; Regards,&#xA;&gt; ZmnSCPxj&#xA;&gt;&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20200402/b6b6749a/attachment.html&gt;</html></oembed>