Modern internet scale social platforms attempt to achieve network effects that cause explosive exponential growth. Token economies are a new and really promising way to create these network effects in a way that benefits all participants, but there are significant scaling issues involved. We identified three main issues developers need to address when trying to build internet scale platforms on Ethereum:
- Transaction rate limits of the blockchain itself.
- Cost per transaction.
- Disruptions to your platform because of network congestion.
As one of the fastest growing consumer platforms on Ethereum, the Choon dev team wanted to share our approach to these issues with the community to help others facing similar problems. First, let’s outline the problems so we understand the current limitations of Ethereum.
Transaction Rate Limits
Ethereum can currently perform roughly 15 transactions per second (TPS). This is better than Bitcoin’s ~7 TPS but still far lower than needed to run any internet scale service. Choon, for example, has already attracted over 3,000 artists in our first few weeks of operation and is growing at around 25% a week. This means that if we were paying each artist daily via transactions on the blockchain, within 6 months we would be attempting 635,000 transactions per day. That would consume 80% of total network capacity and clearly be a critical limiter of growth.
Cost per Transaction
In addition to the limited throughput, someone needs to bear the cost of each transaction. If you are going to perform each transaction on the blockchain costs quickly spiral out of control. The scenario above leads to a minimum of $10K USD in transaction fees per day, but likely a much higher number as the sheer volume that Choon would require begins pushing transaction prices up.
The third danger comes from the fact that we all share the Ethereum network. Congestion arising from other projects using the blockchain could lead to an unacceptable scenario where Choon couldn’t pay its artists. To run a successful consumer platform you have to know that you can scale the components of that platform as needed, a shared blockchain presents a difficult challenge in this regard.
Our Solution: State Channels
Choon uses a concept known as State Channels to allow artists to prove they will be paid in the future, without having to spend transaction fees now. This works via two components:
- At an artist’s request, the Choon service issues a payment “voucher” for that artist’s earnings to date. The vouchers are cryptographically signed authorizations that can be redeemed for NOTES (the Choon ERC-20 token) from the Choon payment contract. The key point here is that a voucher is free for the service to generate, so an artist can request them as often as they like.
- The artist then takes their voucher to the Choon payment contract and redeems it for NOTES. The artist can decide to wait until they’ve built up a large supply of NOTES before redeeming in order to save transaction fees, or they can withdraw their NOTES every day.
This system provides flexibility and scalability for both the Choon service and for the artists involved. Crucially, vouchers don’t require Ethereum transactions to be issued so they are not subject to network congestion issues or transaction fees.
Our implementation of payment vouchers that powers payments for https://choon.co has been fully audited and will be open sourced at https://github.com/choonhq/choon shortly. We are happy to provide support to the greater Ethereum community as we all figure out how to scale successfully on the blockchain.