Asterisk: Secure Programming Language for Smart Contracts (Student Talk)
In this paper, we introduce Asterisk as a new statically-typed programming language that is built on top of the Scala compiler. This new programming language is particularly designed for building safe and reliable Ethereum smart contracts. Because the Ethereum platform supports the execution of decentralized programs (i.e., smart contracts), Asterisk can have broad applications in new domains of technology such as financial system, health care, and 5G networks. Moreover, Ethereum operates the second-largest cryptocurrency after Bitcoin, typically for holding and transferring digital assets on the blockchain platform. Consequently, the role of smart contract compilers is even more important in generating portable, secure, and predictable code under real-world circumstances in the blockchain network. Accordingly, Asterisk aims to empower the Ethereum community to deploy robust code for business-critical and high-value use cases. Asterisk’s compilation architecture leverages Scala, and therefore, the generated smart contracts by Asterisk are cross-platform in the sense that a compiled contract runs on all platforms for which there exists a Java Virtual Machine (JVM). The compiler structure also supports formal verification to guarantee the reliability and safety of the bytecode produced by Asterisk at runtime.