论文部分内容阅读
随着一系列以比特币为代表的“加密数字货币”大热,其底层的支撑技术“区块链”也浮出水面,受到各界的广泛关注。以太坊作为目前用户活跃度最高的区块链平台之一,创新性的在区块链的基础上扩展了可自动化执行的脚本程序,即智能合约。智能合约允许用户通过编写合约代码来满足各种复杂的业务场景需求,并依托区块链的特性保证业务执行的安全透明,在不依赖第三方中心机构的同时,也解决了信任问题。因此,可将涉及中间商和信任等问题的业务流程,以智能合约的形式部署到区块链上去执行。然而,在以太坊中智能合约的部署和执行需要消耗一定的资源,用以太坊中定义的单位Gas进行表示,Gas可以其视为具有价值的货币。如何降低业务流程智能合约部署时的成本花费,即降低Gas的消耗量,是推动业务流程转移到区块链中执行所面临的主要问题。因此,需要对业务流程智能合约进行优化。通过研究发现,目前主流的降低智能合约Gas消耗方式是优化业务流程的执行过程,避免不必要步骤的执行,进而降低智能合约执行时的Gas消耗,但是没有考虑智能合约部署时的Gas消耗。针对业务流程智能合约部署时的Gas消耗问题,本文提出一种业务流程智能合约的优化方法。首先,采用业务流程建模标记(Business Process Modeling Notation,BPMN)对目标业务流程进行建模。其次,基于BPMN模型可扩展为Petri网且Petri网能够进行化简的特性,找出BPMN模型中可以化简的节点组合,确定相应的化简规则。最后,通过收集原BPMN业务流程模型中被简化掉的任务或网关条件,在化简后的BPMN模型XML文件中进行标注,并根据BPMN模型XML文件设计了一种BPMN模型到Solidity代码的映射规则,根据简化后的BPMN业务流程模型编写出优化的智能合约代码。实验结果表明,优化的业务流程智能合约经以太坊区块链的实际部署测试,能够降低业务流程智能合约部署时的Gas消耗。