
Hard Forks - prostoalex
http://avc.com/2016/07/hard-forks/
======
Animats
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](https://en.wikipedia.org/wiki/Decision_table)
[2] [http://reqtest.com/requirements-blog/a-guide-to-using-
decisi...](http://reqtest.com/requirements-blog/a-guide-to-using-decision-
tables/)

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

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

------
chollida1
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?

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

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

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

~~~
compil3r
Not immutable but mutable.

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

~~~
drcode
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".)

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

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

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

~~~
twblalock
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?

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

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

~~~
stale2002
" 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.

~~~
twblalock
You need to read this long list of sources which prove that Bitcoin is not
anonymous:
[http://www.bitcoinisnotanonymous.com/](http://www.bitcoinisnotanonymous.com/)

~~~
stale2002
????

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

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

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

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

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

------
randomnames
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'

------
greenspot
@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?

------
drcode
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 :-)

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

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

~~~
kerkeslager
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?

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

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

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

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

------
blhack
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!

~~~
Zagitta
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](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.

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

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

------
sanxiyn
> 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?

------
skylan_q
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?

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

Same old debate under new disguise.

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

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

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

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

------
elmigranto
Ah… Classic case of decentralized system with no authority.

------
arisAlexis
In this case adaptability equals centralization

------
LAMike
[http://lmgtfy.com/?q=how+does+bitcoin+work](http://lmgtfy.com/?q=how+does+bitcoin+work)

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

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

