一、Layer发展历史
为什么要弄zkrollup,因为需要解决不能三角,即去中心化、可扩展性、安全性;这个问题;要解决这个问题就要清楚,区块链的是由什么组成的
区块链是由1、共识层;2、数据可用性层;3、执行层;rollup主要在执行层;是将交易捆绑、压缩和发送到共识层进行验证的解决方案,通过同事验证多个交易,它们极大的提高了效率同时允许公链在不牺牲安全的情况下增加TPS交易量。本质上用户并没有将交易发送到layer1层,而是将交易发送到rollup服务器,从而验证交易是否有效。如果交易成功后,rollup将数据发布到以太坊等主链,将交易发布到主链时,rollup则继承了layer1的安全属性。
而从整体看来以太坊的扩容史是从“状态通道”(state channels)到 Plasma 到 Rollup 的演变。
state channel 和plasma的问题;
二、以太坊Rollup解决方案有分为两种分别是Optimistic rollup和zk-rollup,
目前市场中L2的主要扩容方案是:是 Optimistic Rollup (比如 Optimism、 Arbitrum 和 Boba Network)和zkrollup,未来随着ZKR工程师越来越多技术成熟后,ZK-rollup会将崛起,目前ZK –rollup 已经通过zksync和starkware等平台走向了市场。
1、 Optimistic (由欺诈证明支持) rollup 二层扩容方案是由 Optimism 和 Arbitrum 提出并首先推向市场,但相对于其它新型的 L1 层区块链(Solana 或 Avalanche)并没有得到广泛采用和关注。
优点:optimistic能够明显增加EVM扩展性,增加稳固兼容性,能够将在layer1上做的事情,放到optimistic rollup进行操作。
缺点:optimistic需要将所有证人数据,如签名、预言机数据等一起发布到主链上;
Optimisic rollup的基本假设是所有处理的事务数据都是有效的,当发现交易无效时,节点通过提供欺诈证据对发现不正确的交易整批交易提出质疑,质疑的整批数据将由支持optimistic rollup底层系统在主链上重新运行计算,总结,optimistic rollup允许在被L1拒绝为无效的情况下在L2上交易完成,如果交易无效,则L2将被重置为欺诈交易之前存在的状态。L2数据提交到L1时optimistic 规定了七天搁置期,以验证者提供足够的时间来发现和标记欺诈交易。
2、 zero knowledge zk rollup(zk代表零知识),以有效性证明进行支持
ZKP满足条件:
A. 完整性:如果陈述为真,验证者可以验证被验证者持有的所有必要输入信息。
B. 有效性:该判断不能被驳斥,且当被证明者没有提供必要的输入时,验证不会成立。
C. 零知识:验证者除判断是真或假之外,不会看到其他信息。个人数据将始终保持匿名和加密状态。
什么是零知识证明:
A. 定义:零知识证明(ZKP)是一组工具,可以在不揭示基本假设的情况下验证信息。“零知识”一词源于没有提供任何(“零”)关于特定事实的信息的理念:这是由一组加密技术实现的,该技术使“证明者”能够在不披露任何数据的情况下,以数据方式向“验证者”表明一个计算断言是有效的。
B. 零知识证明分为两种:
a) 交互式的
交互式要求证明者进行一些列的活动操作,以说服验证者他们拥有某些知识。交互式ZKP中所有需要的大部分活动都包含了数学概率思想。
举例说明交互式的零知识证明
假设你需要通过 ZKP (零知识证明) 证明你的年龄大于或等于18岁,但不揭露具体年龄。我们需要第三方机构为你的年龄担保,具体如下:
第三方说:”已接收您出生证明的复印件,我们已经得知您的年龄为 21 岁。现在为您提供一串数字密码,请将它保存到保密与安全的地方。稍后您会用到它。
你持有的那串数字密码将会被哈希算法处理 22 次,然后得出一个最终年龄哈希代码给你 (没错,处理次数必须为年龄 +1,才能使得整个操作行得通)。也就是说,你拿到那串数字密码之后,会有 22 次哈希处理过程才能获得最终的年龄哈希代码。“
我们将您的姓名、时间戳与最终年龄哈希代码一起打包。这个证明包将提供给他人验证。
好了,那么当你想要向其他人证明你的年龄超过 18 岁时,你只需要证明从你拿到数字密码到最终年龄哈希代码之间的哈希算法处理次数大于 18 就可以了。
那么怎么证明呢?你只需要向他人展示最后的 18 次哈希算法处理记录。你需要自己进行前 4 次哈希算法处理 (对数字密码进行哈希算法处理 4 次),然后将结果提供给其他人:第四次哈希值。
他们会对第四次哈希值再处理18次 (现在对你的数字密码总共进行了 22 次哈希算法处理),最终他们能够得出最终年龄哈希代码并且使用证明包对它进行验证。
实际上,验证者是在说:”发送我们一个值,我们会对其进行 18 次哈希算法处理,然后这个哈希值将与你提供的年龄哈希代码进行对比。” 如果你低于18岁,最终年龄哈希代码的哈希算法处理次数就没有18次,我们对你提供的那个初始哈希值进行 18 次哈希算法处理后,就会与最终年龄哈希代码不一样。
i. 局限性:
a) 每次验证的都需要进行整个冗长的过程。如上述例子知识简单的哈希算法处理,想象下,如果需要对实际加密算法进行计算工程量会如何。
b) 证明方与验证方都需要同时在场,不管是在线还是面对面。
b) 非交互式的
非交互式ZKP不需要证明者和验证者之间进行交互,ZKP需要额外的计算机或者软件。
特点:简洁意味着证明比底层数据更短。知识证明表示,如果没有适当的“证人”或者证据来证明他们所提供的信息是真实的,一个证明这就不能构建被验证证明。一旦完成并发布到主链,其包含的所有交易都被宣布为最终交易。
Zero Knowledge-Rollups (ZKR) 依赖零知识证明这项密码学技术。ZKR 将交易执行和共识、数据可用性分离开来,L2 上的多个交易打包之后会变成一个零知识证明(zkSNARK 或 zkSTARK)并可被 L1 快速验证,所以零知识证明验证的成本会分摊到每个交易上,这样能省 Gas Fee 和提高 TPS。
因为 Rollup 上的每笔交易的 input 数据都储存在 L1 ,其它节点可以验证这些交易的有效性,决定是否接受或拒绝这笔交易。因此,如果 zk Rollup 上的一个用户想要进行一次双花,L1 上的节点就会拒绝。
ZKR 的另外一个重要的特性是验证比运算成本低很多,这样的简洁性为扩容提供了条件。但零知识证明技术上复杂度非常高,需要大量的运算,交易的时延也会变长。相较于 Optimistic Rollup,ZKR 技术上更加复杂,每笔交易手续费更低,但是运算成本更高昂。
零知识证明目前形式如:ZK-SNARKS、ZK-STARKS;
zk-STARK (zero-knowledge scalable transparent argument of knowledge) 代表零知识的可扩展、透明知识证明,
zk-SNARK (zero-knowledge succinct non-interactive argument of knowledge) 代表零知识的简洁、非交互式知识证明。
以上两种零知识技术都是非交互式的,这意味着代码可被部署且自动作用。
StarkWare 和 zkSync 是 ZKR 领域的两个主要选手,他们在通用型 ZKR 平台上的进展均比市场期望的更快。zkSync 采用的是零知识证明中的 SNARK 技术,StarkWare 采用的是更具可拓展性的 STARK 技术。
i. 采用 STARK 技术的目前有 :
@StarkWareLtd
@0xPolygonMiden
ii. 采用 SNARK 技术的目前有 :
@zksync
@loopringorg
@0xPolygonHermez
@aztecnetwork
@0xPolygonZero