Skip to content

Instantly share code, notes, and snippets.

@teamdandelion
Last active April 10, 2019 19:52
Show Gist options
  • Save teamdandelion/cb8ec6e0ff8a508816aef2b24b0bf052 to your computer and use it in GitHub Desktop.
Save teamdandelion/cb8ec6e0ff8a508816aef2b24b0bf052 to your computer and use it in GitHub Desktop.

SourceCred and the Quest to Outcompete Capitalism

  • A lot of people are very upset with capitalism right now.

    • Unchecked drive for expansion and consumption leading to the raping of the natural world
    • Views humans only as tools for producing more, or as vehicles for consumption,
    • Massive concentration of power among the wealthiest individuals and mega-corporations
    • Misses out on values humans care a lot about. Observe that amazing teachers are paid far less than mediocre investment bankers.
  • Capitalism also has some really impressive features

    • Capable of amazing feats of engineering (e.g. the iPhone)
    • Coordinated activity at huge human scale (e.g. the supply chain for the iPhone)
      • Estimate: how many human-years of R&D went into iPhone?
    • Coordintaed activity over very long timespans
  • One particular impressive accomplishment: production of enough food for 7bn people

    • Green revolution, massively increasing food yields
    • At this point, we can't live with out it
    • If capitalism stopped working today, billions would starve
  • Also, capitalism should be evaluated in context

    • Preceding system (in the European context where capitalism evolved): feudal aristocracy
      • Not really a lovely system to live under
        • You would probably be a peasant, tied to some particular feudal lord
        • Less freedom and agency (and material prosperity) than modern workers
    • Alternatives tried: Communism wasn't great, seems to go hand-in-hand with overbearing statism
  • Pithy summary: capitalism is the worst system for coordinating the activity of billions of people, except for all the other ones we tried.

  • This suggests a question: what systems for coordinating people have we not tried?

    • How can we build a system that can still effectively coordinate people, but doesn't lock us into endless consumerism, or into a mindless pursuit of growth at the expense of all other values?
    • A system that doesn't split humanity into disparate and very unequal groups?
      • labor: do all the work, get paid based on your replacability
      • capital: don't do the work, but collect all the excess reward
    • What is the system that will outcompete capitalism?
  • To answer this, I think we should look at both:

    • What does capitalism get right?

      • Why is it able to effectively coordinate at scales where other systems break down?
    • What does capitalism get wrong?

      • What are its "design features" or fundamental assumptions that drive bad dynamics of the system?

What capitalism gets right

  • Capitalism is good at creating incentives
    • Consider why the customer service at businesses is usually much better than the customer service at government agencies
    • Capitalism creates a strong motivation to perpetually improve/optimize systems and processes,
    • along with a clear feedback signal (increased/decreaesd profitability) that guides the optimization
  • Capitalism has internal accountability
    • I can fool myself about whether my work/business has any value, and I can maybe fool you for a while too, but its very hard to keep the market fooled
  • Capitalism is good at making investments
    • Large group of actors (investors) who are actively seeking out opportunities to deploy their resources
    • This creates strong positive feedback cycles within the system (investors who are good at deploying resources grow the system, which gives them more resources to deploy, so as to grow the system further)

What capitalism gets wrong

  • Everything is transactional
    • The core "atom" of market capitalism is the transaction: one exchanges money for something (goods, or a promise) from the other
    • This has worked really well for things that fit very well into the transactional mould. For example, if I want to exchange money for toys or food or ground transportation, I'm afforded really great options
    • However, many things are not transactional.
      • Sometimes things aren't transactable because the value is really hard to measure
        • Education
        • Emotional labor
      • Sometimes because the value in question is a public good
        • Ecological diversity and robustness
        • Having a generally healthy society
        • Scientific ideas
    • Capitalism fails in these non-transactional domains
    • To accomodate these failures, it tries to warp non-transactional domains into a transactional form
      • Healthcare
        • Can't transact for health
        • Instead, transact in surgeries/medicine
        • Outputs lots of expensive procedures, less of actual healthiness
      • Information
        • Hard to transact for information -- don't know what it will be worth, easy to reproduce/copy for free
        • Instead, transact in the right to show advertisements to people seeking information
        • "Attention economy" warps the entire discourse towards controversial content / clickbait
    • These accomodations/warpings have lots of adverse consequences

What if we could develop a system with the strengths of capitalism, but without the limitations?

  • Such a system would...

    • Be capable of recognizing the value in things that are non-transactional
      • Like a great education that enhances one's experience of life and the world
      • Like the flourishing of natural ecosystems
      • Like a community
    • But still retain the accountability of capitalism
      • It can't be a "popularity contest" kind of system where people vote on what things they valued
      • Because people would shift to just gaming the metric measuring value rather than producing the value we care about
  • How could such a system work?

    • Be based on flowing cred rather than exchanging value
    • Exchanges == value needs to be negotiated up-front
    • Cred == retrospective recognition of value that was provided
  • A concrete example

    • I have a high school math teacher named Mrs. Leblanc who taught me calculus
    • She was a really good teacher, made the subject quite engaging, and helped solidify my love of math
    • In the current system, she gets paid based on the lowest price that some other qualified math teacher would be willing to receive (which is pretty low).
      • She's paid based on her replacability, not on the value she creates
    • In a cred-based system, she would now be earning some cred from all of the math-related work that I do
      • Which, since I've worked on TensorFlow, SourceCred, etc, should hopefully be some valuable cred :)
    • the goal: a system that rewards people based on the value they create, rather than on what price they were able to negotiate, when framing their services as a transaction (employment)
  • However, there are many open questions in how such a system would really work.

    • How could we decide the right share for Mrs. Leblanc, vs all the other people who taught, influenced, or helped me?
    • Won't people be incentivized to cut deals and mis-report their cred (e.g. I make a deal with my gym teacher, and give him a big share of my cred, in exchange for a kickback)
    • The system needs to support transactions, e.g. the transaction of buying lunch. How do such transactions fit into a cred-based system?
  • Also, such a system will be high-friction in its immature stages

    • Manually entering data for every interaction to try and flow cred will be a lot of work
    • System might not be valuable until after it has tons of data and usage-- chicken and egg problem
  • Rather than aiming to build the full system, we should aim for a simpler domain where we can make some immediate headway.

  • An ideal domain would:

    • Be very poorly served by the existing capitalist system
    • But still be very active + creating a lot of value
    • Be full of tech-savvy early adopters who are willing to fool around with a new and experimental technology
    • Naturally output tons of public & machine-readable data on the kinds of contributions people are making

All of which brings us to open-source.

Case study: Open-source as a failure site of capitalism

  • open-source software is an example of capitalism failing, in action
  • Open-source embodies a non-transactional approach to software. Anyone can use it or change it freely.
  • Because it is non-transactional, it struggles to get resources or investment in the current paradigm. Investors invest based on the potential for future transactions. There's nothing for them to buy or own.
  • Despite these huge disadvantages, it's been an enormous success

Where is open-source used?

  • Open source is everywhere that the web is. For example:
  • Google and Amazon both run Linux in their data centers
    • And a huge fraction of the web runs on Amazon Web Services now adays
  • Basically all websites use open-source software--jQuery, Wordpress, Ruby on Rails, React
  • Not to mention that the major programming languages are themselves open source

Open-source's victory over closed-source software

  • Back in the day, the tech megacorps identified open-source as a threat, and tried to crush it
    • Steven Ballmer, Microsoft CEO: "Linux is a cancer"
    • Microsoft had a strategy ("Embrace, Extend, Extinguish") for killing off open-source
  • Instead, open-source won. Resoundingly.
    • It's reached a point where companies (e.g. Google) will pre-emptively open-source their crown jewel technologies (TensorFlow)
    • They know that the best technology in the space will be open-source, so they'd like it to be their technology rather than someone else's

Why does open-source thrive?

  • It leverages a great network effect. Since every user is potentially a contributer, more users==better software
  • This is true because it is open. As gmail gets more users, the software doesn't naturally get better. Because those users have no access to improve it.
  • Also, making it free to use makes it available for new and experimental use cases.
  • Today's hacking and tinkering is tomorrow mainstream product.
  • Can't imagine Raspberry Pi running Windows, both b.c. Windows costs way more than an RPi, also because it wouldn't be possible for outsiders to tweak Windows to run on such a small machine.

Where do open-source resources come from?

  • Open-source projects generally have very little money
  • Classic image: Henry Zhu with a cardboard tip box for Babel
    • (Babel is an important and incredibly widely used part of the JS ecosystem.)
    • (SourceCred uses it.)
  • However, open-source is rich in one resource: free labor from programmers
    • I call it "scratch your own itch funding"
    • Programmers use programming tools, and want to improve on them
    • So they make a new version of a tool and release it open-source
    • More programmers use that tool and also want to improve it
    • So they contribute fixes, and get involved in the community
  • Programmers benefit via implicit cred
    • Having worked on an important project provides credibility, which can help with getting jobs later on

Limitations of scratch your own itch funding

  • Need to be well-off to have tons of spare time to work for free on side projects
  • Being run by volunteers is a big constraint: hard to have anyone "on call"
  • Open source projects can't afford to run infrastructure (unless someone donates it).
    • Hard to have real "open source applications" because no one is availalbe to pay for server time
  • People gravitate to the work that's fun/interesting, but can't reward people for necessary-but-unfun work
  • Pieces of core infrastructure (e.g. OpenSSL or Numpy) that everyone depends on go uninvested in, sometimes with big consequences (Heartbleed)

open-source as a testing ground for a post-transactional paradigm

  • I think open-source is an ideal place to start with cred-based systems:
    • Lots of public data of the work that went into the project
    • 'Cred' is already the main thing that contributors get (its just not measurable)
    • Open-source creates a lot of value, so a system that can help recognize and direct that value should get a lot of traction

cryptocurrencies as early adopters

  • Cryptocurrencies are really unusual in that they are open-source projects that create money
    • But they have no direct way to reward/incentivize contributions
    • Observe that as Ethereum became huge, it created an incentive not to improve Ethereum, but to launch new coins on top of it
  • Cryptocurrencies can test SourceCred by using it to pay contributors, in their native cryptocurrency
  • Cryptos that do this can outcompete cryptos that don't, because they will have a more engaged+motivated contributors
  • In the long run, we can create new cred-based tokens ('Grain') that represent "sponsorship" or "patronage" of a project, and flow along the dependency tree
  • So that everyone who contributed to a project (rather directly or indirectly) can get rewarded

how grain will work

  1. By contributing to a project, you earn cred
  • cred is non-fungible and non-transferrable, since it's tied to your particular contribution
  1. The project creates Grain, which is a token that represents support of that particular project. The grain is distributed to three groups:
  • People that contribute to the project
  • People that financially support the project (e.g. the project sells some grain)
  • People who have grain in one of the project's dependencies
    • E.g. some SourceCred grain would flow to people that have Nodejs grain
  1. Grain now represents "proof of support". If you have grain, it means either:
  • you supported the project by working on it
  • you directly supported the project financially
  • you indirectly supported the financially (by buying it from a project supporter)
  • you supported the project by supporting one of its dependencies (in the 3 ways above)

Because grain represents "proof of support", it's a principled measure. If someone demonstrates that they have a lot of grain, it makes sense for the project to take notice. And to find ways to reward them for their support.

why grain will be valuable

  • if the grain is from a cryptocurrency project then it's valuable because holding grain entitles you to cryptocurrency dividends
  • if the grain is from a widely-used project with a lot of active interest around its decisions, governence, feature prioritization, etc, the project can reward people who buy grain in the project, meaning people will buy it for the rewards
  • if the grain is a dependency (direct or transitive) of a project with valuable grain, then the grain is valuable, because it entitles you to a dividend of the dependents' grain

ways a project could reward grainholders

  • bug reports and feature requests by grainholders can be prioritized
  • project can provide hand-on support for big grainholders trying to integrate or use it
  • project could give some free advertising for big grainholders (e.g. "Sponsored by...")
  • in the extreme case, projects could have licensing that prevents for-profit enterprises from using the software unless they buy+burn a certain value of grain per year

grain enables investment in open-source

  • earlier I said that the ability to organize investment is one of the strengths of capitalism
  • this system would enable investment directly in early open-source projects
  • suppose there's a new project starting up that you think might be very important (either due to its direct usage, or because of the 2nd order projects that will depend on it)
  • in this system, you can buy the projects Grain.
  • doing so pays the developers, and encourages more people to get involved, because they see there is a healthy market for the project's grain
  • if the project indeed becomes valuable, your grain becomes valuable too, which gives you resources to go invest in more projects
  • it's like venture capital, except you are funding public goods rather than private ones. Hence, I call it "Venture Socialism"

grain as an alternative to ICOs

  • ICOs are one way for (crypto) projects to raise capital, but they have a lot of bad properties
  • they require adding a token into whatever project is being created, and the token often has tenuous justification for existing
  • they are structured as a one-off capital raise that doesn't

when do we start?

  • not yet!
  • grain is a promising idea, but right now we can't implement it, because we don't have a fair way to distribute the grain to project contributors
  • we could give grain on the basis of activity (e.g. 10 grain per commit), but this would encourage gaming and would not create good incentives
  • we could just give all the grain to the project maintainers, but this would not be fair to all the other contributors, and encourage unbalanced power dynamics
  • we need a fair system for attributing cred to contributors in a project
  • that's where SourceCred comes in

SourceCred

  • the goal idea of SourceCred: we want to give creators cred in a project in a way that is fair and transparent
  • the core idea: we can organize a project as a network of contributions
  • contributions can be anything -- organizing a meeting, coming up with a design, writing a blog post, or making a change to a codebase
  • a contribution is important if other important contributions depend on it or reference it
  • for example: you produce the graphics that are used in my blog post. if my blog post is a hit, then your graphics will get a lot of cred, too.

prototyping stage

  • sourcecred exists as a prototype. you can run it on any GH repository and get scores
  • currently working on a "manual mode" that allows anyone to track any kind of contribution (whether or not it lives in GitHub)
  • soon: we want to start experimenting with using SC to pay SC contributors
  • as we gain confidence: start partnering with other crypto projects that want to reward their contributors

future vision

  • we want to trigger (or accelerate) a renaissance in open-source

  • what if people started to quit their jobs at tech megacorps and write open-source software for free?

  • what if our platforms weren't built to lock us in to an advertising system, but were freely modifiable in any way we want?

  • if the experiment succeeds in open-source, we can start to set our sights higher.

  • what if there was a huge community of poeple rewarded for creating open-source 3D printable designs?

  • could we make the key infrastructure for maintaining humanity (designs for houses, designs for tools, designs for cars) all open-source?

  • what if drug discovery was open-source, and anyone could produce vital medicine without needing to pay massive royalties to patent holders?

  • come aboard as we try to build the first piece of that future. :)

  • If a grainholder wants a f

  • Scratch-your-own-itch funding limits open-source projects to the domain of programmer tools

  • You don't see as many open-source games, open-source apps, or open-source tools for non-programmers

  • I think

  • Then more

  • Every user is a potential contributor

    • Everyone can spot bugs and adapt it to new use cases
  • Free to use == can use it in new domains that don't generate enough $ to pay transaction fees, leading to even bigger scale

I think the key is that open-source projects are networks, and benefit from network effects and positive feedback cycles. The more people using an open-source project, the more people are adapting it, polishing it, fixing bugs in it. So the value of the project to any individual user increases with the number of people using it.

  • I see SourceCred as a small step in this direct

Open-source as indictment of capitalism

  • To my mind, the entire open-source movement really showcases a failure of capitalism

    • Education (hard to measure value in advance so as to transact for it, also lots of the value is not fungible with $)
    • Emotional labor (stops feeling real if it's transactional, also can't measure the value in $)
    • Ecological preservation (since it's a public good, can't buy it)
    • Health (no way to buy health; instead we can transact around expensive surgeries and interventions, not the same thing)
    • Ideas / science

While living in the Bay Ayrea, I hung out with a pretty progressive/radical crowd. I'd commonly hear screeds against capitalism. "Look at how capitalism is driving "

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment