Hacker News new | past | comments | ask | show | jobs | submit login
Decentralization in Bitcoin and Ethereum (hackingdistributed.com)
131 points by erwan on Jan 15, 2018 | hide | past | favorite | 48 comments



We should remember the most often centralized aspect of blockchain projects promising a fully-decentralized future: the developer teams. They are typically very centralized with disproportionate power over the network. See the graphs in the second half of this article:

https://news.earn.com/quantifying-decentralization-e39db233c...

This isn't necessarily damning, as "everything has to start somewhere," but it definitely doesn't warrant self-congratulatory pats on the back exclaiming a decentralized utopia. There's still a lot of work to do, but these projects might be the furthest along we've seen after open-source software.


It was certainly damning to Ethereum when they forked the currency to rescue the DAO.


Maybe not to the price, but certainly to the movement. A majority of users don't care about decentralization. Ethereum proved that.

The only thing most people want from cryptocurrencies is more USD than they put in.

Editted to better represent reality.


I think there is certainly a massive amount of uneducated speculation going on in the crypto currency world, but saying things like "no one cares about decentralization" shows a foolish lack of knowledge about the whole space.

A lot of very smart people care passionately about decentralization and the technology is going to change a lot of things. It seems like from your post history you're going to have to be dragged kicking and screaming into the future.


I think there's certainly some interesting ideas happening, but the jury is still very much out on whether cryptocurrencies even have a future. It's been several years now and we have... what? Thousands of memes about never spending your currency because it's going to be worth x1,000,000 in the future?


Oh boy, you could say that about any tech that hasn't quite hit mainstream couldn't you? Including VR/AR and self driving cars, except these technologies have been around much, much longer (decades) and have yet to go fully mainstream.

Bitcoin itself is 9 years old. Ethereum is barely 3 years old. Meanwhile, people are building decentralized trading platforms, prediction markets, provably fair online casinos, an entirely new venture funding model has been created, crypto collateralized loans, virtual assets trading, IOT-based supply chain management, and so much more. You'd realize that if you looked past the memes, there's something there, it's still very early, but it's growing rapidly.


While there are a lot of people who care about technology it pales in comparison to those who just want a quick buck from a manic bubble, using the term "no one" is extreme but it's not completely unfitting.


Or some people like me believed in the technology and decided that an early fix was a good thing. Most people who were against the fix did not care much about ethereum, if they did they are on ethereum classic now.


I mean, Ethereum classic is still out there, still going fairly strong if you like.


Actually, decentralization has hurt Ethereum quite a lot since Ethereum Classic was created because of the DAO.


There will inevitably be some centralization of development, as moving forward on a roadmap requires developer consensus. The only way to deal with that is to shift that centralization to a detailed protocol spec instead of to a specific implementation, so that multiple developer teams can build different implementations that remain inter-operable.

That's attractive in theory but very difficult to achieve in practice, even with a spec. That said, it looks like at least one initiative to do this in the industry is succeeding - Lightning Network. The protocol was agreed on last fall and now all three main implementations are inter-operating on mainnet.


For some further context, Ethereum allows miners to vote on block capacity increases in a way similar to that which some people wanted to add to Bitcoin. Apparently it's recently started acting like a live demonstration of the reasons why the Bitcoin developers didn't consider this a good idea: https://www.reddit.com/r/ethereum/comments/7pfshh/why_is_8m_...


Surely this has more to do with ETH’s very fast block time than the increased block size in a vacuum?

That is, I don’t see how these same issues that are affecting blocks that come every ~15s can be used to draw a conclusion about a system whose blocks come every ~ten minutes.


As a piece of anecdata: I run a Bitcoin node at home with no troubles, but I've been totally unable to sync the Ethereum chain. Trying to do so drags my computer to its knees for hours and doesn't seem to be making very much progress.


How are you running geth? I run "geth --cache 2048 --syncmode fast" on Linux, and that updates the blockchain fairly quickly.

If you don't have the blockchain downloaded yet, I'd look for a zipped version online. You can import it locally using "geth copydb <location>".


Same issue using geth. Switched to parity and it worked.


I recommend using Ethereum Wallet / geth in light mode.

https://www.reddit.com/r/ethereum/comments/669cn9/how_to_use...

There is an option for this in the GUI version as well.

    Developer > Sync with light client (beta)
I couldn't sync with the full node because it would take ages + ~100 GB. Light mode has worked like a charm.


How big is light mode?


I've heard reports being anywhere between 350 MB to a few gigs. Substantially smaller than the full chain, and faster.


As of today: 2.1GB


I gave up trying to run geth and switched to parity instead. It works, for now, but it takes longer and longer to catch up each time (I only run it occasionally for metamask).


Make sure and run latest parity, they just fixed a massive perf bug. https://github.com/paritytech/parity/releases/tag/v1.8.6


Not enough IOPS


That's basically it. My PC that keeps up (and can sync a month of updates in about an hour) will typically be thrashing an SSD at 55MB/s while using about 15Mbit/s internet.

On an older PC I can't sync, it keeps falling further and further behind. It's got a slow old spinning rust disk.

As a note, I believe the Geth devs have an update coming where they use more memory caching which saves smashing the disk so hard during sync.


The final frontier


There is hidden centralization of dev teams and clients in both projects.

Bitcoin core could probably be sunk by covert US government or mafia-esque intervention with the dev team.

Both bitcoin core and ethereum are monocultures, which makes them much more vulnerable to black swan bugs.


Nobody is required to run code changes put up by the dev team.

Anyone, anytime can fork the code, and thereby the block chain, and create a second version of the currency.

The question is: Which one do people attribute value to?


The risk vector isn't that the dev team will push "PR 666: add master key to all wallets". It's that someone will introduce a subtle bug (such as a side channel leaking your private key), which goes undetected for months or years, until it's revealed that they've been slowly siphoning off and selling bitcoin they weren't entitled to. In a scenario like that, people might not attribute value to the current chain or the months-old clean one.


You could fork the code without forking the chain. I'm actually surprised that there aren't multiple organizations writing software against the bitcoin data model. Transactions and blocks are pretty well understood at this point, and maybe having other devs writing test features and extensions could help push the community in a positive direction.


I think that is what happened with cash. Bitcoin cash copied bitcoin and inserted new bugs into it.


I have been running multiple bitcoin and altcoin nodes and still I am not able to run public geth node synced for month on dedicated server (4c SAS disks). So if "Bitcoin Underutilizes Its Network" then Ethereum is actively destroying itself.


I hear you basically need a fast SSD to get enough IOPS to sync Ethereum these days, especially in full archival mode.


I have a very fast server. 500mb/sec write sustained

What's the benefit of running an Etherum node with complete history?


This is exactly how sidechaining works. I was heavily downvoted in another thread for suggesting that sidechains can mitigate network “sluggishness” for more complex Dapps.


Yea, I don't know how anyone uses geth.

Use parity (though probably not any of their contracts).


this race for the lowest block time is completely madness! what is the use of having one confirmation if the block could go orphan and your transaction could be reversed, it's like a placebo efect.


It's actually a good idea within limits. Faster block times reduce the variance in the time it takes to achieve a certain degree of safety. 3 confirmations on BTC takes 30 minutes in expectation, but it's very easy for it to take 60 or 90. In contrast, while it would also take expected 30 minutes to get 120 confirmations on Ethereum, the likelikhood of it going substantially longer is small.

Waiting 30 minutes for a transaction is annoying, but you can plan around it. Unexpectedly waiting an hour and a half is maddening. :)


The standard 6 confirmations to ensure a BTC transaction is included in the chain are roughly equivalent to 10 confirmations in the Ethereum chain. Since Ethereum block times are much lower, assurance is much faster. 1 hour vs 3 minutes.


Zero conf transactions are viable on blockchains that don’t have backlogs


How so?


You can accept an valid signed transaction with low risk even if it hasn't confirmed yet because in a blockchain w/o regular massive backlogs the chances that it doesn't confirm are very low. So for smaller every day transactions there isn't a need to wait for an actual confirmation.

In a situation as exists with Bitcoin currently it's anyone's guess whether a transaction will ever confirm because there are HUGE backlogs that haven't cleared for several months. A transaction has a high chance of being dropped regardless of the fee being paid because the backlog and fee level required to get confirmed at all is unpredictable. Bitcoin Core also has what they call RBF which increases the chance that a dishonest person can double spend an unconfirmed transaction exponentially. Makes 0-conf transactions unusable on Bitcoin Core.


The complaint about Ethereum's uncle rate seems a bit off base, since unlike Bitcoin, Ethereum's uncles aren't wasted; they contribute to its accumulated hash count, play a part in fork selection, and reward the miners who make them.


"...a Byzantine quorum system with 20 nodes would be more decentralized than Bitcoin or Ethereum with significantly fewer resource costs. Of course, the design of a quorum protocol that provides open participation, while fairly selecting 20 nodes to sequence transactions, is non-trivial."

That's exactly what the Stellar Consensus Protocol (SCP) is: https://www.stellar.org/papers/stellar-consensus-protocol.pd...

(Full disclosure: I work at Stellar)


Crypto has created the first large division I've seen in the software development community. "Open" has been a way to describe how money is not necessary except when you need it but never do if you have rich parents or are catering to old school investors. Crypto provides the first a way for things to be truly Open.


> "Open" has been a way to describe how money is not necessary except when you need it but never do if you have rich parents or are catering to old school investors

I do not understand this.


Money has always been viewed as a side-show, dog and pony, a circus if you're purist software engineer. 30 years in the Valley taught me this along with BBS protocols sharing and learning with my brethren. GNU also taught us this, the most remarkable software effort in existence. We have to be open to change and evolution of software.

One more thing: The guys that wrote this article should be be looking at how intersections of 2 arrays can be more efficiently calculated. This is the big one with the blockchain.


the big elephant in the room is that Bitcoin and Ethereum networks have good latency because the guy in rural Africa simply doesn't mine because he as no chance of making money, if people in remote regions with very bad connections entered the game the propagation time to 95% of the network would go to 60s or more.


A thought in the light of Spectre and meltdown, if we look at distributed computing as an ooo execution, couldn’t one trick someone to act, and therefore spill information about something they really shouldn’t or normally wouldn’t done, because of the “fake” branch being revoked?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: