Lightning Network – "HTLCs do not work for micropayments"?

It takes about 200 vbytes to spend on a Lightning Network (LN) Hashed network
Exit of fixed-term contract (HTLC) used for the routing of a payment. Failing
minimum feerate of 10 nBTC / vbyte, this makes it uneconomical to try to
claim a micropayment of less than about 2,000 nTCB (US $ 0.008 to US $ 4,000)
USD / BTC). As fees increase, growing micropayments become unprofitable.

Even worse, the default strategy of Bitcoin Core mempool tries to prevent UTXO-set
bloating attacks by refusing to relay or exploit any transaction containing an output
it would not be profitable to spend at a rate of 30 nBTC / vbyte. C & # 39;
called it dust limit. To meet this limit, LN nodes must not include any HTLC code.
for very small micropayments in LN's off-line transactions – otherwise the
transactions can not be confirmed on the chain if necessary and another value in the
channel could be stolen by a counterpart.

Currently, when LN nodes are prompted to route payments below the dust limit, they
cut these HTLCs by increasing
the potential transaction costs of their channel by the amount of
micropayment rather than adding an HTLC. These fees really only pay the minors if
the chain is closed in a state that includes these charges — by mutual agreement
between channel counterparties, fees may be removed later. This
creates three possible outcomes:

  1. Tax is removed later because both peers agree that
    micropayment successfully carried out, the amount is transferred to a
    normal size output not subject to dust limit.

  2. Tax is removed later because both peers agree that
    the micropayment failed (the rejection was rejected or the deadline expired). The earlier
    state where the funds were held in a larger production is restored.

  3. The two peers argue over the payment and close the door.
    channel. In this case, the funds are actually transferred to minors and are
    lost to whatever part of the channel was technically correct on the final
    payment status.

Peter Rizun has
arguing that, combined with rising Bitcoin transaction fees, this may lead to "the problem that even $ 50 payments are not" unsecured. "In the event that $ 50 is below the threshold of dust […]therefore, HTLCs can not be used to protect the payment of $ 50. Customers can lose payments of $ 50 without their fault. "

It seems that he may be right, even if there are some possible escapes.
to do on the current behavior of the network:

  1. The amounts involved are currently minimal (approximately $ 0.02 to $ 4,000 / BTC).

  2. Node operators who want to eliminate their risk may simply refuse to route
    micropayments below the dust limit.

  3. People willing to accept a limited risk may limit their maximum exposure (eg.
    send up to 10 payments below $ 0.02 for a maximum risk of $ 0.20).

However, what we really want is a fundamental solution to this risk – a way to
even micropayments without trust. Fortunately, the person mentioned in
question — Thaddeus Dryja (one of the original LN architects) — previously
how that could be accomplished.

Remove the confidence of inexpressible values

Above we have described micropayments below the dust limit, which is a relay and
mining policy (which means that it can be changed without requiring a global consensus).
However, LN also allows micropayments up to 10 pBTC, which represents 1 / 1000th of the
maximum accuracy of 10 nBTC imposed by bitcoin consensus chain.

When a channel contains a value that can not be represented on the chain, the
the remaining value is tracked in a database and LN commitments are taken using
round. For example, if 6 nBTC are paid from Alice's side of a channel for
On Bob's side, she could even send him 10 nBTC as part of an off-channel transaction, and the
4 additional nBTCs are tracked in a database to be credited for future payments. If the channel is closed at this time
Alice agrees that she will lose those 4 nBTCs ($ 0.00002 to
USD 4,000 / BTC).

Given the small amounts involved, this seems to be a perfectly satisfactory solution
Solution — Bob is unlikely to pay a transaction fee on 4,000 nBTC chain just
fly 4 nBTC to Alice. In LN's first presentations, Dryja proposed a
alternative technique based on something occasionally discussed between Bitcoin
protocol developers: probabilistic payments.

Probabilistic payments are payments that only achieve a specified percentage of
the weather. For example, Alice wants to pay Bob 1 nBTC, but it's smaller than
authorized by Bitcoin. Instead, she offers him a probabilistic payment of 10 nBTC
(the smallest Bitcoin allows it) with 1 chance out of 10. Nine times out of ten,
Bob gets nothing; once in ten, he gets 10 nBTC. If this is done with a reasonably accurate protocol and the distribution amounts are symmetrical with respect to probabilities (that is, there is no margin of safety), it is then it is reasonable to believe that receiving 10 nBTCs out of ten is equivalent to receiving 1 nBTC each time.

The exact mechanism described by Dryja is complicated and I do not know how much
he was examined for safety. A big problem faced by all the ideas for
probabilistic payments on Bitcoin is that they are difficult or impossible to
implement in the very limited scripting language of Bitcoin. Sidechains based on, like Blockstream Liquid, have reactivated some disabled people
mathematical opcodes of Bitcoin plus added a
that make probabilistic payments much easier to implement there (even though I am
not aware of specific work on a defined protocol). Maybe one day, these
opcodes or other similar features will be available on Bitcoin if it exists
request from the community for them.

Probabilistic payments to circumvent the dust limit

In the previous section, we saw probabilistic payments used to obtain without trust
around the minimum consensual precision of 10 nBTC. We can use the same
mechanism to bypass the dust limit without trust. If it is not profitable
pass an HTLC output is worth less than 10,000 nBTC, so we simply need
probabilistic payments for any amount less than that.

For example, Alice wants to send a payment of 1,000 nBTC via Bob. Bob
requires him to create an HTLC that pays him 10,000 nBTC with a one in 10 chance of
Success. Then the LN is processed. If Alice and Bob agree that this has failed, they throw the
HTLC. If both agree that it's a success, Alice simply adds 1,000 nBTC to a bigger one
Bob's exit, bypassing the dust limit. If they do not agree and the
transaction must remain in the chain, probabilistic payment is executed and new
every ten, Bob gets nothing (Alice gets her 10,000 nBTC). A
Once in ten, Bob receives 10,000 nBTC. This can be rendered completely devoid of trust, proven fairly and does not require any third parties.

As mentioned above, probabilistic payments currently represent a lot of work to
implement on Bitcoin and efficient use of them can rely on flexible forks that are
just ideas now. In addition, while transaction fees are low and Bitcoin valuations are
always make dust-size outputs worth a few cents, there is no real need to work
on complex solutions to the problem of people losing maybe a few cents — people who do not want this risk can simply disable the routing of payments below about $ 0.02. But if
it becomes a real problem, it is a problem that I think I can reasonably expect.
resolve in a completely untrusted way.

Addendum: an easier and less clever way to get around the dust limit

Several hours after the publication of the description above, I thought
there is an easier way to create trustless payments below the dust limit that
does not depend on untested probabilistic payments. If Alice wants to route a
Paying 1,000 nBTC through Bob, but the minimal economic chain HTLC is
10,000 nBTC, she and Bob simply create two off-line outputs at the same time:
Alice pays 11,000 nBTC to Alice and Bob 10,000 nBTC to Alice.
Both HTLCs use the same hashlock and timelock so that they can both succeed or expire at the same time.
at the same time. The net effect is a payment of 1,000 nBTC to Alice if the chain off
the payment must be settled on string, as well as the regular ability for them to agree on the result and to update their main balances in cooperation.

The disadvantages include that it requires that Alice and Bob keep
more balance in their side of a channel than they would otherwise do in order to
manage micro-payments and that it costs them more overall costs. This extra burden can be compensated by them
charge higher fees for the delivery of payments below the online economy rate.
This method also solves the problem completely without trust and
something that should not require significant research to implement, although
it may still be premature optimization while the current risk is measured
in penny.

(Probabilistic payments are still the only way I know to process payments
below the minimum precision on the 10 nBTC chain, but that's not the question here.)