Vertical scaling is done by improving the efficiency of each individual transaction, whereas horizontal scaling is achieved through increasing the platform’s overall throughput capacity.
In simple terms, general scalability improvements are made through the use of a concept called “layering” — wherein each individual component of a particular system is made to interact with its digital counterparts in some sort of sequential and hierarchical way.
Also, when it comes to blockchains, developers strive to maintain the immutability of their base chain, which in turn allows the scalability layer to leverage the security of the parent chain. An example that perfectly highlights the aforementioned concept is that of the Lightning Network — a technology that leverages the security of Bitcoin in order to increase the system’s overall tx throughput.
Now, when dealing with horizontal and vertical scaling, we can see that the former is implemented by adding more clusters or virtual machines to a system — in order to handle an increasing transaction load. Vertical scaling, on the other hand, is achieved by adding more processing power (or memory) into an existing virtual machine in order to boost processing capacity.
That being said, the upcoming Ethereum 2.0 upgrade has had a lot of hype because it seeks to improve the project’s overall transactional capacity via a number of different design changes — with one of the primary ones being sharding.
By implementing these changes, Ethereum’s core framework will be ported from being a single execution environment to having multiple execution environments that will validate transactions asynchronously and in parallel.