Economics of distributed infrastructure -
Our continued push to move our society and it's supporting technologies to distributed systems will not follow the traditional capitalist economic models. There are all sorts of issues with the traditional model, but the main one I wanted to highlight was the economic cost of hosting. In this context, hosting refers to the costs and actions associated with storing, transferring, and operating on the distributed log.
Traditionally a centralized owner or organization will purchase or rent a fleet of servers and provide free access to all users. For Reddit, this means that Condé Nast owns all the servers and pays for them using the revenue generated through advertisements and virtual services (Reddit Gold).
2. Distributed economics
A distributed economy has a different set of needs than a traditional one. There are economic costs associated with data storage and replication, as well as concerns with preventing misbehaving users. We propose a system where users pay to publish content, and receive royalties for licensing of said content.
In the move to a distributed architecture, it is the responsibilities of a subset of Fabric users, or "weavers", to shoulder this economic cost. This cost is non-trivial, and cannot be expected to be fulfilled from generosity. We must then incentivize Fabric users to become weavers. Beyond this, we wish to encourage them to remain a member of the hosting process to curb replica decay1. We wish to encourage the following behavior from weavers:
- Increased participation -- Greater reward for greater support. Weavers that handle more load receive more payments.
- Timely log processing -- Rewards for weaving must be timely to ensure efficient network operation.
- Log retention -- Membership churn will always result in replica decay. Keeping weavers online will mitigate replication load.
Additionally, we wish to curb the following behaviors from weavers:
- Faulty processing -- Faulty weavers should not receive rewards, and should receive fewer events in the near future.
- Illegal processing -- Weavers that confirm invalid transactions should be temporarily throttled from the network.
- Spam -- Weavers that submit too many transactions will be temporarily throttled from the network.
Continuing our Fabric metaphor, users that publish content such as as a forum thread are "spinners." They are the producers of the digital goods that people will purchase. This can be something simple like a upvote or a song they composed. It can be also be something complex, like selling shares of a decentralized autonomous corporation. In both scenarios, the spinner is publishing content that others may be interested in.
The economics of production are non-trivial. A spinner in actually increasing the network load by publishing to the network. As a result, performing actions that generate network data have an economic cost associated with them. This cost is proportional to the load it places upon the network. An upvote may cost very little, as it only incurs a few kilobytes of information into the network, while publishing a song requires a greater investment to compensate for the network transfer and additional storage.
Spinners must expend their economic resources to publish material, but they can recoup these costs from other users in the form of licensing. There is the one time cost of adding a given block to the network. When others access this content, the author will receive a percentage of the access fee.
Alice has finished her new track that she wants to share with others. She put a good deal of work into the piece, and wants a small compensation for her time. Alice decides to charge 200 bits to license access to the file. It's not a long song, but it still takes 3 megabytes of storage. At the time she publishes this file, the going rate for it's storage would cost her 20,000 bits to add it to the network.
Bob sees a new song was published by his friend Alice, and decides to purchase the license for 200 bits so he can listen to it whenever he would like. Based on the age and availability of the file, his 200 bits is split between Alice and any nodes that are hosting the file.
Karma is a score based on a user's total history. This includes all transactions the user was involved with. Due to the costs of computing this data set, it will be optional to compute, and providing a user's Karma may in fact be another micro-service within Fabric.
- Replica decay -- The natural decreasing availability of replicated data due to loss of network nodes in time.