As mentioned in the latest Credsperiment Progress Report, governance is a hot topic on everyone’s mind The reason is that the SourceCred algorithm will determine who has power and who gets recognized in a community. If the process to tune and improve SourceCred is opaque or centralized there is a high probability of dystopian outcomes. If the participants of the SourceCred game can verify the data and improve the rules of the game then there is a high probability that outcomes will reflect the values of the community. I think I speak for everyone here when I say that we would prefer that SourceCred empowers people rather than repressing them. Ensuring that everyone can understand and verify the SourceCred algorithm is first an engineering problem, then a UX problem.
First we need to build the tools and protocols that make it easy for people to verify the SourceCred algorithm and the data that it’s run on. Unlike many blockchains that are “trustless,” SourceCred is designed around a “trust, but verify” model. This is because most blockchains, today, do not have the computational bandwidth to run the SourceCred algorithm. If anyone sees that Cred is being distributed in ways that are not in line with the agreed upon public parameters for the system they can reject the distribution, fork the algorithm, or potentially slash the stake of the person who submitted the incorrect data. This could be done by having some aspects of SourceCred algorithm public and immutable. This could be accomplished by creating a CreDAO that stores hashes (not the full data) of the cred history, weighting parameters, and the SourceCred algorithm. Then everyone can verify their instance of the algorithm against the hash and input the public parameters. Everyone should get the same results. If so the person who ran the alg submits it to the DAO and gets a prize. If all the verifiers don’t agree they could contest the results, potentially earning a reward for doing so if they can prove that someone cheated. An initial prototype of what this might look like was created on Aragon (code).
Once we determine a model that works, we need to make it easy to use. This means improving UI/UX around viewing Cred, verifying Cred, and participating in the process of submitting and contesting Cred to a trustless immutable database (DAO). 1Hive plans on building out an Aragon sidechain that could help improve UX considerably. Beyond that it would be great if there were more web portals like SourceCred prototype that allow people to check their Cred (like a blockchain explorer, but for SourceCred). Ultimately, the easier it is for participants in the system to have access to complete and truthful information, the easier it is for them to make informed decisions.
This brings up the next challenge, once people can understand, verify, and participate in the system how do they change it? How do users affect the weighting and distributions of Cred? How do users engage in governance of the system? This is an open design question. There are many ways you could design the SourceCred instance, and most likely 1 size will not fit all. It is important that each community is free to modify and adjust SourceCred to reflect their values and goals. This could potentially be done by simply voting in an Aragon DAO. There would be an app that holds certain values for an instance of SourceCred, and people could use their Cred to vote to change those parameters. Their voting would be weighted by the amount of Cred they have in that community.
If people who have Cred are going to change the parameters of the algorithm that gives them Cred, won’t they just choose parameters that give them more Cred than anyone else. Well… maybe. For a network to accrue value users need to want to engage with that network. More users/engagement, more value. It’s essential that any app, platform, or community is setup so that developers don’t “premine” Cred and give themselves a disproportionate share in governance that allows them to control the community indefinitely. It’s also important that everyone has enough skin in the game to align incentives for all parties involved. This is another open design question, and ultimately everyone will be free to initialize SourceCred however they want. The SourceCred community can, however, provide guidance, best practices, and research to help communities avoid snafus and choose parameters that will help them achieve their goals. Currently SourceCred does not have a “research” branch, but if it did… that would be awesome