Anyone can set up an account on any substate, and one can send a transaction to any substate by adding a substate number flag to it, but ordinary transactions can only send a message to an account in the same substate as the sender. all accounts, contracts and balances) is split up into N parts ("substates") (think 10 <= N <= 200). Suppose that the global Ethereum state (ie. We'll start off by describing a relatively simple model that does provide both kinds of scalability, but provides the second only in a very weak and costly way essentially, we have just enough intra-dapp scalability to ensure asset fungibility, but not much more. The second is more problematic, because it leads to the same fragility property that arises from scaling Bitcoin the currency: if every node sees only a small part of the state, and arbitrary amounts of BTC can legitimately appear in any part of the state originating from any part of the state (such fungibility is part of the definition of a currency), then one can intuitively see how forgery attacks might spread through the blockchain undetected until it is too late to revert everything without substantial system-wide disruption via a global revert. some version of merged mining that makes each chain receive the strength of the entire pack without requiring the existence of miners that know about all chains simultaneously, then we would be done. If we can find some way for all alt-Etherea to share consensus strength, eg. The only property that the "build lots and lots of alt-Etherea" approach does not have is that each individual alt-Ethereum has relatively weak security at a size of 1000 alt-Etherea, each one would be vulnerable to a 0.1% attack from the point of view of the whole system (that 0.1% is for externally-sourced attacks internally-sourced attacks, the equivalent of GHash.io and Discus Fish colluding, would take only 0.05%). The first is inherently easier than the second. ![]() Allow each individual dapp to be scalable according to a definition similar to that for Bitcoin.Allow lots and lots of people to build dapps, and keep the transaction fees low.Ethereum is, fundamentally, a platform for "dapps", and within that mandate there are two kinds of scalability that are relevant: In an Ethereum context, the definition of scalability gets a little more complicated. To achieve all three combined, however, we need to break through a fundamental barrier posed by Bitcoin and all other existing cryptocurrencies, and create a system that works without the existence of any "full nodes" that need to process every transaction. In order to achieve the second, we can simply have many altcoins. At that point, some balance will emerge between fees and size, as excessize size leads to more centralization which leads to more fees due to monopoly pricing. The first goal alone is easy we just remove the block size limit and let the blockchain naturally grow until it becomes that large, and the economy takes care of itself to force smaller full nodes to continue to drop out until the only three full nodes left are run by GHash.io, Coinbase and Circle. Do it all while maintaining security against at least 25% attacks and without highly centralized full nodes.Provide a transaction fee of less than $0.001.Process tens of thousands of transactions per second.What do we mean by scalability, particularly in an Ethereum context? In the context of a Bitcoin-like currency, the answer is relatively simple we want to be able to: Understanding the Objectiveįirst of all, before we get into the details, we need to get a much deeper understanding of what we actually want. In this post, I describe a more comprehensive approach, which, while coming at the cost of some "fragility" concerns, does provide a solution which is much closer to being universal. However, these approaches are all necessarily application-specific, and far from ideal. ![]() For some computation-heavy applications, computation can be done by one party by default, but in a way that can be "pulled down" to be audited by the entire chain if someone suspects malfeasance. ![]() Specialized micropayment protocols such as channels and probabilistic payment systems could be used to make small payments, using the blockchain either only for eventual settlement, or only probabilistically. In a recent blog post I outlined some partial solutions to scalability, all of which fit into the umbrella of Ethereum 1.0 as it stands. Special thanks to Vlad Zamfir, Chris Barnett and Dominic Williams for ideas and inspiration
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |