来源:IEICE Transactions December 2022
作者:Yaoyu Zhang, Jiarui Zhang, Han Zhang
单位:安徽省高校区块链技术研究分中心
一、核心内容
针对现有的智能合约自动生成方法无法解决区块数据反泄露、隐私保护和预言处理的问题,该论文的核心内容是提出了一种基于配置的智能合约自动生成方法,旨在政府服务领域,简化智能合约的生成过程,降低开发门槛,并确保生成合约的高质量和高安全性。
方法创新点:
1、提出了一种基于配置的自动化方法,用户不需要编写代码,只需在界面上选择反泄露、隐私保护、预言处理等功能,系统会自动生成智能合约的Go语言代码。
2、合约集成了“反泄露、隐私保护、预言处理”三大功能,切合了政府服务场景中对数据隐私和敏感信息保护的需求。
3、提出了公共状态数据库的设计理念,所有的权限控制、去敏规则和预言处理规则都通过一个统一的状态数据库定义和控制。
二、方法思想
实现过程可以分为5个关键阶段:配置功能模块、公共状态数据库定义、生成智能合约代码、形式化验证、自动迭代和修正。
配置功能模块:用户通过可视化界面配置合约的功能需求,设置功能主要包括反泄露、隐私保护、预言处理等,配置项格式为:<block ID, {configuration options}
公共状态数据库定义:通过公共状态数据库定义合约所需的数据变量、访问权限和隐私保护规则。每个区块的数据和访问控制信息将存储在该数据库中。根据配置功能模块中的配置选项在数据库中单独定义。
1、反泄露:定义块的访问权限,格式<block ID, {users allowed to access}>
2、隐私保护定义:定义屏蔽公共数据时需要保护的变量和脱敏规则,格式<block ID, {<privacy variables, desensitization rules>}>
3、预言处理定义:当接收到与该块的对象和状态相关的外部信号时,系统必须执行的处理,格式{<{prophecy objects}, prophecy variables, prophecy values, contract code name for the prophecy processing>}
智能合约代码生成:根据配置和状态定义,系统将自动生成相应的Go语言智能合约代码。
形式化验证:为确保生成合约的安全性,系统利用Beosin-VaaS等工具对生成的合约进行自动漏洞检测。
自动迭代与修正:进行多轮迭代验证,直到合约达到预期的安全性和质量标准。

三、应用框架
文章选取的应用场景是针对于政务服务事项完成后的场景。政府服务领域的智能合约自动生成系统的应用框架主要围绕配置化的智能合约自动生成和区块链管理流程展开。
其中配置化的智能合约自动生成主要参考基于配置方法的基本流程,业务系统将完成的政府服务数据存入数据库;基于去披露、隐私保护、预言处理的配置,自动生成合约;对智能合约的源代码进行漏洞检测和质量检测,将通过验证的智能合约部署到区块链网络中。
数据上链流程:业务系统存入对应服务数据;联邦链中的监督节点对完成数据进行结构化,转为“交易”数据,对齐 签名并广播给参与共识的交易节点。如果达成共识,监管节点将把“交易”上传到链上,参与共识的交易节点将存储区块文件。

四、案例实现
实验环境:
操作系统: Ubuntu 16.04 LTS
平台: Hyperledger Fabric
智能合约语言: Go
公共状态数据库:CouchDB
文中案例是一个婚姻登记的政府服务场景,该案例的实现过程涵盖了从业务触发到智能合约生成、区块链存储和合约运行的完整流程。
wangli(女)和zhangwei(男)在H市民政局申请婚姻登记。办理登记的工作人员是liqiang,数据库管理员是zhaoxiaolong。最终结果是生成一份婚姻登记证明文件,文件名称为H-Marry001-2021072100009.pdf。初始配置了三大功能的对应函数如下图:

防泄漏配置:定义该区块数据 四人均可访问
隐私保护配置:对用户身份证号和姓名进行部分脱敏。
预言处理配置:当婚姻状态=“离婚”时,自动触发changeMarryStatus函数。
系统根据初始区块的配置需求,结合对应公共状态数据库中的记录生成对应的智能合约代码,使用Beosin-VaaS平台为这种情况生成的智能合约代码进行检查。

同时对于合约代码中反泄露、隐私保护和预言处理的功能进行有效性验证、对于自动生成的智能合约代码进行质量和安全性分析,fig7-10分别对应无访问权限、无隐私保护、有隐私保护、预言结果处理的状态示意。

五、总结与对齐思考
总结:
本文提出了一种基于配置的智能合约自动生成方法,旨在解决现有智能合约开发门槛高、依赖第三方工具和环境适配性差等问题,聚焦于政府服务场景中的去披露、隐私保护和预言处理三大核心功能。
对齐思考:
1)文章中提出的基于配置的智能合约自动生成,可以归类于DSL的技术方向,合约的逻辑主要通过用户在限定范围内选择具体的配置项,缺乏灵活的业务逻辑扩展能力。对齐大模型生成方法,大模型灵活性更高,但其生成的代码的安全性和鲁棒性难以保证。可以结合二者的优势,配置式生成定义关键的安全规则和可验证逻辑,大模型生成的结果可用于补充业务逻辑的生成。
2)文中的方法应用场景是政府服务,类比如政府服务中的婚姻登记、财政管理等,对于固定业务场景,选择配置式生成方法相比于大模型更加适用。但文中提到的couchDB作为公共状态数据库来管理区块中的状态和隐私信息,如果遭受入侵篡改,给隐私和数据安全带来一定的风险。可以引入零知识证明和同态加密来增强隐私保护