主页 > 如何下载imtoken > 简单易懂的区块链扩容方案

简单易懂的区块链扩容方案

如何下载imtoken 2023-03-31 06:57:29

原标题:《区块链扩容解决方案一目了然》作者:Chasey,Buidler DAO研究员

每个区块链都面临着一个不可能的三角,由去中心化、安全性和可扩展性组成。 其中,去中心化是区块链技术最大的优势,需要首先得到保障; 而如果要建立一个长期可持续的生态,安全也是一个必须做到极致的要素。 这就导致了目前公链的可扩展性普遍较低。

图片

如何在平衡去中心化和安全性的前提下提高区块链的吞吐量=扩容是一个亟待解决的问题。 近年来,ETH2.0作为以太坊的扩容愿景,在经历了多次反弹之后,在全球范围内备受关注和期待。 由此也可以看出,扩容已经成为公链用户的群体需求,吞吐量也是分析评价区块链不可或缺的指标之一。 本文旨在对目前的区块链扩容方案进行一个整体的描绘,帮助读者更清晰地理解扩容方案的基本概念。

为什么需要扩展

在开始讨论具体的扩容方案之前,我们先梳理一下扩容的作用和必要性。

区块链上的节点分为全节点和轻节点。 为了保证交易数据的完整性和安全性,全节点需要存储整个区块链的交易数据; 而轻节点只需要保存Block Header,通过向全节点请求相应的Body来验证交易。 节点数量越多,链的去中心化程度越强,同时为了达成共识需要处理的工作量也越大,对吞吐量的负面影响就越大。 另外,如图所示,比特币的区块大小上限为1MB,而以太坊中因为设置了Gas Limit(防止DDoS攻击),所以将区块大小的上限控制在130KB左右。

图片

图片

资料来源:Blockchair

由于区块大小有限,矿工无法将所有交易都放到同一个区块中进行打包,因此他们更倾向于按照预期收益(Gas Price)对交易进行排序,并根据价格从高到低进行精心打包,以确保最高的产量。 这会导致交易延迟过长且 Gas Price 较低。 如下图所示,以太坊上每分钟约有 17 万笔交易等待验证。

图片

资料来源:Etherscan

目前比特币的吞吐量低至7TPS(Transaction-per-second),而以太坊的吞吐量也被限制在15~20TPS。 为了便于理解,我们将其与传统在线交易的吞吐量进行比较:PayPal的交易处理速度约为200TPS,而VISA的约为1700TPS,差距相当大。

此外,不断增加的交易数据量对维护区块链所需的存储容量造成压力。 目前,比特币存储容量已超过400GB,同比增长17.4%; 而以太坊接近900GB,平均增长率为64.30%。

图片

图片

资料来源:Blockchair

如图所示,以太坊上每天的交易量超过125万笔,而随着公链生态的逐渐普及,未来这个数字会越来越大,吞吐量的压力也会越来越大,扩张很紧急。

图片

资料来源:YChart

读到这里,我们明白了扩容的重要性,是时候看看有哪些方法可以实现扩容了。

扩建计划分类

下图是《区块链技术研究手册》(2020)一书中的插图。 在本文中,我们将重点关注图中的“写入性能”部分,从链上和链下的角度对目前的扩容方案进行解读。

图片

资料来源:区块链技术研究手册(2020)

链上扩容计划

链上扩容方案是指通过改变原有链的设计来实现扩容效果的方案。 区块链技术可分为六个层次结构:共识层、网络层、数据层、激励层、合约层和应用层。 其中,前三者是区块链的底层基础,也是扩容方案在链上运行的对象。

1. 共识层 = BFT; 中本聪; 杂交种

共识机制是指区块链中各节点就数据的可用性和账本状态的一致性达成共识的过程。 由于共识机制完全决定了从数据下载到打包生成区块的整个过程,因此节点对交易的验证效率在很大程度上取决于共识机制的设计。 目前主流的共识机制可分为BFT共识、中本聪共识和混合共识。

类 BFT 共识

说到BFT计算(拜占庭容错),就需要说到已经司空见惯的拜占庭将军问题:拜占庭帝国(东罗马帝国)致力于扩张领土。 在一场战争中,他们试图派出 10 支军队来单独包围一个最多可以抵挡 5 支拜占庭军队的敌人。 由于各军站得较远,各军将领需要通过向其他军队发送攻击/撤退信号来达成行动共识(包括你自己,如果收到6个或更多的攻击信号,则攻击;否则撤退)。

将军们面临的最大问题是:如果其中一支部队出现叛徒,故意发出错误信号怎么办? 在区块链中,这个问题类似:区块链中的每个节点通过向其他节点发送信息来达成共识。 网络出现叛徒节点(拜占庭节点)发送错误信息怎么办? ?

最著名的类 BFT 共识是 PBFT。 感兴趣的可以自行查看参考文献[17]。 表达方式非常简单易懂,这里不再赘述。 要使用这种共识,需要保证正常运行的每个节点使用相同的随机数和区块算法来计算和生成区块。 原始账本相同时,计算结果相同,生成的账本不可篡改,永久公开。 由于每个节点都需要与所有其他节点同步共识,当节点数量较少时,可以在保证安全性的情况下实现极高的吞吐量。 随着节点数量的增加,需要处理的数据量也会相应增加,导致处理交易的速度明显下降。

中本聪共识

中本聪共识主要包括工作量证明和权益证明。 在这一部分中,我们将讨论每种共识机制在吞吐量方面的性能以及 PoS、DPoS 的变体。

PoW:算力决定记账权(还有投票权),无需设置机制对节点进行授权。 在吞吐量方面,它最大的问题是难度高导致出块慢; 并且为了保证账本的一致性,需要刻意设置打包延迟。 这里的延迟是指矿工打包区块后,至少需要再做一个区块的工作量证明,才能确认候选区块。

PoS:持币获得记账权和投票权(分别),打包节点将候选区块打包并广播,投票节点对候选区块进行投票决定是否加入区块链,投票采用多数制。 与PoW相比,PoS由于引入了投票机制,牺牲了一些安全性; 在吞吐量方面,由于包装速度快,无等待时间,延迟极低。

DPoS:持币获得投票权,选举董事会负责记账。 在 PoS 之上牺牲了部分去中心化程度,相比 PoS 具有更高的吞吐量。

混合共识

顾名思义,混合共识是指结合了不同共识机制优点的共识。 例如侧链使用PoS保证吞吐量,主链使用PoW保证安全; PoS 和 PBFT 的结合将节点数量减少到一个恒定值,从而再次增加吞吐量等。

2、数据层=分块扩容; 收缩数据; 有向无环图

除了共识机制之外,每个区块可以打包的交易数量也与交易吞吐量密切相关。 我们可以通过扩大区块容量和减少交易数据来提高区块链吞吐量,或者直接使用DAG数据结构来处理交易。

放宽/移除块大小限制

扩大区块容量可以让更多的交易数据被打包到每个区块中,但同时也会增加区块广播时间,增加网络延迟,增加硬分叉的风险。

收缩存储在块中的数据

在此类方案中,比较著名的是Segwit隔离见证:将区块信息的签名部分和用于计算交易ID的数据分开管理,从而压缩60%的交易信息量。 作为缓解容量问题的辅助方案更为有效,但不能解决本质问题。

DAG(有向无环图)

如下图所示,区块链采用链式结构,其区块头只能包含一个区块的哈希值; DAG结构下的区块头可以包含多个区块的哈希值; 新的区块将被添加到链的末端,不能从链的中间继续; DAG 可以从之前的块继续。

图片

资料来源:俄罗斯博客

区块链是同步记账,节点需要同时记录相同的信息; DAG是异步记账,不同的节点可以同时记录不同的信息。 因此DAG在单位时间内可以打包更多的交易,TPS极高。 目前基于 DAG 的协议主要有 SPECTER 和 PHANTOM。

SPECTER协议通过投票防御攻击

如下图,当Block X和Block Y记录的内容冲突时,Block X之后记录的Block 6~8会记录与Block X相同的信息X; 第9~11块将记录与第Y块相同的信息Y; 区块12可以同时回到区块X和区块Y,所以它会记录与上一轮投票(虚线内)相同的结果,即X; 区块1~5将根据记录自己区块信息的区块的投票状态进行投票。 由于记录X的区块有很多,1~5个选择给区块X投票。由于恶意区块直到攻击开始后都不会与诚实区块关联。 在使用 SPECTER 协议时,只要有更多的诚实节点,就可以消除冲突交易。 问题是它只适用于一般交易。 由于没有办法将所有交易按照时间线性排序,所以智能合约无法运行。 PHANTOM 协议可以解决这个问题。

图片

资料来源:SPECTER 概览

PHANTOM协议会先通过投票筛选出诚实区块,并对诚实区块进行拓扑排序

在了解筛选方法之前,需要先了解分叉系数k=可以分叉的次数(比如区块链不允许分叉,所以k为0)和GHOSTDAG算法=通过追溯历史块,选择最长的一个作为主链,组成一个子集S,这个集合中的块默认都是诚实块。 之后,对于每个区块,验证未连接区块与子集S的交集是否小于等于k,如果小于等于k,则判断为诚实区块,加入到子集S中。

图片

资料来源:PHANTOM 概览

下图(k=3)为例:假设我们现在需要判断区块I的真伪,区块I衍生出的区块分别包括区块K、M、O、P、R。 Block I 可以追踪到的区块分别是区块C,D,和原始区块。 此时与块I无关的块为块B、E、F、H、J、L、N、Q、S、T、U,其中有与子集SB、F相交的块, J 等于 k,因此区块 I 被判断为诚实区块。

图片

资料来源:PHANTOM:可扩展的 BlockDAG 协议

排序方法采用拓扑排序:首先将没有可追溯块的块作为原块0,然后在除块0之外的块中选择没有可追溯块的块作为块1,以此类推。

图片

资料来源:Kappo 的博客

目前采用DAG结构的项目,中心化程度都比较高,这里不再赘述。 对DAG感兴趣的家人可以搜索DAGLabs进行学习。

3、网络层=碎片化

分片是指将账本拆分成若干部分,由不同的节点组管理。 通过状态分片的实现,每个节点需要处理的交易数据变少,不仅可以提高交易处理速度,而且相对降低了节点的性能要求,从而降低了参与挖矿的门槛和程度。权力下放得到加强。

图片

资料来源:为什么分片很棒:揭开技术特性的神秘面纱

分片 1.0

state sharding最初的想法是:在信标链上增加n=64个数据分片blob,每个周期(epoch)有n个验证节点广播自己的数据分片blob,由委员会判断数据的真实性和可用性得到确认,确认的 blob 被添加到执行链中。 每个epoch后重新分配每个分片链对应的验证者的机制导致分片链切换后数据同步不及时的问题,会造成延迟。

此外,这种方式还面临四个问题:无法保证信标链上的每个区块都写入了所有分片需要的交易数据; 不可能对所有分片执行全局检查; 验证节点可能会导致 liveness 失效; 结合PoS,只要有足够的钱和足够多的节点来控制,就更容易控制委员会。 在 ETH 发行率下降和验证中心化的背景下,该机制为 MEV 提供了机会。

图片

湿分片

为了规避Sharding1.0的风险,DankSharding提出了两个要点:所有的blob都会加入到信标块中; 每个委员会的成员只处理碎片数据的一个子集,所有的信标数据和碎片数据可以一起检查。

具体来说,Danksharding的核心机制分为三个部分:

Data Availability Sampling:编码器采用RS编码冗余传输,减轻节点验证压力,同时采用KZG多项式承诺保证编码正确。 在此之上,通过对数据块的分片进行重新分片,在不同数据块分片之间进行重组,将RS码扩展两位数,降低所有节点数据重构的门槛,从而降低中心化程度;

区块生产者和打包者分离:将全节点分为两个角色:区块生产者和打包者。 低配置的区块生产者负责分散选择打包者和打包者的投标。 高配置、高性能的打包器 通过竞价获得打包记账权,解决MEV的价值分配问题;

反审查列表:区块生产者指定合法交易列表,打包者证明自己看过该列表,并将列表中的交易包含在打包中,防止打包者故意忽略合法交易。

图片

原始 Danksharding/EIP-4844

DankSharding 的机制很难实现。 作为阶段性解决方案,EIP-4844 出现了。 EIP-4844引入了时间敏感的blob,类似于移动硬盘。 写入主网后,blob只存在一段时间,然后被销毁。 在EIP-4844的设计中,还引入了KZG多项式承诺,以保证后续DankSharding实现的前向兼容性。

链下扩张计划

链下扩容方案是指在不改变原链结构的情况下,通过在主网之外进行交易处理,减轻主网的处理压力。 主要有状态通道、链下计算、多链三种。 为了方便理解,我们在多链方案中包含了侧链和子链。

状态通道

状态通道是指通过多重签名等方式锁定特定参与者之间的一部分区块链状态(开启通道)->对于通道中发生的状态转换,在所有人同意的情况下在链下更新participants Status -> 确认最终状态并广播到主链。 由于只需要广播最终状态,使用状态通道处理琐碎的相互交易可以有效减少主链上广播的交易数量,减少交易延迟。 另外,每个参与者都可以通过中介与其他没有开通通道的参与者进行交互:Alice 和 Bob 之间有一个通道,Bob 和 Carol 之间有一个通道,那么 Alice 可以在不打开通道的情况下通过 Bob 与 Bob 进行通信。 卡罗尔互动。 状态通道透明度低,通常只适用于特定参与者之间的频繁交易。

图片

资料来源:EthHub

2. 链下计算

链下计算旨在通过将验证以外的所有功能转移到链下来提高链上吞吐量。 主要是需要保证安全和隐私。 具体运行方式可分为可验证链下计算、“飞地”链下计算、链下安全多方计算、激励驱动链下计算四种。

图片

资料来源:基于区块链的信誉系统:实施挑战和缓解措施

可验证的链下计算:zk-SNARKs、Bulletproofs、zk-STARKs

链下验证者将链下计算结果上传到链上,链上验证者对其进行验证。

“飞地”链外计算:Enigma、Ekiden

在区块链节点上创建可信执行环境(Trusted Execution Environment,TEE),并预置用于计算的数据接口。 TEE作为一个黑盒子,在实现明文数据计算,提高计算效率的同时,可以有效保护数据隐私。

链下安全多方计算

数据被拆分分发到各个节点,节点根据区块链的当前状态和自己获得的数据计算状态变化,将各个节点计算的数据结合起来,得到完整的计算数据。 节点需要计算的数据更少,效率更高。

激励驱动的链下计算

Solver计算交易数据,并在公布结果的同时质押保证金; 验证者检查求解器的结果比特币系统扩容方案,如果发现错误,可以质押保证金并发起链上仲裁,正确的一方将获得用户支付的手续费。

3、外链=侧链; 卷起

外链是指在主链之外创建一条新的区块链,通过跨链执行将部分交易处理(如计算和存储)转移到新的区块链上,并将结果广播到主链,从而提高处理能力主链的效率。

侧链

侧链是完全独立于主链的区块链。 它采用锁定+铸造/销毁的方式将资产从主链投射到侧链,并在侧链上完成交易处理和存储的全过程。 侧链的安全性完全取决于自身的节点和共识机制。 分为锚定侧链和联盟侧链两种(在主侧链之间加入多重签名地址来验证交易,减少延迟)。

图片

资料来源:EthHub

卷起

Rollup 与侧链的区别在于它只处理子链上的交易,数据仍然存储在主网上,因此在享受主网数据安全的同时提高了交易处理效率。 Rollup根据数据可用性和交易验证方式可以分为四种:

欺诈证明(报告无效交易)+ 链下 DA(安全-,扩展效果+)= Plasma

Plasma需要在主链上创建一个写入子链哈希状态转换规则的智能合约,从而连接主链和子链(还有孙链、曾孙链……)扩容机制类似于状态通道,通过减少主链需要处理和保存的交易来提高吞吐量,但它在主链之外建立的不是特定参与者之间的通道,而是一个共享的新区块链,具有独立的共识机制。 主链智能合约提交状态更新,成功通过7天挑战期后将区块状态写入主链(乐观证明,以保证交易安全)。

它结合了状态通道和侧链的优点:在状态通道模式下,如果需要添加新的参与者,需要在链上重新开启一个新的通道,而Plasma则不需要; 当状态通道与主链同步状态时,需要所有参与者的同意,但 Plasma 不需要; 状态通道只保留最终状态,Plasma 的状态转换记录在子链上有完整的记录; 侧链上的状态转换会直接影响主链上的状态,所以它的资产安全取决于侧链本身,而 Plasma 则没有,它的安全取决于主链。

Plasma 机制面临的主要问题是:子链节点需要在子链上保留大量的交易数据; 节点必须在线。

图片

资料来源:等离子:扩展以太坊的创新框架

有效性证明(推断交易有效)+链上DA(安全性+,扩容效果-)= ZK-Rollup

zkRollup 可以有效改善 Plasma 面临的问题。 由于这部分zkRollup和Validium都使用零知识证明作为验证机制,所以我们在这部分简单描述一下零知识证明的概念:零知识证明是指向他人证明某个命题是正确的,除了由于该命题是正确的,因此没有提供其他信息来支持它。 比如A用零知识证明向B证明自己是成年人。 这时B不会知道A的生日,只会知道A已经成年了。 在 zkRollup 中,zkSNARK 用于验证大量交易。 在确认这些交易的有效性后,只需要向主网上传这些交易有效的零知识证明即可。 这样大大压缩了数据量,交易数据可以写入主网。

zkRollup 也面临一些问题:零知识证明计算困难; 需要初始信任; 通用性差

Validity proof(扣减交易有效)+链下DA(安全-,扩容效果+)= Validium

Validium 还使用零知识证明来确保其交易信息的有效性和链下数据的可用性。 它和 zkRollup 唯一的区别是它把数据可用性放在了链下,这使得 Validium 有更高的吞吐量,但结果是数据可用性管理器稍微修改了 Merklized 状态,使用户无法转移资金。 如下图,如果d3被修改,d1的拥有者将无法获得节点m的信息,而m是证明其账户所有权的必要条件。 zkRollup 出现后,Validium 基本上完全失去了竞争力。

比特币扩容2018_比特币系统扩容方案_比特币扩容 利益

资料来源:Validium 和第 2 层

欺诈证明(报告无效交易)+链上DA(安全+,扩容效果-)= Optimistic Rollup

Optimistic Rollup 是 Plasma 的升级版,可以解决 zkRollup 的通用性问题。 默认节点提交的交易信息是正确的。 将交易信息提交至主网后,会有7天的查询期供他人核对交易的正确性。 它与 Plasma 的区别在于交易数据是写在链上的; 与 zkRollup 的区别在于它不使用零知识证明。 Optimistic Rollup 在中和另外两个 Rollup 的同时,也牺牲了一部分吞吐量。

图片

资料来源:ethereum.org

总结与展望

因为不可能三角的存在,注定了不会有完美的扩张计划,每一个计划的成本都需要权衡。 个人认为,由于链上扩容的成本较高(包括硬分叉和技术难点),实现难度较大。 通常情况下,链下扩展方案将是主要解决方案。

在目前的链下扩容方案中,Rollups 以其安全性保持着优势。 但是,虽然通过 Rollups 可以极大地释放 L1 的吞吐量,但是将 L2 打包的数据传回 L1 的速度仍然受到以太坊区块大小的限制。 目前以太坊一个区块的存储量在100kb左右,Rollups打包后一分钟内可以处理的数据不到500kb。 主网除了接收打包数据外,还需要对L1上的原始交易信息进行处理,这些共同导致了链下扩容方案的吞吐量瓶颈。

幸运的是,不同的方案是可以组合的:在链上方案中比特币系统扩容方案,DankSharding的思想可以通过使用抽样验证和RS编码大大减少验证节点和数据下载的工作量,解决交易处理速度的问题。 后来,它可以补充 Rollup。 而如果以实现sharding为大前提,目前的Rollups中,Optimistic Rollup的成本主要是写入主网的成本,最适合ProtoDanksharding,可以降低成本。 因此,个人认为在不久的将来(如果EIP-4844成功落地),链下Optimistic Rollup+链上ProtoDankSharding会是最好的选择。

原文链接