| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 深入分析区块链解决方案和 Arbitrum 的安全机制 -> 正文阅读 |
|
[区块链]深入分析区块链解决方案和 Arbitrum 的安全机制 |
我们首先来回顾一下 Optimistic Rollup 解决方案的主要特点: 在一个 Rollup 解决方案中,交易 (作为 calldata) 编写在 L1 上,但是其实际计算和合约的存储在 L2 上完成,以实现扩容。 Optimistic Rollup 之所以称为”乐观的“ rollup 解决方案,因为当一个断言发布时,其不包含保证其有效性的随附证明,即默认该断言有效。相反,届时会有一个时间窗口,而任何人都可以在这个时间内挑战该断言。如果挑战成功,那么此断言内的所有交易都将被撤回,并且提出断言的人会失去其保证金。如果挑战期到期且没人挑战成功,那么断言就会被最终确认。 数据可用性 AnyTrust 紧急退出机制 首先,数据可用性确保用户存储在 L2 上的资产和数据可以在任意时候从 L1 上恢复,并且永远不会丢失。 其次,任意用户都能向 L1 上的收件箱合约发送一个交易请求来强制退出。 最后,AnyTrust 机制确保用户可以强制 L2 正确地处理退出交易。 在以上三点中,用户不需要信任任意第三方,这充分地展示了 Arbitrum 植根于以太坊的安全性中,并且是去信任的。 为什么挑战期是七天 显然,挑战期越长,整个系统就越安全,但同时用户体验也会更差 (因为用户需要等到挑战期结束之后才能退出)。那么我们是如何确定最佳的挑战时期呢? Arbitrum 团队提出这种模型来计算最佳的挑战时期: 假设一个挑战时期等于 C 区块的长度,以及攻击者在 L2 上可以获得的最大值为 V。 注解:exp 为指数函数”e“,A 为某常数 A,AC 前的 ”-“ 符号表示 C 与预期收益成反比。 断言者需要保证其资产远超过攻击的资产价值以应对攻击。我们假设超过 10 倍,则断言者的成本为 10V exp(-AC)I。I 指的是资本利率。
假设一个区块时间内的连续审查成功率高达 99.99%,即 A = -ln(0.99) = 0.01。 进一步假设每天提款为总值的 1%,并且每个区块的提款百分比约为 W=0.000002,基于出块时间为 15 秒的前提。 将这些代入公式中,我们得到的最佳挑战期限为 C = 62146 区块,即 10.79 天。这与 Arbitrum 团队最终选择的 7 天挑战期限非常接近。 如何防御审查攻击 分叉攻击 (forking attacks):矿工合谋 (或受贿) 丢弃包含正常挑战的区块,以便接受不包含挑战的替代链。 首先,由于挑战者的存在,一旦发生分叉攻击,难免会被某个挑战者发现。而当大家发现区块链中的挖矿算力垄断者 (这是分叉攻击的先决条件) 为了盈利而肆无忌惮地违反规则时,区块链本身就被摧毁了。此时,Arbitrum 是否采用挑战期设计模型还存在争议。 回避攻击 (shunning attacks): 矿工们合谋 (或受贿) 忽略掉他们生产出的区块中的普通挑战。 我们假设垄断者控制了 90% 的挖矿算力,并且期限为 50 个区块。那么垄断者需要将 50 个连续的区块打包起来才能完成攻击。这个概率是 0.9 的 50 次方,也就是 0.5%。而实际挑战期限远不止 50 个区块,所以攻击成功的概率极小。在 Arbitrum 的设计中,攻击者在攻击失败时会支付巨额罚款,因此垄断者发起回避攻击是非常不划算的。 干扰攻击 (jamming attacks) :攻击者发起”老式的拒绝服务攻击 (DoS)“ 来阻止任何一方发布任何交易 (不能发布包含挑战的交易)。 因为只要有一个正直的挑战者,攻击就会失败,所以攻击者必须阻止所有有可能的挑战者。如果有很多这样的挑战者,攻击将很难完成。更糟糕的是,任意利益相关的一方都可能雇佣一个沉默的监察者以作为备用计划。他们只在主要参与方太晚发布挑战或者在发布挑战时遇到了困难时才会介入。攻击者并不知道网络中是否有沉默的监察者,或者尽管知道他们存在,也不知道他们是谁,所有在这些监察者有实际行动之前,攻击者都无法向他们发起 DoS 攻击。 快速攻击 (speed demon attacks):攻击者生成链上断言的速度十分快,以至于其他方不能在时间截止之前检查并且挑战所有断言。 Arbtirum 采取的应对方法是:限制创建断言的速率,以确保在任何时候检查未决断言和挑战其中一个断言所需的总工作量能够在协议的期限之内完成。具体来说,对 Rollup 链中的智能合约运作进程施加速度限制,因此即使有人能够快速生成大量断言,它最终也必须慢下来。 总之,我们不需要太担心分叉攻击。如果出现恶意挖矿算力垄断的情况,那么可以说这个区块链已经基本上变得没有吸引力了。Arbitrum 可以通过适当的设计或者实践来防御其他三种审查攻击。 序列器模式 (Sequencer Mode) 的优势和风险 Sequencer 被赋予有限的权力来控制收件箱中每笔交易的排序,以保证用户的交易结果能够立即被确定,无需在以太坊上等待五分钟至区块被确认,甚至不需要像在以太坊一样等待 15 秒的出块时间。 同时,一个表现良好的 sequencer 可以有效地防御抢跑攻击。 因此,一个由 Offchain Labs 运营的中心化的、表现良好的 Sequencer 节点,对于项目的早期开发是非常有利的,并为其减少了很多麻烦。但是安全隐患也很明显 (虽然很难想象 Offchain Labs 会作恶,但也不排除这样的可能性)。Offchain Labs 承诺在技术成熟后立即切换到去中心化的、多个 Sequencer 节点的解决方案。 此外,收件箱也将一分为二,一个接受由 Sequencer 提交的交易,另一个则接受由常规聚合器或者用户提交的交易,这也为不信任中心化的 Sequencer 的用户提供了另一种选择。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/25 19:29:16- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |