To me, I think this represents a failure of the currency. Either the code is the final word on the contract or not. This process seems to give a cartel of people the power to revoke transactions on a whim. Who would commit to building anything in an environment like that?
From what I understand, it's much worse than any human legal system. Theory and precedent have all been thrown out and everyone is at the mercy of whoever can convince 51% of stakeholders. There's no concept of "equal protection" like in a modern legal system.
Exactly - what happens when the next freedom fighter/terrorist/Kanye uses Ethereum, and a hysterical majority freeze them out. Where is your open distributed cryptocurrency then? Worse - as far as I can tell - than a properly regulated banking system working under the rule of law.
Except, uh, no.
Almost everywhere, there is a ton of legal (and other) recourse, as well as a theoretically neutral arbiter who will listen to you and make a decision. There is some due process.
You can argue about the neutrality, the laws, whatever. There's something, and it's recourse for plenty of people/etc.
Here, if all your neighbors get together and want to steal your money, they can steal your money, and you have no recourse.
> Here, if all your neighbors get together and want to steal your money, they can steal your money, and you have no recourse
And this was always possible even before the hard fork. The difference now is that there is an actual precedent for it and apparently at least 51% of Ethereum stakeholders are okay with doing that sort of thing. Anyone actually holding a significant amount of Ethereum should seriously question the original claims that the Ethereum team made on its value.
> I think this represents a failure of the currency
Yes, this proves ethereum is a failure- Everyone reading this thread might as well just send their now-worthless ether to my wallet at 0x6B4a61a3Fdc2596427A25F79D7b3b78e164da308.
On the contrary, this represents a success for the currency - it represents a failure of the concept "the code is the final word on the contract", which the Ethereum community judged as incompatible with a good future of their currency and threw out this concept.
Apparently when considering "Who would commit to building anything in an environment like that?" in practice, then an environment where the code is the final word on a contract is even less desirable than a suboptimal environment where, as you say, "a cartel of people the power to revoke transactions on a whim".
But that approach was what made Ethereum unique. If it is abandoned, then why should anyone use it, rather than the more popular and better established alternatives?
The concept of smart code-enforced contracts is valid, interesting and useful for practical applications even if (and IMHO especially if) there is some non-technical override possible above them.
Whether you like this or not, goes to show that developers have to get their hands dirty with mining. If you remain in your ivory tower, you will not control the protocol after it gains any significant traction.
What's happening: the block number of the hard fork is much bigger than the block number of the non-fork. This means that most of the mining power is being devoted to the hard fork chain since it is longer. The non-fork can't keep up, so the fork is considered a success.
The proof of work threshold for a block (aka the difficulty) was the same when the fork started. The function that adjusts the difficulty (a function of time-between-blocks) is the same across both forks. It would take considerable time for the non-fork chain's difficulty to adjust to where it can make blocks at pace with the fork chain again. And even if it did, the fork would represent less work due to a lower difficulty.
Post-bailout Ethereum is not the same currency as pre-bailout, and given that a non-trivial minority (~5%) of miners are mining pre-bailout Ethereum - and the difficulty of mining quickly adjusts - pre-bailout Ethereum will actually be a viable currency from a technical perspective, in the sense that it can be sent and received.
From a social perspective, it's hard to be sure quite yet; we'll see in the coming days and weeks whether or not people decide that pre-bailout Ethereum has value or not (and equally, post-bailout Ethereum).
Note that this says more about the defaults in software than about any Ethereum user's opinion.
(The miners may or may not be more informed, but note that Ethereum is only valuable if users are willing to exchange things of value for Ethereum, i.e. a hard fork requires changes in wallet software.)
Which are the users you are referring to? Because all kinds of _actual_ users have shown that a clear majority is in favor of the hard fork:
- ETH holders voted on http://carbonvote.com/ with 87% pro-fork. 5.5% of the total ETH supply participated in the vote.
- ETH miners clearly voted pro-fork on the major pools, e.g. https://dwarfpool.com/eth/voting. In nearly all cases > 80% of the hash power was pro-fork.
- ETH markets reacted positively when there were good pro-fork news, and negatively when there were bad news (such as the DDoS vulnerability in the proposed soft fork). Therefore the market sees more value in the post-HF Ethereum.
Yes, there is a vocal group opposing the fork, but it mostly consists of persons wishing to see Ethereum fail.
you consider 5.5% of the money supply a good participation rate?
In the voting on the pools, 80% of people didn't even vote.
Therefore it is simply the fact that the fork was the default choice (and is the default in all the wallets), that is the deciding factor of this 'vote'
By the way, "> 80% of the hash power was pro-fork." is demonstrably false. only 15% of the hashing power was pro fork, 85% of miners didnt vote at all.
Yes, I consider it an _excellent_ participation rate. A 5.5% sample size is orders of magnitude larger than that of nearly any sociological study (usually below 0.01%).
Passive users by definition agree to follow the active users' decision.
> A 5.5% sample size is orders of magnitude larger than that of nearly any sociological study (usually below 0.01%).
Sociological studies tend to actively seek limited size representative samples for cost reasons, and because the mathematics demonstrating the power of a limited size representative sample for making generalization about the universe from which the sample is drawn is well-known.
Comparing the size (relative to the represented universe) of a study sample actively selected to be representative with the relative size of a participant group for which there is little reason to expect it to be representative is not particularly meaningful.
I feel like "passive users" would agree with the status quo? They don't care enough to vote for the fork, so they should have counted as voting against the forks.
No vote means they don't care enough to say either way. Why would anyone who feels strongly against the fork say "I will now let everyone know how much I'm against the fork by not voting"? That's not how it works.
Furthermore, it's been well known for the past 2 weeks that the fork was likely to happen. That means the fork was the status quo. It's what was going to happen assuming nothing derailed it.
I'm an ETH holder and I didn't vote. I was undecided and was happy enough with the decision to fork.
Looking in from the outside as someone with no involvement with Ethereum, I really don't understand how the people behind it can justify using their privileged position as developers and community leaders to try to undo this. They spent a lot of time talking about how "the code is the contract"... until they stood to be negatively impacted on a personal level by allowing the literal meaning of the code to stand. I'm not sure how anyone could have any confidence in this system after that.
Prior to this fork, I had interest in Ethereum. I don't want to touch it now, out of both mistrust and the feeling that the developers are lacking in ethics. It really feels like a pyramid scheme if they're not willing to let the technology stand on its own. It's really a shame.
Maybe some other group will fork the Ethereum code into a new cryptocurrency that can't have the blockchain forked as easily.
Ethereum is a human construct; written by humans, directed by humans, and facilitated by humans (no skynet has come along to do mining). Ipso facto, it is fallible just like humans.
You think it is a bad thing that this has happened; I think it is a good thing. Now everyone is aware that the 51% can take control of the chain; you can't pretend any more that the code is the final arbiter, because it isn't. Black and white is a myth; it's a human construct that is made from mathematics and many shades of grey.
Democracy; it sucks, but it sucks less than everything else.
Gatecoin got robbed of over 185k ETH and they asked if they could get those back when Vitalik first mentioned they were going to hardfork in the hours after the attack.
They were obviously denied. It's my understanding they know what account holds most of there coins too.
There have been numerous other small hacks on eth users as well.
Unfortunately, this hardfork did nothing for those people.
I mean, from what I understood it was more complicated than just pure profit-seeking. (Disclaimer: I'm not a user of Ethereum.)
My understanding was that the DAO (and organizations like it) was the whole point of people signing up to use Ethereum, and the hard fork basically says "The DAO never existed, you're all getting your ether back" with an understanding of "now that you know all of the attendant risks of hacking, start your own autonomous organizations with a bit more prudence." It is not very realistic to expect further forks as every fork produces a new cryptocurrency; furthermore it is not very realistic to expect a mere 51% majority to sway the blockchain (as I understand it the change is code-level). If each decision only gets 80% approval then after 3 such decisions you have your community split across 4 cryptocurrencies: {20%, 16%, 13%, 10%, 41%} and you've lost over half of your users; furthermore if the power of a currency is proportional to the square of the users (as it likely to first-order has to do with how many ways they can interact with each other, which goes with the number of handshakes they can make), you've cut down your value proposition to only ~16% of what it was. It sounds like this might have gotten 90-99% adoption by the community in terms of hashpower, but some of this is doubtless amplified by miners who will go wherever the wind takes them.
It reminds me of my environmental science teacher in high school. Between counting the bugs we caught at local streams, one day he taught my class about the Tragedy of the Commons. He said, "tomorrow, if you want to play a game to illustrate this, bring a quarter and we'll play it for real cash." Most of us brought quarters. "Okay, if you still want to play this game after I explain the rules, put your quarter in this jar and I'll give you a card. You're going to write on that card your name, and then either 'use' or 'leave': for whether you're going to use the common resource or leave it alone for a while. You have to keep your decision secret, if anyone else sees what you wrote then you're getting your quarter back and it's like you were not in the game at all. You can SAY anything you want to people, but nobody's allowed to see what you're DOING. After 5-10 minutes I'll call time, and you'll give the folded cards back to me. If everyone says Leave then I'll give everyone who participated two quarters. If one person says Use and everyone else says Leave then I'll give them the jar of quarters: and, no being mean to them, they won the jackpot fair and square. Or if two or more people say Use, then I win all of the quarters. Who still wants to play?"
A lot of us put our quarters in, and I being a petulant teenager wrote Use (with the intention to give everyone back their quarters afterwards! I wasn't greedy, just a smartass) ... but while almost everyone else wrote Leave, this did not include one kid who didn't understand English so well and meant to write Leave but instead wrote Use (or else that was just what he told everyone afterwards). The teacher won all our quarters, but he returned them like a good sport and offered to let us play again, this time FOR REALS. This time I voted Leave, but multiple people voted Use just to somehow "punish" me, which was even more what the teacher was trying to teach: "if you can't guarantee that everyone else is going to leave it alone, hey, you might as well try to get in on this sweet sweet resource while it still exists, right? So that's why the tragedy of the commons happens and we're all pretty much doomed. I'm gonna win your quarters every time." He gave back the quarters anyway, of course, after making a big show of "No, the second time was FOR REALS, you all knew it, didn't you? Would you have paid ME back?!"
It's probably just the feeling of a bunch of kids being like "tha...
Every single Ethereum dev I know - and pretty nearly everyone else in the community - owns far more ETH than they do DAO, if they own any DAO at all. So this 'explanation', which I see over and over again, just doesn't scan: The financially rational thing for anyone in that position to do is to maximise the value of the ether they have, not to try and rescue a proportionally small amount held in DAO tokens.
Disclaimer: I recently joined the Ethereum-go team. I have 30 ether worth of DAO tokens (and about 500 ether not invested in anything).
Effectively breaking the immutability of a blockchain's history might be financially rational[0], but it appears unprincipled to do so after leadership spent a couple years extolling the virtues of "code is law" and "code is contract."
I'd like to learn what principles are now now guiding the development team, since "code is contract" has apparently been abandoned. After this episode, it appears (from the outside) that it will be more financially beneficial for any project using the Ethereum blockchain to aggressively pursue investment from core developers and 15% of the token holders than to ensure the correctness of their code. In my view, this fatally undermines the value proposition of both said hypothetical project and Ethereum itself.
For many people, "perception is reality." I know that media often unfairly frames their reporting, and in this case everything I've seen reported has been the seemingly arbitrary and seemingly self-serving nature of Ethereum development. I would be happy to be shown what I've read is wrong and that the philosophical foundation of Ethereum development is sound, consistent, and impartial.
[0] Certainly for a subset and the short term, arguable for all and the long term.
No, the problem is you've replaced code-is-contract with an insider-run Politburo who decides to put referenda up to a vote with their preferred choice set as default and propagandized to the community from the top-down. I have long thought anarchist digital currency is bound to fail because of the need for a political superstructure able to make some decisions. The problem is now you've thrown out 3000 years of political thought and replaced it with ... whatever the hell the process behind these decisions is now.
What you would actually need to do this right is put real thought and effort into how to have an effective, impartial and ethical governing body managing a digital currency. Giving the primary stakeholders carte blanche to make these decisions is basically recreating a virtual version of "company scrip".
I think you might be misunderstanding authority. Authority doesn't come from lording it over people, or making the best decisions. Authority comes from submission; as long as someone submits to you you have authority over them, likewise anything you submit to has authority over you. The submissive person in the relationship has all the power; they are the one who gets to say "stop".
In this case the various arguments were put forward by various people; this included rants, well researched documents, but most importantly code. In the end most people submitted to the code that was put out there by the main group. But still this submission is a choice.
The main group survives by this submission, but it isn't their choice; this is government by consent. You may not consent to it, but plenty others have.
So if you don't like it I suggest you follow Alan Kay's advice; "The best way to predict the future is to invent it." If you want to influence the situation go write better code; of course you need good ideas for that code, but you still need to ship code! Otherwise the cost of submission is too high for most people and they won't follow you.
Those are direct use of force, not authority or power.
> 51% voting majority
Can still be undermined by civil disobedience, if we're talking about society. Only a small minority in society (the police) use force to get you to submit. The rest submits to the authority of the law. A very small group can undermine the majority through civil disobedience, since they can outnumber the police very quickly.
People often also submit to simple suggestions and someone just taking charge - because in many (most?) social situations that's the effective and beneficial thing to do instead of requiring preexisting power.
Power can be 'taken' and enforced, but very commonly power is simply given/gifted when a community, small or large, self-organizes.
I don't think I quite agree with this, but I agree with something similar I suppose : Power comes from submission. (sorta)
I believe that one can be under an authority which one does not choose to submit to. (relating more to how people should act than how they do act, compared to power)
But, perhaps this is just using words differently without necessarily much disagreement about the actual things.
By your comment I am reminded of a dialogue "How to quit smoking" on self-control, which argues that self-control is more due to obedience than it is to "willpower". This dialogue seems to make sense to me. (http://existentialcomics.com/comic/13)
Regarding your last paragraph: I don't know that I know how that last bit is applicable. In order to not have the fork happen, the difference would be people not running the fork code, or alternatively running some slightly different code that handles the fact that some people are running the fork but is otherwise basically unchanged. This code already exists. As such, I'm not sure what you are really saying by this paragraph, other than, basically "suck it up"?
"Respect my authoritah" vs. "When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them"
Agreed that this is a good thing. Strict dogma is bad and unsustainable.
The core team has backed off from "the code is the construct" philosophy, both implicitly by executing this fork, and explicitly in other publications.
It's a black mark on the trust record for Ethereum, but hard lessons learned are the best ways to grow.
Folks that look at this as a black and white "Ethereum can no longer be trusted" are ironically applying strict dogma in the other direction.
I am not making any calls about the value of Ethereum. Just that evolving philosophy and software systems is a very good and necessary thing.
This was a political and cultural question: is the contract the code?
The hard-fork won by arguing that "no, the contract is the code plus whatever a quite small number of greasy nerds decide it will be."
If the greasy nerds had instead decided to accept the loss, it would've established a cultural norm so strong that nobody would likely dare to try a fork again. It would have baked it into the community in a nearly indelible manner. "nope, they lost tens of millions and they ate it because the contract is the code, so we won't help you either."
Instead, what the nerds did was say "hey, you know the one interesting part of Ethereum? yeah, forget it... because we decided that we value our short-term wealth over the creation of that system."
And that's fine. It's fine that they decided they don't give a shit about contracts as code. It's fine that they took their ball and went home. But Ethereum is now dead. Not today mind you, but in the long run.
Only a complete and total lunatic will ever trust Ethereum again, because there will be more forks in the future. The precedent is set. They won't all remain "clear cut".
So the interesting question is: who's next? It's not ethereum anymore. But it's still an interesting problem space. And maybe there's a team that is actually interested in it.
Correct me if I'm wrong, but isn't a fork _always_ possible in a decentralized blockchain? And if so, wasn't the "the contract is whatever 50%+1 of the network decides it is" always part of the contract?
Basically, anyone can introduce the fork with any arbitrary changes (including reverting any transactions, or, for that matter, creating more money out of thin air) at any point. But the fork is only viable if the majority of the network decides that they want it. So the governance model was always "majority decides"; it was just made explicit here.
Furthermore, it's impossible to address that problem by any kind of governance, because - this not being a government - submitting to the authority of the governing body is voluntary, and the way you avoid doing so is... by forking. So a fork is always an option, simply by virtue of decentralized implementation.
This argument seems fallacious and off-the-point in this context.
Isn't the goal of a contract to precisely bypass the 51% control thing (a distributed consensus rule, needed for mining), by defining its own explicit rules?
> Democracy; it sucks, but it sucks less than everything else
More profoundly, isn't the essence of such systems to go beyond democracy, and allow for new governance paradigms?
From their point of view however, it was perhaps most ethical to try their best to save money of all other people who trusted in their system that failed.
Yep - I don't see the draw for new investors now. We know they will rollback contracts that are financially damaging enough, except with ETH there is no legal recourse in the case of disputed transactions. From the outside looking in, it just seems like a generally worse traditional currency.
It requires consensus in the chain to make such a fork. While you can argue against raw direct democracy of hash power like that, anyone who believes the state does not represent the will of the people should be strongly interested in something like Eth where the will of the majority is absolute.
Agreed on the consensus; the nice thing about making decisions with a currency is that people can vote with their money. But I can buy other state-backed currencies today, some of which I trust to represent my interests. They have the benefit of an established legal system too, which Ethereum does not.
Stop investing in cryptocurrencies. Ethereum is a platform that gives developers incredible power to facilitate social and economic coordination. It's not about providing a better currency.
The dao exploiter really should have followed through with the plan to pay miners $1,000,000 to mine their transactions toward exchanges. The legal argument was solid enough to also be purchaseable , so no anonimity required
What's funny is that the message in Bitcoin's genesis block is about this. The idea of doing something better than current financial systems gained traction after the US Fed hard forked the dollar to fix the housing bubble crash.
(The degree of manipulation in 2008 to reflate the banking system resembles a hard fork.)
Money is a signaling mechanism. It carries information. If you invalidate mistakes, you keep the economic system from learning.
Except "learning" in Etherium's case would have been to abandon the currency due to its insecurity, probably fork the code, and just start over from block 0 again.
The fact that didn't happen meant most people didn't want it to happen. If people did want a reset to compensate for the insecurity in the DAO it would have happened.
"Except "learning" in Etherium's case would have been to abandon the currency due to its insecurity, probably fork the code, and just start over from block 0 again."
Aren't you confusing Etherium with The Dao ? Yes, the dao needed to be abandoned due to its insecurity, but my understanding is that the Etherium base itself was not at fault.
Sure, the EVM may be fine, but the biggest flaws lie in the design of Solidity. Solidity makes it very easy to introduce reentrancy bugs like the one that led the DAO to be exploited. As long as Solidity remains the de facto smart contract programming language, I don't expect overall security of smart contracts to improve much.
My point is that if 60 million dollars were stolen in Eth without no recourse that would permanently tarnish the name Ether. Nobody would care that the DAO did not represent the whole project, the fact a huge portion of the economy was pushed and then destroyed would ruin the brand entirely.
Bitcoin had to hard fork to revert transactions early on due to a bug in the code (not a bug in code written on the platform, a bug in the platform itself).
One way to justify it might be to consider this a beta period. It is still early days for this new currency and perhaps when the system is more robust, they will be able to walk away.
But the question is whether that day will ever come, or the currency will always need emergency overrides.
Maybe it's not an excuse, but it seems like a reasonable explanation. The system clearly isn't ready to handle $150 million but some folks did it anyway.
Upvoted for the term clustercuddle. A couple of points:
1) It's probably not unusual to have $150 million in value tied up on the success or failure of a beta.
2) Calling this "beta" was a stretch. I'm of the opinion that the first "beta" should almost always still be called an "alpha" until in-the-wild bug fixes. However, it would be difficult to get $150 million invested on alpha software. It may have been beta for etherium, but it was definitely alpha of DAO.
Once you start handling money, you lose the "beta" cop-out. If they had succeeded in redefining what a business is and proving out the success of smart contracts, would they say, "but we're just in beta" or would they be trumpeting it as a success and a revolution?
That would be fine if they advertised it as such. There's no mention of "beta" or "pre-release" or anything like that on any of Ethereum's marketing materials, AFAICT.
Disclaimer: I don't really have much of a stake in ethereum, although I made some money off of it during the craziness last month (I cashed out when early warnings about the DAO hit hn, and bough back in when it was at the bottom, and cashed out again)
> I'm not sure how anyone could have any confidence in this system after that.
I think the situation is the opposite. After the DAO there were broad calls criticising the lack of leadership, criticism about decentralized/consensus decisionmaking, and comparisons with the broader economy and how the Fed can orchestrate a bailout (and why that's better - in the eyes of the critics). In a way, through consensus with this hard fork the Ethereum stakeholders squared the circle - orchestrating a bailout with majority assent (and if anyone didn't like it they were free to leave). I'm not going to pass judgement on whether or not that is a good precedent to set (or whether a turing complete blockchain - or the EVM implementation in particular - is a good idea in the long-term), but if anything the decisiveness of action should give more confidence in the short-term.
So the interesting thing here is the "majority assent" phrase. All the polls I saw included < 15% of Ethereum stakeholders / hashing power. Some included < 5%, but were taking by many (who already had a chosen outcome in mind) as definitive proof of community preference.
Really this shows that a small group of people plus a core team already leaning in one direction are probably enough to fork the network.
that's fine. Those figures just say that many people are ok with whatever. Ultimately: If you don't like it, then you can leave. And if you aren't paying attention, then, well, you obviously don't care enough about that asset.
As the parent poster said, there was a majority consent. Much more than 50% considered that this was okay, they also "joined the fork", so the things that these <15% did were done with majority not objecting.
And also it's quite plausible that if the same number of people, the same people would implement a technically identical hard fork with the same process but with a different "socioeconomic" result and justification, then they wouldn't have gotten the same majority consent that they did in this case.
Once we passed the fork block, we had a vote by 100% of the mining power.
The ether vote had the percentages you mentioned, but all elections are decided by the people who show up. Generally we consider elections fair if everyone has the opportunity to vote; whether they actually do is up to them.
> After the DAO there were broad calls criticising the lack of leadership,
> criticism about decentralized/consensus decisionmaking, and comparisons
> with the broader economy and how the Fed can orchestrate a bailout (and
> why that's better - in the eyes of the critics).
This explanation would be acceptable if the motivating factor behind the hardfork were enabling bail-outs, rather than the loss of $60 million.
(Angry customer calls up used car salesman)
Customer: The car alarm you promised would work doesn't work. I'm afraid someone will steal my car.
Car salesman: I'm awfully sorry about that.
Customer: Also, the engine broke. I can't start the car anymore!
Car salesman: Great! So I assume the missing car alarm isn't a problem anymore then?
Aren't bailout in fiat systems fundamentally different ? I mean central banks create money and then lend them out to cover losses; this is distinct from ETH where stolen coins were returned.
More like the financial fraud police; less like the fed ?
> Disclaimer: I don't really have much of a stake in ethereum, although I made some money off of it during the craziness last month (I cashed out when early warnings about the DAO hit hn, and bough back in when it was at the bottom, and cashed out again)
Ah, the old disclaimerbrag. Other classics:
> Disclaimer: I own Apple stock, in fact I bought thousands of shares in 2002.
> Disclaimer: I'm not a lawyer, but I am a doctor.
> Disclaimer: I'm a member of the Democratic party, in fact I was a guest at Hillary's daughter's wedding.
The Foundation took no official position. Some of the lead developers supported the fork, some opposed it. The decision was made by the miners, by the exchanges (which decided to follow the miners), and indirectly by a public vote of ether holders. Vitalik expressed only a mild preference for the fork, and was careful to say that the opposition had good points and there would be no censorship of anyone. The fork code was implemented in all the major clients, some of which are independent of the Foundation.
From what I've seen, none of the devs or community leaders had especially large DAO holdings, compared to their likely ETH stashes. Their economic incentive is heavily weighted towards keeping Ethereum healthy and supporting the price of ETH.
Not implementing the fork would be an official no-fork position, enforced on everyone running the client. Implementing the fork gives users the ability to choose.
The default was set pro-fork, but that was clearly the most popular option before the software was released. The real decision was made by the miners, and I think it'd be hard to argue that the miners weren't aware of the issue, or didn't have the technical chops to set the option however they liked.
Exactly... and if you reverse the roles, the hypocrisy just becomes more clear, to quote Emin Gün Sirer:
"Had the attacker lost money by mistake, I am sure the devs would have had no difficulty appropriating his funds and saying "this is what happens in the brave new world of programmatic money flows."
The code is still the contract. The code says that the majority of mining determines the state of the blockchain. That hasn't changed.
The logic of "the code is the contract" is that whatever happens is in and of itself legal. You cannot break the law, you can only mold the law to conform to your current reality.
I think that's mixing two things: the code that the miners run, and the code that is the digital contract. I think the idea behind digital contracts is that, once the parties commit to it, it should be set in stone (set in code), un-changeable, even by a majority of miners, irrespective of the fact that the algorithm used for distributed mining is majority based. In other words if a small set of parties do a digital contract (eg. the DAO people), then the whole point of the blockchain is that, once it's in the blockchain, it can't be undone---even if some people don't like it, change their minds, whatever. It assumes the miners just supply the mining power, but don't go in and conspire to remove specific blocks. This situation shows that in the case of Ethereum, a small set of people are able to influence a lot of mining nodes, and hence get a majority, and have no problem going in an changing specific things in the blockchain (by changing the source code of the mining software).
> Looking in from the outside as someone with no involvement with Ethereum
This basically answers your question. A few pointers:
* you cannot do a hard fork alone, if no one follows you it own't work. You need the majority (to become the majority fork)
* hard forking, soft forking, are always possibilities that can happen at any moment (same for bitcoin)
* There was no reason not to fork at this point. Ethereum is at an early stage. Bitcoin had the same thing happened to it during its birth stage.
* If you cannot have confidence in this system because you were planning to "steal", then wait until the system gets bigger so that not enough people get affected by your theft
* If you cannot have confidence in this system because you were planning to truly write smart contracts or use them in a legit way. Then wait until the system gets bigger as well.
Not sure why I nee to expand.Crypto is about immutability and decentralization. If you see no reason for that I see no reason to explain. the hard fork was for getting money back.
> Crypto is about immutability and decentralization
if crypto was about immutability, then we wouldn't have things like homomorphic encryption would we :)?
Decentralization? A hard fork is something that only happens because of decentralization. If your system was centralized you would never have seen a hard fork.
Someone probably has another exploit queued up, so they can immediately create the need for another fork. Ethereum contracts have a giant target on them for security researchers who want to earn money.
If (huge if, I know) people learn from what just happened, there at least won't be another $100 million target to exploit. The NewDAO should see much less investment until it's actually proven. Of course, it may well not happen that way.
The important thing (which no fork can really change) is that the assumed likelihood of contracts having bugs went way, way up as a result of finding one critical bug so quickly in a large contract. You may not be able to steal a massive pot like theDAO again - but this shows that you can make a killing using exploits against smaller players. They either have to hard fork each time an individual gets their savings wiped out, or accept that there is risk of death by 1000 cuts when investing in ETH. Others may see things differently of course.
It's all going to come down to risk/reward. How much work does it take to find a bug in a contract, and how much money do you get out of it? It's possible that any given contract is likely to have bugs, but that it takes so long to find them that it's not worth the effort. That assumes that different contracts have different bugs, which may not actually be the case. And of course it could be the other way around, where bugs are easy and plentiful and the whole thing collapses. It'll be interesting to see how it actually ends up.
I think that many people miss the most important thing here: it is not important if a currency hard-forks or not - what is important is that it can.
I have no confidence that Bitcoin or any other currency doesn't fork in the future, because it is possible at any moment. The fact that the fork has happened or not changes nothing - it always stays as a possibility.
In other words the chance of Ethereum or Bitcoin hard-forking in the future wouldn't change if the hard-fork didn't happen right now.
> I think that many people miss the most important thing here: it is not important if a currency hard-forks or not - what is important is that it can.
Well, it's setting a precedent that will make the case easier in the future. Bitcoin's hard forks have all seemed to be good faith attempts to fix issues in the protocol. I don't think anyway on the Ethereum team is arguing this is anything other than an extremely arbitrary fork. The fact that 51% of stakeholders agreed to set this precedent should scare anyone from owning Ethereum in the future.
I am surprised how so many seem to think this is a bad thing. Ethereum is very nascent, and this was how the community wanted to fix this issue. It was not just about returning DTH, it was about the implications of the allocation of the DTH in the hands of one individual when Ethereum moves to PoS.
Obviously the HF isn't ideal, but not forking was potentially much worse. This settles the issue, and allows people to get back to work.
Hard forks will become less viable as a solution the larger the network gets, and as more interests are involved. However, blockchains are consensus mechanisms. Anyone can propose a hard fork update at any time.
Here is something to consider: as more than 80% of Bitcoin's hash power is in the hands of a few Chinese companies, the CCP could very realistically enforce a Bitcoin hard fork.
In the ability to propose a hard fork, no difference. However, you need to be able to convince the majority of miners to vote for your fork and that's where being a core dev has a lot of influence.
Of course there is. However, as Bitcoin Classic may illustrate, it is possible to leave the core developers working on a defunct chain.
Core developers represent a double-edged sword. They are critical for getting the network adopted, and for adapting the network to new demands, but they can also be a risk due to their influence. By all accounts, the Ethereum core developers have been open and responsive. Not all Ethereum devs wanted this fork. I do think they could be faulted for not strongly advising Slock.it to cap The DAO. That may be one reason why they were amenable to a refund solution.
You definitely should consider the core devs when investing time and money in a blockchain. They have an inertia that influences the system.
Influence is like money. You have an equal right to pursue it, but no right to some quantity of it. Some people have more of it, others less. If you want more, you're gonna have to work for it first.
I have no idea what that page is showing. It's a bunch of figures with no context shoved under three headers.
Is block number the last block number to be processed under the chain? Is it a monotonically increasing number? Is the block hex string meaningful in the context of showing me what's going on (the site seems unable to show me any data related to the non-fork block so who knows.)
What does the difficulty percentage and total difficulty entries mean? How do they relate to each other? The linked reddit post doesn't shed light on it. I am guessing from bits of conversations on that reddit post that "fork" = new client, fork; "non-fork" = new client, no fork; and "legacy" = old client, no fork?
Maybe it's reflecting the difficulty of me figuring out what is going on the page? :)
DTH == DAO Tokens (Money in the DAO)
HF == Hard Fork
PoS == "Proof of Stake" as opposed to PoW Proof of Work. This means that a large part of what goes into mining will be owning ether, and causes a concern about a hostile entity owning a huge pile of stolen Ether.
Ethereum is a post-Bitcoin blockchain. One of the major differences with Bitcoin is that Ethereum is designed to be Turing complete: the blockchain can be used to run any arbitrary code.
The ability to run arbitrary code was built to allow for the creation of smart contracts. The basic idea with a smart contract is that the contract's code (running on the blockchain) enforces all the rules of the contract itself. No need for courts or external parties to handle disputes: the code just does the right thing.
A company called Slock.it created a smart contract called the DAO (distributed autonomous organization). The DAO was a venture capital smart contract. Anyone could submit proposals, owners of the DAO would vote on them, and if successful, fund them, taking some ownership of the proposed venture in hope of a payoff.
The DAO got people excited, and $160 million worth of Ethereum was invested in it. However, the DAO had bugs, and someone exploited one of those bugs to move a large portion of the DAO's Ethereum into another contract that the DAO owners couldn't control. This crashed the ETH exchange rate.
The "hack" split the Ethereum community: some felt that nothing should be done, the DAO contract ran correctly, just not in a way that was anticipated. Others felt that the DAO funds should be recovered and returned, and suggested a soft-fork followed by a hard-fork to make this happen. Both the Ethereum Foundation and Slock.it supported the fork option.
Eventually the soft-fork was released. The soft-fork stayed on the same blockchain (hence the soft) as previous versions, it just blocked transactions related to the "hacked" contract so the former-DAO funds couldn't be moved. However, once again bugs were found, making folks running the soft-fork vulnerable to DOS attacks. I don't know if it ever reached consensus.
A short while later, the hard-fork version of Ethereum was released. As the name implies, this version splits the blockchain into two, one continuing the existing blockchain and another that moves the DAOs ETH into a new contract that's going to be distributed to the former DAO owners. The forked blockchain also put ~$5 million in the hands of a curator to distribute as they see fit.
The hard-fork went live today, and it looks like the majority of miners have switched to it, which means the hard-fork has become the new Ethereum blockchain.
What was it "meant to be"? I'm completely ignorant of the politics but my assumption was that every cryptocoin post-bitcoin was a way for the creators/developrs/owners to make money.
"Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference."
The point of Ethereum to me is that I can write a service, fund it, and then have it run in perpetuity without any intervention from me.
How is that vanished? There is some small probability that the Ethereum community might from consensus around interfering with my service. But I'm no more worried about that than I am about Heroku or anyone else deciding I'm not allowed on the platform. If anything this episode has shown just how high that bar is on Ethereum as compared to centralized offerings.
People act like just because there is one tiny corner case where the full letter of the promise is unfulfilled that means the entire offering is void. But what offering doesn't have at least a few caveats?
If the argument is that code is law, the fork was implemented in code, so it's law.
If their argument is that the white hat hacks shouldn't have happened then they lay themselves open to the argument that their initial hack shouldn't have happened.
And then there's how draconian unauthorised computer access laws tend to be...
There's an interesting parallel between the arguments being made here and the argument that Schnier made against government controlled backdoors.
Even if we suppose that only reasonable warrants would be granted for the use of such a backdoor, the backdoor is software, and does exactly what it's programmed to do - as anyone whose written software knows, this is sometimes not the same as what it's supposed to do. This means that bad guys can readily exploit any backdoor. A human would reject such accesses as obviously unwarranted, but a computer doing exactly what it's programmed to do won't.
Similarly, in Ethereum, a contract does exactly what it's programmed to do, not what it's meant to do. When malicious actors exploit this for personal gain, our reaction is that we should to "fix" the currency to be in line with our human judgement about what it ought or ought not be used for.
In both cases, you can't have your cake and eat it.
With backdoors, you can either have a simple, automatic means of investigating suspects, or you can have human judgement as to whether or not such searches have value that exceeds the value of an individual's right to privacy.
In Ethereum, you can either have autonomous and decentralized contracts, or you can have contracts that are subject to human judgement and values.
I'm still very much in "Micheal Jackson eats popcorn" mode with respect to Ethereum, but at this point it seems like it's trying to accomplish two things that are fundamentally incompatible.
All this forking made me wonder about the legal aspects of cryptocurrencies.
Suppose we have guys D and C, and D owes C some amount in X-coin - complete with a written contract.
Now, if X-coin is forked, and one of the forks has a blockchain recording a transaction from D to C in that amount, but the other one does not, which one is considered authoritative? If C sues D, because they are on the other fork, and that fork doesn't have the debt settled, how would it go in court?
This gets especially interesting if the forks are roughly equal in size...
I guess it would all depend on the interpretation of the meaning of the term "X-coin" in the contract, but that's just a different way of asking the same question.
134 comments
[ 3.2 ms ] story [ 103 ms ] threadHere, if all your neighbors get together and want to steal your money, they can steal your money, and you have no recourse.
And this was always possible even before the hard fork. The difference now is that there is an actual precedent for it and apparently at least 51% of Ethereum stakeholders are okay with doing that sort of thing. Anyone actually holding a significant amount of Ethereum should seriously question the original claims that the Ethereum team made on its value.
Of course that cartel has a better track record than this new one, so I also see it as a failure of the currency.
With ETH, it's a handful of inexperienced individuals with possible case of conflict of interest.
Yes, this proves ethereum is a failure- Everyone reading this thread might as well just send their now-worthless ether to my wallet at 0x6B4a61a3Fdc2596427A25F79D7b3b78e164da308.
Apparently when considering "Who would commit to building anything in an environment like that?" in practice, then an environment where the code is the final word on a contract is even less desirable than a suboptimal environment where, as you say, "a cartel of people the power to revoke transactions on a whim".
The proof of work threshold for a block (aka the difficulty) was the same when the fork started. The function that adjusts the difficulty (a function of time-between-blocks) is the same across both forks. It would take considerable time for the non-fork chain's difficulty to adjust to where it can make blocks at pace with the fork chain again. And even if it did, the fork would represent less work due to a lower difficulty.
Post-bailout Ethereum is not the same currency as pre-bailout, and given that a non-trivial minority (~5%) of miners are mining pre-bailout Ethereum - and the difficulty of mining quickly adjusts - pre-bailout Ethereum will actually be a viable currency from a technical perspective, in the sense that it can be sent and received.
From a social perspective, it's hard to be sure quite yet; we'll see in the coming days and weeks whether or not people decide that pre-bailout Ethereum has value or not (and equally, post-bailout Ethereum).
(The miners may or may not be more informed, but note that Ethereum is only valuable if users are willing to exchange things of value for Ethereum, i.e. a hard fork requires changes in wallet software.)
- ETH holders voted on http://carbonvote.com/ with 87% pro-fork. 5.5% of the total ETH supply participated in the vote.
- ETH miners clearly voted pro-fork on the major pools, e.g. https://dwarfpool.com/eth/voting. In nearly all cases > 80% of the hash power was pro-fork.
- ETH markets reacted positively when there were good pro-fork news, and negatively when there were bad news (such as the DDoS vulnerability in the proposed soft fork). Therefore the market sees more value in the post-HF Ethereum.
Yes, there is a vocal group opposing the fork, but it mostly consists of persons wishing to see Ethereum fail.
In the voting on the pools, 80% of people didn't even vote.
Therefore it is simply the fact that the fork was the default choice (and is the default in all the wallets), that is the deciding factor of this 'vote'
By the way, "> 80% of the hash power was pro-fork." is demonstrably false. only 15% of the hashing power was pro fork, 85% of miners didnt vote at all.
Passive users by definition agree to follow the active users' decision.
Sociological studies tend to actively seek limited size representative samples for cost reasons, and because the mathematics demonstrating the power of a limited size representative sample for making generalization about the universe from which the sample is drawn is well-known.
Comparing the size (relative to the represented universe) of a study sample actively selected to be representative with the relative size of a participant group for which there is little reason to expect it to be representative is not particularly meaningful.
Furthermore, it's been well known for the past 2 weeks that the fork was likely to happen. That means the fork was the status quo. It's what was going to happen assuming nothing derailed it.
I'm an ETH holder and I didn't vote. I was undecided and was happy enough with the decision to fork.
Maybe some other group will fork the Ethereum code into a new cryptocurrency that can't have the blockchain forked as easily.
You think it is a bad thing that this has happened; I think it is a good thing. Now everyone is aware that the 51% can take control of the chain; you can't pretend any more that the code is the final arbiter, because it isn't. Black and white is a myth; it's a human construct that is made from mathematics and many shades of grey.
Democracy; it sucks, but it sucks less than everything else.
People behind ETH had a stake in TheDAO and they chose to protect their _dollars_ rather than the platform.
They were obviously denied. It's my understanding they know what account holds most of there coins too.
There have been numerous other small hacks on eth users as well.
Unfortunately, this hardfork did nothing for those people.
My understanding was that the DAO (and organizations like it) was the whole point of people signing up to use Ethereum, and the hard fork basically says "The DAO never existed, you're all getting your ether back" with an understanding of "now that you know all of the attendant risks of hacking, start your own autonomous organizations with a bit more prudence." It is not very realistic to expect further forks as every fork produces a new cryptocurrency; furthermore it is not very realistic to expect a mere 51% majority to sway the blockchain (as I understand it the change is code-level). If each decision only gets 80% approval then after 3 such decisions you have your community split across 4 cryptocurrencies: {20%, 16%, 13%, 10%, 41%} and you've lost over half of your users; furthermore if the power of a currency is proportional to the square of the users (as it likely to first-order has to do with how many ways they can interact with each other, which goes with the number of handshakes they can make), you've cut down your value proposition to only ~16% of what it was. It sounds like this might have gotten 90-99% adoption by the community in terms of hashpower, but some of this is doubtless amplified by miners who will go wherever the wind takes them.
It reminds me of my environmental science teacher in high school. Between counting the bugs we caught at local streams, one day he taught my class about the Tragedy of the Commons. He said, "tomorrow, if you want to play a game to illustrate this, bring a quarter and we'll play it for real cash." Most of us brought quarters. "Okay, if you still want to play this game after I explain the rules, put your quarter in this jar and I'll give you a card. You're going to write on that card your name, and then either 'use' or 'leave': for whether you're going to use the common resource or leave it alone for a while. You have to keep your decision secret, if anyone else sees what you wrote then you're getting your quarter back and it's like you were not in the game at all. You can SAY anything you want to people, but nobody's allowed to see what you're DOING. After 5-10 minutes I'll call time, and you'll give the folded cards back to me. If everyone says Leave then I'll give everyone who participated two quarters. If one person says Use and everyone else says Leave then I'll give them the jar of quarters: and, no being mean to them, they won the jackpot fair and square. Or if two or more people say Use, then I win all of the quarters. Who still wants to play?"
A lot of us put our quarters in, and I being a petulant teenager wrote Use (with the intention to give everyone back their quarters afterwards! I wasn't greedy, just a smartass) ... but while almost everyone else wrote Leave, this did not include one kid who didn't understand English so well and meant to write Leave but instead wrote Use (or else that was just what he told everyone afterwards). The teacher won all our quarters, but he returned them like a good sport and offered to let us play again, this time FOR REALS. This time I voted Leave, but multiple people voted Use just to somehow "punish" me, which was even more what the teacher was trying to teach: "if you can't guarantee that everyone else is going to leave it alone, hey, you might as well try to get in on this sweet sweet resource while it still exists, right? So that's why the tragedy of the commons happens and we're all pretty much doomed. I'm gonna win your quarters every time." He gave back the quarters anyway, of course, after making a big show of "No, the second time was FOR REALS, you all knew it, didn't you? Would you have paid ME back?!"
It's probably just the feeling of a bunch of kids being like "tha...
Disclaimer: I recently joined the Ethereum-go team. I have 30 ether worth of DAO tokens (and about 500 ether not invested in anything).
I'd like to learn what principles are now now guiding the development team, since "code is contract" has apparently been abandoned. After this episode, it appears (from the outside) that it will be more financially beneficial for any project using the Ethereum blockchain to aggressively pursue investment from core developers and 15% of the token holders than to ensure the correctness of their code. In my view, this fatally undermines the value proposition of both said hypothetical project and Ethereum itself.
For many people, "perception is reality." I know that media often unfairly frames their reporting, and in this case everything I've seen reported has been the seemingly arbitrary and seemingly self-serving nature of Ethereum development. I would be happy to be shown what I've read is wrong and that the philosophical foundation of Ethereum development is sound, consistent, and impartial.
[0] Certainly for a subset and the short term, arguable for all and the long term.
What you would actually need to do this right is put real thought and effort into how to have an effective, impartial and ethical governing body managing a digital currency. Giving the primary stakeholders carte blanche to make these decisions is basically recreating a virtual version of "company scrip".
In this case the various arguments were put forward by various people; this included rants, well researched documents, but most importantly code. In the end most people submitted to the code that was put out there by the main group. But still this submission is a choice.
The main group survives by this submission, but it isn't their choice; this is government by consent. You may not consent to it, but plenty others have.
So if you don't like it I suggest you follow Alan Kay's advice; "The best way to predict the future is to invent it." If you want to influence the situation go write better code; of course you need good ideas for that code, but you still need to ship code! Otherwise the cost of submission is too high for most people and they won't follow you.
Maybe when you're into BDSM. You're right that authority comes from submission, but people submit to power. A gun, a hostage, a 51% voting majority.
Those are direct use of force, not authority or power.
> 51% voting majority
Can still be undermined by civil disobedience, if we're talking about society. Only a small minority in society (the police) use force to get you to submit. The rest submits to the authority of the law. A very small group can undermine the majority through civil disobedience, since they can outnumber the police very quickly.
Power can be 'taken' and enforced, but very commonly power is simply given/gifted when a community, small or large, self-organizes.
I don't think I quite agree with this, but I agree with something similar I suppose : Power comes from submission. (sorta)
I believe that one can be under an authority which one does not choose to submit to. (relating more to how people should act than how they do act, compared to power)
But, perhaps this is just using words differently without necessarily much disagreement about the actual things.
By your comment I am reminded of a dialogue "How to quit smoking" on self-control, which argues that self-control is more due to obedience than it is to "willpower". This dialogue seems to make sense to me. (http://existentialcomics.com/comic/13)
Regarding your last paragraph: I don't know that I know how that last bit is applicable. In order to not have the fork happen, the difference would be people not running the fork code, or alternatively running some slightly different code that handles the fact that some people are running the fork but is otherwise basically unchanged. This code already exists. As such, I'm not sure what you are really saying by this paragraph, other than, basically "suck it up"?
The core team has backed off from "the code is the construct" philosophy, both implicitly by executing this fork, and explicitly in other publications.
It's a black mark on the trust record for Ethereum, but hard lessons learned are the best ways to grow.
Folks that look at this as a black and white "Ethereum can no longer be trusted" are ironically applying strict dogma in the other direction.
I am not making any calls about the value of Ethereum. Just that evolving philosophy and software systems is a very good and necessary thing.
The hard-fork won by arguing that "no, the contract is the code plus whatever a quite small number of greasy nerds decide it will be."
If the greasy nerds had instead decided to accept the loss, it would've established a cultural norm so strong that nobody would likely dare to try a fork again. It would have baked it into the community in a nearly indelible manner. "nope, they lost tens of millions and they ate it because the contract is the code, so we won't help you either."
Instead, what the nerds did was say "hey, you know the one interesting part of Ethereum? yeah, forget it... because we decided that we value our short-term wealth over the creation of that system."
And that's fine. It's fine that they decided they don't give a shit about contracts as code. It's fine that they took their ball and went home. But Ethereum is now dead. Not today mind you, but in the long run.
Only a complete and total lunatic will ever trust Ethereum again, because there will be more forks in the future. The precedent is set. They won't all remain "clear cut".
So the interesting question is: who's next? It's not ethereum anymore. But it's still an interesting problem space. And maybe there's a team that is actually interested in it.
Basically, anyone can introduce the fork with any arbitrary changes (including reverting any transactions, or, for that matter, creating more money out of thin air) at any point. But the fork is only viable if the majority of the network decides that they want it. So the governance model was always "majority decides"; it was just made explicit here.
Furthermore, it's impossible to address that problem by any kind of governance, because - this not being a government - submitting to the authority of the governing body is voluntary, and the way you avoid doing so is... by forking. So a fork is always an option, simply by virtue of decentralized implementation.
This argument seems fallacious and off-the-point in this context.
Isn't the goal of a contract to precisely bypass the 51% control thing (a distributed consensus rule, needed for mining), by defining its own explicit rules?
> Democracy; it sucks, but it sucks less than everything else
More profoundly, isn't the essence of such systems to go beyond democracy, and allow for new governance paradigms?
From their point of view however, it was perhaps most ethical to try their best to save money of all other people who trusted in their system that failed.
(The degree of manipulation in 2008 to reflate the banking system resembles a hard fork.)
Money is a signaling mechanism. It carries information. If you invalidate mistakes, you keep the economic system from learning.
The fact that didn't happen meant most people didn't want it to happen. If people did want a reset to compensate for the insecurity in the DAO it would have happened.
Aren't you confusing Etherium with The Dao ? Yes, the dao needed to be abandoned due to its insecurity, but my understanding is that the Etherium base itself was not at fault.
But the question is whether that day will ever come, or the currency will always need emergency overrides.
1) It's probably not unusual to have $150 million in value tied up on the success or failure of a beta.
2) Calling this "beta" was a stretch. I'm of the opinion that the first "beta" should almost always still be called an "alpha" until in-the-wild bug fixes. However, it would be difficult to get $150 million invested on alpha software. It may have been beta for etherium, but it was definitely alpha of DAO.
> I'm not sure how anyone could have any confidence in this system after that.
I think the situation is the opposite. After the DAO there were broad calls criticising the lack of leadership, criticism about decentralized/consensus decisionmaking, and comparisons with the broader economy and how the Fed can orchestrate a bailout (and why that's better - in the eyes of the critics). In a way, through consensus with this hard fork the Ethereum stakeholders squared the circle - orchestrating a bailout with majority assent (and if anyone didn't like it they were free to leave). I'm not going to pass judgement on whether or not that is a good precedent to set (or whether a turing complete blockchain - or the EVM implementation in particular - is a good idea in the long-term), but if anything the decisiveness of action should give more confidence in the short-term.
Really this shows that a small group of people plus a core team already leaning in one direction are probably enough to fork the network.
And also it's quite plausible that if the same number of people, the same people would implement a technically identical hard fork with the same process but with a different "socioeconomic" result and justification, then they wouldn't have gotten the same majority consent that they did in this case.
The ether vote had the percentages you mentioned, but all elections are decided by the people who show up. Generally we consider elections fair if everyone has the opportunity to vote; whether they actually do is up to them.
(Angry customer calls up used car salesman)
Customer: The car alarm you promised would work doesn't work. I'm afraid someone will steal my car.
Car salesman: I'm awfully sorry about that.
Customer: Also, the engine broke. I can't start the car anymore!
Car salesman: Great! So I assume the missing car alarm isn't a problem anymore then?
More like the financial fraud police; less like the fed ?
Ah, the old disclaimerbrag. Other classics:
> Disclaimer: I own Apple stock, in fact I bought thousands of shares in 2002.
> Disclaimer: I'm not a lawyer, but I am a doctor.
> Disclaimer: I'm a member of the Democratic party, in fact I was a guest at Hillary's daughter's wedding.
From what I've seen, none of the devs or community leaders had especially large DAO holdings, compared to their likely ETH stashes. Their economic incentive is heavily weighted towards keeping Ethereum healthy and supporting the price of ETH.
The default was set pro-fork, but that was clearly the most popular option before the software was released. The real decision was made by the miners, and I think it'd be hard to argue that the miners weren't aware of the issue, or didn't have the technical chops to set the option however they liked.
"Had the attacker lost money by mistake, I am sure the devs would have had no difficulty appropriating his funds and saying "this is what happens in the brave new world of programmatic money flows."
http://hackingdistributed.com/2016/06/17/thoughts-on-the-dao...
The logic of "the code is the contract" is that whatever happens is in and of itself legal. You cannot break the law, you can only mold the law to conform to your current reality.
I think that's mixing two things: the code that the miners run, and the code that is the digital contract. I think the idea behind digital contracts is that, once the parties commit to it, it should be set in stone (set in code), un-changeable, even by a majority of miners, irrespective of the fact that the algorithm used for distributed mining is majority based. In other words if a small set of parties do a digital contract (eg. the DAO people), then the whole point of the blockchain is that, once it's in the blockchain, it can't be undone---even if some people don't like it, change their minds, whatever. It assumes the miners just supply the mining power, but don't go in and conspire to remove specific blocks. This situation shows that in the case of Ethereum, a small set of people are able to influence a lot of mining nodes, and hence get a majority, and have no problem going in an changing specific things in the blockchain (by changing the source code of the mining software).
This basically answers your question. A few pointers:
* you cannot do a hard fork alone, if no one follows you it own't work. You need the majority (to become the majority fork)
* hard forking, soft forking, are always possibilities that can happen at any moment (same for bitcoin)
* There was no reason not to fork at this point. Ethereum is at an early stage. Bitcoin had the same thing happened to it during its birth stage.
* If you cannot have confidence in this system because you were planning to "steal", then wait until the system gets bigger so that not enough people get affected by your theft
* If you cannot have confidence in this system because you were planning to truly write smart contracts or use them in a legit way. Then wait until the system gets bigger as well.
That statement came out of nowhere :D care to expand?
if crypto was about immutability, then we wouldn't have things like homomorphic encryption would we :)?
Decentralization? A hard fork is something that only happens because of decentralization. If your system was centralized you would never have seen a hard fork.
This is true, but the fork suggests the only way to do this will be by shorting the currency rather than trading the ETH earned from exploits.
That would have made it so much harder to justify a hard fork...
I have no confidence that Bitcoin or any other currency doesn't fork in the future, because it is possible at any moment. The fact that the fork has happened or not changes nothing - it always stays as a possibility.
In other words the chance of Ethereum or Bitcoin hard-forking in the future wouldn't change if the hard-fork didn't happen right now.
Well, it's setting a precedent that will make the case easier in the future. Bitcoin's hard forks have all seemed to be good faith attempts to fix issues in the protocol. I don't think anyway on the Ethereum team is arguing this is anything other than an extremely arbitrary fork. The fact that 51% of stakeholders agreed to set this precedent should scare anyone from owning Ethereum in the future.
Obviously the HF isn't ideal, but not forking was potentially much worse. This settles the issue, and allows people to get back to work.
Hard forks will become less viable as a solution the larger the network gets, and as more interests are involved. However, blockchains are consensus mechanisms. Anyone can propose a hard fork update at any time.
Here is something to consider: as more than 80% of Bitcoin's hash power is in the hands of a few Chinese companies, the CCP could very realistically enforce a Bitcoin hard fork.
So there is no difference between me and the core developers?
Core developers represent a double-edged sword. They are critical for getting the network adopted, and for adapting the network to new demands, but they can also be a risk due to their influence. By all accounts, the Ethereum core developers have been open and responsive. Not all Ethereum devs wanted this fork. I do think they could be faulted for not strongly advising Slock.it to cap The DAO. That may be one reason why they were amenable to a refund solution.
You definitely should consider the core devs when investing time and money in a blockchain. They have an inertia that influences the system.
http://fork.ethstats.net/
you can see that the miners have indeed enforced the hard fork chain.
Is block number the last block number to be processed under the chain? Is it a monotonically increasing number? Is the block hex string meaningful in the context of showing me what's going on (the site seems unable to show me any data related to the non-fork block so who knows.)
What does the difficulty percentage and total difficulty entries mean? How do they relate to each other? The linked reddit post doesn't shed light on it. I am guessing from bits of conversations on that reddit post that "fork" = new client, fork; "non-fork" = new client, no fork; and "legacy" = old client, no fork?
Maybe it's reflecting the difficulty of me figuring out what is going on the page? :)
It's too early to measure success. OK, there was a fork. Technical success if you like.
But, at the moment most exchanges are closed to Ethereum trading on either the old or new software.
When they open we will then have a better idea how this will play out.
The ability to run arbitrary code was built to allow for the creation of smart contracts. The basic idea with a smart contract is that the contract's code (running on the blockchain) enforces all the rules of the contract itself. No need for courts or external parties to handle disputes: the code just does the right thing.
A company called Slock.it created a smart contract called the DAO (distributed autonomous organization). The DAO was a venture capital smart contract. Anyone could submit proposals, owners of the DAO would vote on them, and if successful, fund them, taking some ownership of the proposed venture in hope of a payoff.
The DAO got people excited, and $160 million worth of Ethereum was invested in it. However, the DAO had bugs, and someone exploited one of those bugs to move a large portion of the DAO's Ethereum into another contract that the DAO owners couldn't control. This crashed the ETH exchange rate.
The "hack" split the Ethereum community: some felt that nothing should be done, the DAO contract ran correctly, just not in a way that was anticipated. Others felt that the DAO funds should be recovered and returned, and suggested a soft-fork followed by a hard-fork to make this happen. Both the Ethereum Foundation and Slock.it supported the fork option.
Eventually the soft-fork was released. The soft-fork stayed on the same blockchain (hence the soft) as previous versions, it just blocked transactions related to the "hacked" contract so the former-DAO funds couldn't be moved. However, once again bugs were found, making folks running the soft-fork vulnerable to DOS attacks. I don't know if it ever reached consensus.
A short while later, the hard-fork version of Ethereum was released. As the name implies, this version splits the blockchain into two, one continuing the existing blockchain and another that moves the DAOs ETH into a new contract that's going to be distributed to the former DAO owners. The forked blockchain also put ~$5 million in the hands of a curator to distribute as they see fit.
The hard-fork went live today, and it looks like the majority of miners have switched to it, which means the hard-fork has become the new Ethereum blockchain.
Contracts which contain an implicit item 'we can renegotiate this any time a majority of miners wish' are contrary to what Ethereum was meant to be.
Did the creators make money? Success.
"Ethereum is a decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference."
Emphasis mine.
How is that vanished? There is some small probability that the Ethereum community might from consensus around interfering with my service. But I'm no more worried about that than I am about Heroku or anyone else deciding I'm not allowed on the platform. If anything this episode has shown just how high that bar is on Ethereum as compared to centralized offerings.
People act like just because there is one tiny corner case where the full letter of the promise is unfulfilled that means the entire offering is void. But what offering doesn't have at least a few caveats?
If the code IS the contract, then by the contract they are owed this money, no?
Or does this mean the code isn't the contract?
They paid to participate in a code-based Nomic and were denied their prize because they won too quickly.
I am surprised the attacker didn't try to bribe the miners, though.
If the argument is that code is law, the fork was implemented in code, so it's law.
If their argument is that the white hat hacks shouldn't have happened then they lay themselves open to the argument that their initial hack shouldn't have happened.
And then there's how draconian unauthorised computer access laws tend to be...
Even if we suppose that only reasonable warrants would be granted for the use of such a backdoor, the backdoor is software, and does exactly what it's programmed to do - as anyone whose written software knows, this is sometimes not the same as what it's supposed to do. This means that bad guys can readily exploit any backdoor. A human would reject such accesses as obviously unwarranted, but a computer doing exactly what it's programmed to do won't.
Similarly, in Ethereum, a contract does exactly what it's programmed to do, not what it's meant to do. When malicious actors exploit this for personal gain, our reaction is that we should to "fix" the currency to be in line with our human judgement about what it ought or ought not be used for.
In both cases, you can't have your cake and eat it.
With backdoors, you can either have a simple, automatic means of investigating suspects, or you can have human judgement as to whether or not such searches have value that exceeds the value of an individual's right to privacy.
In Ethereum, you can either have autonomous and decentralized contracts, or you can have contracts that are subject to human judgement and values.
I'm still very much in "Micheal Jackson eats popcorn" mode with respect to Ethereum, but at this point it seems like it's trying to accomplish two things that are fundamentally incompatible.
Suppose we have guys D and C, and D owes C some amount in X-coin - complete with a written contract.
Now, if X-coin is forked, and one of the forks has a blockchain recording a transaction from D to C in that amount, but the other one does not, which one is considered authoritative? If C sues D, because they are on the other fork, and that fork doesn't have the debt settled, how would it go in court?
This gets especially interesting if the forks are roughly equal in size...
I guess it would all depend on the interpretation of the meaning of the term "X-coin" in the contract, but that's just a different way of asking the same question.