Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

incentive mechanism #37

Closed
2 tasks
sribst opened this issue Mar 1, 2021 · 3 comments
Closed
2 tasks

incentive mechanism #37

sribst opened this issue Mar 1, 2021 · 3 comments
Assignees

Comments

@sribst
Copy link

sribst commented Mar 1, 2021

The initial page is at tech-specs/src/explore/design/gossip/incentive.md

Inspiration reading :

To describe :

  • incentive function
  • TODO

┆Issue is synchronized with this Asana task by Unito

@cwgoes
Copy link
Contributor

cwgoes commented Mar 1, 2021

Our case is a bit different than the paper, but it is the closest prior literature I've found.

The basic idea is that we have some set of nodes gossiping around orders (or partial fragments of orders) O, which could possibly be combined with other orders to create a transaction T which can be settled against the ledger for some fee F. The node which manages to receive all the right order fragments at the same time can create T and receive F (or something proportional to F), so without additional incentives nodes may elect not to gossip any fragments O they receive in the hopes that they can keep them secret and thus will be the ones to assemble the order. Therefore, we want to create a kind of incentive scheme which will pay nodes for gossiping liquidity (O) onwards, by somehow granting them a part of the fee should T including O eventually be created and settled. There are two immediate problems:

  • Orders are created without knowledge of gossip, so somehow we have to bind the data a node sends so that the gossip recipient can't just remove their prior gossip sender from the list of nodes which participated (in order to receive more of the reward). Probably what we can do here - which is mentioned at the end of the paper - is for nodes to sign the order fragments they send on with a particular public key (of the recipient) to which they thus agree to pay part of the fee, so a settled T will include a chain of signatures back to the original order fragment creator. Without a valid chain of custody T will not be accepted, so each node must include all prior signatures.
  • If the fee F is just split between all contributing nodes, people may create any number of fake identities to receive more of it. The paper describes in some detail ways to combat this, but we'll have to adjust it for fees not necessarily known in advance, since part of the benefit from order settlement can be e.g. spread associated with a trade. Negotiated fees (https://github.com/heliaxdev/rd-pm/issues/7) may alleviate this somewhat.

I think we should first try to design it this way, but if this doesn't work we could instead try micropayments for gossip or something.

@adrianbrink
Copy link
Member

A decent solution to creating fake identities is to require that nodes are staked. One approach for the second problem could be to require orderbook operators to register with the system and be staked into it.

@sribst sribst self-assigned this Mar 4, 2021
@cwgoes cwgoes transferred this issue from another repository Mar 11, 2021
@sync-by-unito sync-by-unito bot closed this as completed Feb 3, 2022
@juped juped reopened this Feb 3, 2022
@cwgoes
Copy link
Contributor

cwgoes commented Feb 3, 2022

Closing in favour of more recent issues.

@cwgoes cwgoes closed this as completed Feb 3, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants