Hacker News new | ask | show | jobs
by jentist_retol 2117 days ago
Decentralization works great for small communities and use cases. The moment you start scaling you run into a myriad of problems:

- fraud/abuse (spam)

- outsized influence of providers who make it easy to get on board without having to self host (gmail)

- inability to easily change your protocols to handle new features (IMAP4 is from the 90s)

- inflexibility to easily fix bugs and distribute patches across the entire fleet

- unequal footing in both feature capacity and security posture from node to node

Email, Matrix/Riot, etc all suffer from these problems. As does bitcoin. That's not to say that they're not overcomeable, but many of the challenges (especially fraud/abuse) require close collaboration between different decentralized node owners - which to some, defeats the purpose. I ask, what is the internet if not a way to communicate, so I guess I don't think it defeats the purpose.

I'm actually interested to see what matrix is doing, because they seem to realize that a platform of decentralized nodes that handles a lot of the challenges (updates, auth, etc) means that people will be able to build their own new use-cases on top of the network, or diverge.

Anyways, despite these problems, despite the uphill battle in user experience, despite the pain of self-hosting, despite all of the challenges: I still do it.

The internet is a miracle and one way to keep it a miracle is to take the reins of your presence on it.

2 comments

This is the blockchain trilemma: Decentralization, Scalability or Security, choose only two.
That isn’t the trilemma - it’s decentralization, scalability and global state.
That's true for distributed computing in general so it has nothing specifically to do with the blockchain protocol itself.
Global state? Please explain more.
Perhaps they meant global consensus?
How is global consensus not global state?

What are we consensing on, if not a mutually agreeable set of facts (state) that we can use as a basis for future decisions?

If the answer is “nothing” then you by definition have a toy, not a tool.

I suspect they’re referring to how some blockchains (eg ethereum) are using sharing and lightning to scale
It has been solved long time ago. Just remove the PoW its not needed. XRPL did it first others followed.
Ripple is not permissionless. I think Algorand[1] is the first.

[1] https://people.csail.mit.edu/nickolai/papers/gilad-algorand-...

That Algorand paper suggests a way of scaling consensus to large numbers of nodes, i.e. by running a consensus algorithm on a random sample of nodes. It doesn't address scalability with respect to transaction volume, which is what people usually mean in the context of the blockchain trilemma.
>It doesn't address scalability with respect to transaction volume.

For scalability with small transaction volume, Coda[1] is the best.

[1] https://codaprotocol.com

Thats laughable nonsense tbh. People should "mine" to compress the blockchain lol. The blockchain isnt even needed (the history). Have a look at XRPL srsly its the perfect example it has terabytes of past transactions and they are stored by some nodes but its not needed to make progress. And ofc it could be compressed but that totally destroys its purpose. If you want the transactions you want to be able to query them which you cant do efficient if its compressed.
You didn't even say permissionless in your post. Ripple is a company you mean the XRPL. The XRPL is permissionless in every aspect. You can insert transaction without anyones permission. You can run a node without anyones permission. You can fork and create you own version without anyones permission. You can change code and create an amendment without anyone's permission. It needs 80% favorable votes for two weeks to become active but it doesn't need anyone's permission. There is no entity that can vote against it and prevent it.
I think you point out a lot of issues with decentralized services that lead to centralization.

Matrix is exciting, but still has the hosting problem. Even with the easy ability to get a host from them for $10/month you're still going to have a handful of players providing most of the hosting.

I think Urbit's design is actually really interesting and makes some progress on a few of these problems.

> Fraud/abuse (spam)

Their ID model that has inexpensive and limited IDs that require some cost ($10-20) change the economics on spam. IDs carry a reputation.

> Outsized influence of providers

Urbit still has some of this in the sense that where you host your 'planet' (basically your private server) will probably end up being dominated by centralized groups that do this work for you. Where it's different though is the design of urbit means your server is only accessible by you and the communication is still p2p/encrypted. It's a little like Matrix in that way, but the design makes install and updates way easier.

The other cool bit is that the p2p complexity is abstracted away at the application layer, so things are decentralized by default without the users having to be aware of any of that complexity. You'll eventually be able to share photos from one user to the other and no centralized server is required.

> Bug fixing across fleet

Urbit's hierarchical structure is a good solution to this too. There are 256 'galaxies' which are voting governance nodes in the network. Each of these spawn 256 'stars' (basically infrastructure nodes) and each star can span 65,536 'planets' (individuals IDs or private servers for users). Updates come down the pipe from stars and get seamlessly applied to all users on the fleet.

User planets can escape to a different star if their star becomes a problem. Stars are incentivized to remain up and neutral in order to stay relevant. Similarly stars can escape to different galaxies if there's an issue with theirs. In an extreme case a 'stellar congress' could push back against the galaxy governance body if they had to and start reporting to their own.

- unequal footing in both feature capacity and security posture from node to node

The OTA approach and functional VM design solve this for Urbit.

https://urbit.org/using/install/

A more detailed introduction: http://hyperstition.al/post/urbit-an-introduction/

Anyway - I've playing with it for the last few months during lock down and it's the most interesting thing I've seen in a while.

i wrote that second link :) delighted to see it in the wild
Cool! - I thought it was a pretty good summary of a lot of the details.

Thanks for writing it.