IBM任常锐:让区块链真正为商业所用

  区块链对可信交易的作用,不亚于互联网之于通信。

  ——IBM CEO Ginni Rometty

  区块链中用到的分布式系统、非对称加密,这些技术没有任何一种是全新的。区块链的真正价值是什么?它现在存在什么样的问题?未来将走向何方?

  带着这些问题,清华大学本学期举办了一系列“区块链公开课”,请来八位老师,分别从法律、交易、创新性应用实战等各方面进行分享,力图透过层层迷雾,深入了解技术背后的细节。

  上周四,由清华x-lab校研团委创新创业中心联合打造的面向清华大学全体学生、教师、校友的“区块链”系列公开课程正式开讲,第一讲嘉宾是来自IBM中国研究院的任常锐博士。大数据文摘为不能来到现场的同学们带来了讲座实录,也独家采访到了任博士,请大家来先睹为快吧!

  探寻区块链的本质

  非常感谢清华x-lab给我这个机会回到母校跟各位同学、各位校友分享时下最热门的话题之一——区块链。

  我是1996年6字班的,在自动化系学习九年,本科直博,博士毕业之后就到IBM中国研究院工作。我博士期间在自动化系CIMS中心做供应链管理,比较偏向于管理科学、运筹学,早期的工作更多的是围绕很多企业管理中的问题,比如快递中的路由算法等等,也随着中国经济的发展、电商的兴起,做了很多推荐算法、大数据等等相关的工作。近两三年来更多的精力放到了区块链上。

  人们经常问,什么是区块链?我希望今天跟大家一起来去探寻一下区块链的本质。它到底有没有用?到底是一个正面的事物,还是会带来一些问题?

  我今天介绍三个话题:第一,对区块链的解读;第二,站在IBM角度,怎么看待区块链的商业应用;第三,区块链技术未来发展的趋势、方向。

  任常锐博士

  我们先从什么是区块链开始。说到什么是区块链,众多材料有不同的定义,有说它是分布式账本,有人说是非对称加密、共识机制、P2P等等,其实大家说的都对,我用盲人摸象来比喻,所有的这些维度都是区块链的一部分。我们暂且不去定义它,先试图去说说看为什么会产生区块链这样一个技术,它背后到底都是哪些东西。

  先扯远一点儿,我们想想为什么会采用区块链这样的技术?

  我在读博期间研究了很长时间的系统学,其中有一个很著名的理论是“复杂适应系统”,大家有时间可以读读约翰·霍兰的《隐秩序》。拿自然界举例,大家知道蚁群、大雁,它们表现出来的是很有规律的一种系统。但如果分解背后逻辑的话,它们遵守的规则其实非常简单,比如一只大雁只要跟它前后左右保持一定距离和角度,群体就会表现得非常有秩序。背后的道理是说,自然界或者社会系统在遵循一定的规则基础上,能够表现出很好的秩序。

  另一本比较著名的书就是凯文·凯利的《失控》。自然界生态或者社会系统的演变都遵循从边缘到中心再到边缘,从失控到控制再到失控的规律。所以如果我们回到社会发展过程角度,会发现其实人类社会或者自然社会的进化其实也是一个集中-分散-集中的过程。

  区块链的出现也不是一夜之间的,也是在前人的大量工作尝试的基础之上产生的。

  在个人计算机、互联网兴起之后,人们希望在网络世界里也有一个像现实世界中的现金这样的东西,早期叫做“电子现金”。

  在现实世界中,我把一张纸币交给了一个同学,事实上纸币的所有权就发生了转移。而在数字世界里我发给你一个邮件,我发给你一张图片,其实我发给你的是副本而已,我还有别的副本。但是如果这样操作金钱显然不能被对方接受。而新生事物刚刚出现的时候,国家的角度不太可能做发行电子现金的尝试,所以在没有一个中央系统的情况下,要实现数字货币这样的功能很难。

  那么,谁来发行?谁对这个电子货币的真伪进行验证?货币的流通谁来记账?双重支付问题怎么解决?

  从80年代开始,就有非常多的人去尝试。直到2008年,比特币的发明人设计出来一个巧妙的机制,从2009年开始产生比特币。它的发行、流通不需要任何中心化机构的参与,在座任何人都可以自己下载终端,所有人都可以自由参与,没有权限限制也没有身份,发行和安全全部基于数学原理,网络任何一个或者多个节点宕机都不会对网络的稳定性产生影响。

  其中没有任何一个技术是全新的,但是把技术组合起来实现了支持加密数字货币发行和交易的体系,确实是非常了不起的设计。

  爆满的教室

  区块链的颠覆性:分布式共享交易账簿

  区块链技术具有什么特性?

  首先,区块链背后有一个分布式的账本。数据存在一个地方很容易丢失,很容易篡改,人手一份,增加了很多的安全性。它基于P2P(Peer-to-peer)的协议来实现账本之间的共享。

  要强调的一点是,区块链的技术跟传统分布式系统最大的不同是什么?信任边界不一样。

  传统的分布式的数据存储,要求分布式的节点之间是互相信任的,但是对于区块链来说,最重大的一个特性是,允许参与的节点之间不互信,甚至可以允许有部分是恶意节点。这就是为什么人们经常讲说区块链解决人们的信任问题。这是一个很重要的特性。

  第二,“链”的概念,哈希链表其实逻辑很简单,把数据和数据之间用哈希函数串起来,这就形成了数据中的一个链条,去改任何一个数据都有可能会对跟它相连的数据产生一些影响,所以就使得数据存储结构变得不可篡改,同时也变得可以追溯。

  第三,非对称加密的账户/地址。现实中有银行帐户,账户里记着有多少钱这样的机制。在比特货币最初的设计里,其实并没有账户的概念,现在很多的数字加密货币有账户概念,但是比特币没有。所谓比特币只是地址上的一个数字。比特币是记录在公钥上的数字,拥有比特币的唯一证明就是拥有与之对应的的私钥。也就是说,并不存在“多少比特币”的概念,而是你在一个地址上拥有对这个比特币的支配权,而且它没有被消费掉。

  这里涉及的概念是UTXO(Unspent Transaction Outputs)没有花费交易输出,所有机制包括安全性都是非对称加密。非对称加密也不是新概念,大家知道比特币用椭圆曲线的算法(ECC)等,分布式账本、P2P、哈希链表、非对称加密都是非常常识的技术。

  区块链的颠覆性:分布式共识机制

  另一块比较好的设计就是数据的挖矿机制。对于完全分散的分布式系统来说,到底谁来记账、记的账大家为什么会同意,这种分布式共识是非常难的问题。比特币创造出来相当于通过穷举去碰撞出一个哈希函数值的过程,来顺便实现记账和货币发行的一个过程。所以其实挖矿解决两件事,第一,挖矿是得到挖币的奖励,事实上实现了货币的发行。另外在挖矿的过程中,大家完成了交易的确认,完成了记账。

  事实上,对分布式系统的共识也并不是新问题。学过分布式系统的都知道,传统的分布式系统里面有很多对于分布式一致性的算法,并不是新的。包括Paxos/Paft实现,这都是在分布式系统存在很多年的一些算法。但是传统的分布式系统其实是不允许有恶意节点的。可以允许有故障节点,不允许有恶意节点。

  比特币这个算法一定程度上可以允许有一定恶意的点。挖矿,也就是我们所说的工作量证明,通过算力竞争解决的过程实现了分布式系统的一致性过程。工作量证明的基础之上发明了权益证明、消费时间量证明等等,权益证明之后还有DPOS等等这些方法,本质上解决的问题都是这样:分布式系统里互相不信任、有恶意节点的情况下怎么能够高效地达成共识。

  区块链不是万能的

  大家都知道比特币网络“51%的算力攻击”问题。未必需要51%的算力,有比较大的算力,还是有很大的机会对它进行攻击的。至今没有人对它攻击,背后有深厚的经济学的原理,因为去攻击它带来的收益会远小于不攻击带来的收益。

  还有,我们经常讲比特币是匿名的,其实它不是完全匿名的。因为你操作比特币要跟别人发生交易,有的时候还要兑换成一些法币,这些过程之中包括你的钱包会暴露很多个人痕迹。

  比特币还有性能与容量的问题。每10分钟才能打包一个区块,平均下来每秒钟处理7笔交易,这是高频交易来说显然不可接受的。究其原因也很简单:去中心化程度越高,共识机制效率越低,“没有免费的午餐”

  在做任何所谓的性能比较的时候,一定是有前提条件的,不太可能什么都好、各个维度都好。单纯考虑某一个指标的提升,而不去考虑背后的其他前提条件的话,我觉得都是不太合理的。我们要想真的去提升区块链体系性能是综合性的问题,单纯去谈处理的效率等等一些参数的时候是不太合理的。

  区块链可以解决很多事情,但显然也不是万能的。

  我们判断一件事情是不是适合用区块链去支持的时候,可以用这样的流程去看,看它是不是高频交易,是否需要深入合作,是否需要市场行为

  特别高频(毫秒级)的交易不太适合用区块链做。不涉及网络的也不合适,区块链一定要有多方参与,而且通常是多方之间存在一定的竞争合作关系。也不能把区块链当成是数据库的替代方案,或者是消息传输、交易处理的替代方案。

  数据记录和交易过程的可信透明

  区块链到底能干什么样的事情?

  我总结起来是两件事,第一是数据记录的可信。我们把一个数据记录下来,那凭什么别人会相信你没有对它进行篡改,你没有对它进行操作,它不会被销毁掉,不会被丢失。所以存在区块链上的数据在很大程度上可以解决可信的问题,而且它的可信加上了权限机制,包括非对称加密的机制之后,是既透明又可信。

  就相当于,参与区块链的人都把自己的数据放到了一个公共的地方,你自己拿了钥匙,你的数据你作主,但是你的数据是在大家共同监管之下,你没有办法偷偷对它进行修改、操作,你不给别人钥匙别人也偷不了你的隐私。

  第二是交易过程的可信。传统的商业系统里我们是通过合约加上法院来保证了我们商业社会逻辑的执行。签了合约如果不履约,对方会告你,会通过法院,会通过司法机构来执行。在数字世界里双方在达成区块链智能合约之前,相当于双方已经同意了背后的商业逻辑。再发生的事情是由程序来控制。这在很大程度上避免了很多争议和问题,提高了效率。

  这样,可以实现对体系的可信性显著提升,对透明性有显著的提升,对风险会带来很大的下降,相应的就带来很多成本的下降。我们之间在一个相对透明可信的基础上工作的话,大家出现争议的可能性会变得非常小,扯皮的时间非常少,扯皮所花的精力变得非常小,这是很大的好处。让原来做不完的事现在可以变的做得完,带来模式的变化,这是区块链对商业最大的作用。

  区块链的未来发展路径

  人们比较普遍接受的观点是比特币的出现是区块链的1.0时代,它的主要的贡献是加密数字货币,还有区块链的机制。在这个基础之上,又以以太坊等技术为代表、以智能合约的公共平台为基础的阶段,很多人把它叫做区块链2.0,还有人叫做区块链3.0,当然具体区块链3.0定义的话大家会有不同的观点。总体来说,人们认为未来可能会是一个可编程的公共社会平台。

  从技术的发展维度来说,比特币之后人们朝着几个方向在发展区块链的技术。有一个维度,人们通常称为公有链、联盟链和私有链。

  公有链上很大的几个路径,一个是以以太坊为代表,发智能合约,成了智能合约的公共平台。第二个是人们围绕类比特币的思路,发明了很多其他的实现特定功能的加密数字货币,像Ripple等等这样的,试图围绕着原有币的基础之上进行各个维度的完善。

  联盟链希望让区块链技术更适合企业的应用。除了加密数字货币以外,区块链对我们企业的商业社会运行到底有哪些好处呢?在商业社会里边,是不是有一些技术不合适?或者还需要一些什么样的新技术?这个是联盟链这个体系里重点做的工作,比如以开源项目Hyperledger,IBM在其中起了很重要的作用。另外是R3 Corda,银行为核心的联盟链,这几个应该是目前影响度比较大的几个联盟链的项目。

  其实所谓的区块链演化更多是一种好的思维方式,把这些技术很好的结合起来,去解决了加密数字货币的问题之后,又可以解决别的问题。如果大家去了解比如R3 Corda的话,会发现它已经没有区块的概念,已经没有所谓的链式存储的分布式账本的概念,但是它用了类似思维解决商业的一些问题。最终,技术就是为了解决问题的。

  区块链技术的商业应用

  如果我们去看商业的话,其实任何的商业都不是孤立存在的,商业是一个网络。任何的一个生意都是有供有需的,而且是一个链。我们生产一个手机,可能有成千上万个企业在里面构成一个产业链,商业网络里边有很多参与方,参与方之间可以是竞争的,可以是合作的,有人强势一点的,有人相对弱一点。商业网络中会流通产品和服务,产生信息流、资金流、物流。然后会产生财富,市场是它的核心,这是我们商业社会的一个基本运作规律。

  传统的商业网络的常态是,比如说有A、B、C三个参与方,还加上银行、监管方,在这样的有五个参与方的商业网络里面,他们两两之间都会发生一些商业的往来。商业往来的话就需要记账,或者说签合同,也就意味着他们要记录数据。两两之间记数据,当数据不一致的时候怎么办?数据损坏了,大家对数据有争议的时候怎么办?而且,两两之间沟通的效率非常低,会带来很多的时间和成本的浪费。

  如果这些参与方之间,如果能够在一个公共的、共享的一个账本,在一个互相都认可、公开、透明、可信的情况下去工作的话,刚才提到的问题就都不存在。不需要扯皮了,也不存在不一致,系统的稳定性提高了,可能一家丢了数据其他家可以帮它恢复。我只是举一个简单的例子,真实的商业没那么简单,这是给大家一个启发,区块链这样一个技术在商业网络里面有可能会给很多环节带来重要的改善。

  回到技术上,区块链体系里完全公开透明的账簿在企业应用中是不可行的

  商业是要有权限,有隐私,有商业机密的。大家需要互相监督,需要公开透明,但是不该看的,不能所有人都看,需要监督,但是不能所有的事无条件的透露。而且商业之间的合作,很大程度上,或者很多时候互相之间是认识的,你知道谁是谁的,而不像说在数字货币的体系里面你不需要知道谁是谁。

  所以,在商业的区块链里面,必须得有一个账户和权限机制,还需要有一个很好的框架去把各种灵活的共识机制加进来,因为不能用挖矿来支撑商业网络运行。在智能合约上也要做很多的工作,能够使得智能合约很好的被开发、验证跟运行。

  IBM在2013、2014年的时候就开始看这个技术,2015年发起组建了一个Linux基金会下面的Hyperledger项目,它是开源社区,目前全球范围内将近200个成员,大型企业都在里面,中国很活跃,在北京、上海都有线下活动,欢迎对技术感兴趣的同学们参加。即使有这种开源、免费的平台,构建企业区块链应用的时候我们还是要梳理业务,把业务和系统进行结合,要实施,要教会业务人员使用它,要进行运维,还要保证它系统的安全性。

  供应链上的商业应用举例

  IBM和清华大学合作,跟沃尔玛和京东等企业在做这样一件事:把食品供应链从农场到餐桌所有的过程,以及这个过程中所有的相关信息全部放到区块链里,大大解决了在过程中存在造假和篡改的可能性。

  而且这里不只是存一些点的数据,而是希望存成证据链。比如说在农场巡检的时候,最开始做的是猪肉,在养猪场巡检的时候不光是存一个简单的巡场记录,这个东西可以很方便的改。简单的比如说用个APP拍个照,拍照的背后有时间,有地点,有服务,我把这样的一些信息全部的串起来,事实上最终会使得即便是你想篡改其中的一些信息,可能不知道背后还有哪些相关的东西。

  围绕区块链的工作,我们在全球发起了可信食品供应链联盟,目前已经在北美有10个非常大的企业加入到这里,比如沃尔玛,还有Kroger等。这里有很多食品的生产商也在这里,他们互相之间是竞争对手,但不妨碍大家一起去合作共赢。这个是区块链很重要的一个作用。

  很多商业活动慢慢朝线上在转移,但物理世界不可能消失,所以物理世界和数字世界融合这一定是一个趋势。但在数字世界越来越发展的过程中有两个需求,第一是要安全、可信;第二希望智能一点。区块链是数字经济的基础,在线上蓬勃发展,或者说线上和线下进一步融合的过程中,区块链,包括区块链相关的人工智能、大数据技术的融合,是未来社会发展很重要的基础。

  Hyperledger Fabric是完全免费的,完全是开源社区,它本质上是解决合作问题的一个技术,也是用合作的方式产生。和商业问题进行结合,要么提升已有事情的效率,要么创造原来没有的事情,这背后的区块链思维是非常值得我们借鉴的。

  部分现场问答

  Q:我是清华大学法学院的同学。刚才您讲到国际贸易和电子合同的存证,我想了解整个上传或者存证逻辑是怎么样的?打个比方工程案件的话,每天有很多的图纸,或者说每天有签到表,这个到最后都是作为证据的。您刚刚也提到不单是一个开发的成本,还有运维的成本,现在很多证据纸质材料也可以支撑,如果运维成本很大,会导致企业不愿意用区块链技术进行存证。

  A:我刚才举的例子本身已经是电子合同,我们俩其实就是签电子合同,所以这个数据的存证相对容易一点,可以直接系统共识。如果线下已经有纸质的,纸质很多时候都有用,但缺点是可能有一些问题找不着。对企业来说,区块链系统有很多成本要运维,企业为什么要投资做这个事情?企业做任何事情都要看ROI,投入和产出是不是成正比,不会因为一个技术好就去用它,是因为这个技术给我带来了收益高于成本才会去用它。如果现实中我有很多纸质的记录,已经能成为司法依据的情况下,只是增加管理的费用让事情做的更好的话,也可能确实不需要区块链。

  学生提问

  Q:联盟链里取消了挖矿机制,没有挖矿机制就没有挖矿的证明,没有证明如何防止共识攻击?

  A:挖矿解决两个问题,一个货币的发行,一个是共识。联盟链里有一个最大的假设是联盟链里共识的实现。重要的前提是在商业网络里面存在信任,不是完全不信。我们之间能做生意,我们能成为上下游,我们之间首先是有信任存在的。而且,商业往来通常是有身份的,我知道你是谁,而且通常不是完全平等的。任何一个商业网络里面都有主导者,都有相对成熟者。在这样的网络里面的共识的实现,其实很多时候有点像我们一个公司有董事会,如果这个领导绝对权威的话可以说了算,反而效率就高了,也可以大家投票,也可以按你的股份投票,所以会有很多这样的机制来实现。在联盟链里面会用这样的一些共识机制来实现记账的过程。

  关键问题:物理世界和数字世界的映射

  区块链让数字资产变得透明可信,但一个关键问题是“物理世界和数字世界的资产如何形成映射”。如何判断汽车用的零部件是不是区块链上记录的那个?要把物理世界一瓶水对应到区块链中的数据,怎么一一对应?

  任博士在接受大数据文摘采访时提到了“加密锚”的概念:把基础计算机的大小做到极致,在0.1mm×0.1mm灰尘大小的颗粒上完成存储、通信,还有供电,量产之后价格只有几美分,把这样的“加密锚”附着到一些物体上面,能够在很大程度上解决防伪、对应的问题。对于造假者来说,如果不能批量复制就没有意义了,所以有这样的一个活的标签能很大程度解决物理世界和虚拟世界对应的问题。

  但是,这瓶水标签没换,但是水换了怎么办?就和物理世界里一样,一个人拿着身份证、通过照片检验也不能百分百保证是这个人,除非把DNA、指纹全部一起验证,很大程度可以保证准确。我们很难保证百分之百对应,能做的是尽量形成数据链,让对其中的任何一个环节进行修改或者进行篡改的难度加大。另外就是让所有行为的结果都会被多方共同见证,即便现在没有被发现,以后任何一个时间都有可能会被发现。

  最终,这个问题其实永远无法百分之百解决,它类似于一个极限问题,只能无穷逼近。技术进步会在很大程度上解决物理世界和数字世界之间对应的问题,这是推动区块链未来进步很重要的一个支撑力。

  那么我们需要担心未来量子计算发展对区块链带来的挑战吗?任博士指出,量子计算会对现有非对称加密体系带来挑战,但对区块链底层基础带来的挑战并不需要担心。一方面比如比特币等机制并不是单纯的非对称加密,比特币地址其实是在公钥基础上还进行了非常难以逆转的哈希操作。另一方面量子计算距离真正成熟还有一段距离,魔高一尺道高一丈,如果量子计算的特点使得它适合去破解现有加密体系,那么就会有人找到反破解的方式,比如已经有人在研究抗量子加密的算法。

  颁发清华x-lab区块链公开课课程导师证书

  区块链人才培养

  对于区块链相关的人才培养,任博士也回答了大数据文摘关于“需要什么样的人”和“怎样培养”的问题。

  首先,干好一件事需要不同角色的人配合。拿区块链来说,为什么说它的技术比较复杂?因为它涉及分布式系统、数据库,还有偏数学的密码学,还有经济原理像博弈论,通常和金融又有关,需要懂商业。这里面需要的技能非常非常多。不一定要全才,但区块链项目需要作用到商业里去,应用区块链不仅仅是技术问题,一定要对商业和相关学科都有理解

  现在技术出现非常快,要在学校迅速变成课程教给学生,这不太现实。即便在学校学了有关内容,之后也会迅速变化。更关键的是在学校打下良好基础,比如基础编程、数据结构、数学,培养学习能力,未来能更好地自学。区块链应用的基础技术在课本里都学得到,如果基础好的话掌握得会很快。对学校来说,虽然不一定体现为课程,但在学生掌握基础之后,创造出能接触到最新技术的机会也很重要。

  听完详细解说,你对区块链有没有了解更多呢?欢迎和我们分享你的学习体会。

  【今日机器学习概念】

  Have a Great Definition