Star Li
zkSync采用PlonK零知识证明系统。在电路设计上,非常巧妙的将交易分割成一个个小的通用处理单元(Operation)。一个Operation对应的证明电路逻辑支持所有可能交易的Operation逻辑。多个有关联的Operation电路组成交易电路。多个交易的电路再组合成区块电路。从而,在固定大小的区块中也能包含不同组合的交易。
在Layer2, Optimistic Rollup通过OVM执行智能合约,并使用“检察”的方式确定Layer2世界状态在Layer1的正确性。Optimistic Rollup的难点也在OVM,需要在EVM的基础上模拟OVM的执行,并判断状态的正确性。目前,Optimistic Rollup的挑战期为7天。也就是说,只有7天前的状态是“确定”的,不会回滚。
zkSync通过zk Rollup协议,实现了L2的转账。zkSync项目非常完整,是学习L2非常好的参考项目。zkSync采用Plonk零知识证明算法向L1证明状态的正确性。Plonk算法是Universal的零知识证明算法,只需要一次可信设置。zkSync电路设计采用Chunk设计,支持不同的区块大小。
PLONK算法的电路采用新的描述模型。整个电路由门电路约束和Copy约束(连线约束)组成。门电路约束和Copy约束都转换为多项式表达。Copy约束通过累加算法实现。
Filecoin官方宣布了SDR的优化版本。在AMD3970x上,P1的性能2小时10分钟。优化思路比较清晰,通过预读取base/exp parent的数据,让数据的准备和sha256的计算并行。
Uniswap V2提供了简洁的x-y-k自动做市商实现。代码主要由两部分组成:Core实现某个交易的Pair的管理逻辑,Periphery实现路由,即一个或者多个交易对的兑换逻辑。理解增加/抽取流动性以及swap操作,需要结合两部分一起看。核心是在Pair中管理了reserve和total supply。所有提供的流动性都以流动性Token来衡量,所有Token的总和就是total supply。
Filecoin的Gas模型,引入了BaseFee,用来调节交易的拥堵情况。BaseFee,在区块拥堵或者区块交易不够的情况下,都会按照12.5%进行相应的调节。每笔交易的费用计算公式:(Gas Premium + Base Fee) * Gas Limit。其中BaseFee的部分会被燃烧掉,Gas Premium作为矿工的手续费。特别注意的是,GasLimit不要随意设置,多余的Gas Limit会被燃烧。
Filecoin的存储单元称为扇区(Sector)。对传统硬盘结构理解的小伙伴,对这个术语应该比较亲切,传统硬盘的最小存储单元就叫Sector。为了证明Sector的存储,Filecoin进行了一系列的处理,传说中的P1/P2/C1/C2。在处理过程中,一个Sector的计算会生成若干文件,最终会生成replica。相关文件是如何组织的?Cache都是由哪些文件组成,分别是多大?本文就从存储的角度看看这些过程和逻辑。
利用Groth16计算证明之前,需要计算出H。目前,普遍采用的是FFT算法。