区块链扩容的一种解决思路——多链并行架构的Cosmos

引言

比特币、以太坊的扩容争议长期以来一直都受到广泛关注,社区内也不断提出各种解决方案来解决这一问题。主流方案有区块扩容、隔离见证+闪电网络、分片等,除此之外,多链架构的Cosmos,提出一种新的扩容思路。本文简单介绍了Cosmos,并和主流的几种的扩容方案做了对比分析。

Cosmos简介

官网的定义是分布式账本的网络。

A Network of Distributed Ledgers

白皮书一开始提到了比特币、以太坊、DApp、闪电网络等等,巴拉巴拉一通它们的成绩,然后总结这些技术不行(白皮书指出的问题主要是可扩展性方面,Cosmos开发者不看好现有的垂直分片技术),Cosmos能解决所有问题。

Here we present Cosmos, a novel blockchain network architecture that addresses all of these problems.

核心概念有Hub、Zone及IBC:

Hub

Cosmos网络里第一条链是Hub,从名字和功能上都可以把它理解为Cosmos的中心链或者管理员链,所有其它区块链的交易都会在Hub记录,一条区块链上的token可以通过Hub转移到另一条区块链。Hub是Cosmos网络的核心,和其余的Zone是不平等的,从严格意义上讲Cosmos网络不是真正的分布式系统,如果Hub发生了单点故障(当然Hub本身是分布式的,发生问题的机率很小),Cosmos网络的很多特性会不可用。
关于这点,白皮书中语焉不详,大致就是Hub必须得到严格保护。

While each zone may be a Tendermint blockchain that is secured by as few as 4 (or even less if BFT consensus is not needed), the Hub must be secured by a globally decentralized set of validators that can withstand the most severe attack scenarios, such as a continental network partition or a nation-state sponsored attack.

Zone

Cosmos网络里其余的链称为Zone,你有什么想法,自己做条链(Zone),你的地盘你做主。Cosmos为Zone提供了一个参考实现。基本上Cosmos开发者的想法是他们来维护Hub,开发者去做Zone,建立一个生态系统。
Zone 的设计思路是隔离应用,推荐一Zone一应用,一个Zone多个应用当然也是可以的。各个Zone自己玩,玩崩了也是自己崩,不会像以太坊一个爆款应用就能拖垮整个网络。只有Zone和Hub交互才会对网络的中心节点造成压力,跨Zone交换token正常情况下频率较低,退一步说,即便Hub堵塞了,也不会影响各个Zone内部的正常运行,可以认为Cosmos网络是高可用的。

IBC

IBC是Zone和Hub间交互的协议,Hub不限制Zone的实现,只要是通过IBC协议和Hub交互就是一个合法的Zone。因为有IBC这个机制,除了按照Cosmos的规范实现一个Zone,现有的区块链也可以通过适配器的方式接入Hub,只要背后的技术团队愿意,比特币、以太坊等等都可以接进来。

性能

性能方面,Cosmos宣称能在64个验证人(分布在五大洲的七个数据中心)的情况下达到每秒数千笔的交易。


Cosmos性能测试结果

Cosmos上线的第一年,验证人数量最多将设置为100,之后十年的增长率将在13%,最终达到300位验证人。验证人数量增加,通信会更复杂,性能相应地会降低,白皮书的应对措施是通过增加内存、带宽、处理能力保证性能。

扩容方案对比

区块扩容

区块扩容要从比特币的区块设计讲起,大家都知道比特币的交易上限大约为每秒7笔,这个每秒7笔是怎么算出来的呢。
首先,比特币区块结构如下图所示,可以看出其中大部分容量用于存储交易信息。


比特币区块示意图

所有的交易信息都存储在区块中且必须存储在区块中,否则不会被承认。目前比特币系统内定义每一个区块的大小是1M,每10分钟产生一个这样的区块,一个基本的比特币交易大小约为250Byte,通过计算即可得出平均每秒大约可以处理7笔交易(实际交易平均大小约为500Byte,每秒可以处理2-3笔交易)。
好比一列火车,只有四千两百个座位,火车的运力大约是每秒运送7个人。当前的火车坐满了,只能等10分钟后的下一趟车。想提高运力,火车头后面多挂车厢呗。从技术人员的角度出发,如果将比特币类比为业务系统中的数据库,随着系统流量不断增长,数据库成为系统的瓶颈,这时怎么办呢,最简单的做法就是升级数据库主机。
对应的扩容方案就是增大比特币区块的容量,但就像火车头不可能无限制加挂车厢、数据库主机不可能无限制提升性能一样,区块容量也不可能无限制增大。
做一个估算,按照VISA在2015年的记录,全年平均每秒2920笔交易,峰值每秒1.4万笔交易,按平均值去设计区块容量,单个区块为900M,一年数据量是47TB,无论是单个块的处理能力、区块的传输带宽、还是全区块的存储容量,都不是普通人的电脑可以支撑的,违背了比特币去中心化的初衷。
比特现金(BCH)是现实中的区块扩容的例子,它Fork了比特币的代码,去掉了对隔离见证的支持,将区块的最大体积提升到了8M,可以简单理解为比特现金的系统容量相对比特币提升了8倍。

区块扩容的优点

  • 方案简单,技术风险小
  • 实施周期短(目前技术方案中唯一在生产环境中上线)

区块扩容的缺点

  • 扩容效果不明显
  • 未来系统容量上升空间较低,几乎不可能达到商用支付系统的规模
  • 无限制的区块扩容会损害比特币的去中心性

隔离见证+闪电网络

比特币另外一个扩容方案是隔离见证+闪电网络。所谓隔离见证,让我们回到之前的比特币区块结构,比特币区块里含有两种重要信息,一个是交易信息,另一个是见证信息或者叫签名。交易信息和见证信息放在一起会有安全隐患,所以就有研究人员提出把脚本签名信息从基本结构里拿出来,放在一个新的数据结构当中。做验证工作的节点和矿工也会验证这个新的数据结构里的脚本签名,以确保交易是有效的。隔离见证也要求增大比特币的区块容量,相应地增加了比特币的处理能力,虽然其出发点是为了安全性而不是扩容,扩容只是附加效果。
这个改动可以比作给火车加挂行李车厢,原来车厢里的行李全部放到行李车厢里,行李架空出来也可以躺人,一趟列车可以运送多一些的人。
隔离见证虽然没有显著提升比特币的处理能力,但它所做的工作简化了闪电网络的设计,闪电网络对比特币交易性能的提升是颠覆性的。之前我们所提到比特币每秒最多处理7笔交易,并不是说假设全网只有你一个人发起比特币交易,这笔交易会在一秒内处理,理论上最快也要等待10分钟才能处理完成(6 个块的可信更会导致确认1个小时的最终确认时间)。就像平均来看火车的运力是一秒运送了7个人到达目的地,但实际上是一列火车上的4200人中的每一个人都要花费10分钟才能到达目的地。而闪电网络可以将处理延迟缩短到几分之一秒,每秒处理数万笔,更有研究结果宣称能达到毫秒级延迟,每秒处理能力上亿笔,这种用户体验完全可以秒杀现有的任何金融支付系统。
闪电网络的设计思路就是把交易放到链外处理,避开耗时耗力的交易确认过程,简单来说其实现要求参与交易的双方之间存在一个支付通道(资金池)。双方都预存一部分比特币到支付通道里,之后每次交易,就对交易后的资金分配方案共同进行确认,同时签字作废旧的版本。当需要提现时,将最终交易结果写到区块链网络中,最终确认。可以看到,只有在预存和提现时候才需要通过区块链,交易时不会发生拥堵。预存的比特币在n方间的流动通过一种限时哈希密钥的方式,就像大家互相能传递限定有效时间的钥匙,这把钥匙可以拿走自己在支付通道里的比特币,现有计算机的处理能力对哈希密钥的验证完全可以做到毫秒级。
拿业务系统中的数据库做类比,就像把数据库中一部分高频读写的数据,放到内存数据库或者CPU二级缓存里运算,直到有必要时才真正写入数据库,业务处理能力得到指数级提升,同时数据库的压力大大降低。
另外闪电网络还解决了小额比特币交易手续费的问题,比特币交易的手续费是固定金额制,随着全网比特币算力的提升和比特币价值的提高,交易的手续费越来越高,买一杯咖啡需要的比特币远远小于这笔交易所需的手续费。闪电网络仅在预存和提现时才需要缴纳固定手续费,交易时按百分比收费。
当然闪电网络也不是全是优点,闪电网络需要部署智能合约到中介节点,这些中介节点可能会失效或者下线,这时交易的确认可能需要几小时、几天甚至更久,所以闪电网络对交易的金额上限有限制,首个版本的闪电网络协议将支付上限设到了0.04294967296 BTC。

隔离见证+闪电网络的优点

  • 降低了小额交易的手续费
  • 闪电网络交易处理能力可以达到商用支付系统级别
  • 闪电网络内的交易速度极快,甚至超过商用系统

隔离见证+闪电网络的缺点

  • 只适用于小额交易
  • 没有真正解决比特币自身的容量问题,比特币链上交易容量仍然受限
  • 闪电交易的交易不上链,有丢失资产的风险
  • 闪电网络的可靠性有待验证

分片

分片(Sharding)方案由以太坊创始人Vitalik提出,用以解决以太坊拥堵的现状。
首先,与比特币不同,因为智能合约的运行需要消耗算力资源亦即gas,限制以太坊链上处理能力的不是区块大小,而是 gas 值上限。目前以太坊每个区块 gas 值的限制约为 670 万,根据每区块大约容纳 200 笔交易、平均出块时间为 15 秒来计算,以太坊的理论交易处理速度可达 13 笔/秒。单纯的提高gas值上限,会增加以太坊网络被DoS攻击的风险,曾经为了提高攻击者作恶的成本,gas值上限一度降低到150万。
分片的思路是以太坊网络以后会有主链和分片链,分片链上的交易处于自己独立的空间中,分片验证人只需要验证他们所关注的分片,各分片链的交易彼此独立,不会相互影响。为了将分片链加入到主链中,在主链上需要有一个叫做验证人管理员合约(VMC)的特殊合约。VMC将分片链的当前块的哈希作为种子,采样出合格的校验块 (Collation),若干个分片链上的校验块最终组成一个在主链上的区块,本质上和现有协议中的区块没有区别,不需要主链做硬分叉;分片链并行运行,提升了整个系统的处理能力;分片链的共识结果仍然需要在主链获得更高层的公识,确保了安全性。
这种设计还有利于未来的继续扩展,整个扩展分为4个阶段,目前处于第一阶段,计划划分100个分片链,相应的交易容量就大约扩大了100倍,分片的数据在这个阶段不能跨分片传输。Vitalik预计需要用2-5年的时间实施以太坊分片方案。
还是用火车来理解,现在一列火车不够用了,我们就修100条完全并行的轨道,100列火车同时发车、同时达到,运力增加至100倍。但是目前有点限制,不管这100列火车是空的、坐了一半人、坐满了人,都必须同时发车,而且不同火车上的人现在不允许串门。
从数据库调优的角度看,分片类似于对数据库进行垂直分库,将业务彼此无关的表放在单独的数据库中,分库后不同库中的表无法进行联合查询等操作,但是可以平摊压力。

分片的优点

  • 无需提高gas值上限
  • 能逐步扩展到商用支付系统的处理能力
  • 安全性高,所有交易都会记录在主链上

分片的缺点

  • 系统复杂度高,技术风险大
  • 跨分片的通信暂时还未实现
  • 实施周期长,2-5年的部署时间可能会让以太坊错失发展良机

多链并行的Cosmos

Cosmos认为未来的世界不可能由一个区块链主导,一定是多链并存,多币并行的世界。把多链和多币整合成一个生态系统,就是Cosmos的理想。Cosmos的理念还有个独特的地方,它认为币和链应该是分离的,在Cosmos的实现里有个技术使得代币可以跨区块链进行转移。
与以太坊的分片不同,Cosmos里的Zone(区块链)是完全独立的,它们不需要采样自己的交易提交给主链以完成更高层的共识(Cosmos里也不存在主链的概念),共识在Zone内完成即可。每个Zone就像一个独立的世界,所有的规则由Zone创建者制定。Hub仅负责记录每个Zone的代币总数;完成代币从一个Zone到另一个Zone的流动。Hub更像一个中介者而不是管理员,它下放了共识的权力,换来了更好的扩展性。


Cosmos的Hub和Zone

Cosmos的区块链网络就像一个火车网络,大家自己修轨道,只要能通往Hub火车站就加入了Cosmos联运网络,其中有高铁、磁悬浮列车,也有普通火车。各种火车在自己的轨道里自由运行,不受其他火车影响,有的运力高,有的运力低,一条轨道堵塞了完全不影响其他轨道,通过Hub这个中心火车站乘客就能自由换乘其他列车,稍微遗憾的是现在只有Hub这一个火车站。
从技术角度看,这种设计思路好比数据库的水平分片(也叫水平分库),将整体存储在单个数据库中的数据,分摊到多个表结构与其相同的数据库中,这样每个数据库中的数据量就会相对减少很多,并且可以部署在不同物理服务器上,理论上能够实现数据库的无限横向拓展。然后Cosmos还提供了一个中间件供数据库间交换数据。

多链并行的优点

  • 设计优雅,架构简单
  • 理论上可扩展性最强
  • 较好地平衡了区块链的安全性、可扩展性及性能

多链并行的缺点

  • 极度依赖中心Hub,跨链交互有中心化的趋势
  • 尚未上线,实际性能能否达到白皮书水平尚是未知数

后记

本文写作期间,Telegram的创始人Nikolai Durov发布了Telegram Open Network(TON)的白皮书。TON也采用了多链架构,一链一应用,声称最多支持 2 的 32 次方 种的区块链,也支持区块链上代币的流动,考虑到Telegram背后的技术团队及1.6亿既存用户,多链并行架构未来可期。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容