Byzantium Hard Fork Announcement
blog.ethereum.org
blog.ethereum.org
I wonder if the planned switch to proof-of-stake is ever going to happen.
In any case, what's the point of continuously postponing a pre-programmed difficulty bomb (via a hard for), when miners can just remove this part from the code and continue with that fork if they wish? Because of this, it seems like it doesn't do much difference compared to just switching to PoS via a hard fork whenever it's ready. I mean, if miners really want to continue with PoW, removing those couple of lines, that define the difficulty time bomb, from the Ethereum code surely won't be a problem, right?
Pushing through protocol changes could be hard if everyone who takes the default action of doing nothing is counted as a vote against any protocol change. I think we see this with bitcoin where change is very conservative and slow because any change has to gain enough support to be actively upgraded by a majority.
The difficulty bomb just means that if there is ever disagreement about a protocol change, everyone will have to actively choose a side rather than the 'no' side getting all the non-active default votes.
It basically just means that changes can be done faster.
No, this just shifts the do-nothings from 'no' to 'yes', as they will have to actively create something that will let them stay with what they currently have. It is technically and morally dangerous because most people aren't technical enough to understand what they are being forced to accept.
With a future difficutly bomb in the current implentation, when a proposed hard fork from the ethereum team is approaching you have 3 options:
1) You do nothing (you don't vote - the default) - You'll end up on the chain that eventually get's it's difficulty scaled up and will die. You will not be able to continue running this chain practially after this point.
2) You agree with the fork (a yes vote) - You need to actively install the update.
3) You disagree with the fork (a no vote) - You need to activly install a competing patch to remove the bomb.
(Assuming we are talking about a widely controversial fork, not just something that you alone oppose. I'm not talking about having to create a patch yourself. I'm talking about the situation where there are two competing sides, both creating their own patches. So the difficulty involved with voting either way is exactly the same, just pick a side and installing their update.)Having the difficulty bomb guarantees that (eventually) all users post fork must have actively made a concious choice one way or the other and upgraded. The users that do nothing are guaranteed to end up on a dead chain, and hence have not cast a vote in either direction.
I'm not sure how that can be interpreted as the do-nothings casting yes votes. Anyone who does nothing becomes no part of any future chain.
"It solves the long-range problems with proof of stake by relying on human-driven social information, but leaves to a consensus algorithm the role of increasing the speed of consensus from many weeks to twelve seconds and of allowing the use of highly complex rulesets and a large state. The role of human-driven consensus is relegated to maintaining consensus on block hashes over long periods of time, something which people are perfectly good at. A hypothetical oppressive government which is powerful enough to actually cause confusion over the true value of a block hash from one year ago would also be powerful enough to overpower any proof of work algorithm, or cause confusion about the rules of blockchain protocol."
https://blog.ethereum.org/2014/11/25/proof-stake-learned-lov...
And if you have trusted checkpoints I fail to see the point of proof-of-stake (or proof-of-anything really). Just call every block a checkpoint and you're done.
Any remaining use cases probably centers around availability, but we know how to build highly available systems and can build them to any degree. Trustless and decentralized systems are much harder.
E.g. let’s say I take the main chain, go back to the first block past the latest checkpoint, and remove the competing staking-transactions so that only my staking-transaction is present in that block. The I build on top of this, without competition, because I can selectively remove competing staking transactions simply by constructing new blocks that don’t contain them.
Let’s say hundreds, or thousands, of stakers do this. How do nodes decide which chain is the right one?
This is Vlad Zamfir's version; Vlad is the lead Casper esearcher, and takes a more long-term theoretical approach, while Vitalik is more focused on near-term practicality. Vitalik's version doesn't penalize dropping offline as heavily; I don't know whether there's some other mechanism to cover this, or he just thinks a lighter penalty is sufficient.
Thanks for the question! Until now I didn't realize the reason for the offline penalty.
> Accountable safety is what brings us this idea of “economic finality”: if two conflicting hashes get finalized (ie. a fork), then we have mathematical proof that a large set of validators must have violated some slashing condition, and we can submit evidence of this to the blockchain and penalize them.
Why would the validators, who decide what goes into blocks, willingly include a proof that they have cheated?
As far as I can see, these proofs must be communicated out-of-band (not through the blockchain) by nodes, since no validator would ever incriminate itself by including a proof that it has cheated.
How do nodes coordinate this, and come to agreement on which chain is the right one?
[1] https://medium.com/@VitalikButerin/minimal-slashing-conditio...
Detractors of Ethereum would prefer to view the Foundation as having much greater influence over the network, since that would mean it's less centralized. Proponents of Ethereum on the other hand would say Ethereum Foundation's role is similar to that of Bitcoin Core, except the divisiveness hasn't set in yet (or in the case of Ethereum Classic, opposing factions split off before it got bad).
This change is not backward compatible. Therefore it is a hardfork. Full stop.
Unlike last year this is not a controversial fork. It's just a planned part of the network upgrade process. No groups are planning to boycott the fork.
(It's futher enforced by code in the old fork that will cause it to die shortly, so even if a group of people wanted to keep running the old fork, they would actually have to hard fork it themselves to remove the 'ice age' anyway. So it would have to be a concious act, rather than just people forgetting to upgrade)
So this _is_ a hard fork, albeit not a very contentious one. And it _will_ result in a chain split, with the minority chain probably having low activity/worth due to (1) lack of support (2) the ice age which will increase block times to slowly kill it (and that it itself has to be hard forked to stay alive).
In Bitcoin, the economic majority decides what is Bitcoin. And when there's a substantial disagreement (e.g. BCC) there's a fork.
Large mining pools have no more power to enforce consensus rule changes on others than anybody else does.
So yes, IMO it is.
Otherwise private concentration of power will do as it always does: leverage it's monopoly to control the system as a whole.
The discussion & development are in the open. The large mining pools can sit at the table and discuss the changes as a part of the community. Or fork off.
It's obvious that this does not prevent disagreement about the protocol, but it greatly affects a fairly large class of disagreements and changes the incentives for a variety of behaviors. It's all game theory, and as such minor changes to the premise of a 'game' can have large impacts on how it plays out.
It's not perfect, but I think it is good.
To convince early adopters that there would actually be a switch to proof of stake the ice age was conceived. The ice age can be delayed however as we see here (this isn't the first time its been delayed either)
Switching from proof of work to proof of stake will probably be hard to pull off without disruption.
It is an expected fork, basically an upgrade to the network that isn't going to result in a new coin (in practice - technicalities excluded.)
[edit] The whole idea of each is to make sock-puppeting when voting on the truth unprofitable.
With the first, you need a near majority of the compute power in the network to have people believe your "lie" with the second you need a near majority of the coins in the network to do so.
[edit2]
Imagine that banks don't exist, instead everyone writes down every transaction that happens. Then at the end of the day we all get together in the village square and vote on who has what money. This would make it so that no minority of the village can steal money from anyone else.
We can't do that with bitcoin &c. because how do you prevent one person from just running a billion bitcoin clients and voting all the money to themselves? So instead bitcoin (very roughly speaking) requires you to prove that you have done some work to get to vote on what the ledger looks like. This is proof of work. If instead it were "one dollar, one vote" that would be proof of stake.
Ethereum's version is a bit different: to stake, you have to lock up your ETH for at least four months. Then you have your node start betting your staked ETH on which blocks will be accepted by the network. The blocks which are accepted are the ones that get the most stake-weighted bets.
You start with low-confidence votes that won't lose much when you're wrong, see what everybody else does, and progress to high-confidence votes that pay off better when you're right. There's a little bit of inflation plus transaction fees so it's not a zero-sum game, and it all converges on finalized blocks.
This is somewhat analogous to mining; if there's more than one finalized block available, miners have to pick one to build on, essentially betting their electricity on which block will be accepted by everyone else.
Here's an interesting FAQ:
In order to decide who gets to be this node, people Stake coins. The probability that you are the chosen node is proportional to the number of coins you have staked. If you are chosen, and you do something against the rules, like double spend coins and try and add this to the next block, then you lose your staked coins.
So instead of rewards being proportional to hashing power, they are proportional to staked coins.
This is still being tested, but it's going pretty well.
AIUI, there isn't consensus today that proof of stake is actually workable.
Also, what's the plan for ETC, will that also hard fork?
Broken model users wont want to pay for gas to use the platform
I wonder why they chose to do it the wrong way around...
Steem blockchain hardfork 19 times monero hardfork every 6 months both are decentralize no vitalik no problem
4 days! This announcement was made 4 days before the fork is introduced??? Everyone in the whole ecosystem has 4 days to upgrade it be exposed to a vulnerability. If you are running special code or your own client, you have to adjust it for a new block reward, a new script primitive, a difficulty algorithm, and stuff they are literally calling mathemagic.
I don't see how this is responsible development.
I had wanted to jump on the ETH hype train and almost bought a bunch but these planned forks make the platform seem very “centralized.”
As with other blockchains, forks don't happen unless users go along with them.
1. The fact that there is a hard fork coming has been known for months if not years.
2. Developers have notified the community well in advance and content of the hardfork has been discussed with all key players (ex: reward and difficulty bomb).
3. The development decisions are public as is the process - try searching for live streams of developer meetings where Vitalik and others discuss direction in very democratic fashion. I'm not even interested in those and I came across - funny that you're not aware of the existence.
There is a stark contrast between Eth and BTC where constant bickering is the norm.
https://github.com/ethereum/EIPs
https://github.com/ethereum/pm/tree/master/All%20Core%20Devs...
These changes should be no surprise to anyone who's made any effort at all to follow Ethereum development.
Just because you chose to not read the announcements doesn't mean it wasn't announced.
I'm certain that I'm not the only user who is surprised that the hard fork is only 4 days away.
If, say, you use a hardware wallet and MyEtherWallet to issue your transactions, then you don't have any updates to make.