17

Code is run on the blockchain through the use of smart contracts. Each smart contract has an address, storage, and code. When a transaction is sent to a contract's address, it's code is run on every node, inside the Ethereum Virtual Machine (EVM), and the contract can send Ether, call other contracts, and write to it's own storage. Scaling is handled ...


17

Although your calculation is mostly correct, it did not take into consideration the network's capability to slowly increase the block gas limit. If a block becomes full with transactions, miners are allowed to bump the limit of the next block by a certain amount (for details please see Yellow paper, page 6, equations 40-42 + surrounding context). Based on ...


17

I did the math to show the aprox tx/s: The block gas limit is 7,999,992 Transaction costs 21,000 gas (let's assume nothing else is attached) That's ~380 transactions per block With a block time of around 15.03 seconds. As https://ethstats.net/ shows. This gives us aproximately: 25.346 tx/s. At the end of your question, you have mentioned some possible ...


16

Block time in Ethereum's Proof-of-Stake system (called Casper) is being conservatively targeted at around four seconds. Vlad Zamfir of the Ethereum Foundation believes the block time will ultimately end up being much lower (sub-second) while Vitalik is not as convinced on that front. Vlad discusses this in this excellent video explaining Casper: https://...


16

Ethereum blocks are limited by the block gas limit (currently around 4.7 million gas). Each transaction specifies how much gas it's willing to spend. A block can only fit as much as the block gas limit, so if someone specifies a transaction of 4.7 million gas, a miner cannot fit any more transactions in that block. So you can see some differences against ...


15

I am Dimi - a developer at BigchainDB. In the Blockchain Stack it suggests that the Ethereum "decentralized processing" is above the File System and BigchainDB. At BigchainDB we believe that each technology serves its purpose. In typical web-application stacks, some technologies are better at processing (eg. Amazon EC2) than data querying (eg. MongoDB). ...


13

An obvious way to scale a distributed database is to put transaction types that will never rely on each other into two separate databases. This is such a standard practice it's difficult to find a citation for it. But if we are using a PoW blockchain to store our data we cannot do this because the smaller shard will be less secure in proportion to its size ...


13

You don't need to have lots of full client nodes. Nowadays you can download the light-client version, which implementing Merkle Tree structures, lets nodes to don't be obligated to store ALL of the data on it's hard drive. Some use cases for a fully light client, and how the light client meets those use cases, include: A light client wants to know the ...


9

Yes, though there is ongoing discussion of "Blockchain Rent". The argument why storage would not be a scalability issue, is that the rate of storage getting cheaper is higher than the rate of storage that the blockchain needs: thus everyone can comfortably afford and buy more storage, for all general purposes, and the space consumption of the blockchain ...


9

Let me try to explain. Bitcoin Block Size Limit The Bitcoin side is pretty simple to understand. The bitcoin blockchain has a hardcoded block size limit of 1 MiB. With an average transaction size of around 600 B and a target block time of 10 minutes, you get 1024 * 1024 / 600 B = 1747.7 transactions per block, which translates down to 1747.7 / 600 s = 2....


9

Turing completeness is arguably a matter of design choice. The Bitcoin blockchain was designed to target a very specific use-case (crypto-currency) where Turing completeness is unnecessary. In comparison, the Ethereum blockchain was designed from ground-up to serve as a general platform for a range of use-cases, and for this Turing completeness (or quasi-...


9

I'll not enter on crypto hard details, because I don't know that much about it, and it needs pages and pages to be explained correctly. But let's try it!!! ZKSnarks also known as: Zero Knowledge Succinct Non-interactive Arguments of Knowledge, are fast computational zero knowledge proofs that allow you to demonstrate things without giving any info and even ...


8

Its kind of what Casper is trying to do with its sharding scheme. The high level idea is to split the network into several groups, and a group of nodes will be responsible for verifying some set of transactions (or a shard). It is entirely possible to do in a private network, where all the nodes are known and have fixed identities. However, in an open ...


8

Two bottleneck types There are two types of speed limits that are in play here. These are latency and throughput. Latency is the amount of time one must wait until a transaction is processed. The other is throughput: the number of transactions that can be processed in a particular amount of time. Imagine the difference between a supermarket with 100 patrons ...


7

The "processing power" of the EVM is unrelated to mining hashrate. Power is not an accurate phrase for the EVM, because what limits computation on the EVM is cost: gas used multiplied by gas price. The Ethereum protocol does not provide limits on what the gas price and block gas limit can trend to. Heavy computations are possible on the EVM, but they ...


6

Part of what defines a "block chain" is that new data is intrinsically based off older data. Cryptography allows us to to accomplish this by calculating a hash and embedding it in subsequent blocks of data. Changing a single value anywhere in the history would require altering all child data, invalidating everything. However, this concept is different from ...


6

Ethereum is fundamentally limited by single threaded performance of a CPU. Discussion over GAS costs/etc is misleading because the maximum GAS that an individual node can process is limited and there is relatively little room to optimize execution. Early test networks reached 25 tx/second. With optimizations they may be able to reach 50 tx/second. In ...


6

I don't think you can do that realistically. Ethereum doesn't have a theoretical upper limit on the transaction count. When you push in more transactions than the blocks fit in, the block sizes are gradually increased to cater for them, so in theory it's unlimited. In practice after pushing the block size above some threshold, the network propagation time, ...


6

The first phase implementation of sharding and Plasma are both essentially sidechains that tie into the main chain via smart contracts. However, the responsibilities of these smart contracts and properties of the sidechains is different for each project. Plasma sidechains are somewhat similar to state channels (e.g. Lightening and Raiden) in that they use ...


5

Right now, the current Ethereum proof-of-work (PoW) system involves a single miner verifying each block (but not always the same miner); this puts a hard limit on the number of transactions that can be included in each block: the number of transactions the miner's node can process for inclusion in the block. However, there are plans to distribute the ...


5

According to etherscan.io and etherchain.org, as of 1st Feb 2016, the Ethereum blockchain is trending at ca. 15k transactions per day. This compares to ca. 200k transactions per day on the Bitcoin blockchain [source]. It took approx 4 years for the Bitcoin blockchain to reach ca. 15k transactions per day since inception. In comparison, the same ramp-up ...


5

Someday the Ethereum blockchain will hit 1TB, but it won't be soon. I've been installing full mining and non-mining nodes with geth with "fast" disabled. A fresh install of the blockchain fits nicely in under 120GB today, and that is only up about 40GB from last December. That's around 40GB in nearly half a year. Even if the Ethereum blockchain triples it's ...


4

Just to put up to date this question I did the math to show the approx tx/s: The block gas limit is 7,999,992 Transaction costs 21,000 gas (let's assume nothing else is attached) That's 380,952 transactions per block With a blocktime of around 15.03 seconds. As https://ethstats.net/ shows. This gives us aproximately: 25.346 tx/s. At the end of your ...


4

Theoretically that would work, practically it likely wouldn't work every well. We recommend a minimum bound of seven validator nodes with stake distributed amongst the various actors within the network (depending on what the application is trying to achieve). This will allow a tolerance of two nodes to be either malicious or offline at any one time. The ...


4

Now we can compare, since a few days ago the Ropsten network just verified a Zcash transaction via a zkSNARK. Check it out here. Confirmation time: the same as for a usual Ethereum transaction. The on chain verification transaction consumed 1933895 gas, which with a 21 Gwei gas price would approximately cost $10.722 on the mainnet. cca. 0.7kB To put ...


4

At eris, we've been working on a benchmarking suite. The basic idea we pursue is to first establish a network of set configuration suite (same data center, various node numbers, cross data centers, cross cloud providers, etc.). Then we run that network against a set number of transactions (basically flog the mempool) where txes are randomly sent via ...


4

Yes, you can save gas by using events instead of permanent storage. If the data is not needed in the contract itself, this makes a lot of sense. See https://media.consensys.net/technical-introduction-to-events-and-logs-in-ethereum-a074d65dd61e for a description of this use case.


4

Could blockchain be distributed over torrent (DHT)? Possibly, but... ...so that every node would not need to store whole blockchain... ? What you're essentially describing is sharding, which is being touted as one of the answers to Ethereum's scalability challenges. It's described in detail on the wiki's Sharding FAQ. In short, sharding allows the ...


4

Disclaimer : I am not a cryptographer nor a mathematician nor a low level software engineer. Please correct me if any information provided below is incorrect. Very short answer: Yes Short answer: Possible, but very difficult today. Longer answer: The main challenge with Ethereum is that since you have a programmable blockchain, you effectively need to ...


3

Because it's completely integrated into the protocol and all interoperable. Side chains imply that there isn't really a consensus underneath that binds the two, it's sort of hacked together. Shards all operate under the exact same consensus structure.


Only top voted, non community-wiki answers of a minimum length are eligible