Governance Initiative: Experimenting with SourceCred

What is happening?
A working group has been created with the goal of putting together a trial of the SourceCred algorithm within the Maker community. The creators of SourceCred are working with this group to put together a plan of action in how SourceCred can be most effectively used for this community.

The working group is aware that this trial will require sign-off from the community before being put into practice, rest assured that if there is widespread objection once the trial plan has been presented, it will not be put into action.

Why is it happening?
Despite some misgivings, several people have seen potential in the SourceCred algorithm to help to solve problems of incentivisation and participation in the Maker community.

Who is involved?
@LongForWisdom created the working group with the blessing of @rich.brown and has reached out to members of SourceCred (@s_ben, @decentralion @Beanow) who have agreed to work with us on this trial. Additionally, @charlesstlouis and @rawhaus have independently expressed interest in SourceCred and have joined the working group.

When should we expect results?
This is very early days at this point. I would not expect results for some time yet (months not weeks.) I will update this post when a more concrete timeline has been determined.


Update: The initial forum post explaining the trial has now been posted to the forum, and can be found here: Maker SourceCred Trial

10 Likes

It will be interesting to see what comes out of this.

Do you folks have any kind of rough idea on timelines and goals?

1 Like

Not really. As I said, we are still very early in the process, so far just meetings and discussions. For timeline: at least a month, probably closer to two or three. For goals: My personal goal is to incentivise participation in governance on this forum in a scalable way. Other members of the working group I believe have different but related goals towards incentivising community development and technical contributions.

This is really interesting. For reference for anyone interested, SourceCred has a A Gentle Introduction to Cred on their forums.

@LongForWisdom how would you relate identities? For example, I have an identity on the forum here unique to my username and email, and I have identities on chain unique to my address that I vote through. Could this involve signing a message and posting it to my account to assert ownership and earn cred for my actions on chain?

Hey @dawson, welcome to the forums.

In the future there are lots of actions that could be included that allow you to earn cred, I hadn’t previously considered applying it to on-chain actions so thanks for sharing that idea :). For this initial trial we’ll be focusing on this forum, but yeah, if the trial is well received then I could easily see cred being rewarded for on-chain activities, as well as github contributions and potentially others.

1 Like

Hey @dawson, glad to hear you’re excited about SourceCred! Full disclosure, I’m a SourceCred contributor helping Maker explore a trial.

SourceCred has a feature in production that allows you to have a unified identity across platforms. Currently, it’s based on usernames. If you have one username on one platform (e.g. Discourse), and another username on a different platform (e.g. GitHub), you just need to edit a JSON file that maps the identities. E.g. here’s the JSON file for SourceCred.

As for tying an identity on Discourse to an MKR address, that does open up some interesting possibilities. Certainly something we could explore.

@s_ben who updates this JSON file (or how is it updated and managed at scale)? Is this automatic, ie everyone on Discourse is added, is there a registration interface, or is it manually updated? I think the best UX would be everyone participant in a community is automatically included and starts accruing cred naturally.

Have you considered using public proofs to ensure linked accounts are owned by the same individual? For example, SourceCred could have some notion of a primary / root identity. If I then want to link my Discourse forum account to my SourceCred identity I would sign into the SourceCred interface and say “I am @dawson on the Maker Discource”. SourceCred then challenges me to prove it by giving me some text with a unique token to post to my profile, like “I am @dawson on SourceCred and here is my proof ~token~”. A SourceCred bot could pick this up and confirm I have proven ownership linking my accounts. I could do the same on Github by posting a Gist, or for a crypto address by signing a message with wallet key and posting it.

(This is loosely how Keybase does public proofs)

Also curious, where is the weight of an individual in a given community displayed? Or how is reputation
/ cred used in a community? Is this something I could display on my GitHub profile, or could this be used to automatically label MRs and prioritize MRs of people with more cred in a community?

Sorry the barrage of questions but I think this is a pretty interesting idea and am really curious :slight_smile:

I would think we would be better off using github’s oauth API’s for this sort of thing. Most other sites have similar mechanisms as well.

I would imagine this doing this at scale would mean that there is some cred dashboard where I probably would need to login with my forum credentials and then link my various off site accounts using the oauth apis for various other sites.

As far as verifying onchain identities go idk how much research has been done in this area, so you might be able to get away with rolling your own solution? There seems to be the DIF which seems interested in solving this problem, but I haven’t read enough documentation to say whether or not that is a good fit.

One of my big open questions here is how does maker prevent cred from being some worthless token that I have?

I know that it is probably too soon for an answer on that front, but it seems like something we should be trying to think about as we lay out plans for this.

Are there going to be mechanisms for me to sell my cred? Why would anyone want to buy it? Is the protocol setting aside dai to be distributed to cred holders?

Not really looking for an answer here per se but just some questions that I’d really love to be answered by any plans that I saw coming out of this trial.

This is indeed how it works. Currently just using Discourse public APIs to pull all public content into a database and analyzing it. Everyone is included automatically.

Identity resolution is a deep topic. I know the devs have discussed this a lot, and could probably tell you more about future plans. For this trial, I believe we’re just using Discourse. Therefore we’re relying on Discourse authentication at the platform level, and human validation at the social level (i.e. we’ll be monitoring scores and activity as part of supporting the trial). Since the number of regular Discourse contributors with significant cred scores is relatively low, this should not be a problem.

As SourceCred scales, tackling larger and larger communities, and cred goes on-chain, solutions like the ones you’re suggesting will be necessary.

In the tread that started it all, I posted some initial cred scores for this Discourse and the mcd-cdp-portal GitHub repo. There you can see a hosted instance with default weights and a UI that shows cred per contributor over time. How reputation/cred is used in a community is up to that community:) In SourceCred, we pay contributors by cred score. In other communities, it could be just one input to a compensation or governance mechanism. Or something else entirely.

A SourceCred contributor recently made a GitHub action actually that can generate contributor graphics based on cred scores.

image

We’ve been investigating ‘cred weighted voting’ for our internal governance. Lots of potential applications there. As for prioritizing certain work, we are planning on rolling out a feature called boosting, which creates prediction markets on contributions. But I don’t want to derail…won’t be in prod in time for a Maker trial.

Incorporating on-chain identity and actions into the UI is on the roadmap for 2020, but for now we’re just focusing on improving the cred scores.

Happy to answer!

1 Like

While SourceCred has plans to turn cred into a token, for now it’s just numbers in a database. When it is a token, the idea is that it will be non-fungible. For a Maker trial, I assume MKR or DAI will be distributed.

Edit: cred will not be a token actually, though in the full SourceCred cryptoeconomic system, there will be a cred-based token called Grain, as explained in this comment by @decentralion (founder of SourceCred).

If that is the case how do these funds get procured and budgeted for? I assume procurement would probably mean taking money from the system buffer in way or another, but that raises the question of how much to take and at what rate. What do we think the mechanisms for setting that budget will look like?

Again mostly just trying to state questions that i would want answered by the plan that ultimately results from this effort.

If Maker moves forward with a trial, we plan on applying for a Development Grant. So SourceCred may be paid some DAI from the Foundation–we’re also open to accepting MKR if the Foundation trusts us with it. I assume contributors would be paid with Foundation funds as well for the trial, though don’t quote me. We’re still in the early stages exploring how it would work. Long-term, the goal (afaik) is for contributors to be paid directly by the protocol. That raises a whole host of issues though, and I am out of my depth there. I am generally excited by that possibility though, as Maker has a lot of the base level technical and governance infrastructure set up already.

Cred actually isn’t a token at all, and there isn’t any way to buy or sell it. Cred is a representation of how much value a person has added to a project; thus it’s both identity-specific and constantly updating. You can’t sell your cred any more than Newton could sell his cred for coming up with Newtonian mechanics.

In the full SourceCred cryptoeconomic system, cred is just one part of it. The other key piece is grain, a cred-based token. The idea is that every project can issue its own grain (e.g. Maker-grain). Grain is distributed directly to contributors, but can be bought by project sponsors. Grain thus acts as a “proof of support” – everyone who has it either supported the project by contributing directly, or by buying grain from another supporter. The key privilege that Grain will confer is the ability to modify the cred graph, by “boosting” contributions, which increases their cred scores. Having a lot of grain thus gives a sponsor the ability to incentivize contributions that they care about.

If you want to learn more about this in depth, I recommend this talk that I gave at Web3 Summit at ETHDenver a few weeks ago: SourceCred: A Social Algorithm. It also gives an overview of how cred calculations work, and addresses a lot of common concerns and questions about making the system robust to gaming.

In the specific case of a Maker pilot trial, we might leave grain out of the picture and just distribute Maker. Ultimately it’s up to what you as a community, and the Maker Foundation, think is appropriate–SourceCred is happy to support your experiment either way. :slight_smile:

4 Likes

Am I understanding this correctly: Community contributors will be rewarded with MKR. The value of MKR awarded will be determined by the amount of ‘Cred’. There will be no added mechanism to influence governance, it is simply the awarding of MKR to people who are contributors?

Yes, that is the basic idea the SourceCred team is putting forward right now. This is all still at the early stages though, and the final proposal may shift (e.g. perhaps Maker decides to reward contributors in DAI instead). If the working group decides to move forward, a document clearly explaining the parameters of the trial will be presented, and as @LongForWisdom mentioned in the above post, if there is widespread objection, it will not be put into action.

2 Likes