基础概念:桥、欺诈性证明和零知识证明
Layer2 基础概念介绍
imToken 作为早期的以太坊钱包之一,一直在积极参与 Layer2 的生态建设。我们准备了这份 Layer2 基础概念介绍内容,以帮助大家更好地了解 Layer2 基础概念。
什么是「桥」
从中本聪发布比特币白皮书至今,不同区块链生态系统数量和规模在急剧增加。由于各个区块链 / 网络各有特性(有不同的规则和共识机制)且彼此独立,所以用户对于跨链转移资产的需求也在增加。因此,「桥」技术诞生了。其主要作用如下:
-
实现跨链转移资产和信息
-
让用户能够使用各种区块链的优势进入新的区块链生态
-
使不同区块链生态系统的开发人员可以协作,为用户构建新平台
-
……
根据连接对象的不同,「桥」可分为两类:
-
Layer1 <> Layer1 桥:将两个不同的 Layer1 区块链进行连接的桥;
-
Layer1 / Layer2 <> Layer2 桥:将 Layer1 区块链与 Layer2 网络或将两个不同的 Layer2 网络连接的桥。
下文将重点介绍第二类桥。
以太坊生态系统中存在 Arbitrum、Optimism、zkSync 等多个 Layer2 项目,「桥」允许用户在 Layer1(以太坊主网)与 Layer2 网络之间转移资产,如从以太坊主网发送 ETH 到 Arbitrum;或在两个不同的 Layer2 网络之间转移资产,如从 Arbitrum 网络发送 ETH 到 Optimism 网络。
该类「桥」资产转移的实现方式通常有三种:
-
锁定与铸造:通过锁定源链上的资产,并铸造目标链上的资产实现资产转移。基于该原理的项目有 Optimism Gateway 和 Arbitrum Bridge。
-
销毁与铸造:通过销毁源链上的资产,并铸造目标链上的资产实现资产转移。基于该原理的项目有 Hop Protocol 和 Across Protocol。
-
原子交换:通过使用智能合约和算法,消除了可信第三方的角色,将源链上的资产直接兑换为目标链上的资产。基于该原理的项目有 cBridge 和 Connext 的 NXTP。
基于不同实现方式的「桥」都有自己的优势和劣势,在实际操作过程中,需要针对特定的用例进行权衡。总体而言,这三类实现方式使得 Layer1 / Layer2 <> Layer2 之间的资金移动更加便捷,促进了 Layer2 生态发展。
什么是欺诈性证明?
欺诈性证明是 Optimistic Rollup 方案采用的一种数据有效性的验证方式。在 Layer2 同步数据给以太坊主网的过程中,如果有人认为被同步的数据不正确(即存在欺诈行为),便可在挑战期内发出挑战,然后通过 Layer1 智能合约计算并裁决出谁是欺诈者,再作出处罚。
目前,欺诈性证明可分为单轮交互型和多轮交互型两种。
单轮交互型
单轮交互型指在 Layer1 上重放一遍有争议的交易,检测是否存在无效状态后进行提交。
例如,Alice 作为验证人将 Rollup 压缩后的数据同步到 Layer1,同时质押保证金。如果 Bob 对该数据存在争议,则需在窗口期内发起挑战且同样质押保证金。Rollup 协议将会在 Layer1 上重新计算该区块中交易来判定对错。错误方的保证金将被罚没,正确方将获得奖励。
不过,由于链上计算成本较高,如果需要重新计算的交易过多,可能还会受到 Layer1 区块大小的限制。
多轮交互型
在多轮交互型证明中,当 Bob 对 Alice 同步的数据提出争议后,Alice 需将争议范围二等分,然后由 Bob 选择继续挑战的那段范围,再由 Alice 将争议范围二等分……如此循环,直至将争议范围缩减到一个具体的步骤,最后交由 Layer1 智能合约进行计算和判定。
因此,相比单轮交互型,多轮交互型能以更低的成本来解决争议,也更容易支持复杂的智能合约和处理更高要求的争议。
不过,随着交互次数的增加,它的争议窗口期也会更长一些。
什么是零知识证明?
1985 年,MIT 研究员 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在论文《The Knowledge Complexity of Interactive Proof Systems》首次提出零知识证明(Zero Knowledge Proof)的概念。
零知识证明:是指一方(证明者)可以在不揭示信息本身或任何额外信息的情况下,向另一方(验证者)证明一个给定的声明是真实的。
为了实现这一点,零知识证明协议依赖于将一些数据作为输入并返回「真」或「假」作为输出的算法。
零知识证明协议需满足 3 个条件:
-
完整:如果证明者输入有效,则零知识协议始终返回为「真」。因此诚实的证明者能说服同样诚实的验证者。
-
健全:如果证明者输入无效,则零知识协议无法返回为「真」。因此作弊的证明者无法欺骗诚实的验证者相信该声明为真。
-
零知识:除了了解给定的声明为真或假以外,验证者不知晓该声明相关的任何其他信息。
常见的零知识证明有两类:
-
ZK-SNARKs,全称 Zero-Knowledge Succinct Non-Interactive Argument of Knowledge
-
ZK-STARKs,全称 Zero-Knowledge Scalable Transparent Argument of Knowledge
如需了解更多(如 ZK-SNARKs 和 ZK-STARKs 的区别等),请阅读下方参考资料。参考资料:https://ethereum.org/en/zero-knowledge-proofs/