区块链的五大挑战以及AI带来的四大机遇
过去几年中,区块链和人工智能无疑是最热的两个技术词汇,相关成果在学术界引起了广泛的关注,在资本圈也极受追捧。
近期,链捕手(ID:iqklbs)向清华大学副教授、MATRIX首席人工智能科学家邓仰东教授约稿,请他谈一谈对区块链与人工智能关系的理解。邓仰东教授主攻人工智能、电子设计自动化、并行算法和图形处理器架构等领域的研究,曾为中国高铁设计及研发了人工智能预警安全解决方案。
在本文中,邓仰东教授详解了人工智能与区块链行业各自遇到的挑战以及AI能给区块链带来哪些机会,具有很高的可读性以及思考价值,希望能对你有所启发。
文/邓仰东
自从2018年以来,行业里有很多关于融合区块链和人工智能的探讨,出现了AI赋能区块链、区块链AI市场等新提法,也有人认为还可以进一步结合物联网(IoT),甚至还有人认为区块链和人工智能能够进一步整合量子物理和神经科学。
那么,去除掉各种泡沫和噪声之后,究竟这种融合有无意义?具体说来,我们关注这样一系列问题:区块链和人工智能互相能为对方带来什么?二者的融合能否形成1+1>1的效果?特别是,区块链和人工智能都不是终端级产品,那么两者结合能否成为催生新的终端应用的平台?
图1.区块链和人工智能的融合
总体上看,笔者认为区块链和人工智能的融合的确能带来全新的机会,总体关系如图1。笔者将从四个方面对以上问题进行探讨。首先,简单介绍区块链和人工智能的基本概念,并且讨论当前这两者面临的主要挑战;第二,从区块链角度看,AI能否带来什么好处;第三,从AI角度看,区块链能够解决什么问题;第四,我们看看区块链和人工智能融合的一种全新可能,即离散计算资源以区块链组织而形成人工智能云平台。考虑篇幅问题,本文先讲第一部分与第二部分。
01
区块链和人工智能
区块链和人工智能是人类为了解决不同问题而形成的技术。其中, 区块链的起源在于分布式计算和密码学的研究,但成为独立的技术领域则从2009年比特币出现后才真正开始;而AI的历史可以追溯到古希腊时代亚里士多德的工作 ,现代AI则以1958年的达特茅斯会议为起点,之后又经历了至少两次起伏,新的一波人工智能热潮始于2010年前后深度神经网络的优异表现。
我们分别从区块链和人工智能的基本概念开始,探索当前两者分别面临的挑战。
1.1 区块链及其挑战
区块链的本质是去中心化的分布式账本。在早期以虚拟货币为核心的区块链上,例如比特币,区块链就是记录比特币交易历史的数据库。当前,区块链逐渐转型为分布式数据库,随着IPFS文件系统(InterPlanetary File System)的出现, 目前区块链记录的数据已不限于交易记录,可以是任意结构化或非结构化数据 。这些数据总是被编码为线性串联的数据块,每一块中包含一组串联的交易记录。
区块链记录的数据具有不可篡改的特性,即一旦上线,除非发生恶意攻击(正常情况下攻击难度很高),数据无法随意篡改。区块链的节点具有分布式、自组织的特点,不需要集中建设网络,也没有集中式的管控机制,而是由多个参与者通过共识机制共同决定。
共识机制解决在去中心化环境下,当前谁可以获得记账权的问题,其理论基础是分布式计算中的拜占庭将军问题(Byzantine Generals Problem),目前常见的共识机制有工作量证明(即Proof-Of-Work,POW)和权益证明(Proof-Of-Stake,POS)。
比特币成功设计了基于POW的共识机制(即所谓的「挖矿」),允许获得记账权的一方同时获得奖励,从而吸引了大量计算资源投入到比特币网络之中。在比特币之后,以太坊(Ethereum)引入智能合约,大幅度扩展了区块链的应用范围和灵活性。智能合约以可执行代码的方式,界定交易参与方的行为,并根据约定自动执行交易,从而使得复杂商业行为能够在区块链上实现。
经过十年的发展,区块链已经取得了长足的发展,表现为结合数字货币的公链、以产业和业务结合的联盟链、企业内部使用的私链等三种主要形式。然而,当前区块链技术在蓬勃发展的同时,也面临着一系列挑战:
-
挖矿能耗
比特币和以太坊以及其它多个主流公链均使用工作量证明作为共识算法,同时对取得记账权的节点进行奖励。以比特币为例,其工作量证明使用特定的哈希函数计算一个随机数,为了保证难度(体现为计算时间),要求结果随机数的前若干位为0(具体位数是动态调整的)。由于过去几年中虚拟货币价格出现了连续强劲上升势头,大量计算资源被投入到挖矿计算之中,并且出现了以比特大陆为代表的行业巨头。
如果把全部挖矿的计算能力折算为浮点运算,粗略估算的总体计算能力达到1023FLOPS(FLoating point Operations Per Second),已经达到谷歌计算能力的1百万倍,或者全球500强超级计算机总体计算能力的10万倍。如此庞大的计算能力当然以电力作为基础,其总用电量已经超过世界上160多个国家。
事实上,2018年Nature Energy的一篇文章指出比特币挖矿的能源损耗超过了黄金、铂金等贵金属, 1美元比特币消耗的电能实际上能够开采3.4美元的黄金 。然而,挖矿使用的电能对虚拟货币之外的世界全无意义,在全球可持续发展的大背景下尤为刺眼。
-
可扩展性
无论作为虚拟货币账本还是广义的数据库,区块链上的数据服务均以交易形式完成。由于区块链的分布式特性,交易总是并发产生的。因此,区块链的可扩展性一般指单位时间内能够支撑的最高并发交易个数。一般说来,区块链的吞吐率以Transactions Per Second(TPS)表征,计算方式如下:
TPS = 一个区块内包含的交易数量 / 区块产生时间= 一个区块内包含的交易数量 / (共识算法运行的时间 + 广播并验证的时间)
也就是说, TPS由数据块的大小、共识算法运行的时间和广播并验证的时间共同决定 。值得注意的是,由于区块链采用去中心化方式验证交易,因此必须在多数节点形成共识之后才能完成验证,其后果就是目前的区块链在节点增加的情况下交易速度必然下降。比特币的吞吐率为3.3~7TPS,以太坊略高,但也只有30TPS左右。对比而言,使用中心化方式验证交易的VISA信用卡的持续吞吐率能够达到1700TPS以上(VISA官网宣称峰值可达65000TPS)。
-
安全性
区块链采用了去中心化的共识机制,本身的安全性是比较高的。然而,区块链由网络实现,因此其网络协议的各个层次均有可能受到攻击。例如Mt Gox 交易所曾因为钱包的安全性漏洞被盗走3.6亿美元,直接导致交易所破产。
更为严重的安全隐患来自于智能合约。由于智能合约是具有图灵完备性的程序,因此其行为更加复杂,而且代码在分布式网络环境上运行时,潜在风险会大大提升。 目前的智能合约编程以Solidity语言为主,该语言成熟度相对较低,因此虽然代码由虚拟机执行,但攻击者可以利用溢出等情况侵入宿主电脑。同时,为了支持交易引入了跨合约程序调用等功能,易于遭受重入攻击 。典型案例是以太坊上的众筹项目DAO,它在2017年受到重入攻击,被盗走当时价值6千万美元的以太币。
-
易用性
智能合约的引入使得区块链在应用领域上升到全新的层次,形成了人类商业行为的一次革命。 但智能合约以程序形式体现,对一般用户来说具有一定难度 。在传统的线下世界,大多数人都可以看懂合同内容,相当比例的用户则可以在律师指导下或参照模板编写简单合同。智能合约则不然,要求用户必须具备编程能力才能撰写合同,无形中又限制了其应用范围。
-
隐私保护
在大数据时代,保护数据隐私的重要性不言而喻。目前区块链公链上的数据大体来说是完全开放的。 因此,随着区块链应用的不断拓展以及其数据库应用比重的提升,如何在区块链上引入完备的隐私保护机制已经成为亟待解决的问题 。
1.2 人工智能及其挑战
根据人工智能先驱约翰Ÿ麦卡锡的定义, 人工智能就是「制造智能机器的科学和工程」,其目的是设计制造能表现出人类认知能力的机器 。当然,智能的定义又是一个复杂的问题,业内一般认为智能其实是一种通过学习不断改变自身或外界条件从而适应环境的能力。
人工智能的领域很宽泛,机器学习是其中一部分,强调从历史中学习。过去10年中,以深度神经网络为代表的机器学习技术取得了惊人的成就,但应用的深入也使得人工智能技术开始面临一系列现实问题。
-
缺乏算力
机器学习技术,特别是深度学习技术,需要从大量样本(有标签或无标签)中提炼具有预测能力的模式。 因此,机器学习应用一般需要经历模型训练和模型推断两个阶段,其中训练过程通常计算量较大。人工智能企业目前依靠租用云服务或者自建计算集群解决算力问题,算力成本包含硬件成本、电力成本以及维护成本 。
英国的一份AI工业分析报告指出,当前训练一个模型平均需要1万英镑,而复杂深度网络的训练过程则更为昂贵。 因此,目前50%以上的人工智能公司都存在可用算力不足的问题 。
-
缺乏数据共享
在人类社会高度数字化的今天,数据源并不缺乏,但数据分享的渠道却远未畅通。在绝大多数应用场景下,数据产生和数据分析属于不同利益方。除了搜索引擎、安防、电子商务等少数领域,AI企业并不直接掌控数据来源,只能与数据提供方合作获得数据。
因此,目前常见的提法是在人工智能领域,技术不如数据和应用重要 。实际上,并非技术不重要,而是数据的获取往往具有壁垒。造成壁垒的原因很多,但其中最为关键的一个是无法保证数据提供方在共享数据之后能够共享利益。
-
缺乏可信性(可解释性)
传统工业领域并不乏使用模型的经验,金融、医疗、制造业中都有大量成熟的建模应用,在核反应堆行业购买特定模型是标准的商业模式。然而, 传统模型和机器学习模型特别是深度学习模型存在显著差异,即AI模型的可解释性较差 。
例如,金融业中常用的传统风险控制模型可以在给出风险评估的同时,说明是由于哪些因素导致风险较大(例如信用分数低、现有借贷过多等)。AI特别是深度学习模型则具有「黑盒」特性,虽然其准确率可以很高,但难以说明其推理过程,造成决策的可信性不足。
-
缺乏通用智能
人类仍然处于人工智能的早期阶段, 目前成功的AI应用主要集中在图像和语音识别领域的监督式学习以及针对确定性环境的增强式学习 。其中,监督式学习普遍存在需要大样本量、高质量标注的问题,而增强式学习对计算量的要求又过高。相比人脑智能,AI首先缺乏非监督或半监督学习能力,其次泛化能力较差,无法形成举一反三的效果。不仅如此,AI的常识和推理能力不足,缺乏「learning to learn」(自我学习解决问题)的能力,难以进行高层次认知活动。
-
缺乏隐私
机器学习对于数据隐私具有双刃剑的作用, 一方面机器学习技术也带来了盗取隐私的新手段,另一方面针对机器学习模型的隐私窃取技术(例如窃取模型参数和训练数据)也在快速出现 。
02
人工智能给区块链提供的机会
上一部分介绍了区块链目前面临的主要挑战, 人工智能确实能够为应对其中一些挑战提供新的思路,特别是在智能合约处理和挖矿函数设计上潜力极大,也有人认为AI能够为区块链提供自动治理能力 。在本文这一部分,笔者讨论人工智能为区块链提供的机会。
1.安全验证
区块链的安全需要对各个网络和应用层次进行综合保护才能实现,本文主要关注智能合约的安全性。由于智能合约属于软件代码,因此传统式软件缺陷和安全漏洞可以通过形式验证(Formal Verification)的方法处理, 近年来基于机器学习的漏洞模式检测手段已经出现,一些工作证明了可以把抽象语法树作为递归神经网络的输入进行有无漏洞的检测 。
同时,智能合约在分布式网络上以并发方式执行,因此需要在沙箱网络上引入动态攻防手段,验证动态安全性。在动态攻击过程中,除了使用已知攻击方式外,当前的生成式网络也运行自行产生攻击方式。实际上, 目前正在蓬勃发展的对抗式生成网络提供了将合约和攻击放在统一框架之内进行全面优化的可能性 。
图2.是智能合约安全验证的理想工具流程,其核心思想是智能合约代码要经过静态和动态验证才能上线并在虚拟机上运行
静态验证是对源代码或字节码(Byte Code)直接进行分析(不需要执行代码),分析工具目前以形式验证(Formal Verification)为主,但基于深度神经网络的机器学习方法也在快速出现 。形式验证是在硬件验证的基础上发展起来的,目前已被广泛用于软件安全验证。其手段是把程序表示为一定的形式化模型(即基于时序逻辑的数学模型),然后用数学方法证明其正确性。
形式验证的方法可以分为符号执行(Symbolic Execution)、模型检查(Model Checking)和定理证明(Theorem Proof)三大类 。符号执行算法遍历代码的所有可能执行路径,并提炼出每条路径的状态转移与相应条件,并检查每一路径上是否可能存在违反约束的反例。
模型检查把程序表示为逻辑模型,把针对某一安全漏洞的安全条件表示为相应的属性,然后使用可满足性求解器寻找是否存在违反该属性的输入数值,如果存在,则表示代码存在漏洞,否则表示代码一定满足该属性。定理证明比模型检查的能力更强,能够做函数级别的检查,但一般需要专家级别的人工干预。
虽然形式验证不属于人工智能技术,但AI确实能够在很多方面提高形式验证的性能。事实上,形式验证技术为了解决状态爆炸问题而引入了大量的启发式算法,AI能够找到更优化的启发条件。另一方面,把源代码表示为抽象语法树后,我们完全可以利用递归神经网络的模式提炼能力进行安全漏洞检查,目前这方面已经有一些成功的工作。
相对于静态验证,动态验证需要在分布式不可信环境下的动态程序执行过程中发现潜在漏洞,其难度更高。一般说来,此时需要对智能合约进行「沙箱」仿真,即在测试链上执行代码,以人工方式注入攻击。当前快速发展的生成对抗网络(Generative Adversarial Networks)提供了在小量攻击范例的基础上自动产生攻击代码的可能性,有望为智能合约安全性提供新的工具。
同时,AI技术也可以和智能合约虚拟机结合,进行动态漏洞嗅探。与静态检查不同,动态检查一般不需要在源代码中精确定位潜在漏洞,因此解释性较差的深度学习技术具有更好的可行性。
2. 智能合约代码生成
智能合约表现为使用编程语言撰写的程序,因此使用门槛较高会严重影响智能合约的可用性。不具备编程能力的一般用户必须聘请程序员完成合同编制工作,但是Solidity现有社区规模较小、编程人员不足。 人工智能技术提供了自动综合代码的可能性,当前以微软DeepCoder为代表的深度神经网络已能够在专用领域根据一组示例自动产生代码 。
值得注意的是,虽然与针对任意问题的自动化代码生成的距离仍然遥远,但智能合约本身已经呈现出许多显著特色, 例如程序具有比较清晰的状态(可以用有限状态机表示)、计算过程相对简单(主要是针对虚拟货币的算数运算)、存在典型模式(例如存取款、投票、彩票等),使得针对性的代码生成具有较强的可能性 。
图3. 智能合约代码生成理想工具流程
如图3所示,智能合约代码生成工具流程起始于以简单脚本语言、图形化方式甚至自然语言捕捉的交易意图,然后通过机器学习工具抽取交易关键特征并对交易进行分类,在此基础上结合智能合约设计模式进行代码综合。代码生成工具还可以进一步与安全验证工具结合,进行迭代式自动攻击和代码修订,从而最大化实现安全性。
3. AI挖矿函数
中本聪为比特币设计了非常精巧的挖坑函数,即根据块内交易的内容使用单向哈希函数计算满足特定要求的随机数。一般说来,挖矿函数应该具有这样一些特点:
首先,函数具有单向性,即计算结果难度较高,无法直接猜测,但验证结果的正确性却很容易;其次,函数计算应具有一定强度,同时难度可以调整;第三,计算该函数时不需要传递大量数据,即不会给区块链网络带来额外带宽负载;第四,函数应具有公平性,也就是说,算力强的节点只是拥有较高概率获得奖励 。
除此之外,挖矿函数应具有增值性或公益性,即挖矿能够产生虚拟货币之外的价值。事实上,当前AI应用面临算力不足的困境,如果能够通过区块链的奖励机制吸引算力投入,的确可以获得事半功倍的效果。
从提供算力的角度看,显然训练深度神经网络等机器学习模型的实际意义最大。不仅如此,训练过程也确实具有单向性,即训练过程强度高,但是验证过程(即对已知结果数据做一次推断)强度很低。不过,深度神经网络的训练难度很难预测,因此也不容易控制,而且训练时一般需要传递大量的训练样本数据,网络传输压力很大。由此可见,深度神经网络的训练过程作为挖矿函数仍具有很大困难。
另一个可能的AI挖矿函数是马尔可夫链蒙特卡洛(Markov Chain Monte Carlo,MCMC)算法。MCMC在贝叶斯学习和推理中具有极其重要的作用,被选为二十世纪十大算法之一。该算法建立在随机采样基础至少,目的是从已知概率分布的随机数出发,产生针对特定后验概率分布的随机数并推测该分布的特性。MCMC具有单向性,难度相对可控。但是,MCMC作为挖矿函数的缺点是在验证时需要传递比较大量的数据。
图4. 基于深度神经网络对抗攻击的挖矿函数
Matrix AI区块链提出了一种新的基于深度学习的挖矿机理,其来源是针对深度神经网络的对抗攻击。当前,深度神经网络最成熟的应用领域是图像识别。然而,近来人们发现深度神经网络存在着「盲点」,即以一定方式修改图片,此时人眼仍然能够正常分辨图片内容,但深度神经网络却会做出错误分类结果。图4左边图片是单像素攻击的例子,图片只有一个像素变化,就可以成功「欺骗」深度神经网络。
那么,怎样找到修改图片的方法?目前大多数算法都使用随机优化方法,对图片引入噪声形成攻击。该算法具有成为挖矿函数的潜力,在单向性、难度、带宽等方面均能够满足要求。当然,该方法的公益性稍显不足,主要是能够利用区块链算力寻找对抗攻击实例,从而帮助我们更好地理解人脑和深度神经网络的区别。
4. 区块链自动治理
任意复杂系统在全生命周期过程中都要经历自身和环境的变化,因此需要一组规则决定在变化发生时怎样对系统自身进行改变。规则可以体现为代码(例如智能合约)、法律、过程(例如X发生时必须执行Y动作)和责任要求。系统治理就是创建、更新和放弃这些规则的决策过程。由于区块链的去中心化特点,其治理过程涉及到平衡开发者、矿工、用户和商业实体的利益平衡。
区块链系统传统上采用离线治理方式,即任何人均可以提出改变治理规则的建议,但是否采纳某项建议则需要按照一定的协议对建议进行评估,最后通过多方投票的方式决定最终决策并修改相关代码上线执行 。比特币的相关治理通过BIP( Bitcoin Improvement Proposal)协议进行,虽然决策速度较慢,但是很多人认为相应的渐变过程对比特币的可持续发展是有利的。
另一方面,目前也有不少人认为基于人工智能的自主、在线治理更适合于高速变化的网络环境。在这种情况下,治理过程可以通过基于AI的增强式学习实现,DFINITY区块链甚至提出使用AI代理作为用户代表自动进行投票。
治理过程的人工智能化确实能够带来一些好处,特别是在处理细粒度的纠纷处理(例如挖矿或者交易作弊)时效率可以很高。然而,近来的研究结果表明,由于目前AI技术大多基于人类标注样本,因此同样可能存在偏见,所以AI决策可能并不象很多人所想象得那样公正。同时,AI决策体现为AI模型和算法,一般用户很难理解,而且其安全性和公正性的验证也是很困难的问题。
值得看看:
这是「链捕手」的第153期文章,
欢迎转发朋友圈,转载请务必联系后台,感谢阅读。