小安论币:区块链的人工结合智能

人工智能确实能够为应对其中一些挑战提供新的思路,特别是在智能合约处理和挖矿函数设计上潜力极大,也有人认为AI能够为区块链提供自动治理能力。

1.安全验证

区块链的安全需要对各个网络和应用层次进行综合保护才能实现,本文主要关注智能合约的安全性。由于智能合约属于软件代码,因此传统式软件缺陷和安全漏洞可以通过形式验证(Formal Verification)的方法处理,近年来基于机器学习的漏洞模式检测手段已经出现,一些工作证明了可以把抽象语法树作为递归神经网络的输入进行有无漏洞的检测。

同时,智能合约在分布式网络上以并发方式执行,因此需要在沙箱网络上引入动态攻防手段,验证动态安全性。在动态攻击过程中,除了使用已知攻击方式外,当前的生成式网络也运行自行产生攻击方式。实际上,目前正在蓬勃发展的对抗式生成网络提供了将合约和攻击放在统一框架之内进行全面优化的可能性。

静态验证是对源代码或字节码(Byte Code)直接进行分析(不需要执行代码),分析工具目前以形式验证(Formal Verification)为主,但基于深度神经网络的机器学习方法也在快速出现。形式验证是在硬件验证的基础上发展起来的,目前已被广泛用于软件安全验证。其手段是把程序表示为一定的形式化模型(即基于时序逻辑的数学模型),然后用数学方法证明其正确性。

形式验证的方法可以分为符号执行(Symbolic Execution)、模型检查(Model Checking)和定理证明(Theorem Proof)三大类。符号执行算法遍历代码的所有可能执行路径,并提炼出每条路径的状态转移与相应条件,并检查每一路径上是否可能存在违反约束的反例。

模型检查把程序表示为逻辑模型,把针对某一安全漏洞的安全条件表示为相应的属性,然后使用可满足性求解器寻找是否存在违反该属性的输入数值,如果存在,则表示代码存在漏洞,否则表示代码一定满足该属性。定理证明比模型检查的能力更强,能够做函数级别的检查,但一般需要专家级别的人工干预。

2. 智能合约代码生成

智能合约表现为使用编程语言撰写的程序,因此使用门槛较高会严重影响智能合约的可用性。不具备编程能力的一般用户必须聘请程序员完成合同编制工作,但是Solidity现有社区规模较小、编程人员不足。人工智能技术提供了自动综合代码的可能性,当前以微软DeepCoder为代表的深度神经网络已能够在专用领域根据一组示例自动产生代码。

值得注意的是,虽然与针对任意问题的自动化代码生成的距离仍然遥远,但智能合约本身已经呈现出许多显著特色,例如程序具有比较清晰的状态(可以用有限状态机表示)、计算过程相对简单(主要是针对虚拟货币的算数运算)、存在典型模式(例如存取款、投票、彩票等),使得针对性的代码生成具有较强的可能性。

智能合约代码生成工具流程起始于以简单脚本语言、图形化方式甚至自然语言捕捉的交易意图,然后通过机器学习工具抽取交易关键特征并对交易进行分类,在此基础上结合智能合约设计模式进行代码综合。代码生成工具还可以进一步与安全验证工具结合,进行迭代式自动攻击和代码修订,从而最大化实现安全性。

3. AI挖矿函数

中本聪为比特币设计了非常精巧的挖坑函数,即根据块内交易的内容使用单向哈希函数计算满足特定要求的随机数。一般说来,挖矿函数应该具有这样一些特点:

首先,函数具有单向性,即计算结果难度较高,无法直接猜测,但验证结果的正确性却很容易;其次,函数计算应具有一定强度,同时难度可以调整;第三,计算该函数时不需要传递大量数据,即不会给区块链网络带来额外带宽负载;第四,函数应具有公平性,也就是说,算力强的节点只是拥有较高概率获得奖励。交流请加笔者!

本文来自投稿,不代表链都财经立场,如若转载,请注明出处:http://www.liandu24.com/archives/5937.html

发表评论

您的电子邮箱地址不会被公开。