Bitcoin is a P2P network and, as such, faces limitations inherent to the underlying networks as well as the limitations of its own protocol. In this article we take a look at the Bitcoin full node requirements as well as the complete network's mining costs in order to estimate Bitcoin scalability. All these figures assume full SegWit adoption.
The first, and most obvious, limitation is that of the average time between blocks. To limit the amount of monetary inflation in the market, Bitcoin must establish a fixed rate of block mining that self-adjusts when more or less mining power is found on the network. Each block is limited to 1MB logical size which, considering SegWit, allows for 2MB or more of raw physical data. Therefore there is a fixed amount of transactions that can happen every 10 minutes, limited by the block size. StackExchange users have estimated the theoretic maximum transactions per block to be 12195 TX's. That's approximately equivalent to 20 transactions per second.
Under SegWit, a block may take up to 4MB physical size. This new unit is no longer called block size, but block weight instead. By mining a block every 10 minutes, you get 6 blocks per hour, which is roughly 24 MBytes maximum.
A full Bitcoin node should therefore be able to accommodate at least 576 MBytes of disk data per day or 210 GBytes per year. Piece of cake for modern hard drives.
As for the P2P limitations, Bitcoin will load your line with approximately 55 GBytes of network traffic per day at an average 5 Mbit/s transfer rate. If your access provider limits your download then we recommend you make sure you've got at least 1.5 Terabytes/month transfer included in your package. Remember this is just to keep a full Bitcoin node running. Add all your gaming, videos and other traffic on top of this for a correct estimate of your ISP bill.
Bitcoin cannot function without lots of mining power distributed among network participants. At the time of this writing (early March 2018), according to Digiconomist, Bitcoin mining yields U$ 8.9 billion a year in revenues and costs U$ 2.63 billion to mine. Thus, the complete Bitcoin network mining costs U$ 83 per second just to keep the cryptocurrency running. This equates to more than U$ 300,000 per hour in mining costs. Every Bitcoin transaction consumes more than a thousand horsepower! Over one thousand horsepower of electric energy is consumed for every little TX you see scrolling by on Blockchain.info live transaction view. This is equivalent to 0.24% of the world's electric consumption.
As you can see, keeping Bitcoin running adds up to a set of requirements. The network usage becomes more and more intense as the number of participants grow. The mempool is, after all, shared by all nodes in the P2P network.
Also, as the blockchain grows, nodes need to be able to accommodate a full copy on their hard drives. As we've seen, this translates to a maximum of 210 GBytes per year.
These requirements establish the limits of scalability for Bitcoin. Note that the network usage parameters grow linearly with the number of transactions - so if a large number of nodes decide to attack the network, this could add up to a hefty bandwidth bill.
But although disk usage, maximum block size and the rate of one block per 10 minutes may vary slightly, it is quickly self-regulated by the network to maintain a fixed rate of growth. Under a coordinated attack, block rate could accelerate temporarily until the next difficulty adjustment, for example.