Well, the thing is that the current system is absolutely trustless. That means that we have no "central authority" verifying anything (such as all BOINC based coins do, since they rely on an external service controlled by a single entity which anytime can turn blackhat and cripple the entire coin) so we have to make sure every node in the network verifies work by himself. Others, very well hyped project deal with it in their very own way: they just drop all that shit and assume everyone trusts everyone ... problem solved ... NOT!
Anyway, in this context we have several issues:
a) Every node must be able to verify the work, the more memory we allow, the "higher" the "required minimal hardware specifications" become.
b) Verification of work must be performed quick. Imagine the verification (one iteration of a work algorithm) takes 10 seconds and the network is so mature that we get 100 POW packages in every second: this would result in a very large back log and eventually stall the network.
What we talked about recently in private was to out-source verification to a subset of nodes, so-called supernodes which have a very potent hardware and which just sign off POW packages and bounties. I thought it might be possible to use such scheme:
- Work may use up to 5 GIG of memory
- Work may take up to 10 seconds to verify
- Verification is only performed by supernodes
- Supernodes deposit an amount of 300,000 XEL and earn x% of all work they confirm
- If a supernode behaves maliciously (when it can be proven that a result was accepted while it's bad) the 300,000 XEL are gone
- Supernodes must be permanently online and have very decent hardware
- If supernodes decide to stop, they have to wait for 1000 blocks without verifying anything to unlock the 300,000 XEL deposit.
- Problem: Malicious billionaire supernodes that do not care about money, and the danger of ending up with no supernodes at all.
This is a change I can make in one weekend, it's just the question if we want it or if we can come up with something better?
if supernodes are doing the validation , does this give the network any different abilities , different possible work cases or anything?