I heard that address in EOS is human readable id. But I worry that abuser make so many id. How do EOS prevent abusing? And I also heard fee in EOS is zero. Can developer deploy contract freely? And users can transfer coin or token infinitely? How do EOS manage bandwidth?
How to prevent account creation abuse:
Accounts require "1.5 KB".
So this would be one barrier to someone massively creating accounts because they would have to pay for each account.
How does deploying contract work:
To deploy a contract, it requires a certain amount of RAM for the contract to persist in. You can read a very good example of how an airdrop would look from a resource standpoint to deploy: https://steemit.com/eos/@leordev/eos-ram-and-bandwith-analysis-airdropping-steps-on-junglenet
Is fee 0?:
Users can execute transfers back and forth freely as long as they have the NET/CPU staked to do so. Think of it like this. You have a pile of 100 EOS. You pay ~1.7 EOS for the RAM to store the account, so you now have 98 EOS. You decide to stake it 46 EOS for NET and 46 for CPU. Think of these two resources like a refilling fuel tank. As you use your NET/CPU, you will have less and less of it; however, it refills over a few days depending on how you use it. So, can you just perform as many transactions as you like? No. But can you do more than what is reasonable for still less than what ETH can do, absolutely.
What is bandwidth:
CPU is handled in milliseconds to process a task and NET is measured in KB's used.
Here is a breakdown of the resources:
(source | https://www.eosrp.io/)
Finally, let's talk IPFS. Since we only have CPU, NET, and RAM you may ask, well how do I do store/access larger files like steemit/dtube? The answer is by using mongodb, pushing a contract with empty actions just to read the actions from chain, or IPFS. You can search the exchange as there are many posts on IPFS.
EOS has tokens for bandwidth stake and for RAM storage.
Whilst there is no cost for a transaction, a user does have to proove stake, and is allocated bandwidth according to the stake they hold.
I understand that in blocks with spare bandwidth, zero stake transactions will be processed, but at busy times they are not guaranteed.
If the transaction requires storage, the user will need RAM tokens also.
This would make it very hard for a potential abuser to spam the system without holding a large amount of tokens.