基于机器学习框架下的区块链智能合约脚本设计

2021-06-26 09:53符安文
中国科技纵横 2021年5期
关键词:以太脚本合约

符安文

(成都埃克森尔科技有限公司,四川成都 610041)

1.区块链智能合约概述

事务及事件信息载入智能合约后,将针对该部分资源状态做更新处理,触发智能合约,以完成状态机判断操作。在该路径中,若达到触发的条件要求,则启用状态机,由其依据既定的合约执行。基于智能合约的处理机制具有全面性,其将众筹规则纳入智能合约内,同时构成完整的区块链众筹合约系统。在区块链的技术体系中,依托于物联网可伸缩管理机制,用户可根据需求及时调用智能合约,从而以便捷化的方式精准完成对物联网设备的伸缩管理操作。

2.区块链智能合约脚本设计

通过对机器学习算法的深入应用,智能合约脚本采用的是利用该方法训练后的模型,对上链数据做拟合预测操作。

2.1 功能架构分析

系统功能架构的核心包含物理层、机器学习层及区块链层,各自有其特定的功能,同时又密切关联,形成一套秩序性较好的工作机制。物理层的核心功能在于采集数据,通过对移动终端、传感器等相关装置的协同应用,采集数据并将其传输至机器学习层;继而对该部分前端数据做规范化处理,由此得到两个细分部分,即训练数据集和测试数据集,各自又有特定的使用路径,分别用于机器学习模型的训练、性能的评估;在得到训练后,将生成一套训练模型参数,此部分内容会被完整地写入智能合约内,对其执行编译操作,最终可以部署至区块链中[1]。经过该处理流程,可以完成模型预测和数据拟合操作,最终满足补全数据的要求。关于系统的架构,如图1所示。

图1 系统功能架构

2.2 智能合约脚本

智能合约的属性体现在“值”“状态”两个方面。合约触发条件符合要求后,将以预设信息为依据,启用状态机并选择合约动作自动执行。经特定机制的训练后,合约脚本模型获得某满足要求的拟合函数,将其视为训练模型,以完成对上链数据缺失值的补充[2]。

关键的流程为:若存在访问区块链的需求,则向机器学习器内输入含缺失值的数据X;通过对合约脚本的运行,可以生成一个参数估计值β,其会被编译至智能合约内;此后,将X、Y视为完整数据,向区块链内存入,此时将触发智能合约,在数据接收端完成模型预测的同时,还可实现对数据的拟合操作,由此产生响应Y,其特点在于具有完善性,换言之,包含了缺失值的拟合填充值。

数据预处理合约算法伪代码为:

输入:待处理数据;

输出:含两条路径,处理完成则向区块链存入数据;未顺利完成处理操作,则返回错误信息。

1.编译智能合约;

2.部署智能合约并调用start();

3.解锁已有账户;

4.获取输入数据;

5.与最佳估计脚本交互;

6.If交互出错;

7.Returnerror;

8.Else获得β值;

9.Ifβ与智能合约脚本不符;

10.Returnerror;

11.Else异步执行:实例化智能合约;

12.ThenputParams(最佳估计系数);

13.For:数据输入;

14.If:数据存入区块链;

15.else:y=regression(输入单行数据);

16.数据与Y打包并存入区块链;

17.End。

在本次设计中,采用到线性回归模型,通过对机器学习与区块链智能合约的深入融合,能够高效实现对数据的预处理操作目标。单组数据包含X、Y两部分数据,数据收集时缺失Y,依托于线性回归特性,能够得到变量的定量关系,在完成数据训练操作后,可以得到最佳估计β值的转置,其能够与剩余数据X矩阵相乘,至此则可以达到补全缺失值Y的效果。基于Solidity语言,可以将“Y=β×X”写入智能合约脚本。式中,Y为预测的因变量,β为最佳估计(经过训练后得出),X为自变量。

在实际应用中,需借助特定的触发条件,以便调取满足需求的智能合约。在操作中,输入自变量X,通过与β矩阵的转置相乘后,即可产生Y,将经过前述流程后的Y与自变量X存入区块链。需明确的是,一旦X、Y数据被存入区块链且上传完毕,则不具有可篡改的可能,此时也意味着结束了智能合约的部署与调用操作。

3.功能设计

以太坊是开源的底层系统,在其组成体系中,合约对应的是程序,即一个合约则指的是区块链中的某个程序。在功能设计中,以太坊虚拟机能够提供脚本语言,可执行以太坊合约。在本次设计中,则创建了以太坊区块链实验环境,在此前提下实现区块链智能合约脚本[3]。

从整个实现过程来看,其涵盖了如下3部分内容:

(1)回归算法。依据线性回归算法,经设计后生成数据预处理算法模型,利用Python语言编写,解出最佳估计值。

(2)合约部署。在完成truffe编译操作后,能够从语法正确性的角度对智能合约做出判断,同时将其部署至区块链上。在智能合约的部署工作中,应当确保区块链网络有正在挖矿的节点进行验证。具体至本次设计中,在以太坊私有链上部署智能合约脚本,目的在于完成对上链数据的预处理操作。

(3)合约调用。此操作的基本目的在于验证功能是否完善,同时对机器学习算法的功能实现性做出判断,即是否可以完成对数据的拟合操作,以及其是否能够上传并有效存入区块链。对此,采用的是乐高模型价格预测数据,以完成验证操作,对智能合约脚本的可行性做出判断。

根据智能合约的调用结果,所提出的智能合约脚本可行性较佳,可高效满足预期的设计目标;此外,经验证后也充分说明了该区块链智能合约的可行性,可以深度融合机器学习和区块链,并在区块链内按照特定的流程高效完成数据的存储以及处理操作;借助区块链不可篡改的特性,可有效减小外部对数据的干扰,保证数据存储的安全性,也能够给数据的处理提供安全层面的保障。总体来看,基于机器学习的区块链智能合约综合应用效果较佳。

4.结语

在本文的设计中,以机器学习算法为核心,实现工业数据拟合的区块链应用,经验证后认为该设计方案具有可行性,可以给同仁提供参考。同时也可以预见的是,区块链的发展已经不再局限于数字货币领域,其正逐步朝着智能合约方向变迁,在未来的区块链技术探索路径中,智能合约将是重要的方向。

猜你喜欢
以太脚本合约
以太极为旗,开启新时代“黄河大合唱”
酒驾
车易链:做汽车业的“以太坊”
数据库系统shell脚本应用
快乐假期
百通推出入门级快速工业以太网络交换器系列
以太互联 高效便捷 经济、可靠、易用的小型可编程控制器
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望