The main limitation of blockchain is usability. At the moment to use blockchain you need to know how to code and how it operates. Imagine if you had to know how the car operates or program something every time you had to drive. Or that you had to do that every time you use the Internet. Once blockchain will receive an interface and user-friendly tools to be able to write and use smart contracts and apps, it will get the potential to go mainstream.