Multi-Stakeholder Governance with Keyko
By: The Keyko Dōjō
Tags: Dao, Governance, Bancor, Defi

Multi-Stakeholder Governance with Keyko

Keyko has a proven track record delivering complex data sharing solutions encompassing access control, blockchains, smart contracts, Big Data, regulatory compliance, trustless governance and scalability. Today, after an ultra fast ramp-up with Bancor’s core engineering team, Keyko is proud to give a little sneak peek into what we’ve been up to: deploying a decentralized governance module within Bancor’s v2 DeFi App.

The objective for developing and deploying this module was to facilitate voting for Bancor’s governance proposals, beginning to tackle more advanced principles like liquid democracy: the democratic state that exists between direct and representative voting systems. In a “liquid” democracy, stakeholders can migrate seamlessly between direct and indirect participation. Current DeFi governance applications are testing the bounds of this theory by putting core principles to the test.

Theoretical background

Agency Theory suggests that there is an inherent conflict in the principal / agent relationship, and thus problems arise when the agent is not incentivized to act in the best interest of the principal. Decentralized networks can help address this conflict by bringing principals and agents closer together through shared incentives.

The disconnect that arises between ownership and control in disparate, or “trustless” systems has been described as an “alienation of Trust” between the parties in these networks. Decentralized Autonomous Organizations (or DAO’s) such as Bancor v2, can address this problem by codifying objectives and associated milestones to incentivize the collective behavior of participants.

Increasingly, networks facilitate this type of construct through the concept of staking, where a participants stake represents voting rights and is done directly (Proof of Stake) or via a proxy (Delegated Proof of Stake). The result generally is the optimal level of engagement, pushing decision making to all stakeholders (i.e. “Governance Inversion”).

Below are some key features of modern DAOs:

Automated corporate / organizational governance via codified rules within smart contracts.

Flattened hierarchy where token holdings represent network influence.

Funds are stored within smart contracts and allocated / disbursed based on participant votes.

“Influence” dilutes as more tokens are minted for newly entered participants.

Keyko’s Governance Interface

The following is a brief description and walk through of how the Bancor Network’s decentralized governance mechanisms work using in-house governance interface design design. This solution allows Bancor users who hold Bancor Governance Tokens, called vBNT, to vote on proposals raised by other members of the Bancor community.

Anyone holding vBNT, which is earned by staking BNT and supplying it for liquidity protection, can choose to vote on proposals that will alter the activities in the system. The intent of this application is to migrate decision making away from the existing Bancor organization, which currently acts as a centralized authority, and towards the stakeholders in the Bancor ecosystem.

Our module allows members of the Bancor community to submit proposals that modify some component of the network’s functionality. This could include core protocol functionality, rewards and incentives, or even governance processes. The proposals are then submitted for ratification via community vote through the same module.

Voting is given a time period and a minimum participation threshold and subsequently pushed to the ecosystem, via the module that Keyko built, for ratification. During and after the voting period, members of the community can comment on the proposal through the chat forum attached to the proposal. This aids in establishing a dialog between the proposer and the community such that suggestions and recommendations can be incorporated into the proposal.

Once the voting period is complete, the votes are tallied and the conditions for ratification are evaluated. This is done automatically via a smart contract. If the proposal passes, it’s elements can be codified and deployed to the system (alternatively, a smart contract can be executed directly to alter the implementation or configuration of the protocol). Failure to secure the required votes results in the proposal not passing, and no further action is taken. It is also possible to codify cases where the proposal does not pass, e.g. if the proposal passes, raise the fees, alternatively — lower them.

The following outlines the workflows that our governance module incorporates, highlighting how the solution functions overall.

Getting Started

The Governance Interface

To see the application working in production, please go to https://app.bancor.network/eth/data. Here you will find the main Bancor landing page with a link to the Governance and Voting applications.

Clicking on the Governance link will take you to the proposal interface.

The Proposal Interface

On the left hand side you can see the discussion Categories, including the “Governance General” which runs through Bancor specific governance requirements. Anyone can view the information in the proposals interface, but contributing requires logging into the system.

Proposal Forum

You will also see the “BIP Discussion” link. BIP stands for Bancor Improvement Proposal and links to proposals that are being worked on, have been proposed, and have been voted on.

Clicking on a link will take you to the detailed proposal content. The proposals are standard documents highlighting the objectives and implementation details of the proposal, upon which Bancor voters base their decision.

These documents are generally produced in GitHub, but can also be Word documents, or PDFs.

The proposal document interface also contains a feedback thread which allows Bancor participants to comment on the proposal. This provides a feedback mechanism from the community to the proposer(s), and facilitates the incorporation of suggested modifications. In this way, proposals can become “living” documents as opposed to static dictates.

Submitting Proposals

To submit a proposal, first you need to log into the proposal interface. Once logged in, you can click the “+ New Topic” button.

Proposal Creation

This will bring up the topic submission interface, and where you can label the submission, link it to it’s proper category, and enter the detailed topic information.

Voting

Once submitted, proposals are ready to be voted on. To do so, migrate back to the main Bancor landing page and select the “Voting” link.

The Voting Interface

This will take you to the voting interface.

Connecting Your Wallet

First you need to connect your voting wallet. To do this, you click the button in the upper right hand corner, and will be prompted to choose your wallet and connect it to the application.

Voting Workflow

Once connected, you can vote for current proposals up for ratification, make new proposals, etc. To vote for a proposal up for ratification, first you must stake your voting token(s). To do this, you click the “Stake Tokens” button, which will bring up the staking interface.

Staking Interface

The Staking interface allows you to choose how many voting tokens you want to lock in for the lock up period required for each proposal’s voting window. By locking tokens up and using them to vote, the designated token allotment is removed from voting circulation. This means that votes are only eligible for the proposals they are allocated towards during the specified proposal’s voting window, and cannot be used to vote for other proposals with overlapping voting windows. This prevents a voter’s ability to “double spend” their votes on multiple proposals at the same time. Consequently, votes should only be used on proposals that represent our interests.

Voting Selections

Once your tokens are staked, you return to the main Vote interface, and can select “Vote For” or “Vote Against” the proposal(s) of your choice. In the voting interface for each proposal you will see links to the following:

Discussion Forum — This will take you to the proposal content from the Governance section discussed above.

GitHub — This will take you to the GitHub repository explaining the details of the proposal, including the code to be implemented via smart contract(s).

Proposed By — This will link you to the wallet making the proposal. In Bancor’s case, this is the public wallet address that shows the proposers on-chain activities. In UBS’ case, this could be linked to the proposer’s company profile in the UBS corporate address book.

Contract to Execute — This is the proposed smart contract to be executed upon a successful vote. Voters interested in reviewing the proposed immutable code can do so here.

Other Data Points — You will also see the time remaining to vote, the % Quorum needed for a vote to be considered valid, the vote status for and against, etc.

Vote Confirmation

When you click either “Vote For” or “Vote Against”, a connection will be made to your wallet to approve the transaction. This is a push notification, so you can potentially receive voting approvals to any device from anywhere you’re connected to the network. Confirming the transaction will lock the designated number of voting tokens to the proposal you are voting on for the voting period. The voting tokens will be retrievable once the voting window has expired.

Submitting Proposals

To submit a proposal, click the “+ Proposal” button in the top right corner.

This will bring you to the proposal interface. Here is where you link to the proposal description, as described in the Governance interface, as well as the proposal contract and the proposal repository (in this case GitHub) that contains detailed information about the proposal. Note that in Bancor’s case, a minimum of 25,000 voting tokens are required to make a proposal. This threshold can be modified depending on the scenario and environments. Also please note that similar to voting, submitting a proposal will also lock up the voting tokens so that they cannot be unstaked. It is required to vote for your own proposals during the voting window.

Development & Collaboration with Bancor

For Keyko, the governance module implementation project stood out when it came to planning and executing development, as Bancor had placed a particular emphasis on security and quality during the implementation. The goal from the outset was always to have the smart contracts fully audited before using them.

Indeed, Bancor has a high demand for quality and security when it comes to implementation, which is reflected in their smart contracts, whose level of security can be regarded as unique in the DeFi space. It was challenging to ship an application that has such a high demand for security in a very short time, but we were honored to have been entrusted with the task.

The code of the smart contracts is open source in GitHub gov-contracts

Decentralized Governance in Practice

This article highlights the real-world interfaces and workflows that new Web3 governance technology can facilitate for an organization. The goal of these types of solutions is to increase stakeholder engagement with tangible “skin in the game” decision-making mechanisms. These Web3 solutions also enable the introduction of incentives to align the goals of ecosystem participants.

In fact, we’ve taken the next step and integrated much of this solution into Nevermined, the world’s first enterprise-grade unstoppable data sharing ecosystem. The result is Nevermined’s Governance Module that can be used to propose, vote, and deploy data decisions in a purely remote and decentralized fashion. This type of utility is incredibly helpful and timely, as the current pandemic has forced people to work virtually. Please feel free to reach out to us if you or your organization would like to know more about how Nevermined can help you govern your data.

And if you’re interested in knowing more about Bancor’s governance proposals, we invite you to visit their governance page. If you’ve had the opportunity to stake on some of Bancor’s proposal, we’d love to hear from you — feel free to drop your comments below or reach out to us directly with the email below.

Shout out to Keyko’s Sensei Sebastian Gerske, Pedro Gutierrez, and Dimitri de Jonghe for their work defining, architecting, and building Bancor’s governance solution alongside the Bancor dojo. Also to Tom Debus from Integration Alpha for his contribution on how to repurpose this technology for use in industry, specifically FinTech and PropTech. Editorial support for this article was provided by Don Gossen and Jesse Steele.