Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Hard Forks (avc.com) similar stories update story
156 points by prostoalex | karma 125988 | avg karma 10.16 2016-07-23 20:11:59 | hide | past | favorite | 103 comments



view as:

I have no idea how Etherium or the blockchain works. I'm sure that it's all incredibly important and technically impressive, but these all sound like fake words that your parents would use to describe what happens when they try to update iTunes.

I don't understand why you were downvoted. I think you bring up very valid points about the state of education that is required for wide spread adoption.

Hahaha, thank you. I was also trying to be curt and funny, but I guess the HN community takes their Ethereum seriously :D

> It's a very interesting time in the public blockchain sector right now. Stuff is happening. Lot's of stuff.

I'd like to learn some of these stuffs. Where should I start? What are some stuffs happening?


Did Ethereum ever come out and try and create a process to dictate what will happen when something like this happens again?

This case was a perfect storm of:

- very bad publicity with most people's first introduction to Ethereum, the DAO, being hacked

- Ethereum core team members and miners being affected by the hack

- a large hack, monetarily speaking, in relation to the ecosystem.

- the ecosystem still in its infancy so the system is much open to even considering a hard fork option at all

I mean you can't just outlaw programming mistakes. This is going to happen again

What happens next time when the hack is smaller, say 1 million, and doesn't affect anyone on the core Ethereum team or any miners, ie it just affects regular Ethereum investors.

Does everyone vote again with the expected outcome of the miners not worrying about hte little people?

Does it not even get a vote?

Or have they set the precedent that they always roll back hacks now?

I think Ethereum has some good leadership, but I think this is something that they really need to get a policy on now.

What can be done here?


Well, these are difficult questions, but I kind of like Vlad Zanfir's recent comments on this issue which is that it's best for everyone if the "out of the ordinary" nature of hard forks is maintained as much as possible: If there is a pre-established policy on how to handle these situations it could backfire in many ways- It may be better to just require the merit of any hard fork to be considered on a case-by-case basis.

Nothing.

Ethereum/DAO/blockchain's main differentiator is its purported immutability. Tired of traditional actors setting the rules of your financial system? Let some "smarter" more "neutral" hackers set those rules for you in stone cold code.

Discard the DAO and start anew from first principles, but make it clear and transparent that the code is written by humans that can also change that code, and that it's not a magic immutable "distributed autonomous organization" but a collection of dudes on their computers who tinker with the rules of one big excel spreadsheet.

Different dudes than the ones who currently control the markets. Tell me why I should trust these new dudes to have enough gravitas to run a more efficient market.


> who tinker with the rules of one big excel spreadsheet

Thank you for that comparison.

The whole issue is much more palpable if you forget about the magic blockchain for a second and see Ethereum as what it is: A giant complex calculation that nobody comprehends to it's full extent.

Just like most computer-programs out there. And just like the financial market.

We engineers have learned that we can't rely on complex apparatuses always behaving according to our intentions.

So the way to go is to ensure they fail gracefully.

When it comes to law, the real world did this, not by trying to find the perfect, unambiguous, immutable language for contracts and law. (Ever heard about the 'Tower of Babel'? The idea of a common language is as old as humanity).

They did it by implementing safe-guards, namely the juridicial system.

When it comes to the financial market, we too have safeguards, but not that many. There is no judge who is able to rule that an individual was not supposed to make billions of dollars by destroying the environment and evading taxes.

A humanitarian society doesn't work out by just following a set of more and more complex rules. You always need humans to interpret and adapt them.


I think the DAO experience was just one step towards adulthood. We are being very parsimonious thinking that a software application can't be changed as if it was governed by god. In this case it was pure negligence from the Slock and Ethereum people, but this is what happens when babies learn to walk. Probably the next time there will not be a bailout. If you don't like these rules you can move to another cryptocurrency and Ethereum pricing includes this kind of potential events.

"Fool me once shame on you. Fool me twice shame on me"


Vitalik himself said that it is possible this may be needed and done again in the future, so it could very well be "fool me twice shame on you, fool n-ice shame on you".

Ethereum Foundation hasn't even set some foundational beliefs like a list or principles of what it is to be expected, fungability etc. It's too fluid, and it maybe it's not their fault but rather it's due to the Turing-complete nature of EVM/Solidity that they have to deal with.


There was no hack. The contact executed as designed.

The "hack" was the scramble to figure out how to scuttle a valid transaction.


It certainly did not execute as intended.

It certainly did. The code was the terms of the contract.

From Slock.it:

""" The terms of The DAO Creation are set forth in the smart contract code existing on the Ethereum blockchain at 0xbb9bc244d798123fde783fcc1c72d3bb8c189413. Nothing in this explanation of terms or in any other document or communication may modify or add any additional obligations or guarantees beyond those set forth in The DAO’s code. Any and all explanatory terms or descriptions are merely offered for educational purposes and do not supercede or modify the express terms of The DAO’s code set forth on the blockchain. """


I think the "hacker" is going to have a massive fraud lawsuit on their hands against the DAO. Combine that with bad faith arguments for punitive damages and they can probably wipe out the entire organization.

I think a real world judge would not need to take into account how smart contracts work at all (a contract without a hand-written signature???) and blame both sides:

@Organization: How could you promise people to handle their money without any audits?

@Hacker: You don't get to keep the money you managed to siphon out the hands of these irresponsible people.


"hacker": My transaction was valid and executed per the organization contract. Others then conspired to invalidate the transaction. Now, my transaction is dead.

"hacker", yes, I forgot the quotes.

The question remains whether the organization contract is acknowledged by a court.


This is my concern. There will forever be a giant asretisk after all crytocurrency rules now.

* Unless a significantly bad event happens to anyone with enough power to fork it.


As someone theoretically interested in investing in things governed by Ethereum "smart" contracts, what the rules of how the contracts are executed? Obviously it is no longer just computer code that rules. There is some, to my mind, ad hoc process involving politics. Sorry, but my money is not touching that system. No thank you.

The DAO was literally the "to big to fail" investment of Ethereum.


Not as anticipated, and, pretty much not as intended by those writing it,

But it was executed as it was agreed to, with an explicit agreement that the agreement would be understood as written, not as intended.


The DAO code was reviewed [1] by the best security audit company in the world [0] and was/is made from irrefutable computer code [0].

[0] https://slock.it/dao.html

[1] https://blog.slock.it/deja-vu-dao-smart-contracts-audit-resu...


> I think Ethereum has some good leadership, but I think this is something that they really need to get a policy on now.

Do they? I see a brilliant 22-year old in Buterin, some respectable people like Gavin Wood and a massive crowd around them that has perverse incentives. An organization that has a massive amount of money (and people who want to make money) and with that the desire to reinvent everything (think I'm kidding, go read about dapps).

Hang around a cryptocurrency forum for awhile an you get an idea of how delusional and downright scammy the vast majority of those communities are. 18 year olds from Sweden scamming people and running pump and dump schemes and then getting doxed and threatened and people investing their life savings into stupid altcoins (yes, saw both of those, as well as much more). It's like the payday loan industry, and like that industry the people at the top have no reason to clean it up. Not only are they not cleaning it up, they are encouraging it. In the r/ethereum subreddit in the early days Youtube videos comparing Buterin and Jobs were getting voted up without even a second consideration that it might be premature.

It's easy to rant against the evil of the banks and the people in power when you don't have power, but when you have power, you do the same?

Something is wrong with Ethereum and scams like this have a chance of destroying cryptocurrency from a legal standpoint before it even gets started.


I think one of the important things is that people have learned the need for backups in smart contracts. There will always be bugs, but if people build in failsafes to catch them then situations like the DAO draining can be avoided.

Here's a nice post about schemes for fault tolerance: https://medium.com/@peterborah/we-need-fault-tolerant-smart-...


> but I think this is something that they really need to get a policy on now.

Did you read the article? The main point was to be adaptive. Asking for a predefined fixed policy is preventing the ability to adapt.

You don't know what the future will bring. That's why the community needs to make up its rules as it goes along.


> What can be done here?

File a law suit in Switzerland? If there was a significant conflict of interest, all this does not seem legal to me.


"... Ther are no rules except what groups of peple have agreed to enforce. This should not be surprising. If this is,well, welcome to the world..." Twitter : Emin Gun Sirer 2012 - 07 - 22

Without going into a lengthy discussion, I respectfully disagree with the author: adaptability is NOT more important than immutability. If you don't have immutability, it means there is a potential to avoid consequences for your actions, which, in turn, means the evolution goes in the wrong direction. In fact, even in nature, you cannot evolve back: creatures evolve, try new things, if they don't stick - the branch dies off.

What is being suggested by Ethereum is that you can try an evolution path, see it's not actually working and then rollback - it seems like a good idea at first because you can supposedly iterate fast. But I think Ethereum would lose confidence of investors either way: 1) if you hardfork, you set a precedent and now no one is sure what can be rolled back, when and for what reason 2) if you don't fork - then money is stolen. I seriously see no way out of this. It probably was a good decision to fork, because that at least allowed to save the face and the investment short-term.


I view ethereum as a tool for automation: It lets us automate legal contracts, currencies, synthetic assets, etc.

All forms of automation in our world go wrong sometimes: This is why we have car repair shops and appliance repair technicians, for instance.

Saying that ethereum is only useful if the automation holds 100% of the time is like saying cars are useless if you have to occasionally take them to the shop for a tune-up. I agree that having a car that never needs a repair would be AWESOME but it would probably be unrealistic to try and build one.

That said, ethereum is still extremely good for writing immutable computer code involving financial assets, it's just that there is now some philosophical (and practical) controversy as to whether it is 100% good or just 99.9999% good (depending on whether you view the code or the community as the ultimate arbiter of "good".)


You can already create legal contracts easily - sign on a piece of paper. This piece of paper is interpreted by a relatively robust legal system with a long history. How is Ethereum going to do better than that if a disagreement is settled not by inspecting the code, but by the opinion of an arbitrary community of miners?

> Ethereum going to do better than that if a disagreement is settled not by inspecting the code, but by the opinion of an arbitrary community of miners?

Ethereum can guarantee that the sum total of the enforcement costs will always be a few pre-paid pennies (or fraction of a penny) and not the hundreds, thousands, or tens of thousands it costs to enforce a contract in a traditional legal system- Even if the community steps in, this will be the case.

(This ignores the fact that ethereum has applications that go well beyond legal contracts)


Ethereum cannot guarantee anything about enforcement costs if the real-life courts get involved. They have jurisdiction, and will definitely end up being involved if two parties to an Ethereum contract sue each other in real life. Ethereum does not exist in some kind of alternate reality outside of the legal system and contract law.

Sure, but by the same token, if Ethereum effectively automates the 1) specification and 2) execution of contracts in the vast majority of cases, then the expected probability of ending up in a courtroom falls compared to doing transactions elsewhere.

Unfortunately, it's still too early to say whether that will happen or not.


I always read this "few pre-paid pennies" statement, but that does not seem to include energy cost and carbon footprint of the miners doing proof-of-work?

I think you outlined a bigger issue: It is now clear that the community will ultimately decide what is right, and the 'community' is actually a much smaller subset of people using ethereum then you would hope. The original idea was that ethereum is 100% immutable to anybody - that no entity can go back and modify it. But as we see here, that's not true, because through a hard fork (that they are clearly willing to do) they can force things to change.

The issue is that ethereum isn't the only option here - standard legal contracts exist, and are by far more common. The only real advantage ethereum offers is the immutability aspect - that no one can go back and argue the contract is wrong or invalid. But now, without carrying an immutability guarantee (Or you could say, now that it is clear that it never had such a guarantee), is there really much of an advantage to holding your contracts at the whim of the few controlling ethereum vs. the legal system?

If the miners lose a bunch of money due to X, and your contract happens to also be based on X, what do you expect to happen? I can't imagine that it is out of the realm of possibility for such a situation to happen.


> If the miners lose a bunch of money due to X, and your contract happens to also be based on X, what do you expect to happen?

If the rest of the community doesn't agree, then they will take they economic power away from the miners, change to a different mining/staking strategy, and leave the miners to mine an abandoned fork with a greatly decreased market cap.


> The issue is that ethereum isn't the only option here - standard legal contracts exist, and are by far more common. The only real advantage ethereum offers is the immutability aspect - that no one can go back and argue the contract is wrong or invalid.

A court would not see it that way. Contract law would apply to these contracts if the parties to the contract sued each other.

The legal system applies to all contracts, whether on Ethereum or not. Ethereum does not get to exist in its own reality outside of the law.

Therefore, the immutability of an Ethereum contract won't matter very much, because a judge can still invalidate part of it, or all of it, if it contains unconscionable provisions, lack of disclosure, agreement to commit criminal acts, fraud or misrepresentation, simple mistakes, or any one of the many other reasons contracts can be rendered legally unenforceable.

So, I don't see how immutability offers any advantage over standard legal contracts. It won't prevent the courts from determining that a contract is wrong or invalid.


You have vastly oversimplified the matter.

In common-law jurisdictions, contract law pertains only to agreements which are made with the intent to contract, i.e., with the intent that the agreement should be enforced by law. In the case of agreements made without that intent, and particularly when an agreement explicitly stipulates that legal enforcement should not apply, common-law tradition says (with some major caveats) that a judge should dismiss suits related to the enforcement of the provisions of the agreement.

Further, even in the case that a so-called "smart contract" is deemed to be subject to contract law (whether because the parties made that intention clear, or because their intention was vague and a judge consequently rules that to be the case), it is reasonable to argue that the intention of the parties was to be bound by the rules of the system in which they chose to express their agreement, e.g., within a system in which it is broadly understood that "the code is the contract", and that the execution of the code according to the parameters of the execution environment at the time of the agreement should dictate the outcome of the agreement. In other words, it is perfectly plausible from a legal point of view that a judge could find that the primary intent of the parties was to be governed by the rules of the system in which they chose to execute the agreement (e.g., Ethereum under its pre-fork consensus rules), rather than ruling on their intent at the lower level of the code expressing the contract itself. Such an interpretation would go little further than the already well established legal precedents of allowing contracting parties to bind themselves to the decision of an arbiter other than a court of law, or of one court acceding to the jurisdiction of another as stipulated by the contract itself.

A judge might therefore plausibly rule in a way that enhances rather than degrades the promise of immutability in a technically enforced consensus system. That is, a judge might reasonably find that changing the rules of the game halfway though (e.g., with an unanticipated hard fork that changes the system's state or execution parameters) is contrary to the intent of the contracting parties, and that therefore the agreement should be interpreted under the rules of the status quo ante (pre-fork).

One of the basic philosophical foundations of contract law, dating to Adam Smith, is that free people should have the power to bind themselves in enforceable agreements. There are many qualifications to this idea, but it an important justification for the existence of contract law and for the way it has evolved over the centuries: the whole point is that contract law should empower parties to make agreements and to be bound by those agreements, and (within some bounds) that includes the power to decide how disputes about the terms of those agreements are adjudicated. Choosing a mechanism of enforcement de machina rather than de jure fits into this philosophical framework just fine.


> In other words, it is perfectly plausible from a legal point of view that a judge could find that the primary intent of the parties was to be governed by the rules of the system in which they chose to execute the agreement, e.g., Ethereum under its pre-fork consensus rules. A judge might therefore plausibly rule in a way that enhances rather than degrades the promise of immutability oven by a technically enforced consensus system.

Yeah, that could happen. A judge could also invalidate an Ethereum contract. But if a judge makes a ruling on an Ethereum contract, no matter what that ruling might be, that would prove that Ethereum contracts are subject to the jurisdiction of a judge in the legal system, just like other contracts, which proves my point.


Your point, it seemed to me, was that a judge's decision would trump the blockchain's. My point was that a judge might decide (a) that he has no say, or (b) that what the blockchain says goes. In either case, the law would effectively trump nothing.

If that proves your point, I suppose we might just as well say that the legal system is pointless, because physics gets a say, and what physics says goes—nevermind that the law does not purport to overrule physics.

In the same way that physics does not make law irrelevant, the law does not necessarily make the blockchain irrelevant: the law could well recognize the authority of the blockchain. Call it the compatibilist argument.


Personally, I agree with you. I'm not really of the opinion that immutability offers any advantages, and I'm not using Ethereum myself.

That said, I think the main idea is that no matter what a judge argues, nobody can modify the original contract in the Ethereum blockchain (That's the theory at least, as we've seen that's not the case). That's not to say something else couldn't be done, but as far as Ethereum is concerned the judge saying it is invalid means squat because that has no ramifications on the blockchain.

You raise a good point though that in the end a judge could make any number of decisions outside of Ethereum, so Ethereum only provides so much "protection". Clearly, what a judge decides means much more then "squat" because it has actual ramifications on the people involved, even if it has no ramifications on the Ethereum blockchain itself.


The problem with this is that if a judge determines an Ethereum contract is unenforceable, but the blockchain does not change, then the blockchain no longer represents the state of affairs in the real world. If that happens, what is the blockchain good for? How can anyone be confident in it, or base decisions or future contracts on it, if it diverges from reality in such a way?

A judge can say whatever he wants. That doesn't mean that he can necessarily do anything about it.

There are tons of bitcoin addresses that we KNOW have been used to buy/sell drugs, for example, any address that has sent or received money from a silk road address.

I am sure that these judges would LOVE to confiscate all of this money that is being used for illegal things. But they can't do shit. Because bitcoin has proven to be pretty robustly immutable.

That is one such value of immutability.

Unfortunately for ethereum, it seems to now be much more vulnerable to the attack vector of a government court order, whether that court order is from the US trying to crack down on pot purchases or donations to wikileaks, or China trying to crack down on payments to journalists that are critical of it.


Immutability didn't stop the U.S government from auctioning off Ross Ulbricht's 44,000 bitcoins.

Actually, it did. They had to capture him and steal his passwords to do it.

In the traditional system that isn't a requirement.


Right. My point is that immutability doesn't mean anything when the government can simply arrest you and coerce you to reveal your password, it's no different than a gangster stashing cash in a hidden safe.

If a contract pays out Ethereum to someone, and a court decides this should not have happened, the coin can still be returned manually by the recipient. If he refuses, he is in contempt of court and has to face the consequences of that.

I guess you could play funny business by making it functionally impossible to return the coins (lock them up for years somehow? Hand the private key to a Russian friend?) but the the court will cheerfully seize your assets that it can.


" but the the court will cheerfully seize your assets that it can."

And how in the world would the courts do that? This is crytocurrencies we are talking about. The contracts I am talking about would be done anonymously between two people who have never met before, and have no chance in a million years of finding out who the other person is, or where they are. Thats the whole point!

I'm sure courts would love to confiscate all of the bitcoin donated to wikileaks or that is used to buy drugs on the internet. They've made a few high profile arrests and confiscations, but nothing on the scale of mass arrests of silk road customers, even though they would if they could.


You need to read this long list of sources which prove that Bitcoin is not anonymous: http://www.bitcoinisnotanonymous.com/

????

Tumblers? Or even just transfer between crytpo currencies.

I even pulled a quote from your sources:

"Bitcoin “laundry services” do exist: Bitcoinlaundry, Bitmix, and Bitlaundry are several examples. Once you pass your money through such a service, it is much harder and almost impossible for law enforcement personnel to establish their origin."


Many of the tumbling services use strategies that can be reversed with pretty good confidence.

Bitcoin wallets have been confiscated before, in multiple countries.

In the Silk Road case, hundreds of thousands of bitcoins were confiscated from multiple accounts: https://en.wikipedia.org/wiki/Silk_Road_(marketplace)#Arrest...

This May, the Australian government confiscated 24,518 bitcoins from someone who sold drugs online: http://www.bbc.com/news/technology-36412487

Last August, the Italian government confiscated 11,000 bitcoin wallets, which contained more than 1 million Euros worth of bitcoins: https://cointelegraph.com/news/police-confiscate-11000-bitco...

So, the judges were able to do something about it. So much for immutability. You can't escape the legal system just because you don't let people change the blockchain ledger.


And what about the tens of thousands of bitcoin addresses that have sent or received money to silk road addresses?

Have THOSE people been arrested? We KNOW that they used money to pay for drugs. Doesn't mean the courts can do anything about it.

Sure, there have been a few high profile arrests. That tends to happen if you start mailing thousands of drugs to people using the postal system.

And just like in the real world, if someone finds your physical wallet, they can confiscate it.

But the amazing thing is that we are sending money over the internet, and there is nothing anyone can do to stop it. No bank account freezes. And no confiscations unless they physically find you in the real world (but at that point, they can do whatever they want to you, so you've already lost.).


The question is, do you want to defy the court system if it's bringing down the force of law on you? And spend the rest of your life trying to avoid/evade the consequences? Courts don't forget.

It seems like it'd be easy to say "hur hur I'll tell the court to piss off, move to a country with no extradition, and live it up there," but really? That's your plan? That's the advice to give to people, "use bitcoin, if you get busted just skive off to somewhere with no extradition"?

Certainly it's doable, but is that the life you want, or want to encourage others to seek?


There are ALREADY people who are forced to live that life.

If you are support separation between church and state, and you are living in Turkey, you are ALREADY being targeted, being arrested, and being tracked down, eventually to be executed (They are trying to bring back the death penalty. Who do you think for?).

What do you tell those people? Just stop fighting for what they believe in? Turn yourself in to the government and hope for the best?


I don't think a judge or the legal system is concerned with such a thing. That is a problem that Ethereum would have to solve, if it can.

That said, the blockchain is always going to be consistent. The catch is that a judge can still force things to be fixed in various ways - either by requiring you to return the ether, or perhaps requiring another type of currency to be given back. So in that way it doesn't really matter what the state of affairs on the Ethereum blockchain is, because you can just settle it apart from the blockchain if you really have to.

And the reality is that you could make those coins impossible for you to access, but that doesn't do you much good, and while your ether is inaccessible the judge can seize your assets and require payment through other means.


I'm not surprised that the non-programmer segment of ETH supports the hard fork, but (imo) it should be very easy for those familiar with software development to see why it has to be absolute 100% or rather completely useless. Specifically, it's about turning real world requirements into code.

Most of the legal contracts dispute isn't about blatant black and white issue, it's about whether this interpretation or that interpretation of the same wording is the intentional one. And it's obvious that we have enough issues with just turning requirements for CRUD websites into code, there is zero chance in hell there won't be "requirement bugs" in more complicated contracts. Unless you agree with the 100% "code === law", you will get every dispute from the old legal system, plus a whole new class of dispute from those aforementioned bugs.

It does raise the question of whether all intentions of legal contract could be turned into code at all. But if that's a no then ETH is dead even before it's started.

In other words, our legal system is already 99.9999% good, it's the last remaining 0.0001% that ETH seems to try to replace. And now it seems like it doesn't want to?


> In other words, our legal system is already 99.9999% good, it's the last remaining 0.0001% that ETH seems to try to replace.

Again, ethereum is a tool for automation- Once we can have contracts that can be enforced using code instead of judges, we can create contracts that can work even if we can't afford more than a few pennies for enforcement. That sounds like 90% of potential contracts to me, not the 0.0001% you claim (but neither one of us has citations to know what the real number may be)


Judges don't get involve in contract that are not in dispute (that includes enforcement), so functionally most contracts do not need costly enforcement either. There are a lot of real world contracts that already automate (bank deduction monthly from your account?).

And there is one point where I thought about but didn't want to point out since it was a slight tangent: in ETH, you need someone to write the contract, then someone to vest it still, it's not free. Contract reuse? From what we've seen of CRUD reuse, it's kind of a pipe dream. People can read and copy a TOS, do you think they will trust a "contract TOS" and using it without hiring an "expert" ?


> Judges don't get involve in contract that are not in dispute

Well, in ethereum that's true if the contracts are in dispute, as well- Anyone that disagrees with what the terms of a smart contract are are welcome to submit a transaction to the contract and they'll immediately get the "judge" of the ethereum protocol to supply them with a ruling.

As for contract vetting and code reuse: I agree those can get expensive and have their own problems.


> Well, in ethereum that's true if the contracts are in dispute, as well- Anyone that disagrees with what the terms of a smart contract are are welcome to submit a transaction to the contract and they'll immediately get the "judge" of the ethereum protocol to supply them with a ruling.

As mentioned before, unless we agree that the implementation is the contract (immutable code is law), it will be disputed that the implementation is not what the requirements want. A meat-space judge will be involved, and anything can happen from there.


And because I don't trust your meatspace's law I'm remaining anonymous (or out of reach of your jurisdiction) and we're back to "the code is the law".

As long as I'm not buying your house, where I'd need your judge to order you out, I don't particularly care what they'd say.


That's not how it works. If two parties in an Ethereum contract sue each other, real judges will get involved, and they will treat Ethereum contracts the same as any other contracts. They won't give a crap about what the Ethereum protocol says about the transaction.

Ethereum contracts do not get to exist outside of the legal system. Courts have jurisdiction over all contracts, period.


I don't think it should be stated as universal. Some blockchains can have immutability as their absolute raison d'être, others may have it as an important goal, but may sacrifice a certain degree of immutability for other features.

Whatever is going to happen, monoculture won't be the solution.


> In my mind, adaptability is more important than immutability.

Important for what? Is there adaptability without mutability?

Programmers know that if you implement something with the premise of immutability then if mutability occurs the state of your application changes arbitrarily.

Mutability is good for the ones who can rely on an existing provider of centralized governance to make decisions that benefit them. For everyone else it's just plain corruption.

Ethereum pivoted from decentralized governance to centralized governance across borders. They are now solving different problems and I hope they see it.


> I have no idea how Etherium or the blockchain works.

Your ignorance is readily fixable; luckily for you you're already on the internet. Google is just a click away.

That being said, you don't need to know how they work. A blockchain is a decentralised database where no single authority can edit it, and thus you don't need to trust any one entity to host it or vouch for it.

1) It's useful in situations where you can't trust someone to look after the database because they may edit it maliciously.

2) It's not useful in situations where you can trust someone to look after it, and you'd like them to have the ability to edit it beneficially (by, eg, reversing a fraudulent transaction).

> these all sound like fake words

Your apparently shockingly sheltered upbringing is leading you astray. You should probably fix that before it causes you some serious embarrassment.


If you don't know how Etherium works in great detail, you probably shouldn't be using it. As the DAO just discovered the hard way.

You can use Bitcoin without understanding it, but Etherium can bite you in unexpected ways.


Personal attacks, which this crosses into, are not allowed on HN. Please edit such stuff out of your comments here.

We detached this subthread from https://news.ycombinator.com/item?id=12151921 and marked it off-topic.


The threat of hard forks undermines not only confidence in the governance of the cryptocurrency, but also of any application (in the 'make-use-of' sense) of the blockchain.

Specifically, Ethereum was designed with the explicit purpose of running distributed applications that commit their applicaton state into the blockchain. If this state can be subject to a rollback, in the form of forking from a block in the past -- community consensus notwithstanding -- then then you can never rely on the blockchain as storage.

Now, of course, cryptocurrencies only have value if participants believe in them; and these supposed 'smart contracts' of 'state-in-the-blockchain' work the same way. Since we lack the technological means to prevent forks, we need human stewardship to avoid them, and that's clearly not what Ethereum has done.


Anyone who works with code will know that bugs happen all the time. Semantic bugs can be hard to anticipate, and are sometimes not obvious even to highly knowledgeable reviewers.

The big fallacy underlying the hard fork is the idea that bugs like this will only happen this one time and so the benefit of stealing the money back and giving it to community early adopters outweighs the costs to the institutional credibility of Ethereum.

In reality, there will be many, many more bugs in smart contracts where the intent of the coder does not completely match the behavior of the smart contract in the real world.

The Ethereum community, and notably its core team who wrote the code for the hard fork while claiming to be neutral in the matter, has sent a strong message that it will meddle in the outcome of contracts in which there was no VM bug.

Human institutions are relatively vulnerable to corruption. There is all sorts of graft, favoritism, etc., throughout most human institutions. Ethereum, because of the concentration of power among early adopters, is still vulnerable to this sort of corruption. We've seen it happen with the hard fork.

Is it a big deal? Well, the invisible hand should have awarded the spoils of the theft to the talented hacker who exploited the contract. Those who lost money in the DAO are people who followed a herd mentality and did not insist that the smart contract they trusted be vetted.

Formal verification will help somewhat, as will the improvement of coding practice. I saw some code written by someone involved in the DAO that was written in a way that made it hard to understand the side-effects of various calls. I'd highlight this if doing code review for a simple e-commerce cart, and it suggests that semantic clarity and readability were ranked low on the list of priorities, favoring a denser style that is much more demanding of the reader's understanding of the subtleties of the language.

What is missing is the simple idea of insurance. Suppose investors in the DAO had been allowed to buy insurance against the DAO malfunctioning... This could have been written as a simple smart contract "future" and could have been offered by anyone. So long as there was demand for both sides of the outcome, a price would have emerged to insure one's investment.

So I think we're on a slippery slope, most notably because of the silly idea that this was the last smart contract bug that will be highly significant or controversial.

Cryptocurrencies bootstrap by appealing to speculators who don't really care about the principle of how it's supposed to work, they just want to buy it early and wait for it to get big (as many did with BTC but many more wished they had). This is fine, but we saw the same sort of greed infect a lot more people, and a hard fork (bailout) occur soon after. You can call it adaptability, you can call it a bailout, it doesn't matter. The bottom line is that at present Ethereum is still vulnerable to it and will be for a while. Let's hope Ethereum grows to the point where a small cabal of people who made a bad investment (or hold a particular political view) can't undermine the system.


If the loss had happened to anyone else other than the people behind Etherium, the fork would never have happened.

A fundamental problem with Etherium is contracts between anonymous parties. If the other party in the DAO hack was discoverable, the hack would not have been a major problem.

Executable, rather than declarative contracts, are probably a bad idea. Putting in a virtual machine is a cop-out - it means you don't know how to solve the problem of expressing contracts formally, and are pushing it off on someone else. That someone else will probably botch it, as the DAO did. I've previously suggested that decision tables [1] would be a better basis for a contract system. This decision table tutorial [2] is something of an ad for a tool, but it uses as an example the sort of things one would want in a contract.

[1] https://en.wikipedia.org/wiki/Decision_table [2] http://reqtest.com/requirements-blog/a-guide-to-using-decisi...


Do you know if there is anyone working on declarative contracts? I was thinking that at least some sort of declarative way of bounding the contract's behavior might be useful.

Lots of people are working on declarative contracts. Here's an overview.[1] That paper has a set of desirable properties for a contract language, and analyzes some of the existing ones against those properties.

Here's a contract language from 2002.[2] The author expresses various common contracts, and some not so common, in it. This is reasonably readable. If you like logic formalism, there's this.[3]

Financial companies would like to have their contracts, especially derivatives, in a form suitable for running risk analyses and various scenarios. You'd like to be able to form queries like "Suppose X misses their payments for the next quarter? What does that trigger?" Some of the 2008 financial debacle came from the inability to ask questions like that.

[1] https://www.semanticscholar.org/paper/A-Survey-of-Formal-Lan... [2] http://szabo.best.vwh.net/contractlanguage.html [3] http://www.cse.chalmers.se/~gersch/slides-talks/slides-CL-Mo...


Thanks much!

Nobody knows how to express contracts formally, not even "real" lawyers. There are almost always clauses about force majeur, and then humans talk to each other.

Absolutely. Its why lawyers and courts exist. More rigor in drafting using tech is great idea, but say 95% automation is great. Attempting 100% right out of the gate seems a stretch.

This is a death kneel to Etherium. Immutability is literally the only thing that made it stand out from any other form of currency. Now it's no better or worse than any other form of currency. Someone can decide they don't like it and reverse a contract? Done.

I'm really surprised at how negative the comments are here... but at least they are reasonably well informed and respectful.

Oh well, guess I'll just keep trying to build useful stuff on top of ethereum and hope the opinions change (or that this thread is not representative :-)


Why bother writing stuff on top of Ethereum? If the devs can hardfork whenever something happens they don't like, Ethereum is no less centralized than a bank. You'd probably make more consistent money by working for a bank.

You mean, why don't I just sit around and spend my time trolling people like you do?

No, it's a serious question. What does Ethereum offer that isn't handled by existing banks and legal structures? As far as I can tell, the entire point of Ethereum was to decentralize contracts. Now they're no longer decentralized, so what benefit do you see in Ethereum that I don't?

You might as well build on top of old school banks and central govs :))

Why waste time if we already have what erherum will become after the fork? There is a platform already and all the people are using it. It's called lawyers and banks.


If you follow USV a little bit, they are clearly in talks investing in slock.it - probably they already did it at the DAO. So no neutral thinking here. And an example for the general problem of the fork and etherum as crypto currency - people won't trust such insider ruled 'club'


Please don't post uncivil and/or unsubstantive comments to Hacker News.

We detached this comment from https://news.ycombinator.com/item?id=12151921 and marked it off-topic.


@Fred, would you mind disclosing all your Blockchain related investments?

On USV's portfolio site I just found Blockstack Labs (2014), Coinbase (2013). Are there more or recently closed ones?


Here's my problem with the hardfork (unless I totally misunderstand it):

I had some ETH stored on the "old" blockchain. I bought them during all the DAO publicity, but never actually bought any part of the DAO contract.

The client, if you are un-ware, is a massive disk space hog. Because of this, I stopped running it.

Now, because of the hardfork, in order to get my value back out of the old chain and into the new one, I have to attach an external disk to my computer, and use it to store the chain.

Can I transfer out of the old and into the new chain indefinitely? I have no idea (maybe I'm just bad at google). Can I even transfer now today (once the client finishes syncing [it has been going literally all day today])? Don't know.

I get the why of the hardfork, and I'm not saying that I'm going to stop supporting ethereum, just venting a little bit.

Turns out new technology is new! And sometimes corner cases like mine haven't been accounted for!


Do you have the password to your wallet? There shouldn't be anything that you have to DO. Your money is already on the new chain. Just use any updated client.

You don't need to transfer between forks or anything of the like, the only difference for you is that you now have two types of coins. Eg if you had 21 ETH before the fork you now have 21 ETH on the hardfork chain and 21 ETC (ethereum classic is what they call it) on the hardfork opposing chain.

Besides there are light clients that don't require the entire chain to be stored on disk, there are even some that run entirely in your browser like https://www.myetherwallet.com

Now if you want to interact with the hardfork opposing chain things gets a bit more difficult because it doesn't have much dev support and as far as I know there are no light clients supporting it.


The author of the article should bother to read the first two lines of the official Ethereum page:

> Build unstoppable applications

> 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.

One should add at the end: "...unless the developers are heavily invested in a contract, in which case they can perform an Ethereum hard fork to take back their investment in case it goes awry. You know, conflict of interest and all that."

Because that is exactly what happened here.


Not immutable but mutable.

I'm not totally sure how a blockchain works so please correct me if im wrong - for a hard fork to happen in Ethereum or Bitcoin, the majority of users have to "agree" by switching to thew new blockchain right?

In that case, the Ethereum hard fork doesn't sound very controversial - even if the devs decided to hard fork for bad reasons later on, no one would be forced to adopt it. They would be "voting with their feet" by sticking to the old chain.


That's the case if there are dozens of different client implementations each maintained by a separate independent team. If there is just one client and no people qualified enough to fork it and maintain we end up with a centralization. The only team can make whatever changes they wish.

Ethereum currently has eight implementations, each in a different language, some independent of the Foundation. At least the Go (official), C++, Rust, Python, Java, and Javascript clients are full implementations. The Rust version is especially nice; it's the fastest, and produced by an independent company run by one of Ethereum's early developers, who no longer works for the Foundation. (The Haskell implementation has fallen behind, and the Ruby one is pretty new, I'm not sure of its status.)

It's relatively easy to make an independent client because there's an actual spec and a test suite.


While the author is on the right track explaining what has become out of Ethereum, the Ethereum guys raised money to build a system by crowdfunding a trustless global immutable computer. Not a USD public blockchain.

in a system where the mining business is private and speculative, it might not be alright to hold mining farms/pools morally or legally accountable.

In this case adaptability equals centralization

Adaptability?

If "adaptability" comes down to a popularity contest, this probably isn't a viable/stable/ethical currency.

Gold has had a long history of success and it wasn't able to undergo a hard fork. The fiat currency that we live with now has legitimacy due to the fact that you can generally expect its value tomorrow to be the same as today. Imagine a fiat currency hard-fork and what that would do to the credibility of it?


Bitcoiners are libertarian-minded while ethereumists are more democratically-minded.

Same old debate under new disguise.


Ah… Classic case of decentralized system with no authority.

At a business level, the mistake seems to have been not capping the amount to raise. $160m for a seed raise makes no sense. If they had capped at 10x less it would have been less of a magnet for thieves. As Willy Sutton said when asked why re robbed banks...

Legal | privacy