新闻资讯
了解资讯最新动态,掌握实时资讯
人工智能给区块链发展提供的机会
2019-02-14 11:41:05

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

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

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

人工智能给区块链发展提供的机会
 

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

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

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

  虽然形式验证不属于人工智能技术,但AI确实能够在很多方面提高形式验证的性能。事实上,形式验证技术为了解决状态爆炸问题而引入了大量的启发式算法,AI能够找到更优化的启发条件。另一方面,把源代码表示为抽象语法树后,我们完全可以利用递归神经网络的模式提炼能力进行安全漏洞检查,目前这方面已经有一些成功的工作。

  相对于静态验证,动态验证需要在分布式不可信环境下的动态程序执行过程中发现潜在漏洞,其难度更高。一般说来,此时需要对智能合约进行「沙箱」仿真,即在测试链上执行代码,以人工方式注入攻击。当前快速发展的生成对抗网络(Generative Adversarial Networks)提供了在小量攻击范例的基础上自动产生攻击代码的可能性,有望为智能合约安全性提供新的工具。

  同时,AI技术也可以和智能合约虚拟机结合,进行动态漏洞嗅探。与静态检查不同,动态检查一般不需要在源代码中精确定位潜在漏洞,因此解释性较差的深度学习技术具有更好的可行性。

  2.智能合约代码生成

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

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

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

  3.AI挖矿函数

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

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

  除此之外,挖矿函数应具有增值性或公益性,即挖矿能够产生虚拟货币之外的价值。事实上,当前AI应用面临算力不足的困境,如果能够通过区块链的奖励机制吸引算力投入,的确可以获得事半功倍的效果。

  从提供算力的角度看,显然训练深度神经网络等机器学习模型的实际意义最大。不仅如此,训练过程也确实具有单向性,即训练过程强度高,但是验证过程(即对已知结果数据做一次推断)强度很低。不过,深度神经网络的训练难度很难预测,因此也不容易控制,而且训练时一般需要传递大量的训练样本数据,网络传输压力很大。由此可见,深度神经网络的训练过程作为挖矿函数仍具有很大困难。

  另一个可能的AI挖矿函数是马尔可夫链蒙特卡洛(Markov Chain Monte Carlo,MCMC)算法。MCMC在贝叶斯学习和推理中具有极其重要的作用,被选为二十世纪十大算法之一。该算法建立在随机采样基础至少,目的是从已知概率分布的随机数出发,产生针对特定后验概率分布的随机数并推测该分布的特性。MCMC具有单向性,难度相对可控。但是,MCMC作为挖矿函数的缺点是在验证时需要传递比较大量的数据。

  Matrix AI区块链提出了一种新的基于深度学习的挖矿机理,其来源是针对深度神经网络的对抗攻击。当前,深度神经网络最成熟的应用领域是图像识别。然而,近来人们发现深度神经网络存在着「盲点」,即以一定方式修改图片,此时人眼仍然能够正常分辨图片内容,但深度神经网络却会做出错误分类结果。

  那么,怎样找到修改图片的方法?目前大多数算法都使用随机优化方法,对图片引入噪声形成攻击。该算法具有成为挖矿函数的潜力,在单向性、难度、带宽等方面均能够满足要求。当然,该方法的公益性稍显不足,主要是能够利用区块链算力寻找对抗攻击实例,从而帮助我们更好地理解人脑和深度神经网络的区别。

  4.区块链自动治理

  任意复杂系统在全生命周期过程中都要经历自身和环境的变化,因此需要一组规则决定在变化发生时怎样对系统自身进行改变。规则可以体现为代码(例如智能合约)、法律、过程(例如X发生时必须执行Y动作)和责任要求。系统治理就是创建、更新和放弃这些规则的决策过程。由于区块链的去中心化特点,其治理过程涉及到平衡开发者、矿工、用户和商业实体的利益平衡。

  区块链系统传统上采用离线治理方式,即任何人均可以提出改变治理规则的建议,但是否采纳某项建议则需要按照一定的协议对建议进行评估,最后通过多方投票的方式决定最终决策并修改相关代码上线执行。比特币的相关治理通过BIP(Bitcoin Improvement Proposal)协议进行,虽然决策速度较慢,但是很多人认为相应的渐变过程对比特币的可持续发展是有利的。

  另一方面,目前也有不少人认为基于人工智能的自主、在线治理更适合于高速变化的网络环境。在这种情况下,治理过程可以通过基于AI的增强式学习实现,DFINITY区块链甚至提出使用AI代理作为用户代表自动进行投票。

本文链接:http://www.lrqukuailian.com///news/28.html