<oembed><type>rich</type><version>1.0</version><author_name>npub1uyhgpz5nsfnvdlcqm3erjsdjasd9pdeaejeetwtkvumm6mp3ujlqxt9vwk</author_name><author_url>https://nostr.ae/npub1uyhgpz5nsfnvdlcqm3erjsdjasd9pdeaejeetwtkvumm6mp3ujlqxt9vwk</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2022-11-21&#xA;📝 Original message:&#xA;Dear Antoine and list,&#xA;&#xA;I think that another call to discuss jamming would be great. I would&#xA;suggest making it a repeating call every 2 weeks, starting from Monday the&#xA;28th at 7 pm UTC.&#xA;&#xA;Antoine - Thank you for your work!&#xA;I have a few questions to better understand the details.&#xA;&#xA;1. Are the tokens transferable between users? For example, if Ned is a&#xA;routing node, and Alice has some of their tokens, can she give these tokens&#xA;to Bob?&#xA;If yes - could this lead to the creation of a secondary market?&#xA;If no - will that slow down the transaction flow that a new node can send?&#xA;&#xA;2. Do you have a recommended policy for the creation of tokens and their&#xA;use? Ideally, there will be a policy that would mitigate both slow and&#xA;quick jamming, without harming usability too much.&#xA;&#xA;3. You write &#34;the reputation credentials to liquidity units translation can&#xA;be severed&#34; - does this mean that the value of the token changes? Is that&#xA;in the spirit of changing the fees in a channel?&#xA;If this is the case, can&#39;t a routing node &#34;trick&#34; a user into buying many&#xA;tokens and then bring the price up?&#xA;&#xA;4. How would these tokens work with blinded paths and other&#xA;privacy-preserving suggestions?&#xA;&#xA;Thanks again,&#xA;Clara&#xA;&#xA;On Sun, Nov 20, 2022 at 11:01 PM Antoine Riard &lt;antoine.riard at gmail.com&gt;&#xA;wrote:&#xA;&#xA;&gt; Hi LN Devs,&#xA;&gt;&#xA;&gt; tl;dr A formalization of a reputation-based scheme to solve channel&#xA;&gt; jamming is proposed. The system relies on &#34;credentials&#34; issued by routing&#xA;&gt; hops and requested to be attached to each HTLC forward request. The&#xA;&gt; &#34;credentials&#34; can be used by a reputation algorithm to reward/punish&#xA;&gt; payment senders and allocate channel liquidity resources efficiently. The&#xA;&gt; &#34;credentials&#34;  initial distribution can be bootstrapped leveraging one-time&#xA;&gt; upfront fees paid toward the routing hops. Afterwards, the &#34;credentials&#34;&#xA;&gt; subsequent distribution can rely on previous HTLC traffic.&#xA;&gt;&#xA;&gt; A protocol description can be found here, with few extensions already to&#xA;&gt; the BOLTs:&#xA;&gt;&#xA;&gt; https://github.com/lightning/bolts/pull/1043&#xA;&gt;&#xA;&gt; There is also a work-in-progress proof-of-concept in LDK (on top of our&#xA;&gt; coming soon^TM  HTLC intercepting API):&#xA;&gt;&#xA;&gt; https://github.com/lightningdevkit/rust-lightning/pull/1848&#xA;&gt;&#xA;&gt; This work builds on previous reputation-scheme research [0] [1]. It also&#xA;&gt; integrates the more recent proposals of upfront fees as a straightforward&#xA;&gt; mechanism to bootstrap the reputation system. Bootstrapping the system with&#xA;&gt; more economically cost-effective privacy-preserving UTXO ownership proofs&#xA;&gt; not only add another layer of engineering complexity, there is still a&#xA;&gt; proof size vs proof generation/validation trade-off to arbiter between ZKP&#xA;&gt; cryptosystems.&#xA;&gt;&#xA;&gt; Rather to seek for a game-theory equilibrium defined as a breakeven point&#xA;&gt; as in the latest unconditional fee research [2], this proposal aims to use&#xA;&gt; reputation credentials to allow HTLC traffic-shaping. This not only should&#xA;&gt; protect against jamming situations (either malicious&#xA;&gt; or spontaneous) but also allow active HTLC traffic-shaping, where a&#xA;&gt; routing hop can allow extended channel liquidity lockups based on&#xA;&gt; accumulated reputation (e.g for hold-invoices). This is also a reduced&#xA;&gt; overhead cost, as upfront fees are only paid at bootstrap, or when the HTLC&#xA;&gt; forward behavior can be qualified as &#34;whitewashing&#34; from the routing hop&#xA;&gt; viewpoint.&#xA;&gt;&#xA;&gt; It should be noted, this current reputation-credential architectural&#xA;&gt; framework assumes credentials distribution at the endpoint of the network.&#xA;&gt; However, the framework should be flexible enough for the credentials to be&#xA;&gt; harvested by the LSPs, and then distributed in a secondary fashion to their&#xA;&gt; spokes, when they need it, or even attached transparently thanks to&#xA;&gt; trampoline. So one design intuition, there is no strong attachment of the&#xA;&gt; reputation to the endpoint HTLC sender, even if the protocol is described&#xA;&gt; in a &#34;flat&#34; view for now.&#xA;&gt;&#xA;&gt; Let&#39;s evaluate quickly this mitigation proposal against a few criterias&#xA;&gt; emerged from recent research.&#xA;&gt;&#xA;&gt; The mitigation is effective, in the sense a routing hop can apply a&#xA;&gt; proportional relationship between the acquisition of the reputation and the&#xA;&gt; amount of liquidity resources credited in function of said reputation. In a&#xA;&gt; period of steady state, the reputation acquisition cost can be downgraded&#xA;&gt; to 0. In periods of channel congestion, the reputation credentials to&#xA;&gt; liquidity units translation can be severed, in the limit of routing hop&#xA;&gt; acceptable competitiveness.&#xA;&gt;&#xA;&gt; The mitigation is incentive-compatible, if the credentials are not honored&#xA;&gt; by their issuers, the HTLC senders can evict them from the routing network&#xA;&gt; view for a while. The successful usage of credentials can lead to more&#xA;&gt; credentials allocated for longer and more capacity-intensive channel&#xA;&gt; lockups. In case of HTLC failure, the failure source could be forgiven by&#xA;&gt; routing hops to maintain the worthiness of the sender credentials.&#xA;&gt;&#xA;&gt; The mitigation can be made transparent from the user, as the credentials&#xA;&gt; harvesting can be done automatically from a pre-allocated budget, similar&#xA;&gt; to the fee-bumping reserves requirement introduced by anchor output. At the&#xA;&gt; end of today, if we take modern browsers as an example, the average user&#xA;&gt; doesn&#39;t check manually the TLS certificates (for what they&#39;re worth...).&#xA;&gt;&#xA;&gt; The mitigation can conserve high-level privacy, as the usage of blinded&#xA;&gt; signature (or another equivalent cryptosystem breaking signature/message&#xA;&gt; linking) should allow the credentials issued during a preliminary phase to&#xA;&gt; be undistinguishable during the redeem/usage phase. New CPU/memory DoS&#xA;&gt; vectors due to the credentials processing should be watched out.&#xA;&gt;&#xA;&gt; About the ease of implementation, there are few protocol messages to&#xA;&gt; modify, a HTLC intercepting API is assumed as supported by the&#xA;&gt; implementation, onion messages support is also implied, landing EC blinded&#xA;&gt; signature in libsecp256k1-zkp shouldn&#39;t be a big deal, routing algorithms&#xA;&gt; adaptations might be more serious but still reasonable. The&#xA;&gt; &#34;credentials-to-liquidity&#34; allocation algorithms are likely the new real&#xA;&gt; beast, though I don&#39;t think any reputation scheme can spare them.&#xA;&gt;&#xA;&gt; There could be a concern about the centralization inertia introduced by a&#xA;&gt; reputation system.  Intuitively, the argument can be made that any&#xA;&gt; historical tracking (such as routing buckets) favor established LN&#xA;&gt; incumbents at the gain of efficiency. A counter-argument can be made, a new&#xA;&gt; routing hop can lower the acquisition cost of its issued credentials to&#xA;&gt; attract more HTLC traffic (accepting higher jamming risk).&#xA;&gt;&#xA;&gt; On the ecosystem impacts, it should be studied that this proposal would&#xA;&gt; impact things like inbound channel routing fees [3], ratecard [4] or&#xA;&gt; flow-control valve [5] and the whole liquidity toolchain. Hopefully, we&#xA;&gt; don&#39;t significantly restrain the design space for future LN protocol&#xA;&gt; upgrades.&#xA;&gt;&#xA;&gt; On the proposal modularity and flexibility, each routing node has&#xA;&gt; oversight on its routing policy, acquisition methods, credentials to&#xA;&gt; liquidity rate. New acquisition methods can be experimented or deployed&#xA;&gt; when ready, e.g stakes certificates with only e2e upgrade. The credentials&#xA;&gt; themselves could have &#34;innate&#34; expiration time if we use things like&#xA;&gt; short-lived ZKP [6]. The credentials framework can be extended beyond&#xA;&gt; solving jamming, as a generalized risk-management framework for Bitcoin&#xA;&gt; decentralized financial network, e.g transaction signature exchange&#xA;&gt; ordering in multi-party transactions [7] or finding reliable Coinjoin&#xA;&gt; counterparties.&#xA;&gt;&#xA;&gt; Feedback welcome.&#xA;&gt;&#xA;&gt; Cheers,&#xA;&gt; Antoine&#xA;&gt;&#xA;&gt; [0]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2020-November/002884.html&#xA;&gt; [1]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-August/003673.html&#xA;&gt; [2]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-November/003740.html&#xA;&gt; [3]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-July/003643.html&#xA;&gt; [4]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-September/003685.html&#xA;&gt; [5]&#xA;&gt; https://lists.linuxfoundation.org/pipermail/lightning-dev/2022-September/003686.html&#xA;&gt; [6] https://eprint.iacr.org/2022/190.pdf&#xA;&gt; [7] https://github.com/lightning/bolts/pull/851#issuecomment-1290727242&#xA;&gt; _______________________________________________&#xA;&gt; Lightning-dev mailing list&#xA;&gt; Lightning-dev at lists.linuxfoundation.org&#xA;&gt; https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev&#xA;&gt;&#xA;-------------- next part --------------&#xA;An HTML attachment was scrubbed...&#xA;URL: &lt;http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20221121/ae6ba7de/attachment.html&gt;</html></oembed>