Ask HN: When is federation a better solution than decentralization?

121 points by chatmasta ↗ HN
The past couple years have been dominated by the hype cycle of cryptocurrencies as an incentive mechanism for decentralization. Hundreds of “N sided marketplace” problems have been reframed to fit within decentralized solutions. And yet, none of them have really succeeded. There is no “killer app” representing the decentralized marketplace du-jour.

I can’t help but wonder if many of these projects are approaching the solution the wrong way. The fundamental problem underpinning decentralization is one of governance and direction. Too many cooks in the kitchen means solutions can become diluted with unnecessarily indirect incentive mechanisms.

Decentralization is a spectrum. There is a middle ground between a decentralized solution and a centralized solution. That middle ground is federation.

To me, federation has always seemed a better solution for decentralized marketplaces than full decentralization, because it decouples economic incentives from those of technology suppliers. As long as we live in a world where fiat currency and nation states dominate transactional and regulatory environments, it is unavoidable that any large enterprise pursuing legitimacy will need to interact within the bounds of laws and regulations. Given that, it seems that federation offers a better solution than decentralization because it allows service operators to define their own economic processes according to their own jurisdictions and regulations, whereas decentralization is more of a free-for-all that can meet only the lowest common denominator of regulatory and economic restrictions.

What does HN think? Is decentralization overhyped? Would many projects be better suited to a hybrid model of decentralized infrastructure and federated transactions?

81 comments

[ 0.25 ms ] story [ 188 ms ] thread
When you need to bridge to any real-world asset
Decentralized infrastructure with federated transactions describes many successful technologies such as email.

I think federation is just a design tool meant to solve a specific problem, much like decentralization, programming language choice, data structures, etc are more concrete software engineering ones.

Certificate authorities seems to follow the same pattern.

I wonder if we might see a crytocurrency someday follow that same pattern: the chain is decentralized and public, but the miners are each replaced by authorities that a user can choose to accept (or not). The downside to this would be disagreements over who actually owns what. You'd only be able to make a transaction if both the buyer and seller agree on who owns the currency being exchanged.

At least then we wouldn't have the insanity of "whoever uses the most electricity is right".

There are many chains like this
Really? Do tell, I'm quite interested!
Those "authorities" could still be expending energy, be it marketing dollars or actual compute time, to jockey to be "the authority" trusted by users, though.
Email is a relic of an old era and isn’t a very good example. It wouldn’t catch on if it emerged just now. More and more modern email clients starts to add things on top of the protocol turning their apps into walled gardens (Polymail, Spark, Gmail too actually). Not because they’re evil, because it’s impossible for some players to update the protocol itself.
That strikes me as a selling feature, not a problem. Everyone can talk to each other over email, but the choice of provider is still meaningful and you can pick one that suits your needs.
I will say it: Decentralization has definitely been overhyped by certain fringes - that doesn't mean throw the baby out with the bath water, though.

The cry to “decentralize all the things” does include moving things incrementally from single choke point to multiple choke points to multiple choke points working together with a byzantium consensus mechanism to a truly decentralized model without a single point of failure. Many projects are better suited to a hybrid model at this point in time by virtue of what is technologically feasible, as well. Example problem people still butt heads with in "decentralization": nothing at stake for PoS.

Lots of food for thought when tackling this - thanks for raising the important question in this hype cycle.

If everything started to use blockchains then we could all be decentralized by 2035.
What do you feel about this statement/observation: If everyone started to use hybrids then we could all be in electric cars by 2035.
Truth just for the fact most people buy a new vehicle every 10 years or so mattering different things. Plus I hear in certain places they getting rid of the gasoline so people will be more in a rush to purchase something running electricity sooner then later.
If by "decentralized" you mean the 10% of us who wouldn't starve during the first month would be running around the ruins of our civilization with spears, hunting animals and each other, day in, day out.

We couldn't survive the loss of efficiency that would happen if "everything started to use blockchains".

I agree with you on that hybrid would be a more sustainable solution.

I want to highlight a technical perspective. That’s the scalability issue of Blockchain. Fully decentralization cannot afford scalability, just as we cannot afford referendum on every polical proposal.

In fact, many technical solutions to scale the Blockchain are using the same principle of your idea of federation.

> That’s the scalability issue of Blockchain. Fully decentralization cannot afford scalability, just as we cannot afford referendum on every polical proposal.

What you're talking about here is decentralized consensus, which is very different than just decentralization. Regular old decentralization -- a la Secure Scuttlebutt -- has no such scaling issues.

> just as we cannot afford referendum on every polical proposal

OT: I think it's about time to end this myth. We have the internetz for a few decades and voting machines (supposedly to make it all simpler) yet somehow direct democracy is impossible and we "need" the democracy as done in the 19th century just because ... well, because no single government is willing to give power back.

Is it possible to have a referendum on every political proposal? Yes.

Is it done? No.

Just to be clear:

We don't need a referendum on every issue, we just need a way to

- change your representative every week or so

- override your representative's vote within a given time window

> just as we cannot afford referendum on every polical proposal.

Part of me wonders whether this would be a good thing. I mean, the best political systems are those where things are difficult to change on purpose, like how in the US the constitution is virtually impossible to change without overwhelming agreement from most involved.

In that sense, having referendums be required on a lot of political proposals may well help kill lobbying, as well as downplay the effects of knee jerk reactions and 'think of the children' style pearl clutching. Require a majority, and well, a lot of things like copyright extensions simply can't get off the ground at all.

About federation in particular: Moxie wrote about why Signal is unfederated a little while back: https://signal.org/blog/the-ecosystem-is-moving/

It has some interesting insights into when federation works and when it doesn’t.

“Nothing about any of the protocols we’ve developed requires centralization; it’s entirely possible to build a federated Signal Protocol-based messenger, but I no longer believe that it is possible to build a competitive federated messenger at all.”

Yeah, but moxie is mostly wrong. He's only seen worst-case scenarios and assumes everything is lile that, so he builds his centralized stuff instead.

You can easily move forward with a federated protocol as well if you've got cooperating people, guarantee only 6 months of support for a protocol version, and have a versioning and feature flag system.

Hell in one project I contribute to we've kept protocol compatibility since 2009, we've got mamy third party clients, everyone hosts their own server — and still we can introduce new features without breakage in a matter of days (at least into beta, QA and translation take a while).

If he's wrong and it's easy, why can no one do it? Why did Slack overrun IRC? XMPP left by the wayside by Google and Facebook? Because it isn't easy, and users will always value the experience over compatibility and principal.
Marketing, marketing, and amount of money that goes into that development.

Give me a few thousand developers, a multi billion dollar ad budget, and the ability to signup every facebook user on the planet to my messaging service, and I'll also win against XMPP. In fact, with those resources carrier pidgeons would've won against XMPP.

This doesn't explain why IRC can't compete with Slack or the other corporate messaging services.

Slack was a side project by a failing game company. Its growth was largely organic.

I think the original premise is right that user experience is more important than ethics or philosophy or whatever the heck it is we're talking about when federations come up

IRC didn't by even have anyone trying to improve stuff until the IRCv3 WG came along, and now we're seeing massive innovation and adoption in short timeframes.
(comment deleted)
But the fact that nobody was working on it is also part of the same discussion: non-centralized services haven't had clear ways to incentive the time investment to develop them. The community and respect of working on open source has worked well enough for some developers to create and keep these projects sputtering along, but it never worked for the designers and product vision folks. One of the promises of blockchain-based decentralized projects is that they may be able to incentive their contributors by cutting them in on the potential success of the project. It remains to be seen whether that's workable, but it's an interesting idea.
Yes, this is a massive reason where donations of some form can be useful.

And it's the real issue — not enough people contributing.

But the point is: that hasn't worked. We've had plenty of time now to see that that model does not work very well. I'm at least somewhat of a blockchain skeptic, but what I do like about it is that it isn't just trying to solve this problem in a way that we know doesn't work very well; it's trying to find a new answer that might work better.
> Why did Slack overrun IRC?

Hm ... does IRC count as federated?

> XMPP left by the wayside by Google and Facebook?

Google and Facebook want to lock you into their ecosystem, that's why they dropped federation.

The counterexample here would be Mastodon, which I believe now has more users than IRC and seems to be growing quite healthily. (And, AFAIK, isn't funded by any megacorps; it's actual grassroots FOSS.)

When it comes to social media software, people care about two tightly-coupled things: if the people they need to talk to can be reached with it, and if the UX is good. (People abandoned IRC because its UX, which was never good, degraded to unusability in a multi-device not-always-online embedded-media world.)

But there's nothing about federation that inherently requires bad UX. But federation generally means open-source (because there's no market pressure for interoperability), and open-source means bad UX. Mastodon owes 80% of its success to having been principally developed by somebody who knows how to make a goddamned webpage. The other 20% is that it's pretty easy to host.

I think the really interesting takeaway is that the giants only don't support interoperability because they have a monopoly on good UX. If something highly usable and open-source appeared in the chat space and started gaining serious traction, the enterprise players would have to entertain the notion of playing ball and supporting the protocol – and if one of them did it, the rest would follow.

One thing I think some people got it wrong: Decentralization is not a feature, it's a method.

(Most) Users won't care whether or not they are using something decentralized, they only care what they can achievement with that software/service. Is it doing better than others on the market?

Back to the topic, about why Slack defeated IRC & XMPP: A product -- whether or not it's a online service or a hardware -- needs to keep up with the world. For example: If one day, people started to sharing photos and videos and voices during their online chat session, and your software can't keep up with that, then you will likely loose those people soon enough.

Currently, centralized software made upgrading very easy. You have all the control you need to force users to upgrade to your newer and richer client. While in the decentralized world, you may need to beg somebody to upgrade their server to support the newer version of your client (Due to that, you may not dare to upgrade your product that often).

Also, decentralized software usually hard to develop, while harder to generate enough revenue to be commercialized or be profitable. When clever people needs to survive, they will save the trouble and feed themselves (make money) first.

I'm not saying work on something decentralized is a bad idea though, we need decentralized service in today's very centralized world for sure. But make sure you can deliver the same level of experience (or be better) of your centralized competitors, then maybe people will start to use it.

> Users won't care whether or not they are using something decentralized

This is a good point, and it is demonstrably the case even among cryptocurrency users who have a coinbase wallet. Coinbase is not decentralized, and for a lot of users this is actually a nice feature because you can transfer BTC balance from one coinbase user to another without incurring any miner fee or waiting a long time for confirmations.

If most people who wanted to use bitcoin actually cared about decentralization, coinbase (and other similar services) would have virtually no users.

> If most people who wanted to use bitcoin actually cared about decentralization, coinbase (and other similar services) would have virtually no users.

Or maybe Bitcoin isn't good enough just yet (e.g. Lightning)?

And how many consumer users does that project have? Federated clients lost.
So you're saying that the only reason Facebook messenger with thousands of deva and a multi billion ad budget won against XMPP was that XMPP was federated?

No. The reason federated clients lost was that mega corporations can't make profit with em, and so they spent billions on their own tech.

This isn't david vs goliath, this is david vs a nuclear aircraft carrier

The worst cases are the only ones that actually matter.

If you can demonstrate your stuff still works in the worst case, then when the worst case does actually happen, your staff is the only thing that will still be working when everything else goes down the tubes.

All of computer science is predicated on worst case analysis for a very, very good reason.

Decentralization is when you need to hide something. Torrent, etc.

Decentralization did not work for Napster.

Decentralization is not a magical trick.

Money, specialy when he come to your retirement are better centralized. Because it's for your own security, gouvernement to don't let you starve.

Decentralization for money only mean, no security, no rules, nothing. Like a punk anarchy.

Check out Curtis Yarvin's work on this, he problably solved it in an interesting way with how he's configured the current Urbit node system.
Urbit is interesting for me in how I first couldn't understand its purpose at all. Since then, I have had several cases of pondering on some difficult problem, only to find myself thinking, "...isn't this what Urbit is attempting to be a (partial) solution to?"
Decentralize does work when state doesn't matter. Look at tor for a example. When state matters federation is a better match such as emails. The real problem with executing decentralize/federate is it runs on the backbones of a centralized design network. IPv6 helps with that problem, but still at the end of the day dealing with all the complexity, headaches, and unknowns it is more simple to build a centralize solution then spend the extra time and effort for a federated/decentralize solution.
"The real problem with executing decentralize/federate is it runs on the backbones of a centralized design network."

This is the crux of the current landscape exactly.

>Look at tor for a example

Is tor not a federation of onion routers?

I think you're looking in the right direction - governance.

The problems of governance are real. There's a libertarian tendency to just try to define them away, but this underestimates the extent to which abuse questions are important and how a few bad actors can overwhelm a distributed system, requiring considerable dedicated central effort to fight. USENET had its cancels ( http://wiki.killfile.org/projects/usenet/faqs/cancel/ , mostly sent by a small group of spam fighters), email had to build centralised DNS blocklists to remain usable.

And as you say, there needs to be a legitimate front organisation to interact with the regulators. Perhaps more than one, to cope with geographically distinct regulations. Or offer people an escape from their local systems of control (until you're blocked at the national level).

To me it seems that the nonprofit/co-operative model is under-explored for this.

A lot of the old Internet that people look back on fondly relied on what I call "Postel decentralisation": people think it was decentralised, but in fact it was managed by hand by John Postel back when he was IANA.

Similarly Linux has "Linus decentralisation": there's an elaborate decentralised version control system, but nonetheless Linus has effective final veto in practice. And Etherum has "Vitalik decentralisation": disasters such as the DAO can be reversed by code changes, because even if the blockchain is immutable the code required to interpret it isn't.

> Similarly Linux has "Linus decentralisation": there's an elaborate decentralised version control system, but nonetheless Linus has effective final veto in practice. And Etherum has "Vitalik decentralisation": disasters such as the DAO can be reversed by code changes, because even if the blockchain is immutable the code required to interpret it isn't.

There is nothing but "sheep mentality" preventing most people from (hard) forking.

Don't like what Ethereum did with the DAO incident? Don't patch. See https://ethereumclassic.github.io/

Don't like what Linus did (not) merge? Fork the project, and patch it like you want. See https://grsecurity.net/features.php

Well, yes, except that unless you get a critical mass of people that agree with you, you lose all compatibility. Nobody will buy your Ether-fork and while your Linux fork might work, it’s all yours to maintain from that moment on. There is value in standardization, even if the standards aren’t perfect.
I've thought a lot about this recently so I'll share my 2c

First some semantics; I use decentralization as a term that applies to both distributed and federated systems. That way the aggregate term 'decentralization' contrasts centralisation properly.

Centralized systems usually work quite well until they reach a certain scale. At what scale centralized systems start breaking down is an interesting question that depends on some variables like the underlying information technology and the cultural assumptions of actors.

Federation is a pretty simple way of solving this problem if you can somehow figure out when and how to split up the centralized system and an interface for the various central nodes to communicate.

Distribution is like anarchism, a laudable goal, but each participant must be capable of independence which may be unrealistically optimistic. Having hierarchies as actors in a network seems more realistic if we can just figure out a way to keep those hierarchies bounded.

For example I think the world would be a better place if we had put into place laws early on in capitalism that would limit how many employees a company could have to some smallish amount like 25 - 100, that way the emphasis would have been on the cooperation of small hierarchies ( = individuals in our current system). Many large companies look like this internally but the teams are not autonomous to the extent of being allowed to move across company borders.

A couple of other observations with the max employee idea: nepotism wouldn't happen (wasting a whole slot in the company on someone useless would breed resentment) and tribes would form (loyalty to your tribe and learning to work together would be paramount).

What I'm leading up to here is that ideally the issue of federation vs distribution would be handled culturally. We could have a network like maidsafe or some ethereum based idea to reach distribution automagically but I tend to think something like a activitypub based social network with lots of different social interfaces (tinder, couchsurfing, instagram, language exchange, facebook groups for different interests, microblogging - only one already implemented, second hand shopping/selling and others) then you'd subscribe to a server that'd fit your niche and someone would be able to make a job out of serving a certain community. Basically letting people decide where they outsource their server needs to instead of trying to make the jump to personal servers in one go (a la urbit). Over generations server hosting would become a family thing probably? It seems natural, we'd essentially be back to square one where your family is your social bedrock.

I'm just flow-of-consciousnessing here so a massive grain of salt please but the overarching point is that distribution vs federation is more political than technical in my opinion.

Not much to add, but wanted to say you've given me a lot to think about — thanks.
> For example I think the world would be a better place if we had put into place laws early on in capitalism that would limit how many employees a company could have to some smallish amount like 25 - 100

Most likely you'd see a very stagnant economy suffering from very high transaction costs. The interesting thing is what happens when transaction costs are reduced via regulation. Most jobs are strangely (probably deliberately) bespoke -- they're not defined by clear protocols with well-defined responsibilities and metrics. But if you can get impose efficient regulations than you will get, I suggest, lots of small businesses and freelancers looking to optimize value under efficient regulations. The interesting thing about Uber and AirBNB is not that they are ignore regulations but that they are increasing regulatory efficiency. Slowly but surely leading to two very important industries, transportation and lodging, are being decentralized via efficient regulations that invite all sorts of competition.

Damn, username checks out. I enjoyed reading your thoughts, thanks.
Is decentralization overhyped? Yes. It is more due to people just scratching the surface of a problem. For example governance is not only about a democratic process - everyone having a say. It is also about public perception. If you need an example, a rather obtuse one is the current US Presidency race. People who hype decentralization go by the book and forget (or don't have) practical knowledge.

On the federation side, ethereum's oracle contracts are meant to be federated feeds. For example you can create a stock price publishing contract which federates feeds from NASDAQ, BATS, NYSE etc. but the end point is a blockchain. I don't know if that is a good idea.

Most decentralized projects are approaching the problem in the wrong way. Blockchains are a new, early technology, and most of the developers building blockchains don't understand them very well and aren't using them correctly. I think the dotcom bubble was much the same way - suddenly everyone had a website, but almost nobody had a useful website, because people didn't really understand how a website was best able to serve a business.

Federation over decentralization makes sense in any context where there is pre-existing trust. Federation is faster, more scalable, more easily upgraded, if something goes wrong it's easier to pause things and make a surgical change to the system. But federations are also easier to subvert, and users more or less end up controlling the maintainers of the system entirely. If you are a group of international banks, that's not a problem. But if you a single human being that expects corporations, banks, and governments to more or less always behave sociopathically, then it doesn't make sense.

Blockchain core infrastructure needs more time. The hype train took off way too early. I think we're looking at 5 to 10 more years of heavy improvements to things like the wallets, custody process, governance models, scripting systems / dapp languages, the cryptography itself, the peer to peer network, cross-chain exchanges, and other big developer and interoperability features, and just general education / common sense about what blockchains can and can't do.

We'll get there. Blockchain technology is absolutely revolutionary, and it's going to change a lot of things about our global infrastructure. But 2018 or even 2020 isn't the year that we see blockchains really start to get traction. There's a lot of groundwork that we still need to put in place.

It's been a pretty long time since the Bitcoin paper. About the same or longer than the time between the definition of HTTP and the emergence of the web as a useful mainstream technology. Why does this seem to be developing more slowly than the web? Maybe a better analogy is the time it took arpanet to develop into the modern web? Perhaps analogies like this are not worth looking at?

I'm not sure about any of this, but I feel like lots of people recently have been making the argument that it's really early, hasn't had time to develop, etc., when I've been waiting for it to turn into something for a long time now and becoming increasingly skeptical as the goal posts have continued to move.

I believe this has to do with the level of fuck you money made by early devs of these systems and the nature of liquidity in crypto. I'm sitting here working on my non-blockchain product, exhausted after a long weekend of work and mentally preparing for another week of it. I can assure you if there were 10 million plus in my bank account I would have taken the weekend off and explored some of my less profitable interests. I would have written code, read papers, and all of that, just in a more relaxed way. Instead I focused solely on making the product of my business better. Unlike a tokenized system, I can only liquidate the value I have created once I have taken it to the finish line. Myself and my team won't be fat and happy until we get there.

I've had a few people hand wave this explanation, but I've been involved with Ethereum for about 2 1/2 years and this absolutely happens. Productive work is rarely the work that makes us happiest in the moment. That's why we must force founders to hold out for liquidity.

" Blockchains are a new, early technology"

Permissionless distributed databases have existed since the late 70s. This is not a new technology by any means.

"Blockchain core infrastructure needs more time."

I'd say 50 years is more than enough time to see that it doesn't work because it can't scale as-designed.

The problem with a lot of federated platforms (I’m thinking of diaspora, secure scuttlebutt, mastodon etc) is that whole they do provide a way for data to be easily synchronized and replicated, they never answer the question of who is ultimately going to store the data and why. So you end up with a “temporary” list of servers for new users to sign up with, which become centralized in their own right.
SSB is distinct from Diaspora and Mastodon in this respect. It's decentralised rather than federated (pub servers are just peers with a public address).

SSB's answer to this question is: your friends are going to store your data, because they want to read it themselves. You are going to store your friends' data, because you want to pass it on to your other friends.

Actually, I'm mostly basing this on SSB, since it is the only one of these three I've used seriously, and I've followed its development since when it was just Dominic Tarr and Paul Frazee in an IRC chat.

The system has gotten a lot more complex since the early days, and although I no longer know all the internals, it seems that the pub servers are pretty integral to its operation, and you can't get someone onto the system without one. I agree that an SSB-like system with pub servers removed and replaced by STUN/TURN servers which would only facilitate WebRTC would not have this problem.

Just to be clear, the reason for this is that STUN/TURN servers are so lightweight and have very little to do with the actual operation of the system, so they could be put on a list on the main website and supported by very small donations.

Then again, like you said, one could describe such a system as "decentralized", not "federated". I also suspect it would have performance characteristics that many users would not like.

The US Treasury department says trading in Petro cryptocoins would violate US sanctions against Venezuela. So Bitfinex will not trade in it. Coinmarketcap.com lists over 1500 cryptocoins, but not the Petro.

This sort of things shows up the myth of decentralization. Only one cryptocoin with elements of decentralization has been truly challenged, and has basically collapsed under US government pressure. It shows "decentralization" only exists until one powerful country challenges it. Which effectively means all cryptocoins may as well be directed by the US Federal Reserve. Which means you might as well buy dollars if that is the case.

While this is all the case, it can not be proved, so can be dismissed. What it does portend - the complete collapse of Bitcoin at some point - can not be dismissed though.

Their is a difference when a hacker/coder creates a cryptocurrency and a government creates one. I do agree with you the weakness of cryptocurrency now a days is it relies on exchanges that need approval from banks/governments to do business. Gone the days when crypto fans would meet in dark alley ways to exchange cash for coin.
The other thing people sometimes overlook is the infrastructure these schemes depend upon.

Control of the wires means a lot. Sure you can always sneak under to radar to some extent but the mass cannot and that probably won't change.

"As long as we live in a world where fiat currency and nation states dominate transactional and regulatory environments"

Do you think that world will ever end? What will that look like? Will the very, very early stages look something like this?

Cryptocurrencies were not developed as a get rich scheme, nor as a tool for energy efficiency, corporate profits nor so many of the rubrics we use to judge them today.

The idealists that authored the crypto world imagined replacing the fiats of current rulers. Considering how rare a thing that is in history their early, chaotic form of decentralization isn't doing so badly judged on its own merits.

If governance and concensus between the diferent actors is your thing, take a look at the Decred cryptocurrency.
Here's the core of the problem and also why most of crypto / blockchain technology will go down the drain soon:

Decentralization isn't a business model. The opposite is.

That's it. How you get to any competitive edge in a market is: 1) Be better than your competitors in a field. 2) Own that field and displace everyone else. 3) Extract value.

The Crypto hype happened because a super elegant technical solution (-> Blockchain) that nobody really understands was (and IMHO still is) waiting for a problem met a visionary hippie fantasy of a world of inefficient, evil companies that somehow will be made better by some form of decentralization.

The problem is: There wasn't ever an inefficiency and none of those "huge" competitors has any incentive to leave their market share to someone else. So exactly nothing will happen.

Crypto is nothing more than modern white knight fantasy - in reality all the purpopoted benefits of a blockchain are serious shortcomings. Do you really want a payment that can't be rolled back by a centralized authority because you were defrauded or someone hacked your account? Do you want any kind of accounts for a whole tech-afraid populace that they can't access anymore once they've lost their key?

Most people haven't realized that the current centralization and trust in some large companies and institutions is actually a pretty deep local optimum that will be incredibly hard to displace with something better.

Your argument against crypto is one of the more compelling I've read. I like the "deep local optimum" visual you painted. I definitely agree if you're comparing "crypto" directly to centralized companies doing traditional things -- they're not going anywhere.

However, I think it solves a different problem. It's a geopolitical problem. Blockchain technology provide a bulletproof (so far) way of exchanging value across borders without having to trust any middlemen.

There's a quote, I believe by Erik Voorhees, saying roughly: "Bitcoin is separation of money and state".

But currently this only works in third world countries where the government lacks resources or care to combat it. Plus their is still a middleman if you don't mine the cryptocurrency yourself. I still have to pay a exchange if I cannot find someone willing to take cash/check from me. You also have the opposite effect where you need the exchange and a bank account to turn that coin I sent into usable cash.
Maybe that's enough of a use case for an established following that supports a long-term 'market' for cryptocoins. Maybe the ideal (or something closer to ideal) would be that people in too-strong States got to use it; but there are enough people in too-weak States with dreams of authoritarianism
Correct, but you only have to trust a centralized company within your own country. You don't have to trust a bank or money transmitter in a foreign country. In the case of people in countries where they don't have an adequate level of government protection over financial transactions, I think it becomes more interesting. In cases like those, it's possible they don't even value their own local currency as a store of value and might feel a cryptocurrency has better odds of being worth more than zero by the time they need to spend it.
Most of the world's population lives in third and second world countries. You're absolutely right that the centralized fiat gateways are the obvious, censurable bottlenecks of crypto-currency, and there's no good way around that, but crypto-currency itself is still an attractive way for many people, to move their money out of very restrictive regimes. The centralized exchange problem is mainly a problem of creating a black/grey market economy, with crypto-currency as it's main unit of value transfer, which of course is a whole other can of worms.
I think you're mostly right (or at least insightful), but there's a caveat. Decentralization can't create big companies, by definition, but it can destroy big companies.

There's ample historical examples of that. The Internet (originally) built upon the plain old telephone network, but eventually ended up supplanting telephones, AOL, the big-3 TV networks, and many other communication monopolies. Open-source software has commoditized many formerly-profitable software businesses. Napster and the P2P craze failed as businesses, but not before taking down the record industry and opening the door for iTunes & Spotify.

For many of crypto's proponents, that's a win. They'd be happy if a bunch of banks & VC firms faded into obscurity. There'll be new evil corporations built on the backs of crypto (just witness the community blowback against Coinbase), and in the long term some form of centralized power will just colonize the crypto space the way Google & Facebook colonized the Internet, but in the meantime it may shake up quite a few old industries.

you extract value from fat protocols by owning part of the protocol itself, then influencing the direction of the development by being part of the community.
Blockchains were designed to prevent double-spending, and not to solve other problems. Most blockchain enthusiasm is misplaced.

One subjective (but powerful) reason for blockchain implementations, is that we're all human, and our egos want to avoid making someone else's database The Big Platform. Or maybe that's our rational sense (looking at GOOG/FB), we don't want our application controlled by someone else.

This article spells out a few reasons why new categories of securities make sense to implement on a blockchain:

https://hackernoon.com/the-security-token-thesis-4c590476106...

> “Do we need a blockchain for this? Couldn’t this be done with a database?” The answer is yes, some of it could be done with a centralized database, but it begs the question “why hasn’t it already been done?” The answer is that the current centralized solutions for electronic value transfer lack compatibility — they don’t talk to each other. I can’t send value from PayPal to Venmo, or from E*Trade to RealtyShares. These layers aren’t interoperable.

We have seen a 51% double spending attack on Bitcoin Gold just a few days ago. Can we stop claiming that blockchains prevent that?
The attacks on the smaller blockchains are good news. Blockchains have the biggest bug bounties in history, and in time we'll all learn what works.

I've never heard anyone claim blockchains are immune to double spending. There's evolutionary value behind all the experiments. And they're all experiments, including Bitcoin.

Agreed. Federation makes a lot of sense to me in many cases, especially those that relate to the enterprise use cases where performance over extreme theoretical security is much more critical. I think some newer consensus algorithms are experimenting with similar concepts as well. For instance, with delegated proof of stake, you can use your funds to elect a federation or a government (a list of nodes), which in turn will stake their funds and resources to validate blocks.
As someone who has worked exactly with these issues for the past 7 years, let me share what I have learned.

Just a bit of background. My first startup, https://qbix.com focused on letting each community host its own social network, the same way Wordpress powers blogs. Wordpress powers 30% of the Web so it seemed to be a good business model (and it is). Here is a video explaining that: https://www.youtube.com/watch?v=pZ1O_gmPneI

Last year we started a new company at https://intercoin.org focused on letting each community manage its own currency. We saw that crypto wasn't solving payments as well as WeChat and all the other centralized social networks, so we figured we could fix that. Here is a video explaining that: https://www.youtube.com/watch?v=HIbAz29L-FA

OK, so what have I learned?

First of all, federated is much easier. You simply have one source of truth for each stream of data. It's why it's more prevalent. It also creates "landlords" that you have to trust to host your data, and often their agendas clash with your own. Two months ago I asked why have "communities" at all: https://news.ycombinator.com/item?id=16741913

We are familiar with "landlords" all the time, and their inordinate power within their ecosystems. Consider Amazon's bookstore, Apple's app store, Google's search engine, Facebook's social network, and so on. Federating this would be a very good way of introducing choice, and competition among landlords. You still have to choose a landlord, but now the market can improve everyone's experience through competition.

But it turns out that you can do even better than the market, if you build technology that facilitates collaboration instead of competition. Collaboration has entirely different economics, but ultimately wins in the end. Think about Wikipedia vs Britannica, Linux vs Windows, WebKit vs old IE, and so on.

With Collaboration, the infrastructure gets paid for, but not by extracting rents through closed source software. Instead, you distribute the work across many different actors and none of them own their own little fiefdom but they are all intermixed in a grand tapestry. So why would any actor do anything? One answer is that, if they don't do it, someone else will, so they get a little bit of control / money in the beginning, which fades with time. That part is similar to capitalism. But another part is simply because "the main software is designed to facilitate that mode of collaboration by default".

Also the landlord can be a single point of failure for your data. Consider, for instance, how we store files. Imagine you have no backups in the cloud, and all files are stored in your apartment. Now there's a fire. What happened to all your files? They are gone.

But if your'e going to have backups in the cloud, you want to make sure they are encrypted, and only you can access them. Even better would be to blur the distinction between servers run by "the landlord" (even if it's your own apartment) and "the cloud" and just make protocols that find the best server, have it be in a consensus group, encrypt everything end-to-end, and allow reading and writing by multiple parties.

This is very hard to get right. But any such platform would allow people to build communities on top of a reliable foundation, where only members in the communities would be able to access information, and they could have validators who vouch for what actions (e.g. in a game) ar...

I got to say... that looks pretty hopeless. Complementary currencies [0] are not new and they have limited utility -- especially since the currency takers still have to pay taxes in fiat.

It's very easy to design systems where a single node captures the majority of the value in return for doing the majority of the coordination work. This goes deeper than politics. Look at the design of biological organisms and you find big brains capturing 20 percent of the energy. Look at the design of nation states and you find sovereigns capturing 20-30 percent of GDP. Central coordinators seem to inevitably capture 20-50% of the value. One might even argue that they "earn" it too. Distributed coordination is costly and in a world of scarce resources it's silly to entertain additional coordination costs if you can avoid them. Central coordination has a lot going for it -- in terms of speed, efficiency, economies of scale, and even reliability they are very hard to beat.

Decentralization isn't hopeless though. There exists a class of problems where distribution pays off. Problems that can be truly paralellized, indeed ones that when you examine them you realize they are in fact embarassingly parallel [1]. For these problems it's expensive to introduce a central coordinator. Rather than costs being decreased, the central coordinator now introduces costs intothe system. The central coordinator in fact must hire enforcers to go out and impose its will because there is a natural tendency to parallelize and devise local solutions.

Here's the tragedy of cryptocurrencies: currencies are not in this class of "embarassingly parallel" problems. It's just the opposite: currencies absolutely require a single coordinator with currency power. In the absence of a single coordinator the currency (which can be anything from gold to stones) is reduced to a commodity and is subject to mere supply and demand. And demand can always go to zero. This is what ultimately makes a real currency a real currency -- there exists an undying and infinite "demand" for the currency [2].

Playing games with decentralization and federation will not alter these dynamics. You can solve the double spend problem but you cannot generate infinite demand.

It's unfortunate because there are problems that the blockchain could solve that really are "embarrassingly parallel." The hope here is that all of the innovation going into blockchains will live on long after all the cryptocurrencies have gone to zero or been centralized behind trusted gateways. These innovations will be used to solve big problems that aren't currencies. Big problems like journalism (in fact all content generation a la Wikipedia, Youtube), transportation (Uber), lodging and logistics (ie Amazon and Walmart), resource overuse (this includes everything from overfishing to carbon credits) that are embarassingly parallel and are begging for blockchain-based solutions. These problems are truly global problems and it's quite likely no single central coordinator can solve them. The solution to these problems don't require a new currency and indeed if there's any hope for adoption the users will need to be able to transact in fiat. But these problems do require exactly the sort of real-time global coordination and consensus that blockchains can provide.

[0] https://en.wikipedia.org/wiki/Complementary_currency

[1] https://en.wikipedia.org/wiki/Embarrassingly_parallel

[2] http://neweconomicperspectives.org/2011/07/mmp-blog-8-taxes-...

If you're talking about Intercoin, then no, it's extremely far from hopeless. (Plus, even "hopeless" projects have been heavily funded in the last 2 years to solve e.g. stablecoins.)

Complementary Currencies aren't new, in fact many of them have been around for a while. Bristol Pounds [1] and Berkshares [2] are just two examples of many. And yes you can pay local taxes with them.

In fact, before the Greenback (the paper dollar) was fiat currency, there was the Free Banking Era [3]. Money was actually federated: banks would keep gold reserves, and issue banknotes. That's what circulated, not the gold. The gold and silver coins were fiat currency, and only Congress could mint them. However, people traded in local community currencies. The Greenback started as a way to finance the Civil War, and was good for paying tarriffs land taxes of the Federal government (the only kind of taxes they had). It became so popular that Congress made it legal tender after the war. That's what you have come to take for granted and think it's the majority of the money. But it's not.

Today, community currencies exist, but it's not as visible. They are federated with "landlords" who can confiscate your money, but no longer location-based. A casino or Disneyland bucks are probably the most visible examples. But actually, Facebook/GMail/iMessage Payments, PayPal, WeChat, and your local bank, are all examples of internal currencies. And you can't pay taxes with them either. Yet we all use them.

The problem is, until now, they've been pretty "dumb" money. Paper currency, or a centralized bank. Not an open platform. For payments, currently, centralized wins. WeChat, PayPal, Facebook, Venmo, as well as all the banks. They know how the money is being spent, you don't. Mint.com was a play for just the data, that's how valuable it is. What if there was a free and open source network for communities to have their own currencies? That would lower the barrier to having your own currency, run your own monetary policy and generally do all the cool things you can do when you are in control.

You know, it's less than 100 years that anyone can print anything without a gatekeeper. In most countries, even in the 80s, you could only typewrite some document on 4 carbon papers, and if you wanted a 5th paper you needed to type it all again. Then XEROX invented the copier and it spread to other countries. Then Steve Jobs and Apple led the way in desktop publishing. Then we got the Internet, and blogs. And then we got cellphones. Now we take it all for granted.

So in the same way, new technologies allow people who previously needed gatekeepers (the post office, print shops, etc.) to do it all themselves (email, blogs). Dangerous stuff for entrenched institutions? Perhaps! Or perhaps they can adapt with the times.

It's just the opposite: currencies absolutely require a single coordinator with currency power.

I think this is the source of most of your confusion. No, you just think they require it because you haven't seen an alternative. At the very least, there is no reason why two people buying coffee in NYC and in Paris should be on the same ledger. But even more to the point, look at what SAFE Network is doing, read the primer I linked to above. It is massively parallel, and it's secure!

I would respond to the rest, but this message is getting pretty long already.

[1] https://www.youtube.com/watch?v=QtGEby4ORGM

[2] https://www.youtube.com/watch?v=bzzkDRIjW30

[3] https://en.wikipedia.org/wiki/History_of_central_ban...