Winners:
Umar Khan, Colton Orr, Philippe Dumonet, Kyle Weiss & Gordon Berger
Comment by Winner
Philippe Dumonet
Sybil Resistant Judging
Assuming this question is asked from the governance/mechanism design perspective (and not UX/UI) the main problem is how to vote fairly and manage conflicts of interest. With any bounty there are 3 groups: the hunter/s (people who fulfil the bounties), the offerers (people who create the bounties) and the judges (people who settle disputes between offerers and hunters). The main failure mode is an attacker getting a bounty they did not complete. This can be achieved by corrupting the judging system. To avoid unnecessary overhead in the majority of situations the judging process can be optimistic: if both parties agree (winning hunter & offerer) and no competing hunter disputes, the bounty is awarded with no further steps. If there's a dispute the judges need to step in to make the final judgement. The main design goal for the awarding system is then how to prevent the judging system from being corrupt. To avoid having to solve this problem yourself you can outsource this arbitration / judging process to a system like Kleros's on-chain courts or UMA's optimistic oracle. Alternatively you can solve this problem yourself, in which case you need a way for judges to vote on disputes and incentives for them to judge correctly. One problem existing arbitration systems have is the capital-based sybil resistance via staking of coins, this allows individuals to corrupt votes if they have sufficient coins / capital. To prevent profitable 51% attacks on voting system a cap can be set on the value of bounties to ensure that the falling value of the underlying governance/judging stake token due to loss of confidence in the system would be greater than the profit from exploiting the system i.e. the value of the bounties under review at any one time. To avoid one person staking too much, you can use a "proof of uniqueness" protocol such as Proof of Humanity or Worldcoin.
Colton Orr
Non-KYC Accounts and Voting Mechanics
A few options for non-KYC: --Gitcoin Passport: (great idea, currently a challenging UX but maybe excellent in the future) --DAOdrops: This is my current favorite from a UX perspective. Voting was a breeze and it seemed to solve the KYC while delegating voting power based on meaningful wallet activity. DAOdrops info: Go here and select FAQs > How is my voting power calculated? : https://daodrops.io/ A few thoughts on the voting mechanics after reading "Voting for Winners in Crowdfunded Bounties (pt 3)": --Option 5: "Meritocracy/Reputocracy" feels like a great balance of the various voting mechanics. "Option 2: Assigned judges (technocracy)" is super compelling and is worth building toward. I hope badges, previous bounty work, peer reviews, on-chain actions, etc. will soon weave together into a rich graph representing expertise that is relevant to ViaPrize bounties. So much tooling is being developed in this area right now. For anyone curious about this space, give a listen to this conversation between Evin and Vitalik: http://podcast.banklesshq.com/soulbound-on-or-off-chain-vitalik-buterin-and-evin-mcmullen --The idea proposed in the "Update" section is a great option for this stage of ViaPrize. I think the community will be fine defaulting to admins while the platform grows. Cheers and can't wait to see what other solutions the community comes up with!
Gordon B
Hi Very interesting question,
here are few of my thoughts on the topic: Option 1: Admins (do-ocracy) I think centralizes the decision-making to much for it to be able to scale long term. Option 2: Assigned judges (technocracy) – as much as the idea of attracting the experts with a deep domain knowledge of the certain area as judges is conceptually seductive, I think that the potential inefficiencies in communication/coordination make it less likely the sustainable model you are looking for. Option 3 and 4: Funders vote (plutocracy) and Community votes (democracy) Even dough the quadratic voting in a way addresses the plutocracy aspect, however the aspect of not having KYC in this case exposes the system to easily be a target of Sibyl attacks. (as mentioned founders voting on themselves, or voting for their money to be refunded) I do like the concept of admins of viaPrize having the option to allocate someone's un-used voting power, to prevent potential manipulation. Option 5: Meritocracy/Reputocracy - I think this can be an interesting solution. Definitely the area of focus should be what alternative/better reputation signaling markers can we come up with. Regarding receiving reputation points currently, we do have - upvotes on comments, winning bounties and funding bounties. However, I think there could be more options. One option could be using the Gitcoin Passport and having a score threshold. There could maybe be a reputation system based on how many people “vouch” for you as a reliable member of the community. So after a certain number “vouches” received from the people on the platform a attestation could be issued (on your wallet) for your platform profile as a validity verification. With this validity verification your profile is granted certain privileges within the voting/funding ecosystem. Here is a bit more info on attestations on Ethereum: https://ethereum.org/en/developers/docs/consensus-mechanisms/pos/attestations/ So the with the core issue being how can we count people’s votes without using KYC, I thin this kind of social reputation based model could be a good proxy reputation system as a alternative to KYC. Looking forward to see how this evolves!
Gordon Berger
Umar Khan
Sybil Resistance + Reputation Weighted Votes
Goal: Have a group decision-making system that makes the most impartial and accurate decisions about who should win a bounty. I think there may be two steps to setting up a solid community voting system. 1. Sybil Resistance to keep out bots and fake accounts: which can be achieved by tools like Gitcoin Passport. 2. Reputation Weighing Votes so that more trusted voters have a bigger impact on the outcome. 2a. As an alternative to reputation weighing, you can have a randomly-selected jury of voters. Sybil Resistance: it's very easy to game a system of online voting by simply creating multiple accounts. To counteract this, you can try to measure based on someone's public and permanent on-chain behavior how likely they are to be a fake or alt account (such as checking if they own an ENS or collect POAPs). You can layer onto this off-chain indicators of identity as well (will they connect a phone number? a discord account? a twitter account?). The more data points an account is able to attest to, the higher the cost of forgery would be for a bad actor, and the less likely it is that this is a fake account. A unique human active in the Ethereum ecosystem is likely to be able to attest to many or all of these. On the other hand, someone making multiple accounts would pay a steep price to go through setting all these up (although it's not impossible). Gitcoin Passport is an open-source tool that makes it easy for people to connect many different data points that attest to the likelihood of their unique identity as a human. It's been developed based on years of fighting sybils in order to do quadratic funding of public goods. Read more about Gitcoin Passport and Decentralized Identity: https://docs.passport.gitcoin.co/overview/overview https://vitalik.ca/general/2022/12/05/excited.html Reputation Weighting Votes: To arrive at the best decisions, it may be worthwhile to allow people to accrue karma over time for making good contributions to the community. The more reputation someone accrues the higher the likelihood that they are operating in good faith, have good judgement, and can be believed. Letting them have a higher say in the outcome of a bounty then may lead to better decisions being made. This also provides an advantage to those who have been in the system longer therefore providing an incentive to join early to help bootstrap the network. However, if reputation is assigned by the community (upvote/downvotes) this could be gamed by a team of colluding actors who all agree to vote for each other when assigning reputation. One alternative that prevents this type of collusion is to include some element of randomness. In the United States, we have juries of citizens who are randomly selected to make legal decisions. This randomness creates diversity of thought and prevents collusion. In any mechanism I think it's important to create a place for discussion: voting is a system that is easy to scale to a lot of people but reduces the amount of nuance and signal that can be present in decision-making. Democracy needs discussion and information-sharing to make better decisions. Non-KYC decision-making definitely needs sybil resistance. From there, it's unclear what the best mechanism for decision making is but I think the key axes to think through are: decision quality based on trust in individual voters (reputation), preventing collusion (randomness) , and information sharing between
——————————————————————————————————————————————————————————-
The Following are the comments of the Competitors :
David Ernst
Slight design variation suggestion: instead of collecting all the funding first, then looking for project proposals, what if the platform first just collects “hypothetical interest” (contact info & max possible pledge amount). So people that want to fund X can meet and connect, but don’t have to put any money down. Then step 2 is people with ideas looking for funding can make their proposals to the whole group, same as before, but funding is more directly handled at this step, never even has to touch connection platform itself. This is sort of inspired by what I noticed from The_DAO (eth funding v0) vs ICOs (eth funding v1). Much easier to organize around individual ICOs, rather than needing everyone to pool & vote together, but still valuable to gather that initial interest so would-be grantees can see what people are interested in Means more autonomy for the funders: less risk they may not like the choices of the rest of the pool, so perhaps willing to pledge more in the first place. And more flexibility for which projects get funding, there doesn’t need to be “single winner”, multiple projects can be funded in proportion to how much interest they gather One possible consideration is the project might only work if it gets at least X amount of funding, which would be met if it was all pooled together, but maybe not if individually. But the project can handle that independently by saying “we need at least X, if we don’t meet that initial funding goal all money will be returned”. could be semi-enforced by smart contract (altho not foolproof to flash loans etc) The other benefit of this approach is it doesn’t really need any KYC or Sybil resistance against sock puppet funders, since they aren’t getting voting power control over other funders’ funds
Kyle Weiss
A few quick thoughts - QV does not need KYC solutions, there other non-doxxing novel solutions (like Gitcoin Passport which I work on) that others are using to reduce the ability to Sybil Attack. Using QF is often great as it ensures we avoid plutocratic outcomes. With QF, we could go one step further and engage with firms who try to calculate the "fraud tax" or the amount of the vote that could have been fraudulent, and then simply accept a fraud "tax" of 10% or lower (community can decide the right number). We could also introduce a credibly neutral 3rd party to review the outcomes of the vote (often the person putting up the bounty), not to change the results, but to decide if the vote should stand as is, or if it appeared to be attacked. If attacked, they can simply return the funds and decide if they want to rerun, or improve the system before funding. We could explore weighted distribution of votes based on reputation markers. ie, I might assume the people at Zuzalu are not willing to jeopardize their reputation and be caught cheating. If this is true, we can assume their vote may carry more weight than someone outside the system where we cannot as easily vouch their reputation. finding reputational criteria can be tricky and isn't always credibly neutral. Eigen trust models are emerging as valuable and being linked to on chain social data (ie, folks are using the dataset from Lens to then build Eigen trust models) Final thoughts are that adding randomized auditing could also deter bad actors, but this is expensive to maintain and implement. We really want to build a system that is more expensive to attack than it is to defend. This is where Gitcoin Passport is so helpful (I know I am shilling this tool, bear with me). It's free to integrate and offers sybil prevention based on years of running QF rounds and trying to detect fraud - though it's not perfect! It is more of a "we will tell you how unique we think this human is" and then it can also tell you where Gitcoin *thinks* you should set a threshold to allow participation, but the data is all open so any community can decide where to set the threshold. So, QV/QF is solid and allows open systems (when paired with sybil and collusion resistance). Token voting / Oracle voting is often more secure but introduces bias based on who can vote. The tiered rewards are interesting if we are only paying for ideas, but they become difficult if you are posting bounties to solve a problem. it may cost $5k to build something (my time), and receiving 3k doesn't really help me... I cant commit to that project then.
James Brodie
Within a proposer, funder and hunter paradigm, a question was posed as to how to stop the funder rigging the hunter. Could you make the proposer also an arbitrator? And the funder must stake something with the proposer that gets slashed (and diverted to the hunter?) unless all three parties sign off on completion.