@akhavr,ttook: The problem with rating schemes is imho that you can create an infinite number of alternative identities, all with a clear background. Reputation may work in centralized systems that require some sort of authentication like e.g. eBay, but if we do not want to penalize new users without any rating, we will have a hard time coming up with a reputation system that really works. I mean I could rip off some workers, collect negative reputation, move the XEL to a fresh account and start over.
What do you think?
The whole identity business is true and I don't think there is going to be a clean solution. that's why I came up with the idea to implement a voting system similar to Lisk(I'll explain the lisk voting system a little further at the bottom):
(…)
@Evil-Knievel (and the rest), what do you think about the possibility to implement a whitelist for miners, meaning, a job author can decide who is or isn't allowed to work on their job? Obviously, this list is not meant to be mandatory, but job authors can decide to use one or not and who is on their list. I know this has implications, but maybe this should be a consideration nonetheless. As pointed out above, this may be a (albeit cruel) solution to possible attacks.
(…)
I mean, a blacklist wouldn't work, but a non-mandatory whitelist would, if it was well-maintained by a trusted source (although this would probably be a kind of hidden centralization).
More thoughts on that matter, especially in regards to Lisks system:
The more I think about it, the more I like the idea of a non-mandatory whitelist and reputation system.
The scenario could look like this:
- Under normal circumstances, job authors don't use the reputation system, because they would obviously want to have as many miners working on their job as possible.
- If the system is under attack, job authors can choose to activate the reputation system. This system consists of two parts:
- They can either decide to only let certain miners work on their job. They can create a list of miners, or use the list of another trusted entity.
- They can also set a certain "minimum of approval" threshold. This means, that only miners with the set minimum of approval or more are allowed to work on the job.
- To earn approval, the XEL network can vote for miners. To get people to vote for you, you can share earnings with them (since they hold XEL and are interested in XELs financial well-being, they are interested to vote in legit miners and withdraw approval if a miners shows malicious activity). This system would work similar to Lisks DPoS system, but without a fixed number of Delegates/miners obviously. Miners with zero reputation can mine on the network, but run the risk of getting blacklisted. A miner could still vote for themselves, but ideally, the needed amount would be very high.
I have to admit, that I smell abusive potential, but I can't point my finger at it. The worst I see at the moment is a scenario in which most job authors use the list to whitelist only certain miners, keeping the majority of miners outside of it, but I don't see that as likely…
EDIT: This is a bit out there, but you could also use the whitelist system to chop jobs, so that the risk of a single miner mining the majority of your blocks is reduced. Let's say, you have sensitive data, that you don't want to have in one hand. You could divide them up into different jobs and whitelist different miners for each of those jobs. Obviously, the nodes would be weak links in this scenario…
To explain Lisks voting system a little further: Every wallet which contains LSK(or XEL…) has a voting weight equal to the XEL it contains. To vote with a wallet for a miner, a special transaction is made, which requires a small fee. the miner is now essentially "approved by this wallet", the "amount" of approval is based on the weight of the wallet. This can change obviously depending on tokens getting in or out of the wallet, so it is checked regularly. In Lisks system, the 101 delegates with the highest "approval" are allowed to forge Lisk. In Elastics network, there wouldn't be such a hard cap in place, instead a job author can decide to set a minimum amount of approval.
To ensure some kind of "job security" and to keep the overhead low, I'd modify the voting system in a way, in which there is only one voting every week.
This would mitigate the issues at hand in two ways:
- A miner wouldn't want to spread out over different identities, because they would have to get voted for multiple times.
- Am miner could still buy XEL and vote for themselves, but ideally, this would be extremely expensive, and the Elastic community could enforce voting of other miners to raise the minimum amount of approval over the level of the attacker.
I admit that this is far from being a clean solution, but it's something