It seems like the router in this case is essentially short a straddle on the BTC vs. WJT exchange rate with almost 0 premium. One way for the router to hedge this is to be long an equivalent straddle by constructing their own cross-chain payment to themselves with some other node, for the same amount.
This obviously can't scale to all participants, but can possibly provide a hedge for a single node. On Thu, Dec 27, 2018 at 1:33 PM Tamas Blummer <tamas.blum...@gmail.com> wrote: > ZmnSCPxj, > > Brilliant reasoning. I sum it up to make it more accessible: > > Failing to route on purpose can be used to opt out of a previously agreed > exchange of two differents assets. > A rational actor will opt out if the exchange is no longer fair. Anyone > who grants an option for free heads financial disaster. > > This is not an issue for same asset exchange, as in payment routing, since > the exchange remains fair at any later time point. > > Although there is no escape from above reasoning, a market maker could > still be profitable as long as the option is worth less than the bid-ask > spread. > Therefore the issue does not mean that LN cross asset exchange is not > feasible, but that there is lower bound on bid-ask spread, that of the > option premium. > > Tamas Blummer > > > > On Dec 27, 2018, at 06:43, ZmnSCPxj via Lightning-dev < > lightning-dev@lists.linuxfoundation.org> wrote: > > > > HTLCs as American Call Option, or, How Lightning Currently Cannot Work > Across Assets, or, An Argument For Single-Asset Lightning Network > > > > Introduction > > ============ > > > > In theory, the Lightning Network could potentially perform "seamless" > currency conversions, allowing a payer to spend one currency to pay a payee > requesting for another currency. > > However, a significant technical barrier prevents implementation of such > feature as of current designs (late 2018) for Lightning. > > > > The root cause of this significant technical barrier is the use of > hashlocked timelocked contracts to route payments. > > HTLCs can be used across cryptocurrency systems to transfer value > between them. > > From this point-of-view, every single Lightning Network channel is a > cryptocurrency system whose custodians are two entities, who are the only > entities who can use the system (the single Lightning Network channel). > > HTLCs allow cross-system trades to be performed, so that participation > on any single Lightning Network channel can be leveraged to participation > over the entire Lightning Network. > > > > However, HTLCs can also be used to construct American Call Options. > > Further, due to UX concerns, on the Lightning Network, there is no cost > incurred in merely setting up HTLCs for routing. > > By using the low-level HTLCs provided as primitives by Lightning > Network, one can set up American Call Options. > > These on-Lightning American Call Options, however, can be "purchased" > for free (gratis), thus potentially earning money in a completely risk-free > manner. > > Abusing this gratis ability means that any Lightning Network node > advertising cross-asset on-Lightning exchange will find large amounts of > its liquidity tied up in stalled forwarding payments (in reality, American > Call Options) with a risk of monetary loss in case of large fluctuations in > exchange rate. > > > > Hashlocked Timelocked Contracts as American Call Options > > ======================================================== > > > > An American CallOption is a right (but not obligation) to purchase an > asset at a specific price, on or before an expiration date. > > HTLCs allow building American Call Options. > > > > Suppose we have Bitcoin, and some other asset, and both are on > blockchains that support the same hash function and can define HTLCs. > > It is unimportant if both are on the same blockchain, or on different > blockchains, since HTLCs can work across cryptocurrency systems. > > > > An American Call Option has these properties: > > > > 1. `P` = the price at which the asset can be purchased. > > 2. `E` = the date at which the option expires. > > > > Suppose I, ZmnSCPxj, wanted to sell you an American Call Option for 1 > Widget (WJT) on the WJT blockchain. > > We would then do the below ritual: > > > > 1. You provide me a hash of some secret preimage that only you know. > > 2. You make an HTLC on the Bitcoin blockchain. > > The value of this HTLC is `P`, the hash is the hash you gave above, > and the timelock is `E` + 1 day. > > 3. I make an HTLC on the WJT blockchain. > > The value of this HTLC is 1, the hash is the hash you gave, and the > timelock is `E`. > > > > On or before `E`, you can claim the WJT on the WJT blockchain by > providing a transaction that reveals the preimage. > > Since the preimage is now revealed, I can then claim the Bitcoins of > price `P` on the Bitcoin blockchain. > > Alternately, you can simply not exercise this right, and at time `E` I > would then reclaim my WJT, and at time `E` + 1 day you would reclaim your > bitcoins. > > > > Of course, I want to *sell* this contract to you, so you would have to > pay me some bitcoins before we set up the above. > > A multi-stage construction of transactions that go through HTLC-like > constructs can be done on both blockchains to ensure that the above > contracts appear on both chains only if the payment for the actual contract > (i.e. the "premium") is done, and to enforce that both contracts appear if > the premium is paid, but that is beyond the scope of *this* writeup, which > will focus on how Lightning Network HTLCs can form the above construction > without any premium being paid. > > > > HTLCs For Routing > > ================= > > > > HTLCs can be used to enforce trades across different cryptocurrency > systems. > > This property is used to allow routing of payments across different > channels. > > Each channel is its own cryptocurrency system. > > > > Suppose I, ZmnSCPxj, am an intermediate node on Lightning, and I wanted > to sell you my service of facilitating payments on Lightning. > > Suppose you want to pay to somebody, who, for the sake of convenience, > we shall randomly call YAIjbOJA. > > As it happens, I have a channel with you, and a channel with YAIjbOJa. > > > > You need to pay YAIjbOJA `P` bitcoins. > > We then perform the below ritual: > > > > 1. YAIjbOJA provides you a hash, whose preimage only YAIjbOJA knows. > > 2. On your channel with me, you set up an HTLC. > > The value is `P`+1 bitcoin (the 1 being my fee), the hash is the hash > you were given, and the timelock is 2 days from now. > > 3. On my channel with YAIjbOJA, I set up an HTLC. > > The value is `P`, the hash is the same hash as above, and the > timelock is 1 day from now. > > > > (in reality, the timelocks are parameterized and selected by the payer > (you), and LN nodes will impose some "reasonable" limits on the timelocks; > but the first HTLCs set up must have longer timelocks than the later HTLCs) > > > > Afterward, YAIjbOJA may claim, or may not claim, the money in the HTLC > by releasing (or not releasing) the hash to me. > > If YAIjbOJA claims the money, then I can take the hash and claim the > money, plus fee, from you. > > If not, then this is a payment failure and I will then cancel the HTLC > you offered using standard Lightning Network primitives. > > > > In general, we expect that YAIjbOJA wants to have the money because > every randomly-generated imaginary entity likes money. > > Thus, in the case of payments, YAIjbOJA has a strong incentive to claim > the money without waiting for the timelock to expire or nearly expire. > > We can see that in practice, on the current Lightning Network, HTLCs are > often very transient and will be quickly claimed, despite having long > timelocks. > > > > This speed may mislead us into thinking that such convenience may be > possible across different assets. > > > > Cross-Asset Lightning Nodes Offer Premium-Free American Call Options > > ==================================================================== > > > > Suppose that Lightning Network supports multiple assets. > > Each channel has a single asset. > > Some nodes will advertise themselves as providing exchange capability, > taking one asset on one channel and exchanging it for another asset on a > different channel. > > > > Suppose I advertise myself as such an exchange. > > Suppose you want to pay to YAIjbOJA for 1 WJT, but have no WJT on hand > to pay YAIjbOJA, only bitcoins. > > As it happens, I have a bitcoin channel with you and a WJT channel with > YAIjbOJA. > > I advertise myself as exchanging `P` bitcoins for 1 WJT as of the > current time. > > > > Further suppose that in reality, YAIjbOJA is *you*, random Internet > person reading my thoughts. > > > > You, your fake persona YAIjbOJA, and me, then perform the following > ritual: > > > > 1. YAIjbOJA (really you) provides you with a hash whose preimage only > YAIjbOJA (actually you) know. (i.e. you just make it up) > > 2. On the bitcoin channel with me, you set up an HTLC. > > The value is `P`+1 bitcoin (the 1 being my fee), the hash is the hash > that "YAIjbOJA" gave you (i.e. you really just made it up), and the > timelock is 2 days from now. > > 3. On the WJT channel with YAIjbOJA (really you), I set up an HTLC. > > The value is 1 WJT, the hash is the hash you gave me, and the > timelock is 1 day from now. > > > > The above is now the same as the setup for an American Call Option with > expiration of 1 day from now. > > Further, within certain limits, you can set up the expiration of the > American Call Option to be longer or shorter. > > Thus, I have inadvertently given you an American Call Option, for *no > premium* (completely gratis), when my only intent was to facilitate > cross-currency Lightning Network payments. > > > > Suppose that the price of 1 WJT rises far above the price of `P`+1 > bitcoins before the expiration (1 day from now). > > In such a case, "YAIjbOJA" (really you) will then release the hash and > acquire the 1 WJT. > > You then close this channel and claim the WJT onchain, then sell it > immediately to earn more than the `P`+1 bitcoins you paid. > > Alternatively, presumably I would have a new exchange rate I would be > willing to exchange WJT for, and you can just send the WJT with the new > exchange rate immediately over the Lightning Network. > > > > Suppose that the price of WJT does not rise. > > Since this is an option and *not* a future, "YAIjbOJA" (really you) will > simply claim that the payment errored somewhere and cancel the HTLCs. > > Since even payment errors are not unwrappable and are onion-wrapped, I > cannot determine whether the payment really errored, or you were just > setting up an American Call Option that you have now decided not to > exercise. > > > > Premium-free American Call Options Are Risk-free Earning Pumps > > ============================================================== > > > > Traditionally, options are analyzed assuming that the option itself has > a price, the premium. > > This premium is the risk of the user of the option. > > If the user of the option does not exercise the option before the > expiration, then the premium is a pure loss of the user. > > > > However, the above setup does not involve any payment when the option is > not exercised. > > Payment failures are "free" (gratis) on the Lightning Network. > > However, payment failures are also the non-exercised branch of the > American Call Option that can be set up on a cross-currency on-Lightning > exchange. > > > > Because the American Call Option is premium-free, even if the expiration > is very near, rational entities will still construct such options. > > Extreme volatility may occur in short time frames, especially in the > realm of digital assets. > > > > Thus, it is strongly likely that, if cross-asset exchange nodes on > Lightning Network exist, they will be exploited to create risk-free > American Call Options. > > They will find that significant liquidity will be tied up in such > American Call Options, and find that they will lose funds especially at > times of volatility. > > > > We can try to mitigate this, but the solutions below all have > significant drawbacks. > > > > 1. We could force that setting up the HTLCs requires payment. > > This forces the above American Call Options to have a premium. > > The effect, however, is that routing failure is not free. > > The current Lightning Network works despite not everyone publishing > the balances of channels, precisely because routing failure is free. > > We only need to have one route succeed in order to actually > successfully pay to the payee. > > With non-free routing failure, we cannot try many routes until one > succeeds. > > * Suppose we limited this only to cross-asset exchanges. > > It would still require accurate knowledge of channel balances. > > This is because if a payment fails on a hop *after* the exchange, > the payer still loses money from that attempt to the exchange node. > > 2. Exchange nodes could increase their fees. > > This would create a wider "spread" of buying and selling assets. > > This spread would increase friction in crossing assets. > > Also, this would only reduce risk; if the exchange rate is volatile > enough, then the option could still be exercised for riskless earnings. > > Rational entities will still tie up most of the liquidity on the > exchange on riskless American Call Options; even if the exchange rate is > very stable, they lose nothing. > > 3. Exchange nodes could limit the timelock of cross-asset swaps. > > This would increase friction in crossing assets, since a timelock > limit also imposes a limit to the route length. > > If one asset is much stronger than the other, then the weaker asset > will find its part of the Lightning Network to be strongly centralized > around the exchanges between the two assets. > > Payees of the weaker asset will strongly prefer to be at most one hop > away from exchanges in order to viably receive payments from payers who are > using the stronger asset. > > Again, rational entities will also still tie up most of the liquidity > on the exchange on riskless American Call Options; again, even if the > exchange rate is very stable in short time frames, they lose nothing anyway. > > > > Conclusion > > ========== > > > > HTLCs allow creation of American Call Options. > > The same HTLCs are used in Lightning Network to route across channels. > > If using a single asset, there is no issue related to time. > > Regardless of the value of bitcoin relative to any other asset, in the > future, 1 BTC is 1 BTC. > > > > However, across assets, the ability of HTLCs to create American Call > Options becomes troublesome. > > These can then be exploited to earn money from exercise of the option. > > Further, because Lightning UX would be degraded otherwise, payment > failures are free (gratis), leading to the American Call Options also being > free of premium. > > This means that creating such options would be riskless, allowing > potential earnings upon any strong volatility of exchange rates. > > > > This implies that a multi-asset Lightning Network may not be > economically viable. > > Instead, Lightning Network would strongly prefer having a single asset > across the network. > > > > _______________________________________________ > > Lightning-dev mailing list > > Lightning-dev@lists.linuxfoundation.org > > https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev > > _______________________________________________ > Lightning-dev mailing list > Lightning-dev@lists.linuxfoundation.org > https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev >
_______________________________________________ Lightning-dev mailing list Lightning-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev