Layer 2 Scaling Solutions for Blockchains