I'm reading about the on-chain scalability solutions. At the moment I'm looking at sharding.
Currently, in all blockchain protocols each node stores all states (account balances, contract code and storage, etc.) and processes all transactions. This provides a large amount of security, but greatly limits scalability: a blockchain cannot process more transactions than a single node can. In large part because of this, Bitcoin is limited to ~3-7 transactions per second, Ethereum to 7-15, etc.
I cant seem to understand this, could someone elaborate?
So in other words:
The number of transactions the blockchain can process can never exceed that of a single node that is participating in the network.
In a traditional database system, the solution to scalability is to add more servers (i.e. compute power) to handle the added transactions. In the decentralized blockchain world where every node needs to process and validate every transaction, it would require us to add more compute to every node for the network to get faster. Having no control over every public node in the network leaves us in a pickle.
So if I understand this correctly, the weakest node (or is it full node?) in the blockchain sets the limit on tx/s. Why is that? Is it possible then to add a really really slow node that slows down the whole processing of transactions?