Affiliation:
1. Yale-NUS College, Singapore / National University of Singapore, Singapore
2. Zilliqa Research, India
3. Zilliqa Research, Denmark
4. Zilliqa Research, UK
5. Zilliqa Research, Russia
6. Zilliqa Research, Malaysia
Abstract
The rise of programmable open distributed consensus platforms based on the blockchain technology has aroused a lot of interest in replicated stateful computations, aka smart contracts. As blockchains are used predominantly in financial applications, smart contracts frequently manage millions of dollars worth of virtual coins. Since smart contracts cannot be updated once deployed, the ability to reason about their correctness becomes a critical task. Yet, the de facto implementation standard, pioneered by the Ethereum platform, dictates smart contracts to be deployed in a low-level language, which renders independent audit and formal verification of deployed code infeasible in practice.
We report an ongoing experiment held with an industrial blockchain vendor on designing, evaluating, and deploying Scilla, a new programming language for safe smart contracts. Scilla is positioned as an intermediate-level language, suitable to serve as a compilation target and also as an independent programming framework. Taking System F as a foundational calculus, Scilla offers strong safety guarantees by means of type soundness. It provides a clean separation between pure computational, state-manipulating, and communication aspects of smart contracts, avoiding many known pitfalls due to execution in a byzantine environment. We describe the motivation, design principles, and semantics of Scilla, and we report on Scilla use cases provided by the developer community. Finally, we present a framework for lightweight verification of Scilla programs, and showcase it with two domain-specific analyses on a suite of real-world use cases.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference95 articles.
1. Gabriel Alfour. 2019. Introducing LIGO: a new smart contract language for Tezos. https://medium.com/tezos/introducingligo-a-new-smart-contract-language-for-tezos-233fa17f21c7 . Gabriel Alfour. 2019. Introducing LIGO: a new smart contract language for Tezos. https://medium.com/tezos/introducingligo-a-new-smart-contract-language-for-tezos-233fa17f21c7 .
2. JD Alois. 2017. Ethereum Parity Hack May Impact ETH 500 000 or $146 Million. https://www.crowdfundinsider.com/2017/ 11/124200-ethereum-parity-hack-may-impact-eth-500000-146-million/ . JD Alois. 2017. Ethereum Parity Hack May Impact ETH 500 000 or $146 Million. https://www.crowdfundinsider.com/2017/ 11/124200-ethereum-parity-hack-may-impact-eth-500000-146-million/ .
3. Sidney Amani Myriam Bégel Maksym Bortin and Mark Staples. 2018. Towards verifying Ethereum smart contract bytecode in Isabelle/HOL. In CPP. ACM 66–77. Sidney Amani Myriam Bégel Maksym Bortin and Mark Staples. 2018. Towards verifying Ethereum smart contract bytecode in Isabelle/HOL. In CPP. ACM 66–77.
Cited by
64 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Secure compilation of rich smart contracts on poor UTXO blockchains;2024 IEEE 9th European Symposium on Security and Privacy (EuroS&P);2024-07-08
2. Verifying Declarative Smart Contracts;Proceedings of the IEEE/ACM 46th International Conference on Software Engineering;2024-04-12
3. The Session Abstract Machine;Lecture Notes in Computer Science;2024
4. A 5 Year Bibliometric Review of Programming Language Research Dynamics in Southeast Asia (2018-2023);SSRN Electronic Journal;2024
5. Asparagus: Automated Synthesis of Parametric Gas Upper-Bounds for Smart Contracts;Proceedings of the ACM on Programming Languages;2023-10-16