- 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.
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.
Thanks for writing it.
It's not about equality but fairness. Anyone can invest and purchase CPUs whereas the allocation of IPs is political. Satoshi never stated or expected one CPU should map to one individual person.
Satoshi said "At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware.” – https://satoshi.nakamotoinstitute.org/emails/cryptography/2/
“The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms. The rest will be client nodes that only do transactions and don’t generate." – https://satoshi.nakamotoinstitute.org/posts/bitcointalk/287/
I think my broader point stands, though: despite engineering efforts towards decentralization, market forces push Bitcoin towards centralization (due to mining pools and due to consolidation amongst manufacturers of mining hardware).
The most important counterbalance to this is not in the Bitcoin protocol, but also an economic one: large mining operations have an interest in keeping up (at least the perception of) decentralization, because that's why people like Bitcoin.
At that point however, you're back to a system where the safeguards are not of a technical nature at all. Maybe Satoshi foresaw that to some degree, but apparently he wasn't able to engineer around it.
The fact that mining is a capital intensive operation has little to do with Bitcoin’s decentralization. Nodes cannot change the supply. When I wake up tomorrow I’m reasonably certain there will still be ~21,000,000 bitcoins, while the central bank will have further inflated the money supply https://upload.wikimedia.org/wikipedia/commons/thumb/c/c4/Co...
But more generally, I don’t see the point. We’ve established that the people who end up with lots of bitcoin are people with lots of fiat money (and some early investors), so all you’re doing here is perpetuating the current economic distribution, and frankly fiat currency and the corresponding banking system is very effective at that already.
You’re right, gold and stocks can also preserve capital against the constant depreciation of fiat currencies. I prefer bitcoin to gold because I can more easily hold my own bitcoin and transfer it globally. I don’t own stocks because I don’t care to tie my savings to the performance of various businesses.
Huge advantage, no electricity waste.
Should allow for much larger transaction volume as well. IP-address vote flows naturally since well we are still using IPv4 to communicate.
The only downside would be that there would be some big winners in Apple,MIT,US Postal Service that is anyone else with 8/block.
Countries like Chad with 4096 addresses for population of 10M would benefit much less but they would still be in the game.
You can exchange money for CPUs, so the system was built so that those with more money have more influence over the blockchain.
The idea of votes being proportional to the dollars you control is very popular in some circles.
In contrast, one-person-one-vote systems tend to create regulation for financial institutions, which is something crypto currencies often like to avoid.
Even if ASICs were not mentioned by name, Sastoshi wrote about how mining was expected in the future to be the work of large bank-like organizations, but apparently did not worry that this would harm the project.
What he may not have foreseen was the emergence of mining pools, separate from miners themselves, that in certain ways can behave like cartels. That could have been avoided with a mining pool protocol where miners are the ones to form blocks, but the software included no possibility to pool mining power at all.
Miner's would identify themselves
This is a vague notion that doesn't make any sense. The purpose of the design of Bitcoin was not to give equal representation to every CPU. It is to prevent undue interference in transactions by third parties. And by that measure Bitcoin is definitely decentralized enough.
To do anything nefarious you need at least 51% of hash power and to not care that you are damaging the integrity of the blockchain, and even then you can't steal from or rewrite the blockchain - you can only prevent future transactions from going through.
https://academy.binance.com/security/what-is-a-51-percent-at...
https://en.bitcoin.it/wiki/Weaknesses#Attacker_has_a_lot_of_...
https://bitcoin.stackexchange.com/questions/658/what-can-an-...
"An attacker that controls more than 50% of the network's computing power can, for the time that he is in control, exclude and modify the ordering of transactions. This allows him to:
* Reverse transactions that he sends while he's in control Prevent some or all transactions from gaining any confirmations
* Prevent some or all other generators from getting any generations
The attacker can't:
* Reverse other people's transactions
* Prevent transactions from being sent at all (they'll show as 0/unconfirmed)
* Change the number of coins generated per block
* Create coins out of thin air
* Send coins that never belonged to him"
Doing a reorg of the blockchain can cause all sorts of problems, and reverse all sorts of things, depending on what those transactions were, and how they are re-ordered.
[1] http://cryptorials.io/beyond-hashcash-proof-work-theres-mini...
This phenomenon even has three distinct names: grift, cronyism, and nepotism.
Proof-of-Work relies on miners investing and competing. Miners that continually invest generally win - and those that do not, die. The stronger the system, the harder for Bitcoin enemies to subvert/takeover the system.
In 2008, miners used CPU's, several years later miners moved to GPU's, several years later miners moved to ASICs, and recently miners moved to data centers.
Umm. It's not that old, testnet maybe but not the public blockchain.
https://webonanza.com/2015/10/02/did-satoshi-predict-pooled-...
What is decentralized is the currency at the user level. It has taken the power of control away from a central authority.
"At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated." [1, emphasis added]
"The current system where every user is a network node is not the intended configuration for large scale. That would be like every Usenet user runs their own NNTP server. The design supports letting users just be users. The more burden it is to run a node, the fewer nodes there will be. Those few nodes will be big server farms." [2, emphasis added]
To clarify, these are excerpts of satoshi's comment that were in a thread. They've been kept through the Nakamoto Institute website (i.e. my source is a secondary source). I chose this and not the bitcointalk threads because it's Satoshi's writings only.
A few points to note, 'full network nodes' are nodes that do both mining and validating of wallets; not just validating like the Lightning Network or SPV clients. First quote talks about 'like how usenet network has consolidated' which hints at knowing about centralized farming. Second quote is more direct to rebuff the above opinion, fairly directly.
> the biggest thing Satoshi didn't know (or didn't foresee) was that the idea of "one CPU, one vote" was flawed, a victim of its own success, because of mining ASICS.
He knew. In the beginning, it wasn't truly one CPU, one vote. If you had a higher-end single cpu, you definitely got more than one vote since most people don't have the average CPU (it's high-end for a reason). Satoshi clearly had this in mind. Early adopters were awarded more bitcoins with their average CPUs then, than high-end ASICs today. This was all thought out in the economic sense and security sense, attempting to balance both.
>A consequence of that is that bitcoin and related cryptocurrencies really aren't as decentralized as claimed.
I feel this opinion is based on the crypto-twitter opinions. Or based on many 'bitcoin maximalists'. Basically, a narrow-minded group that isn't really seeking to inform the public, they just want to 'moon' and meme.
But looking at this critique from a different perspective, it's extremely decentralized in it's mining function. How many people have mined bitcoins? Throughout time? Has it always been one central authority (Satoshi, Gavin, etc)? Or have people from all stripes been able to? Yes. Many regular working people could buy an ASIC and mine today. That's fairly decentralized, no FED needed to inject a new QE.
Will you make a profit? That's not the question. Decentralization mining exists but at what cost?
I could also unpack the idea that buying coins in 2009 would be considered a decentralization of the currency, since there would be more people (not less/centralized) holding the currency, therefore more dispersed.
But let's return back to Satoshi to conclude. Satoshi thought about CPUs, FPGAs, GPUs, and ASICs. Look at his writings. Look at the OG code. Look at the whitepaper. He created an architecture that creates cryptographic trust through a proof of work function. He knew about Moore's Law and incorporated it. The specifics were quoted above but this conclusion is to bring everything together that bitcoin was thoroughly designed in such a way that thought through ten, twenty years in the future, based on the best science available then. My final thought is that Satoshi 'didn't think about______' is an opinion based on ignorance or it's something outside of the scope of Satoshi's intent with bitcoin. He has many posts that explain enough to settle most debates. Please read more, do less criticizing and when you're informed, let's have a mature discussion.
[1] - https://satoshi.nakamotoinstitute.org/posts/bitcointalk/105/...
[2] - https://satoshi.nakamotoinstitute.org/posts/bitcointalk/287/...
P.S. I'm not a Satoshi worshipper. I've done extensive research and came to my own conclusions. You can debate my auxiliary points but without reading Satoshi's writings, you're missing the context of the actual debate.
A consequence of that is that bitcoin and related cryptocurrencies really aren't as decentralized as claimed.
It's fascinating how things just seem to have a way of becoming centralized once enough money is involved, even when engineers thought hard about how to avoid that (see also: the internet).