导读:
一、超级账本项目概述
首先对超级账本作一个定位,历史上2008年10月中本聪发表论文之后,比特币机制开始运行,成为第一个由区块链技术支持的加密数字货币; 2016年Linux基金会成立超级账本项目。现在区块链这个领域阅读全文
一、超级账本项目概述
首先对超级账本作一个定位,历史上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交易的机密性,在权限管理控制方面都要有中心化身份认证的管理,同时具备后面那些特点,是偏技术一点的,这个是超级账本主要做到的一些方面吧。所以我这边的分享的内容可能主要是这些,因为比较偏技术一点,希望各位老师给点意见,看看有什么样可以讨论的问题。
五、讨论环节
苏治:非常感谢海宁老师做的精彩演讲,确实偏技术一点,我最大的收获是,其实我觉得比特币大家比较熟悉,人工智能这个事情实际上是通过AlphaGo推出来的,任何一个商业组织包括大的公司也有是有自己的商业战略,AlphaGo像一张名片一样把人工智能推到了前台,人工智能也是常识了好多年了,最早开始做脑工程,最开始的神经网络模拟人脑的神经原,神经原一些节点前反馈后反馈这套神经网络做完了,后来发现存在过拟合问题,一旦模仿的非常好,历史数据拟合精度很高,预测很差,把所有东西搞的很细致了,每一段拟合的非常好,但是外推性很差,但是外推性精确度又很低。总之人类是走了很多弯路,今天确实不曾通过这个互联网以后,移动互联网也好,大数据也好,云计算也好,其实它基本形成人工智能的硬件条件和数据基础有了,才有这个由量变到质变的过程,其实AlphaGo是一张名片,比特币是不是也是区块链的一张名片?区块链是一大类技术的总称,比特币只是冰山一角。所以我觉得后来我一个收获,实际我们对区块链的理解大多数人都是非常狭隘的,它并没有明白应用端的问题,这样一个技术跑到应用端,有些东西加密不加密,应用不应用,这些效率有多高这都是现实的问题。
曲双石:刚才突然想到一个问题,我不是太懂技术,它这个分布式账本是把一套完整的账本分布在各个节点上,每个节点都有一套完整的账本,好处是说不怕某一节点的损坏是吗?但是缺点是不是也容易丢失,入侵一个节点就可以得到所有的数据,泄密范围非常大,会不会有这种问题?
邹均:我觉得它实际上从某种意义上说像我们说的全息系统,认为在局部都包含了整体的信息,好处是它能够抵抗很多危险,另外一个确实是它因为是共享,所有人都有这个信息,这样的话最重要还是我们这个应用是全线控制的链还是非全线,刚才张老师讲的是全线控制的,会根据它的实际情况给这个节点的赋予,有些能读有些能写,有些读写都不行,有些能参与共识有些不能,根据不同的情况来分布节点,总的来说它这种分布式账本的技术跟以前的分布式计算不太一样,以前的分布式是说我一个任务拆分成小的任务,合并起来变成我结果,现在是说同一个任务在各个节点上同时跑,再用共识形成最终一个状态,这两个思路是不一样的,您刚才提的是很重要的问题,是在应用层面怎么去限制这些权限。
苏治:我对比特币大概的理解是虽然每个阶段记着所有交易,比特币核心在于它链的每个节点上能存储信息,这个信息有两个密钥,两个密钥对上之后再揭开,原则之上这种加密的交易是没有办法破解的,超级账本说白了它把这种东西改变了,有一些权限可看到有一些看不到,等于在应用端更灵活了。
张海宁:刚才说的比特币不用攻克就能看到所有数据,它的数据默认就是公开的,不用黑客黑进去才能看到。
邹均:交易是不能够篡改的,大家看到的是交易的量,或者是某个地址到某个地址,是谁很难知道,通过大数据的分析,可以找到那些蛛丝马迹,他叫半匿名也不是完全的匿名。它实际上可以做到完全的匿名,这里面应用了不同的加密算法。
苏治:现在应用端其实央行搞数字货币的话,其实还是有一定的中介化。所谓去中心化的思想,但是一定是有中心化的。
张海宁:我觉得他们的数字货币是在央行在商业银行之间的。
邹均:央行可能是他最大只能他产生货币,但是一些流通的功能要下发。我是非常认同你说的,这个东西不能够走极端,现在很多人把区块链贴上了标签,完全去中心化,实际上有一个众筹的项目做基金管理,它想做完全自动化,不需要人才这些智能合约,可以所有的自动执行,它最后投了大概1.5亿美金,上线一个月之后被一个黑客攻破了,它实际上是利用了一个漏洞,不断把那些众筹者的钱转进去,转到另外一个账户,因为他是完全去中心,智能合约没人能控制,只能眼睁睁看着他把钱转走,他们是极端无政治主义,极端自由主义去中心化的那种思潮,最后社区要把这些钱弄回来,还是要采用中心化的手段,所以就是说不能够走极端,过犹不及,实际上有些像中国以前强调中庸,国外你看数学里面也有所谓的回中率,他这里面确实有些哲学的概念。
苏治:对,去中心化一定会有其他的弊端,一个东西完全去中心化了,其实就跟现在的纯粹主义(差不多)。共识这个东西就是契约机制,契约机制的升级,这种升级有硬件的条件,比如互联网这些。
嘉宾:我有一个问题,我不太懂技术。我看中间有一个假设条件是在50%的不出现,拜占庭中不出现非忠诚者的基础之上有这样一个结论,我们现在的技术对于这种黑客的防御怎么样?如果一旦这个假设并不是很稳固的话岂不是整个系统都会受到摧残?
邹均:它是有所谓的容错机制,比特币的假设条件就是非层次的算力低于50%就相对安全,或者是很大程度安全,这是因为比特币环境是个公开的网络,所以一般情况下,假设条件不能限制得太死。有很多的人造假,但从人心的角度来说大部分人都是诚实的,它这个假设条件实际上是可以成立的,在比特币上面用比特币挖矿的机制是可以在很大程度上保证诚实的人最后的交易都能够执行,然后到超级账本这种情况,因为它是一个比较小的范围内有局部的联盟链,这里面出现拜占庭的机会非常小,而且你可以事后通过法律追溯它,基本上也不会有太大的问题,你刚才的问题就是说目前现在对付这种黑客这些措施这些,其实安全永远没有绝对的安全,因为安全跟安全防范是矛盾,道高一尺魔高一丈是不断演进的过程,我们今天的互联网永远不会说未来绝对的安全,永远会出现安全的隐患,我们就是要通过不同的算法根据不同的条件来寻找相对安全的措施,比特币是找到一种通过这种挖矿机制消耗电来找到平衡的机制。现在你看很多其他公司在探索这种共识算法也是在不同的场景下希望寻求一种办法能够解决这种问题。防黑客也好应对安全的技术也在发展黑客的技术也在发展,它永远是在向前,总的来说这个世界诚实的人多一点,通过很多机制能够保证诚实的人居多。
嘉宾:因为我想做这方面的选题,就是我是学金融国际经济的现在Fintech很火,然后区块链也是很热门的点,就是想说如果想比较系统的了解这个您认为应该学习哪些方面的内容?
邹均:我觉得金融科技现在是蛮火的,但是就我的理解包括很多方面,最早的银行账户系统金融科技后来发展到互联网金融、P2P、众筹这些都是金融里面的范畴,区块链目前看起来在金融科技里面相对来说火一点,这里面需要研究的东西我觉得是蛮多的,比如最重要合规监管怎么采用区块链的方式,这个可以去探讨的,金融方面一些国际的法案强调你这个银行或者是金融机构必须披露很多东西,然后要及时的去告知风险,比如说KUIC,知道你客户的情况才能给他做一些金融的服务,我觉得区块链是可以做很多这方面的研究,比如对现有的这种监管技术的一些补充或者是提升。
第二个方面就是目前的一些在金融方面的业务,如果采用区块链链的方式能不能达到降低成本,然后提高效率跨境支付,通过区块链能不能把跨境支付的周期缩短,还有就是交易对手的风险能不能通过区块链智能合约的这种方式能够很好的去解决,可以从这几方面可以考虑一下,有没有好的选题。