OpenZeppelin Blog

The Ugly Truth About Blockchain Applications

Written by Demian Brener | September 29, 2016

Before starting Smart Contract Solutions, we spent the previous 4 years working with blockchain tech. We’ve worked for the largest companies in the space and built popular apps and libraries. We got our hands dirty learning the ins and outs of smart contract development. And in the process, we’ve come to realize something.

We began in 2012 building Proof of Existence. It was the first non-financial blockchain application to time stamp documents using the Bitcoin blockchain. Then, together with a group of friends, we developed Streamium, a decentralized p2p live streaming application. Streamium was the first implementation of Bitcoin’s payment channels, the smart contract protocol that inspired the Lightning Network
Both apps were widely popular. They were featured on renowned publications and magazines. The blockchain economy was growing at full steam and we were riding the crest of the wave. Things looked promising but we came to realize a little secret: developing blockchain apps is hard and the infrastructure is vastly underdeveloped. Everyone — including us — was building blockchain applications, but the underlying stack was not yet in place.

We had to build our own tools and standards for developing Proof of Existence and Streamium. While working for Bitpay, we helped develop Bitcore, a very popular JavaScript bitcoin library. We ended up using Bitcore for most of our projects. There were very few other tools and libraries we could resort to.

We realized that only a small group of blockchain experts was capable of building distributed applications. Developing blockchain applications is hard, and making them secure is even harder. For a new decentralized internet to emerge, more people were needed to build it. That would only happen once the right tools and standards were in place, lowering the barriers of entry to new developers.

During these 4 years, the industry moved fast: new decentralized platforms, blockchains and programming languages emerged. Enthusiasm for building distributed applications, protocols and organizations grew. Thousands of developers and entrepreneurs got into blockchain tech, devising new and innovative products and business models. Over $1.3bn have been invested in digital currency startups by VCs, institutional investors and crowdfundings so far. We’ve witnessed great ideas come to life and tremendous scandals

Yet, the infrastructure for building blockchain applications remains underdeveloped. There are no tools for developers to easily create, test, verify and audit smart contracts, and do so collaboratively. Developing that deals with real money is risky. However, there are still no widely adopted security standards or best practices for projects to follow.

That’s why we decided to work on OpenZeppelin. OpenZeppelin is an open-source framework that makes it easy for developers to build secure blockchain-based applications. It reduces the blockchain infrastructure gap by providing secure, tested and audited .

Instead of developing their own from scratch, developers can use OpenZeppelin’s vetted modules to build secure smart contracts. Its modules are used for issuing tokens and defining the rules of their underlying systems.

Furthermore, OpenZeppelin is open-source and community-driven for anyone to contribute and audit

We believe projects should focus on building their product and making it grow, not on becoming blockchain experts. In the same way you don’t need to understand how Ethernet, ARP, TCP/IP and HTTP work in order to build internet applications, you shouldn’t need to understand how smart contracts, tokens and consensus algorithms work in order to develop scalable blockchain applications. OpenZeppelin reduces the friction and knowledge required to build and deploy secure blockchain applications.

OpenZeppelin is currently being developed as an open-source and community-driven framework. Go ahead and explore the source to contribute and build distributed apps with it.