OK工程院 Shine JIANG:区块链底层技术发展前沿 | 清华x-lab公开课

2018 年 12 月 26 日 大数据文摘

大数据文摘出品

整理:蒋宝尚


清华x-lab公开课第二期第三讲邀请到OK工程院的Shine JIANG,他为清华师生带来了题为《区块链底层技术发展前沿》的演讲。


嘉宾介绍:其12年毕业于清华大学网络与信息安全实验室(NISL),著有《恶意代码:分析与实战》。曾是著名安全战队蓝莲花初创队员,并且先后在腾讯、百度等知名互联网公司工作。曾担任百度AI模型安全团队的技术负责人,曾主导并开发了百度大脑(PaddlePaddle)上的第一个对抗样本工具集Advbox。


以下是演讲内容:



上图介绍了区块链的发展的历程。区块链从2008年诞生以来,引起了社会的广泛关注。今天抛开这些浮躁的讨论,从技术方面入手,看看它有哪些技术的特点,它为什么会受到关注,它目前的制约点在哪,研究上面都有哪些进展。

 

区块链发展的三个阶段


区块链1.0就是以比特币为代表,概念首次提出是2008年,2009年正式启动比特币的网络,在这个网络里面,它有别于互联网的地方就是在互联网上面实现了价值的转移,之前互联网发展几十年,主要解决的问题是互联互通,我们使用互联网的服务,后面有一个一个的服务商,有一个中心化的节点。在区块链里它有这样几个特点:一是去中心化;二是不可篡改;三是可信任。总的来说,区块链技术融合了计算机科学、密码学、网络和经济学的博弈论。


区块链的2.0就是以以太坊为代表,它的主要特点就是加入了智能合约,智能合约是在1995年提出了一个概念,计算机受限于当时的环境,由于依赖于可信的第三方,并且还有数据的不可篡改性,操作涉及到多方,会带来一些限制。区块链诞生带来天然的运行基础平台,区块链在以太坊进行结合,扩大了场景。相当于在溯源、经济领域,都可以在以太坊2.0上去做一些工作。


区块链3.0有两个发展的趋势:一是区块链的应用。区块链发展这十年,真正走到我们身边的应用很少,几乎是寥寥无几。这块的应用一个是基于联盟链的企业级的应用,像天猫的跨境物流的跟踪,跨境的支付,还有像我们前面公布的疫苗溯源方案,都是相当于基于区块链的特点做的一些应用。


可扩展性制约区块链发展



为什么我们发展了那么久,它在应用上没有深入到用户级别的场景,主要是它的可扩展性受到很大的限制。这也是目前绝大多数公链所努力攻破的一个点,就是它的可扩展性。它的可扩展性到底有哪些问题呢?这是去年年底风靡全球的一个游戏,叫“加密猫”,这个游戏直接导致了以太坊的严重堵塞。它的原因就是以太坊上从它的设计上不能支撑这么大规模的交易,导致了它在打包、入块的流程上受到了阻碍。而传统中心化的交易平台,它的处理能力像Visa和支付宝,Visa是2.4万的TPS,支付宝“双十一”峰值32.5万TPS的峰值,和比特币和以太坊最大理论的峰值,比特币是7,以太坊是15。



什么原因让它性能这么低下呢?区块链里有“三元悖论”,这是以太坊提出的概念,他的意思是说区块链领域里面不可能在同一时间,同一层面从去中心化、安全性和可扩展性三个方面做到提升,在区块链这块2008年比特币设计的时候,主要解决是资产的价值转移,在资产里面很重要的一个特点就是要安全性。比如说要去买理财,去做一些投资,肯定考虑的是资金的安全性,这是首要的。在安全上的基础上,我们才能考虑的是它的收益,如果本金都没了,其实投资的价值也就很少。

 

在区块链里面,像比特币和以太坊里面,为了提升去中心化和安全性,设计的时候每一个节点,每一笔交易都需要全网去广播,全网节点去做验证,每一个块也是需要全网去同时争取这样一个记账的过程。当然,从这两个点上就失去了它的可扩展性。我们全网的性能制约点就相当于取决于每个节点单点性,在全网里加入的节点越多,性能不仅没有得到提升,消息的广大、通信的复杂度反而更高。让它的可扩展性受到了极大的限制。

 

像US它比较聪明,牺牲了去中心化,用了21个超级节点的概念,前提认为这21个超级节点是可信的,这种共识用了21个超级节点,虽然提供可扩展性,性能也得到比较大的提升,但是牺牲了去中心化区块链本质的特点。另外也要保证这21个节点要完全可信任。另外有一些区块链里面为了提升去中心化和可扩展,只用了一些分散的存储计算,从全网里面选出一小部分节点来做共识,选出一小部分节点,不同的节点之间存储的账本不一样,这就让去中心化和扩展性有一定的提升。但是这就会让它的安全性降低,攻击的难度也降低。

 

四种方法解决区块链扩容问题

 

目前在区块链的扩容方案里,可扩展性这个方面有四种方法:一是DAG;二是二层扩容;三是共识创新;(这里有两个案例)。四是分片技术。



首先介绍一下DAG,是有向无环图,是计算机领域里一个比较重要的数据结构。



它的意思就是在图里面,从一个节点出发,沿着箭头的方向,不管从哪个路径走都不会回到这个节点本身。这是它的有向无环图的定义。我们看到在传统区块链,比特币和以太坊里面,存储方面是一条主链的结构,按照时间顺序由一个一个的组成,当一个区块入块了,剩下所有的节点去竞选下一个区块的记账权,就是矿工,从而来获取记账的分红。在这里我们可以认为,这是同步的过程。


一是全网同步的去出同一个区块,另外对每一笔交易全网都要去做验证,并且每个节点存储区块链的信息。带来的好处就是保证了严格的一致性。而DAG里面它改变了这样一个存储结构,它认为区块链里面比特币、以太坊里,每一个块包含了多笔交易,并且基于时间顺序来做的。在DAG这个网络里面,每一个点只是一笔交易,不是一个块的概念。后面的一笔交易通过一定的策略,会连到前面的多笔交易上面去,并且会对前面这样一个交易做一个验证。这样做的好处就是它把这样一个原来同步的存储改成了异步,理论上来说是支持无限的扩展。

 

TPS也可以无限的大,但是它有一个问题,就是如果有一个节点,后面没有人链接到他,相当于没有人验证他这一笔交易的有效性,就永远得不到确认。另外,在这里由于没有使用强一致性,尤其是智能合约运行的时候,它运行一段时间有可能会导致出现“双花”,不一致的现象,安全性并没有得到广泛的验证。在这种存储结构里,由于比特币和以太坊都是这种存储结构,运行了十年,也没出现问题,它的安全性经过了实际工程的检验。另外在DAG里,每一笔交易之间的溯源,因为它的图复杂度极高,和区块链里单链的结构来比,它的复杂度极高。



二层扩容,把链分成两种,原来的链还是比特币,即以太坊的主链,另外又生成了侧链,将复杂的交易和频繁的交易放到链下,最终的确认放到主链上去做,这样做的好处就是减少了主链的压力,但是最后总体的性能评定很明显,就是主链,最高像以太坊来说也就是15。虽然是以那个创新,但是对性能的提升也是有限。



Algorand,这个是图灵奖的Micali提出公链的设计方案,他认为他突破了“不可能三角”,他的共识算法采用VRF+POS+BA*的算法,它的设计的思路是:比特币和以太坊里每一笔交易要全网广播,全网做验证,这里只是随机选出来一小部分节点,让这一小部分节点去做出块的提名人、验证人和出块节点。共识的很大范围降到几个节点之间,用了一些算法保证节点选取的随机性,得到了一定的安全保证。所以说加快了交易的吞吐量。但是这个方案目前并不完善,可扩展性也是有限的。它的理论值是2000,与现在号称百万、千万的差距很大,最终的理论值也就200,实测也就是到1000左右。



Dfinity是另外一个从共识方法上去改进区块链可扩展性的一条公链,一度被认为是区块链的3.0。它的思路和Algorand有点相似,也是将整个网络选举出一小块的局域的几个节点,在这个节点之间再选出共识的委员会,在这个委员会用了一些BLS多签的方法出块,一定程度上来说,两个方面,一是共识组由全网变成局部的网络,第二是在共识的方法上做了创新,用了BLS多签的方案,也是提升了交易量。



分片技术(Sharding),它其实和前面两个共识相比,随机选取一小个节点来说,就更近了一步。在比特币、以太坊里它的性能取决于单点的性能,加入的节点越多,网络没有更好,反而更坏。是不是存在这样一种方案,让它可以并行的去做,比如说把它切分到一块,其实有了分片技术。分片是数据库里面的概念,提供数据库横向扩展的方法,通过将数据库切分到不同的数据库上,来提升服务器对数据库访问RO的可扩展性。


这个地方把分片用在区块链里面,通过一定的机制和方法,将整个区块链网络分成若干的共识组,每个共识组交易量之和就是整个这条链的整体吞吐量。这个地方设计了几个重点,第一是你如何进行共识组的选举。选出来的共识组,如果里面有大量的拜占庭节点,坏的节点。相当于在这个节点里安全性受到极大的挑战。另外一个,就是在你的分片大小是不是合理,如果你的分片太小了,几个拜占庭节点有可能影响你分片的安全性。如果你的分片太大了,影响片内的交易太多,也会影响一定的吞吐量。太小了还有一个问题,跨片的交易会多,跨片的交易还不如原来的一个网络。这是几个要点。

   

分片也分了三个:网络分片、交易分片和状态分片。交易分片是在网络分片的基础上去做的,是通过将整体网络分成若干分片,每个分片并行的进行交易,但是全网所存储的还是一个账本。对每个节点的存储压力依然是存在,状态分片的好处,每个分片只存储本分片的部分账本,这就从交易和存储两方面去提升它的扩展性。在这里随着分片的越多,整体网络可扩展性也就越大。



这是我们的设计目标,“不可能三角”,我们在这个理论下做的一些工作。我们保证一定去中心化和一定安全的前提下,去提升公链的可扩展性。其实在比特币和以太坊里面,也尝试过有很多其他的方法,比如说是增加区块的大小,一个区块是不是能打包更多的交易,第二个是缩短区块的出块时间,时间缩短。但是这些方案一是也有一定问题,二是对性能的提升也极其有限。

 

精彩问答


Q:公链采用拜占庭算法,激励机制怎么考虑的?要不要退出那个激励机制?

 

A:我简单说一下这个激励机制,对于协作型网络机制PBFT,Leader生成一个块的话,需要经过别人的验证也就是签名,激励机制一种方法就是出块节点拿到一部分奖励,另一部分是验证节点也需要拿到一块奖励。然后对于一个分片来说,如果生成一个块的话,需要通过拜占庭假设的话,三分之二的节点认证通过就可以,激励的话也是激励验证后的有效节点,具体怎么分是比较细节的问题。



Q:链具有普适性的,现在有没有公链落地的场景。

 

A:公链现在也有一些链,专门为特定的场景服务,比如自己做去中心化交易所,开发一个链,具体的应用。之所以没有大规模的应用,有两个原因,第一还是中心化的思想在里面。另外是由于公链传统的性能,没有解决,专门公链,用户量没有那么大。但是公链这一块有一点是你的用户量越大,允许所有人加入,用户量越大,在加入的人越多,安全性、去中心化才能更好的尝试。我一直觉得公链就是底层的基础设施,是服务于各行各业的。在现在这个阶段,有可能会出现这样几条链,针对不同的行业去做,主要受制于性能、安全性。



365个机器学习概念,“耐撕”的AI日历限量预售☟



【今日机器学习概念】

Have a Great Definition

登录查看更多
0

相关内容

区块链(Blockchain)是由节点参与的分布式数据库系统,它的特点是不可更改,不可伪造,也可以将其理解为账簿系统(ledger)。它是比特币的一个重要概念,完整比特币区块链的副本,记录了其代币(token)的每一笔交易。通过这些信息,我们可以找到每一个地址,在历史上任何一点所拥有的价值。

知识荟萃

精品入门和进阶教程、论文和代码整理等

更多

查看相关VIP内容、论文、资讯等
新时期我国信息技术产业的发展
专知会员服务
69+阅读 · 2020年1月18日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
133+阅读 · 2019年12月12日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
91+阅读 · 2019年11月13日
蚂蚁金服微服务实践(附演讲PPT)
开源中国
17+阅读 · 2018年12月21日
【物联网】物联网产业现状与技术发展
产业智能官
15+阅读 · 2018年12月17日
【工业智能】电网故障诊断的智能技术
产业智能官
33+阅读 · 2018年5月28日
孙正义:未来30年的人工智能和物联网
智能交通技术
3+阅读 · 2018年3月4日
【精华版】2017年区块链干货合集
FinTech前哨
4+阅读 · 2018年1月11日
【区块链】区块链是什么?20问:读懂区块链
产业智能官
8+阅读 · 2018年1月10日
Arxiv
6+阅读 · 2018年2月26日
VIP会员
相关VIP内容
新时期我国信息技术产业的发展
专知会员服务
69+阅读 · 2020年1月18日
【大数据白皮书 2019】中国信息通信研究院
专知会员服务
133+阅读 · 2019年12月12日
资源|Blockchain区块链中文资源阅读列表
专知会员服务
43+阅读 · 2019年11月20日
【白皮书】“物联网+区块链”应用与发展白皮书-2019
专知会员服务
91+阅读 · 2019年11月13日
相关资讯
Top
微信扫码咨询专知VIP会员