OceanDAO Voting Improvements: QV, Delegation, Multi-Chain

Idiom
Ocean Protocol
Published in
7 min readFeb 24, 2022

--

An explainer on OceanDAO voting improvements implemented in Q1 2022.

1. Introduction

OceanDAO is a community-curated grants DAO for the Ocean Protocol ecosystem. It follows monthly funding rounds where people can propose grants, the community votes on those proposals, and winning proposals receive funds.

With guidance from the OceanDAO “Parameters & Roadmap” working group, the OceanDAO engineering team works to make curation accessible and fair for every participant.

This post describes recent improvements to OceanDAO voting mechanisms.

The rest of the post is organized as follows:

Section 2 — Describes Quadratic Voting (QV), which gives more voice to smaller token-holders and softens the impact of whales

Section 3 — Describes Bright Id & Voting Boosts, to address Sybil attacks that QV exposed

Section 4 — Describes Vote Delegation, to allow busier people to let more-informed people vote on their behalf, and to allow people with multiple wallets to benefit from Voting Boosts

Section 5 — Describes multi-chain voting, so people can vote with their OCEAN and pool tokens beyond just Ethereum mainnet

Section 6 — Describes future updates

2. Quadratic Voting (QV) — More voice to smaller token-holders

Quadratic voting (QV) is addresses two issues.

Issue: voice of smaller token-holders. Until recently, OceanDAO was one-token one-vote. This gives a lot of power to OCEAN whales. It makes smaller OCEAN holders feel like their voice is weak. This is counter-productive to growing an engaged community. We could go for a democratic ideal: one human one vote. Yet skin-in-the-game matters too: holding OCEAN is a strong signal that you care about Ocean. How do we balance these?

Issue: competition from long-established projects. Less established projects may find it difficult to compete against longer-established projects that have built up support from many large OCEAN holders.

We address these issues via two mechanisms.

1. Preference signaling. First, a given voter has the OCEAN in their wallet to allocate (vote positive or negative; not spend) across project project proposals. This signals the voter’s preference; the voter must choose which projects they feel the most strongly about and allocate more OCEAN to those projects. We’ve already had this for a few rounds, and it’s helped (details here).

2. Sqrt(). The sqrt() function is applied to the voter’s allocation of OCEAN on a given proposal. This softens whale impact. We deployed this in OceanDAO Round 14. The table below is an example.

The combination of (1) and (2) is called quadratic voting (QV).

If you are a voter with just a few $OCEAN, you are able to vote for a few projects and have an impact. If you are a project that is just starting out, then you are more likely to receive support as voters look at other projects with good Value-Add Criteria to support.

3. BrightID & Voting Boosts — Address Sybil Attacks

Issue: Sybil attacks. You might have noticed a potential attack vector with Quadratic Voting which is called a “Sybil Attack”, aka “attack of the clones”. In such an attack, a participant distributes their OCEAN into 10 or 20 or more smaller wallets, and votes separately from each. They’ve “cloned themselves”. This allows them to mostly avoid the effect of the square root, to make their OCEAN have higher total voting impact. Sybil attacks are only a problem when you go beyond one-token one-vote. Therefore before QV, they were not an issue; but with QV they are.

Possible Solutions. We could mitigate the effects of Sybil attacks with a “stick” or a “carrot” approach. In a “stick” approach, the idea would be “you could only vote if you show you’re a unique human”. This would be gatekeeping, and is counter to Ocean values and broader web3 ideals.

So, we opt for a “carrot” approach, where we incentivize for showing unique-humanhood. You show unique-humanhood by connecting your Ethereum address to BrightID identity. If you vote with that BrightID-linked wallet, you get a 400% Voting Boost. That is, votes from that wallet have 4x weight.

BrightID uses a web-of-trust (peer-to-peer) approach to establishing unique humanhood.

We’ve implemented a portal — here — to make this easy.

Something to note, you can only associate one wallet to a BrightID, and to an associated Voting Boost.

4. Vote Delegation — More-informed voting

Issue: high effort for quality votes. OceanDAO Round 14 had 35 grant proposals. To become well-enough informed to vote with high signal takes several hours, even for people deeply involved in Ocean ecosystem. This is a big time commitment, and many people simply can’t commit the time. This means that the quality of voting signal suffers: some people don’t vote because they don’t feel well-informed enough, or they do vote but with less information than ideal.

Issue: can only boost one wallet. Many voters hold OCEAN (or pool tokens) across multiple wallets. But the Voting Boost only applies to the wallet associated with BrightID. How might we reconcile this?

Voter Delegation addresses both issues. It allows busier people to let more-informed people vote on their behalf, and it allow people with multiple wallets to benefit from Voting Boosts.

OceanDAO Round 15 introduces Voter Delegation. Participants are now able to delegate their voting power to another wallet.

On the first issue — by delegating Voting Power, you are empowering someone else to make decisions for you! Even if you’re less involved in Ocean, you likely know who might be more informed for voting. We hope this will increase voting signal quality, and also increase the number of people engaged in voting.

On the second issue — This means that you can delegate votes from a non-BrightID wallet to a verified BrightID wallet, and receive a voting boost more readily.

Usage. You can delegate your votes via these steps:

(Continue reading if you want to validate that delegation worked.)

  1. Get the 0x wallet address from the person/account that will be casting the votes for you.
  2. Enter the Snapshot Delegate Portal and connect your wallet.
  3. You can choose to limit the delegation to a specific space. In our example, we’ll be limiting the voting power delegation to: officialoceandao.eth
  4. Finally, click “Confirm” to delegate your voting power.
Snapshot’s Voter Delegation Portal

Verification. You can use the same steps to validate that delegations are working.

  1. You can use the same dashboard to validate that delegations are working. Enter the Snapshot Delegate Portal.
  2. Connect the 0x wallet address that you want to validate delegates.
  3. All addresses that are delegating to your 0x, will now show up.

Future usage. We hope that by releasing this feature, the OceanDAO community will be able to build on top of and help establish healthy delegates within the Ocean Ecosystem..

Some ideas for how the community can take this forward include establishing a Delegate Registry Portal such as Gitcoin’s Steward Report Cards. This would enable anyone to find or register themselves as Ocean Ecosystem Stewards, and facilitate good decision making inside OceanDAO.

Gitcoin’s Steward Report Cards

5. Multi-chain Voting

Issue. Ocean is deployed to Ethereum mainnet; but this has high gas fees. To address, Ocean has deployed to several other networks like Polygon which have low gas fees. That’s a great thing! The challenge is that OCEAN and pool token holders in these other networks haven’t been able to vote from those networks; they shouldn’t have to move their tokens to Ethereum mainnet (at high inconvenience and cost) just to do so.

Solution: vote from Polygon and BSC. As of OceanDAORound 15l, OCEAN and datatoken pool token (BPT) holders holders in Polygon (Matic) chain and Binance Smart Chain (BSC) can now vote with their OCEAN and BPTs. Note: R15 doesn’t support votes from other Ocean-deployed networks (Moonriver, EWC); we will continue to grow the supported-networks list over time.

Here’s what this looks like:

  • This update supports everything that worked previously.
  • OCEAN in Polygon and BSC will count toward Voting Power.
  • OCEAN staked in Polygon and BSC datatoken pool tokens (BPTs) will not count toward Voting Power. *
  • You can delegate Voting Power within Polygon and BSC.
  • The sqrt() formula will be applied as described in the QV section
  • You only need to vote once to have your combined Voting Power deployed.

6. Conclusion

This post described several recent improvements to OceanDAO grants curation: Quadratic Voting, Sybil Tolerance, Vote Delegation, and Multi-chain voting. The OceanDAO engineering team implemented these based on guidance by the “Parameters & Roadmap” WG.

The team will continue to make improvements over time, to further catalyze growth and make the funding process ever more accessible.

03–03–2022 — * In R16 — OCEAN staked in Polygon and BSC datatoken pool tokens (BPTs) will count toward Voting Power.

You can learn more about OceanDAO by visiting our website and reading our wiki.

Follow Ocean Protocol on Twitter, Telegram, LinkedIn, Reddit, GitHub & Newsletter for project updates and announcements. And chat directly with other developers on Discord.

--

--