| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 主流链分片技术和共识算法 -> 正文阅读 |
|
[区块链]主流链分片技术和共识算法 |
前言设计到的链:Harmony、Elrond、Cosmos、ETH 2.0、Polkadot、Near Protocol 一. 主流链所用的分片技术对比1.0 HarmonyHarmony 是一个基于状态分片和 PoS 的高性能公链项目,它的分片架构由一条信标链和多条分片链组成,信标链提供包括去中心化的随机数,分片链 Header 的验证,接受验证节点的权益抵押等服务。 Harmony 怎么保证分片系统的安全性?为了抵抗1%攻击,Harmony 采用了 EPoS(Effective Proof-of-Stake)的有效抵押机制和安全的随机分片技术(Random Sharding),靠协议的规定把大户抵押的代币打散成许多细小的部分,并随机分配到多个分片里,这样任何人就无法把他抵押的代币集中到单一分片内,从而无法攻击单一分片。如下所示。 Harmony 如何防止节点被贿赂?为了避免贿赂攻击,Harmony 引入了基于 Cuckoo Rule 的随机再分片机制(Resharding),系统会每隔一天时间重新随机打散验证者的权利,并再分片,让攻击者很难锁定要贿赂的目标,没法成功攻击单一分片。Harmony 采用了独创的分布式随机数生成(DRG, distributed randomness generation)协议产生安全不可预测的随机数。见下图。 Harmony 如何优化跨片通信?Harmony 采用了「Kademlia 跨片路由技术」,来控制跨片间通信的网络开销,并且利用「纠删码」对区块广播过程进行优化,使广播者的网络压力更小,避免发送者的网络瓶颈问题,从而实现高效的横向分片扩展。 1.1 ElrondElrond是一个自适应状态分片的高吞吐量公链,提出了一种改良的权益证明机制,称之为安全权益证明(SPoS)的共识机制,引入随机选择的共识组,抵押加评级的方式。 与 Harmony 类似,Elrond 也有一条主链,称之为公证链或元链(Notarization (Meta) chain)。 Elrond 如何跨分片通信?Elrond 执行跨分片通信的策略是使用异步模型。Elrond 的每个块结构由一个区块头表示,它包含块随机数、轮次、提议节点、验证节点时间戳等信息,以及包含交易信息的微块(Miniblock),每个微块都包含所有事务。 在这个网络中,交易的验证和执行会先在发送方的分片中完成,然后在元链中进行公证并提供执行证明,之后再到接收方的分片中完成并更新余额等。 Elrond 如何保证跨分片通信时数据安全?Elrond 使用了随机数来保证安全性,例如将区块提议者和验证者随机采样到共识组中,并在一个轮次结束后对分片之间的节点进行改组。 1.2 CosmosCosmos 如何跨链交易?Cosmos的区块链间通信协议( Cosmos 如何保证链间交易数据安全?Cosmos 没有解决分区安全性的问题,或者说 Cosmos 避开了安全性的问题,一旦某个分区被恶意节点攻陷,该分区可以任意向 Hub 提交伪造的交易,而 Cosmos Hub 不会去验证交易本身的合法性,是否信任该分区则完全是其他分区或者用户决定的,也就是说最终的安全性仅由该分区的验证者节点负责。 1.3 ETH 2.0ETH 2.0 跨分片通信原理借助信标链完成交易过程:1. 交易包含在某个分片的分片块中;2. 随机分配给该分片的权益委托节点验证并签名该区块;3. 被签名区块被包含在下一个信标块中;4. 下一个信标块通过Casper FFG共识生成;5. 每个分片块与下一个信标块通过哈希连接起来,通过哈希证明彼此的Merkle根,从而能够验证彼此的证据。更多解释参考此处。 ETH 2.0 如何进行跨分片通信?以太坊的分片链和主链上都部署了一个分片管理智能合约(
ETH 2.0 如何保证跨分片数据的有效性?ETH 2.0 使用纠删码结合Merkle证明数据的有效性。欺诈证明仅由 M 个Merkle 证明组成,证明检查算法验证证明,然后使用这 M 个块计算剩余的块,并检查完整的块集的默克尔根是否等于原始默克尔根。更多解释参考此处。 1.4 PolkadotPolkadot 如何进行跨链通信?转接桥(Bridge)桥在波卡的链间通信中有着重要作用,有三种不同的含义:
1和3是针对异构跨链通信,2是针对同构跨链通信。 Polkadot 如何保证跨链通信的数据可用性?验证者会在网络中广播纠删码片段,至少 1/3 + 1 个验证者必须报告他们拥有的纠删码,一旦达到验证者的这个阈值,网络就通过消息根来验证平行链的 在 在Polkadot中,对平行链的区块共识需要进行以下三个级别的有效性验证,更多解释见此处:
1.5 Near ProtocolNear 是基于全状态分片、对开发者友好的可拓展性公链。Near 与其他分片公链不同的是,它的技术架构并不是由一个信标链和多个分片链组成的,而是把系统建模成一个单独的区块链,在区块级别进行了分片,每个分片中有很多“段”。简单来说,Near分片是在同一个账本块里,之后进行细分,整个账本块保持不变。 Near Protocol 实现区块级别的分片以及重新分片NEAR不是以交易数量来分割区块的,创世区块没有分割,就是1个[chunk],见代码
后面生成的区块依据区块生产者数量进行分割,若该数量不大于3,则区块被分割成1个[chunk],否则被分隔成 (total_parts - 1) / 3 个,其中total_parts为区块生成者(或者隐藏验证者)数量,由创世文件配置,见代码:
NEAR中账户和合约都会分配一个分片,由于账户和合约的存储使用量不相等,因此某些分片的使用量或者大小可能会远超过其他分片的使用量或者大小,为了避免这种情况,NEAR根据特定条件定期重新平衡分片,最终是一组具有合理且平衡的交易量和存储使用量的分片。 如果每个分片的交易使用量的限制(比如Gas)或者每个节点的预期存储量超过特定阈值(比如大量块超过一半),则会新增分片数量并平衡每个节点的预期用量。 Near 如何跨链通信?NEAR协议像传统的区块链一样,每个区块都包含所有分片的所有交易,但是此数据并不存在于单个物理区块中;因此,每个节点不用存储所有数据。相反,验证人仅存储其特定分片的交易,而且该区块中所有交易的列表是物理的存储在该网络的各验证人的「chunk」中。这一模式可以在不牺牲高吞吐量的同时,确保 NEAR 不会在跨分片交易中出现双花。「chunk」设计和资源的不断重新分配,使 NEAR 可以实现更高效的跨分片通信。 对于 NEAR 上的一个跨分片交易,上一个区块处理完之后,会生成一个带有需要与之交互的各分片的收据。在下一个区块中,chunk 生产者收集其负责的分片中的常规交易以及跨分片交易的交易收据。 Near 如何保证数据的可用性?Near 也是通过「纠删码」来解决分片的数据的可用性问题,因为分片的存在,并不是所有的节点都有所有分片的状态,如果一些节点没有某些分片的状态,就难以保证某些数据的可用性。 Near 的解决思路是,一旦特定的块生产者创建了一个块,他们就会使用 (n, f+1) 个Code创建一个纠删码版本,其中 Near 状态有效性证明NEAR通过”渔夫“来确保状态的有效性,在每个epoch开始时运行 为了证明状态转换的正确性,渔夫需要提供两个连续的状态哈希、中间的交易以及受Merkle证明影响的100MB数据。 Near 实现验证分片数据的有效性
二. 各主流链所用的共识算法对比在看下面内容之前,应该先对POW,POS,BFT这三种基础共识算法有所了解。 2.0 Harmony 共识EPoS(有效权益抵押) + FBFT
优点:
2.1 Elrond 共识SPoS(安全权益证明)+ PBFTElrond 通过随机选择共识组,与抵押和评级这些维度相结合的方式来达成共识,它与传统 PoS 不同的是,加入了对每个参与打包节点进行评级这个维度,以及共识组内通过 pBFT 进行签名确认。SPoS改进PBFT的leader-follower模型,使得leader和follower的选择具有随机性。SPoS优点是保持PoS机制的能耗友好性又不牺牲网络安全性。 PBFT的优点:
PBFT的缺点:
2.2 ETH 共识Casper FFG+CBCFFG (Fridenly Finality Gadget)在工作量证明(如以太的 ethash PoW 链)的基础上,使用了权益证明。块链继续用 ethash PoW 算法增加区块,但是每50个块有一个 PoS “检查点”,通过网络验证者来评估区块的最终有效性(Finality)。 CBC( Correct by Construction)协议在开始阶段是部分确定的,其余部分协议以证明能够满足所需属性的方式得到(通常协议被完全定义,然后被测试以满足所述属性)。 优点:
2.3 Polkadot 共识NPOS(提名股权证明) + BABE + GRANDPA波卡使用NPOS主要是为了选取共识节点,BABE和GRANDPA通过混合来高效的进行区块链的出块和确认。这样的混合共识比传统的PBFT共识速度更快,并且在速度更快的基础上并没有丢失掉安全性。将出块和确认区块两个阶段分开并且使用不同的算法是在区块链共识中值得学习的地方。通过这三种算法,Polkadot可以说在一定程度上高效的实现了Polkadot上区块链的共识算法。更多解释见此处。 2.4 Near Protocol 共识Doomslug + Nightshade Finality GadgetNear 采用了独创的 Doomslug 的共识机制,该共识机制允许一组权重最高的区块生产者只需要一轮通信就可以创建区块,区块的权重是所有验证者和区块生产者签名的累加,从而使得每个区块都不可逆。而且即使有 50% 的区块生产者不在线,也依然可以完成。 同时他们还推出了一种最终确定性工具,结合了以太坊 2.0 中使用的Casper FFG、Casper CBC和Polkadot 中使用的 GRANDPA ,称之为 Nightshade Finality Gadget(夜影确定性工具),它可以保证区块在不超过 1/3 恶意攻击者的情况下会被最终确定,进而增强了网络安全性。 优点:
缺点:
2.5 共识算法对比PBFT、Tendermint 和 Hotstuff相同点:PBFT、Tendermint 和 Hotstuff 都以非常相似的方式工作 不同点:
三. 参考https://near.org/blog/doomslug-comparison/ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 0:44:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |