Fintech沙龙系列 | 超级账本:助力企业级区块链应用与开发
3月9日,VMware 中国研发中心云原生应用首席架构师、西蒙弗雷泽大学计算机科学博士张海宁受邀参加“IMI-瀚德Fintech沙龙”第6期,并发表“超级账本:助力企业级区块链应用与开发”主题演讲。
他在演讲中首先介绍了超级账本项目的背景。他指出,比特币系统等公有链项目存在一些不足之处,因此在应用于商业场景时需要对其进行一些改造,使其符合商业应用的需求,这是超级账本的出发点。其次介绍了fabric子项目的优势,第一,项目定位是底层平台;第二,实现共识算法核心;第三,从技术上杜绝双花交易;第四,通过公有的环境里子级的通讯渠道建立交易,保证交易私密性。最后他指出,未来区块链应用场景广阔,各个领域都可以用区块链去解决各种各样的问题,但并不是所有的问题都适合用区块链去解决,还需要考虑实际情况。
以下为演讲实录:
一、超级账本项目概述
首先对超级账本作一个定位,历史上2008年10月中本聪发表论文之后,比特币机制开始运行,成为第一个由区块链技术支持的加密数字货币; 2016年Linux基金会成立超级账本项目。现在区块链这个领域里的三大开元项目基本形成,即2009年的比特币、2015年以太坊、2016年的超级账本,其中前两个项目是基于数字货币,第三个系统主要面向商务应用。比特币具有去中心化、集体维护、不可篡改、数据透明、用户匿名等特性,这些技术特征与公有货币体系非常适合。
区块链是支持比特币的底层网络技术,打个比方,比特币就像一辆跑车,它跑起来需要有很宽敞的路,这条路就是区块链。区块链的价值逐渐被发现之后,大家开始考虑blockchain能否用于解决一些非比特币或者非数字货币的一些问题,慢慢就产生了这样的应用,使用最多的领域就是金融,除了金融领域还有数字身份,财产确权等很多方面。大家在区块链里面尝试做各种各样的业务时总结出区块链需要这样几个特征:第一,需要共享的账本来共享数据,也就是分布式账本;第二,需要在这个账本里有一定的隐私保护,因为我们做交易做业务的时候,不可以让大家都看见;第三,需要智能合约,也就是区块链上的代码;第四,需要共识算法。这几个特点是区块链在商业应用里所应具备的特征。
公有链的不足之处有以下几个方面。第一点,数据透明性,由于很多交易与反洗钱有关系,真正的商业环境里匿名性是不合适的,比如我签一个合同要知道对方是谁,对方匿名就不太适合做交易。第二点,去中心化,比特币的去中心化是说它使得这个系统没有中心监管的情况下可以自由运行,一个商业系统里面这样的自主运行可能会有问题,从政府的角度或者法律的角度来说希望有一个能够监管控制的手段,所以去中心化在商业领域,不一定是完全不需要,可能是半中心化到去中心化。剩下的两点集体维护和不可篡改在商业里面是非常有用的,希望能够持续下来做很公正完整的记录,同时积极维护希望多方参与进账,保证数据不被篡改。无保密性问题,无法保护商业机密;确认时间长,比特币要一个小时才能基本确认这笔交易;无最终性,交易容易被推翻;吞吐量低,这是技术层面的问题,比特币每秒7笔的交易是不可接受的。还有很重要的一点是游离于法律体系之外,因为没有一个政府或者国家可以控制这种系统,没有办法洞察,这是比较现实的问题,最后一点是极客主导,比特币系统是一些计算机玩家编写出来的,换句话说这些人都是黑客类型的人,完全不受商业环境的控制。可以看出,比特币系统有一些我们需要的特征,有一些我们不需要的特征,这时候我们需要对比特币系统做一些改造,使其符合商业应用的系统,这是超级账本的出发点。HYPERLEDGER超级账本是基于两个方向的考虑;一个是希望更加去中心化更加开放,一个是在商业环境里更高的效率,相对少的去中心化。
二、超级账本项目
超级账本是公有链不能满足系统要求而产生的,超级账本的建立是由大型的开源社区来牵头,开始有30个创始成员,分成这几大类,一类是金融公司,包括摩根大通,富国银行、荷兰银行这样的一些银行,他们看到了区块链上面的应用场景;第二是属于科技巨头,IBM、INTEL,思科等,他们希望捕捉商业;第三是专著区块链的公司,R3,consensys,他们也希望能够在这个项目贡献他们的力量。现在一年多的时间已经发展到一百多个成员,写代码的人很多,八千多个commits,这个发展是非常迅速的,也得到了广泛的支持。
hyperledger这个项目里面可以同时允许有多个不同的子项目运行,不同的子项目能够解决不同商业的问题,需要有提案孵化成熟。如果被接受会进入到孵化期,现在有五个项目在孵化期里,包括IBM主导的fabric、 Sawtooth Lake、lroha、Blockchain Explorer、以及Cello等等。
三、Fabric子项目
fabric这个子项目是在hyperledger投入最多的,我尽量淡化一些技术方面,讲讲它的一些商业出发点。第一点就是这个项目的定位,整个hyperledger fabric项目主要是做底层的平台,就像区块链一样,修了一条大家都能用的高速公路。第二点,实现了一些共识算法,然后实现了一些基本的特征。IBM全球在2016年的上半年做了不少的尝试,做了很多尝试之后发现商业的领域里面有很多的技术问题,其中之一就是要保持机密性比较困难,因为它最早是仿制比特币公有链做的,成员之间保密性比较差。第一阶段0.6这个版本,节点数、吞吐量、扩展性比较差,当节点增加需要的计算量是平方级别的增长,不可升级系统也是不足之处之一,所以最近他们做了比较大的改动。做了这个改动之后整个系统比较适合做一些分布式商业应用的改造。这个部署首先有一个分控的order,共识算法核心,怎么达成一致需要一套技术,需要有这样公共的服务帮助大家培育共识,如果是一个银行需要加入这个共识网络,首先需要做一个节点叫做peer,就可以接到这个里面来,单个节点通过这样的应用可以接入到共识网络里面去跟其他的机构发生各种各样共识交易。然后第二个用户可能是另外一个银行或者另外一个机构也加入到共识网络来,越来越多的节点加进来之后就变成一个运行共享数据的商业网络环境,网络环境之间互相发现就可以形成区块链,形成之后,身份是很重要的,没有身份的话商业银行建立不起来,所有这些人加入这个网络之后需要有一个统一身份的服务,给他们发一份证书,简单讲计算机就是证书银行网银的U盾一样,有了这个证书知道这个人是谁,你做的所有业务通过证书牵引,证书就是身份的一种形式。区块链并不是说没有中心,中心体现在哪里?体现在身份一样。共识网络其实也是有中心的,因为它表示几个大的信任机构帮你去建立这样一个共识网络,相信它们决定的交易协议,这是整个共识架构。可以看到这是有中心化的区块链系统。
每个应用做交易的东西很多步骤,通过这样一些来来回回的节点之间的交互之后,最终的数据会记录在每一个节点的账本上,这个就是区块链。所有的公有链、私有链,最终核心结构都是一个链式的区块,区块是联在一起的。超级账本也有区块链,区块链这些数据帮助他们快速存储,这个涉及到一些技术细节,总之这是一个有具体存储结构的区块链。重要的是在并发交易的时候要做到杜绝所谓的双花问题,比如说你有10块钱,两个人尝试同时给这个帐号做一个交易,有一个人尝试从你的帐号扣掉5块钱,有一个人尝试扣掉3块钱,他们同时发出来这笔交易,到底谁成功呢?谁先谁后有一个过程,这就是区块链分布式要解决的问题。在超级账本里面他们采用了一种谱写技术,原理就是这两笔交易先把余额记下来,如果你扣两块钱可能从十块钱变成八块钱,另外一个交易扣三块钱可能从十块钱变成七块钱,这两笔交易通过刚才说的共识法算法之后,就会达到一个先后顺序,总有一笔会先过来,另一笔后过来,这个系统能保障先过来的那笔成功,后过来那笔失败,因为每一笔钱不能花两遍。也就是说第一个钱过来做了十减二等于八扣款的交易,第二笔钱过来如果他要尝试再做一个十减三等于七这个扣款交易就会失败,因为那个时候你这个余额不是十了,所以十减三这个交易点是失败的,通过这种机制使得交易失败的机会被杜绝,从技术上保障了双花的不存在。
还有一个很重要的问题就是在一个网络里面,这些人之间互相通讯有点像,举个例子像一个微信群,可能一百个人在这个群里面,每个人之间说一句话,这一百个人都能看见,这个时候这些做交易的人不希望自己做的交易也是一百个人都看见,所以这个时候需要有这些技术帮助他们,只有其中几个人知道这些交易,这个时候有点像微信建个小群,这样做的目的是什么?保证了交易的私有性。超级账本实现了这么一个机制帮助大家实现所有交易,这是所有交易非常重要的点,总的思路就是说通过一个公有的环境里面子级的通讯渠道建立交易。
比较技术方面的内容是,超级账本怎么样帮助我们解决实际上的应用场景的问题。各个领域都可以用区块链去解决各种各样的问题,但是不是所有的问题都适合用区块链去做呢?实际上在实际使用中有几个点要认真的去考虑。第一点就是共享数据,就是在这个场景里面,必须有N个不同的实体去贡献一个或者一份一类数据,这样才具备它的价值。如果是一个很大的机构来贡献数字信息的话,其实是不需要区块链来做的,那么在哪些场景需要区块链?N个不是隶属单位的机构互相之间贡献数据可能有价值一点,传统机构之间要交互很多数据,带来很多烦琐的交易或者是交互的成本,共享机制使得这个成本降低,N个场景之间不需要再互相交换,而是统一模型这样的关系。第二个问题是多个的写入者,一份数据可能很多人往里写数据大家一起改,会发现也是用刚才点对点的方式分别改结果不一致,中间有很多的对账接入成本,如果用区块链的统一就可以减少这些成本的存在。第三个,成员的互相不信任性,大家知道人与人之间有亲和疏关系,在真正做各种经济业务的时候其实也有这种远近的关系,不同的公司,如果控股股东是一个人可能关系比较近一些,如果只有小股东关系远一点,如果只是普通业务来往关系更疏远。不信任成员的程度决定了区块链的价值,也就是说这些成员之间的疏远关系越远的话带来的价值越大一些。还有去中介化,比如说租房子买房子需要中介,如果通过区块链把中介去掉了价值比较明显。
这是区块链常用的一些标准判定,在互联网金融这个领域里面,通过区块链可以满足到像快速结算、不可篡改、容易审计以及标准化这样一些优势。举一个很简单的例子,就像银行都有它所谓的银行编码,用于银行之间的转账。我们区块链做的分布式方式,就是说大家之间建立一个账本数据,每个银行把自己的联行号写到里面去,全部人都会有这个数据,就不需要中心去维护这样一套数据,这个例子不是很复杂的业务逻辑。可以看到,通过区块链共享数据之后,能够帮助大家化解很多流程上机构上的操作。第二个例子是L/C(银行信用证),这是一个很常见,也是很多创业公司在做的事情。L/C是非常复杂的业务,买家告诉我有多少钱,你把货物发给我,我打给你,相当于淘宝里面的支付宝功能,当卖家把货发出去之后,通过一系列过程,钱才能从买家银行支付给他。这是L/C主要的原理,它的成本非常高,周期也非常长,最早是用纸质的文档,后来电子化之后有文档在传递,很多过程即使是电子化之后也要保证它的成本。区块链做这个交易的时候是全新的一种数据方式,比如说在区块链上面我们把买家卖家各个相关的方的数据打进去,大家看到同样的数据之后,然后通过刚才讲到的智能合约,在区块链上满足一定条件之后自动复发,这个是通过区块链实现最基本的概念原理,通过它可以降低风险执行速度,有几个银行像美国银行和恒生等几个银行已经做了试点,通过区块链实现它的业务上的掉点。
四、Fabric应用场景
前面介绍了买家和卖家移入,后续的话如果真正做场景更复杂一点,到供应链的一个场景,这个时候不仅仅是有买家卖家和银行三方在里面,其实有更多的事情在里面,包括运输的各种各样的场景,物流的运转,而且每个数据之间需要做数据更新的动作,这个时候成员之间它的交易保护,交易还需要有保密的需求,这就是我们今天讲的hyperledger需要解决的很重要的问题。这个场景更复杂一点,假定有N个商店需要买这个农场的商品,真正做交易的时候A买了农场X东西的时候,需要建立这样一个私有的链去把这个交易记录下来,在hyperledger这个环境里面,就只有一个公有链和一个私有链区分两种不同需求,那么当一旦这个交易做下来之后需要涉及到很多更复杂的地方,整个公路上有很多的交易相关方,刚才说了银行只是其中的一部分,可以建立一个区块链,那么在运输过程中可以生成另外一个区块链,它知道运输物流的情况,到了运输的时候海关有各种各样的场景,这种情况下就是有不同的,在大的环境里面区分很多小的能力,记账的能力或者叫记账的账本,这是超级账本最终要解决的问题,像传统的系统是没有办法解决很复杂实际的多方参与的交易环境数据,所以现在的超级账本最终为了实现这样很复杂的行为去集中基础服务。
最后介绍一下hyperledger fabric交易的机密性,在权限管理控制方面都要有中心化身份认证的管理,同时具备后面那些特点,是偏技术一点的,这个是超级账本主要做到的一些方面吧。所以我这边的分享的内容可能主要是这些,因为比较偏技术一点,希望各位老师给点意见,看看有什么样可以讨论的问题。
文字整理 肖子琛
图文编辑 魏宗 郑畅
点击查看近期热文
欢迎加入群聊
为了增进与粉丝们的互动,IMI财经观察将建立微信交流群,欢迎大家参与。
入群方法:加群主为微信好友(微信号:imi605),添加时备注个人姓名(实名认证)、单位、职务等信息,经群主审核后,即可被拉进群。
欢迎读者朋友多多留言与我们交流互动,推荐好文章可联系:邮箱imi@ruc.edu.cn;电话010-62516755
关于我们
中国人民大学国际货币研究所(IMI)成立于2009年12月20日,是专注于货币金融理论、政策与战略研究的非营利性学术研究机构和新型专业智库。聘请了来自国内外科研院所、政府部门或金融机构的65位著名专家学者担任顾问委员和学术委员,74位中青年专家担任研究员。
研究所长期聚焦国际金融、宏观经济理论与政策、金融科技、财富管理、金融监管等领域,定期举办高层次系列论坛或讲座,形成了《人民币国际化报告》《金融机构国际化系列报告》《财富管理研究报告》等一大批具有重要学术和政策影响力的产品。成果还被译成英文、日文、韩文、俄文、阿拉伯文等版本在欧、美、亚多个国家发布,引起国内外理论与实务界的广泛关注。
2016年,IMI入围《中国智库大数据报告》影响力榜单列高校智库第4位,并在“中国经济类研究机构市场价值排行榜(2016)”中名列第32位。
国际货币网:www.imi.org.cn
微信号:IMI财经观察
(点击识别下方二维码关注我们)
只分享最有价值的财经视点
We only share the most valuable financial insights.