Good morning Robert,

Unfortunately, this proposal is basically a proposal to split the network into 
a central network of specially-chosen nodes surrounded by second-class and 
third-class nodes that are utterly dependent on the central network, which I 
personally find disturbing.

Of course, it may be that this is already where the network is heading, which 
is sad.
Gravity exists, and is difficult to resist against; yet as long as I remain 
standing on my own two legs (since I am human, I possess two legs), I resist 
gravity.

In any case, other than that, here are some more thoughts:

> it may be beneficial to have a maximum node capitalization limit.

This is trivially worked around by running multiple virtual nodes, say on the 
same machine but behind different Tor .onion addresses.
Then any benefit you get would be a mirage.
If you go through with this, I suggest that such limits not be imposed anyway, 
as it is trivial to get around them.

Disallowing Tor .onion addresses would be bad as well: it should be allowed 
that some high-liquidity nodes have their privacy protected if needed.

> 5.  Attestation: Any LN node which claims to meet the requirements to be 
> included in SBN would be rated by a randomized subset of the SBN network and 
> the inquiring node would receive cryptographically signed attestation that 
> the node is either valid or invalid.

How would you bootstrap this SBN?
Who are the first members of the SBN, and why should they let, say, furries 
join the SBN by attesting to them?
If the first members all hate furries (and everybody hates furries, after all, 
why do you think the Cats movie bombed?) then even a random subset of those 
first SBN members will not attest to any furries, because furries are ew.

Note that we already have attestation to the liquidity of a node, by having the 
node publish its channels, since channels are attested on the blockchain, whose 
blocks are attested economically (i.e. a sufficiently rich furry can always 
create channels on the blockchain, because censorship-resistant).
What is missing is a censorship-resistant attestation of the ***uptime*** of a 
node.

Now of course, a furry might manage to get through by at least first hiding the 
fact that it is a furry, but once discovered, a "randomly-selected" subset of 
the SBN would then counter-attest that the furry is actually only 98.9% up, 
revoking its membership from the SBN.
This gets worse if the furry was using its open public IP rather than sensibly 
using a Tor .onion address (which means that, for the protection of furry and 
non-furry alike, we must support Tor .onion addresses for SBN members).

Which brings up the next topic: how does the "random selection" work?
It might be doable to use entropy from the onchain block IDs, assuming miners 
are not willing to increase the difficulty of their work further by biasing 
their blocks against those furries (which all miners also hate, because 
everybody hates furries).
But that means there has to be some authoritative set of SBN members (from 
which a deterministic algorithm would choose a subset), and there would need to 
be consensus on what that set of SBN members ***is*** as well, and how to keep 
around this data of who all the SBN members are, and so on.
This starts to look like a tiny federated / proof-of-stake blockchain, which we 
would like to avoid because blockchains have bad scaling, though I suppose this 
might be acceptable if the only transactions are removal and adding of SBN 
members.
What would the block rate be, and who are the genesis SBN members (and are any 
of them furries)?
How bad will this get a decade from now, and how many will be using SPV for 
this set-of-SBN-members federated blockchain?

> 2.  Ignoring the 48% of unreachable nodes, payment success rate is 66% on the 
> first payment attempt. With multiple retries for the payment, success rates 
> reach about 80%. This means that even for nodes which are available and 
> reachable, 20% of payments are not able to complete. This is not good.

I note that, as I understood the presentation, the data-gathering model was 
that every node had an equal chance of being the payee.

However, we should note that not every public node expects to be a payee at all 
times, and that for nodes with a brisk business on Lightning, their success 
chances are, as I understand it, higher.
Thus the actual experience is better than the dire numbers suggested in the 
presentation.
Of course, I have no numbers or data to present here.

In general, if you are expecting a payment over Lightning, you will generally 
arrange to make this as smooth as possible, and will ensure you have incoming 
liquidity, that your node was actually up during the time you expect a payment, 
and so on (you have a strong incentive to do so, because you like money); 
whereas the model used was that everybody gets a  payment (that they cannot 
claim because the payment hash was a random number) and not everyone has their 
nodes online all the time with incoming liquidity in all channels with peers 
that are also alive.
Thus, I expect the actual experience to be higher: in short, the data from 
cdecker establishes a lower bound on the expected user experience, not an upper 
bound, because it just randomly took everyone as a possible target.

--

So let me counterpropose that:

* What we are missing is a censorship-free way to attest to uptime.
* Liquidity is visible onchain.
* You are already going to need a blockchain anyway to anchor your funds.

So:

* Nodes that want to declare themselves as members of SBN sign the current 
block.
  * These nodes put their signatures in OpenTimeStamps for the *next* block.
  * When somebody asks "what is your uptime???" they show the signatures they 
have that are attested on OpenTimeStamps.
    * The asker will disbelieve them unless the set of signatures attested on 
OpenTimeStamps is large enough.
      For example, it could require that the node, to be believed as a member 
of SBN, to show 99 signatures within the last 100 blocks as having been 
attested on OpenTimeStamps.
* To be accepted as an SBN member, your node needs only to give these proofs to 
anyone who asks:
  * Proof that it has liquidity --- which it already does by the current gossip 
system.
  * Proof that it has high uptime --- by the above mechanism.

This assumes OpenTimeStamps does not hate furries, or that you can hide your 
furry-ness from OpenTimeStamps.
I believe it is possible to hide furry-ness: my understanding is that it is 
commitments, and not their openings, that is received by the OpenTimeStamps 
server.
Thus, an SBN wannabe self-attests: they publish their onlineness to 
OpenTimeStamps, they do not ask somebody "please tell everyone else that I am 
not a furry".

As well, we can replace OpenTimeStamps with some other attestation mechanism 
that publishes attestations, at cost, onchain, though we should be careful to 
design one with very low onchain footprint.
Using OpenTimeStamps may make the OpenTimeStamps server an attractive target 
for attacks, and distributing this risk is needed.


Regards,
ZmnSCPxj

_______________________________________________
Lightning-dev mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev

Reply via email to