

Scalability, Part 2: Hypercubes - jrbedard
https://blog.ethereum.org/2014/10/21/scalability-part-2-hypercubes/

======
bkirwi
As a side project, I've been reimplementing a large chunk of Ethereum PoC-5 in
Haskell. Given all the stuff that's going on in that ecosystem, though, I've
basically stopped development.

Bitcoin is held together by a delicate balance of cryptography, software
design, and community involvement. Most altcoins are very conservative about
the changes they introduce, keeping them as close as possible to successful
designs and carefully monitoring the blockchain for stability. Ethereum,
meanwhile, no longer bears much resemblance to the projects that inspired it.
Even if Ethereum's core algorithms are sound -- and it's becoming difficult
for anyone outside the project to evaluate that at this point -- there's no
concrete evidence that it will be stable in practice, and they're already
building many layers of code on an uncertain foundation.

I'd love for Ethereum to succeed; I've always been more interested in Bitcoin
as a distributed system than as a currency, so it's great to see people
pushing it in that direction. But it's gone past the point where I can
evaluate all the new stuff that's happening, and I feel weird devoting time to
a project when I can't see where it's headed. We'll see what happens once the
dust settles...

~~~
semiel
Personally, this is why I find Ethereum so fun. I don't think anyone expects
Ethereum to suddenly take over the world, but it's a really interesting
testing ground for a lot of fascinating ideas. If we were trying to identify a
spiritual predecessor, it would definitely not be something like the Apple II.
We're much more in "Mother of All Demos" territory.

I would honestly be mildly surprised if I was actually making money
programming Ethereum contracts in 10 years, but I would not be remotely
surprised if I was doing something that owed its existence to the experiments
the Ethereum team is doing.

------
Animats
Determining if that algorithm is secure against attacks which steal value is
going to be tough. Even if the algorithm is secure, the implementation may not
be. Building a general-purpose interpreter into a money system may not be a
great idea from a security perspective. Could someone put hostile code in the
block chain? Cause overflows? I don't know.

This is a really complicated consistent-eventually system. It's possible for
parts of the network to be out of sync, possibly due to attacks. Eventually,
the inconsistency is discovered when two out-of-sync subnets communicate. Then
there's a complex dispute-resolution strategy which ultimately results in some
blocks being invalidated. It's not clear how long this takes. Since the
application is money transfer, a substantial delay may offer the opportunity
to take the money and run, which is almost standard practice in the Bitcoin
world.

(A long, long time ago I looked at a similar problem - keeping routing tables
in sync in the presence of bogus data insertion. I never had a really airtight
solution; the best I was able to do was to come up with a way to detect
attacks. If there's now a good solution to that problem, perhaps it should go
into a successor to Border Gateway Protocol, which has route forgery
problems.)

Checking out the security of this thing looks like a PhD thesis sized project,
with a really good crypto advisor.

~~~
bhouston
> This is a really complicated consistent-eventually system.

So it is very complex and it is supposed to be trusted for monetary
transactions, and failure means significant financial loss? This isn't a good
combination to have.

It is great to have these types of really complex ideas, but something more
elegant is likely to beat out this idea in the long run.

------
throwawayether
Love to see a poll: will Ethereum ever launch?

I can't tell if this is all horseshit, or too deep for me to understand.

~~~
wyager
>I can't tell if this is all horseshit, or too deep for me to understand.

A mixture of horseshit and mildly interesting stuff.

Even though ethereum is technically feasible, it's plagued by developmental
issues (including, IIRC, failed attempts at roll-your-own crypto), and even if
it does ever get launched, the incentive structure doesn't make sense and the
whole platform is essentially useless. It's absolutely no good for distributed
apps; you still need oracles for those to do anything useful, and if you have
oracles, you might as well put the apps on the oracles in the first place. It
might be useful for digital contracts, but Bitcoin already handles those very
well in the vast majority of cases.

~~~
DennisP
It's not like they're coming up with their own encryption algorithms. The
original parts are things that haven't been done before. Roll-your-own is the
only option.

It's worth noting maybe that Ralph Merkle is on the team.
[http://www.reddit.com/r/Bitcoin/comments/25269r/dr_ralph_mer...](http://www.reddit.com/r/Bitcoin/comments/25269r/dr_ralph_merkle_of_merkle_tree_fame_just_joined/)

The only thing you need oracles for is getting information from the outside
world. I can think of plenty of applications that don't require that. But even
then you don't really need oracles if you use the Schelling mechanism they've
been talking about.

~~~
wyager
>It's not like they're coming up with their own encryption algorithms.

I seem to remember something about a tree-based hash algorithm for mining
purposes that turned out to be cryptographically insecure.

>The only thing you need oracles for is getting information from the outside
world.

Or for having any effect on the outside world (i.e. the things that people
usually want programs to do).

> I can think of plenty of applications that don't require that.

Besides financials/contract processing, what?

>Schelling mechanism

Do you have a link about this?

~~~
DennisP
Schelling:

[https://blog.ethereum.org/2014/03/28/schellingcoin-a-
minimal...](https://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-
trust-universal-data-feed/)

[https://blog.ethereum.org/2014/06/30/advanced-contract-
progr...](https://blog.ethereum.org/2014/06/30/advanced-contract-programming-
example-schellingcoin/)

