On-chain scaling vs layer 2 scaling: What are the differences?