精华 Polkadot团队的中国之行(上海见面会)
发布于 3 个月前 作者 yuelipeng 194 次浏览 来自 Polkadot技术

2017年8月20日下午,在上海外滩soho,因特链社区组织了一次小型聚会,邀请了国内区块链行业的技术领导人和一些投资机构,欢迎Polkadot项目的Gavin Wood博士、Web3基金会的Björn Wagner以及Parity团队的Robert Habermeier。

腾讯视频网址QQ Video:https://v.qq.com/x/page/t05419hd3do.html

Gavin讲解了Web3的概念。

599ab94558dd7.jpg

Björn讲解了Polkadot的第一部分

599ab9520c339.jpg

Robert讲解了Polkadot的第二部分

599ab0e630b56.jpg

最后因特链社区创始人岳利鹏进行了一次中文演讲,概述了Polkadot项目的起因和整体框架。

599ab1059af48.jpg

其中中文演讲PPT如下:

599ab2fabc8cf.png

现在大家都在说Web3.0这个概念,它代表着一系列的去中心化技术,为了理解它,我们先来看一下互联网的演进历史。IT信息技术的出现使静态网站可以让公众访问,代表着Web1.0时代的到来,以往我们需要进行面对面对话,或使用纸张等载体进行信息传播,但IT机器作为更高效的信息载体和传播工具,成为了新的中介。随着互联网技术的进步,动态网站让用户可以更多的参与进来,代表着Web2.0时代的到来,互联网也一步步变革了实体商业,将买卖双方之间的层层中介或代理,逐步打穿,成长出一个个平台化的巨型互联网公司,比如天猫对线下销售体系的冲击,滴滴对出租车公司的冲击,但中介并没有消失,只是从很多小中介变成了一个大中介。比特币的出现代表着Web3.0时代的到来,将传统以人的利益为核心的机构中介,变革为以代码为核心的机器中介,最终将交易参与方直接撮合在了一起,大大降低了双方的信任壁垒和交易成本,完成了中介的机器化改造。

599ab2faba2de.png

在我们目前的去中心化世界里,我们已经有了比特币,去掉了央行的货币发行中介和记账中介,我们也有了比特股可以进行多资产的兑换,以太坊的出现使区块链这个载体与区块链上的应用进一步分离,用户可以编写任意的逻辑,门罗币和Zcash在保证链本身公开透明的情况下,满足了用户的隐私需求。联盟链改革了共识算法和权限机制,不再产生分叉,可以运行现实世界相关的商业逻辑,同时区块链的世界没有满足于现有的几条链,各种各样的新链正在不断涌现。除了区块链这样一种形式,去中心化的世界里还有其他各种技术,IOTA没有链也没有块,IPFS和Swarm解决着存储的问题,Whisper解决着聊天的问题。

599ab2fac27fa.png

但现在的去中心化世界存在多种问题,虽然我们在改进单条链的性能,比如比特币从1M升级到2M或8M,以太坊将虚拟机的速度提升100%或转POS,但单条链的性能无法无限制提升,否则普通用户将无法运行一个全节点,自主校验所有数据,所以纵向扩容存在瓶颈,需要多条链存在来分工协作、横向扩容。用户的差异化需求和竞争也导致了各种新链的爆发,公链和联盟链的数目会越来越多,复杂度会越来越高,呈现出不可逆的碎片化趋势。而区块链本身是个完全独立的共识系统,与外界不产生任何直接关系,所以链与链之间也没有任何相通性,每条链的矿工系统是独立的,比特币的ASIC矿机挖不了以太坊,以太坊的显卡挖不了POS的比特股,比特股的权益代币也不能用于其他POS链的共识。用户需要在不同链上有不同的账户,各条链的数字资产也必须通过中心化交易所才能完成兑换,联盟链的合约也跟以太坊的合约没有任何联系。链的封闭性也导致了代币功能的局限,比特币只能在自己的链内进行a+b=c+d的UTXO运算,无法作为流通货币参与其他链的经济活动。

599ab2fae8e1c.png

下面举一些简单的例子,也解释割裂的区块链世界的弊端。最简单的,我们无法用现有的几条链完成百万级别TPS的数字货币转账,我们无法直接在链上完成BTC和ETH的原子兑换,必须通过中心化的交易所中介。我们无法在链上用Zcash匿名参与以太坊上的众筹,必须经过中心化的ICO平台。我们无法直接获取以太坊上合约对应的Dapp界面,必须经过中心化的域名和网站服务器。以太坊上还有很多应用需要获取现实世界的数据,必须通过复杂的Oracle机制输入进去,但这个数据也无法直接给其他链调用。因为隐私需求搭建了一条联盟链,就无法与公有链进行相互的读写操作。

599ab2fae1cd9.png

总而言之,我们可以把目前割裂的多条区块链系统,类比为还没有出现互联网的单机计算时代,把未来的各种跨链技术类比于互联网繁荣后的因特网时代,它们将提供链间通信的各种基础协议,将区块链世界的网络效应真正发挥出来。

599ab2fae59ed.png

跨链技术还处于发展初期,去中心化程度、协议层级、和应用场景各有不同,我们目前常见的交易所就是一种纯中心化的跨链技术,状态通道支持链下高频交易,侧链支持状态数据的跨链验证,Oracle将链外数据手工输入链内,Cosmos是另一个重要的跨链项目,但仅支持数字货币的跨链转账。Sharding是以太坊的同构分片技术、0x、Kyber、Swap、Omega等是另外一些交易技术。

599ab2fb11db1.png

Polkadot是去年10月提出的异构多链架构,致力于用去中心化的方式实现链间的任意消息通信,字面意思本身是波尔卡点,是一种均匀分布的圆点图案,含义就是多条链的平行存在。Web3基金会的愿景是开发各种去中心化技术,并委托parity团队进行polkadot的核心开发。pairty团队大家已经比较熟悉了,他们打造的以太坊parity钱包有着非常高的性能和非常易用的界面。

Polkadot认为目前区块链系统无法伸缩的原因,是把共识系统中的一致性和有效性绑定的太紧了。有效性的概念是比如我有10个比特币,我转给张三5个是有效的,或者我转给李四10个也可以是有效的,但我转给王五20个就是无效的。但一致性的概念就是我只能转给张三或李四其中某一个人,即使我发出了两笔同时有效的交易,最终网络会通过竞争性挖矿共识出一条最长链来达成一致,另一个交易会被丢弃。更加概括性地讲就是有效性负责运算,是强CPU依赖的;一致性负责投票,是强出块权依赖的。运算只要有CPU就行,投票需要买矿机或者买代币。我们目前区块链系统的矿池节点就是同时在做这两件事情,对于POW系统,计算有效性所占用的时间比例可能很小,大部分的时间都是在进行出块权争夺,POS系统的出块权不再需要争夺,这样节点大部分的时间就可以用来校验用户交易的有效性,但这两者也还是在一个系统内绑定的。Polkadot是个异构的多链框架,通过新增一条处于中心地位的中继链,可以从根本上解耦这两者,解决系统无法伸缩的问题。

599ab2fb1573c.png

下面来大概看一下Polkadot的整体架构,首先是目前已经存在的这些区块链系统,包括比特币以太坊等他们有着独立的共识系统,要想作为子链接入到Polkadot系统中来,就需要开发符合Polkadot规范的转接桥系统。平行链是直接符合Polkadot规范的新型子链系统,目前还不存在。中继链是用于全系统共识和跨链消息路由的区块链。其中中继链采用DPOS机制,上面的权益代币叫做DOT,提名人是普通持有DOT代币的人,他们将手中的代币投票给候选人,其中代币数最高的100多个候选人将成为验证人,行使系统出块权,收集人负责平行链交易处理和数据整理,钓鱼人负责系统内非法行为的举报。

599ab2fb27618.png

然后我们具体来看这张图,中间的这个大圈是中继链,完成选举后上面会有100多个验证人,然后它周围的小圈是各个平行链,中继链包含了所有平行链的协议,能够识别平行链的交易格式,比如比特币的UTXO格式,以太坊的EVM格式,Zcash的零知识证明格式,HyperLedger的联盟链格式等。

对于每一个块,验证人都将进行随机分组,然后去负责不同的平行链,所以中继链的验证人游走于各个平行链之间,并不从属与任何特定的平行链,他们只运行中继链的全节点,不运行任何平行链的全节点,否则将成为性能瓶颈。每条平行链有多个固定的收集人,他们各自运行着自己平行链的全节点和中继链的全节点,收集用户的交易后,首先进行计算并打包出候选块,然后附加上计算所依赖的数据,再交给负责该平行链的验证人小组,验证人小组会挑选并验证某个候选块,之后共识出该高度的平行链区块。

等所有平行链的区块都确定了,全体验证人再把跨链消息进行路由,发送到相应的目的区块链,之后再共识中继链区块。 等到下一个块,验证人再重新打散,分配到各个平行链去,如此循环往复。

599ab2fb2c820.png

从上面的描述,我们可以看出Polkadot试图达到的特性,Polkadot只是为了达成消息通信协议,并不是为了完成任何实际应用,所以会保持最小的功能性。尽量将复杂性推给中间件或平行链,基础协议尽量保持简单。对平行链尽量减少要求、约束或限制,能成为任意共识系统开发的基石。只有保证安全和健壮,才能让更多的外围链系统进行Polkadot改造,或成立新平行链系统接入进来。

599ab2fb32885.png

Polkadot总结起来只为了达成两个目标,一个是合并安全性,一个是去信任的跨链交易性。

为什么要合并安全,因为现有的POW或POS链有51%分叉攻击的可能,PBFT的链有67%分叉攻击的可能,如果仍然采用目前独立的共识和计算机制,市值较低的链其安全性就较低。然而每条链为了能和其他链交互,又无法运行所有链的全节点,就只能相信路由过来的证明数据,如果路由数据错误或者被分叉推翻,将造成系统间的数据不一致,跨链交易的原子性无法保证。所以要把平行链的出块权从原来固定的几个人变成中继链上随机变换的验证人。这样再想攻击平行链,由于无法确定难度基础就变成了中继链整体权益的51%或67%。平行链将出块权让渡给中继链,自身只需要负责交易计算,这也是Polkadot宣称自己解耦一致性和有效性的方法。

有了全系统的安全性保障,那交易路由也就变得简单了,平行链间可以相互发送交易,中继链负责将跨链消息发送到对应的目的链、并返回结果。

回到顶部