waku-org / research

Waku Protocol Research
MIT License
3 stars 0 forks source link

What is the current motivation for nodes to join the network? #29

Open s-tikhomirov opened 9 months ago

s-tikhomirov commented 9 months ago

While thinking about incentivization (#21), I think it's important to understand what motivates nodes to join the network currently.

I suggest the following framework. Fundamentally, I see three reasons why a node participates in a protocol:

  1. to get utility from the protocol directly;
  2. to get rewarded financially;
  3. to gain reputation.

It's important to note though that reputation by itself is only useful if it increases the utility or rewards in the future.

Examples:

It's important to understand why Waku nodes participate in the network. As I see it, currently the direct protocol utility is the only motivation. I join the network to be able to send and receive messages relevant to me, and as a side-effect I help route other users' messages. Then, a few questions arise:

  1. How easy is it to free-ride? (A BitTorrent analogy: a patched client that fakes upload stats to get more download bandwidth.) Do people do it? If not, why not?
  2. Should we think about utility differently depending on whether a protocol is... symmetrical (for the lack of a better term)? What I mean is: some protocols like Relay are clearly P2P, while others, like Store, have a more pronounced client-server structure. It's kinda clear what the utility for the client is (it gets prior messages that the server has stored in the meantime). But is there currently any utility for the Store server?
alrevuelta commented 9 months ago

I suggest the following framework. Fundamentally, I see three reasons why a node participates in a protocol:

1. to get utility from the protocol directly;
2. to get rewarded financially;
3. to gain reputation.

Agree with the framework, mainly 1. and 2. Not sure though about 3. I see reputation as a requirement for 1., since if your reputation drops below a threshold, then you wont be able to get any utility from the protocol (peers will disconnect from you)

How easy is it to free-ride? (A BitTorrent analogy: a patched client that fakes upload stats to get more download bandwidth.) Do people do it? If not, why not?

Responding from the perspective of relay. Not trivial to do since the scoring mechanisim we have in place tracks things like i) who was the first peer to send you a message, or ii) how long has the peer been in the mesh. ref. All this affects your score, and if you "free ride" with a modified client, your score will drop and no peer will want to connect to you. So you wont be able to get 1. (utility of the protocol).

What I mean is: some protocols like Relay are clearly P2P, while others, like Store, have a more pronounced client-server structure. It's kinda clear what the utility for the client is (it gets prior messages that the server has stored in the meantime). But is there currently any utility for the Store server?

Yep, exactly. This is why we are not that concerned about incentives in relay, since 1. (protocol utility) kind of solves it. But store is pure altruistic by now, if you provide store services you get no incentives for doing so, neither economically nor utilitarian. Some possible fixes: