Isn't this also its biggest drawback? If every node has equal say we need to have additional complicated logic to ensure consensus, while in a centralized system we do not need to this, since a centralized system is a source of truth and the only writer?
The same logic applies to less decentralized systems like NEO that have a predefined set of voting nodes. Less nodes, means that we need less effort to achieve consensus, hence higher performance.
So the question is: in what use cases truly decentralized systems cannot be replaced with not so decentralized systems?
Precisely, centralization provides a simple architecture for the system.
However, since all the power is concentrated to one "source of truth", it can lead to unfair decisions for the rest of the network.
Decentralized systems are ideal went you want to ensure there's fair decisions for the whole network. It's much more complicated to build, but worth it in some cases eg; crypto currencies, governments etc.
Also it's not strictly a black and white categorization, systems can have levels of decentralization; eg: the internet
> However, in reality centralisation is harder to scale, due to the bottle necks on the central parts of the system. Decentralisation can be theoretical easier to scale, as bottlenecks don't occur as easily.
There is a difference between "distributed" and "decentralized". Uber, Amazon.com, Booking.com are distributed applications that can process a tremendous amount of transactions per second. At the same time, Amazon.com is owned by a single organization that controls data, hardware and makes all the decisions.
On the other hand, Bitcoin/Ethereum are decentralized: there is no single actor that is performing all state changes.
> Can some of you give me the run down on the benefits of centralization?
At the moment the benefits are pretty clear. Centralized systems like YouTube, Google, Airbnb, Uber, Spotify, Amazon.com, and many others simply work. They scale fantastically, have low latency, provide good service and satisfy actual customers needs. Yes, they are not perfect, but nothing in the world is perfect.
I think it is not a crazy assumption that a centralized system will always have a higher performance than a decentralized one. It also may be a fair assumption that developing a centralized application is easier than a decentralized one.
On the other hand, fully decentralized applications do not work at the moment. I don't know a single decentralized work that can work on anything close to Amazon or Airbnb scale. While blockchain implementations can theoretically scale, do we need to stampede to have all our apps decentralized? If Booking.com works in a centralized fashion will a decentralized version be significantly better from a customer's perspective? Will decentralized system address some actual significant pain points?
Also, we have somewhat decentralized systems like Ripple and NEO that at least theoretically should give both the benefits of decentralization and high performance. Why are these systems not sufficient for practical purposes?
> With regard to currency, I imagine BitCoin is better than the currencies of some governments. I don't think it's better than US currency, by a long shot. US currency has flaws, but I don't see that BitCoin actually addresses them
Out of curiosity why do you think Bitcoin won't replace USD? What flaws should a new system address?
> Email is decentralized, heck even http is decentralized.
I'll quote my answer to the similar from this thread:
"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)."
I think that HTTP is not a good example. While no one controls all HTTP endpoint, organizations that use HTTP are centralized. E.g., when you want to book a taxi using Uber, the company that provides a service store all the data, facilitates transactions, and the state of the system. This is different from decentralized apps on Ethereum network where a state change can be performed by any mining node.
The question here is: do we need to have an "Uber on a blockchain" and if we need it, do we need it to be on a public fully decentralized blockchain?
> However, look at bit-torrent and it can exceed what centralized hosting can provide.
Agree, but I don't know any commercial organization that is using bit-torrent to serve files. Most companies use S3-like services and to my knowledge bit-torrent is only used to share content by non-profit organizations (e.g., Linux distro on a bit-torrent) or pirates.
> The decentralized approach to this is to announce the sale on the network/market and pick the best offer
It seems that we already have similar marketplaces implemented in a centralized fashion, e.g., Nasdaq. It allows to perform price discovery and does not force you to see to a specific party.
Do we really need to build a decentralized marketplace?
Centralized marketplaces / price comparison services / middle men etc exist and do a good job
But very often they can't do the optimal prices or all the inventory - eg stock not listed on nasdaq - so it comes down to "are you able to move quickly/cheaply" (and/or is the inventory able to move quickly/cheaply)
Are there any reasons why a centralized marketplace are worth in price discovery?
> eg stock not listed on nasdaq
I guess if a stock is not listed on Nasdaq it either listed somewhere else or there are some (probably reasonable) legal restrictions that prevent it from being listed.
Electricity marketplace is a good example and is commonly mentioned as a killer-app for blockchain technologies. But what technology would you use to implement this marketplace?
Would you use a public, permissionless blockchain like Ethereum or should we use a private blockchain? There are private blockchains like JP Morgan Quorum (https://github.com/jpmorganchase/quorum) that is based on Ethereum software and allows to have >10K transactions per second. These private blockchains use different consensus methods that are much less decentralized than public Ethereum, all participants are known, and access to the network is restricted.
Would a private blockchain be a better fit in this case?
If you would a public blockchain, could you elaborate why?
for anything that aims to be the definitive market for an asset it would try to make it (as) public (as possible/useful).
the technical details (eg performance) is almost it's own discussion imo - there are people who are better experienced/educated to answer it fully qualified.
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.
The same logic applies to less decentralized systems like NEO that have a predefined set of voting nodes. Less nodes, means that we need less effort to achieve consensus, hence higher performance.
So the question is: in what use cases truly decentralized systems cannot be replaced with not so decentralized systems?