by Manuel Araoz
Check out our step-by-step guide to OpenZeppelin-eth, the EVM package implementation of OpenZeppelin 2.0.
Smart contract development is still in its early days. We’re all still trying to figure out what it will look like and how to polish the developer experience. At Zeppelin and Aragon, this is something we think and care a lot about, and do our best to contribute to. As many of you know, we also like helping the community standardize widely used patterns and adopt software engineering good practices.
A trend we see coming and want to share and promote is that of upgradeable on-chain packages of smart contract code. We like to call these EVM Packages. This means a smart contract app can reuse on-chain building blocks provided by other developers and opt in to bug fixes and improvements in the future.
As OpenZeppelin was a much-needed step in terms of smart contract code reusability and continuous improvement, we think the next phase of maturity for our industry requires actual bytecode reuse on-chain. During the past two years, we’ve established the basis for writing secure simple modules. We believe the next step in complexity comes from enabling developers to combine existing on-chain code to build new things on top, requiring marginally little additional effort.
We’d like to stress the importance of giving developers full control over which upgrades they want to adopt in their own apps. Any other approach would lead to counterparty risk for developers and users, which is something blockchain technology is looking to reduce, and would thus make no sense in this context. This is why at Zeppelin we’re collaborating closely with Aragon, industry leaders in decentralized governance, on this endeavor.
With a healthy ecosystem of on-chain code, we can promote:
EVM Packages are already available on ZeppelinOS and aragonOS today. Stay tuned for future posts soon, showing code examples of how you can leverage the power of EVM Packages using aragonOS and ZeppelinOS.
What are your thoughts on EVM Packages?