Skip to content

Commit 1c8862b

Browse files
committed
add rollup des
1 parent 6769e81 commit 1c8862b

File tree

9 files changed

+148
-177
lines changed

9 files changed

+148
-177
lines changed

other/DApps.md Starknet/Cario.md

File renamed without changes.
File renamed without changes.

basic/扩容.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939

4040

41-
**Rollup**:Rollup 将大量交易在链下处理计算,并把交易数据压缩打包成单个数据块,提交到主链中,由于交易数据包含在Layer1中,因此较高程度继承了原生的以太坊安全性。通过大家所说的 Layer2 ,更多的是指 Rollup 方案,Rollup 又分为乐观Rollup(Op Rollup)、零知识Rollup(ZK Rollup)。
41+
**Rollup**:Rollup 将大量交易在链下处理计算,并把交易数据压缩打包成单个数据块,提交到主链中,由于交易数据包含在Layer1中,因此较高程度继承了原生的以太坊安全性。通过大家所说的 [Layer2](https://learnblockchain.cn/tags/Layer2) ,更多的是指 Rollup 方案,Rollup 又分为乐观Rollup(Op Rollup)、零知识Rollup(ZK Rollup)。
4242

4343
* **Op Rollup**:假设交易在默认情况下有效,并且在遇到挑战的情况下通过欺诈证明运行计算。
4444
* **ZK Rollup**:在链下运行计算并向链上提交有效性证明。

eth/OP-Rollup.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
## 乐观 Rollup
2+
3+
你应该对[以太坊扩容方案](https://learnblockchain.cn/tags/%E6%89%A9%E5%AE%B9%E6%96%B9%E6%A1%88)[Layer 2](https://learnblockchain.cn/tags/Layer2) 有所了解了。
4+
5+
6+
7+
**乐观Rollup(OP Rollup) ** 是一种 Layer2 扩展解决方案,它将计算和状态从链下转移到链下网络,并乐观的假设链下交易是有效的,仅在有争议时才进行验证。这种机制显著提高了以太坊的交易吞吐量和降低交易成本,同时保持了去中心化和高安全性。
8+
9+
10+
11+
## Op Rollup 运行机制
12+
13+
14+
15+
**1. 交易批量处理**
16+
17+
- **收集交易**:乐观 Rollup 收集用户提交的多笔交易,并将其批量打包。这些交易在链下进行处理,包括账户余额更新和智能合约调用等操作。
18+
- **链下处理**:在链下,所有交易的状态变化被计算和记录,这些变化包括账户余额的更新、智能合约状态的修改等。
19+
20+
**2. 生成并提交批次**
21+
22+
- **生成交易批次**:链下操作完成后,Rollup 提交者(Sequencer)将一批交易的结果打包成一个批次,并生成批次的状态根(state root)。
23+
- **提交到主链**:批次的状态根和交易数据或其摘要被提交到以太坊主链(Calldata 或者 blob )。提交的数据通常包含交易的压缩形式,以减少链上的存储需求。
24+
25+
**3. 争议期等待挑战**
26+
27+
- **乐观假设**:系统假设所有提交的交易批次都是有效的,因此在没有争议的情况下,交易批次会被默认接受。这种机制显著提高了系统的效率和吞吐量。
28+
- **欺诈证明**:如果有人发现批次中有无效交易,可以在争议期内提交欺诈证明(Fraud Proof),欺诈证明是一个具体的计算步骤,展示批次中的某个交易是无效的。它需要提供相关的计算数据和步骤,以证明提交者提交了无效交易。若欺诈验证成功后,系统会回滚无效交易,惩罚提交无效交易的Rollup 提交者,并更新状态根以反映正确的状态。
29+
30+
31+
32+
33+
34+
对于开发者而言,乐观Rollup的优势在于它们与[以太坊虚拟机 (EVM)](https://ethereum.org/zh/developers/docs/evm/) 的兼容性(或者更好的,等效性)。 与以太坊虚拟机兼容的Rollup符合[以太坊黄皮书](https://ethereum.github.io/yellowpaper/paper.pdf)中的规范,并在字节码级别支持以太坊虚拟机。 因此可以方便将现有的[去中心化应用](https://learnblockchain.cn/tags/DApp)移植到乐观 Rollup 或使用以太坊开发工具创建新的去中心化应用程序。
35+
36+
37+

eth/Rollups.md

+18-176
Large diffs are not rendered by default.

eth/ZK-Rollup.md

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
## ZK Rollup
2+
3+
你应该对[以太坊扩容方案](https://learnblockchain.cn/tags/%E6%89%A9%E5%AE%B9%E6%96%B9%E6%A1%88)[Layer 2](https://learnblockchain.cn/tags/Layer2) 有所了解了。
4+
5+
**零知识Rollup(ZK Rollup) ** 是一种 Layer2 扩展解决方案,它将计算和状态从链下转移到链下网络,并使用零知识证明在链上证明链下交易是有效的。
6+
7+
ZK-rollups 虽然在主网之外执行交易,但定期将链下交易批量提交到链上 rollup 合约。该交易记录是不可变的,就像以太坊区块链一样,链下的交易也形成了 ZK-rollup 链。
8+
9+
10+
11+
ZK-rollup 主要由 链上合约和链下虚拟机(VM)组成,
12+
13+
**链上合约**:ZK-rollup 协议由运行在以太坊上的智能合约控制。包括存储rollup区块、跟踪存款和监控状态更新的**主合约** 和 验证区块生产者提交的零知识证明的**验证者合约**。因此,以太坊充当 ZK-rollup 的基础层或“第一层”。
14+
15+
16+
17+
**链下虚拟机 (VM)**:虽然 ZK-rollup 协议存在于以太坊上,但交易执行和状态存储发生在独立于 EVM 的单独虚拟机上。该链下虚拟机是 ZK-rollup 上交易的执行环境,并充当 ZK-rollup 协议的第二层或“第 2 层”。以太坊主网上验证的有效性证明保证了链下虚拟机中状态转换的正确性。
18+
19+
20+
21+
## Zk Rollup 运行机制
22+
23+
1. **交易批量处理**
24+
25+
**收集交易**:ZK-Rollup 排序器收集用户提交的多笔交易,将其批量打包在一起。这个批次中的交易在链下进行处理,包含了转账、智能合约调用等操作。
26+
27+
**链下处理**:在链下,所有交易的状态变化被计算和记录。这些变化包括账户余额的更新、智能合约状态的修改等。
28+
29+
30+
31+
2. **生成零知识证明**
32+
33+
ZK-Rollup 通常 [ZK-SNARK](https://learnblockchain.cn/tags/zk-SNARK)[ZK-STARK](https://learnblockchain.cn/tags/zk-STARK)技术生成一个证明,该证明证明了这批交易的有效性和正确性。
34+
35+
36+
37+
3. **提交证明到主链**
38+
39+
- **提交批次和证明**:ZK-Rollup将批次交易的零知识证明提交到以太坊主链上。每个证明包含了这个批次交易的所有状态变化的证明。
40+
- **更新状态根**:ZK-Rollup还提交一个新的状态根(state root),该状态根是所有交易处理后的全局状态哈希。
41+
42+
43+
44+
4. **链上验证**
45+
46+
- **验证零知识证明**:以太坊主链上的智能合约会验证提交的零知识证明。如果证明有效,表示所有链下交易都已正确执行且未被篡改。
47+
- **状态更新**:如果证明有效,主链会更新状态根,这意味着主链承认了这些链下交易的结果。
48+
49+
50+
51+
ZK-Rollups 通过结合链下计算和链上验证,为以太坊网络提供了一种高效、安全的扩容解决方案,显著提升了交易处理能力和用户体验。

eth/layer2s/Aztec.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
2+
3+
Aztec是L2中的一个项目,其实现了隐私交易。其体系为:基于底层的PLONK证明系统,实现账目间的匿名交易,并通过网关合约的嫁接来实现和DeFi项目的隐私交互。
4+
5+
在Aztec的数据结构中所有票据的状态存储在两个Merkle Trees中,其中一个是**note tree**(票据树),存储着所有生成过的票据,另一个则是**nullifier tree**(废弃树),存储所有被销毁过的票据。所谓“拥有”一张票据,即在 note tree 中存在对应票据、而在nullifier tree中不存在对应票据。
6+
7+
当用户要进行一笔交易时,需销毁并生成相应的票据,再将票据所有权转移。而对于这笔私密交易,用户需要在本地生成一个“隐私证明”。随后,28笔私密交易将会聚合为内部Rollup证明,之后又有32个这样的内部Rollup证明聚合为外部Rollup证明。外部Rollup证明将会最终被提交到L1上,供节点验证。也就是说,一个最终提交的Rollup证明中可以包含28*32=896笔交易。
8+
9+
![aztec](../../graph/aztec.png)
10+
11+
Aztec的优势在于:其实现了安全级别较高、且能够和DeFi项目交互的隐私功能。
12+
13+
然而特殊的隐私功能也很大程度上限制了项目:一方面Aztec依靠集成网关合约来实现对 DeFi项目的操作,在降低部署难度的同时也降低了灵活性,短期来看更适合操作单一、资本密集的项目;另一方面,为了实现隐私,要求给每一笔交易都生成隐私证明,虽然项目通过双层Rollup方式分摊了存储空间,但 Aztec 的手续费在所有 L2 中仍然是最高的,对用户而言门槛也较高,更适合大户。

eth/layer2s/Readme.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 什么是Layer2(二层扩容)
2+
3+
4+
5+
6+
7+
Layer2 指在区块链技术和网络协议中用于扩展基础区块链(Layer 1)的解决方案的统称。其目的是提高交易速度、降低交易费用,并增强网络的可扩展性和效率。
8+
9+
10+
11+
以太坊和比特币都是 Layer1 区块链,因为它们是各种 Layer2 网络构建的底层基础。典型的Layer2 项目的示例包括以太坊上的“[Rollup](https://learnblockchain.cn/tags/Rollup)”和比特币上的[闪电网络](https://learnblockchain.cn/tags/%E9%97%AA%E7%94%B5%E7%BD%91%E7%BB%9C)。这些Layer2项目上的所有用户交易活动最终都可以回归到 Layer1。 不过 Layer2 并没有一个严格的定义, 但通常要求在安全性上继承 Layer1 ,是[链下扩容方案](https://learnblockchain.cn/tags/%E6%89%A9%E5%AE%B9)中,安全性较高的一类。
12+
13+
14+
15+
以太坊在 Layer2 上探索相对成熟,发展出了多种不同类型Layer2,每种类型都有自己的权衡和安全模型。以 Rollup 为例,工作原理录下图所示:
16+
17+
18+
19+
![img](https://img.learnblockchain.cn/pics/20240617125056.png&w=1920&q=75!/scale/60)
20+
21+
22+
23+
24+
25+
Rollups 将数百个交易捆绑到 Layer1 的单个交易中。因此 L1 交易费用将分担 Rollup 中的每个交易中,从而使 Layer2 每个交易的费用更便宜。Rollup中的交易数据提交到Layer 1,但执行是由 Rollup 中单独完成的。 更多参考 [Rollup 百科](https://learnblockchain.cn/tags/Rollup)
26+
27+
28+
File renamed without changes.

0 commit comments

Comments
 (0)