-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kernel Governance: TCR research #36
Comments
@spalladino assigned to you based on your previous work on this. Care to share your document and conclusions here? |
Here it goes. I'll update with conclusions as soon as I draw any from this research! Token curation resourcesCuration marketA token specific to a community is issued with continuous minting, with a price that increases as supply increases. The money raised from the sell is kept in a communal pool, and at any time people can exit by selling the tokens back. The selling price will depend on the current supply, so early adopters may turn in a profit. The token can then be used to signal approval towards specific information or decisions. Holders stake their tokens towards a particular piece of information, granting it a percentage of approval within the market. They may also choose to delegate their backing to a curator.
Minting could additionally issue extra tokens to a beneficiary, such as foundation or implementor. If the token belongs to a project, and is used for prioritising development, a fraction could be issued to the development team. Also, an initial token launch could be used to bootstrap the token, which then continues with a continuous minting model.
Curation markets may split into sub-markets, where the token for the sub-market can be purchased using the token for the parent market. This does not require permission from the parent market, and may happen naturally as a market grows. Curved bondingUse a more general token (such as ETH) to buy a project token (such as ZEP). The price of ZEP increases as the supply increases (curve could be linear, logarithmic, or any other kind). ETH used for purchases is kept in a communal pool. Buy and sell price may have a gap, to force buyers to stay for a time before selling. Curved bonding is ideal to be used as pricing mechanism in curation markets.
Bonded curve can be used for pricing goods. Access to a good may be set as a fixed price in projectTokens, and the price of projectToken determined by a bonded curve. Users can buy projectTokens, and either keep them (guessing that demand will increase, increasing the price), or redeem them instantly for access to the good. The provider of the good can also choose to sell the tokens immediately back into the communal pool (and get ETH back), or keep them (guessing that the demand and price will increase) to sell later. Curated registries
A token-curated registry is a list of curated entries. It requires a specific token for the registry, and involves three roles:
Voting can follow any scheme, as long as it relies on the number of tokens of the holder, and a commit-reveal mechanism is used. Continuous token curated registries mix registries with bonded curves. These are curation registries, with a continuous token emission model similar to curation markets. In these registries, the token is not minted initially in a token generation event, but anyone can buy or sell a token at any moment. The price of the token is proportional to its supply, so a higher interest in the registry should cause more people to buy the token, and drive its price up. This further incentivises the token holders to make a good job curating the registry. The main difference between token curated registries and markets is that the former are binary (ie a participant is or is not part of the registry), while markets allow for signalling a continuous level of approval. References
|
Following is a potential idea for kernel mechanics derived from token curated markets. I'm writing it here for future development, since we'll probably be tackling it after the MVP. Token curated market per kernel versionEach new kernel version is represented by a token, with an associated token curated market, with different buy and sell curves. A token for a specific kernel version A, let's say TKA for short, can be purchased in the curation market with ZEP tokens. Whenever TKA are purchased, the developer who proposed version A gets a small percentage of the purchase (in TKA) as a reward. This generates a payout to the developers behind a version whenever ZEP holders vouch for a particular version. Usage of token curated markets also incentivise early discovery of good new kernel versions, as token holders will be interested in buying in early in promising kernel versions. Proposal of new versionsTo prevent spamming, a developer who wants to propose a new kernel version B is required to buy in an initial batch of TKB. The difference in buy/sell curves could be implemented such that, if the developers attempt an immediate sell of TKB for ZEP, they actually lose a significant amount of tokens in the process. Development bountiesBesides signalling approval for version A, TKA can have other uses, such as development bounties. TKA holders may be allowed to stake their tokens as a means to request a particular development on top of version A. Developers can then propose an implementation of the requested feature in a kernel version A2. The TKA holders who staked their tokens in that feature can be given the option to switch their tokens from TKA to TKA2 at a preferred rate (or during an initial restricted setup stage). This way, instead of directly paying out to the developers for implementing that function, development bounties are paid out via the fees awarded to the developer who proposed a version when users buy that version token. And users are incentivised to purchase TKA in order to stake them towards a feature, and get an edge in investing early in TKA2, if they believe the feature is worthwhile. Market treesA further enhancement of the token curation markets is to mimic the kernel version trees as tree-like curation markets. Let's say that kernel versions TKA1 and TKA2 are proposed, both of which extend from TKA. Then, the curation markets for TKA1 and TKA2 can require TKA instead of ZEP for buying in. This ensures that the developers of version A get a fee whenever a user wants to buy either TKA1 or TKA2, since they are forced to buy TKA in the process. This way, the dependencies tree is mirrored in the curation markets tree. Inflationary tokens vs purchase feesInstead of developers collecting a fee from every purchase of TK, an alternative for rewarding them could be making all TKs inflationary. Every certain time, for version A, the system would mint a number of TKAs for its developer, proportional to the total supply of TKAs. This way, value is moved over time to the developer who proposed a version, as long as users remain interested in that version. TCRs for whitelisting versionsTo prevent malicious teams of developers from proposing code stolen from other development teams, or not properly indicating that their version TKA1 extends version TKA, or any other malicious behaviour, a TCR could be set up for approving new kernel versions. All proposed kernel versions could require get approval from a TCR, managed by ZEP token holders, in order for their kernel to be accepted as a candidate, and its own token curated market set up within zeppelin_os. This would act as an initial barrier to prevent foul play in the system. |
Awesome research and proposal. Moving to https://github.com/zeppelinos/labs/milestone/2 as it's out of scope for https://github.com/zeppelinos/labs/milestone/1 |
A new post from Simon proposes a combination of Bonding Curves and TCRs. Every time someone buys in, a set of beneficiaries receive a fraction of the purchased tokens as a reward. Such set is defined by a TCR. This would allow another approach for rewarding Kernel developers. Instead of having a token per each kernel version, a single token can be used (or a single one per kernel distribution, or other grouping), and the developers that receive the rewards chosen via a TCR. This requires a bit more coordination though, and one of the previous approaches may actually be more efficient. |
@fzeoli mentioned offline that a potential issue with using token curation markets per-kernel version, and it is that it heavily punishes honest players who vouch for an apparently fine version, but a bug is discovered in it later, causing a mass-exit from that token and crashing its value. This makes the risk for vouching too high. This could be circumvented by defining Market Trees as described above. If a "good" version is found to have a critical bug, it is expected that a new one (or more than one) would immediately spawn from it fixing the issue, and vouching would move to it. Now, if tokens for the new version can only be acquired in exchange for the tokens of the parent version, the price of the parent version would not drop. In other words, the value of the token of a version only drops if stake is moved to another branch of the tree, but not if it moves to a child (or descendant). The main issue with market trees is that, for long development lines (ie a large number of versions across time), it could be an issue to reach the "target" market, requiring exchanges in many different intermediate markets. A possibility would be to add "shortcuts" to certain markets (such as major releases) so they can be purchased directly with ZepTokens or ETH. |
Read about Token Curated Registries and determine how much we can reuse/adapt for zOS kernel governance
The text was updated successfully, but these errors were encountered: