The growth of Ethereum has gone hand-in-hand with an increased interest in smart contract adoption — with the promise of building out a completely new decentralized paradigm for all kinds of organizations and activities. While many of the world’s most talented developers continue to work on building out this vision every day, a number of serious problems with existing smart contract programming languages have led to a situation in which billions of dollars across millions of smart contracts may be at risk, due to clumsy or buggy language.
Scilla, which stands for “Smart Contract Intermediate Level Language,” is a new generation programming language for coding smart contracts. It promises to do away with the clunky nature of existing languages and improve contract security.
More importantly, Scilla is designed with a cross-chain functionality, which means that (at least in theory) it can be used to create smart contracts that can be deployed on any smart contract platform — be it EOS, Ethereum, TRON, or another one of its merry co-travelers.
What Does Scilla Do?
To answer this question, it is helpful to start from why it was deemed necessary to create it in the first place, and then work forward from there.
Currently, Ethereum smart contracts, which make up the bulk of smart contracts in existence, are exclusively programmed in a language called Solidity. Solidity has been repeatedly criticized for a variety of reasons — one of which is its perceived complexity, even for experienced programmers. This has not, however, prevented it from becoming the dominant language in the space.
What really presents a problem for Solidity users is the fact that smart contracts coded with it have suffered some of the most devastating security breaches and code defects in the brief history of smart contracts. The 2016 DAO hack, which saw $50 million worth of ether lost and directly led to a split in the Ethereum community, is perhaps the most famous example of this.
The Parity Wallet hack just over a year later, which saw $30 million stolen, is another notable example. The bugs within Solidity that enabled such breaches to take place have been well documented, but the smart contract development community seems to have little choice right now but to persist with the market leader.
Against this backdrop, Scilla was envisioned as a smart contract language with a primary focus on security. Designed to enable the creativity of programmers without getting in their way, it provides a reasonably straightforward means of constructing responsive and intuitive dApps without compromising on safety.
While a great number of smart contract programming languages exist outside of Solidity and Scilla, what gives Scilla a unique advantage is the fact that it is blockchain-agnostic and can thus be used to build for public or permission versions of Ethereum, EOS, or any other major smart contract platform — in addition to its native Zilliqa.
Having smart contracts coded in Scilla essentially means that a state machine receives external input and performs a calculation using this input, after which it alters the state of the contract and passes relevant information across to other contracts if necessary.
Unique Features of Scilla
The biggest thing Scilla has going for it is its simplicity. Judging by feedback from smart contract programmers with varying levels of coding experience, Scilla is substantially easier to learn than Solidity and, in fact, even allows for the effective conversion of Solidity code to Scilla.
On an operational level, Scilla provides several layers of separation between computing and communication functions, which significantly improves the security of smart contracts. Whenever a computation is made in-situ, the contract implements it as an isolated transition, insulating other parties from involvement. In the event that their participation is required, explicit communication is then sent to end a transition.
Scilla also implements compartmentalization of impactful and pure computations, which means that in-contract computations taking place inside a transition must terminate with a computable outcome. Following on from this, it separates invocation and chained contract calls, meaning that every external call must be executed as the very last instruction.
While competing against Solidity on Ethereum is no doubt a formidable task, the ease of learning, cross-chain functionality, and security enhancements of Scilla make it a project worth keeping an eye on.
What do you think of Zilliqa and Scilla? Let us know your thoughts in the comments below!
Images courtesy of Shutterstock.
Disclaimer: The contents of this article are not intended as financial advice, and should not be taken as such. BeInCrypto and the author are not responsible for any financial gains or losses made after reading this article. Readers are always encouraged to do their own research before investing in cryptocurrency, as the market is particularly volatile. Those seeking advice should consult with a certified financial professional.