Hacker News new | comments | show | ask | jobs | submit login

"Decentralized systems" != Cryptocurrencies.

Email, BitTorrent, Git are all "decentralized systems" and they have nothing to do with finance and do not use blockchain tech.

I realize crypto is hot right now, but lets try to have some perspective.




Arguably, git is a blockchain, albeit one with a very weak (non-existant?) consensus model.


Git's consensus model is not weak or non-existant it's just not like Bitcoins.

Rather, in Git's version a single person or group decides what the truth is and everyone follows that (or forks). It's human/social consensus. It can be as strong or stronger than bitcoin since any issues or conflicts are resolved to satisfaction in meatspace.

Bitcoin Core and Bitcoin Cash are two forks of Bitcoin and nobody seems to be able to decide which is the proper one, people argue back and forth.

Meanwhile in the repositories of both chains, people happily submit changes and commit them under the watch of the lead developers who control and check what goes in, rejecting harmful or bad merge requests, etc.


There is kind of a consensus model: the fork with the most good work on it is the real one.

If you come across a forest of different forks of Ruby On Rails, you can identify the project's main master by looking for the longest sequence of commits by known project participants...


Looking at the name... blockchain or chain of blocks... or a queue in CompSci speak... is less complex than git. Git is a directed acyclic graph.


That kind of breaks down if you consider existing chains have forked. See Ethereum vs Ethereum Classic or Bitcoin vs Bitcoin Cash as examples.

Git, Bitcoin, Ethereum, and Certificate Transparency logs are all examples of merkle trees (and argubly blockchains).


This has been driving me up the wall for the last few months.

I'm building a P2P project and everyone keeps asking me when I'm going to integrate blockchain into it. To what end?!

Blockchain is a way of solving the double-spend problem with distributed consensus. That's all. It's not even necessarily the best way to do that. But because someone built a Ponzi scheme on top of it, it's entered the public consciousness and now anything without a server is a ~blockchain~ app.


Regarding the OP. Distributed systems can have much, much higher performance than centralized ones. BitTorrent is a good example: on a torrent with thousands of peers, it will literally eat up as much upstream and downstream bandwidth as you throw at it. If you had a big enough torrent it could take on a botnet for lunch.

More computers. More processing power. More bandwidth and storage. You just need to organize it effectively.

The reason Bitcoin and such are so slow is not because they're distributed systems. It's because transactions are propagated throughout the network in a flood fill, and there's a proof of work for each one. Bitcoin is inherently slow because of its design.

It's a first-generation product. There are serious academic efforts to build blockchains that can rival credit card processors in performance: https://www.businessinsider.com.au/australian-scientist-have...

There are a lot of problems with these efforts, but there's the possibility they'll work them out.

I don't think blockchain is revolutionary or fundamentally new technology. But it's launching distributed systems into the public space and that can only be a good thing.


True, Decentralized systems != Cryptocurrencies, but email, BitTorrent, and Git are different from what Bitcoin, Ethereum, and other blockchain system provide.

Blockchain-based systems allow storing a shared, verifiable state. Anybody has a chance (depending on mining resources) to make a decision regarding the next state change in the system by mining the next block, but this block will be rejected if the state change is invalid (e.g., in case of Bitcoin a transaction spends non-existing funds).

This is very different comparing to existing technologies that usually store state in a centralized place that is owned by a single company.

A benefit of full decentralization that is commonly mentioned is that this system is hard or even impossible to censor since even if a nation-state decides to stop transactions from a single actor, mining nodes in other countries will process these transactions fine.

Another benefit is that since all state changes are verified by every other node, it is impossible to perform invalid transaction changes. For example, a bank can reduce everyone's accounts by 5%, but Bitcoin network won't do this.

My questions are: how important these benefits are for practical purposes (mind that we are talking about public, permissionless blockchains here), and can we go away with faster but less centralized systems like NEO?


You are mixing things up. While it's true that Cryptocurrencies try to solve a different problem than BitTorrent, Git and Email neither of those applications rely on a single centralized server owned by a single company.

As for your question regarding practical purposes I think that a blockchain run by multiple banks or states can provide the same benefit for people as a fully decentralized system. I get that this is where censorship and control comes in but do you really want to live in a world where value can be moved around arbitrarily without regulation?

Also, while the blockchain itself is run decentralized the development is still somewhat centralized and most folks do not have the understanding or interest to investigate changes being made to the source that powers such blockchains.


> You are mixing things up. While it's true that Cryptocurrencies try to solve a different problem than BitTorrent, Git and Email neither of those applications rely on a single centralized server owned by a single company.

I don't thing we disagree here. I am just pointing out that blockchain/Bitcoin/Ethereum is different because it allows to main a shared, verifiable state, something that BitTorrent, Git and Email do not provide. An ability to have this shared state is the main selling point of blockhain based systems.


I would argue that git at its core solves the problem of handling a shared verifiable state. The history of a git repository is build on the same hashing principles as a blockchain to ensure that history cannot be changed. The main difference to a blockchain is that in order to change the state you have to convince other humans that your change is valid.

In my understanding the main selling point of blockchains is to outsource the accepting of state changes to a consensus protocol which does not involve human interaction/interference. And just as git a blockchain still works if only one or few actors are involved.


> In my understanding the main selling point of blockchains is to outsource the accepting of state changes to a consensus protocol which does not involve human interaction/interference. And just as git a blockchain still works if only one or few actors are involved.

Agree. git works for vaguely defined rules like "is this README readable, up to date, and useful" where human input is necessary.

Blockchains can be used to enforce clearly defined rules like rules of a smart contract or rules of spending virtual money.

So roughly speaking: git = blockchain - distributed_consensus + fork_merges


>This is very different comparing to existing technologies that usually store state in a centralized place that is owned by a single company.

That wouldn't be the case for Git though. With git every repository is authoritative. Github is merely were most people put their repos to be discovered and use it as a central source of truth (which is totally fine for what most people do)

You can also use a USB stick (did that in Uni when wifi was failing, it's quite fun)

You also don't need full decentralization as Mastodon shows. You only need enough that it becomes hard to single out a user and block only them or a group of users. In the fediverse there is basically no universally blocked instance, every instance federate with atleast some others.


Git is somewhat similar to blockchains, but the similarity is very loose. Bitcoin has a shared state and enforces strict rules of how it can updated. For example I can't spend non-existing funds in Bitcoin. Also all state transitions are checked by all full nodes in Bitcoin.

This is different to Git that allows to perform any changes to text files without imposing any restrictions or checks on what changes can be performed. The ability to have a shared, verifiable state that can only be changed according to predefined rules, can be checked by anyone, and, theoretically, cannot be censored is the main selling point of public blockchain based systems like Bitcoin and Ethereum.

The main question is how much of that do we really need in practice to solve actual, real-world problems.


Well, git has a lot of that too, atleast internally. Objects need to conform to git's internal format, otherwise the remote will reject it, similar to how Bitcoin only allows transactions if signed. (Git can sign too and with a hook it's enforceable)

The rest is fairly easy since you can enforce restriction with hooks that can do arbitrary edits and checks on the repository.

I imagine you can make git behave exactly like bitcoin with only a few simply hooks.

The main selling point of bitcoin is really only the "cannot be censored" part and that is a bit meh, tbh. The moment you need to use real cash to obtain it, the government can come, kick down your door and threaten you. Such things have happened in ISIS-controlled regions when people tried to buy bitcoin or otherwise get cash out of country.




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

Search: