区块链虽不是万能,但IBM却是这么用它撬动商业市场的

块连线

有态度/有深度/有温度

关注

商业活动中现存的痛点

在传统的网络中会有不同的参与方,假设每个参与方是一个不同的组织,它们的数据是处在所在企业的深闺之处的,便无法交换。如果企业与企业之间,参与方与参与方之间两两通过EDI建立数据通道的话,最大的问题是成本开销太大。那么什么样的应用场景才可以适合利用区块链的技术去解决呢?

第一,参与方比较多。第二,参与方与参与方之间是互不信任。传统形式中,每个参与方自己有一个原始的数据中心,他会把数据放在自己的数据中心里面,放在自己企业的防火墙之后以保证安全。涉及到企业与企业之间、参与方与参与方之间的一些数据交互的累积交易以及业务流程,在这种业务流程里面交互过程使得数据必须得走出企业,于是会涉及到数据到底放在哪里得问题。如果按照传统做法,所有的参与方都信任某家银行,于是数据就存在银行里,企业到银行那里读取数据,这种方法面临的最大的危险就是银行篡改了数据,而其它参与方不知情。我们适合利用区块链技术解决的应用场景是参与方与参与方之间是互不信任的问题。

区块链技术解决信任问题的核心要点

IBM提出的方案是:第一,分布式账本。第二,隐私保护。隐私保护是指每一个参与方进来之后必须都要有一把钥匙。参与方对自己所产生的每一笔交易,每一笔业务流程,每一笔操作所产生的数据都要用自己的私钥进行签名。第三,智能和约。第四,共识机制。在IBM这套架构体系里面,共识机制和其他的共识机制不太一样,我们以拜占庭为例,假设我们有四个节点,如果四个节点里面有一个节点是在撒谎,在这种情况下我们是可以达成共识的,但是在实际的业务应用过程中,如果参与方很多,二三十个,四五十个的情况下,如果还是采用传统的解拜占庭方式去解的话,那么这种记帐的效率就会非常低。所以IBM在新的解题方案里面采用的是一种新的架构,不再用传统的共识的机制,采用一种新的共识机制使得我这种共识效率能够进一步提升。

联盟链的底层构架结构

IBM从2015年开始把Hyperledger Fabric的开源放到社区里。有很多企业参与到了这个联盟链里。这条架构里面基本上解决了联盟链30%到40%的问题。那么剩下的60%—70%的问题需要在具体的项目中,在具体的业务行业中去做一些二次开发以及二次的应用。在IBM区块链1.0以后的版本,现在已经发布到1.1的版本,我们采用了背书的概念,叫背书节点。背书的理念是什么呢?假设我A和B两个人交易,这笔交易就是我A给B转帐转10块钱,那么我初始帐户里面有100块钱,我转完帐之后帐户里有90块钱,他帐户里有10块钱,那么这个交易只涉及到我们两个人,所以在写智能合约智能代码的时候我只要指明说这个交易我们两个认可,最后这笔交易的结果就是有效的,但凡有效的交易我就可以把它记录在区块链里面。那这个就是我们一种新的背书的模式,共识模式使得区块链的效率大幅提高。这个框架最底层是一些硬件架构,对于硬件架构来说除了普通的云计算以外,X86和Z服务器都可以支持。所以在我们总体的架构里面会有几个核心的关键点,第一个是排序节点,排序节点通过一种卡夫卡的机制来采集一些数据。这些节点根据规模不同,一般会有四到五个节点,是由谁牵头建平台谁来提供。第二点是有参与方,参与方只要接入这个平台就可以,一般情况下他贡献一到两个X86服务器就能够进入到平台里面去。排序又会涉及到大家很关心的一个问题,就是很多人认为区块链它是一个去中心化的一套系统。在公有链的这个领域它可能是完全去中心化的,不过在联盟链这个领域它是一个弱中心化的,因为在公有链里面人们不一定是追求效率,几分钟记一次帐都是可以的。而在商业应用领域,四五分钟记一次帐,十分钟记一次帐,这样记帐的频率是大众接受不了的,所以必须得提升记帐的效率,缩短记帐的时间。IBM采用的Hyperledger Fabric的这套架构是一个中心化的系统,而不是一个完全去中心化的系统,以此来保证去中心化和效率能够形成一个平衡。它会有一个中心,这个中心其实是由排序节点来做的。排序节点做什么工作?它就是用来产生区块,产生完区块之后它就把这些区块分发给所有的参与方,接下来还会有背书和存储节点,存储节点就是每个参与方只要进入到区块链这样一个大的平台里面去,他只要贡献一台服务器,服务器上去装有存储的软件、代码、工具中立件等就可以记录他的帐本维持节点。还有CA认证,CA认证也是联盟链里面很重要的一个概念,联盟链与公有链不同之处是,但凡进入到联盟链的这个圈子里就需要进行身份认证,我要对你进行发公钥和私钥,参与方进来之后所有的业务都会通过智能合约把其所产生的数据记录在区块链平台里面去,数据一旦记录下来之后这些数据就永远不可以被篡改。何为CA认证?CA认证会给同一个组织下面不同的人开设不同的权利去看自己不同的数据。最后是智能合约,智能合约在联盟链中其实就是指代一段业务流程。例如刚才A给B转帐的例子,这个转帐过程就可以认为是一个智能和约。通过区块链的专有代码写完之后部署到区块链上,使得参与方通过调用智能合约这段代码里面的某一个函数就可以使业务流程顺序往后推进,这个就是Hyperledger Fabric的智能和约。

区块链技术落地在货运行业应用的案例

联盟链技术非常适合解决的应用场景之一就是,对于不同参与方之间不信任,以及各个参与方都希望得到数据被更改后的最新信息等。如果我们建立一个区块链的贸易平台,在这个贸易平台里面有很多的参与方,在这里面有港口,银行,船代,海关、货贷等。使用传统的方式就很简单,就是通过两两之间建立信息通道,就是EDI的方式,但成本非常高。其中最大的问题是如果其中一个参与方的节点损坏之后会连续的带动其他节点瞬间崩溃。区块链技术就可以解决这个问题,因为大家手头上都有一本帐,那么这个帐里面其实产生的都是数据。对于这些数据大家手头上都是一致的,那么每位参与方手头上的数据既然都一致,会不会导致各个参与方手头上的数据会越来越多,而且很多数据不是我想要的呢?IBM的Hyperledger Fabric解决了这个问题,在1.0以后的版本它加入了一个叫渠道的概念,就是把特定企业相关的一些数据放在特定的渠道里面,那这样的话企业就没有必要去存储那些与他完全不相干的一些数据。同时,企业在不同的记账节点上的数据大幅度的下降。这套架构里面还解决了一个问题,就是建立区块链的根源是什么,一旦出了问题还能溯源。第二个问题是区块链对外其实提供的还是数据服务,我要能够知道最新的一个数据接口,举个例子我刚才给他转了10块钱,我这还有90块钱,我要很快的能够查询我帐户到底还有多少钱,那如果按照传统的方式,我要到区块链这个链条里面去查我帐户多少钱效率会很低。所以在这套架构里面采用新的方式,我会把每一个状态,每一个参与者最新的状态记录在一张PE Value的数据表里面,通过这张数据表可以快速的查询我现在目前的账户信息,这是我们为了提升查询速度做的一些改进。第一个案例是马士基是如何一步一步通过区块链的技术实现业务流程推进。案例里面有银行,出口商,进口商还有海关,陆运公司,行业公司。案例中是挪威的花卉种植商到柏林的花卉采购商这样的一个交易。在这个交易里面分别会有三大类数据,第一大类是信用证,第二大类是货单,第三类是检验检疫证明,因为它运送的是鲜花。在这三大类数据里面它会有一个信用证颁布的事件,还会有一些船运和检验的流程以及一些付款方面的一些流程。对于出口商来说它是花卉的种植商,进口商是柏林的采购商。进出两个港口作为海关的参与方。会有很多不同的运输路径和定单。这些定单可以实时追踪到具体位置,比如是陆路还是海运。第一件事是银行发信用证,信用证是由购买方的银行发给卖方的银行。这个信用证会指定这个信用证到底是多少钱,里面会填一些信息,填完信息之后就开始共识,共识完数据之后这些数据就会分布在不同参与方的节点上面。然后这几个节点也在进行共识,共识完之后两个港口,包括银行还有海运公司都可以拿到最新的共识的数据。虽然各个参与方可能拥有很多区块链的数据,但是你并不一定能够看到某一些数据,你只能看到与你最相关的数据,与你不相关的数据你那把钥匙是打不开的。所以对于花卉种植商来说他能够看到银行给办的信用证,接下来他会把自己花卉种植的检验检疫证明提供到网上去,他能看到的是这两条数据。当花卉会从花卉种植商这边到达目的港,目的港会给他发提货单表明已经收到货了。发提货单作为智能合约的其中一个业务流程,最终产生的数据也会被记录到区块链的平台里面去。通过共识使得这些数据能够被各个参与方知道。对于目的港来说,他只能看到他发的这个数据,而对于花卉种植商来说这三条数据都能看到。这就是每一个参与方的那把钥匙只能看到自己相关的数据,虽然你存了全量的数据或者存了部分数据,那些与你不相关的数据你还是看不到的。接下来就到了海关,海关要去检验这个货物,海关检验完完这个货物之后,检验结果的数据也会被提供到区块链平台里面去。之后就是给海关支付关费。至于我们支付多少关费,什么时候支付了,这些数据也会被记录下来。最终银行看到买方已经收到货了,他就把货款打给出口商。整条链路的数据都可以体现出来。而对于这个银行来说,它能看到的数据会比较多。所以在这个案例里面,通过区块链的这种方式可以使得不同的参与方都能够在平台里面去进行业务的一些流程推进,通过智能合约使得这些业务流程推进的数据能够存储在区块链里面,并且使得不同的参与方手头上的数据能够保持一致,而每一个参与方查看数据的时候都要通过自己的私钥进行签名,签名的数据就证明是你干的,永远不可以被抵赖。

区块链技术在食品供应链安全领域的案例

IBM在2016年10月份的时候与清华大学和沃尔马三方进行食品供应链安全的问题合作。区块链只能保证数据进入到区块链平台之后数据不可以被篡改,如果数据在进区块链之前就被篡改了,那就没有办法了。所以在这种食品供应链安全的项目里面我们要尽量减少人为主观的数据输入,所以我们要使用IOT和区块链技术结合的方法。IOT这些设备所传输的这些数据都是一些客观数据,这些客观数据不是人为产生的,所以相对来说是比较可信。我们这个案例里面也是一样的,这个案例里面做的一件事情就是去追溯一头猪从产生之后,这只猪吃过一些什么饲料,这只猪打过什么疫苗,它的检验检疫结果是怎么样的?它的瘦肉精结果怎么样?它什么时候被屠宰?以及它在屠宰完之后这头猪会通过冷链物流配送到仓库,在配送的过程当中冷链物流的实时的位置要能够上链,还有冷链物流实时的温度也要被提供上去,当然它是准时的,并不是每一秒都上传,但是可能十分钟五分钟上一次。那么这只猪被屠宰完之后运送到了仓库之后,仓库的实时的冷链的一个温度到底是怎么样的?也会被记录下来。接下来这只猪从仓库到最终沃尔马的门店。到了沃尔马的门店之后这只猪是被消费掉的,这只猪消费掉的时间和消费掉的批次也会有被记录下来。这一整条数据我们都要能够追溯到,但并不是所有的猪肉都可以做追溯,它是对于特定的猪肉,屠宰完之后是要分批次的,每头猪到了屠宰场之后,他要确定出这头猪屠宰的肉到底是哪块肉,我们是要能够追溯到这么细的。而能够追溯到这么细不是说所有类型的猪都要能追溯,我们追溯的是特定比较高端的。这样的话我们可以从这只猪的产生,到这只猪在沃尔马最后被消费的供应链上的的链路都可以被记录下来,这就是IBM在供应链安全上做的一些应用。

以上内容为IBM区块链首席研究员李奇峰在中国(上海)区块链技术创新峰会做的内容分享,块连线略做整理,未得其审核,如需删改请联系块连线。

END

块连线推荐

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180914A1LBSM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券