-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
1a04ee7
commit d31f0f5
Showing
1 changed file
with
38 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
# Censorship Attack(审查攻击) | ||
|
||
在交互式 rollup 协议会用到 —— 由某一方提出断言(assertion),其他方如果认为断言有问题,可以在 “挑战窗口期” 内提出挑战; | ||
如果挑战期内没有人提出任何挑战,则这个断言就会被视为有效的。 这种设计模式在实践中会遇到的问题是审查攻击: | ||
1. 攻击者阻挠其他方在时间窗口内提出挑战。 | ||
2. 击者可能会提出虚假的断言,同时阻止其他人在窗口期发起挑战,最终导致虚假的断言反倒成为合法的。 | ||
|
||
## 假设 | ||
|
||
攻击者必须先投入一笔资金,一旦攻击失败,它会失去这笔钱;这样一来,设计目标不需要让系统被成功攻击概率为零,而只要确保攻击成 | ||
功概率足够小,就不会有人愿意去尝试攻击整个系统。 | ||
|
||
## 类型 | ||
|
||
1. 分叉:矿工串通放弃包含正常挑战的区块,并通过分叉使另一条没有包含任何挑战的区块链被接受。 | ||
2. 闪躲:矿工密谋在出块时不打包正常的挑战。 | ||
3. 干扰:攻击者通过传统的拒绝服务攻击,使得监视者无法提出挑战。 | ||
4. 速攻:攻击者在很短的时间内提出大量的链上断言,让其他人来不及在时间窗口内对所有断言进行检查和挑战。 | ||
|
||
## 分析 | ||
|
||
**分叉**需要掌握51%提上的算力,这种安全性由 L1 来保证。L2 在 L1 的安全性上加上了时间窗口,他的理论基础是掌握 51% 上算 | ||
力并维持一段时间是需要很高的成本 —— 注意:L1 的安全性来自于修改历史的成本,成本越高安全性越高 —— 所以 L2 在 L1 的安全性 | ||
上设置了一个较长的时间来太高成本从而增加安全性。 | ||
|
||
**闪躲**还是与垄断的算力与时间窗口有关,垄断的算力越多时间窗口越小,攻击成功的概率越大,时间窗口内只要没有垄断全部的算力, | ||
理论上攻击就不会成功。 | ||
|
||
**干扰**监视者不止一个,也不会轻易暴露其网络地址,即时被攻击也可以做backup,这种攻击的范围很大也是比较难的。 | ||
|
||
**速攻**指的是,攻击者发布大量的断言,使得其他人来不及在挑战窗口期内检查所有断言。任何的 rollup 协议都需要有防御速攻的机 | ||
制,其中一种方法是对提出断言的频率进行限制,保证协议在设定的挑战窗口期内的任何时间点,全网都有足够的能力去检查待处理的断言 | ||
或挑战。这类机制会在一条 rollup 区块链上,针对智能合约的处理能力实施一种 “速限手段” ——即使存在某个能快速提出大量断言的 | ||
人,他最终也不得不慢下来,确保其他正常参与者能跟上。 | ||
|
||
所以要衡量一个 rollup 系统的可扩展性,其中一个很重要的指标就是它在保证安全的前提下的最大速度限制; | ||
速限指的是一个系统能安全处理事务的速率,而不是某个参与者能够产出断言的极限速率。 | ||
|