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.
[1] https://people.csail.mit.edu/nickolai/papers/gilad-algorand-...
For scalability with small transaction volume, Coda[1] is the best.
Here's an example how you can validate the current state without knowing the past.
Imagine there are 100 coins made form something that does not exist beside in these coins. Someone wants to pay something to you using 2 of these coins. Do you need to know where he got them from and where the person before got them from and so on? If you know there are only 100 in total. (state is public) And no way to change that. (rules/code is known) And you know that if you take the 2 no one can force you to give it back. (transactions are irreversible) Then no, you don't need to know the past transactions at all. Maybe they where stolen in the past a thousand times also lost and found by someone else many times. Does it matter? Not at all.
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.
- 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.