腾讯科技区块链技术负责人王宗友:区块链的本质和检测标准
2018可信区块链峰会于10月9日-10日在北京召开。会议由中国信息通信研究院、中国通信标准化协会联合主办,国际电信联盟、可信区块链推进计划、工业互联网产业联盟、中国支付清算协会、互联网医疗健康产业联盟、中国保险学会特别支持。在10月10日举办的可信区块链标准与评测论坛上,腾讯科技(深圳)有限公司区块链技术负责人王宗友发表了题为《区块链的本质和检测标准》的演讲。
腾讯科技区块链技术负责人 王宗友
以下为演讲全文:
大家上午好,非常感谢信通院白雪的邀请,当时给我们的要求是说聚焦技术,其实这个挑战性很大,一个技术当然技术背景很清楚,把一些技术讲清楚可能还是要花很多时间的,我今天尽量用一些简单的语言,希望能够把一些东西讲清楚一点。
今天我们讲的大概分两个内容:一是区块链到底是个什么东西,它本质上是个什么东西,从它的本质上可以看看它对目前的一些市面上的各种观点,有我们通过本质有什么看法。我们也可以通过区块链的一些本质上的东西,对我们的标准提一些建议。
我们看到在区块链里面目前有很多说法, 有人说它是分布式数据库,也有说区块链就是比特币,或者ICO,也有说它是信任机器,Token经济、价值互联网,还有刚才我们看到的说区块链其实在国际标准组织里面叫它分布式帐本。实际从我们的角度来看,我觉得这些点用来描述区块链的本质它都不贴切,到底什么是比较贴切的?
这个是我们两年信通院做区块链标准的时候,我给了区块链定义的一个建议,基本上也是采纳了。区块链它本质上是一个技术体系,这个技术体系它用来干什么的?最核心的东西就用来防篡改和防抵赖,它是怎么做到的?它有很多技术方法,比如说它有共识多方维护,有密码学等等,最终它达到的结果就是防篡改、防抵赖。实际上这个是我当时给我的建议,其实不是我自己完全提出来的,这只是我们把它提炼了一下。
从比特币所有的技术里面包含哪些技术?块链、UTXO、HASH、签名。还有大家比较熟悉的挖矿,POW,这也是它的一个比较重要的技术,还有其他的吗?还有P2P,还有比特币的脚本,还有类似于SPV这个东西。实际上它所有的技术都指向同一个东西,就是防篡改。密码这个东西大家很清楚,POW怎么防篡改?在已知的块里面想改之前的块想让别人不知道,那你得把所有块算密的支持重新算一遍也是很困难的,从这个角度来提高它防篡改的难度。多方见证这一块,比特币其实就很多的节点。比特币所有技术都在这个图里面有体现,但是所有的东西都指向同一个点的时候,说明它的本质就是防篡改,到底防篡改有什么用?其实有做一些技术的人会有一些概念,其实防篡改这个问题本质上是一个不确定性的问题。比如我们做一个可靠性,如果你要做到绝对的百分之百这个系统不宕机是不是很困难,但是如果说只要能跑一两天或者随便跑一下的话,这个事情还是比较简单的。就是不确定性,如果它能用技术把它确定性的解决,那这就是一个很伟大的事情,这个可能偏技术化。
举个其他的例子,比如说股票选股,选股是不确定的,你选的一个股票可能概念比较大,60%,80%会上涨,如何提高他选股的准确率?看市场上有技术面、比价面等等独立的维度,关系叠加起来提高他的准确性。有一个人说我有一种办法让选股的正确率达到99.999%,接近100%?那这个是不是很神?他怎么做到的?就是多个维度,多个维度如果完全相互独立的话,在数学上可以防篡改是叠加的,可以最后达到这个效果。其实区块链最本质的东西就是防篡改的能力,防篡改越好,你的区块链技术应该会更好,可以这样理解。
如果从它的最核心来看,把区块链的技术进行一个简单的分层,它应该分几层?我这么大概理解。最核心这一层就是防篡改能力,如果比较高的话它就会比较好。最核心这一层它是实际上会涉及到一些理论的突破可能才会有些改变。第二层就是改进层,改进层是说我除了解决防篡改以外,要满足业务场景的时候可能还有些通用的需求,比如说性能,比特币出来的时候每秒TP,在大规模应用是不行的。包括存储,商业应用里面的隐私,包括带来的分布式这样的运营,这些问题怎么解决,这都是各场景下通用的问题,在核心防篡改能力不变的情况下把这些问题解决了,这就是它的改进层。第三层就是最外层的,各个场景层压关这一层就叫适配,第三层通用性是有限的,更多的是专用性。从它的核心能力上我们可以把它这样分成三层。
每一层都会有它的一些关键的技术点,比如说我们看核心层,如果从它的本质上看一下核心层,核心层代表区块链的发展方向,核心层的发展方向有哪几个点?应该只有三个点,因为防篡改能力我们刚刚画了三个角,要么发现一些新的维度,然后也能取得同样的效果,那他这个是对防篡改能力是有本质提升的。第二个你优化一些旧的维度,其实现在在很多点里面是对旧的维度是有优化的,比如在多方界面这一块原来比特币篡改所有人,这时候大家提到我要用其他一些方式,但这里面容错性就少不了,如果你没有容错,多方见证的能力就没了。第三个就是说我如果防篡改的内容要进行延伸的话,也是区块链一个比较会发生方向性的问题。之前比特币刚出来的时候,它防篡改的东西很简单,就是记了一个账。如果说现在防篡改的东西不是一个固定的原来一些静态数据,而是一旦能够执行的逻辑,一旦逻辑让它能够防篡改的话,谁能保证按照这个要求去执行的话,它就变成了智能合约,这也是我们看到的目前的一些发展方向,从逻辑上来看,从我们刚才画的三角图上你看的话,实际上它也就不会逃脱这三个方向。如果区块链要提2.0和3.0跟它之后的,那肯定也在这些代表核心方向上去找。
这个其实跟互联网类似,互联网的本质是信息联通,价值传输。我们说互联网最明显的一些几代几代分级的话,实际上就是原来的PC到移动互联网,因为他最本质的东西是连通,信息的连通,连通的范围就可能原来是在PC上,后来更多就在移动,接下来发展物联网类似这样的东西,联动的范围更大。
这是我们说核心这一层的,改进这一层因为涉及到很多点,我这里面选择一个点跟大家讲一下它的一些情况。
改进层涉及到性能、隐私很多方面,都需要在保证防篡改能力不变的情况下这些问题都是需要解决的。我这个图里面画的一个八卦图,实际上是想跟大家讲一下在区块链的体系里面为什么会产生性能的问题?实际上性能的问题就是两个东西,一个是它要多点共识,第二个篡写这两个东西是对立的,导致性能很难提高。刚刚说评测里面有一个性能做得比较好,是我们在这一块,那些方法可能就隐藏在这张图里面,大家有用的话可以借鉴。多点共识本身需要时间,这个怎么理解?比如我刚才讲了区块链是一个防篡改的东西,大家觉得这个马上就是OK的,这个时间很短。如果大家觉得这个东西不对,要讨论以后才能确定,这个事情就需要很长时间。这个事情共识完了我们才能讲下一个事情,就是区块链的篡写,这两个本来共识一个东西就需要很长时间,如果加上篡写速度就上不去了,导致性能本质的原因就在这儿。
怎么解决?因为这个还是比较技术化,我尽量简单一点讲。性能的问题实际上是在传统的各个方面应该都有体现,举个例子,比如说这个话筒,它的性能是不是就体现说我在这儿讲话,大家能听到传播的范围,这个也是话筒的性能问题,实际上它解决的思路都是一样的。话筒怎么解决?第一种我能把话筒当成一个整体,话筒本身不变的情况下我从外部解决,比如我说话声音变大一点,或者我后面的音响挂的更大一点,那么它传播的范围就会更广一点,把这个话筒当成整体,在它输入输出的地方进行解决。这里就是我们左上的链外的思维,我们可以打包签名或者是雷电网络这样的思路来解决问题。
第二个我们仍然是以话筒为例,不是纵向,横向去解决,看到习大大军演的时候上面摆一排话筒,那个传播话筒更广。我采用多片、分片,每个话筒都有工作。在区块链里面有一个跟话筒的区别,可能你存在跨链的情况,比如我一个输入存在多个链之间要转移的情况,总体思想是差不多的,是横向扩展的思路。还有一个思路是说这个话筒我要解决它本质的东西,比如说我能改变一个话筒的功放,同样的事情外面其他条件不变的话,它也能够传播的范围更广。这个到了区块链里面,实际上就是说要从共识,其他的角度,共识的角度,比如说我们提出时间的角度,还有节点跟个数的角度。我们看到有些DIPOS(音),它在共识的情况下,一次共识才能参与的节点数没有那么多,但是从长时间的角度来看,很多节点都是可以参与共识的,类似于DIPOS(音)这种方式它的核心节点可以不停的变化,最后达到很多节点,多数节点都能共识这样一个效果。
包括时间角度,我们提到了腾讯这一块的比如说是按照网络的情况进行切换,如果网络条件都很好,所有人都是善意的人的时候,我们只要解决它一致性就好了,只要知道有没有人作恶就好了,如果有人作恶我们换成有容错性的共识机制就可以做到。包括一些VRF的机制,也是对于原来POW这种进行一些改进。
当然还有一种提高话筒的声音量的问题,可能它以后就长的不是这个样子了,它可能用一些人工识别的,完全改变他这个方式,可能一些人工识别的方式就不用拿着了,让它识别你的音就可以达到这个效果,这个就是希望能够突破原来多点共识,防篡改这些本质的东西,这里面实际上也有很多尝试。比如DAG、HASH GRAPH这类的,这样的话可以提高它的并写速度。这是讲的一个例子,其他的有兴趣的,比如存储、隐私什么的大家可以下来交流。
理解了区块链的本质以后我们又回到第一个观点去看,这里面每个点我们都会看一下,因为刚开始说它可能都不是那么合适,它怎么不合适?分布式数据库什么都没谈到,比特币本质上只是上面一个应用,也不是说能够看重圈内本质的问题。信任这个情况下实际上因为技术下来了永远不会再改了,这就是信任产生的效果,而不是它本质上的东西。当然后面还有一些下一代互联网、新的生产关系。当然现在有人提出分布式账本,因为分布式首先多方见证的维度是有的,既然是账本,把它对应到区块链的技术术语里面来看就是UTXO,实际上有密码学的委托在里,至少要看住两个维度,还是比较贴切的。
当然还可以拿区块链最本质的来解释一下我们在行业里面遇到的问题,比如说这些问题,共有链鄙视联盟链,有一定的道理,如果说他是挖矿的方式,如果从比特币来看的话,你少了一个维度的话,联盟链里面实际上是很少有通过算例的方式保证它防篡改了,已经是在防篡改能力上退化了,有一定的道理。
没有币就不是区块链,这个观点实际上就跟我们说的区块链本质上是有偏差的。币它的效果可以不让你不去超过算例,它是可以让某一个维度做得更好,在某一个维度上是改进的,不能把某一个维度当成区块链,没有币就没有区块链这是不成立的,防篡改本身是一个很伟大的事情,做得很好,它就应该是区块链。
ICO是区块链最火的应用,这个年初的时候可能大家都看得比较多,本质上ICO应该是一个最底层的东西,把外部的资产通过币的方式上面到区块链上来,只解决链下到线上的事情,叫ICO,实际上它是一个特定的应用而已。
还有前一段时间Algorand也是说区块链的突破,其实大家拿到这个本质上可以看到,他实际上是对多方见证这块的确是有他的改进,他的确很伟大,但是在多方见证这块比别的做得好,但是它比本质上的防篡改能力相对比特币退化了,因为政府里面已经记下来的东西,如果我要改的话会比比特币里面要简单一点。
去中心化就是去去区块链?如果你有新的办法能做到这个东西很好的话,不用去中心化企事业OK。后面还有一些没有零知识证明的不是区块链?这个跟区块链完全无关,林知识解决的是您外层的问题,不是本质的问题,这些大家可以拿来以这个观点看看还有很多上的问题,大家如果有能攀登这些东西的话,你可能就不会被别人带的偏。
区块链标准化建议,我总结一个中心,两个基本点。中心还是围绕防篡改为中心,就是我们目前区块链频次来的很多东西其实应该告知我们要防篡改,最重要的东西不能变,要求不能降低。怎么达到防篡改的效果?从实际方式上我们有两个,一个是鼓励创新,一个是应用回本。鼓励创新这块我们实现要选导这个方式,宣导是说你应该往防篡改能力更好的方向发展,以前我们当然有很多宣导,在区块链的标准里面,但是那时候我们可能更多是罗列它方向,第二它的迭代更新,这一块可以做得很好,的确有一个按时间就不停地有迭代更新这样一个方式,但是这块其实我建议可能更主动一些,原来也是被动。因为区块链技术发展很快,原来叠加更新的目的是怕跟不上节奏,可能大家都变得不是样子了,我的标准还是原来老的,这时候我们应该更明确方式告诉他这个迭代。还有在事后把标准定义完落,要通过检测,检测方式让大家都往正确方式去走。
以应用为本,建议要描述清楚这个它背后要解决的什么问题?比如说我们某个标准点上说你要提高什么性能之类的,后面肯定至少要加上我在什么什么场景下可能会遇到性能的问题,这些清楚描述往来,第二个觉得应用里面实际说应应该是不据兴国这个才是关键。它具体怎么做到的,我们按照他的方式去做。还有兼顾通用性,它都不是普式性的区块链的标准,而是行业的标准。
这是分层怎么迁移的问题,我建议我们本身说技术它从区块链本质往外延伸分为三层,那我们应该是说最核心的我们鼓励你如果是有真正的大的创新的这种东西的话,应该说要做一个权重比较低,但是他们参加频次很低,其他的很多就很简单解完成了,那应该是有一个等级划分的权重,比如说这个东西很困难,我们尽量把这个挑到最大。
今天我的分享就到这儿,谢谢大家!