微众银行区块链-智能合约编程语言新探索-2021.3-28页_4mb
报告摘要
Liquid 智能合约编程语言总结
核心内容
Liquid 是由微众银行区块链研发的一种新型智能合约编程语言,旨在解决现有智能合约语言在安全、性能、开发体验及定制能力方面的不足。它基于“SPEC”设计规范,融合了 Rust 语言的优势,并通过宏系统实现元编程,使开发者能够更高效、安全地编写智能合约。
主要观点
- 区块链作为新基建:国家将区块链纳入“新基建”范畴,推动其在数字经济中的应用,智能合约作为区块链的重要组成部分,其编程语言的优化至关重要。
- 智能合约的挑战:当前智能合约语言在安全性、执行效率、开发体验及编程模型的多样性方面存在明显短板,尤其在隐私保护、跨链协同、多方协作等场景下表现不足。
- Liquid 的设计目标:Liquid 以安全(Security)、性能(Performance)、体验(Experience)和定制能力(Customization)为核心,致力于提供更全面、高效的智能合约开发解决方案。
关键信息
一、引言
- 区块链技术被纳入国家“十四五”规划,成为数字经济重点产业。
- 智能合约作为连接区块链底层技术与现实业务的枢纽,其编程语言的优化对推动分布式应用发展至关重要。
- Liquid 项目由微众银行区块链发起,完全开源,并在 FISCO BCOS 社区中成立专项兴趣小组(CTSC-SIG)以推动共建。
二、智能合约编程语言概况
- 智能合约的基本概念:智能合约是自动化、可编程的协议,部署在区块链上,不可篡改且自动执行。
- 智能合约的核心价值:
- 数据隐私保护与权限管理;
- 降低信任成本,提升协作效率;
- 支持多种业务场景,如公共部门管理、跨链协同等。
- 常见智能合约语言:
- Solidity:以太坊主流语言,语法接近 JavaScript,支持复杂类型和继承;
- Move:专注于数字资产,提供资源模型和严格的使用限制;
- DAML:专为多方金融协作设计,内置防御机制。
三、智能合约编程语言面临的挑战
- 安全性问题:
- 数据隐私难以保障;
- 智能合约漏洞频发,如 The DAO 事件造成的重大损失;
- 需要更强大的安全检测机制,如形式化验证。
- 执行效率瓶颈:
- 区块链虚拟机限制并行化,影响合约执行效率;
- 以太坊 EVM 的低效运行是行业普遍痛点。
- 开发体验不足:
- 工具链不完善,学习曲线陡峭;
- 缺乏活跃的社区支持与丰富的文档资源。
- 编程模型单一:
- 传统面向过程或对象的模型难以满足跨链、多方协作等复杂场景需求;
- 需要更灵活、可扩展的编程抽象。
四、新型智能合约语言 Liquid
4.1 设计思路
- 基于 Rust:Liquid 以 Rust 作为宿主语言,利用其零开销抽象、内存安全、高性能等特性。
- 元编程技术:通过 Rust 的宏系统实现语言层的扩展与定制,使 Liquid 能够灵活表达智能合约的特殊语义。
- 代码透明性:Liquid 编写的合约本质上是合法的 Rust 程序,可借助现有 Rust 工具链进行开发。
4.2 总体架构
- 开发工具:
cargo-liquid提供项目创建、构建、优化等功能,支持 ABI 生成、跨平台编译等。 - Lang 模块:包括
contract、storage、methods等宏,用于定义合约结构与方法。 - Core 模块:提供区块链底层接口封装,如
get_storage、set_storage、now等,支持链上与链下两种执行环境。 - Args 模块:涵盖合约参数编解码、ABI 生成、内存分配等功能,确保合约与外部系统的兼容性。
4.3 Liquid 优势
- 安全:
- 支持加密原语,实现数据隐匿;
- 提供非交互式零知识(NIZK)证明,确保数据访问权限;
- 内置形式化验证工具,支持静态验证与属性规范。
- 性能:
- 支持将合约编译为 Wasm 字节码,提升执行效率;
- 通过数据流分析实现并行执行,减少执行时间。
- 体验:
- 利用 Rust 生态丰富的工具链(如 Cargo、GDB、LLDB)提升开发效率;
- 提供单元测试、模糊测试、代码优化工具,简化开发流程。
- 定制能力:
- 支持通过宏系统定制语言模型,如 PDC(可编程分布式协作)与跨链协同;
- 实现灵活的资产模型(LAM),支持多样化的资产类型与管理方式。
五、总结与展望
- Liquid 作为智能合约编程语言的创新尝试,具备安全性、性能、开发体验和定制能力四大优势;
- 未来 Liquid 将持续优化并支持形式化验证、跨链协同等高级功能,推动区块链在更多领域的应用;
- 微众银行区块链致力于构建开源、协同、安全的智能合约生态,助力产业数字化升级。
技术路线图
- Q1:完成 Liquid 基础版本开发,包括 LAM、PDC 模型及
cargo-liquid; - Q2:实现合约自动并行化与基于 NIZK 的数据确权;
- Q3:整合 WeCross 跨链技术,支持异步化资产转移与跨系统合约调用;
- Q4:引入形式化验证方案,提升合约安全性与健壮性。
致谢与参考文献
- 感谢清华大学软件学院软件系统安全保障小组、中山大学深圳研究院区块链与智能金融研究中心的协助;
- 引用文献涵盖智能合约定义、安全分析、性能评估及跨链研究等多个方向,为 Liquid 的设计与实现提供理论支持。
注:本总结基于原文内容提炼,未添加额外信息。
展开完整摘要
试读结束,高清完整版pdf/doc/ppt,请点下载