外链吧

 找回密码
 立即注册
查看: 3|回复: 0

硬盘存储比特币 一起来捉妖区块链怎么赚钱 星际互娱区块链

[复制链接]

4万

主题

4万

帖子

144

积分

高级VIP

Rank: 3Rank: 3

积分
144
发表于 2020-10-18 23:52:25 | 显示全部楼层 |阅读模式
网站优化

当我们向一种新的扩容范式转变时回顾被抛弃的旧范式是一种很好的做法

这篇文章旨在让读者相信“以 rollup 为中心” 的方法并不会背离分片并且有望构建对整个(假设性)系统更直观的理解

出于本文的目的我们先详细说明最简单的 Optimistic Rollup (ORU)实现

ORU 需要具备以下几个特性:

将所有交易数据提交到链上

将状态根提交到链上

假设状态根是正确的

一些节点负责验证 ORU 的状态转换

设有链上欺诈证明执行程序可以撤销无效状态转换

在证明 ETH 20 分片只是一种复杂的 ORU 系统之前我们先来探究一下为什么原生分片系统并非安全的可扩展性解决方案其背后原因不是特别直观

假设一条区块链上有 16384 个验证者和 64 条分片链每条分片链都由 128 名验证者组成的委员会负责验证委员会成员选举是不可预见的:每个 slot 结束后所有委员会都会解散并随机从全体验证者中重新选出 64 个委员会因此每个验证者都不知道其他验证者所在的委员会假设一个区块需要获得委员会中 2/3 成员(即不少于 86 名成员)的认可才能被添加到分片链上这就意味着在全体验证者中包含 1/3 恶意验证者的情况下通过随机的方式选出恶意委员会的概率是:

请注意我们可以通过调整委员会的规模来按比例放大或缩小该参数从而达到理想的安全级别

由于选出恶意委员会的概率极低以及对不作为验证者的反向激励币安合约币安合约该分片系统理应继承其非分片协调系统(it’s non-sharded coordinator)的安全性和活性保障但是就像现实世界中的大多数系统那样实现这一点并非易事由于委员会成员是提前选好的btcmousetrackpad恶意参与者就有机会贿赂理性参与者如果可以轻而易举地创建从验证者公钥到 IP 地址的映射就会出现更多行贿现象此外在免许可型系统中可验证投票从本质上来说无法防止行贿综上分片的实际安全性相比理论上来说低至少一个数量级btc trackpad

虽然分片的安全性低于整体协议但是我们依然能够确保其安全性即采用欺诈证明来撤销无效状态转换但是如果不为我们这个设想中的简单分片链引入额外的设计那么恶意验证者完全可以扣住数据、不放出来使得他人没有足够的数据来生成欺诈证明接下来我们将讲解如何实现这种攻击

假设有一条简单分片的区块链 B上面有 X 和 Y 两条分片链区块链 B 在两个委员会中运行传统的拜占庭容错共识算法来帮助运行分片 X 和 Ybtc938玩王者分别是 C~x~ 和 C~y~B 上的每个区块都包含两个门限签名即C~x~ 和 C~y~ 两个委员会中 2/3 的成员对各自分片链的当前区块的状态根的见证

假设每条分片链的每秒数据和交易处理量与非分片系统相同那么引入分片链应该能提供大约两倍的吞吐量在乐观情况下事实确实如此

现在让我们对 B 发起数据不可用攻击假设一个恶意实体能够迫使 C~x~ 中 2/3 + 1 的成员签署无效的状态根并且不公开对应区块的输入数据之后这个无效的状态根会包含在下一个即将被添加到 B 上的区块内这时候并没有合理的机制可以让 B 回到有效状态我们可以举一些机制例子看看:

C~x~ 中剩余的 1/3 - 1 位成员可以在 B 上发出数据不可用警报遗憾的是这不是一个可明确归属方的错误(译者注:即无法确定到底是攻击方扣住了区块还是某些人网络不好没收到甚至收到了也咬他人一口)因此 B 无法确定是哪一方在作恶(如果莽然惩罚某些成员)怀有恶意的少数派有可能会借此发起零成本的 DDOS 攻击

网络中的其它节点可以发出数据不可用警报但他们很可能做不到因为在错误发生期间只有 C~x~ 的成员在密切关注这个时间btc938开机

由整个社区来发现错误并主动介入将 B 回滚到最新的有效状态这种处理模式显然是糟糕的

执行类似 Plasma 的批量退出(mass exit)机制从 X 批量退出到 B 上会产生相关的负面影响

就像 Plasma 一样这里真正的问题是数据可用性

希望上述分析能让你明白一个道理:我们首先应该将关注点放在扩展基础层的数据可用性上否则系统仍将遭受数据不可用攻击

从传统上来说提高区块链上的数据吞吐量需要就系统所支持的最低硬件/带宽要求达成社会共识 —— 得出一个可以接受的区块大小Mustafa Al-Bassam 和 Vitalik Buterin 最近的研究提供了一种概率性机制来确保数据可用性M Yu 等人进一步扩展了该研究提出了Coded Merkle Tree 累加器这一概念给出了最优阶数的指标(order-optimal metrics)

上述机制主要放宽了网络中参与者下载所有数据的要求Vitalik 的提议是让网络中的参与者随机选取区块中的小部分数据进行验证以确保区块提议者公开了数据风险在于区块提议者只需要隐藏少量数据即可发动数据不可用性攻击因此参与者必须多次对区块进行抽样验证才能对区块的可用性建立起足够的信心为了减少抽样次数Vitalik 提议采用二维 Reed-Solomon 编码来对区块数据进行编码

在这个结构中区块被分割成 N 个份额然后进行编码生成 M 个份额只要拥有 M 中任意 N 个份额即可重新构建区块假设 2N=M区块提议者需要影响 1/2 的区块数据才能成功发动数据不可用攻击Coded Merkle Tree 采用类似的结构只不过使用 O(b) 的解码成本和 O(1) 的哈希承诺来代替二维 Reed-Solomon 编码所提供的 O(b^15^) 解码成本和 O($\sqrt b$)哈希承诺(其中 b 指的是区块的字节大小)

关于该技术的详解可以参见这篇文章

ETH 20 的分片设计模糊了它们是信标链的 ORU 这样一个事实如果将重点从分布式处理转向有序的数据可用性层就变得一目了然了2019潜力虚拟币

如上图所示验证者集起到以下 4 种作用:

验证并执行信标链

对分片所提供的数据进行抽样验证

组成分片委员会

提交关于无效状态转换的欺诈证明

我们已经作了两个假设:i) 数据具有可用性ii)区块链会从最近一个具有数据可用性的区块开始进行分叉则要么人们可以构建欺诈证明要么系统将缺乏数据可用性归咎于签署该区块的分片委员会并回滚状态转换

这时考虑到我们之前对 ORU 的定义我们应该能够证明分片实际上就是 rollup:

1 所有交易数据都提交到链上

分片区块数据被集中到数据可用性层上在一定概率上会由全网进行验证

2 状态根被提交到链上

分片委员会为包含在信标链区块中的分片状态根提供证明

3 状态根被假定为有效的

信标链在没有进行额外验证的情况下假定分片委员会的证明是有效的

4 一些节点负责验证 ORU 的状态转换

分片委员会验证分片的状态转换

5 有一个可以撤销无效状态转换的链上欺诈证明执行器

信标链支持分片状态转换欺诈证明

既然我们已经解释了 ETH 20 和 ORU 系统之间不可思议的相似性我们能够如何利用这一信息来更好地理解整个系统的设计?让我们通过 ORU 系统的角度来探索 ETH 20 的一些设计决定:

在当前设计中系统的数据吞吐量与分片机制紧密耦合

这里可以采用的一种方法是将数据可用性检查视为协议中的头等公民这样可以对数据层进行独立优化执行层也可以更细的粒度控制(参与协议的)硬件要求

例如

ETH

20 可以提供 64 个数据中心和一个在信标链上的 ORU 合约以此代替分片链ORU 合约可以




上一篇:谈谈:有哪些软件不需要下载游戏可以免费试玩一下的
下一篇:如何选择合适的磨粉设备2020/10/18 23:52:36
回复

使用道具 举报

关闭

站长推荐上一条 /1 下一条

会员充值
正规网站优化群

外链吧
  • 外链吧
  • 豫ICP备17032527号-5
  • 手机版
  • 小黑屋
  • 外链吧
  • QQ Online
快速回复 返回顶部 返回列表