Sybil account detection has been raising significant concerns of privacy-invasive machine learning practices of our users, and they should be taken very seriously.
In the spirit of pluralism, it makes sense for QF to exist in some capacity, especially with different modifications. However, It feels like we’re jamming a square peg (QF, pun intended lmao) into a circular hole (gitcoin grants).
This inevitably brings in computational complexity, making smart contracts (if we ever continue dGrants development) for the QF mechanism potentially more vulnerable to attacks.
the question i would like to pose is: how married to QF is gitcoin? if a funding mechanism design totally different from QF emerged and had better in-practice capabilities, is this something we would be willing to adopt?
the optimality assumptions that the QF paper makes are rooted in theory, and as we’ve seen through pragmatism, it isn’t optimal (at least not yet).
despite the pessimistic tone of this post, i’m still optimistic that more bullet proof identity systems can make QF more usable, but there are still problems that need fine-tuning to the community (as with everything).
so my judgement is withheld, i’m moreso interested in what others’ thoughts are and if they are having similar concerns. Btw, Glen Weyl the co-author of many QF white papers does.
Hi nollied, thanks for starting this discussion! I think its important to be willing to revisit & update our priors from time to time, so this conversation could serve as a nice discussion about “why QF”.
IMO this post jumps into solutioning (ditch QF) a bit too early for me. I think that it makes sense to explore the problem space a bit first. In this reply I am to do so by articulating the
problems/cons of QF - starting with the discrete problems with QF you noted as currently implemented on Gitcoin Grants &
what QF provides/pros of QF - what Gitcoin Grants gains from QF.
Here goes:
problems (cons)
In my opinion, the problems you noted are
inaccurate match estimates
privacy of sybil resistence
computational complexity
I would also add these problems which you did not note (but I think about a lot)
the necessity to keep raising matching pools
collusion attacks
what QF provides (pros)
QF provides:
(from the perspective of a contributor) - an incentive to get over the free rider problem by providing a matching contribution to every crowd contribution
(from the perspective of an ecosystem)
an opportunity to measure the signal of what your ecosystem participants want to fund,
a way to push the power/responsibility of deciding what to fund away from a central grants team,
and an opportunity to double(ish) your matching pool money (because contributors will crowdfund + this often doubles the amount of money that goes to those projects)
(for everyone) - funding for projects supported by the poor/many instead of just the rich few
pros vs cons
The DAO should make its own decision (this post is just my thoughts) about the pros vs cons.
In my opinion,
the juice QF provides is worth the squeeze,
QF is a money lego for the space (similar to AMMs),
but the approach Gitcoin Grants uses could be evolved.
The core reason I think QF is worth the effort that goes into it is that it is an elegant & scalable way of getting over the free rider problem, which is a core problem to solve for Gitcoin’s mission to build/fund digital public goods.
A secondary reason is that I’ve seen the most energy & excitement around QF of anything I’ve seen that Gitcoin has done over the last 5 years.
I also believe that the problems noted above have discrete solutions which could be explored:
inaccurate match estimates => updated matching estimate algorithms
privacy of sybil resistence => Proof of Personhood Passport, ZK tech, & MACI
computational complexity => MACI or off-chain computation verifiable on-chain
Have you seen this post? Gitcoin Grants 2.0. IMO Grants 2.0 is the successor to dGrants.
FWIW, Gitcoin Grants 2.0 has a Grants Registry at a base layer that does not have any opinions about what mechanisms should be built on top of it (see below diagram). One could build pairwise QF, MACI QF, retroactive public goods funding, dominance assurance contracts, or effective altruism on top of it.
i can’t stop thinking about this lol, i think we should wrestle a bit more.
none of these pros are specific to QF. in fact, any funding mechanism like 1d1v or 1p1v with a sufficient matching pool checks these boxes.
1p1v with a bullet proof identity system would cover this. Is it more accurate to say that QF balances the poor/many with the rich/few?
so far, all of the pros you’ve mentioned combined would be fully supported by a 1p1v with a robust identity system and sufficiently large matching pool (approximately 2x the size of the expected total contributions).
why do you think that is? is it because they feel it captures the sentiment of the community effectively (dampening wealth) while also offering wicked matching ratios? Or are there other reasons (for example, very good game-ification/marketing)?
note that in GR3 the total amount of grants received from donators exceeded the matching pool. (i’m sure this close to applies to other grant rounds also, but i haven’t combed through them all)
you can say the same thing about 1d1v with a 1:1 matching pool or 1p1v with a 1:N matching pool.
clearly QF taps into something, but what exactly?
in the case you’ve outlined, and from my own perspective, it appears that QF could be replaced if we could derive a new funding mechanism that has all of the following properties:
immune to sybil accounts by design (for example, 1d1v)
it also captures the sentiment of the community, without giving too much power to the rich
marketability (it’s gotta be at least as sexy as QF)
the other pros you mentioned seem to be covered by any non-negligible matching pool allocator.
what do you think? it might be tempting to say QF (and modifications thereof) is the only way, but i’ve got some ideas i want to explore. there’s a low likelihood of my efforts bearing fruit, but it’s fun and either way i will learn something!
Are you in our CRL chat on Discord? Octopus and I both suggested ways to lower computational complexity. Let me know if you’re not included and I’ll try to add you.