论文部分内容阅读
智能合约是在数字加密货币和区块链技术基础上发展起来的在可信执行环境下执行,管理数字化资产的灵活交易协议。领域特定语言(DSL)具有领域问题表达能力强、抽象层次高、语言精练等特点,从而方便使用者高效地建立领域模型。区块链技术具有去中心化、数据有序、可编程和安全可信等特点。为智能合约设计简单易用的描述语言和构建普适性的系统执行模型是将智能合约推广应用的前提条件。从智能合约的建模、设计、实现到应用,当前并没有形成系统的解决方案。课题旨在使用DSL和区块链技术构建去中心化的点对点分布式模型,实现智能合约的可编程性和执行环境的可信性。设计智能合约的基本思路是以Fabric作为底层区块链服务,设计DSL,建立DSL描述的合约文本与链码对账本处理函数之间的映射。本课题的主要工作包括三个部分:(1)构建了可编程智能合约应用的系统模型。探索构建智能合约应用的系统性方法,对系统架构、编程方法和服务接口进行设计和定义。采用Thrift RPC和C/S模型设计的可编程智能合约系统框架隐藏了交易过程的细节,为智能合约在不同产品和场景下提供了统一的执行模型。(2)基于llvmlite设计了智能合约的领域特定语言PSL。详细介绍了PSL词法分析、语法分析、抽象语法树和LLVM IR代码生成、解释器构造等阶段的设计。探索DSL的交互性和扩展性,实现了PSL与宿主语言、共享库之间的相互调用。提出IR內建函数、基础语言库和共享库三种实现“领域性”的方法。(3)以众筹股权为例设计了原型系统。设计和实现了众筹项目合约描述、账本数据库、链码处理函数。采用了共享库的方法,实现领域特性,状态变换驱动智能合约的执行。展示了测试数据:交易过程中数据包括验证节点拓扑结构、区块信息和交易数据;不同终端用户和验证节点的情况下的合约执行性能对比,以及系统调用链路的耗时分析。通过原型系统的构建和测试,验证了智能合约的可编程性和可信执行性。所设计的可编程智能合约具有三个方面的技术优势:PSL简单易用,具有良好的扩展性;采用RPC通信,交易通道易于实现多语言多平台的兼容;构建的可编程智能合约系统框架具有普适性,易于扩展。