区块链性能提升——链上设计之道


节选删改区块链性能提升:链上设计之道

原文—— The Road to Scalable Blockchain Designs


概述

本文介绍了区块链的性能问题,并概述了区块链on-chain(链上)性能提升的关键方法和可扩展区块链的设计模式。


区块链扩容

image

由于区块链的固有缺陷,比特币系统已经变得越来越中心化,并且越来越低效。 为了解决这个问题,大量替代解决方案被提了出来。Off-chain(链外)解决方案允许小型和频繁的交易发生在与主链并行并由主链背书的侧链实例上。 On-chain(链上)解决方案直接修改区块链设计以支持高性能。 我们专注于后者,并总结和讨论近期On-chain(链上)性能提升方面的研究进展。

尽管建立在信息开放和自由的理想之上,互联网已经变得越来越中心化:只有少数大公司可以控制谁可以访问信息。 为了抵消这一趋势,一些建议被提出,以便信息存储和处理不集中在任何单一实体中。

一些人认为只将比特币区块链用作大额交易的结算网络——小规模交易由区块链之外的支付中心处理(off-chain scaling,链外扩展),而另一些人则主张增加区块链本身对所有交易类型的容量 (on-chain scaling,链上扩展)。 作为这一主张的附带结果,链上扩展(on-chain scaling)的支持者最近推出了比特币区块链的支链作为自己的网络,称为比特币现金。 在本文中,我们综述了区块链链上扩展(on-chain scaling)的关键主题和选项。

Legends used in Models

区块链性能

有两个测量指标与区块链扩展性直接相关:交易吞吐量(区块链可以处理交易的最大速率)和延迟(确认交易已包含在区块链中的时间)。吞吐量和延迟是提升区块链性能的瓶颈问题,从研究的角度也更具挑战性。比特币的交易吞吐量是其区块大小和块间间隔(时间)的函数。在当前块大小为1MB和10分钟块间间隔的情况下,最大吞吐量限制在每秒约7个交易;而创建交易的客户必须平均等待至少10分钟以确保交易包含在区块链中。相比之下,像 Visa 这样的主流支付处理公司可以在几秒钟内确认交易,并且每秒处理吞吐量高达24,000次。目前的研究集中在开发显著提高区块链性能的解决方案,同时保持其去中心化特性。对比特币区块大小和块间间隔的参数化可以在一定程度上提高性能:每秒27次交易吞吐量和12秒延迟。性能的显著提升需要重新对区块链范型进行根本性的设计。

Bitcoin Blockchian Model

区块链新设计

为提高区块链的扩展性开发了许多的重要的设计方案。 我们的研究范围仅限于链上解决方案,而不是将信任委托给侧链的技术。

多区块单一领导

Bitcoin-NG 分享了比特币的信任模型,将领导者选举与交易序列化解耦。Bitcoin-NG将时间划分为epoch,领导者节点可以在其epoch期间单方面向区块链追加多笔交易,直到新领导者节点被选出。 Bitcoin-NG中有两种区块:密钥区块和微区块。 密钥区块包含一个难题答案,用于领导者选举。密钥区块还包含一个公钥,用于签署由领导者节点生成的后续微区块。每个区块都包含对前一个微区块和密钥区块的引用。费用会在当前领导者(40%)和下一个领导者(60%)之间分配。与比特币类似,通过增长(聚合所有密钥区块的)最长分支来解决分叉问题。

为了对微区块中创建分叉的领导者节点进行惩罚,后续的领导者节点可以在其关键块(包含被剪枝分叉中的第一个块的头部)之后插入特殊的有毒交易作为欺诈证据。这使恶意领导者节点的报酬无效,报酬的一小部分支付给告发领导者。当一位新领导者选出但前任领导者还没有收到,并继续产生微区块时,分叉也会出现。然而,一旦新领导者选举的宣布达到所有节点,这些分叉就会得到解决。

Multi-blocks per Leader

集体领导

该方案采用多个领导者共同快速决定是否应该将区块添加到区块链中。ByzCoin 通过扩展Bitcoin-NG取代比特币的概率性交易一致性保证,以实现高交易吞吐量。好处在于,区块链仍然是无分叉的即使客户提交的交易将被添加到区块链中,因为所有领导者都立即就区块有效性达成一致。 ByzCoin修改了Bitcoin-NG的密钥区块生成机制:一组领导者,而不是单个领导者,产生一个密钥区块,然后是微区块。领导者小组由近期时间窗口的矿工动态组成。每个矿工的投票能力与其在当前时间窗口的挖矿区块数量成正比,这是其哈希能力。当一位新矿工解决难题之后,它将成为现任领导小组的一员,更进一步,替换出最老的矿工。 ByzCoin使用与比特币相同的激励模式,但报酬由领导者小组成员按其比例分摊。

Collective leaders

领导者小组被组织成一个消息通信树,其中最新的矿工(领导者)在树的根部。领导者运行一个具有线性消息传递复杂度的实用拜占庭容错协议的修改版本,以生成一个集体签名,证明至少三分之二的共识小组成员见证并验证了该微区块。网络中的节点可以以O_{(1)}时间复杂度验证该微区块已被共识小组验证为有效。这种设计解决了Bitcoin-NG的限制——恶意领导者节点可以创建微区块分叉:在 ByzCoin中,这要求领导者小组成员的三分之二多数为恶意节点。此外,Bitcoin-NG遭受竞争条件困扰:一位尚未收到新领导者的老领导者节点可能会继续错误地在较早的微区块上进行挖矿。在 ByzCoin中,领导者小组成员确保新领导者建立在最新的微区块之上。

平行区块链增长

在这种方法中,多个领导者并行增长区块链的不同部分。比特币具有增长区块链的线性过程:矿工尝试解决难题,找到答案的矿工追加下一个区块。交易可以由多个子节点进行潜在的验证。此外,每次交易还会包含一笔报酬,这笔报酬由验证该交易的交易收取。随着更多的节点直接或间接地验证它,报酬值会降低,因此新节点有更多的动机来验证最新的交易。该系统已被证明是收敛的,这意味着在某一时刻有一个交易连接到之前的所有交易。作为这种图结构的结果,矿工可以并行地增长交易图的不同分支。系统中的正常(非矿工)节点在收到交易时验证它们。除了对交易及其双亲的工作量证明正确性和结构有效性进行标准检查之外,节点还验证该交易不是双花。

Parallel Blockchain Extension

分片交易

Elastico将节点分成称为“委员会”的组,每个委员会管理交易的一个子集(分片)。上部分片处理前10个交易,而下部分片处理后续10个交易。在委员会内,节点运行拜占庭一致性协议以协定交易区块。如果该区块已被足够的节点签名,委员会将其发送给最终委员会。最终委员会将从委员会收到的一系列交易整理到一个最终区块中,然后在其成员之间运行拜占庭一致协议以增长区块链,并将附加区块广播给其他委员会。系统按epoch运行:分配给委员会的节点仅在epoch期间内有效。在这个epoch结束时,这些节点解决当前最终委员会产生的随机字符串难题,并将求解答案发送给下一个最终委员会。因此,在每个epoch,一个节点与委员会中的不同节点搭档,管理一组不同的交易。委员会数量与系统中可用算力成线性比例关系,但一个委员会内的节点数量是固定的。因此,随着更多节点加入网络,交易吞吐量增加而延迟不会增加,因为这里有一个解耦:一致性协议所需的消息与添加到区块链的最终区块的计算和广播之间的解耦。

Sharding transactions

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

推荐阅读更多精彩内容