关键词:
智能合约
形式化方法
有限状态机
状态图拆分
合约映射
摘要:
智能合约具有去中心化、不可篡改、公开透明和自动执行的特点,能够在不需要第三方监管的情况下进行可信交易,并广泛应用于金融证券、数字资产管理、金融借贷、保险和慈善等领域。智能合约一般由技术人员开发,然而合约条款专业性强,合约的转化缺乏统一的规范和标准,导致开发人员编写的智能合约存在歧义或模糊性。为了准确规范地描述合约的业务逻辑,标准化智能合约的开发,本文围绕竞拍智能合约的形式化定义进行研究,构建了基于有限状态机的智能合约模型。在此基础上提出了合约状态图拆分算法,完成了基于有限状态机的智能合约模型与合约开发语言的映射,并设计实现了竞拍合约模板。本文主要贡献如下:
(1)为了解决智能合约开发中存在的专业性强,可读性差的问题,本文采用有限状态机对竞拍智能合约进行形式化定义。首先构建智能合约的有限状态机模型,以承诺五元组作为基本元素,对公开拍卖和盲拍过程进行了形式化定义,清晰地阐明了参与方之间的权利和责任。然后用有限状态机模型表示出合约状态及状态之间的转移关系,并通过状态图直观展示了合约状态的转移过程,提高了竞拍智能合约的可读性。
(2)为了准确规范地将形式化模型转换为智能合约开发语言,本文提出了基于状态图拆分的竞拍智能合约模板设计方案。首先利用合约状态图拆分算法,将复杂的状态图拆分为状态队列、事件队列和状态转移路径。并将拆分得到的结构与智能合约开发语言Solidity实现规则映射。在此基础上设计了竞拍合约通用模板、公开拍卖合约模板、盲拍合约模板。最后通过实验分析,验证了基于合约模板设计的竞拍合约的安全性,并且使用模板后,代码复用率高,gas消耗较少。
(3)为了降低基于区块链的竞拍平台链上存储数据的gas消耗,本文提出了区块链、IPFS和My SQL相结合的数据存储方案。IPFS存储商品图片和商品描述信息,链上仅存储其哈希地址以及平台交易产生的其他数据,My SQL数据库存储商品信息并提供商品检索功能。通过实验分析了本文提出的数据存储方案在减少存储成本方面的优势。此外,本文设计并实现了基于区块链的竞拍平台。首先对平台进行了需求分析,明确了平台所需的功能和特性。接着阐述了竞拍平台的架构和功能模块设计,利用时序图对平台功能流程进行了详细的解释和说明。最后使用***、truffle等技术完成了竞拍平台的实现。