Ethereum : Current technical challenges
Continuing from the last post, this post highlights current technical challenges(as explained by Vitalik Buterin during his keynote address in Singapore) faced by Ethereum, and possible ways of tackling them.
The challenges can be broadly classified as :
- Obstacles to mass adoption
- Scalability Issues
Hard part for Ethereum
Even though interest & adoption is going up. Ethereum for the first time broke through 400,000 transactions in one single day = 4.2 transaction per sec , 40% of Uber
Bitcoin is getting most of the attention these days with prices repeatedly hitting new all time highs (although today…venturebeat.com
The difficulty that now remains at this point is basically technology.The full vision of decentralize applications is to be able to support memory for the masses (where the masses are defined as not just a million but possibly hundreds of millions and in the long term future billions of users )
There are smaller obstacles
- blockchain efficiency
- smart contract auditing
The biggest one by far is scalability.
Scalability Issue in Block chains :
A blockchain is a platform which gets its decentralization from the fact that every single node in the system does these 2 things :
- Downloads and processes every single transaction in the system
- Verifies each and every one of these transactions for itself
This means that first of all one has to have decentralization and it also means having lot of backups.
But the price is efficiency and here’s the best way to think about the price if every single node in the network has to process every transaction this means that the network as a whole cannot process more transactions than one single node.
This is bad you cannot have the world economy be processed on one single guy’s computer.
Consequently we have a problem now one might say “ oh well Moore’s Law will support us “( people’s computers get twice as good every two years up ). There can be short term solutions to this issue of scalability like inc block sizes but eventually in long term we need to have scalability proportional to current mass systems, and high transaction a second
12 transactions a second= Uber
200 transactions a second = PayPal
2,000 transactions a second = Visa
18,000 transactions a second=Shanghai Stock Exchange
1000000 transactions a second = 25 billion devices that are expected to be IOT within the next 10 years
Bitcoin does 3 transaction a second. Ethereum has now gone up to 5 a second.
Scalability that we need in order to achieve decentralization in large portions of the real economy ; it requires kind of fundamental changes and rethinks and breakthroughs and deeply changing the way that block chains currently work are designed and are used.
There are definitely kind of short-term strategies that you can use in order to make existing ethereum implementations 5 x efficient in order to make the protocol 50 % efficient in order to make people’s use of the protocol two to four times more efficient and one can get a bit up there and that might be enough for half a year might be enough for a year.
But if one wants to go further then one has break through the fundamental barrier. There are probably two major techniques viz.
- Strategy 1 : the only case where you really need a kind of trust-less way of getting consensus on some fact .
- Getting everyone to agree on getting consensus on some particular fact is if there actually are people who disagree about that fact. so if there are people who disagree whether this coin belongs to me or this belongs to you. then we need some form of strong consensus that a coin belongs to you. We need some form of strong consensus strong agreement to adjudicate between the two and securely reliably and permanently and immutably choose one or the other.
- There are going to be ways to avoid having to use a blockchain entirely, one simple example would be a technology called payment channels and this has existed for in kind of theoretically at least for since around 2012.
- The concept of payment channels works as follows let’s suppose that I am an Internet service provider and I am selling you Internet
service and let’s say we have agreed on a rate of let’s say 1c/MB and you know we let’s say that you start using like using a connection.
- here is what we will now here’s the naive way to do this every time you use a megabyte you’re required to send a blockchain
transaction that makes that one payment of one cent and unless you send that transaction I shut down service.
- This clearly works the problem is though that if you’re going to send a transaction every time he needs to spend one cent. Consequently your transaction fees are going to be way higher than the amount of money that actually gets sent
- So here is what you do instead when used you start your
connection when you kind of sign up as a user you put let’s say $100
something that we will call a channel.
- so what you can think of a channel as being a smart contract it is a computer program and the computer program will have certain rules.
- Let’s say you then use one megabyte in order to keep using my service I will then ask you it’s a sign a ticket-a digital message. and the station whole message now says I have paid one cent . Let’s say use another megabyte I will ask you to sign another digital message this next a tional message says I have paid 2cents . Then I will ask you to sign another digital message saying I have paid the 3 cents, 4 cents , 5 cents
- now let’s suppose that then in the normal case eventually you wants that
you wants to cut your connection and he wants to get your money out
here’s what we do you would say you would submit the last ticket that you sent into the smart contract and the smart contract would see oh this ticket says you have spent $10 and so the contract decides okay well I should we
should now give $10 to me and refund the $90 to you right so then you get back your $90 I get my $10 and we go on our merry way. This is the best case
- here’s a second case let us suppose that
I just decide I am going to be malicious or I got hacked or whatever happens then you can still submit the ticket and your ticket by
itself can get you the money back.
- The third case is you were malicious in this case you are not going to send the last ticket that you signed that says that you pay $10 instead you are going to submit the first ticket that you signed that says that you paid one cent so then here is how the smart contract deals with this problem
this smart contract yet provides a time window during this time window I have the ability myself to submit the tip the last ticket that you signed the ticket that I believe is the highest value ticket is the ticket that should have had that should be the correct one the smart contract has a rule that says it will accept the highest valued ticket that was submitted during this challenge period whatever the highest value ticket is it accepts as a truth and so if you try to cheat me then I will submit my ticket the contract will adjudicate and you will still get just 90 dollars back and I will get the ten dollars that I deserve
- Now notice that in this kind of scheme if nobody cheats then only two transactions need to get sent
Transaction#1 : you joining the channel
Transaction#2 : you leaving the channel
- if you cheat then three transactions need to get sent
Transaction#1 : you joining the channel
Transaction#2 : you fraudulently leaving the channel
Transaction#3 : I counter you now
( technically in ethereum we’ll also need to send a fourth transaction to actually finalise the payment )
- notice that in this case even though in reality is you have made something like a thousand payments to me even still the blockchain requires two transactions in the best case. And 4 transactions in the worst case.
- So why is this happening because the way the mechanism is designed is that it only uses blockchain transactions first to exit the system and to enter the system but otherwise only if there is a dispute only in the specific case that the two of us disagree about which ticket should be used are there are there extra transactions that get cents to the watching so this is just one example now.
Now there are other systems so for example there are some a developer based in Toronto name’s Jeff Coleman and you can look up his work on something called state channels which is basically a fairly advanced generalization of this notion that goes beyond just payments and he talks about this kind of very elaborate notion of counterfactual contracts.
This post is the second in a series which aims to clarify uncommon terms that I use. Like those that follow, this term…www.jeffcoleman.ca
Contracts that do not even exist on the blockchain at all but people treat these contracts as doubly exists because if someone were to try to cheat by acting as though the contract does not exist the person who would be negatively affected by that decision would in fact be able to submit this contract to the blockchain and the contract would be effective so if there was a dispute this contract could it could be submitted and it would have force knowing and that if Lee tried to cheat this would happen people would not cheat and therefore most of the time these transactions do not need to be submitted and these contracts in reality never need to be created at all
There was also a system called the Lightning Network which basically works by combining together on networks of payment channels and basically routing payments from one person to the other through a sequence of these kinds of channels.
The Lightning Network is dependent upon the underlying technology of the blockchain. By using real Bitcoin/blockchain…lightning.network
The idea of plasma is basically that you have a kind of side chain, so it’s like a separate chain from the main chain and this separate chain is managed by some other set of validators.
Today Vitalik Buterin and Joseph Poon released a working draft of Plasma project.medium.com
Will continue in next post.