SourceCred

CredSperiment Progress Report

We’re launching phase 1 of the CredSperiment of the month. Here’s a report on how progress towards that goal is going.

SourceCred Discourse + GitHub Integration

We’ve made a lot of progress on getting Discourse and GitHub both working together in SourceCred. The official SourceCred prototypes now include:

In contrast to the Discourse sneak peek, the code for the Discourse plugin is now a lot more polished, and has been merged into master.

The presence of the combined cred represents significant technical progress towards launching the CredSperiment while having discourse from day 1. A lot of work went into refactoring SourceCred so it no longer assumes that all user identities come from GitHub.

Before the launch, there are a few more things to do:

  • Add identity resolution, so we can tie together people’s GitHub and Discourse handles.
    • I anticipate this will cause a flow of cred from GitHub into Discourse
    • I have a plan on how to ship this; however, if we encounter unexpected difficulties, I may punt on it temporarily and do first payments for the CredSperiment by just adding together the cred for different identities
  • Decide exactly what the (cred->$) payout strategy is
    • I have an idea that one part of the payout will be based on the last week’s cred, and one part of the payout will be based on lifetime cred; more details to follow.
  • Tune the weights to better reflect our values and priorities
    • Most notably, I think that the current weights under-value Discourse activity, so I expect we will boost the Discourse weights

With about 2.5 weeks left in the month, I feel pretty good about the timeline.

4 Likes

Sweet. Glad to see the discourse plugin coming along! The scores are reflecting my general sense of what went on.

Also liking the cred distributions at first glance. They feel about right… And the smoothing on the lines looks better than before.

While I appreciate the crediting, I would ask to have my pseudonym disconnected from s_ben (and edited from the comment please). Still have the same reasons for using the pseudonym. It’s probably nothing, but I’d rather not think about it. As a side note, while not needed for the CredSperiment, I do think pseudonymous participation is important, especially in DAOs. Something to keep in mind from a design perspective.

This is basically what I’ve imagined all along as the best way to pay people generally. Now that the cred is exponentially time-weighted, and with a decay that feels about right, I think a robust measure of current cred could be simply the addition of all cred over time. If we were starting from t0, I’d say just paying based on last week’s cred makes more sense to me. The total money paid out would then always match the total sum cred. If you wanted to reward older contributions more, you could maybe just decrease the exponential decay parameter? But since we’re starting in the middle, it feels like there should maybe be an “airdrop” or something (another potential use of SourceCred)?

Here is where governance is unavoidable. Deciding what compensation feels fair is the definition of politics. Our current governance system (benevolent dictator who occasionally convenes a meeting to gather feedback) makes sense. But it’s never too soon to think about governance, as it may inform design decisions. I sense that if all users for instance had an intuitive UI that allowed them to tune parameters until the graph “felt right” (which could be an interesting “voting” mechanism), they would likely come up with something similar, but with differences that reflect their particular domain knowledge, values, political views, etc.

Which reminds me. @mzargham do you have a video of your governance talk from blockchain week?

4 Likes

Glad to hear it!

I don’t believe this changed, but also glad to hear it :stuck_out_tongue:!

Done.

Agreed. I believe @burrrata is a psuedonym, so they can be our canary in the coal mine for ensuring that psuedonyms can use SourceCred just fine. :slight_smile: For the CredSperiment, they will likely need to connect a bank account to OpenCollective to take dollar payouts, and as an administrator of the collective, I may be able to see some of that information. But it still wouldn’t be public. And this won’t be an issue in the same way for DAOs; also burrrata could just take mana payouts. :slight_smile:

Yep, this is how I think about cred. (I call it “total cred”).

This doesn’t account for the fact that cred can change retroactively. E.g. if the weights are changed, all the cred throughout history. I also have an idea that if a contribution is boosted, the cred for that boost accrues in the time period it was created, not in the time period of the boost. This has some desirable properties, will write more about it later.

Therefore, we need a payout mechanism that can handle the situation where someone has been under-paid (or over-paid) for their past contributions.

However, I do want to have the explicit “pay based on last week’s cred” term in the payout function so that people get some fast feedback, which is a lot more engaging.

I agree that we should be thinking about governance early, and planning for how to migrate out of benevolent dictatorship and into collective governance. Having some kind of cred-weighted voting scheme around the parameters seems promising. We’ll need to think about what kind of weird factional dynamics and gaming would emerge, though.

1 Like

Right…hadn’t considered that. In that case, it makes sense to pay based on a combination of weekly and all-time cred (which would be calculated from legacy, non-timeline cred then?). Seems tricky. I’m wondering about new attack vectors now. It’s reminding me of why Reddit (arguably a success) doesn’t allow upvotes or comments after a certain amount of time. Presumably because if something blows up, is high on Goolge’s rankings other otherwise important, it gets gamed…Here’s an idea. What if, when a contibution from the past is boosted, you just simply “reran” the algorithm starting from that point? Would cred then flow “forward” in time, eventually affecting present scores?

Have some governance ideas, but will save them for another thread.

1 Like

I’m getting 404s on the cred links?

If you don’t mind me asking, what reasons?

:100: This is so important. I could dump a huge pile of links here to explain why, but a lot of them are fairly complex/boring. TL;DR: the ability to differentiate between A and B allows you to discriminate between A and B.

By applying the principles of least authority to data disclosure, users are in control and able to share the information they want. This prevents discrimination based on location, age, race, gender, status, wealth, etc… Also, if everyone does this, it creates a level playing field for brainstorming where all parties are treated equally vs just reading/replying to posts by community leaders.

To make this more concrete, here’s a great Wait but Why article that explains this phenomenon with pictures.

Now (assuming you read the article) imagine that each megaphone represented not just the media, but cred. Then imagine that cred is not just a fun rewards token, but a governance token that is used to establish reputation in a community. In this example having cred = power, influence, and access to credit, jobs, admission to schools, etc… (like the social credit system - fun infographic!). Furthermore, anyone who disagrees with those in power or goes against the norm would then be at a disadvantage. This incentivizes group think, stifles innovation, and creates a really effective dystopia. SourceCred is capable of amplifying all of this.

AFAIK the goal of SoureCred is to transparently recognize and reward contributors, but you cannot transparently and seamlessly recognize and reward community contributions if the people in those communities are afraid to say, do, and support the things they actually want. Optimizing for psuedoanonymous participation (via all data points, not just user names) reduces the ability for anyone to censor anyone else while also increasing the diversity and authenticity of ideas. This helps balance of power between those who create the cred algorithms and those who play the cred game. If anyone anywhere can earn cred, and thus influence in the system they are participating in, the system will more likely reflect the values and goals of that community as a whole vs any particular group. This key point governance, will (IMHO) be the factor that determines if SourceCred is used as a tool that empowers people or as a tool that suppresses them.

In this example is the lifetime cred affected by if/when you cash out, or just a separate variable used for cred weighting that tracks reputation earned regardless of if you cash out your tokens? (this might be important because otherwise the system would favor those who have the financial freedom to accumulate cred while disfavoring the “workers” who need to cash it out to pay for stuff)

That seems reasonable. If the project has a history of rewarding contributors in a fair and transparent way it would encourage more people to contribute.

By the time you need governance it’s too late. The system needs to be put in place before there’s contention. If everything was okey dokey we would never need governance because everyone would just get along. Governance exists to prevent and manage disputes. This is essential. The best time to work on governance is yesterday, but the second best time is now. @decentralion Maybe we could start a governance category in the forum to start working on this?

That is what I do best, albeit often at the frustration of everyone around me lol

Oh… yeah this completely restricts my participation to mana payouts lol. Not sure what the latest iteration of the cred/grain/mana system is, but eventually these will all trade on decentralized markets right?

YES! It seems silly, but the fast feedback makes things feel much more like a game and much less like “work” lol

Yeah we actually want to try out cred weighted voting with some Aragon experiments so happy to test drive that and provide feedback. Also a governance category would help to start organize ideas and conversations around this

Looking forward to hearing your thoughts. Please do share! (in another thread)

1 Like

Yeah, my fault–I did a bad job deploying and accidentally rolled back the homepage to older content. @s_ben kindly pointed it out on Discord and I fixed it with a rollback, but that broke those links. I’ll repost the links shortly (a day or so) but better (with identity-reconciled cred).

I want to note there are actually three groups:

  1. Those who create the cred algorithm (i.e. contributors to SourceCred itself)
  2. Those who administer cred instances
  3. Those who play the cred game

Because it’s open-source, anyone who is in group (2) can choose to take on role (1) as well, and change the cred algorithm directly. (And we intend to make that as easy as possible, via parameter tuning, plugin selection, etc.) So that is already a very big difference in power relationships in comparison to a platform like Facebook, where administering (say) a Facebook group gives me 0 ability to change the underlying algorithms.

Yeah. I think any utopian technology contains also a potent kernel of dystopia. It’s good to keep this in mind. We’ve joked about “force cred” as the dark side version of SourceCred that we want to avoid.

The latter; lifetime cred is not affected by cashing out. That said, it might be possible to “sell” your cred. This is something I’ve historically been very opposed to but lately I’m reconsidering that opposition; it has to do about properly handling the situation where entities are “sponsoring” open-source contributors, and how cred should flow to the sponsor. I intend to explain my thinking and considerations in the coming weeks.

I disagree. Consider the American constitutional convention as a counter-example. Americans had come up with an inadequate system of governance (the Articles of Confederation) and after a decade or so found it wasn’t really working. Rather than using the existing governance system to manage the change, they created an ad-hoc system (the closed constitutional convention) to define a new governance structure, and another new ad-hoc process (ratification conventions, rather than votes by the state legislature) to approve it. This process was hella contentious. :slight_smile:

That said, the Americans did a good job of coming up with a constitution with an explicit amendment process, so that future changes didn’t require entirely ad-hoc processes, but could work within the system. So we can learn from that example.

Done. Feel free to make the inaugural post. :slight_smile:

Yeah, we’ll eventually support decentralized markets.

1 Like

For the same reasons I can’t comment here :wink:

Read the whole article (or that chapter anyway). Amazing analysis. Unfortunately, I think the online nature of all this (and its inherent ability for surveillance), makes these dynamics easier to form in some ways. But also brings the game to light. If we can design the incentives right, we should be able to see and tweak them to improve them.

Have been thinking a lot about the social credit system. The truth is that while we think the Chinese system is dystopian, we already have that over here in the US. It’s called the plain credit system. And all the related systems collecting and trading our data. In my view, credit systems don’t have to be dystopian. In fact, they can be really useful. We want to discourage anti-social behavior in our own communities too. The key, as the early cypherpunks realized, was the ability to opt in to privacy. And, in this case, to opt into the system you like best. It’s only dystopian if there’s this monolithic single system. If there are many thousands of “parallel societies” to choose from, a social credit system is beneficial. Just like an IRL social group’s normal against shitty behavior is good.

Lifetime cred should not be affected if/when you cash out. I think it’s important for people to cash out their mana tokens (or whatever) for dollars to pay bills. Otherwise poor people can’t participate at all. But if the project blows up and becomes very valuable, OG contributors should be able to re-engage the system and leverage their (now somewhat diluted) cred to earn more money or steer the system.

While fast feedback is fun, and could help make SC more engaging, I would caution that research shows that intrinsic motivation (what powers OSS) is increased by decoupling work from external rewards. Have experienced this myself in the Decred DAO. This could also increase the potential for gaming (already SC’d biggest weakness), as people could play games to farm cred and cash out before moderators discover it. Perhaps a time delay for payouts, so exploits can get zeroed…

Sweet! Got links? Want to follow this at a minimum.

2 Likes

These are really good points, @s_ben. It aligns with some advice @jbenet gave me around the importance of decoupling the rewards a bit.

For the CredSperiment, I was originally planning something like 50/50 (last-week/all-time) payout ratio. But I’ve wondered lately if it would be better to keep a smaller proportion on the immediate payout, and let more of it go through the adaptive and long-term system. Your comment inclines me more to go with the slower system, maybe 20 immediate / 80 long term. It’s more conservative, and we can always go more aggressive/faster later on, as we get more confidence.

1 Like

I think that’s wise. It depends on the intentions I suppose. If you’re looking to make a MMO-style game that’s really fun and engaging and pays you (a sci-fi future I’m looking forward to), then you want more immediate rewards. Delayed mana payouts could give you time to filter out cheating. But when I imagine myself approaching some random OSS project, with an aim to make a living from that, an emphasis on all-time cred make more sense. Where you’re new and learning, paying your dues and “interviewing” with the community, it makes sense you wouldn’t get paid much. Indeed, the community is likely investing in you. But you also want a clear path ahead of you to sustainable income. Long-term payouts offer that, and also smooth out your income stream once it starts coming in. If the leaderboard moves slowly but surely, rewarding real commitment and value added, I think that will be pretty engaging also.

In the end, I keep coming back to this ratio as perhaps the most important variable to tweak. And one that may vary by community, and perhaps over time within communities. E.g. maybe we want to do a “recruitment push” to attract new contributors. Or, inversely, perhaps you want a more conservative “monetary policy”, where people are incentivized because they know that if they really commit and work hard, they’ll have mana “residuals” from their work into the future, and a greater ability to jump back into the project down the road and earn meaningful cred.

2 Likes

Does the SourceCred protocol/team plan to accrue value from usage of the protocol? or is the goal just to get a few grants, create SourceCred, and then release it into the world to let people do what they will with it (and then move onto another thing)?

Resistance is futile…

Sounds like they learned the hard way that hard forks are a bitch to coordinate lol

but yeah you’re right, always has to be a balance between being flexible but also not over engineering problems you don’t have yet

Let the games begin!

Touche’. I really walked into that one. Was worth a shot though lol

Agreed. The key part is that we can bring them to light, improve them, and quickly see any problems that occur. It’s a bit of a dichotomy though because on the one hand you want users to have privacy, but on the other hand you don’t want things to stay in the dark. I think a good balance is when the system itself is transparent, but the participants in that system are free to individually disclose information as they wish. This works in the small game of the network/protocol, but in the larger game incentives can exist that lead to unintended outcomes (such as a wallet provider or exchange making users disclose information that allows an otherwise pseudonymous network to be monitored).

:100: If participants are free to choose, and there’s a legitimate competitive market, then it’s healthy. It’s when the market become opaque or authoritarian that it really becomes a problem.

:100: This is also the approach Daonuts is using so that participants can trade tokens and interact in the community economy without losing their accrued reputation

I too have experienced this in the Aragon community. It’s weird… like you need rewards for the system to be sustainable, but it’s really hard to make rewards feel organic and not shift the vibe of the project. It’s really really hard to get that balance right. I think that making the “reward” more than just money, but also reputation/governance makes it more social, and thus more natural for participants. Think about it… as you contribute to a community you earn “reputation” and experience. Everyone knows that. Bragging on the internet is the biggest feature of StackOverflow and almost every other forum lol. Having a token that represents that feels a lot more natural than just “getting paid.” If you can cash those tokens out too, then all the better.

Personally I think this is stupid as money is the core tool we use to measure and exchange value, but social norms/biases make it so that for some reason that can often feel weird to talk about and act on. Not sure why that is, but it’s my latest obsession: how can healthy open source communities also be sustainable and also act in economically rational ways? The fact that as soon as money is brought into most open source projects they blow up is a huge red flag. Often people just say that money is evil, but I think it’s a sign that there were hidden flaws that got amplified by the pressures/dynamics introduced with hard value (money) vs the subjective soft value of reputation. Anyways, a bit of a rant, but I think it’s essential to explore and analyze this so that humanity and open source can succeed at scale in a healthy way.

This was Carl from Daonuts, @lkngtn from 1Hive, and someone else who I haven’t met

Personally I love immediate feedback so I would want rewards to literally be instantaneous, but… you’re totally right that we could try out the slow version and then speed it up if need be. It has to be fast enough though that you can connect an action with a reward. If that mental connection is broken (or never formed in the first place) the game is not a game because the dynamics of the system will fail to shape behavior.

YES! This is what I want! lol

Yeah that’s also a really really good point.

I wish we could A/B test this to “fine tune” the model

Update: exploring the prototype and it’s really satisfying/engaging to see A) myself on that graph, and B) everyone else on the graph. It triggers an urge to climb the leaderboard (for no other reason than because I want to). Not sure if everyone else experiences this, or how long this sensation will last, but seeing the scores displayed right in front of me makes it so much more real. It’s almost the same feeling I got when I first explored trading crypto, but more fun because this time I can actually affect my own score!

  • would love to see this integrated into something less serious and social like Reddit

4 posts were split to a new topic: [talk] the age of networks and the rebirth of cybernetics