Octopus - Andrew Pendlan on Optimizing the collusion strategy and matrix-ization of the CLR algorithm
Email from Octopus about Grants Math & Minimum Bound
Types of Strategic Play - Defining Collusion
"There are 2 types of account based collution."
- Collusion - Instead of both of use donating $2 to the same grant, they both donate $1 to each to maximize matching pool allocation. (Pic https://share.getcloudapp.com/L1udpmN9)
- Sybil - Creating sock puppet accounts
Both use the same basic strategy of splitting up the total amount available to maximize matching allocations.
What is the BEST strategy? (Best being getting the most from the matching pool)
The best strategy to collude, whether sybil or not, is to spread your donations out to as many accounts as possible. This meaning the smallest amount possible.
Here is the equation for the optimum strategy.
x = number of users (fake or real)
b = budget
max = x(x-1)b/2(x+b) increasing x is unbounded
This means that the more colluding accounts, the stronger the effect on matching allocation. It is unbounded and exponential meaning we have to set a lower donation limit. Maybe $1?
Set a lower donation limit
SIDE NOTE: Creating more grants does not help a grant creator to get more money.
Implementing the CLR algorithm through matrices.
Matrix-ization and/or Vector-ization
Andrew wants to continue this experiment. Here is what he would need:
We select a test suite of data (20 contributors and 10 grants)
We run the test suite through our algo
Send the same dataset to him to try his algos
Repeat a few times.
Lets say you had a "big matrix" and you wanted to add all the entries. In python, you would normally use a list.
Thinking as a list of lists would be:
for i in range (1000)
for j in range (100)
tot += A(i,j)
As a matrix can be 6-20k times faster, but tradeoff is memory
A = np.array(A)
np.sum(A)
What did you enjoy most about the experience?
I really liked all of it. Angela was fantastic. I now know more about optimization than ever before. It was great to learn and it moved so fast. I would spend 3-4 years if it was just me. Being forced.
What would be really helpful to continue this work?
- Conversational access on discord or email when needed
- Ability to give opportunities to his students to unofficially work on the problems or to officially have a relationship like an internship program.
- When assessing if a grant or account is legit, it would be great to have a better definition of what is collusion vs coordination.
Any other interesting points to share?
- it could cut off desirables like new accounts who find us on the internet
"I could propose a mod that would kill any collusion from recieving matching funds."
- Might make more sense in an infinite game scenario
Equation would be:
t = # of trusted users who gave to a grant
u = # untrusted users
First you would do the normal calculations, then:
weight = 2^(-(T))/(1+u))
Perhaps random checkpoints that confuse colluders would be a good strategy.
"Random number generators use 20 checkpoints to assess if they are technically random enough"
It seems it is still and open question as to what constitutes collusion.
How do you distinguish collusion from community behavior. Just from contribution amounts it is very hard to do.
Edges on the graph are cheap
"If I were trying to run a maximally profitable strategy, I would assume you might use some graph theory to counter collusion. Therefore, I would donate a little to a few other grants to throw you off the path. Buying edges is cheap."
