rounded

撰文:Lilian

编译:白话区块链

区块链早期充满了兴奋。然而,随着越来越多的人开始使用区块链,交易量激增,一个重大问题浮现:可扩展性。除了可扩展性问题外,还有安全性和去中心化问题。这一挑战被称为「区块链三难困境」,即同时实现这三个属性非常困难。

 

比特币作为第一个区块链,每秒只能处理少量交易,以太坊也好不到哪里去。这导致了对提高区块链可扩展性解决方案的需求。这种需求催生了 ZK 证明。

 

1、ZK 证明作为扩展解决方案


「零知识」概念最早在 1985 年由 Shafi Goldwasser、Silvio Micali 和 Charles Rackoff 在论文《交互证明系统的知识复杂性》中提出。这篇论文解释了零知识证明(ZK)的概念,远早于加密货币的诞生。

 

根据论文的定义:零知识证明是一种方法,使一方(证明者)能够向另一方(验证者)证明某个陈述是正确的,而无需透露该陈述之外的任何其他信息。

换句话说,零知识原则确保除了陈述的真实性外,没有其他额外知识从证明者传递给验证者。

 

一个经典的类比来解释零知识证明的概念是「阿里巴巴的洞穴」:

 

情景:有一个洞穴,有两条路径 A 和 B,形成一个环并在一扇锁着的门处相遇。简(证明者)知道打开门的秘密代码,保罗(验证者)希望确认简知道代码,但不想自己知道代码。

 

过程:

 

1)简进入洞穴,随机选择路径 A 或 B。

 

2)保罗在外面等待,不知道简选择了哪条路径。

3)保罗进入洞穴并叫出他希望简返回的路径(A 或 B)。

 

4)如果简知道代码,她可以打开门并从所选路径返回。

 

5)这个过程(1-5)重复多次,以确保简不是仅仅通过猜测正确返回。

 

如果经过多次重复,简始终从正确的路径返回,保罗可以确信简知道代码,而无需知道代码本身。

 

ZK 证明旨在确保隐私和安全,保持敏感信息的私密性,同时仍允许他人验证其真实性。简而言之,ZK 证明帮助确保重要数据的安全,同时证明其合法性,而不透露具体细节。

 

ZK 证明的概念还催生了各种先进的密码学技术和应用,如 ZK Rollups 和 ZK Compressions。

 

2018 年,一位匿名的 Barry Whitehat 在 GitHub 上上传了一个名为「roll_up」的代码库,介绍了 Rollups 的概念。随后,以太坊的创始人 Vitalik Buterin 将这一概念进一步发展,提出了 zk-Rollups。

 

zk-Rollups(零知识 Rollups 的简称)是用于提升以太坊主网性能的二层扩展解决方案。它们通过将计算和状态存储移到链下来实现扩展。

 

二层协议是构建在区块链之上的次级协议,旨在增强其可扩展性、速度并减少交易费用。

 

6 月 21 日,基于 Solana 的隐私层 Light Protocol 宣布与 Solana 开发团队 Helius Labs 合作,推出其新「ZK Compression」扩展解决方案的测试网,旨在显著降低链上计算成本。

虽然 zk-Rollups 和 zk-Compression 都利用零知识证明的强大功能来优化区块链技术,但它们的用途不同,实施方式也有所区别。

 

尽管如此,以太坊和 Solana 社区一直在争论哪种技术更好。

 

例如,一位以太坊社区成员称 ZK 压缩为「另一个 L2」。

在 Heliuslabs 的 CEO Mert 对上述推文做出回应后,Solana 社区以一个针对以太坊的创意嘲讽视频进行了回击。

 

视频中,一位医生在治疗一名「ETH 极端主义」患者。视频中的一句台词说道:

 

「这是 ETH 极端主义者常见的反应。他们在没有另一层的情况下无法运作,会有第三层!第四层!」

这些区块链之间的竞争显而易见。因此,本文旨在清晰全面地比较它们的可扩展性解决方案,突出每种解决方案的独特特点、差异和实际应用案例。

 

2、什么是 ZK Rollups?


在其核心,ZK Rollups 是一种二层扩展解决方案,旨在提升区块链网络的效率和可扩展性。

 

其核心思想很简单:不是直接在主区块链上处理每个交易,而是将多个交易捆绑成一个单一的证明。然后,这个合并的证明被提交到区块链进行验证。

这种方法显著增加了交易吞吐量(网络在一定时间内能处理的交易数量),同时不会牺牲网络安全性。

 

为了更好地理解这一点,

 

想象一下你在组织一场音乐会。与其让每个参与者一个接一个地通过一个狭窄的门(主区块链),可能导致拥堵和延迟,你可以实施一种系统,在检查点上同时验证一组参与者。每组携带一个单一的票证,证明每个人都已经经过正确检查和入场。这样,通过减少入口处的阻塞,你既保证了安全性,又提高了效率。

 

ZK Rollups 通过在链下处理交易,并利用像 ZK-SNARKs 或 ZK-STARKs 这样的先进密码学技术来保障交易的有效性和隐私性,从而提升了整体用户效率和安全性。

 

zk-SNARKs 是提供简洁证明的 zk 证明(即证明大小短小且高效验证),非常适合于注重证明大小和验证时间关键的应用场景。

 

zk-STARKs 是允许更大规模和更复杂证明的 zk 证明,适用于大规模财务审计、数据隐私和验证计算等应用。

 

ZK Rollups 是像以太坊这样的区块链网络的完美扩展解决方案,因为它将交易在链下聚合成批次,减少直接提交给以太坊的数据量。

 

在以太坊上的 ZK Rollups 运作方式是利用密码学技术在链下聚合和验证交易,从而提升以太坊区块链的可扩展性并降低成本。

以下是 ZK-Rollups 运作的逐步说明:

 

1)交易聚合: 用户签署并提交交易给 ZK-Rollup 运算器(序列化器),它们将这些交易聚合成批次。

 

2)链下处理: 交易在以太坊主网之外的链下进行处理(第二层)。

 

3)状态更新: 在处理完一批交易后,ZK-Rollup 运算器为 rollup 状态计算一个新的状态根。

 

4)有效性证明: ZK-Rollup 运算器生成有效性证明,确保批次中的所有交易都按照协议规则正确执行。

 

5)链上验证: ZK-Rollup 运算器将有效性证明和新的状态根提交给以太坊智能合约,称为 rollup 合约。该合约验证并相应更新其状态。

 

6)用户交互: 用户通过将 Token 存入以太坊主网上的 rollup 合约,启动 rollup 内的交易,并在需要时将 Token 提取回主网。

 

7)退出机制: 用户要将 Token 从 ZK-Rollup 提取到以太坊主网,需提交一个提取请求,并附带一个 Merkle 证明,证实其在 rollup 状态中拥有 Token 所有权。经 rollup 合约验证后,Token 将转回用户的以太坊地址。

 

1)ZK Rollups 的优势


以下是 ZK Rollups 的一些优势:

 

A、提升的可扩展性:通过将多个交易捆绑成一个批次,zk-Rollups 每秒可以处理数千笔交易(TPS),显著增加了与基础层相比的吞吐量。

 

B、更低的手续费:由于 gas 费用分布在 rollup 批次中的多个交易上,每笔交易的成本降低,使用户更经济实惠。

 

C、以太坊级别的安全性:zk-Rollups 继承了以太坊主链的安全性,因为它们向以太坊提交证明(zk-SNARKs),确保链下交易的有效性。

 

D、降低数据负载:通过仅向主链提交简明的证明,zk-Rollups 大幅减少了需要在以太坊区块链上处理和存储的数据量。

 

E、增强的隐私保护:zk-Rollups 可提供改进的隐私功能。零知识证明可以隐藏交易详情,同时证明其有效性,从而在公共区块链上实现私密交易。

 

2)ZK Rollups 的缺点


尽管 ZK Rollups 带来了许多优势,但它们也存在一些缺点和挑战。

 

以下是一些缺点:

 

A、复杂性:ZK Rollups 在技术上较为复杂,实施和维护需要专业知识。

 

B、数据可用性:确保重建状态所需的数据在链上可用至关重要。如果数据不可用,可能会影响验证和重建 rollup 状态的能力。此外,zk Rollups 常依赖于链下数据存储,如果数据丢失或无法访问,可能会带来风险。

 

C、计算成本:生成零知识证明(zk-SNARKs)需要大量计算资源,计算成本较高。

 

D、中心化风险:如果证明基础设施由少数实体控制,仍可能存在中心化风险。

 

3)ZK Rollups 的当前使用案例


新的 ZK Rollup 项目每天都在涌现。以下是一些知名的 ZK Rollup 项目:

像 Starkware(开发许可和定制的二层扩展解决方案)、Aztec Network(使用 zkSNARKs 构建区块链加密)、Argent(与 zkSync 集成的非托管钱包)、Immutable X(NFT 发行和交易平台)、Loopring(以太坊上的 zk-rollup 交易和支付协议)等项目都在使用 ZK Rollups。

 

以下是 ZK Rollups 的不同应用方式:

 

  • 在去中心化金融(DeFi)中:帮助用户以更低的 gas 成本进行借代和交易。

 

  • 在去中心化交易平台(DEXs)中:促进更快、更具成本效益的 Token 交换,同时增强隐私保护。

 

  • 在游戏和 NFT 中:增强用户在数字平台上的参与度,支持可扩展的游戏经济和充满活力的 NFT 市场。

 

  • 在支付中:促进快速、低成本的微交易和跨境支付。
     

3、什么是 ZK Compression?


ZK Compression 是由 Light Protocol 和 Helius Labs 创建并推出的原始技术。它通过使用零知识证明和压缩来减少链上成本,从而减少存储在链上的数据量,以及在 Solana 上进行交易时的计算需求。

 

「原始技术」是指低级别的加密算法,作为更高级别加密算法的基础或构建模块使用。要更好地理解 ZK Compression,理解 Solana 的独特架构和面临的挑战至关重要。

 

1)理解 Solana 上的「账户」


与以太坊不同,以太坊中智能合约和数据紧密耦合,Solana 使用一种模型,其中数据存储在单独的「账户」中。这些账户涵盖了从可执行代码到 Token 余额的各种数据。

 

在 Solana 上,一切都是账户。

 

虽然这种模型实现了 Solana 的高性能和并行处理能力,但也伴随着一个代价:验证者必须将所有活跃账户存储在快速访问的内存(RAM)中,这是昂贵的。

 

为了防止滥用并补偿验证者,Solana 实施了一个「租金」系统,用户必须锁定 SOL Token 以保持他们的账户活跃,租金金额与存储数据的大小直接相关。

随着 Solana 的流行,创建和维护这些账户的成本成为扩展的重要障碍,因此需要一种解决方案 — ZK Compression。随着 ZK Compression 的出现,创建新的 Solana 账户的成本预计将显著降低,可能会降低「数量级」。

 

如果某物的成本降低了「数量级」,意味着成本或努力大大减少,通常是相比之前降低了十倍或更多。

 

这意味着,创建和跟踪加密货币余额的 100 个压缩用户账户(也称为 Token 账户),其成本将比创建 100 个常规 Token 账户便宜多达 5000 倍。

这样来理解:压缩意味着将某物挤压到占用更少空间。ZK compression 应用了这一原理,其中的「ZK」表示压缩数据的隐私保护不受影响。

 

简言之,ZK compression 只在链上存储压缩数据的「指纹」(哈希)。这种方法降低了存储成本同时保持数据隐私。

 

与竞争对手所说的相反,ZK compression 不是 Solana 上的第二层链;它是一项升级,旨在改善 Solana 的数据存储,并大幅降低开发者的成本。

 

ZK Compression 在 Solana 上的运作方式是直接面对这一挑战,允许开发者将多个账户状态压缩成单个链上账户。

这是它的工作原理:

 

  • 账户压缩:多个账户状态被递归地合并并哈希成一个紧凑的 32 字节「状态根」。

 

  • 链上与链下存储:状态树是一个二叉 Merkle 树,将数据组织成层次结构,能够有效验证数据的完整性。这个状态根存储在链上,而完整的账户数据则存储在 Solana 分账本的链下。

 

  • 验证证明:简明的零知识证明确认了多个压缩账户在状态树中的存在,维持了恒定的 128 字节大小。当交易需要访问或修改压缩数据时,它提供证明数据与链上状态根相符。 

 

  • 验证:证明在链上验证,如果有效则允许交易继续进行。 关键创新在于使用零知识证明,具体来说是 SNARKs(简洁非交互式知识论证),用于压缩在此过程中使用的 Merkle 证明。

这种压缩将证明大小从可能的几百字节减少到一个恒定的 128 字节,无论压缩的账户数量多少。

 

这种数据大小的显著减少使开发者能够在 Solana 的交易大小限制内工作,同时在单个交易中与多个压缩账户进行交互。

 

2)ZK Compression 对 Solana 区块链的优势


以下是 ZK Compression 对 Solana 生态系统的优势:

 

A、节能高效:减少存储和计算需求降低了操作的能耗。

 

B、可扩展性:Solana 的数据压缩提升了应用程序和交易的处理量,增强了整体可扩展性。

 

保持一层链安全性:与第二层解决方案不同,压缩数据保留了 Solana 主链的全部安全优势。

 

C、一体化环境:开发者可以在单一环境内构建和部署应用程序,无需跨层桥接,简化了开发过程。

 

D、降低成本:通过减少链上存储需求,降低了数据存储成本。

 

E、可编程性:压缩数据与 Solana 的智能合约完全兼容,保留了其实用性和可编程性。

 

3)Solana 区块链上 ZK Compression 的劣势:


A、计算复杂性:生成零知识证明需要大量计算资源,可能导致高昂的成本和较慢的性能。

 

B、实施挑战:开发和实施 ZK Compression 需要专业的密码学知识,存在一定的技术门槛。

 

C、可扩展性问题:尽管 ZK Compression 的目标是提升可扩展性,但计算需求有时可能抵消这些优势,特别是在资源受限的环境中。

 

D、验证开销:验证零知识证明虽然通常比生成它们的过程少消耗资源,仍需要计算资源。在某些情况下,这可能导致延迟,并影响系统的整体效率。

 

E、经济成本:高计算需求会增加能耗和运营成本。这可能使得 ZK Compression 对某些应用经济上不太可行。

 

4、ZK Compression 的使用案例


以下是 ZK Compression 的一些可能使用案例:

 

  • DeFi 应用程序:Solana 上的 DeFi 协议如 Jupiter Exchange 可以利用 ZK Compression 来帮助降低费用并加快交易速度。

 

  • 微支付:在像 Code 这样的微支付解决方案中,ZK Compression 可以通过减少链上存储需求使得在 Solana 网络上的支付更具成本效益和可持续性。

 

  • 去中心化网络:诸如 Helium 这样提供去中心化无线网络的协议,服务数百万用户和设备。ZK Compression 在管理这些网络产生的大量数据时发挥着关键作用,无需复杂的第二层解决方案。

 

  • 游戏:ZK Compression 可以优化像 Honeyland 这样的游戏中的存储成本。所有游戏资产、游戏道具和 NFT 元数据的成本会降低,从而提升整体用户体验。
     

5、比较 ZK Rollups 和 ZK Compression


1)相似之处

 

  • 零知识证明的使用:两种解决方案均利用零知识证明来验证和安全地处理链下交易。

 

  • 提升可扩展性:它们旨在通过减少链上交易处理和数据存储来提升区块链的可扩展性。

 

  • 第二层解决方案:两者都被视为建立在各自区块链之上的第二层扩展解决方案,以增加交易吞吐量并降低成本。


2)差异之处

 

  • 区块链平台:ZK Rollups 在以太坊上运行,而 ZK Compression 实施在 Solana 上。

 

  • 主要焦点:ZK Rollups 专注于聚合和处理链下交易以增强可扩展性,而 ZK Compression 主要通过数据压缩来减少链上存储成本。

 

  • 实施方法:ZK Rollups 将多个交易捆绑成单个证明提交到以太坊的主链,而 ZK Compression 将多个账户状态压缩成 Solana 上的单个链上账户。

 

  • 证明大小:ZK Rollups 使用 zk-SNARKs 或 zk-STARKs 生成简洁的证明,而 ZK Compression 则利用 zk-SNARKs 将 Merkle 证明压缩成常量大小。

 

  • 交易处理:ZK Rollups 在链下处理交易并定期向以太坊提交证明,而 ZK Compression 则通过零知识证明处理链上的压缩账户数据。


3)使用案例


A、ZK Rollups 的当前使用案例

 

  • DeFi 应用:通过降低交易费用和提高交易速度增强去中心化金融协议。

 

  • 去中心化交易平台(DEXs):在保持隐私的同时促进高效的 Token 交换。

 

  • 游戏:支持具有较低成本的可扩展游戏经济和 NFT 市场。

 

  • 支付:实现快速和低成本的微支付和跨境支付。

 

B、ZK Compression 的潜在使用案例

 

  • DeFi 应用:为 Solana 上的 DeFi 协议降低费用并加快交易速度。

 

  • 微支付:通过最小化链上存储使得小额交易更具成本效益和可持续性。

 

  • 去中心化网络:高效管理去中心化无线网络和物联网应用程序产生的大量数据。

 

  • 游戏:优化游戏资产和 NFT 元数据的存储成本,提升用户体验。
     

6、小结


不管你是遭受了 Eth Maximysis,还是像我一样坚定支持 Solana,最重要的是选择适合你当前需求的区块链。

 

我认为,对于需要高安全性并且受益于以太坊成熟生态系统的项目来说,ZK Rollups 是最合适的选择,因为它们提供了一种可靠的方法来扩展以太坊,同时保持其去中心化结构。

 

另一方面,通过 ZK Compression,Solana 可以在不陷入困境的情况下处理更多的交易,即使 SOL 的价格上涨。因此,我认为 ZK Compression 在 Solana 上非常适合那些注重速度、性能和成本效益的应用。

 

Solana 支持高性能、成本效率高的去中心化应用(dApps),具有未来感,因为速度和成本对区块链技术的广泛采用至关重要。

 

总之,无论是 ZK Rollups 还是 ZK Compression,都有助于使交易更快、更便宜,从而更具可扩展性。