<oembed><type>rich</type><version>1.0</version><title>Rusty Russell [ARCHIVE] wrote</title><author_name>Rusty Russell [ARCHIVE] (npub1zw…hkhpx)</author_name><author_url>https://yabu.me/npub1zw7cc8z78v6s3grujfvcv3ckpvg6kr0w7nz9yzvwyglyg0qu5sjsqhkhpx</author_url><provider_name>njump</provider_name><provider_url>https://yabu.me</provider_url><html>📅 Original date posted:2019-11-10&#xA;📝 Original message:&#xA;Anthony Towns &lt;aj at erisian.com.au&gt; writes:&#xA;&gt; On Fri, Nov 08, 2019 at 01:08:04PM +1030, Rusty Russell wrote:&#xA;&gt;&gt; Anthony Towns &lt;aj at erisian.com.au&gt; writes:&#xA;&gt;&gt; [ Snip summary, which is correct ]&#xA;&gt;&#xA;&gt; Huzzah!&#xA;&gt;&#xA;&gt; This correlates all the hops in a payment when the route reaches its end&#xA;&gt; (due to the final preimage getting propogated back for everyone to justify&#xA;&gt; the funds they claim). Maybe solvable by converting from hashes to ECC&#xA;&gt; as the trapdoor function?&#xA;&#xA;I hadn&#39;t thought of this, but yes, once we&#39;ve eliminated the trivial&#xA;preimage correlation w/scriptless scripts it&#39;d be a shame to reintroduce&#xA;it here.&#xA;&#xA;We need an accumulator with some strange properties though:&#xA;&#xA;1. Alice provides tokens and a base accumulator.&#xA;2. Bob et. al can add these tokens to the accumulator.&#xA;3. They can tell if invalid tokens have been added to the accumulator.&#xA;4. They can tell how many tokens (alt: each token has a value and they&#xA;   can tell the value sum) have been added.&#xA;5. They can&#39;t tell what tokens have been added (unless they know all&#xA;   the tokens, which is trivial).&#xA;&#xA;Any ideas?&#xA;&#xA;&gt; The refund amount propogating back also reveals the path, probably.&#xA;&gt; Could that be obfusticated by somehow paying each intermediate node&#xA;&gt; both as the funds go out and come back, so the refund decreases on the&#xA;&gt; way back?&#xA;&gt;&#xA;&gt; Oh, can we make the amounts work like the onion, where it stays constant?&#xA;&gt; So:&#xA;&gt;&#xA;&gt;   Alice wants to pay Dave via Bob, Carol. Bob gets 700 msat, Carol gets&#xA;&gt;   400 msat, Dave gets 300 msat, and Alice gets 100 msat refunded.&#xA;&gt;&#xA;&gt;   Success:&#xA;&gt;     Alice forwards 1500 msat to Bob   (-1500, +1500, 0, 0)&#xA;&gt;     Bob forwards 1500 msat to Carol   (-1500, 0, +1500, 0)&#xA;&gt;     Carol forwards 1500 msat to Dave  (-1500, 0, 0, +1500)&#xA;&gt;     Dave refunds 1200 msat to Carol   (-1500, 0, +1200, +300)&#xA;&gt;     Carol refunds 800 msat to Bob     (-1500, +800, +400, +300)&#xA;&gt;     Bob refunds 100 msat to Alice     (-1400, +700, +400, +300)&#xA;&#xA;Or, on success, upfront payment is fully refunded or not refunded at all&#xA;(since they get paid by normal fees)?  Either way, no data leak for that&#xA;case.&#xA;&#xA;&gt;   Clean routing failure at Carol/Dave:&#xA;&gt;     Alice forwards 1500 msat to Bob   (-1500, +1500, 0, 0)&#xA;&gt;     Bob forwards 1500 msat to Carol   (-1500, 0, +1500, 0)&#xA;&gt;     Carol says Dave&#39;s not talking&#xA;&gt;     Carol refunds 1100 msat to Bob    (-1500, +1100, +400, 0)&#xA;&gt;     Bob refunds 400 msat to Alice     (-1100, +700, +400, 0)&#xA;&gt;&#xA;&gt; I think that breaks the correlation pretty well, so you just need a&#xA;&gt; decent way of obscuring path length?&#xA;&#xA;I don&#39;t see how this breaks correlation?&#xA;&#xA;&gt; In the uncooperative routing failure case, I wonder if using an ECC&#xA;&gt; trapdoor and perhaps scriptless scripts, you could make it so Carol&#xA;&gt; doesn&#39;t even get an updated state without revealing the preimage...&#xA;&#xA;I&#39;m not sure.  We can make it so Carol has Bob&#39;s preimage(s), etc, so&#xA;that the node which fails doesn&#39;t get paid.  I initially thought this&#xA;would just make people pair up (fake) nodes, but it&#39;s probably not worth&#xA;it since their path would be less-selected in that case.&#xA;&#xA;Cheers,&#xA;Rusty.</html></oembed>