Hacker News new | ask | show | jobs
by aphextron 3243 days ago
>The blockchain community is immature and historically unwelcoming.

>It feels like a get rich quick scheme - https://twitter.com/naval/status/878018839044161536

This is what it comes down to IMO. Anything cryptocurrency related is just surrounded by a cloud of shady characters and scammers, even though the tech is legit. You just can't trust anyone, nor their intentions. Living your life and working in a constant state of paranoia like that is awful.

10 comments

It's also surrounded by a ton of cargo cultism, poorly considered engineering, people who don't understand the math but claim to be gurus, and strange parasitic political views.

It's a frustrating community to engage with because it has redefined a lot of longstanding terms to (in my opinion) make itself look better and smarter. It also is a constant roiling tempest of non-self-reliant-but-fantastically-dedicated-to-anarcho-capitalists-type folks, which can be terribly tedious to deal with.

For example, ask a btc engineer if they have byzantine fault tolerance. Then ask anyone else. Ask them if they have eventual consistency. Then ask anyone else.

It's also surrounded by a ton of cargo cultism, poorly considered engineering, people who don't understand the math but claim to be gurus, and strange parasitic political views.

So it's just your typical programming sub-field? (Alan Kay would say: "Field.")

Pessimistically yes, but in my opinion its problems are magnified.

In part because bitcoin is a technology that so many people ascribe political superpowers to. This brings in a lot of people that normally don't push deeply into a high-complexity tech field.

Some would say that the "wisdom of the crowd" and startups are things that so many people ascribed special superpowers to, it brought in a lot of people that normally wouldn't push deeply into a high-complexity tech field.
That's cool, but how is it relevant?
It's relevant, in that the HN crowd should be reminded to be self skeptical about their own groupthink. (I know I'm preaching to the choir here.)
Even if the tech is "legit" it's encredibly inefficient. We're spewing off tons of CO2 just to verify the block chain, but we have plenty of technologies that can do the same with a minuscule amount of energy.

The problem is that they want a system that's trustless and that's simply not what most engineers care about. We want a system that's fast and efficient.

There are solutions to that though, like Proof of Stake. If distributed systems really cared about that, then that's exactly why they ought to be working on blockchains, to make them more efficient.
So, your argument is: "you say our thing sucks at X, but if you really think so, why aren't you trying to fix it?" Filling in the variables differently, we could construct an argument like "If civil engineers really cared about structural stability, then that's exactly why they ought to be working on my bridge made out of playing cards."

It's not their job to fix someone else's bad idea.

Cryptocurrencies aren't going away. Which means that if your primary motivation to not work on cryptocurrency is that it wastes energy, then there's a whole lot of room for you to be making it better, and that is a stupid motivation. I'm not saying that they are obligated to work on it because it wastes energy. But the comment I was responding to implied that distributed systems engineers didn't want to work on blockchains because they are wasteful - which is clearly illogical. That'd be like Elon Musk not working on electric cars because they're inefficient. Or Solar cells. Etc, etc..
No that's not illogical, Why would I work to bend something like block chain, that was designed to be inefficent, to my will when I can just start from scratch using projects that were designed to be efficient first? That's very logical, the kind of decision that an engineer that's getting paid the make the best distributed system for the least money would make.
It's not designed to be inefficient. It's designed to solve the distributed consensus problem in an adversarial environment. There are other now proposed mechanisms of doing that (e.g. PoS) that are quite efficient. Working on those would be extremely beneficial to the cause of environmental efficiency.
But the entire point is that it wastes energy. That's why it works. It isn't like a car that can be made more efficient and therefore better. The central premise is that we're going to waste energy to do something that can be done in other ways without wasting energy.
No, wasting energy is not why blockchain works. proof of work is just one way a blockchain can work. There are alternatives:

https://www.stellar.org/developers/guides/concepts/scp.html

disclosure: I work at stellar

The entire point is that it wastes something. Not specifically energy. The idea is that there is a sunk, unrecoverable cost associated with mining. That cost may be able to take other forms, though. In the case of proof-of-stake, that cost is the time-value of money.
In part because this is trodden ground for distributed systems engineers and we know that, on balance, the correct solutions all involve massive centralization.

You don't want that. So we're at a bit of an impasse.

Distributed systems these days mostly argue that you do your trusting up front, outside of the protocol itself. You then validate that the actors share the secrets you all agreed upon, and then optimize the agreement process. Only the most robust systems actually consider "active" dissent; most distributed systems engineers consider this a special case that is most often focused on the idea of "incorrectness" as opposed to "maliciousness."

You can see elements of these assumptions in more modern data structures used for eventual consistency, like CRDTs. CRDTs are amazing and fast and often abstract-able to a trivial programming model. Anyone can use them, but they have to be monotonic, so we can't ever forget bad input, just try and cancel it out.

In some cases you can forget bad input, though, can't you? It's a rather wasteful example, but if (like you say, having established trust beforehand) every element of a grow-only set is a signed message, you can reject any messages that don't validate against their signature when merging. On one hand, this breaks idempotence. On the other, if we regard that set as a subset of the set of validly signed messages, it could not have been there in the first place, so to speak, so I wouldn't immediately think it breaks any guarantees. As far as I can tell, any properly functioning machine will only ever see correct state this way, unless it receives some state and doesn't merge it with anything, for example when initially starting to participate. However, that's easily fixed by always having some state, for example by starting with the empty set in this case.
> you can reject any messages that don't validate against their signature when merging.

That's not really what I meant by "bad". I meant bad as in intent, not structural and immediately verifiable message integrity.

If all entities in the coalescing set can independently verify that a message does not meet its signature requirements, it will be rejected and idempotence is maintained.

If ONE member is somehow deceived about key validity it'll propagate the message into every other member's state, eventually.

Most of the bitcoin researchers have thoroughly convinced themselves that Proof of Stake is not achievable with acceptable levels of security, and for good reason. The reason you don't see more active research on Proof-of-Stake is that it is thought to only lead to dead ends.
Tezos will use Proof of Stake. They have a development version working now and there is good reason to expect a production version within a year.
The Ethereum team is serious about proof of stake.
Ethereum has not shown a particularly strong track record when it comes to security, so I think the comment stands until they address that or get replaced by the next hotness.
I think that statement is a little disingenuous. There haven't been any attacks that target Etherium proper, only bugs in smart contracts riding on top of Eth.
I believe it's not core Ethereum that has issues, it's buggy smart contracts. They don't make it particularly difficult to write insecure contracts, though.
Ethereum actually has a better security track record than Bitcoin does [1]. It's the contracts on top of Ethereum that are the problem. Calling those incidents Ethereum security problems is like calling a Windows 0day an Intel security problem.

1. https://en.bitcoin.it/wiki/Value_overflow_incident

Doesn't blockchain verification depend on a certain amount of inefficiency? Isn't that what makes forgery difficult?
That's a bit of a mistake. It doesn't rely on inefficiency it relies on economic costs. At the moment, hashing is a form of economic sunk cost. If you invest in hashpower, you can't split it without reducing your probability of success. It's an unforgable economic burden. Proof of stake architectures attempt to do the same thing with the currency of the network itself. There are lots of arguments about whether or not this is truly secure - but anyone on here telling you they know it's not is pretty much an idiot. There are tons of proof of stake coins operating successfully right now. There are no known attacks on these coins that allow you to do anything untoward (if there were, they'd be exploited on one of the many existing PoS coins).
That correct and why PoS probably will not be secure anytime soon.
No serious blockchain relies on proof-of-work. Bitcoin (being forked now) doesn't and ethereum (already forked twice) definitely doesn't.

Blockchains are a social construct and what ultimately protects them are the participants. Exactly like actual currencies they are subject to market forces; people either believe in and want the currency or they don't. It's this confidence that gives the currency strength.

More simply:

"On medium to long time scales, humans are quite good at consensus. Even if an adversary had access to unlimited hashing power, and came out with a 51% attack of any major blockchain that reverted even the last month of history, convincing the community that this chain is legitimate is much harder than just outrunning the main chain’s hashpower. They would need to subvert block explorers, every trusted member in the community, the New York Times, archive.org, and many other sources on the internet; all in all, convincing the world that the new attack chain is the one that came first in the information technology-dense 21st century is about as hard as convincing the world that the US moon landings never happened. These social considerations are what ultimately protect any blockchain in the long term, regardless of whether or not the blockchain’s community admits it (note that Bitcoin Core does admit this primacy of the social layer)." [1]

[1] https://medium.com/@VitalikButerin/a-proof-of-stake-design-p...

The subtlety here is making the distinction between confidence and resistance to attack. They're not the same thing at all. And what's interesting here is that, going off the model of real currencies, one could assume market forces will prevail here. Developed nations let their currencies float precisely because on the whole they're confident that the market will ultimately punish any malicious attacker who attempts to destroy the currency by selling large amounts of it.

Just because people care about efficiency doesn't mean they ought to work on something that lacks it.
I think that's exactly what it means. If you want to help the environment right now, what field should you be in? Energy generation, storage, or consumption.
There's a lot of work on non-mining private blockchains that you're ignoring.
Forgive me if I'm wrong, but isn't this why LiteCoin was created by a Google Engineer?

Does it solve the problem? Or did it just make a step in the right direction?

LiteCoin's proof of work is memory hard so it's harder to create an asic.

A hard proof of work algorithm is required for decentralized coin chains to work. Otherwise it would be easy to create a denial of service attack by rogue agents filling up your blockchain with worthless blocks.

It's worth noting that the qualification should be "easier." But the POW is only one side of the DoS problem bitcoin's model can be forced to experience.

By carefully attacking the network links between miners, someone can significantly extend the amount of time that an attack can take place in. These attacks are expensive, but orthogonal to any PoW algorithm.

Then the problem transforms into: "can I trigger enough small pluralities of miners to split and form opposing but equally long viewpoints?" The only resolution to such a scenairo is to discard most of the divergent blockchains arbitrarily by human consensus.

No Litecoin is not significantly different from Bitcoin in that regard.
Most mining is hydro powered.
Actually, Bitmain's building with 75% of mining capacity appears to run on wind and solar.

https://bitcoinmagazine.com/articles/bitmain-reveals-plans-f...

(was planned then, I believe it's in service now)

Please cite your sources.

Beyond this: https://www.coindesk.com/carbon-footprint-bitcoin/

Which is sort of unvalidated and points to one or two actors in the space suggesting that they want to move to non-fossil fuels and one that miiiiight be.

Not the parent commentor, but this is certainly true to some degree. To what extent is very hard to say, but China has built several large hydroelectric projects in remote areas where electricity is very inexpensive. Many miners have taken advantage of this.

http://technode.com/2017/02/27/bitcoin-mining-sichuan-cheap-... https://www.washingtonpost.com/world/asia_pacific/in-chinas-...

Of course, there is also cheap coal power in China, so the environmental impact may be very significant.

Going forward, I anticipate the rise of solar mining in some favorable areas. Possibly geothermal as well. Since Bitcoin mining can be done anywhere with decent internet access, it seems natural that it should gravitate toward renewables over time. Fossil fuels continue to get more expensive, while renewables get cheaper. Of course, building e.g. solar panels isn't without environmental impact, either.

> The blockchain community is immature and historically unwelcoming.

I can't disagree too much about the immaturity, but you don't see too much more of that in the deeper technical circles than you might see on the Linux mailing list. Room for improvement? Plenty. But it's also not grossly out of line as long as you are in the right places.

The 'unwelcoming' bit though is more justified. Blockchain design is like cryptography - security is very important, and one tiny mistake means that your design is completely unviable. And if that tiny mistake occurred early in your design process, it may be too deep to be easily routed around.

Designing secure blockchains is very hard. As a result, the first year or so you try to improve on blockchain systems you usually end up with a bunch of broken stuff that nobody appreciates at all. The same is true if you are trying to make a better hashing algorithm, or doing quantum resistant cryptography. Except with blockchains people haven't learned to expect it to be this difficult to innovate yet, so it feels a lot more hostile.

That will fix with time. As more things blow up in production, people are realizing more and more that blockchains are tricky, and that good designs take a lot of expertise, a lot of collaboration, and are very rare. That will make it seem less unwelcoming when your intro to blockchains is 'well, this thing you are proposing doesn't work for at least 10 reasons, and here they are...'

Anything that's related to profits and democratized will attract all kinds of characters. Democratization lowers the barrier and profits provide the incentive. The choice to corner cryptocurrencies and choose to see the shady characters in this combination is an artificial one based on what you can and choose to "see". The same shady characters are in finance, fund raising, and perhaps around your desk. They may be less obvious or you may be more tolerant towards the corporate backstabber, but they're still there.
I guess it's not surprising that untrustworthy people would flock to technologies that eliminate the need for trust.
It's not necessarily the people who can benefit from a trustless network that cloud the ecosystem, it's shady people who want in on the hype solely to make money and apply blockchain to every conceivable use case just for the sake of applying blockchain. It's the kind of people who are an expert on fintech, blockchain, AI/machine learning and IoT all at the same time and seem to use the terms interchangeably.
Anonymous and irreversible transactions help too.
That's not true for all companies. Take Ripple or Coinbase, for example. Both have worked from the beginning to be legit. Ripple's various technologies (including their currency) are being adopted by banks across the world. And Coinbase has worked with the Feds from the beginning to make sure they were complying with regulations. Granted there are a lot of bad actors in crypto, but there are good ones, too.
I've spent a decent amount of time understanding blockchain at this point. Am I wrong in saying that it's really just a data structure for solving a problem (like a tree or array), but a lot of the hype seems to be people trying to find commercial applications to use the specific data structure? I mean, no one says 'lets go find a good use for an array,' you sort of pick the array after you have an idea
It's an approach to solving a problem that allows problems to be solved in totally new ways. I think it's understandable to be on a search for opportunities to apply it.

The problem it seems to me is that, although the idea of trustless systems seem really cool and applicable to a lot of domains, it turns out that there are actually way fewer useful applications than people originally thought. But no one is letting go, and a lot of people are wrongly convincing themselves and others that most systems are better off trustless.

Yes the blockchain is just a data structure. A fancy tree. The more interesting part of cryptocurrencies are the dynamic membership multiparty signature schemes they implement, but those don't make for as nice of soundbites.
> You just can't trust anyone

Isn't that one of the reasons blockchain came to existence?

I know you aren't using that in the same context, it just sounded funny in my head :)

The tech is legit for its application - but for many other purposes its very much not. It's being thrown around as a buzzword.
This is true of any new burgeoning technology. Were you around for the Internet boom in the 90s?
I keep hearing this is like the internet from 30 years ago. Thirty years ago, there was no good way to do ecommerce or send an email. Today, there is a good way to pay for things and do all financial transactions in a simple low hastle way. The internet was sending instant, asyncronious communication vs letters (async) or phone (instant). Bitcoin is creating phone calls and post mail in the email age and using a metal envelope as an upgrade.

Yeah I sent my first emails to a system that connected to neighboring systems via modem at a pre determined time to ftp mail bundles around.

I was talking about how scam artists flocked to the internet with pyramid schemes, chain emails, get rich quick schemes, etc. All that stuff is still here, but it's drowned out by people doing actual normal business now.