Table of Contents
This is my current working outline for a presentation I have been working on to describe how to tackle the monetization problem of free culture.
1. culture
By culture, I mean freely licensed
- software
- hardware designs
- media
In the following, I describe contributors that create free culture, and investors that want to invest in those contributors. One person can of course be both.
2. Why monetization is difficult
freedom mostly prevents artificial scarcity
- giving to one gives to everyone
- only allows crowdfunding or donation systems
the "portfolio problem"
- the optimal investment distribution is person dependent
- the cost to generate a portfolio might be more than the total
amount you wanted to invest.
- a person probably benefits from the work of millions.
- It's not clear where your should invest.
- who falls through the cracks?
need to build algorithmic solution that scales across people
3. Why people benefit from investing
If a personalized portfolio generator is unused by you, then specifically the culture you use gets negatively impacted by your lack of participation.
4. major hurdles
4.1. value assignment
Millions of people contributed to make the technology you use. How can you track them down and assign value to each contribution?
4.2. identity verification
Somehow, one should automatically be able to generate a connection with someone based on a decentralized identifier, like email.
4.3. transaction problem
Financial systems are generally locked down. How do I send money without relying on some singular centralized middleman?
4.3.1. micro-transaction problem
micro-transaction fees make it impossible for an investor to send 10$ split across 1000000 contributors. However, cooperation between 1000000 investors should allow something like this.
5. goals
- enable users to automatically generate personalized value assignments for the contributions, and hence the contributers, of the free culture users use
- enable users to invest in the contributers that add value to their lives
- enable users to collaborate to reduce transaction fees
- do this within a framework that generalizes to encompass all free culture.
- Though in the short term, it must be possible to obtain USD$ through this system, it should eventually be able to operate on value assignments alone without USD$ or even BTC.
6. value assignment plan
My goal here is to prove that this problem is tractable. The below are details are a reasonable first implementation. For now, we just concern ourselves with git repositories.
6.1. guix package -> {email : packagevalue}
- for first iteration, git log with email on each line
- git log –format=$ae
- maybe add –numstat to get number of lines changed
- packagevalue(email) = count(email)/∑email2count(email2)
- package specific, so should really be packagevalue[package](email)
6.2. guix system config -> {package : systemvalue}
- construct DAG of package dependencies, and rank them based on
depth in that graph, with explicitly requested packages at
level 1, and their direct dependencies at 2 and so on.
- packages that appear multiple times get assigned the lowest number.
- systemvalue(package) = 1 / numberofpackagesatsamelevel / 2level(package)
6.3. guix system config -> {email : systemvalue}
systemvalue(email) = ∑packagessystemvalue(package)*packagevalue[package](email)
- can easily aggregate across multiple systems/environments
7. identity verification
- people make direct device-device connections based on real
social networks, and assign a trust level in [0, 1] to that
device.
- trust levels of other nodes as reported by that device are multiplied by your trust level for the directly connected device.
- someone claiming an email verifies by sending or receiving an email with someone on the network.
- users have a trust threshold M such that they trust any email <-> public key association if it is verified by someone with sufficient trust.
- This can be largely automated by interacting with mail clients and self-hosting MTAs
- in order to avoid Google's wrath (gmail blacklist), it may be possible to leverage one email send/receive to allow multiple nodes to trust an ownership claim.
8. transaction plan
8.1. declare tokens, declare value, and distribute
Each user declares a number of tokens as well as the amount of money they are willing to pay for them. Then, based on the value assignments they generated, assign tokens to contributors (emails). These are not blockchain tokens. "Consensus" is just whatever the user that created a token says about that token.
8.2. facilitate token trading
as seen here: https://boardgamegeek.com/wiki/page/Math_Trades and described here: https://boardgamegeek.com/wiki/page/TradeMaximizer and implemented here: https://github.com/chrisokasaki/TradeMaximizer it is possible to facilitate circular trades based on individualized rankings. You can assign values to the tokens assigned to you based on the value assigned by the investor multiplied by the degree to which you trust that investor to pay up (based on distance in your social network and reports by others in your network that they paid up). These trades allow you to turn many different tokens into large numbers of a small set of tokens.
8.3. return tokens for money
In the long term, it would be best to figure out how to operate based on these tokens alone, but in the short term you need USD$ to buy food and pay a mortgage. Once a contributor has obtained a large sum of tokens from a particular investor, they can return those tokens to them for money in one transaction, avoiding larger transaction fees.
8.4. backends
To do even this smaller set of payments, a user and the contributor returning tokens must have some financial backend in common. It should be straightforward to support a blockchain-based cryptocurrency backend, but I think it wouldn't be too difficult to support older systems like Paypal which allow direct USD$ payouts.
9. onboarding
9.1. free contributors
A contributor with a large value in tokens should receive an email explaining how they can receive money for their past free culture contributions
9.2. non-free contributors
Contributors working for non-free entities should be able to make minor contributions to free cultural works and slowly increase their income until they are able to migrate to working exclusively on free cultural works.
9.3. non-free products
A core premise of this system is that you are paying for goods already rendered, to assure contributors that their future contributions will be compensated for free culture contributions. However it would be good if people can make dedications to non-free culture that pays out in the event that such things are released under free terms. Payouts to free culture works can be used to give a level of trust to token dedications for non-free works before they are freed.
10. additional structure
10.1. catching fraud
many decentralized systems that use "gossip" systems. Abuses can be reported, and penalized in future investments.
Additionally, you own your contributions. With a system like this in place, plagiarism can incur monetary damages recoverable in court.
10.2. pledging tokens for issues
make this straightforward.
11. Cheating
11.1. cheating based on number of commits, or content of commits
projects have maintainers that host code at a given URL. If someone tries to commit a bunch of code to mine contribution credit, the maintainers would not accept the commit as it devalues their own contributions. Similarly, if a maintainer tries to inflate their own contributions, then other contributors are less likely to contribute to that project, lowering the inherent value of that project (as in, worse project means fewer people invest in it).
11.2. lying about token value
Certainly, I can create arbitrary numbers of tokens and declare arbitrary value for them, but initially no one would trust them. Such manipulations are trackable through your social network, so such manipulations end up stealing more from your immediate connections and might lower the trust the rest of the network has for not just you, but your friends. In affect, you can steal, but mostly just from your friends, who will probably stop being your friends.
In fact a central feature of this system is that it is built on trust of existing social networks, instead of a trust-less, artificially scarce system like blockchain.