denode icon indicating copy to clipboard operation
denode copied to clipboard

Proposed Voting Process for (In)valid Nodes

Open ansermino opened this issue 6 years ago • 0 comments

This is an attempt to formally outline the mechanism for establishing which nodes on the network are valid. There is huge potential for bad actors to pretend to be running a full node on the network to get the participation reward, and as such we must query and validate the response from every node.

Currently the intent is to have every node query every other node at some interval. While this might not be scalable, it should be sufficient for the time being until a better approximation and mechanism can be arranged.The exact interval has not been defined at this time as it will likely be a function of other parameters in the system (eg. how often new nodes are introduced).

Requirements for validity

  • Running
  • Responding to requests with data that matches the response of all other queried nodes on the Ethereum network

Assumptions

  • The nodes' account (presumably coinbase) must always have a balance greater than x where x is equal to the amount of wei required to submit N/2 votes to the DAO (N being the total number of nodes on the system). This should provide adequate measure to prevent a 51% attack inside the system.

TBD

  • [ ] How often voting should occur
  • [ ] The number of requests/node that should be made in any 1 vote
  • [ ] Should a node retry if the response does not match the state of network?
  • [ ] DAO submission specifics (what info, what function, cost...)
  • [ ] Do nodes need to stop responding to requests when in voting mode?

submitting-votes-for-invalid-nodes Source: https://drive.google.com/open?id=1MD7Jz5gY5Yel6pmBguLrdvto1Ln12nD_

ansermino avatar Oct 07 '18 21:10 ansermino