State channels: What problems are we trying to solve?
There are scalability issues in the Blockchain space. Blockchain projects are attracting more and more users as the years go by. As a measure, in 2013, Bitcoin had approximately 120,000 users. In 2017, the estimated user base is between 2.9mil-5.8mil in a study of Global CryptoCurrency by Dr Garrick Hileman and Michel Rauchs. This has caused an increase in block size. At the beginning of 2013, the block size was 0.09mb. In October 2018, the block size was 0.96mb
A block is where the data or the transactions are recorded on the blockchain. It is a unit of the blockchain.
And more users eventually mean one certain thing : More transactions. These transactions can be monetary as in Cryptocurrencies or can be data as in other blockchain projects without a cryptocurrency involved.
Regardless, the larger the data, the larger the unit size. In the blockchain, the speed of the chain is only good as the slowest node. When a block is added to the chain, the chain adds it at the speed of the slowest node. And larger the block, that much longer it takes for an already slow node to add it the chain after processing the block
How does this look like from a higher level?
Vitalik Buterin, the co-founder of the Ethereum network, coined a term called ‘Scalability Trilemma’
The Trilemma claims that Blockchain Systems can only at most have two of the following three properties:
- Decentralisation (system being able to run in a scenario where each participant only has access to O(c) resources, i.e. regular computers at home or a VPS
- Scalability (able to process O(n) > O(c) transactions)
- Security (defined as being secure against attackers with up to O(n) resources
c = extent of computational resources available to each node
n = extent of the ‘ecosystem’
When there are two parties or more who want to interact with actively, and if it doesn’t make sense to conduct their transactions on the main blockchain for reasons of speed and cost, then it makes perfect economical and practical sense for that group to open a state channel and do a final write to the main blockchain at the end of their transaction activity
What examples can we relate to in practical life?
Example 1
So let’s imagine that Joe walks into a pub in his neighbourhood. He’s lived in that neighbourhood since many years. The pub’s been in business many years and Joe had been a regular patron. The owners of the pub know Joe is a regular. So they extend him a courtesy of a running tab.
All he needs to do is order a drink. The bar tender updates Joe’s record with a drink and Joe may not even need to remember how many drinks have been consumed in a month. Joe trusts the bar tender and the bar tender knows Joe always pays at the end of the month like clockwork. There’s never been a problem.
Come the end of the month, the bar tender furnishes a complete record and tallies up the total. Joe does a check and agrees. He then pays at that point.
30 days, many updates, one payment transaction.
The ledger resets to Zero. And the next month starts just like it always does — Joe walks into the bar and orders a drink.
Absolute Friction less user experience. This is super vital to a user
Example 2:
Joe and Susan play Golf together every weekend.
They tee off from the clubhouse. Work their way around the 18 holes and get back to the clubhouse to update their Clubhouse records. Along the way, both of them kept updating their score cards after each stroke.
As they reach the club house, each signed off on the other’s score cards to state that the data is factually accurate.
The master record at the club house which holds all the registered player’s records is then updated and signed off. Joe and Susan now have a new score on the main book.
Frictionless updating of clubhouse record over having to provide a live update with each stroke played.
Example 3:
Joe, Charlie and Susan are flat mates. All 3 of them use cryptocurrency.
Yay!
They share some common expenditure of the flat as they live together. Expenses such as utilities and some housekeeping are tallied at the end of the month. They wish to do the payment transactions on the Ethereum blockchain
Through the month, each of the three has the authority to pay for any expense / bill that needs to be mutually shared.
Costs are divided evenly between all 3 and contributions / payments for purchases towards the flat housekeeping are offset to arrive at a balance statement. If one of them has contributed more during the 30days, they receive payments from the other two and vice versa.
To make it easier, they could have established a common fund that each of them equally contributes towards. In this case, the account statement at the end of the month is sufficient.
In either case, the final ledger balance at the end of the month is updated to the main blockchain. This process makes it easier and less expensive as compared to each individual transaction being recorded on the Ethereum blockchain itself.
Some common ingredients had to exist for the activities to take place:
1. The involved parties all trust each other or at least that they won’t be cheated
The randomness of the individual transactions means that the participants could transact freely and then update the records later/at the time of account reconciliation.
2. They all trusted the other’s ability to pay the outstanding dues at the time of reconciling accounts / be truthful about the facts. Guarantee of solvency and factual reporting is a given.
3. There is clarity on what the expenses / transactions / records are for. They are defined as what is acceptable and what isn’t.
4. They could close the accounts & update the master records anytime any/all of them had to leave / wished to end the agreement mid-month or mid-match . i.e. access to the Main Blockchain on demand at all times
This is an example of what happens in a State Channel. Even if each daily transaction could theoretically be carried out on the Ethereum Blockchain; in keeping with simplicity, costs and time available, it is far more sensible to just do the month end settlement on the Ethereum blockchain.
State Channels are a technology response to the increasing block size, increasing cost per transaction and reducing speed of verifications
It works in simple steps
1. Two or more counterparts who wish to transact on the blockchain agree to run their statements off the chain in the interests of convenience, cost and time
2. A state channel is opened. The current state of the blockchain is recorded.
3. A smart contract is programmed to be the judge and is funded with collateral so that each participant is assured of payment at the end. This judge is very simple minded and can be updated if all the counterparts on the state channel agree to update it with a new smart contract logic. Full consensus is required for this change
4. The Judge will always give all parties time to tell their side of the story. So each party is assured of fairness. So each party submits their own transaction data.
5. The final outcomes are written to the main blockchain.
All of this is quick and cheap. Two major factors that can be difficult to achieve on the main blockchain.
From a UX perspective, experience on a state channel is expected to be on par with a normal smart phone app while main chain transactions can leave users waiting for confirmations (which can take a very long time).
A relatable experience would be like pressing for a lift in an office high rise building and waiting for it to arrive on a very busy morning. It can be frustrating.
Conclusion:
State channels are the foundations for building a user friendly experience in the Blockchain space. User Experience is the foremost reason that adoption drops today. Waiting for a confirmation feels like asking a present day user to go through the Netscape browser experience of the 1990s on a dial up modem connection.
State channels can make Blockchain operations faster, cheaper and more discreet.
Their usage is not so common. Education is needed to increase adoption and reduce friction.
Equally important is building easy to use, off the shelf foundational framework which will help building state channels on top of them easier for developers. The current developer roadmap of developing a state channel is random & differs a lot. This creates a lack of standard design in the final build of a state channel. This in turn produces designs that still need many ‘on-chain’ interactions. For example, a better way of doing this is to leave only a Multi-Sig wallet on the chain rather than the Judge contract on chain
A lot of exciting developments have taken place in this area but certainly not at the pace that the community wishes for.
Written by: Suraz Kottakki & Dr. Joel Palathinkal
Finally, a word about Genesis Block Holdings:
Genesis Block Holdings is a blockchain venture capital firm, crypto quant hedge fund, and mining company focused on investing in blockchain projects within the ecosystem. We are laser focused on bringing the power of capital, network, and expertise to frontier technology teams to solve the world’s biggest problems
Under no circumstances should any material on this web site be considered as an offer to sell or a solicitation of any offer to buy an interest, token or coin in any individual company or investment fund. Any such offer or solicitation will be separately made only by means of the Confidential Private Offering Memorandum relating to the particular fund or persons who, among other requirements, meet certain qualifications under U.S. federal or other international securities laws and generally are sophisticated in financial matters, such that they are capable of evaluating the merits and risks of prospective investments
If you felt this was helpful, please clap for us, share it amongst your friends and feel free to send us a note anytime at genbvc.com. Checkout our telegram channel here>and follow our blog here>