This just isn't true. Yes, running your own blockchain node is infeasible, but a blockchain-based service with hosted nodes is better than a federated service.
Proof-of-work creates an illusion of dependence on blockchain miners. Proof-of-stake makes it clear that blockchains are run by a corporation that wants to maximize transaction fee revenue. Transaction validators have to do the best job of maintaining a unified historical record of all transactions for people to keep giving them business. Otherwise, users will choose different validators and carry on without them.
Blockchains are fancy spools of receipt paper. If the printer gets jammed, tear off the stuff you care about and staple it to a new spool. The printer doesn't control the people. The people employ the printer.
With that said, it's still unclear whether blockchains are the right choice for publishing. A decentralized Twitter doesn't need consensus on a historical record. An IPFS-based Twitter is probably a better way to start, then anchor the parts that need consensus on a blockchain, like usernames and timestamps.
> but a blockchain-based service with hosted nodes is better than a federated service
...and a federated service is better than a handful of silos controlling the network.
So if the blockchain is supported by the mining of many small miners, it's a decentralized dream. But if there are a handful of miners validating the majority of transactions, then it ends up smelling a lot like the handful of silos situation. Not exactly the same but very similar.
Miners cannot control your eyes. You can choose any record as your source of truth. If miners produce a good one, look at that one. If they produce a bad one, look somewhere else.
This sounds great but it is a dramatic misunderstanding of the real problem. Sure, you can personally decide you don't like a particular fork. However, the value of your position is not determined by you, it is determined by the community and their overall choice.
Bitcoin forking is dangerous. If it goes bad and the community becomes overly fragmented then everyone loses. The strength of a position in Bitcoin is a combination of many factors, but the most important ones are related to the size of the community, its relative stability as a crypto coin, and the relative ubiquity of it.
> Proof-of-work creates an illusion of dependence on blockchain miners.
How is proof-of-work's dependence on miners an illusion? Seems like a fundamental property of proof-of-work that it depends solely on the consensus of miners.
Miners only mine to gain more bitcoins. The market determines what bitcoins are. The market can decide to treat a different historical record with different rules as the ledger for bitcoins. This is much easier in proof-of-stake systems. You can't destroy a bad miner's mining equipment, but you can destroy a bad validator's deposit, which removes them from the system.
And how does this happen? By a consensus of miners?
If I, as an individual, were to find reason to distrust a entity who makes up the majority of mining transactions, how likely is it that I will be able to use the main blockchain ever again?
Yes, by a consensus of miners, or by users choosing a new set of miners. The "main blockchain" is not a decision of the miners. It's a decision of the people. If everyone agrees that current miners are behaving badly in a proof-of-stake system, they can just choose new miners.
OK, I'll bite, with a serious, practical question -- how would I do that this week?
Please assume that I have 100 BTC at a particular address or small set of addresses, and I don't like the Chinese mining consortia.
How do I actually move my value to a new chain that 1) excludes those mining consortia, 2) preserves my stored value, and 3) preserves my ability to transact with any other valid BTC address? How can I get this done by next week?
As I stated elsewhere, this is impractical for Bitcoin because the value of the currency would tank. For applications like the one in this article that use general purpose blockchains, forking is very practical.
OK, so the fork would accomplish goal #1, but not #2 or #3. I can have my own brand new BTCv2, but it has no value, unless I can get the majority of other BTC people to come over, and if a serious movement starts, the value on both chains tanks and needs to be rebuilt by trust, and the assumption that no one else tries the same thing.
Even when the point of the chain is not to store value, but just data, it seems that we're already losing the ability to track all the old data. Sure I extract a set of the stuff I want and carry on with the new fork, but no one else comes along, their data is lost, so they don't come along. If all I care about is a close network of friends, or perhaps an internal company data store, then fine, but how does one cleanly tear off a chunk of a network that looks like the graph of FB or Twitter? Am I missing something here?
If you have a good reason to switch blockchains, the developers of the clients users actually use should have a good reason to support the switch. If you can't convince people to change, you're stuck with the status quo. That's just a fact of life, not a flaw of blockchains.
> Sure I extract a set of the stuff I want and carry on with the new fork, but no one else comes along, their data is lost, so they don't come along.
That's not how it works. When you fork, you typically bring the entire history with you. It's the new data after the fork that causes problems. If people don't switch or publish to both, you're stuck.
I love it when people say this shit. Ok, I'll just go fork Bitcoin. Unless I'm not a programmer. And I sure hope that somebody else follows me into my fork. Only a group of major (powerful) market players will have the ability to threaten to fork. And even then, they probably won't, for the exact reason you stated: a fracture in the currency would kill people's confidence in the currency and tank its value.
The majority of participants in the Bitcoin network? Or the majority of its computing power?
This is a major worrying part about Bitcoin. Would it be really that difficult for a nation-state level player to buy enough capacity on the network to take it over?
> Proof-of-work creates an illusion of dependence on blockchain miners.
PoW depends on blockchain miners by definition and the Bitcoin experience shows that at the end you have a concentration of power.
> With that said, it's still unclear whether blockchains are the right choice for publishing.
It is very clear that blockchains ARE NOT the right choice for publishing, its limitations for that purpose are based on strong computer science principles on distributed systems, consensus and network speed.
Technological frontiers are no place for dogma. Sure, blockchains probably aren't a good choice for publishing, but a culture that constrains people's technology choices is incompatible with progress.
This is not dogma but computer science research, you need to find the right tools for the right problem.
BTW one of my companies is focused in blockchain, cryptocurrencies, etc and I can't believe the level of hype experienced there. For example, I read about the DAO Ethereum crowdsale but we experience serious technical issues with Ethereum that clash with that hype.
Your last point is important-- I think too many people in the distributed systems / decentralization community rush to block chain as the one hammer to pound every nail. It's not. It's a solution to a very specific set of consensus problems but outside that it's not the best thing.
What part isn't true, specifically? We are dependent on blockchain miners, because without them our transactions don't get accepted. Moreover we have a couple established big players that control the market and no clear way for them to get disrupted, save abandoning Bitcoin entirely.
Blockchains are much more than receipt paper. Receipt paper is a superfluous byproduct. The blockchain is the system of record.
One idea I had was if it is possible to somehow have all the miners "guessing" where the next block is going to be signed. A correct guess would net a bit of the transaction fee. Huge server farms concentrated in an area would therefore lose out, because everyone would guess that location.
The biggest difficulty would be accurately identifying where the signature came from, but with clever timing mechanisms, it might be possible given the latency of light. I haven't thought about it much, but maybe require the current time be included in what gets hashed. Anyone cheating by using a future time could be caught by looking for missing transactions in that time space.
"The Casper protocol is intended to offer stronger finality guarantees than proof of work. First, there is a standard definition of “total economic finality”: it takes place when 2/3 of all validators make maximum-odds bets that a given block or state will be finalized. This condition offers very strong incentives for validators to never try to collude to revert the block: once validators make such maximum-odds bets, in any blockchain where that block or state is not present, the validators lose their entire deposits. As Vlad Zamfir put it, imagine a version of proof of work where if you participate in a 51% attack your mining hardware burns down."
This is untrue: "Because blockchain is consensual, after a certain point of centralization, the rules of the system depend on very few users."
If a blockchain has rules that don't meet my needs, I can choose a different blockchain. If I adopt a blockchain that changes its rules to be undesirable, I can take the history I care about and move it to another blockchain.
This argument depends on proof-of-stake. Some people think proof-of-work blockchains are the only useful ones, but I disagree. It's also a boring debate to have, so I won't be doing that here.
You can fork the blockchain, sure. But unless the majority of users do so, as well, the resulting fork is useless if you actually want to be able to send and receive money.
Now, banks and such will be some of the biggest users; and your average Joe won't even understand what the problem is with trusting them with the blockchain. So... good luck with getting that consensus.
> If a blockchain has rules that don't meet my needs, I can choose a different blockchain.
Had this happened with Bitcoin? I think I heard there are some quite major disagreements (something about block sizes and stuff) and there are a lot of users that aren't happy. I don't remember hearing them just "well, whatever" and forking off.
Bitcoin is a special case because it's only really intended to be used as a ledger for bitcoins. Currencies are a collective delusion: they're valuable because other people think they are valuable. Any dispute over what the source of truth is for a currency's ledger strains that delusion, possibly to the breaking point. The value of the currency would suffer, which would defeat the purpose of a fork.
Ethereum is a general purpose blockchain. Forking it could hurt the value of ether, but for many applications, the value of ether doesn't matter. Moving a blockchain-based Twitter from one fork to another is relatively easy and consequence-free.
> Currencies are a collective delusion: they're valuable because other people think they are valuable.
This is not true of most currencies. Most currencies are valuable because governments force you to pay them on threat of imprisonment. Bitcoin does not have this feature and therefore, yes, it's hard to see what its fundamental value is.
> Moving a blockchain-based Twitter from one fork to another is relatively easy and consequence-free.
I'm not sure it's really consequence-free. It's essentially a netsplit, where the forking party lose connectivity with everyone who's left. Consider the case where Twitter (the centralized one) is suddenly falling apart over some issue into two distinct non-interoperating services. Technically - sure - it's a no-brainer, but socially it feels quite complicated to me.
(I guess, this would work if the app would be designed to use multiple blockchains. I need to give it some thought.)
Technical curiosity---if I use such a client, and two block chains disagree (on, say, some history that affects the current operation), then won't I end up choosing and sticking one?
Yep! At that point, the problem isn't a blockchain-specific one, it's a more general problem of reconciling conflicting truths. A common, trivial solution is to rank sources of truth.
What's the benefit of being 'completely decentralized', if the individual joining the network still needs to decide which network and set of rules to trust? Answer: none, you've just pushed the question of trust / centralization to that of choosing the particular fork you want to use.
"The alternative on which we can build a great new Internet era is projects like GNU social, Friendica, Hubzilla, Diaspora, and efforts to design common protocols like ActivityPub, not on the blockchain."
All the new federated social systems have failed, replaced by commercial, centralized systems. (IRC and email live on. Google thinks it owns Usenet, rebranded as "Google Groups", and a big chunk of email never passes through SMTP.) Why? We had a good discussion of this recently by the creator of WhatsApp(?). Centralized systems can be upgraded and enhanced. Federated systems require massive cooperation to change. And federated systems don't generate much revenue.
Besides, there's the convenience and ease of use aspect. Most of these federated services are not easy to use for the average newcomer or tech-illiterate user demographic, for example. And sometimes they're inconvenient.
Couldn't a federated system that looks like a centralized system work? What if something like Diaspora just installed itself on an AWS EC2 instance for you, and you only had to enter a credit card?
An EC2 instance is probably too much for one user. The model here is Wordpress, which is easy to install and widely used, even in its distributed form. Of course, what's happened is that more and more Wordpress sites run on centralized Wordpress.
Compare:
"wordpress.com" (hosted): "Create your new website for free. WordPress.com is the best place for your personal blog or business site. Create Website (button)"
"wordpress.org" (download): "The latest stable release of WordPress (Version 4.5.2) is available in two formats from the links to your right. If you have no idea what to do with this download, we recommend signing up with one of our web hosting partners that offers a one-click install of WordPress or getting a free account on WordPress.com."
Open source just doesn't get user-friendly onboarding.
Many (or perhaps even most?) web hosts will offer to install Wordpress for their customers, usually with some "Install Wordpress" option either at sign up or in the control panel. And I suppose these installations are configured with automatic upgrades, and are supported to some degree by the web host. Federated and open source doesn't mean that every end-user installs and maintains the software by themselves.
Compare setting up Docker and Wordpress to what Animats just said. Then you'll know why that's hilarious. You've managed to move the problem from one piece of software to another.
Is it as simple as filling out a form on the Internet, getting login credentials, and not thinking about it from there? That is automated and manages itself. What's the Docker + Wordpress version of that?
So, you don't have to install Docker, administer a server, do updates, back up data, and deal with ISP's over outages? I didnt realize Docker was that far along in zero management and maintenance. Send me a link so i can try that out.
i'm not a fan of "blockchain for everything", but stating that a distributed system is a danger for distribution, and favoring a decentralized, federated approach instead sounds like plainly wrong.
Imagine if BitTorrent, or Freenet/IPFS/GNUNet/etc. used a blockchain. They'd be completely infeasible for anyone except Google: you'd need petabytes of storage on your computer just to download a single movie (or a Linux ISO, or whatever).
But they don't do that. These systems are actually distributed, and that's why they work.
You're missing the point of what a blockchain is good at vs what it's not. Blockchains are good for assigning ownership. For networks which don't need to track ownership, of course you shouldn't use a blockchain. Bittorrent, Freenet, etc do not track ownership as infinite copies of something is not a problem, but a feature.
But for networks which do, you may want to. For example, only one person may control this name, this domain, this tradeable asset, etc.
Blockchains are an addon to distributed models because they allow a distributed way to prove ownership of something. Say I want to look someone up by name instead of by cryptographic hash, how do I do it? You can't register a name in a Freenet or Bittorrent model.
Beyond ownership, an important class of use cases is promises. Without blockchains, it's hard to determine how well a potential trade partner follows through on their promises without a third party that maintains a reputation history. With blockchains, people can provide cryptographically signed promises that give their trade partner the ability to publish their satisfaction or lack thereof. You can retrieve a complete reputation history without a middleman, which is a brand new thing.
People are using blockchains for too many things, but that's healthy. It's the only way we can find all the things they're useful for.
'Blockchain' is a meaningless buzzword at this point. The innovation of Bitcoin was proof of work and/or the calibrations involved in securing Bitcoin with energy.
When bitcoin became an unfundable space, the VC's and such moved into "Blockchain", which was marketed as the good parts of bitcoin, without the bad.
Unfortunately, the space has seemingly gone on to only emulate the worst parts of bitcoin. Scams, ignorance, and get rich quick schemes. Currently, "blockchain" appears to be targeting centralized, decentralized, mutable, immutable applications. The blockchain movement is meaningless, and appears to be merely the exhaust gas from the bitcoin funding hype.
'Blockchain' isn't a meaningless buzzword, it's a database protocol. Its market positioning aside, there's a very real value that immutable databases offer from both a technological and a commercial perspective.
The blockchain protocol isn't going to 'save the world' - but once a little air gets let out of the balloon, it's going to see a lot of adoption in both financial institutions and back offices in a wide, wide, range of industries. For a world with lots of data and lots of shady actors, it just makes sense.
I agree they make sense for some interbank and business transactions where you have counterparty risk, and it looks like several banks are interested in developing their own ledger with the Linux Foundation - https://www.hyperledger.org/.
But I wonder what would drive mass adoption for every day users - aside from a collapse of the current financial system.
For general public it doesn't really matter if AirBnb or Uber or Whatsapp are decentralised or not - we use them because they have reached a point through network effects where they have a ton of users/liquidity, are reliable and have smooth UX.
Also, I'm not sure storage issues are a solved problem for immutable decentralised databases.
Fast global microtransactions could be a useful consumer app but so far there is little need for those. And the UX for fiat->crypto->fiat transactions and wallets is far from what it needs to be for general public.
Blockchains won't save the world all on their own, but developers who believe our world is in peril because of avoidable issues of economic and social organization should definitely try to use blockchains to save the world. Blockchains are the raw material of social coordination. They can absolutely be used to solve social problems.
Overzealousness is unfashionable. Be unfashionable until you're convinced that you're actually wrong.
I agree that "blockchain" is essentially a database protocol for a special kind of database, but I'm fairly sure there's no standard, agreed-upon, single "blockchain protocol."
Bitcoin may be the best-known blockchain protocol, but there many others in active use.
You're entirely missing the point. Proof of work was old hat long before the bitcoin whitepaper was published. Bitcoin's innovation is using compounded proof of work to form a trustless immutable distributed database. Blockchain is the name of this particular data structure, not a buzzword.
Precisely. People imagine the entire data related to all aspects of a process executing on Blockchain, will be resident on the Blockchain.
On the contrary, it would be as lightweight as possible. And the transactions in a Block, could point to trusted Oracles outside the Blockchain. And usecase involving streaming content like Movies (the example given by GP) would definitely NOT have the content on the Blockchain.
Rather, just the urls to trusted oracles, in the txn. With the hash of the txn, present in the Merkle Tree in the Block, for verification purposes, so that other parties can quickly verify the block is not fraudulent or tampered with.
There seems to be a pretty big leap in logic from 'using a blockchain' to 'infeasible for anyone except google'. You do realize that an internationally roaming cell phone data plan can sync with the blockchain right?
Is $70 ludicrous because that is what T-Mobile's US plan with international roaming costs. They did that 2 years ago, I don't know what is available now.
Threat is poor word choice. If blockchains don't provide good distributed service, then they simply won't be used, in which case they aren't much a threat. Maybe author should have use the thesis that blockchains aren't the end-all-be-all of the distributed internet.
No, what the post is saying is that power will be consolidated among a very small number of very large players. The system won't be distributed but relatively centralized.
The TCP/IP Internet is also an engine of centralization. By limiting hop counts, and distributing addresses hierarchically, we end up with just a few giant players in each industry.
Proof-of-work creates an illusion of dependence on blockchain miners. Proof-of-stake makes it clear that blockchains are run by a corporation that wants to maximize transaction fee revenue. Transaction validators have to do the best job of maintaining a unified historical record of all transactions for people to keep giving them business. Otherwise, users will choose different validators and carry on without them.
Blockchains are fancy spools of receipt paper. If the printer gets jammed, tear off the stuff you care about and staple it to a new spool. The printer doesn't control the people. The people employ the printer.
With that said, it's still unclear whether blockchains are the right choice for publishing. A decentralized Twitter doesn't need consensus on a historical record. An IPFS-based Twitter is probably a better way to start, then anchor the parts that need consensus on a blockchain, like usernames and timestamps.