Maximum nr. of users on Ethereum

I was quite curious about how many people would be able to use the Ethereum blockchain at any moment. Bitcoin is quite clear, they’re stuck at 7 transaction per second, but Ethereum will do a lot more than just transactions, it will use their blockchain for calculation etc. So what if people start to do a dice game every block? Where Dapps need to interact a lot of times with the blockchain? And what if people use software like Augur, where great amounts of data are stored in blocks? Here’s the link to the topic.

Here’s my question:

Is there already any clue on how many active nodes the network can handle? Some say Bitcoin will break at 7 transactions a second. How many full nodes can Ethereum handle? Where’s the limit? 100K, 1 million, 10 million?

Vitalik was so kind to reply with some calculations:

Ethereum has no fixed-size block limit; indeed, we’ve had a dynamically adjusted limit based on usage all the way since January 2014. Theoretically, it can thus process 1 billion tx/second. However, in that scenario, the only parties able to process nodes would be extremely large data centers run by companies like Google and Amazon (realistically, clever software implementations would be required to parallelize transaction processing, and a lot of txs would be thrown out leading to DDoS vectors, but it could be engineered around to a moderate extent); hence, the issue is not scalability by itself, but rather the scalability/centralization tradeoff frontier.
Assuming all nodes are on normal laptops, we have the following limits:
At the minimum gas limit of 3141592, we can process a maximum of 149 transactions per block, ie. 12 tps, assuming each transaction takes 21000 gas (for a brief period of time, you can use SSTORE clear refunds to have transactions that cost ~13000 gas, but we’ll ignore this for now since it’s irrelevant to normal usage). If we assume an average transaction consumes 50k gas, this goes down to 62 tx per block, ie. 5 tps. However, if usage actually gets this high the limit will adjust upward, so it’s not a real limit.
The python client on a desktop PC can currently process ~25 elliptic curve signature recoveries per second and ~1-2m gas per second if VM execution (average usage, which includes storage operations, arithmetic, etc). Hence, at 50k gas, 1 tx will take ~70ms conservatively, so python will start to croak at around 14 tps. A recent update included a faster elliptic curve verification library so this may be somewhat increased, however.
The go client’s elliptic curve signature verification takes about 2-3ms, and its VM is also similarly faster, so go will likely croak at around 200 tx/sec.
From a data standpoint, the 3141592 gas limit has been calculated to force a maximum state growth of ~110 MB/day, though actual usage is much less (ie. anything close to 110 MB/day would only be achieved if a block contained a single transaction containing a single for loop to do SSTORE operations).
Right now, the size of the python database is ~2.9 GB from testnet usage, so ~40 MB/day. However, this is highly suboptimal because python currently never deletes anything, and anything which ever becomes part of a merkle tree goes into the database.
100 tx/sec would mean a block size of about 225 kb. Under our current p2p infrastructure, block propagation time starts to become a serious problem at around 20-40 kb last time I checked, so 10-20 tx/sec is a reasonable safe maximum initially. However, we can expect the network to improve in quality over time, and even if it does not the network would still work - it would just have more uncles (another solution is for miners to create their own sub-net where you need proof that you mined a block in order to join [that’s the best way to do this without making it a cartel], and route blocks between each other internally there). Note that this problem is NOT because we have a fast block time; if blocks were 4x further apart, each one would be 4x bigger. However, fast block times do make IBLTs harder to implement.
So, 10-100 tx/sec is likely the point where things start to get problematic, at least from an initial analysis.
As far as users go, it depends entirely on the level of usage. At 5 tx/day per user (reasonable for financial apps), 100 tx/sec would give 100 * 86400 / 5 = 1732000 users. At 500 tx/day per user (reasonable for a “ethereum replaces the internet” scenario), we get 17320 users. Hence why we need ethereum 2.0 :slight_smile:

Now we have to see how popular Ethereum will get. I think they can hit the limit within 1 or 2 years.

6 Likes

I’m just wondering if this could be simplified for us tech numpties that don’t know what “gas” “IBLT” etc mean or blocks being further apart? I have a vague impression from this that Etherium won’t scale without involving massive centralisation or making a different version of it, but not sure.
Is it correct that it can only handle somewhere between 17,000 and 1.7m users and how would this compare to Safe?
Thanks

Ethereum works like a decentralized computer where everyone processes all the transactions using a blockchain. GAS is a little bit of Ether which you have to pay for any calculation. So when you write a “contract” with a lot of calculations in it, you need to pay more to get it all done. Otherwise, miners will reject your contract. So a whole community contract where people can vote on the blockchain for their new leader will be more expensive than a simple lottery where there’s one winner.

On the Ethereum network ALL transactions and calculations are shared with others. So just like in Bitcoin, when you do a transaction, within a couple of seconds all the other nodes will have it. That’s where you get a limit. If 1 million people start to use the network daily doing a number of transactions, things will get stuck.

SAFEnet is quite different. It’s focussed on getting data from other nodes. So SAFEnet will scale up to 100 million users without a problem, although that’s the idea :wink: If it works for 100.000 it should scale. When you request a Chunk, your group of 32 nodes is involved, a number of others as well, but not the whole network. Same for Safecoin, your group and a number of others need to agree, but that’s say only 100 users to get a full transaction done. As long as they have consensus, all is okay, should work under a second. So more users mean more transactions a second.

3 Likes

I’m expecting the future might become more fluid than any one chain. Indeed I’d be surprised if any of the blockchains were truly pushed to their limit, without fragmenting.

Also, as it stands, the technology is too obscure for mainstream adoption and in moving towards them, I wonder the chains will fall into the background like TCP1 TCP2 UDP etc. Even if there is a limit that one industry needs to be on one chain, those might be possible to resolve in a non-limiting way.

1 Like

Thanks for that. What I’m taking from it is that both Safe and Etherium aim to have very roughly similar functionalities, except Etherium is more about verification/auditability use cases, whereas Safe is more about anonymity/privacy?
What stands out to me is that apart from this aspect, Safe appears to be a much better, cleaner, more streamlined approach altogether, which could incorporate the use cases of Etherium in any case possibly?
My impression is that Etherium feels a bit “coddled together” in a way, but I get this feeling with other aspects and other Blockchain based apps too, such as micro-transactions etc. It just seems Safe approaches these things in a more “thought out” way to me.
I don’t know why exactly but I’ve got the “Three little Pigs” story in my head - Yes you can make your house out of straw or sticks, but carefully laying solid foundations and taking care to build out of bricks creates a much better wolf resistant house…that’s just me though…and I’m a bit of a weirdo…lol :smiley:

3 Likes

The assumption for Bitcoin is using the current approach. If need be, the architecture can be changed.
Regarding Ethereum hitting the limit within 1-2 years, there is the same assumption.

Even now, with Bitcoin, people are working on moving transactions off the blockchain.
If any of several such implementations works, the number of Bitcoin transactions per second could increase tenfold or hundredfold.
Ethereum could also use similar inventions. Not everything needs to happen on the main blockchain. And if there’s really demand for so many transactions, it will be very feasible to fork Ethereum and run a “private” Ethereum.

Vitalik is extremely smart, but those calculations aren’t what matters the most.

Correct, there’s already an idea where you don’t share the blocks any longer. It makes it in a way where nodes can construct their own blocks, by knowing the transactions and in which order to put them. But these are only transactions. For Ethereum there’s calculations and storage as well. It’s way broader.

If you run a decentralized computer all calculations have to be done/shared by all, so these numbers definitely matter. For transactions you can use something like Open Transactions or Factom. Calculations is a different story. But agreed, there’s enough time to come up with a solution before the thing cracks. Although it could workout in a way where we see a use amount of interest and the thing becomes to popular and get’s in trouble.

2 Likes

Unless something fundamental have changed since I last looked, then they are as different as chalk and cheese! Ethereum may talk of being a platform but its more a computing platform… a computational engine. SAFE is more an environment in which data can work in privacy without worrying about security and the enjoying the freedom that follows.

1 Like

Great topic @polpolrene

I think we can safely say that none of these solutions has proven scalability. SAFE of course has more to prove than bitcoin, but hopefully not for long, and if as we expect, it proves both secure and scalable, I think it blows these cobbled together solutions away. It’s just much easier to understand (i.e. trust), and to build on, than side chains, or that dogs breakfast Vitalek just described.

Blockchains will still have their niches (ledger, smart contracts etc) but if SAFE network’s group consensus works as advertised, I would expect people to start extending it in these directions pretty quickly, either as part of SAFE core (best, because max network size), or with forks.

Fingers crossed, roll on! :smile:

3 Likes

Lol…that’s what I said…Etherium is Cheesier…!
Really not technical, so can only go by what they talk of it being…to me and maybe 99% of the population, they sound like very roughly similar things. I’ll take your word for it that they aren’t. :smiley:

I see they’ve overhauled the Ethereum website
suggesting:

Ethereum is a community-driven project aiming to decentralize the internet and return it to its democratic roots. It is a platform for building and running applications which do not need to rely on trust and cannot be controlled by any central authority.

Which I wonder is an odd confusion that encourages the wrong thought but perhaps they will draw people in. There is then plenty of emphasis about next-generation distributed applications.

Also, the Ethereum whitepaper still does suggest in its own pithy way:

What Ethereum intends to provide is a blockchain with a built-in fully fledged Turing-complete programming language that can be used to create “contracts” that can be used to encode arbitrary state transition functions, allowing users to create any of the systems described above, as well as many others that we have not yet imagined, simply by writing up the logic in a few lines of code.

So, next-generation distributed applications and smart contracts.

I suspect they hadn’t the imagination to consider that there would be a different internet and have assumed that description but SAFE is more the new form of internet, they appear to be. I see no conflict then but they could do with being more direct in their description… that’s marketing and PR for you. :stuck_out_tongue:

1 Like

The problem with gaining consensus via a blockchain is that all parties must agree. To discover whether they agree, all parties must complete the same steps to confirm it. This is massively inefficient.

A more efficient solution is to have small, dispersed, consensus groups, which are invite only and anonymous. This is essentially the safe net approach.

Why have thousands of nodes doing the same thing, when a handful can achieve the same conclusion?

1 Like

Btw, I would suggest the ethereum is more of a massive parrallel computer, rather than a distributed one.

Distributed suggests that many tasks are handled by many nodes, which suggests scalability. Running a single task on many nodes doesn’t really fit that definition - multiple nodes just add to the security of the result instead.

1 Like

I’m currently taking part in Ethereum’s latest Frontier mining testing. It’s going very well. You can see a partial snapshot of activity on: https://stats.ethdev.com/ Plus the new blockchain explorer is at: http://etherapps.info/

Like MaidSafe, Ethereum has an active and vibrant community. It’s deja vu all over again watching new Ethereum wannabe miners scrambling for GPU cards. (Best decision I made was to keep all of my Bitcoin GPU miners.)

I expect that my farming activity for MaidSafe will be very limited because I don’t have a big bandwidth pipe. Frankly, I’m disappointed by this. However, I’ll be going “whole-hog” with Ethereum because I can run a node while using very little bandwidth.

… and why have a handful when you can have one (or three, to make it seem fair)?

There are advantages and disadvantages to each approach. The Bitcoin blockchain attracts applications for which it is relatively more suitable than other approaches.

Well, you want as few as possible, while remaining secure.

Blockchains traditionally require all nodes to confirm every transaction. That is the opposite to scalable - each node must still do everything.

You could possibly develop a solution where different groups confirm different blocks in the sequence, but this would still require coordination nodes of some type. Maybe that is possible, but I suspect you would need something similar to safe net to achieve it - indeed, recording sequences of events is something that safe net should be able to do well (hence, Safecoin).

2 Likes

There is a sort of centralized safe way, it’s called Open Transactions. You connect to a server which is part of a group. That server can’t steel your coins or anything, the only harm it could do is not process your transaction. In that case, they don’t make any money and you’ll just pick another server. Ethereum people told on Reddit that they like that system, but they want the blockchain to be used because it’s fully p2p without any centralization. But for transactions we’ll probably see a connection of these technologies.

1 Like

Indeed, @traktion but there no reason why small group consensus can’t be used to confirm blockchain style blocks and operate a ledger system. Assuming it worksat all! :smile:

Not long to wait!

2 Likes

Right, but unless they’re running on the Onion network, you’re one Interpol search warrant away from the termination.
10 or 20 nodes located in known locations (by definition, in western countries with good infra) could be disappeared in an hour.

There’s no single “best” approach, but the Bitcoin model is pretty good for its own purpose.

2 Likes

Sure, which is why I suggested safe net has a mechanism to do this already. It has a mechanical to securely manage anonymous, dispersed, nodes in small groups, while retaining security.

I am sure ethereum could be re-implemented using safe net style consensus groups, but why not just build it on top of safe net itself?

If safe net works as specified, it will be a vastly more efficient and scalable platform for recording transactions than a blockchain.

Every node on the network repeating the same transaction vs a handful of dispersed/anonymous nodes repeating it will make transaction costs vastly lower than the former.

I think the blockchain is distributed consensus v1. The v2 is something like safe net.