<div dir="ltr">Hello ZmnSCPxj,<div><br></div><div>&gt; Do you mean, that if you make a swap on Lightning, which *might* be a Bitcoin-to-WJT American Call Option, I will refuse to forward until I also get something that is a WJT-to-Bitcoin call option, similar to a butterfly spread?</div>&gt; That implies that in the &quot;normal&quot;, non-American-call-option case, the payer has the target asset, which brings up the question: why would the payer even go through the cross-asset broker in a Lightning route if the payer already has the target asset?<div><br></div><div>No this isn&#39;t what I&#39;m suggesting. Let me try to explain again. Apologies if this isn&#39;t clear:</div><div><br></div><div>Let&#39;s assume only two parties are engaging in this interaction, you and me. You offer me the WJT/BTC exchange rate from your mult-chain node and I route an LN payment from my BTC node to my WJT node through your multi-chain node. My understanding is that the main problem with this is the free optionality I get when my WJT node does not return the hash preimage immediately to you and instead waits to see if the market price fluctuates out of my favor until option/HTLC expiry. But what if we could atomically swap this preimage for the final HTLC you sent me? If this magical atomic information swap could happen (I don&#39;t get the final HTLC unless I reveal the preimage) the payment would settle immediately (in the two party case, let&#39;s assume no other intermediary nodes). A timed commitment approach could potentially be feasible if the time required to brute force the commitment is longer than the life of the &quot;option&quot;/HTLC. I&#39;m not necessarily suggesting this the optimal solution, but I haven&#39;t seen the idea mentioned before.</div><div><br></div><div>-Alex</div><div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Dec 27, 2018 at 2:01 PM ZmnSCPxj &lt;<a href="mailto:ZmnSCPxj@protonmail.com">ZmnSCPxj@protonmail.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Good morning Alex and Will,<br>
<br>
&gt; 1. Cross-asset brokers charge a standard option premium to perform the brokerage. I can&#39;t tell if you think this is totally broken or if it&#39;s just sad. I don&#39;t understand lightning well enough to figure that out on my own - could you expand more on what effects this would have?<br>
<br>
It is quite broken.<br>
We assume generally that if a payment route fails, that the payer making the payment route loses nothing.<br>
<br>
Unfortunately, once there is a premium involved for cross-asset swaps, it implies that any failures *after* the swap will now have a cost, specifically, the premium paid.<br>
Perhaps you could inform the cross-asset broker who the ultimate payee is so it can retry failures after it on your behalf, but now the broker has the ability to censor payments to payees it does not like.<br>
<br>
&gt; 2. Cross-asset brokers require counterparties to issue them a symmetric but slightly more out-of-the-money call, which they can redeem in the event of a large FX swing. This bounds their FX losses.<br>
<br>
I am uncertain what you mean exactly.<br>
<br>
Do you mean, that if you make a swap on Lightning, which *might* be a Bitcoin-to-WJT American Call Option, I will refuse to forward until I also get something that is a WJT-to-Bitcoin call option, similar to a butterfly spread?<br>
That implies that in the &quot;normal&quot;, non-American-call-option case, the payer has the target asset, which brings up the question: why would the payer even go through the cross-asset broker in a Lightning route if the payer already has the target asset?<br>
<br>
<br>
&gt; There’s another potential partial solution here if we can create some cryptographic protocol for atomically swapping information. This would be used to swap the final HTLC sig for the hash preimage, preventing the optionality issue. This idea was inspired by a paper called “Timed Commitments” by Dan Boneh <br>
&gt; (<a href="https://www.iacr.org/archive/crypto2000/18800237/18800237.pdf" rel="noreferrer" target="_blank">https://www.iacr.org/archive/crypto2000/18800237/18800237.pdf</a>). <br>
&gt;<br>
&gt; The high level idea is that each party swaps a commitment to the information they want to atomically swap and then slowly reveal verifiable “hints” that make it easier and easier to brute force the commitment. Each party takes turns revealing a hint. <br>
&gt;<br>
&gt; The protocol to do something like this in lightning doesn’t exist afaik but it seems feasible. This also may fail to work when there are intermediary nodes not controlled by the two trading parties. <br>
<br>
The entire point of using HTLCs in Lightning routing is to enforce that the final payee actually gets paid, or nobody along the route gets paid.<br>
>From my understanding of this, if this is used, then an intermediate node can try to brute force the preimage instead of actually bothering to forward payments or hints.<br>
<br>
Regards,<br>
ZmnSCPxj<br>
</blockquote></div>