There is no perfect mechanism, in theory (see the No Free Lunch theorem) or in practice (think about your life). Each mechanism (besides completely random distribution) has a unique of profile of situations where it will perform better in response to certain objectives, and other situations where it will perform worse.
I am requesting the following information about Conviction Voting:
- the objective function that Conviction Voting seeks to address, either in a formula, code, or verbal description
- a concise description of the strengths and weaknesses of Conviction Voting as a mechanism
As an example, this is not hard to do for Quadratic Voting
Objective Function
The objective of Quadratic Funding is to solve the free rider problem: the fact that when the community pays for a public good, individuals have an incentive to use that good without contributing corresponding value to its development. In a “pay what you can” public bus model, many riders will pay less than they actually can, trusting that someone else will make up the difference. Quadratic Funding, in theory, makes it so that no bus rider has a reason to pay less than they actually can.
The mathematical process for computing the objective function is:
Step 1. Take the vote record for a given project, i.e. how much each voter allocated to the project.
Step 2. Take the square root of each vote record.
Step 3. Add up all the numbers from Step 2.
Step 4: Take the number from Step 2, and square it.
Step 5: Since the funding pool is limited, the number from Step 4 is likely too large to match. So scale Step 4 to a ratio (i.e. the total % of all such calculations across all such pools) and distribute accordingly
In python code, if each agent has a votes dict where the keys are projects and the values are corresponding value allocations, we can define
def quadratic_fund(str: project) -> float:
allocation = np.square(np.sum([sqrt(agent.votes.get(project) for agent in system.agents])))
return allocation
Strengths and Weaknesses of Quadratic Voting
Strengths:
- Strength 1: from the perspective of pure math, maximizes the utility function described above
- Strength 2: democratic, in that it decreases the impact of whales in making decisions
- Strength 3: meme potential. “WTF is QF?”, “Even $1 counts!”, “Finally the voice of the masses is heard again”, “This is the mathematically optimal way to fund”, etc.
Weaknesses:
- Weakness 1: Vulnerable to sybil attacks. The mathematical solution to the problem described above depends crucially on the assumption of strong identity: we know who each person voting is, and we’re sure that they only vote once. This works in an in-person situation where we can see that there is only one person, and that they have only put one envelope in each box. In situations where you can make up new people (like anonymous online accounts), the system is easily gamed and other enforcement mechanisms (such as eyeball-scanning or intelligence gathering) are needed.
- Weakness 2: Collusion. Quadratic Voting assumes that each agent is expressing their own authentic preferences. If agents communicate to formulate a funding strategy before the meeting, the assumption no longer works. This is mitigated slightly in meatspace, there is no way to know who defected if a collusion strategy doesn’t work – but since votes are tied to addresses onchain, colluders can see if agreements were honored.
- Weakness 3. Ethical foundations. It may be that the better-resourced agents achieved this status by making sound investments, and so would be better-positioned to make decisions for the community as well. While one may argue that they an individual ultimately seeks their own welfare, this is true of all individuals, regardless of their resources.
- Weakness 4. Cognitive and Communicative Complexity. At this point, the number of people who understand the relatively simple formula is surprisingly small (e.g. the people who could calculate matching amounts for two pools with five voters, using Excel). This is downstream of issues in global mathematics education.
There is nothing special about Conviction Voting in this scenario, it is simply a mechanism that this community has the most experience with, and one we voted to approve for use. I would like to suggest that as a Token Engineering discipline, we work towards one-page explainers like the one I have above for any mechanism under consideration (references and hyperlinks can provide more depth for those who wish to go there).
The key value I am emphasizing here is being adversarial in our thinking and pragmatic about our investments. It is more pleasant to focus on the situations where things work well than those where they don’t, but it is important to have a clear understanding of both: risks as well as benefits.
As a practical matter, this relates to two things:
- Defining standards for communication within the TEC, to support the flow of information among “subject matter experts” as well as “non-math people”
- Establishing adversarial mindset and discussion of potential weaknesses as a professional norm
Tagging people who may be able to offer the insight I request, or who may have thoughts about a general discussion (in no particular order): and
@akrtws @rex @ygg_anderson @curiousrabbit.eth @liviade @gideonro (and apologies to anyone I overlooked who may have helpful viewpoints).