Blockchain is a distributed ledger technology that gained popularity for enabling the transformation of cryptocurrency among peers without mediation by a centralized third-party authority. Smart contracts expand the applications of blockchain technology and have played a role in its widespread adoption. Smart contracts are immutable digital programs that are deployed on blockchains to codify agreements between parties. Existing smart contract implementations have faced challenges, including security vulnerabilities, leading to significant losses and concerns. This has stimulated a wave of attempts to improve Smart Contract Languages (SCLs) to overcome implementation challenges and ensure code quality, producing many languages with diverse features. Scholars have made some attempts to classify SCLs and clarify the process of selecting an SCL, but to the best of our knowledge, no comprehensive survey of existing SCLs has been published. Our work surpasses earlier efforts by evaluating a significantly larger set of SCLs, in greater depth, to ease the process of SCL selection for blockchain research and implementation. In this paper, we (1) propose a robust framework for comparing existing SCLs, (2) analyze and discuss 36 SCLs, addressing issues beyond those used to construct the comparison framework, and (3) define new parameters for future research and development of SCLs. The survey provides a guide for those who intend to select or use an SCL to implement smart contracts, develop new SCLs, or add new extensions to the existing SCLs.
翻译:区块链是一种分布式账本技术,因其能够在无中心化第三方中介的情况下实现点对点加密货币转移而受到广泛关注。智能合约扩展了区块链技术的应用范围,并在其广泛普及过程中发挥了关键作用。智能合约是部署在区块链上、用于编码各方协议且不可篡改的数字程序。现有智能合约实现面临诸多挑战,包括安全漏洞问题,导致重大损失并引发担忧。这促使学界掀起了一波改进智能合约语言(SCL)的浪潮,旨在克服实现难题并保障代码质量,催生了众多具有多样化特性的编程语言。学者们已尝试对SCL进行分类并厘清语言选择流程,但据我们所知,目前尚未有关于现有SCL的综合综述。本研究超越了先前工作,通过更深入地评估更广泛的SCL集合,为区块链研究与实现中的SCL选择提供便利。本文:(1)提出了一个比较现有SCL的稳健框架;(2)分析并讨论了36种SCL,涵盖框架构建之外的技术议题;(3)为SCL的未来研究与发展定义了新参数。本综述为计划选择或使用SCL实现智能合约、开发新型SCL或扩展现有SCL功能的研究者提供了指导。