The fundamental flaw of Proof of Work (PoW) is that the costs of attacking the system are equal to what is spent to run the system. High security thus can only be achieved at high operating costs. The idea is that the honest participants just outspend the dishonest.
This is already today highly inefficient, but it does work for Bitcoin. As soon as the ...
Transactions with too low a nonce get immediately rejected.
Transactions with too high a nonce get placed in the transaction pool queue.
If transactions with nonces that fill the gap between the last valid nonce and the too high nonce are sent and the nonce sequence is complete, all the transactions in the sequence will get processed and mined.
There are two key motivations for the move to Proof of Stake:
Ethereum developers and researchers believe that consensus algorithms based on Proof of Stake (PoS) can provide a higher degree of security for a given amount of resource expenditure, compared with Proof of Work (PoW) consensus algorithms.
Ethereum developers and researchers believe that a new ...
Due to advances in blockchain research, it was shown that significantly lower block times were possible and perhaps beneficial given the current connectivity of the internet. One of the potential risks of a low block time is a higher rate of orphaned blocks (competing blocks that do not make it into the main chain). To counter this, a GHOST protocol is used ...
The PoW algorithm used in Frontier and Homestead is called Ethash, and it was created specifically for Ethereum.
The primary reason for constructing a new proof of work function instead of using an existing one was to attack the problem of mining centralisation, where a small group of hardware companies or mining operations acquire a disproportionately ...
Let us start by what they have in common: they are both algorithms for reaching consensus on the blockchain.
Without going into too much details, we need consensus because anyone can create a block; while we only want an unique chain, so we want a way to decide which block we should trust.
Proof of work has the nice property that you can use Bayes' Theorem ...
Uncles are stale blocks that contribute to the security of the main chain, but are not considered the canonical "truth" for that particular chain height.
In contrast to orphan blocks (which have no parent), uncle blocks are linked to the chain but are not part of the final selection.
Uncles are stale blocks which are not orphaned.
Orphan blocks have no ...
From the glossary
Uncle: a child of a parent of a parent of a block that is not the parent, or more generally a child of an ancestor that is not an ancestor. If A is an uncle of B, B is a nephew of A.
Why they are needed?
To help reward miners for when duplicate block solutions are found because of the shorter block times of Ethereum (compared to other ...
An 'Ethereum client' is just a term. It refers to any node able to parse and verify the blockchain, its smart contracts and everything related. It also allows you/provides interfaces to create transactions and mine blocks which is the key for any blockchain interaction.
Official reference implementations (CLI)
There are currently three reference ...
That is very complicated topic.
Considered Proof-of-Work waste energy to maintain security of a public censorship resistant consensus ledger. Though there is a long standing debate about this point. You can see for yourself that Bitcoin consumes more than $1 mln of value per day. Energy consumption on hash calculations is estimated to be around Iceland's ...
The goal of a consensus algorithm in a public blockchain network is to let many different users agree on the current state of the blockchain even though they don't trust each other or any central authority. This is a challenging problem, and until the Bitcoin network was launched, it had remained unsolved.
Bitcoin's solution was to use something called ...
The friendly Ghost
Casper is a security-deposit based economic consensus protocol. This means that nodes, so called bonded validators, have to place a security deposit, an action called bonding, in order to serve the consensus by producing blocks.
In Casper style proof of stake anyone can participate in block production by posting a bond. After posting a ...
Vitalik Buterin gave a presentation about Ethereum to Hyperledger April 28 2016 and had this slide:
● Small code size (so that very many contracts from
many users can be stored by one node)
● VM security designed around running untrusted
code from arbitrary parties
● Multiple implementations (for cross-checking, and
to mitigate developer ...
Currently, Ethereum uses elliptic curve cryptography, which is not quantum resistant.
In the upcoming Serenity upgrade, however, accounts will be able to specify their own scheme for validating transactions, so individuals could choose to use Lamport signatures or other quantum proof algorithms.
The Serenity blog post has a more in depth look at account ...
Yes, the answer is quite logic. Every node has to verify the results of a transaction which invokes a smart contract. The result is that at least every full node will execute the code.
The hash of the transaction isn't relevant until it is being stuffed into a merkle tree. When running the execution, all we care about is the amount of gas, the data being ...
So the important point in your question is why a new VM and not a java VM. ok let's choose a Java VM instead, what do we get? :
1- complex and voluminous Bytecode => how to store it, in the blockchain for which cost? (Knowing that a single java method can have a size up to 64KB) so such VM or language isn't space saving.
2- useless features and security ...
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 ...
There are a couple of "reference implementations" that the Ethereum foundation is supporting.
Ethereum C++ (known as Eth or "TurboEthereum")
Go Ethereum (known for the command line client Geth)
There are a couple of reasons for doing this.
Finding consensus problems.
Bitcoin was created in an isolated environment, because of this ...
There are a number of reasons I much prefer Casper over PoW:
In PoW, any coalition of >50% (or 25-33% if selfish mining) can very profitably censor and revert history. In Casper, it takes close to 100% of bonded validators to collude, to censor profitably. Additionally, finalized blocks cannot be reverted by any amount of byzantine behaviour.
Casper is ...
In a temporary 51% attack, the attacker can:
censor or reorder transactions at will (i.e. prevent you from using your money or any dApps)
doublespend ether/tokens/shares at will to drain non-blockchain resources of exchanges or vendors
steal from certain types of contracts which rely on deposit-challenge-verify mechanisms shorter in length than the attack
Short version - POW requires miners or physical computer to be turned on and processing the transaction. This can be inefficient since better computers are created and optimized for mining which may lead to centralization such as bitcoin. Bitcoin maybe viewed as centralized in China by a small group of people holding the mining power which may be greater ...
We've had an unexpected fork in the past that caused a split between clients. While no hardfork is like any hardfork we generally follow these rules and steps:
Identify and announce the issue;
Create a test to replicate the problem;
Fix (very important step :-P) and mark the forked block;
Release it out on to the public (usually special care goes out to ...
Every full node processes every transaction. The miners choose which transactions to execute, based on gasprice. Once a block is mined, every node must rerun all of the contract executions in order to verify the block.
A different explanation of Casper was written by Vlad. Some of the points from the post include:
It is an eventually-consistent blockchain-based consensus protocol
It favours availability over consistency
It is always available, and consistent whenever possible
It is robust to unpredictable message delivery times because nodes come to consensus via re-...
GHOST is short for the Greedy Heaviest Observed Subtree chain selection rule which was a proposed modification for the Bitcoin blockchain (Paper).
GHOST orignally was a protocol modification, a chain selection rule, that makes use of blocks that are off the main chain to obtain a more secure and
With that modification, it is possible to ...
No; Ethereum and Bitcoin's consensus algorithm is very different from Raft and Paxos. Ways in which they differ:
In both Raft and Paxos, the systems elect a leader. There is no leader in Ethereum and Bitcoin.
In both Raft and Paxos, all members of the cluster are trusted. In Ethereum and Bitcoin, one needs trust in only 51% of the holders of hash power.
I'm not an expert on this Quorum world. But as i've read, the main difference between the three mechanisms you mentioned is the % of BFT (Byzantinism Fault Tolerance).
BFT is defined as:
Byzantine fault tolerance (BFT) is the dependability of a fault-tolerant computer system, particularly distributed computing systems, where components may fail and ...
There are several different ways to answer this question.
For example, you could try to measure the percentage of the network that must misbehave in a malicious or "byzantine" manner before agreement among the "real users" breaks down. This type of approach, called fault tolerance analysis, is well-studied in computer science, and some important ...
Ethereum Improvement Proposals (EIPs) would be where that gets discussed. Anyone can submit an EIP idea as an issue, or as a pull request if you already have it in a document following the EIP template.
There is no immediate need to have those discussions on-chain; blockchains reach consensus on the state of their chain, not the opinions of the people using ...
the_truth = Agreed data structure (Block) containing valid future state of the ethereum virtual machine (and related information) as calculated by me using the rules set out in the yellow paper.
rand = 8 byte random number
Proof of Work:
I'll race you to find the hash value of the_truth+rand that is less than
the agreed difficulty level, prize for the ...