1、2.1 智能合约的基本概念2.2 智能合约的核心价值2.3 常见智能合约编程语言4.1 设计思路4.2 总体架构4.3 Liquid 优势3.1 安全性急需加固3.2 效率瓶颈凸显3.3 开发者期望更佳体验3.4 编程模式需满足多样化场景4.3.1 安全4.3.2 性能4.3.3 体验4.3.4 定制能力目录一、引言五、总结与展望致谢参考文献二、智能合约编程语言概况四、新型智能合约语言 Liquid三、智能合约编程语言面临的挑战01212223030805030905031206041406071417181812020 年 4 月 20 日,国家发展改革委首次明确新型基础设施建设(简称新基建
2、)的范围,将区块链视为新基建的核心技术和自主创新的重要突破口。在近期发布的国家“十四五”规划纲要中,区块链也被列入数字经济重点产业,迎来发展“加速度”。具体到产业内容上,纲要明确指出推动智能合约、共识算法、加密算法、分布式系统等关键技术的创新。作为连接区块链底层技术与现实业务的枢纽,智能合约在推动分布式应用繁荣发展的过程中扮演着重要角色。而在智能合约的开发过程中,其编程语言是开发者表达业务逻辑的抽象工具,也是构筑分布式应用的重要基石。目前,业界已有 Solidity 语言、Move 语言及 DAML 等常见的智能合约编程语言。然而,不断多样化、复杂化的应用场景给智能合约编程语言提出全新挑战:进
3、一步重视数据隐私,智能合约下辖的数据需能够明确权限归属;分布式、不可篡改的执行环境要求智能合约具备更强的鲁棒性;日渐扩大的服务规模要求智能合约能够更加高效运行;为了提升开发效率,开发过程需要对开发者更加友好;不断涌现的跨链等新型计算范式要求能够直接提供原生抽象。常见的智能合约编程语言在这些方面均存在不同程度的局限性,制约了分布式应用的进一步发展。一、引言2微众银行区块链着眼于现有挑战,结合在区块链底层核心技术以及分布式商业应用落地的探索实践,提出涵盖安全(Security)、性能(Performance)、体验(Experience)及定制能力(Customization )四个方面的“SPE
4、C”智能合约编程语言设计规范。在“SPEC”设计规范的基础上,微众银行区块链推出全新的智能合约编程语言 Liquid。在安全方面,Liquid 支持使用加密原语对数据进行隐匿,从而确保数据安全性;支持在智能合约的编译期及运行期全方位进行安全检测,从而提升逻辑鲁棒性。在性能方面,Liquid 通过优化执行引擎并结合并行化等技术,让智能合约的执行效率取得长足进步。在体验方面,Liquid 提供丰富的周边工具及资源,让智能合约的开发过程敏捷流畅。在定制能力方面,通过宏扩展技术,Liquid 能够在语言层提供分布式协作、跨链协同等编程模型,帮助开发者更加便捷地实现业务需求。本文致力于以区块链智能合约为
5、研究对象,对智能合约及编程语言的基本概念、存在的问题以及研究现状进行系统性梳理,并介绍 Liquid 的设计理念及关键实现细节,供智能合约开发者交流探讨。微众银行区块链秉承多方参与、资源共享、友好协作和价值整合的理念,将Liquid项目完全向公众开源,并在 FISCO BCOS 开源社区中成立了智能合约编译技术专项兴趣小组(CTSC-SIG),欢迎广大企业及技术爱好者踊跃参与 Liquid 项目共建。3智能合约的概念最早由 Nick Szabo1于 1996 年提出,所谓“合约”,是指合作的多方为达成一致所共同签订的协议,里面记录了涉及权利与义务的条款及执行条款的前置条件,其效力由第三方保证;
6、而“智能”便意指自动化及可编程。区块链上的智能合约可以理解为在区块链上签订的协议,它以程序片段的形式存储于区块链上,根据设定的条件自动执行,无需依赖可信第三方。智能合约的参与方无需担心协议失效,因为一旦被部署至区块链上,智能合约的内容便不可被篡改。智能合约的参与方也无需担心协议不被履行,因为当达到预设条件时,区块链系统便会在分布式环境下对智能合约进行确定性执行,并根据给定输入获取对应的输出,从而保障合约执行结果有效。相比传统合约,智能合约具有如下优势2:(1) 低风险:部署在区块链上的智能合约不能被任意篡改,且由于区块链上的交易被冗余备份在整个分布式系统中,因此这些交易都可被溯源,从而可以抑制