Skip to content
This repository has been archived by the owner on Mar 28, 2023. It is now read-only.

Governance in v2 #22

Open
4 tasks
mhluongo opened this issue Mar 12, 2019 · 2 comments
Open
4 tasks

Governance in v2 #22

mhluongo opened this issue Mar 12, 2019 · 2 comments
Assignees
Labels
🗣️ discussion Open discussion ⚙️ system-design Up-front system design tbtc
Milestone

Comments

@mhluongo
Copy link
Member

mhluongo commented Mar 12, 2019

Explain governance for v1, "governance by contract holder", as well as a rough future governance plan aiming to solve the "somewhat free rider problem" that arises from trusting work token holders to govern tBTC.

Governance in v1 is by contract owner. The contract owner has a few strictly delineated privileges, which don't include upgrades, and we've attempted to prevent the owner from having any sort of kill-switch. The documentation process can be followed along here.

Governance in v2 is more interesting. The design philosophy of the project so far has veered more and more toward Bitcoin's "voice or exit" rather than the governance games common in many other projects. What should governance in v2 look like? If we've learned anything, it's that less is more.

A few things could improve long-term resilience.

  • More elegant handling of BTC hard forks, rather than just following the heaviest chain.
  • Market discoverable signing fees or another governable fee-setting structure
  • Governance of price feeds if they can't be removed entirely
  • Collateralization safety thresholds

One proposal for distributing governance rights is #119.

@mhluongo mhluongo added 🗣️ discussion Open discussion ⚙️ system-design Up-front system design labels Mar 12, 2019
@mhluongo mhluongo mentioned this issue Mar 12, 2019
3 tasks
@mhluongo
Copy link
Member Author

Initial thought is to split this into two sub-problems

  • tBTC economic variable governance, which I believe we can solve well in v1
  • smart contract upgrade permissions, which I think we punt with a multsig contract owner in v1, then eventually solve with the same voter set from variable governance as it matures

To solve economic governance, including setting the minimum deposit fee, fee rate, and bonding overcollateralization factor, we need to answer a couple questions

  • What, exactly, is being governed?
  • By whom?
  • Via what mechanism?

I believe that the primary economic governance of tBTC should be by a mix of active depositors and signers, rather than KEEP token holders, to avoid the "somewhat free rider problem" that's introduced by holders who aren't participating in tBTC, or who might have incentive misalignment with other projects than tBTC launching on Keep.

Obviously the solution is a new token 🙃

Suppose each opened deposit for a standard lot size (say, 1 BTC). Over time, that deposit can mine a new token- call it TBTC-G for "governance"- equally splitting the newly minted coins between the deposit owner and the deposit signers. This mechanism distributes governance tokens equally to depositors and signers proportional to the value of deposits and the average time each deposit is open.

@mhluongo
Copy link
Member Author

As far as deposits go, the code to mint this token is straightforward, and if the token has any value, it offers additional incentive for well-behaved signers and deposit owners. It can also be used as a reward in a few other awkward spots in the system (eg to incentivize the maintenance of the light relay).

Great! We now know who will govern- holders of a governance token split evenly between depositors and signers. What's the actual governance mechanism?

@mhluongo mhluongo modified the milestones: Pre-audit, Post-mainnet May 16, 2019
@mhluongo mhluongo added the tbtc label Sep 16, 2019
@mhluongo mhluongo changed the title Governance path Governance in v2 Apr 20, 2020
@mhluongo mhluongo modified the milestones: Post-mainnet, tBTC v2 Dec 10, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🗣️ discussion Open discussion ⚙️ system-design Up-front system design tbtc
Projects
None yet
Development

No branches or pull requests

1 participant