https://getblock.io/blog/pushing-scalability-barriers-what-are-layer-2-solutions-and-why-do-we-need-them/