Quote from: zack on June 30, 2015, 02:19:43 PM
more on hierarchical clustering:
The worry is that an attacker will put tiny votes in just the right places to cascade and give himself control of the outcome even though he has a minority of the reputation.
The reason the attacker can do this is because he knows the deterministic rule for how the votes are clustered.
So I think we should salt the clustering rule. Using a random number that the voters didn't know when they were voting.
It would still possible to take control with a minority, but it is probabilistically improbable.
Another easy way to solve this is to just do something like:
``` # detect how far the "truths" are away from actual outcomes
# then choose closer mode as final truth cluster
if(L2dist(mode.meanVec, outcomes)<bestDist):
bestDist = L2dist(mode.meanVec, outcomes)
best = mode
bestClusters = clusters
if(L2dist(mode.meanVec,outcomes)>1.07 and times==1):
possAltCluster = cluster(features,rep,2,threshold*3)
return(possAltCluster)```
It's basically a second pass.
This seems to work well in all the test cases I've been able to come up with to throw at it as well as the one Vitalik posted. If anyone has any ideas for a matrix that could get past this redundancy check, let me know and I'll test it.
Edit: nvm on last edit, just had a typo in sims!