Problems within smart contract code have led to a variety of issues ranging from hacking to substantial difficulty auditing the contracts themselves. One of the primary reasons for this is the complexity of the contracts resulting from writing them in Solidity. Vyper programming language is an experimental, high-level pythonic and is contract-oriented and designed for the Ethereum Virtual Machine (EVM). Recently, the Beta release of the language was released on Ethereum’s Vyper Github repo and has had a very positive reception so far.
Designed to improve upon Solidity as the default smart contract language for the EVM, Vyper focuses on simplicity and security in order to allow for trivial smart contract auditing with an emphasis on being maximally human-readable code.
With the litany of issues concerning the complexity and security of Solidity as a smart contract language well established, the transition to a more intuitive programming language for Ethereum has a multitude of advantages and is seen as an integral part of the next phase in the platform’s development.
Smart Contracts and Solidity
The desire for improved smart contract security has been prevalent in the mainstream ever since the infamous DAO exploit on Ethereum in 2016. Further, a study earlier this year escalated concerns after it discovered over 34,000 smart contract vulnerabilities.
As the dominant smart contract programming language used today, Solidity has had its fair share of criticism for its inherent issues that can lead to smart contract ambiguity, bugs, and critical vulnerabilities.
With the further adoption of smart contracts into a broader set of markets on the horizon, specifically with financial institutions, the need for a more auditable and secure language was clear. While Solidity will more than likely continue to dominate the smart contract space for the near future, Vyper offers some significant improvements and represents a step towards the next phase of Ethereum’s development.
While Vyper is still an experimental language, it very similar to Python, one of the most understood and widely used programming languages in the world. Not only does this help to overcome the barrier to adoption, but it has some highly relevant benefits to smart contracts in terms of composition.
Specifically, Vyper removes components that can lead to smart contract vulnerabilities while simplifying both the language and compiler implementation. Due to this, Vyper is a more restrictive language than Solidity, but when it comes to smart contracts, that can be a good thing.
Vyper employs some prominent features including bounds and overflow checking, decidability (precise gas upper bounds), and strong typing. On the contrary, it removes some aspects of less restrictive languages like Solidity such as modifiers, class inheritance, recursive calling, and function overloading.
The popularity and adoption of Vyper should inevitably increase over the coming years as both Ethereum’s FFG Proof of Stake and sharding implementations are written in Vyper. As a more efficient language for smart contracts, Vyper should also prove to save on gas costs associated with executing contracts, alleviating concerns around smart contracts that are prohibitively expensive due to inefficient code.
The emphasis for Vyper currently is for practical use within contractual agreements and scripts rather than full-scale dapps. This may change in the future as the language continues to evolve, but for now, the simplicity and efficiency of the language is largely confined to reducing unnecessary smart contract complexity while simultaneously enabling a broader group of people, outside of just developers, to interact with and understand smart contracts.
As Ethereum focuses on scaling with upcoming implementations of Proof-of-Stake consensus and sharding planned over the course of the next few years, Vyper is pegged to be an integral component of Ethereum’s future development.
Vyper is not only strictly relegated to Ethereum either as the Ethereum Commonwealth, who develop and maintain Ethereum Classic, have also stated their support for Vyper moving forward.
As applications for smart contracts continue to extend into more industries, the simplicity, security, and efficiency afforded by the Vyper programming language will become an important tool through which broader adoption is made possible.