万字详解 Polygon 的 7 大扩容方案
注:原文作者是 Nickels,他通过 2 周时间深入研究 Polygon 的研究论文、白皮书以及技术文档,总结出了 Polygon 团队正在开发的产品及安全性,文章由 DeFi之道翻译编辑。
最近 0xDinoEggs 在 Twitter 上发布的帖子显示了 Polygon 所有扩容解决方案的安全表现。在这篇文章中,我们将研究 Polygon 的所有方案是否由以太坊保护,并研究它们总体上的安全性。
首先第一件事是,如何衡量安全性?
安全性通常是以攻击成本来衡量的,比如攻击 X 需要多少钱?对于 PoW 系统,执行 51% 攻击需要 GPU、电力以及其他因素的成本,而对于 PoS 系统,这将是多数权益以及验证器硬件的成本。从技术上讲,这些攻击是可能的,但攻击 PoS 系统或 攻击 PoW 系统的流动性有时根本就不存在。
这通常是衡量安全性的方式,但你不能忽视这样一个事实,即在安全性方面可能存在漏洞,或者可能存在中心化因素,而无需相同的攻击成本。可能还会存在其他经济失败或可攻击的弱点。但这些外部因素并不总是能衡量的,这也使得它们成为恶意行为者的目标点,并使不知道这些因素的用户产生虚假的信任感。
来自 DinoEggs
DinoEggs 的图表根据安全程度对所有的解决方案进行了一个排名,那这是什么意思?其中有几种方案是得到以太坊“保护”的,我们将向你展示以太坊如何保护每种解决方案,以及相关的可扩展性。
让我们开始吧!
Polygon Edge
Polygon Edge
Polygon edge 是一个模块化和可扩展的框架,它用于构建与以太坊兼容的私有或公共区块链网络。Polygon edge 的主要用途是引导一个新的区块链网络,同时提供与以太坊智能合约和交易完全的兼容性。
但要注意的是,通过 Polygon edge 创建的区块链网络,其安全性是掌握在部署者的手中的,Polygon Edge 本身作为一个框架并没有任何已知的安全问题,但与任何区块链一样,它的安全性取决于链的验证和管理方式。
缺点:安全性和去中心化属性不足
Polygon Edge 基础设施的一个弱点是,默认情况下它不会依靠另一个安全/去中心化层或网络来保护数据(尽管之后他们可以使用 Avail 方案)。
共识攻击
当通过 Polygon Edge 部署新的区块链网络时,它不会附带大量验证器。这意味着数据可以由网络上的验证者更改。当部署新的验证器时,它会附带一个私钥,而这些私钥可能会被窃取。
拥有少量验证者,也意味着在使用权益证明(PoS)机制部署的区块链上,很容易发生 51% 攻击。而权威证明机制(PoA)不会出现这个问题,因为必须对新的验证者进行投票。然而,另一方面,权威证明机制可能伴随着当前验证器拒绝诚实验证器加入网络的审查问题。
跨链桥
另一个弱点是区块链之间通信的桥梁是中心化的。拥有单个中继器是运行跨链桥的一种高度中心化的方式。虽然可以添加额外的账户来同时中继,但这很可能不是这些新区块链的优先事项。
代币分发
代币分发也有助于去中心化和安全性。如果大部分原生代币掌握在单一机构手中,他们可以利用这种权力来启动大量验证者或采取经济恶意行为。
攻击向量:
(1)共识攻击;
(2)中心化权威对跨链桥的攻击;
(3)代币分配不公造成的经济攻击;
正如我们所讨论的,这里有几个攻击因素。最重要的是,Polygon Edge 并未直接受到以太坊的保护,因此它的安全性位于图表的最左侧。但这并不能消除这样一个事实,即通过 Polygon Edge 构建的具有公平代币分配,且经过适当验证的区块链可以与其他竞争 L1 一样安全。
Polygon PoS
Polygon PoS
Polygon PoS 是一种通过利用侧链进行交易处理,来实现提升交易速度并节约成本的解决方案。同时,PoS 使用强大的 Plasma 桥接框架以及一个去中心化的权益证明 (PoS)验证器网络确保资产安全。
Polygon PoS 链上记录的交易已超过 13 亿笔,且有 1.3 亿个独立钱包以及大约 270 万月活跃用户,这是目前 Polygon 最成熟和最广为人知的扩容解决方案。
Checkpoints(检查点)
然而,Polygon PoS 链只是一种短期临时的扩容解决方案,它的代价是牺牲了安全性和去中心化。由于 Polygon PoS 链是侧链,而不是 rollup,因此 Polygon PoS 链在验证和去中心化方面并没有继承以太坊的安全性。
Polygon PoS 链仅使用其 EVM 合约在 PoS 链上保存带有交易数据的 Checkpoints(检查点)。Polygon 验证器将区块提交到 Polygon 网络,并且同一验证器调用以太坊端的 Checkpoint EVM 合约以保存 Merkle 根。
如果 Polygon PoS 链损坏,验证者将从检查点中保存的最后一个好区块(每约 30 分钟)来恢复/分叉,并且任何未保存的交易都将被丢弃。
跨链桥
我们不会在本文中讨论 Polygon PoS 链的跨链桥,但如果你想了解,可以查看 Vitalik Buterin 在 Reddit 发表的评论贴。
多重签名
Polygon PoS 链依赖于一个 5/8 多重签名方案(签名人包括 Polygon 联合创始人,以及来自 Polygon 以及以太坊项目的几位知名人士),此外,其使用了三种不同的多重签名:
MS1:PoS/Plasma 合约升级
MS2:定制“Child ERC20”合约升级
MS3:“子 ERC20”合约的映射
前两个在安全性方面至关重要,因此它们需要 8 个签名人中的 5 个签名,而第三个只需要 5 个签名人的 2 个签名。虽然有支持和反对这些多重签名的声音,但在我看来,只要人们意识到风险,多重签名 + 时间锁(timelocks)的组合就足够好了。在未来,Polygon 将实现治理,并最终实现不变性。
共识
Polygon PoS 链的当前验证器上限数量为 100 个,共识为 2/3,而不是通常的 51%。拥有 100 个验证器,意味着 Polygon PoS 链的去中心化属性无法和以太坊相比。但与目前大多数完全中心化的其他扩容解决方案相比,Polygon PoS 链的去中心化水平依然是相对较高的。
攻击向量:
(1)攻击多重签名,并进行恶意行为,例如窃取资金;
(2)共识攻击;
正如本文开头所述,对多重签名的攻击是安全方面的一个外部因素,因为这并不总是包含在腐败成本中。而在过去,已经发生过针对多重签名的攻击事件,因此我认为这是 Polygon PoS 链的一个弱点。
另外,由于不是任何人都可以成为验证者,而且大多数验证者都是被信任的(除非三分之二的验证者串通在一起作恶,或者他们的验证器被黑客攻击),因此共识攻击就不太可能会发生。
事后来看,Polygon 的 Polygon PoS 链在早期阶段是一个正确的选择,但 Polygon PoS 与 BSC 或 Solana 有着相同的安全隐患,从中期来看,用户可以使用 Polygon 接下来会提供的高度安全和可扩展的解决方案。总的来说,Polygon PoS 链在安全性方面要高于 Polygon Edge,但它并不直接受以太坊的保护。
Polygon Avail
Polygon Avail
Polygon Avail 支持模块化链设计,其中各种执行环境可以使用 Avail 进行数据排序并实现数据可用性。Avail 与执行层无关,执行层可以是使用 Avail 的独立链或链下扩容解决方案。而托管在这些执行层上的应用,可以享有 Avail 的全面安全性。
在深入了解 Avail 之前,一些概念和术语可能会让人感到陌生或复杂,因此这里主要关注的是安全性、节点和基础知识。
Kate 承诺和节点
Avail 使用 KZG 多项式承诺来创建避免欺诈证明的 2D 数据可用性方案。它不需要诚实的多数假设,也不依赖诚实的全节点对等方来获得数据可用性的信心。
在当今类似以太坊的生态系统中,主要有三种类型的对等体:
验证器节点
全节点
轻客户端
如果正确使用,这种架构是非常安全的,并且它已经被广泛使用,但这里存在一些严重的实际局限性。由于轻客户端不下载整个区块,因此它们可能被欺骗接受底层数据不可用的区块。区块生产者可能在区块中包含恶意交易,而不会将其全部内容透露给网络。
Avail 通过采取不同的方法来解决这个问题,它不验证应用状态,而是专注于确保发布的交易数据的可用性,并确保交易排序。只有当该区块背后的数据可用时,具有共识的区块才被认为是有效的。
这也导致了一个有趣的结果:网络中存在的非共识节点(全节点和轻客户端)越多,你可以安全拥有的区块大小(以及吞吐量)就越大。这是一个有用的属性,因为它意味着非共识节点也可以为网络的吞吐量和安全性做出贡献。
轻客户端
轻客户端是一个强大的概念,它可以确信一个区块中的所有交易数据都会被释放,而无需通过称为纠删码(erasure coding)的数学原语下载整个区块。通过复制区块中的字节,即使有一定百分比的数据丢失,纠删码也可以重建整个区块。该技术用于执行数据可用性采样(DAS),允许轻客户端通过随机采样区块的一小部分来概率确定已发布的区块的整体。
这允许轻客户端在将其接受为有效数据并遵循相应的区块头之前,确保所有交易数据都包含在特定区块中。然而,这种技术存在着一些注意事项:数据可用性采样具有很高的延迟,并且与诚实少数假设类似,安全保证依赖于假设有足够的轻客户端执行采样,以能够概率确定一个区块的可用性。
纠删码(erasure coding)
纠删码的工作原理是将一个数据单元(例如文件或对象)拆分为多个片段(数据块),然后创建额外的片段(奇偶校验块),这些片段可用于大大增加数据恢复。纠删码提供了更高的可用性、存储效率和可靠性。可靠性是根据容错性来衡量的,即在不丢失数据的情况下可以持续的同时故障的数量。
冗余
最重要的是,由于纠删码等方案包含冗余,假设 n 个块被编码为 2 n 个块。纠删码确保 2 n 个块中的任何 n 个,就足以重新创建数据,这使得区块生产者的隐藏任务变得更加困难。要隐藏一个特定的块,它需要使至少 n+1 个块不可用。作为一个客户端,查询恒定的次数可以提供非常高的信心,即数据确实可用。因此,冗余在数据可用性中起着至关重要的作用。
欺诈证明
关于欺诈证明,在上面,我们讨论了数据冗余的优势,而省略了纠删码块被区块生产者错误构造的情况。在这些情况下,即使大多数块确实可用,但可能无法访问整个区块数据。因此,欺诈证明需要由系统中的其他全节点构建并传播到轻节点。轻节点验证欺诈证明并确信收到的区块头是错误区块的,欺诈证明的一个有趣特性是,即使在少数诚实假设下也能发挥作用。这是因为拥有一个诚实的全节点作为邻居,就足以保证诚实的轻节点接收到欺诈证明。
RPC 方法
通过使用 substate 框架,在 BABE/GRANDPA 共识机制分叉之上还引入了支持数据可用性查询的其他 RPC 方法。轻客户端可以使用这些额外的 RPC 方法来获得对数据可用性的信心。
数据可用性保证
Polygon Avail 还研究了概念实施证明、非交互式 DA 证明以及数据可用性 Oracle 等方法,以开发具有更强数据可用性保证的链上轻客户端。虽然我不确定他们在这里采取了什么方法,但目的是为了提高数据可用性和安全性。
攻击向量:
(1)DA 层中的绝大多数验证器都希望更改已确认的区块顺序;
(2)绝大多数验证器创建了错误的区块头,即区块头中存在的数据 commitment 是错误的;
(3)绝大多数验证器都希望隐藏区块至少一个 chunk 块,对于轻节点,这意味着无法以不可忽略的概率检测到数据隐藏。对于全节点,这意味着无法重建数据。
(4)新的层是一条新的区块链,它需要验证和创建区块,也需要共识系统。Avail 会和 Polygon PoS 链一起使用,这就是资本成本的来源。Polygon Avail 需要一个底层代币来支付给验证器,只有在年收入值得的情况下,这才是可持续的。
关于第一点,在达到最终性的假设下,是很难发起重新排序攻击的。这是因为,要成功发起此类攻击,攻击者需要打破底层共识的不等价性。特别是,最终性层确保如果出现 equivocation 的情况,可以识别出不诚实的各方并罚没他们质押的权益。规则是让 2/3 的验证器跟随最长链,从过去的区块开始,攻击者越来越难以追上并压倒更长的链。因此,在最长链中足够深的区块,可以被视为概率最终确定的区块。
关于第二点,这种攻击会被轻客户端以压倒性的概率捕获。
关于第三点,查询常量样本的轻客户端可以确保数据确实可用。这是由于如前所述,数据中存在着冗余。对于一个全节点,它需要从每列下载至少 n 个 chunk 块,以便它可以重建整个扩展数据。它检查承诺以了解下载的数据是否正确。列全节点需要执行类似的操作,但只针对一列数据。
关于第四点,安全性实际取决于有多少验证器。这基本上是添加了一个信任假设,而建立与比特币或以太坊相同数量级的安全性,可能需要数年或数十年的时间。
因此,尽管 Polygon Avail 存在着攻击媒介,但它们的可能性极小。我看到的最大攻击向量是共识攻击,而大多数新部署的区块链也面临这个情况。Polygon Avail 利用以太坊发布执行有效性证明,并通过验证以太坊上的证明来验证 DA,以确认所述数据的可用性。因此,它在安全频谱图上要更靠右一些,因为证明是由以太坊网络保护的。
Polygon ZK-Rollups
Polygon 和它的 ZK-Rollup 方案们
在过去的一年里,Polygon 开始了 ZK-Rollup 方案的收购之路,首先是 Hermez Network,紧随其后的是 Polygon Nightfall,这是一个与 EY 合作建立的以隐私为重点的 Rollup,然后是 Polygon Miden。去年 1 月份,Polygon Zero 还与开创性的 ZK 创业公司 Mir 达成了一笔 4 亿美元的交易。
尽管 ZK 证明被广泛视为区块链扩容的最终游戏,但这个领域仍处于早期阶段,尚不清楚各种 ZK 风格的 Rollup 将如何映射到实际用例。而不同的技术选择(使用的证明系统类型、虚拟机的设计、网络架构等),会对未来的采用产生深远的影响。
以下是我针对 Polygon 解决方案使用的 ZK 证明的安全性、大小以及速度制作的一些图表。
下面我将深入探讨 Polygon 的四种 ZK-Rollup 解决方案。但事先说明,这些都是依据的 Polygon 团队白皮书、文档、博客以及底层技术撰写的。我不能保证下面的所有信息仍然是最新的或正确的,或者它们是否仍然采用相同的方法,因为它们都还没有完全生效。我可能不会在所有解决方案中都使用相同的内容,因为有些信息不可用或过时。但你仍然会学到很多关于 ZK-Rollup、它们的愿景、方法以及安全性的知识。
Polygon Hermez
Polygon Hermez
Hermez zk-rollup 是以太坊上的一个 layer 2 结构,通过将大量 transfer 转账整合到单笔交易中来解决其可扩展性。“零知识证明”(ZK)技术用于展示和公开记录在以太坊区块链上处理的滚动转账的有效性和正确性。通过只存储一批传输的证明和压缩数据,网络的效率和吞吐量成倍增加。
共识
效率证明(Proof Of Efficiency)对整个区块链行业以及我来说是一个新概念,我已经阅读了所有文档、博客和信息。以下是我的结论,当然我可能会错过一些事,并且有可能会发生变化,因为它仍然在开发当中。
由于效率证明(PoE)的简单性,Polygon Hermez 使用了这种共识模型,为了向网络提议一个新的批次,定序器将需要支付 L1 网络的 gas 费用以生成包含所有批次交易数据的 TX,并且该协议定义了需要存入的 MATIC 代币的额外费用。这样,定序器就有动力提出具有有效交易的有效批次。
PoE 的战略实施承诺确保网络保持生产 L2 批次的无许可机会。而高效是整体网络性能的关键。这可以达到可接受的去中心化程度,不会受到恶意攻击,尤其是验证者的攻击,并在整体验证工作和网络价值之间保持成比例的平衡。
这种机制避免了对单方的控制以及许多潜在的攻击,因为任何定序器都可以提出一个批次,但它是有成本的。
此外,聚合者(Aggregator)也可以选择以无许可的方式参与,但如果他们不这样做,那么这种经济价值会吸引人去这么做。在 Polygon Hermez 的情况下,Polygon Hermez 网络将启动引导聚合者(Aggregator),以在引导阶段以特定频率支持新的有效性证明。
此外,开发者还在探索将 PoE 与 PoS 耦合的可能性。
ZkProver
Hermez 2.0 采用先进的零知识技术来创建有效性证明。它使用了一个零知识证明器 (zkProver),以在任何服务器上运行,并且被设计为与大多数消费类硬件兼容。每个聚合者(Aggregator)都将使用这个 zkProver 来验证批次并提供有效性证明。
zk-SNARKs
Hermez 使用的是 zk-SNARKs,这是一种经过验证的技术,并且已在 ZCash、摩根大通的区块链支付系统、以太坊的 Tornado Cash 或 Semaphore 上使用。
Zk-SNARK 代表零知识简洁非交互式知识论证,它是一种密码学形式,允许我们创建非常小且可快速验证的证明,证明 Hermez rollup 中的所有交易都是有效的。简而言之,zk-SNARKs 允许:
为 Hermez 网络中的所有交易创建有效性证明,以便仅包含有效交易。这使得在数学上不可能包含无效交易;
任何人都可以用最少的努力来验证这个证明;
数据可用性(DA)
典型的 zk-rollup 要求将数据(用户重建完整状态所需的数据)和有效性证明都发布在链上。然而,考虑到以太坊的原因,在链上发布数据意味着会产生 gas 费用。这导致 rollup 项目方在完整的 zk-rollup 配置和负担得起的网络费用之间做出艰难的选择。除非证明模块可以高度加速以降低验证器的成本,否则混合模式仍然是不可避免的。
尽管 Polygon 团队尚未最终确定最佳共识配置,但显而易见可用的选择是:
Validium:证明与数据一起在链下生成,并在验证后将证明存储在链上;
Volition:让用户自行选择,可以是完整的 zk-rollup,即数据和证明都在链上,或者只有证明在链上,数据则在链外;
Polygon Hermez 使用的是 LX-LY 跨链桥,这是一个智能合约,允许用户在 LX 和 LY 两层之间转移他们的资产。Hermez 2.0 中的 L1-L2 是用于安全存取资产的去中心化跨链桥,它是两个智能合约的组合,其中一个部署在链上,另一个部署在另一个链上。
攻击向量:
(1) 如果所有聚合者(Aggregator)都在关注 L1 的已发布批次,并且有类似的激励措施,那么他们将尝试同时提交证明。这可能相对昂贵,人们可以想到各种攻击,其中竞争的聚合者抢先攻击对手以将他们赶出业务。
(2)共识攻击
(3)量子攻击
关于第一点,这个想法是聚合者之间的竞争。但是,如果他们决定协调(超出协议范围),这对网络来说不是问题,因为通过在每批中存入一些激励措施,网络将 ZK 证明计算外包给最有效的参与者,以受益于网络吞吐量。这是一种反向拍卖,每个未经许可的聚合者根据 zk-rollup 智能合约中的可用激励来决定何时可以触发计算证明。
关于第二点,确实有办法攻击共识,但可能性并不是很大。
关于第三点,当今的很多加密方案都无法抵抗量子计算攻击,例如 RSA 和 ECDSA(椭圆曲线密码学)。比特币和以太坊使用 ECDSA 生成私钥和公钥。ZK-STARKS 不依赖于私钥 - 公钥配对(例如 ECDSA),而是依赖于交互式解决方案的抗碰撞哈希,以及随机 oracle 模型(通常用于代替 oracle 输出需要强随机性假设的一般加密哈希函数的模型),因此,ZK-STARKs 目前能够抵抗量子计算机攻击,但 ZK-SNRARKs 却不能。虽然不太可能,但也不是不可能。
与所有 ZK-Rollup 一样,你始终可以根据需要手动向主网以太坊 rollup 合约提交交易,包括使用 rollup 退出你的资金。Polygon Hermez 旨在无缝处理智能合约并有效验证状态变化。它不仅安全高效,而且有望实现竞争性去中心化。作为一个 L2 解决方案,Polygon Hermez 的大部分安全性都继承自以太坊。智能合约将保证执行状态更改的任何人首先必须正确执行,其次,创建一个证明状态变化有效性的证明,第三,利用链上的有效性证明进行验证。
Polygon Hermez 位于安全频谱图的最右侧,因为资金及可能的数据(取决于他们的选择)会受到以太坊的保护。
Polygon Zero
Polygon Zero
Polygon Zero 是一个以太坊 L2 扩容解决方案,Polygon Zero 与其他 ZK 扩容解决方案的区别在于其使用了 Plonky2 的强大功能,这是他们开创性的证明系统,它生成 ZK 证明的速度要比任何其他现有技术都快。Plonky2 支持高效的递归证明生成,允许 Polygon Zero 水平扩展,这意味着协议的吞吐量不受网络上最弱节点的限制,而仅受可用的总计算量限制。
Polygon Zero 的扩容方法
Polygon Zero 使用零知识证明从根本上简化交易执行,在不牺牲去中心化、安全性或可用性的情况下提高吞吐量和可扩展性。
在 Polygon Zero 中,应用层从验证中抽象出来,这使得验证者的当前状态缩小了 1000 倍,显着减少了交易规模,并使交易执行成本降低了几个数量级(并且没有 gas!)。
递归证明允许 Polygon Zero 上交易的复杂部分(验证交易证明和访问状态)仅由单个验证器验证。Polygon Zero 可以随着加入网络的每个节点进行扩展,而不会牺牲安全性、去中心化或可用性。
减小状态大小
今天,以太坊客户端存储了大约 800 GB 的数据用于验证交易,虽然目前这是可管理的,但要超越以太坊每秒约 102 次的交易量,将需要一种完全不同的方法。
在像以太坊这样的传统区块链设计中,验证交易需要访问与交易交互的每个帐户的状态。为了促进有效的验证,节点简单地存储所有活动账户的状态,随着账户集的增长,这变得昂贵。幸运的是,还有更好的方法。
无状态区块链的概念是将账户数据转移到链下,个人拥有的帐户可以简单地存储在该个人的设备上。共享帐户(如 oracles)可以存储在 IPFS 或其他存储层上。Polygon Zero 验证器在这里是不可知的,它们不需要存储任何帐户数据,也不需要知道它的存储位置。
根据 Polygon Zero 使用的模型,验证器只需要为每个活动帐户存储大约 5 bits。由于验证对硬件的要求非常低,因此允许网络变得非常去中心化。在这种情况下,去中心化也意味着额外的安全性。
递归扩容
Polygon Zero 使用递归证明来并行化交易证明验证。验证交易(验证证明和访问状态)的昂贵部分,仅由生成递归证明的单个节点执行。每个验证器更新承诺集所必须执行的状态转换非常便宜,因此吞吐量不受计算成本的限制。
吞吐量受到可用于生成递归证明的聚合计算的限制。幸运的是,计算很便宜,并且它们使递归证明生成变得高效。这为 Polygon Zero 提供了一种用于扩展吞吐量的飞轮机制:增加的费用量会吸引更多的计算,这允许应用扩展和增加交易量,而所有这些都不会牺牲去中心化、安全性或可用性。
Plonky2
Plonky2 是一个基于 PLONK 和 FRI 技术的 SNARK 实现。它是基于 PLONK 和 Halo 的 Plonky 的继任者。Plonky2 专为提高速度而设计,具有高效的递归电路。在一台 2021 年的 MacBook Air 上,在优化速度时,可以在大约 300 毫秒内生成递归证明。在优化大小时,Plonky2 可以将证明压缩到大约 43 KB,生成时间大约需要 11.6 秒,并且这种执行同样是在一台 2021 年的 MacBook Air 上。
攻击向量:
(1)时间和民族国家攻击
(2)共识攻击
关于第一点,Polygon Zero 的隐私方案更容易受到时间攻击,因此钱包必须改变向网络提交前置零器和后置零器(pre- and post-nullifiers)之间的时间间隔。如果对手支付交易费用以完全填充包含目标交易的区块,Polygon Zero 的隐私方案也可能被破坏。
对于对手来说,这将是非常昂贵的,并且只会破坏匿名性,而不是机密性或功能隐私。
关于第二点,Polygon Zero 使用了 Tendermint 作为他们的共识算法。我发现了一篇关于他们的 Mir-BFT 共识协议的旧论文,但我认为这已经过时,因此对信息持保留态度。以下是 Tendermint 的一些可能的攻击媒介。如果有缺陷的参与者拥有 1/3 或更多(或在某些情况下超过 2/3)的投票权,他们就有行为不端的动机。他们可以做一些事情,比如让链分叉等。
Polygon Zero 是众多 ZK 扩容解决方案中我最喜欢的一种,它也同样位于安全频谱的最右侧,因为它会在 rollup 模式下继承以太坊的安全性。在 validium 模式下,它仍然要比竞争 L1 安全得多。Polygon Zero 以 Mir(竞争 L1)开始,但转向了一个 rollup,他们是第一批采取这一行动的人。这仍然保留了 Mir 的大部分设计,包括其自身最终性的共识协议,但现在有了更高的安全性、经济可持续性和更大的创新灵活性。例如,Polygon Zero Rollup 与 竞争 L1 相比,升级证明系统以及 VM 之类的事情要容易得多。
Polygon Nightfall
Polygon Nightfall
Polygon Nightfall 是一个 Optimistic Rollup,旨在降低私下转移 ERC20、ERC721 和 ERC1155 代币的成本。它使用 Optimistic Rollup 来降低交易费用,并使用了零知识证明技术来改善隐私,Optimistic Rollup 合约部署在以太坊 L1 上。提议者将交易聚合到区块中,并将它们提交给 Optimistic 合约。挑战者向同一合约提交任何无效区块的欺诈证明。执行私人转账所需的所有信息,都存储在客户端当中,而不依赖于任何链下第三方。
面向企业的零知识证明协议
Polygon Nightfall 是 Polygon 扩容解决方案套件的一部分,其中包括了 Polygon Hermez、Polygon Miden 以及 Polygon Zero。主要区别在于,Nightfall 是一个专注于隐私的 Rollup,它专为企业用例设计,通过结合 Optimistic Rollup 和零知识 (ZK) 密码学的概念来提供私有和可扩展的交易。
Nightfall 在实现可扩展性的同时,它也将消除企业在使用区块链时面临的主要障碍:缺乏交易隐私。Nightfall 增加了一层隐私,因此关键交易参数(例如价值和目的地)无法追溯。这两个特性激发了私营企业的兴趣,他们将 Nightfall 视为一种执行业务逻辑的方式,并以可持续的价格在去中心化的网络中与供应链协调,同时维护安全和隐私。
安全性
Nightfall 正在进行安全审核,预计将在第三季度完成。作为一个具有引导期的新网络,Nightfall 具有临时安全措施来保护系统,而最终会删除它们并使其完全去中心化。
Polygon Nightfall 是一个 L2 结构,因为它利用了以太坊公链作为一个强大的安全性来源。Nightfall 依赖于保证资产回收的某些假设。这些假设基于围绕 ZK-SNARKS 的几个设计和架构决策。这些 ZK-SNARKs 使用某些密码学原语,例如哈希和签名,它们会做出额外的安全假设。最后,Nightfall 将运作规则嵌入到不同的智能合约中,以保证运营商不会阻止用户交易,并且用户可以随时提取资产。
总而言之,Nightfall 做了以下安全假设:
以太坊的安全假设;
Groth16 假设;
来自原语(如哈希和签名)的某些密码学假设;
依赖于正确设计和实现的软件安全假设;
临时安全措施
Nightfall 钱包在 Chrome 浏览器上进行了测试。在 Beta 测试期间,其他浏览器的进度可能会有所不同。你的钱包密钥和交易是存储在浏览器 (IndexedDb) 中。出于安全措施,此数据目前未导出到任何地方。因此,除非你传输 IndexedDB 内容或恢复你的帐户,否则你在使用不同的浏览器或不同的机器时将无法访问你的钱包。他们可能会在未来根据 Beta 阶段的反馈改变这一点。
网络上的参与者
交易人(Transactor)
交易者是服务的常客,他们希望进行交易,即私人存款、转账和取款。这些客户通常会使用网络钱包或专用服务器(客户端)来执行生成交易所需的 ZK 证明。
提议者(Proposer)
提议者从客户那里收集交易,并对 Shield 合约的状态提出新的更新。关于状态,我们具体指与 ZKP 交易相关的存储变量:零化器(nullifiers)和承诺根。更新提议包含多个 tx, 汇总到一个 L2 区块中。只有在处理完区块中的所有交易后才会存在的最终状态的哈希存储在链上。交易在 1 周后会最终确定。
任何人都可以成为提议者,但他们必须抵押一些权益,旨在激励良好的行为。提议者通过提供正确的区块,向交易者收取费用来赚钱,这有点类似传统区块链中的矿工。(注:目前只有一个提议者在运行,它是由 Polygon 提供)
挑战者
挑战者在提交区块后的一周内监督提议区块的正确性。任何人都可以成为挑战者。当挑战者成功提交挑战时,挑战者会在构建他们的区块时获得提议者抵押的权益。
流动性提供者(LP)
流动性提供者无需等待挑战区块所需的 7 天期限,就可以将资金提前提取给交易者并收取费用。
Optimistic Rollups 的安全性
Optimistic rollup 依赖于 L1 的绝对抗审查性来保证其安全性。虽然 L1 为反对大规模审查提供了一些合理的经济激励,但很容易构建这样一种场景,即对特定单一交易的审查会得到强烈奖励,而非审查行为会受到长时间的严厉惩罚。Optimistic rollup 的一个诚实观察者假设实际上是 51% 的利他主义 L1 矿工假设。这对 Optimistic Rollups 的安全模型构成了最终威胁,尤其是因为 rollup 中资产的高度集中,使其成为了黑客的甜蜜蜜罐。
去中心化
验证者和挑战者是 Nightfall 不可或缺的一部分。这确保了交易和 L2 区块及时且正确地生成。基于权益证明 (PoS) 的共识机制来选择网络的下一个提议者。另一方面,挑战者通过在检测到不正确的区块时提出质疑,并保留提议者提供的权益来监控网络的正确运行。Nightfall 的去中心化程度目前还无法计算。
攻击向量:
(1)L2 交易重放攻击;
(2)共识攻击;
(3)Optimistic Rollup 的安全性通常不如 ZK-Rollup;
关于第一点,Polygon Zero 的隐私方案会更容易受到时间攻击的影响,因此钱包必须改变向网络提交前置零器和提交后置零器之间的时间间隔。如果对手支付交易费用以完全填充包含目标交易的区块,Polygon Zero 的隐私方案也可能被破坏。对于对手来说,这将是非常昂贵的,并且只会破坏匿名性,而不是机密性或功能隐私。
关于第二点,Polygon Nightfall 也使用了权益证明(PoS)共识机制,这里的共识算法也有可能遭到攻击,但我找不到很多关于他们的 PoS 算法的信息,尽管不太可能发生,但共识攻击也存在一定的可能性。
关于第三点,ZK-Rollup 可以避免 Optimistic-Rollup 面临的攻击向量,因为它依赖于 L1 在每个状态转换上验证的有效性证明,而不是博弈论欺诈证明。
Polygon Nightfall 是 ZK 技术与 Optimistic Rollup 结合的一个很好的例子。凭借他们的专注、合作的企业以及提供的隐私性,我可以看到 Polygon Nightfall 会取得巨大的成功。
Polygon Nightfall 也位于安全频谱的最右侧,因为它们受到了以太坊的保护,例如,用户交易总是由以太坊智能合约通过验证用户提供的 ZK-Proof 来验证。
Polygon Miden
Polygon Miden
Polygon Miden 是一个以太坊 L2 扩容解决方案,Miden 依靠零知识技术 (zk-STARKs)将数千笔 L2 交易“汇总”为单笔以太坊交易,从而提高吞吐量并降低交易费用。Polygon Miden 的核心是 Miden VM:这是一个图灵完备的基于 STARK 的虚拟机,它提供了一定程度的安全性并支持目前在以太坊上不可用的高级功能。
zk-STARKs
与大多数使用 ZK-SNARKs 的 ZK Rollup 不同,Miden 使用了另一种称为 ZK-STARKs 的证明。STARK 代表“可扩展的透明知识论证”,而 SNARK 代表“简洁的非交互式知识论证”。鉴于 SNARK 和 STARK 的名称非常接近,因此学习 SNARK 和 STARK 的相似之处也就不足为奇了。它们的核心都是隐私和扩容技术,为应用提供了以更安全、更快的速度验证证明的能力。
它们的不同之处在于细节。STARK 传统上不需要证明者和验证者之间的初始设置过程,尽管一些现代 SNARK 也找到了删除此过程的方法。SNARK 的弱点是无法应对量子计算威胁,它容易受到量子计算的攻击,而 STARK 使用的更精简的密码学函数可证明是后量子安全的。
使用 STARKS 的权衡,在于需要更大的证明,从而导致更高的 gas 成本以及缺乏递归。实施后者或许是可能的,但目前尚未得到证实。对 SNARKs 和 STARKs 的进一步研究,将继续为 Layer-2 证明打开新的大门。
Miden 的 ZK 技术总结:
(1)透明度
(2)通用性适用于任何有效计算,即使它需要辅助(可能是机密)输入
(3)保密(ZK)
(4)后量子安全
(5)知识的证明/论证
(6)可扩展验证
GenSTARK
Bobbin Threadbare 目前在负责 Polygon Miden 的开发。他为 ZK 领域做出了多项贡献,包括领导了 Distaff VM 和 Winterfell 的开发,而它们都是 Polygon Miden 框架的核心组件。
2019 年,他开发了 GenSTARK,这是一种基于 STARK 的证明器,能够为任何类型的计算生成证明,由此开始了他对整个 STARK 系统的探索之旅。然而,这个工具的问题是它对开发人员不友好,所以他想找到一种方法来解决这个问题。
Distaff VM
他开始更多地思考基于 STARK 的虚拟机,以及如何制作这样的东西。这导致他在 2020 年 2 月写了一篇名为“基于 STARK 的 VM 的草图”的论文,后来他决定使用他写的这篇论文中的想法构建自己的 STARK VM,以此证明它实际上是可以实现的。
这导致他在 2020 年 4 月开发了 Distaff VM,并最终成为当前 Miden 项目的基础部分。
Distaff VM 是一个零知识的虚拟机。
每当在 zk-VM 中执行程序时,都会生成 zk 执行证明,以验证程序是否正确运行,而无需实际运行该程序。这里有两种方法可以证明知识——要么使用 SNARK 证明,要么使用 STARK 证明。
Distaff 是一个基于 STARK 的虚拟机。
Miden VM
Miden 的优势在于创建了 Miden 虚拟机,这是一种与 EVM 兼容的 ZK-STARK。Miden VM 是一种通用的 ZK 虚拟机,它使开发人员能够充分利用平台的图灵完备性能力。此外,这还为开发人员提供了多语言支持,这些语言(包括 Solidity、Move 和 Vyper)被编译成 Miden 汇编语言,供 VM 读取。
Miden VM 的发展始于 2019 年,当时是一个名为 genSTARK 的库,它允许开发人员创建简单的 STARK 证明器。我们在上面提到的 Distaff VM(基于 STARK 的早期虚拟机)和 Winterfell(genSTARK 的升级迭代)形成了持续的改进,例如完全的图灵完备性。Miden VM 的当前迭代是一个公开的 v0.1 原型,结合了 Distaff VM 和 Winterfell 的功能,并于 2021 年 11 月推出。有兴趣使用新虚拟机构建的开发人员可以试验该产品的功能。v0.2 原型预计将很快发布,测试网开发预计会持续到年底,之后将在 2023 年的某个时候进行主网部署。
代码开源
Polygon Miden 是一个完全开源的项目(在 MIT 许可下),他们的目标是在社区的投入和贡献下公开开发它。
据我所知,Polygon Miden 是唯一一个完全开源的基于 STARK 的扩容解决方案。开源软件是(或至少应该是)Web3 中的标准,Web3 本身就开始将其从专有的、不可编辑的软件和平台中转移出来。开源增加了信任层,最终增加了安全层。
攻击向量:
(1)共识攻击;
Polygon Miden 最有可能使用的共识算法是权益证明(PoS),这显然会有潜在的攻击可能性,我没有找到任何关于他们的引导阶段共识系统的文档,但共识算法显然仍然是一个安全弱点。
因此,虽然我们对 Polygon Miden 的细节知之甚少,但也可能会存在其他的攻击向量,例如多重签名或者中心化的点。我不确定他们会使用 Validium 还是 Volition,但我们知道的是,他们会在以太坊上发布证明,因此在安全频谱图上更靠右侧,因为证明是由以太坊保护的。
结论
Polygon 团队在过去几年中做出了很多正确的选择,他们从侧链开始,然后构建解决数据可用性以及其他扩容解决方案。他们最新发布的是 zkEVM,这是第一个 EVM 等效的 ZK L2。Polygon 核心开发团队已将 ZK 作为其战略愿景的核心,作为该使命的一部分,Polygon 团队已承诺将 10 亿美元(相当于财政部的一大部分)用于与 ZK 相关的工作。他们还在尝试解决即将到来的模块化区块链运动的核心组件问题,即数据可用性(DA),他们的 Avail 方案会面向链下扩容解决方案以及独立链。
就我个人而言,我期待使用 Polygon 的解决方案,并看到它们的发展。