How does the protocol prevent Block Producers (stake pools, I assume) to concentrate too much and make the consensus less robust? How does the protocol prevent bandwidth holders (EOS holders)from concentrating too much and make the platform unattractive for small users, who would then need to rent EOS from oligopolistic holders to operate on the Blockchain?
The EOS constitution forbids to have more than 10% (total supply) eos tokens for one individual/dApp/BlockProducer.
This was addressed by Thomas Cox in interview with EOS GO : https://www.youtube.com/watch?v=iQe15JHpjDA
How does the protocol prevent bandwidth holders (EOS holders)from concentrating too much and make the platform unattractive for small users
If I am not mistaken, if a particular EOS holder do not use bandwidth, this bandwidth is available for another users. So if a big token holder would like to spam the network, actually he can. If he owns 1% of the tokens, he could whatever he wants with his bandwidth.
If there will be a situation in which there will be no bandwidth left for the average user, then witnesses could try to scale their nodes.
// at least, this is how I understand that.
As mentioned above the proposed constitutional article will limit each entity to a maximum of 10% ownership of EOS. Entities with more can be subject to arbitration.
Another key component to minimizing consolidation of the EOS token supply is in the game theory behind the initial distribution of ERC-20 EOS.
By stretching the distribution out over a whole year and selling fixed tranches of EOS for an unbounded price, any whale looking to dump funds into EOS quickly are penalized by having to pay much more per token. Looking at a distribution of ERC-20 EOS, while we are not able to differentiate separate identities behind multiple wallets, we can see the token distribution is relatively more widely distributed than every other blockchain asset.