Skip to content

Commit

Permalink
feat: add rollup censorship attack
Browse files Browse the repository at this point in the history
  • Loading branch information
joeylichang committed Dec 2, 2024
1 parent 1a04ee7 commit d31f0f5
Showing 1 changed file with 38 additions and 0 deletions.
38 changes: 38 additions & 0 deletions src/blockchain/src/rollup_censorship_attack.md
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 系统的可扩展性,其中一个很重要的指标就是它在保证安全的前提下的最大速度限制;
速限指的是一个系统能安全处理事务的速率,而不是某个参与者能够产出断言的极限速率。

0 comments on commit d31f0f5

Please sign in to comment.