This draft aggregates my own opinions as well as those of @mzargham, @METADREAMER and many others in the SourceCred and MetaGame communities.
Also, many thanks for @joecharlesworth (and potentially you!) for reading, reviewing, and providing suggestions.
Motivation
Every day we create value in the world. This value is subjective based on our preferences and values. We use a lot of mechanisms to express those preferences such as emojis, messages, and payments. Money, as a means of exchange, allows us to store and exchange “value.” This is an improvement over bartering constantly, but we are still lacking efficient markets for things that aren’t things: ideas.
The value of an idea is priceless. Literally and figuratively. Outside of some very specific contexts, we don’t have mechanisms to price ideas. This is odd because thinking (and thumbs) is what enables humans to go beyond any other species on eart. We spend the first quarter of our lives focused on education, but then we don’t have ways to directly reward excellent thinking. We only have ways to reward actions that can be rewarded by a market of buyers and sellers.
SourceCred changes this by creating a market for all the things. It does this by page ranking all the things. Value functions are no longer solely determined by a fixed set of players who can can pay for goods and services - value functions are determined by the engagement of all the market participants (players in a “game”). This goes beyond buyers and sellers to create a third new thing. SourceCred moves us beyond the traditional game of finance (optimizing for a single reward function: money) and moves us into a meta-game of human coordination (where the players preferences determine what is optimized for).
The more players engage with your content, the more points you get. All players play and all players get points. Value functions (take a specific action to get points) with multiple subjective value functions (learn what do most people like). Different people like different things, so people’s subjective preferences will determine the measure of that value rather than a fixed system. Humans act as a subjective oracle to the game, expressing what is valuable and shaping the actions and beliefs of the other players. It’s a self learning system of humans by humans, mediated via software.
A value network that doesn’t require a global sense of “value.”
SourceCred as a design pattern is credibly neutral, but any real world instance of it is not. This is because the players in that game will be expressing their preferences and there will be governance of the weights/parameters. The players of any specific SourceCred game will be defining it and shaping it according to their values and preferences. This is good because often the most valuable players aren’t the ones who play the game, but the ones who redefine it (aka entrepreneurs). SourceCred rewards and optimizes for this behavior.
All this being said, at the end of the day, humans always act on reward functions of either money, power, or fame. Even with Sourcecred, that still is the baseline motivations of all the players, but it allows for those things to be more fluid / dynamic and determined in a declarative way rather than an imperative way.
SourceCred is a tool that improves the contributor experience. It does not intend to completely “fix” human coordination and collaboration. In fact, we don’t even know if it works at all! We’ve been dogfooding it, however, and results are encouraging. While nothing will ever be perfectly optimized, we feel like this is a step in the right direction. The journey to the ideal is more important than reaching the ideal. There is no end game. The only thing that matters is what we are doing today is better than what we are doing yesterday. (Inspired by One Punch Man)
SourceCred Token Economy Overview
Initial whiteboard sketch
Temp diagram
Go here to see the latest and greatest diagram.
SourceCred Community Economy
For the purposes of this exercise SourceCred is treated as a black box. We assume that a community using SourceCred has configured it across platforms (Discord, Discourse, GitHub, etc…), tuned the weights, etc… The important thing here is that SourceCred outputs scores that we can then use to mint Grain on-chain.
Grain Governence
We then have the governance mechanism that determines how tokens are minted/burned.
The token contract could be:
- a standalone token contract
- a DAO that can mint shares
The governance mechanism for minting and burning of tokens could be any of the following:
ERC-20 Grain Market
The primary Grain Market is assumed to be an automated market mechanism such as a bonding curve. This solves the bootstrapping problem allowing the market to exist in a permissionless way. Uniswap is the most readily available of these mechanisms available in the wild, but this could also be an Aragon Fundraising DAO. The benefit of modeling this using Uniswap is that it is a generic mechanism that allows anyone to setup a Grain market regardless of the on-chain contract/system they use to mint Grain.
Some notes on Uniswap:
- The “fee” is just a bit of each transaction that stays in the pool. Liquidity providers are entitled to a portion of the pool relative to how much liquidity they provided. As the pool grows, the total value that a liquidity provider has claims on increases.
- If the pool is an ETH pair it’s really just 2X the amount of ETH in the pool because the ERC-20 in the pool must always equal the ETH on the other side of that market.
- An oracle is then needed to get the price of ETH, and then you can easily calculate the “market cap” of that token based on the ETH in the pool.
- So the value of your pool tokens = market cap of token / your percentage of the pool
The Larger Game
The larger game nests economic systems. It’s economics all the way down.
- The local SourceCred economy
- The primary Grain market
- The secondary Grain market
- The broader Ethereum economy
- The global fiat economy
All of these markets affect the prices of each other. For example, if there is a Grain/ETH Uniswap pool the value of your token will fluctuate as ETH prices fluctuate. Furthermore, if your token is cheap it becomes very easy to 51% attack either the token itself of the market/liquidity-pool for the token.
Next Steps
This post is a draft. We need to refine it so that it’s accurate and intuitive.
Once we have a high level overview of the system, we need to drill down. The next step is to take apart each mechanism in the diagram and define it explicitly. What does it do and what are the characteristics we need to hold under all conditions?
Then we need to write these out as python functions.
Then we need to run those through a CadCAD model to explore how the system might behave under various conditions.
Cryptoeconomics 101
Mechanisms = words
Protocols = sentences
Composing protocols = paragraphs
Economies = books
Composability is the key. Looking at mechanisms in isolation within a closed system does not work. On Ethereum any contract or protocol can be composed into another. This is why, esp for DeFi protocols, the cryptoeconomic analysis is just as important as the solidity security review - as oversights in both can cause unintended side effects, esp due to reinforcing feedback loops.
- While Ethereum contracts are deterministic, they are also state dependent and if the state changes in unintended ways the contracts will behave in unintended ways. Blockchains computer over context. You’re writing deterministic code that is conditional on the context of the state of the blockchain.
Mechanism composability is key. Often a mechanism is fine on it’s own, but when it’s combined with other mechanisms the interaction creates new (and often unexpected!) things.
The complexity of a system increases exponentially the more complex the mechanisms and the more of them there are. Our brains can think through lots of stuff, but we are not equipped to think through complex non-linear systems in our heads. This is why we need modeling: unknown unknowns are often the biggest cause of economic ruin.
Design ⇒ Test ⇒ Iterate ⇒ Deploy ⇒ Analyze ⇒ Iterate ⇒ Analyze ⇒ Etc…
1: Define design goals
- Ex: The users are indifferent to gaming the system because there’s very little value in doing so.
2: Identify principles
- mechanisms where certain properties hold under all conditions
- these cannot be broken down further
- rights and access controls (permissions)
- can be state dependent
3: Compose mechanisms into design patterns
- series of actions that will produce consistent and reproducible results
- a “protocol” is just a design patter that has been written down in a programming language
Thinking through mechanisms and composing them into design patterns is essential for good systems that people can use in a variety of use cases and contexts.
4: Model design patterns
The mechanisms are the words, and the design patterns are the sentences. The more you understand the language the more expressive you can be to deliver the message desired (design goals). It’s like having tools in a toolbox so that you don’t become a man with a hammer.
5: Test IRL
Theory only gets us so far. We need to start dogfooding the system in controlled and low-risk experiments. Then we can recycle our learnings back into improving the design and trying a new experiment. Yay science.
NOTES
SoureCred allows you recognize and reward contributions to both tangible and intangible contributions.
Unlike robotics where robots need to learn a model of the world, cryptoeconomic systems are simpler to make because the humans do the computation. Humans take actions in the system and the mechanism design needs to coordinate their actions towards the intended goals of the system.
- The hard part, however, is that unlike robots humans do not act “rationally.” They tend to express preferences and value rather than optimizing for a reward function. (/1up to behavioral economics)
If we think of capital as a physical model, it can unlock new mental models:
- liquidity as energy
- fees as friction that capture energy
Financial rewards affect decision making, but ultimately money is a constraint on your ability to do things; you use it as a sort of action potential (power), but its not intrinsically valuable (other than as a means towards other ends). In practice DAOs open pathways to achieve ends (to self actualize individually and as groups) without necessitate money as an intermediary. Money/payment is just translation protocol, that allows you to transfer value between systems.
Map ↔ Territory
What we believe ↔ What happens IRL
^^ these things need to connect
Simple Cred Sheet
Until Initiatives/Quests are enabled, we can add points for out-of-game activities manually before submitting tx on-chain.
- This has an unfortunate side-effect in that the Cred earned through out-of-channel means will only be counted in the final score. It will not add to a player’s weight within the game. This means your final score might be 100, but the impact of your actions within the game would only be weighted as 80 or something.
- The also has the fortunate side effect of working now without waiting for multiple teams to implement multiple features.
Chats
SourceCred Cryptoeconomics chat
MetaGame Stategery chat
Data
SourceCred in 5 minutes
An ERC20 to track Grain
SourceCred ERC-20 Token and/or DAO
The MetaGame SEED Market
Minting XP Instead of SEEDs