区块链,一种协作机制,让全球的参与者能够在不需要第三方介入的情况下,按照一致认同的规则进行合作。
计算机的设计初衷是进行数据存储、数据处理和进行通信。而区块链技术引入了第四个元素:确保上述三个过程(数据存储、处理和通信)能按照约定的方式进行。这种确保机制让不相识的人也能够进行合作,而不需要依赖任何可信的第三方介入,实现了去中心化。
这些额外的确保机制可能是基于经济(如信任博弈理论和奖惩机制)或是基于密码学(信任数学)的,但大部分应用是这两者的结合,即所谓的“密码经济学”。这与目前主要基于声誉的系统形成了明显的对比。
尽管Web3常被描述为“阅读、写入、拥有”,我们认为,鉴于公链的关键优势在于可靠的计算和易于验证这些保证是否得到履行,互联网的第三个阶段更合适的描述应该是“阅读、写入、验证”。如果我们创建了可以买卖和控制的数字产品,拥有权可以视为一种确保计算的特例。然而,许多区块链应用受益于这种确保计算的特性,但并不直接涉及拥有权。比如,在一个完全基于链的游戏中,如果你的健康值是77/100,这个健康值是你拥有的吗,还是仅仅因为遵循了大家共同认可的规则而在链上得以执行的?我们倾向于后者,但Chris Dixon可能有不同的看法。
Web3= “读、写、验证”。
尽管区块链技术备受期待,但其分散化的特点也带来了效率低下和操作复杂的问题。大多数区块链为确保交易的正确性需要节点重复执行交易验证,这种方法不仅浪费资源,还与高效的集中式处理形成对比。区块链的发展目标是尽可能地提高效率,使其接近集中化处理的水平。
尽管区块链的基础设施在过去十年有了显著改进,但距离能够支持互联网规模的处理还有很长的路要走。我们观察到,无论是在表达性还是难度方面,区块链都面临着权衡选择。模块化设计可以加快这种权衡的实验过程,而零知识证明技术则能进一步扩展这些权衡的界限。
模块化是指系统的不同组件可以被独立出来并重新组合的能力。这种设计通过快速反馈和低门槛进入特性,促进了快速的试验和专业化发展。模块化与一体化的选择不是非黑即白,而是需要在不同程度的解耦和集成间寻找平衡。
零知识证明(ZKP)允许一方(证明者)向另一方(验证者)证明某信息的真实性,而无需透露除了验证信息本身之外的任何细节。这种方式不仅提高了系统的可扩展性和效率,还增强了隐私保护,因为它减少了重复执行的需要。此外,ZKP还通过提供强有力的技术保证,增强了系统的安全性和可靠性,推动了技术的进步和应用的广泛性。
我们认为,模块化和对所有事物的零知识证明化(简称“ZK化”)是两个未来将持续加速发展的趋势。这两个趋势各自为领域内的探索提供了独特的视角,但我们更加关注它们的交集部分。我们关注的两个主要问题是:
然而,在讨论这些问题之前,我们需要了解 2024 年模块化堆栈的最新情况。
我们过去常用的模块化技术堆图示,包含四个基本组件(执行、数据发布、共识、结算),虽然作为一个基础思维模型很有帮助,但考虑到模块化领域的快速发展,我们认为这种表示方式已不再足够。随着进一步的解构,出现了之前被认为是更大模块一部分的新组件,同时也产生了新的依赖关系以及不同组件之间需要的安全互操作性(后文将进一步讨论)。鉴于这一领域发展的速度,要全面跟进堆栈各层面的创新变得相当困难。
早期对web3技术堆的探索尝试包括Kyle Samani(Multicoin)的工作,他的研究最初发布于2018年年,并在2019年进行了更新。他的研究内容从去中心化的最后一英里互联网接入(比如Helium)到最终用户的密钥管理等方面都有涵盖。虽然其背后的理念可以重新利用,但某些部分,如证明和验证等,完全缺失。
基于这些考虑,我们尝试构建了一个关于2024年模块化技术堆的更新视图,对现有的四部分模块化技术堆进行了扩展。我们按组件而非功能进行了分类,这意味着比如P2P网络被归入到共识组件中,而不是作为独立组件分离出来,主要是因为围绕它建立协议相当困难。
随着我们对模块化技术栈的理解逐步深入,现在是时候探讨一个核心问题了:零知识证明(ZK)技术已经影响了技术栈的哪些部分,以及它有潜力解决哪些现有的问题,特别是那些可以通过零知识证明来避免重复执行操作或增强隐私保护的问题。在我们深入分析每个单独组件之前,这里先提供一个我们研究的概要。
目前,区块链用户面临着需要同时操作多个链条、钱包和界面的复杂情况,这不仅麻烦而且阻碍了区块链的广泛应用。用户操作的简化是一个广泛的概念,旨在将这种复杂性隐藏起来,让用户只需通过一个界面(比如一个特定的应用或钱包)进行交互,复杂的操作都在后台完成。基础层面的简化尝试包括:
在区块链中,所有交易都需要先进行排序才能被打包进区块。排序的方法有很多,例如:按照交易给出的手续费高低排序(手续费高的优先处理)、按交易提交的时间顺序排序(先提交的先处理),或是给私有交易内存池中的交易优先权等。
关于谁来负责这一排序工作,模块化架构提供了多种可能性,包括Rollup的排序器(可以是中心化或去中心化的)、基于L1的排序以及共享排序网络(一个由多个Rollup共用的去中心化排序器网络)。这些方法各有不同的信任假设和扩展能力。在实际应用中,交易的排序和打包过程有时也会由协议外的专业机构(如区块建造者)来执行,这些机构专门负责创建和优化区块内容。
执行层负责智能合约的运行和状态的更新。使用zkVM技术的执行层,不仅返回运算结果,还能证实状态转换的正确性。这意味着网络的其他参与者无需重新执行交易,只需通过验证相关的证明就能确认交易的正确性。
使用可证明的执行还有一个额外的好处:可以进行更复杂的计算,因为在链外计算时不会受到链上资源限制的影响。这开启了一扇大门,允许在区块链上运行那些计算密集的新应用,而这些应用都是建立在可靠计算的基础之上的。
在大多数应用中,从区块链读取数据的过程,即数据查询,扮演着至关重要的角色。尽管近年来的讨论和改进大多集中在提升写入(即执行操作)的能力上,但由于读取和写入之间的不平衡性(特别是在去中心化环境中),提升读取能力实际上更加重要。不同区块链的读/写比例各不相同,但根据Sig基于两年实际数据的估计,Solana节点上超过96%的调用是读取操作——读/写比例达到了24:1。
提升读取能力不仅包括通过专用的验证器客户端(例如Solana的Sig)来增加读取速度(即每秒更多的读取次数),还包括实现更复杂的查询功能(比如结合读取和计算),例如通过使用协处理器来完成。
另一个考虑点是如何去中心化数据查询方式。目前,区块链上的大部分数据查询请求都依赖于受信任的第三方(基于声誉),如RPC节点(Infura)和索引器(Dune)。一些更去中心化的选择包括The Graph和存储证明运营商(这些也可以进行验证)。此外,还有一些尝试建立去中心化RPC网络的努力,比如 Infura DIN 或者 Lava Network ((除了提供去中心化RPC服务,Lava还计划未来提供更多的数据访问服务)。
随着越来越多应用引入零知识证明(ZKPs),证明和验证过程已迅速成为模块化体系中不可或缺的一环。但目前,大部分证明基础架构仍旧采用有权限和集中化的形式,很多应用都依赖于单一的证明提供者。
尽管集中化的方案在复杂性上较为简单,但是去中心化证明架构,并将其作为模块化体系中的一个独立部分,能带来多重益处。最关键的一点是它能提供活性保证,这对于那些需要频繁生成证明的应用来说至关重要。用户还能因为竞争增加和分摊给多个证明提供者的工作量而享受到更强的抗审查性和更低的费用。
我们认为,面向通用目的的证明者网络(多应用、多证明者)相比于单一应用证明者网络(单一应用、多证明者)更为优越,因为它们能更高效地利用现有硬件并且对证明者来说更简单。更高的硬件利用率也意味着用户能享受到更低的费用,因为证明者无需通过提高费用来弥补冗余(尽管仍需覆盖固定成本)。
Figment Capital 对当前的证明供应链状况进行了详细的概述,包括证明生成和证明聚合两个部分(证明聚合本质上也是证明生成,只不过是以两个证明作为输入,而不是执行路径)。
来源: Figment Capital
数据发布(DP)的目标是确保数据在短时间内(1-2周)不仅可用,而且容易获取。这一点对于确保系统的安全性(例如,乐观rollups需要在挑战期(1-2周)通过重新执行来验证交易的正确执行)和活性(比如,即便使用了有效性证明,有时仍需底层交易数据来确认资产所有权,处理紧急撤离、强制交易或核对输入输出是否一致)都非常关键。对于使用者(比如zk-桥和rollups),这涉及到一次性费用,用于覆盖短期内存储交易和状态信息的成本,直到数据被清理。需要注意的是,数据发布网络并不适用于长期存储数据(对于长期存储的方案,请参考下一节)。
Celestia 率先推出了其主网,成为首个替代DP层(10月31日),但随着Avail, EigenDA,和Near DA 等预计在2024年推出,未来将有更多选择。此外,以太坊的EIP 4844 升级增强了其数据发布能力(同时为blob存储创造了独立的费用市场),并为全面实施dank-sharding奠定了基础。DP功能也在向其他生态系统扩展,例如 @nubit_org/riema-secures-angel-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit 致力于在比特币上实现原生DP。
很多DP方案不仅仅提供基本的数据发布服务,它们还包括为主权rollups提供共享安全性(如Celestia 和Avail)或增强rollups间的互操作性(如Avail的Nexus)。还有项目(如(Domicon 和 Zero Gravity)同时提供数据发布和长期状态存储服务,这是一个非常有吸引力的方案。这也展示了在模块化体系中两个组件的再次整合趋势,未来我们可能会看到更多这样的尝试,无论是进一步分解还是重新整合。
长期存储历史数据主要用于数据同步和响应查询请求。然而,不是每个节点都能存储全部数据,多数节点会删除旧数据以维持硬件需求在合理范围内。我们通常依赖专门的节点(如归档节点和索引器)来保存所有历史数据,并按需为用户提供。
此外,像 Filecoin 或 Arweave这样的去中心化存储提供商,提供了成本效益较高的长期存储解决方案。尽管大部分区块链没有固定的归档存储流程,这些去中心化存储协议是存储历史数据并通过其网络内置激励措施增加数据冗余的理想选择。
由于区块链技术基于分布式点对点系统,不存在一个被普遍信任的第三方来定义所谓的全球性真理。相反,网络中的节点通过一种被称为“共识”的机制来共同认定当前的真实情况(即确定哪一个区块是正确的)。基于权益证明(PoS)的共识方法大致可分为两类:一是基于拜占庭容错(BFT)的方法,即一群验证者通过共识来决定最终状态;二是基于链的方法,即通过分叉选择规则来事后决定最终状态。尽管大多数现行的PoS共识机制都是基于BFT的,但Cardano采用的是最长链策略。同时,基于有向无环图(DAG)的共识机制,如Narwhal-Bullshark,也在Aleo、Aptos和Sui等平台上得到了某种程度的应用,并引起了人们的广泛关注。
共识机制是模块化系统中多个不同组件的核心,包括共享序列器、去中心化证明和基于区块链的数据发布网络(与基于委员会的如EigenDA不同)。
在区块链中,结算过程可视为验证事务正确性和解决争议的最终环节,相当于法律体系中的最高法院。一项交易被认为是最终性的,当它达到不可逆转的状态时(或在使用概率性最终性时,达到难以逆转的程度)。达到最终性的时间依赖于所用的结算层,而这层的性能则依赖于具体采用的最终性规则和区块时间。
特别是在跨rollup交互中,最终性的延迟成问题,rollup在能够确认交易前需要等待以太坊的确认(乐观rollup需要7天,有效性rollup需要12分钟加上验证时间)。这降低了用户体验。为解决这一问题,业界正在尝试采用具有一定安全级别的预确认方案,如Polygon AggLayer 或者zkSync HyperBridge等生态系统特定解决方案,以及Near的快速最终确定层这类通用解决方案,后者通过利用Near’s Fast Finality Layer的经济安全性来连接不同的rollup生态系统。此外,还有使用EigenLayer进行“软确认”的原生rollup桥梁,以避免等待完全最终确定。
安全性涉及到保障措施的坚固程度,是区块链价值提案中至关重要的一环。然而,建立起加密经济的安全机制并非易事 - 它提高了进入门槛,对那些急需安全保障的应用(如各类中间件和其他第一层协议)构成了创新的阻碍。
共享安全的概念是利用现有的权益证明(PoS)网络的经济安全基础,并让它面临额外的风险(即处罚的条件),而非让每个单独的组件自己尝试建立安全机制。虽然在工作量证明(PoW)网络中也进行过类似的尝试(合并挖矿.)),但由于激励机制不一致,矿工更容易合谋利用协议(由于工作在现实世界中进行,即利用计算力挖矿,因此更难以惩罚不良行为)。与之相比,PoS的安全机制更为灵活,可以被其他协议所利用,因为它同时具有正面(质押收益)和负面(削减)激励。
基于共享安全理念构建的协议包括:
在一个由多条区块链构成的世界中,如何安全高效地实现互操作性一直是个棘手问题,这从价值28亿美元的跨链桥攻击事件中可见一斑。在模块化系统中,互操作性尤为关键——它不仅需要实现链与链之间的通信,还要让区块链内部的不同组件(如数据层和结算层)能够相互协作。因此,不可能再像在传统集成区块链中那样,仅通过运行一个完整节点或验证一个共识证明来实现。这意味着在系统中引入了更多的复杂元素。
互操作性涵盖了代币跨链和更广泛的跨链消息传递。目前有多种解决方案,各有其在安全性、响应速度和成本方面的权衡。同时满足这三方面非常难,通常需要牺牲其中一方面。此外,不同链间的标准差异也使得在新链上的部署变得更加复杂。
目前对轻客户端(轻节点)的不同类型定义尚不明确,但Fluent & Modular Media的联合创始人Dino的文章对此进行了很好的介绍。当前大部分轻客户端仅验证共识,但理想状态下,我们希望有能同时验证执行和数据可用性的轻客户端,减少依赖度,接近全节点的安全性,同时又不需要高昂的硬件支持。
设想一下,如果生成零知识证明(ZKPs)的速度极快(几乎达到光速)且成本极低(几乎为零),那么最终的局面会是怎样的?也就是说,零知识证明何时会彻底改变模块化技术架构?
总的来说,我们认为在这种情况下会有两个显著的变化:
大部分应用将依赖零知识证明提供的加密保障,而非经济安全:当生成证明的时间和成本不再是问题时,我们认为大多数应用会选择依赖ZKPs来获得更强的安全保障。当然,这也意味着需要在易用性和开发者友好度上进行改进,以便构建零知识证明应用,不过这正是多个团队正在努力解决的问题。
还有一个关于隐私(或信息流管理)的复杂条件,零知识证明可以被用于一些客户端证明的隐私应用,这正是像Aleo、Aztec或Polygon Miden等平台正在开发的功能,但要实现广泛的隐私保护,还需要依赖于多方计算(MPC)和全同态加密(FHE)等技术的进步,这可能是未来博客文章的一个话题。
如果我们的预测错误,未来既不采用模块化技术架构也不普遍应用零知识证明技术,会怎样呢?我们的观点面临的一些潜在风险包括:
随着链的数量不断增加,用户和开发者都面临挑战。用户需要在多个链(可能还要管理多个钱包)上管理资金,而应用开发者则面临稳定性和可预测性较低的问题,这使得他们很难决定应该在哪个链上进行开发。他们还必须考虑到状态和流动性的碎片化问题。这一点在当前尤为突出,因为我们仍在探索哪些组件适合解耦,哪些应重新耦合。我们认为,简化用户操作和提供安全高效的互操作解决方案是解决这一问题的关键。
一个无法避免的问题是,目前生成零知识证明的过程既耗时又成本高昂。对于当前许多应用来说,信任执行环境(TEEs)针对隐私保护的解决方案,或者是基于乐观/加密经济的安全方案在成本上更为合理。
不过,针对零知识证明的软件优化和硬件加速方面正在进行大量的工作。通过证明聚合,即将成本分散到多个参与方,可以进一步降低验证成本,从而降低每位用户的成本。此外,还有可能对底层技术进行调整,以更好地适应零知识证明的验证。但是,零知识证明在硬件加速方面面临的一个挑战是,证明系统的快速进化使得专用硬件(ASICs)的开发变得复杂,因为一旦底层证明系统的标准发生变化,这些硬件很快就会过时。
Ingonyama尝试通过一个叫做ZK分数的比较指标来衡量证明性能,该指标基于运行计算的操作成本(OPEX),并追踪每瓦特的模数乘法操作次数(MMOPS)。想要深入了解这一主题,我们推荐阅读 @Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic和 @ingonyama/revisiting-paradigms-hardware-acceleration-for-zero-knowledge-proofs-5dffacdc24b4">Ingonyama的博客,以及Wei Dai的演讲。
零知识证明技术只能用来保护个人的隐私状态,而无法用于需要多方在加密数据上进行计算的共享状态(例如一个私有的Uniswap)。要实现完全的隐私保护,还需要全同态加密(FHE)和多方计算(MPC)技术的支持,但这些技术在成本和性能上还需要大幅提升才能广泛应用。尽管如此,对于那些不需要共享私有状态的特定场景,如身份验证或支付,零知识证明仍然是一个有用的工具。不是所有的问题都必须用同一种方式来解决。
我们目前的情况如何呢?尽管我们正在取得一天天的进展,但仍有大量工作待完成。最迫切需要解决的问题是,如何在保持速度和成本效率的同时,确保不同模块化组件之间能够安全地交换价值和信息,并且如何让这一切对最终用户透明,避免他们需要处理跨链操作、钱包切换等技术细节。
目前我们还处于探索阶段,但随着我们逐渐明确每个应用场景中最佳平衡点的位置,局势将逐步稳定。这将为形成标准(无论是非正式的还是正式的)提供机会,为在这些区块链上构建的开发者提供更多稳定性。
虽然本文特别聚焦于零知识证明,我们也对现代密码学解决方案(包括ZKPs、多方计算(MPC)、全同态加密(FHE)和可信执行环境(TEE))如何协同工作表示出越来越多的兴趣——这是我们已经开始见证的现象。
虽然这篇文章特别关注 ZKP,但我们也越来越感兴趣现代密码学解决方案(ZKP、MPC、FHE 和 TEE)最终将如何一起发挥作用 - 我们已经看到了这一点。
感谢您的阅读!
区块链,一种协作机制,让全球的参与者能够在不需要第三方介入的情况下,按照一致认同的规则进行合作。
计算机的设计初衷是进行数据存储、数据处理和进行通信。而区块链技术引入了第四个元素:确保上述三个过程(数据存储、处理和通信)能按照约定的方式进行。这种确保机制让不相识的人也能够进行合作,而不需要依赖任何可信的第三方介入,实现了去中心化。
这些额外的确保机制可能是基于经济(如信任博弈理论和奖惩机制)或是基于密码学(信任数学)的,但大部分应用是这两者的结合,即所谓的“密码经济学”。这与目前主要基于声誉的系统形成了明显的对比。
尽管Web3常被描述为“阅读、写入、拥有”,我们认为,鉴于公链的关键优势在于可靠的计算和易于验证这些保证是否得到履行,互联网的第三个阶段更合适的描述应该是“阅读、写入、验证”。如果我们创建了可以买卖和控制的数字产品,拥有权可以视为一种确保计算的特例。然而,许多区块链应用受益于这种确保计算的特性,但并不直接涉及拥有权。比如,在一个完全基于链的游戏中,如果你的健康值是77/100,这个健康值是你拥有的吗,还是仅仅因为遵循了大家共同认可的规则而在链上得以执行的?我们倾向于后者,但Chris Dixon可能有不同的看法。
Web3= “读、写、验证”。
尽管区块链技术备受期待,但其分散化的特点也带来了效率低下和操作复杂的问题。大多数区块链为确保交易的正确性需要节点重复执行交易验证,这种方法不仅浪费资源,还与高效的集中式处理形成对比。区块链的发展目标是尽可能地提高效率,使其接近集中化处理的水平。
尽管区块链的基础设施在过去十年有了显著改进,但距离能够支持互联网规模的处理还有很长的路要走。我们观察到,无论是在表达性还是难度方面,区块链都面临着权衡选择。模块化设计可以加快这种权衡的实验过程,而零知识证明技术则能进一步扩展这些权衡的界限。
模块化是指系统的不同组件可以被独立出来并重新组合的能力。这种设计通过快速反馈和低门槛进入特性,促进了快速的试验和专业化发展。模块化与一体化的选择不是非黑即白,而是需要在不同程度的解耦和集成间寻找平衡。
零知识证明(ZKP)允许一方(证明者)向另一方(验证者)证明某信息的真实性,而无需透露除了验证信息本身之外的任何细节。这种方式不仅提高了系统的可扩展性和效率,还增强了隐私保护,因为它减少了重复执行的需要。此外,ZKP还通过提供强有力的技术保证,增强了系统的安全性和可靠性,推动了技术的进步和应用的广泛性。
我们认为,模块化和对所有事物的零知识证明化(简称“ZK化”)是两个未来将持续加速发展的趋势。这两个趋势各自为领域内的探索提供了独特的视角,但我们更加关注它们的交集部分。我们关注的两个主要问题是:
然而,在讨论这些问题之前,我们需要了解 2024 年模块化堆栈的最新情况。
我们过去常用的模块化技术堆图示,包含四个基本组件(执行、数据发布、共识、结算),虽然作为一个基础思维模型很有帮助,但考虑到模块化领域的快速发展,我们认为这种表示方式已不再足够。随着进一步的解构,出现了之前被认为是更大模块一部分的新组件,同时也产生了新的依赖关系以及不同组件之间需要的安全互操作性(后文将进一步讨论)。鉴于这一领域发展的速度,要全面跟进堆栈各层面的创新变得相当困难。
早期对web3技术堆的探索尝试包括Kyle Samani(Multicoin)的工作,他的研究最初发布于2018年年,并在2019年进行了更新。他的研究内容从去中心化的最后一英里互联网接入(比如Helium)到最终用户的密钥管理等方面都有涵盖。虽然其背后的理念可以重新利用,但某些部分,如证明和验证等,完全缺失。
基于这些考虑,我们尝试构建了一个关于2024年模块化技术堆的更新视图,对现有的四部分模块化技术堆进行了扩展。我们按组件而非功能进行了分类,这意味着比如P2P网络被归入到共识组件中,而不是作为独立组件分离出来,主要是因为围绕它建立协议相当困难。
随着我们对模块化技术栈的理解逐步深入,现在是时候探讨一个核心问题了:零知识证明(ZK)技术已经影响了技术栈的哪些部分,以及它有潜力解决哪些现有的问题,特别是那些可以通过零知识证明来避免重复执行操作或增强隐私保护的问题。在我们深入分析每个单独组件之前,这里先提供一个我们研究的概要。
目前,区块链用户面临着需要同时操作多个链条、钱包和界面的复杂情况,这不仅麻烦而且阻碍了区块链的广泛应用。用户操作的简化是一个广泛的概念,旨在将这种复杂性隐藏起来,让用户只需通过一个界面(比如一个特定的应用或钱包)进行交互,复杂的操作都在后台完成。基础层面的简化尝试包括:
在区块链中,所有交易都需要先进行排序才能被打包进区块。排序的方法有很多,例如:按照交易给出的手续费高低排序(手续费高的优先处理)、按交易提交的时间顺序排序(先提交的先处理),或是给私有交易内存池中的交易优先权等。
关于谁来负责这一排序工作,模块化架构提供了多种可能性,包括Rollup的排序器(可以是中心化或去中心化的)、基于L1的排序以及共享排序网络(一个由多个Rollup共用的去中心化排序器网络)。这些方法各有不同的信任假设和扩展能力。在实际应用中,交易的排序和打包过程有时也会由协议外的专业机构(如区块建造者)来执行,这些机构专门负责创建和优化区块内容。
执行层负责智能合约的运行和状态的更新。使用zkVM技术的执行层,不仅返回运算结果,还能证实状态转换的正确性。这意味着网络的其他参与者无需重新执行交易,只需通过验证相关的证明就能确认交易的正确性。
使用可证明的执行还有一个额外的好处:可以进行更复杂的计算,因为在链外计算时不会受到链上资源限制的影响。这开启了一扇大门,允许在区块链上运行那些计算密集的新应用,而这些应用都是建立在可靠计算的基础之上的。
在大多数应用中,从区块链读取数据的过程,即数据查询,扮演着至关重要的角色。尽管近年来的讨论和改进大多集中在提升写入(即执行操作)的能力上,但由于读取和写入之间的不平衡性(特别是在去中心化环境中),提升读取能力实际上更加重要。不同区块链的读/写比例各不相同,但根据Sig基于两年实际数据的估计,Solana节点上超过96%的调用是读取操作——读/写比例达到了24:1。
提升读取能力不仅包括通过专用的验证器客户端(例如Solana的Sig)来增加读取速度(即每秒更多的读取次数),还包括实现更复杂的查询功能(比如结合读取和计算),例如通过使用协处理器来完成。
另一个考虑点是如何去中心化数据查询方式。目前,区块链上的大部分数据查询请求都依赖于受信任的第三方(基于声誉),如RPC节点(Infura)和索引器(Dune)。一些更去中心化的选择包括The Graph和存储证明运营商(这些也可以进行验证)。此外,还有一些尝试建立去中心化RPC网络的努力,比如 Infura DIN 或者 Lava Network ((除了提供去中心化RPC服务,Lava还计划未来提供更多的数据访问服务)。
随着越来越多应用引入零知识证明(ZKPs),证明和验证过程已迅速成为模块化体系中不可或缺的一环。但目前,大部分证明基础架构仍旧采用有权限和集中化的形式,很多应用都依赖于单一的证明提供者。
尽管集中化的方案在复杂性上较为简单,但是去中心化证明架构,并将其作为模块化体系中的一个独立部分,能带来多重益处。最关键的一点是它能提供活性保证,这对于那些需要频繁生成证明的应用来说至关重要。用户还能因为竞争增加和分摊给多个证明提供者的工作量而享受到更强的抗审查性和更低的费用。
我们认为,面向通用目的的证明者网络(多应用、多证明者)相比于单一应用证明者网络(单一应用、多证明者)更为优越,因为它们能更高效地利用现有硬件并且对证明者来说更简单。更高的硬件利用率也意味着用户能享受到更低的费用,因为证明者无需通过提高费用来弥补冗余(尽管仍需覆盖固定成本)。
Figment Capital 对当前的证明供应链状况进行了详细的概述,包括证明生成和证明聚合两个部分(证明聚合本质上也是证明生成,只不过是以两个证明作为输入,而不是执行路径)。
来源: Figment Capital
数据发布(DP)的目标是确保数据在短时间内(1-2周)不仅可用,而且容易获取。这一点对于确保系统的安全性(例如,乐观rollups需要在挑战期(1-2周)通过重新执行来验证交易的正确执行)和活性(比如,即便使用了有效性证明,有时仍需底层交易数据来确认资产所有权,处理紧急撤离、强制交易或核对输入输出是否一致)都非常关键。对于使用者(比如zk-桥和rollups),这涉及到一次性费用,用于覆盖短期内存储交易和状态信息的成本,直到数据被清理。需要注意的是,数据发布网络并不适用于长期存储数据(对于长期存储的方案,请参考下一节)。
Celestia 率先推出了其主网,成为首个替代DP层(10月31日),但随着Avail, EigenDA,和Near DA 等预计在2024年推出,未来将有更多选择。此外,以太坊的EIP 4844 升级增强了其数据发布能力(同时为blob存储创造了独立的费用市场),并为全面实施dank-sharding奠定了基础。DP功能也在向其他生态系统扩展,例如 @nubit_org/riema-secures-angel-investment-for-launching-the-first-bitcoin-native-data-availability-layer-49ccf0487380">Nubit 致力于在比特币上实现原生DP。
很多DP方案不仅仅提供基本的数据发布服务,它们还包括为主权rollups提供共享安全性(如Celestia 和Avail)或增强rollups间的互操作性(如Avail的Nexus)。还有项目(如(Domicon 和 Zero Gravity)同时提供数据发布和长期状态存储服务,这是一个非常有吸引力的方案。这也展示了在模块化体系中两个组件的再次整合趋势,未来我们可能会看到更多这样的尝试,无论是进一步分解还是重新整合。
长期存储历史数据主要用于数据同步和响应查询请求。然而,不是每个节点都能存储全部数据,多数节点会删除旧数据以维持硬件需求在合理范围内。我们通常依赖专门的节点(如归档节点和索引器)来保存所有历史数据,并按需为用户提供。
此外,像 Filecoin 或 Arweave这样的去中心化存储提供商,提供了成本效益较高的长期存储解决方案。尽管大部分区块链没有固定的归档存储流程,这些去中心化存储协议是存储历史数据并通过其网络内置激励措施增加数据冗余的理想选择。
由于区块链技术基于分布式点对点系统,不存在一个被普遍信任的第三方来定义所谓的全球性真理。相反,网络中的节点通过一种被称为“共识”的机制来共同认定当前的真实情况(即确定哪一个区块是正确的)。基于权益证明(PoS)的共识方法大致可分为两类:一是基于拜占庭容错(BFT)的方法,即一群验证者通过共识来决定最终状态;二是基于链的方法,即通过分叉选择规则来事后决定最终状态。尽管大多数现行的PoS共识机制都是基于BFT的,但Cardano采用的是最长链策略。同时,基于有向无环图(DAG)的共识机制,如Narwhal-Bullshark,也在Aleo、Aptos和Sui等平台上得到了某种程度的应用,并引起了人们的广泛关注。
共识机制是模块化系统中多个不同组件的核心,包括共享序列器、去中心化证明和基于区块链的数据发布网络(与基于委员会的如EigenDA不同)。
在区块链中,结算过程可视为验证事务正确性和解决争议的最终环节,相当于法律体系中的最高法院。一项交易被认为是最终性的,当它达到不可逆转的状态时(或在使用概率性最终性时,达到难以逆转的程度)。达到最终性的时间依赖于所用的结算层,而这层的性能则依赖于具体采用的最终性规则和区块时间。
特别是在跨rollup交互中,最终性的延迟成问题,rollup在能够确认交易前需要等待以太坊的确认(乐观rollup需要7天,有效性rollup需要12分钟加上验证时间)。这降低了用户体验。为解决这一问题,业界正在尝试采用具有一定安全级别的预确认方案,如Polygon AggLayer 或者zkSync HyperBridge等生态系统特定解决方案,以及Near的快速最终确定层这类通用解决方案,后者通过利用Near’s Fast Finality Layer的经济安全性来连接不同的rollup生态系统。此外,还有使用EigenLayer进行“软确认”的原生rollup桥梁,以避免等待完全最终确定。
安全性涉及到保障措施的坚固程度,是区块链价值提案中至关重要的一环。然而,建立起加密经济的安全机制并非易事 - 它提高了进入门槛,对那些急需安全保障的应用(如各类中间件和其他第一层协议)构成了创新的阻碍。
共享安全的概念是利用现有的权益证明(PoS)网络的经济安全基础,并让它面临额外的风险(即处罚的条件),而非让每个单独的组件自己尝试建立安全机制。虽然在工作量证明(PoW)网络中也进行过类似的尝试(合并挖矿.)),但由于激励机制不一致,矿工更容易合谋利用协议(由于工作在现实世界中进行,即利用计算力挖矿,因此更难以惩罚不良行为)。与之相比,PoS的安全机制更为灵活,可以被其他协议所利用,因为它同时具有正面(质押收益)和负面(削减)激励。
基于共享安全理念构建的协议包括:
在一个由多条区块链构成的世界中,如何安全高效地实现互操作性一直是个棘手问题,这从价值28亿美元的跨链桥攻击事件中可见一斑。在模块化系统中,互操作性尤为关键——它不仅需要实现链与链之间的通信,还要让区块链内部的不同组件(如数据层和结算层)能够相互协作。因此,不可能再像在传统集成区块链中那样,仅通过运行一个完整节点或验证一个共识证明来实现。这意味着在系统中引入了更多的复杂元素。
互操作性涵盖了代币跨链和更广泛的跨链消息传递。目前有多种解决方案,各有其在安全性、响应速度和成本方面的权衡。同时满足这三方面非常难,通常需要牺牲其中一方面。此外,不同链间的标准差异也使得在新链上的部署变得更加复杂。
目前对轻客户端(轻节点)的不同类型定义尚不明确,但Fluent & Modular Media的联合创始人Dino的文章对此进行了很好的介绍。当前大部分轻客户端仅验证共识,但理想状态下,我们希望有能同时验证执行和数据可用性的轻客户端,减少依赖度,接近全节点的安全性,同时又不需要高昂的硬件支持。
设想一下,如果生成零知识证明(ZKPs)的速度极快(几乎达到光速)且成本极低(几乎为零),那么最终的局面会是怎样的?也就是说,零知识证明何时会彻底改变模块化技术架构?
总的来说,我们认为在这种情况下会有两个显著的变化:
大部分应用将依赖零知识证明提供的加密保障,而非经济安全:当生成证明的时间和成本不再是问题时,我们认为大多数应用会选择依赖ZKPs来获得更强的安全保障。当然,这也意味着需要在易用性和开发者友好度上进行改进,以便构建零知识证明应用,不过这正是多个团队正在努力解决的问题。
还有一个关于隐私(或信息流管理)的复杂条件,零知识证明可以被用于一些客户端证明的隐私应用,这正是像Aleo、Aztec或Polygon Miden等平台正在开发的功能,但要实现广泛的隐私保护,还需要依赖于多方计算(MPC)和全同态加密(FHE)等技术的进步,这可能是未来博客文章的一个话题。
如果我们的预测错误,未来既不采用模块化技术架构也不普遍应用零知识证明技术,会怎样呢?我们的观点面临的一些潜在风险包括:
随着链的数量不断增加,用户和开发者都面临挑战。用户需要在多个链(可能还要管理多个钱包)上管理资金,而应用开发者则面临稳定性和可预测性较低的问题,这使得他们很难决定应该在哪个链上进行开发。他们还必须考虑到状态和流动性的碎片化问题。这一点在当前尤为突出,因为我们仍在探索哪些组件适合解耦,哪些应重新耦合。我们认为,简化用户操作和提供安全高效的互操作解决方案是解决这一问题的关键。
一个无法避免的问题是,目前生成零知识证明的过程既耗时又成本高昂。对于当前许多应用来说,信任执行环境(TEEs)针对隐私保护的解决方案,或者是基于乐观/加密经济的安全方案在成本上更为合理。
不过,针对零知识证明的软件优化和硬件加速方面正在进行大量的工作。通过证明聚合,即将成本分散到多个参与方,可以进一步降低验证成本,从而降低每位用户的成本。此外,还有可能对底层技术进行调整,以更好地适应零知识证明的验证。但是,零知识证明在硬件加速方面面临的一个挑战是,证明系统的快速进化使得专用硬件(ASICs)的开发变得复杂,因为一旦底层证明系统的标准发生变化,这些硬件很快就会过时。
Ingonyama尝试通过一个叫做ZK分数的比较指标来衡量证明性能,该指标基于运行计算的操作成本(OPEX),并追踪每瓦特的模数乘法操作次数(MMOPS)。想要深入了解这一主题,我们推荐阅读 @Cysic/BJQcpVbXn?ref=blog.succinct.xyz">Cysic和 @ingonyama/revisiting-paradigms-hardware-acceleration-for-zero-knowledge-proofs-5dffacdc24b4">Ingonyama的博客,以及Wei Dai的演讲。
零知识证明技术只能用来保护个人的隐私状态,而无法用于需要多方在加密数据上进行计算的共享状态(例如一个私有的Uniswap)。要实现完全的隐私保护,还需要全同态加密(FHE)和多方计算(MPC)技术的支持,但这些技术在成本和性能上还需要大幅提升才能广泛应用。尽管如此,对于那些不需要共享私有状态的特定场景,如身份验证或支付,零知识证明仍然是一个有用的工具。不是所有的问题都必须用同一种方式来解决。
我们目前的情况如何呢?尽管我们正在取得一天天的进展,但仍有大量工作待完成。最迫切需要解决的问题是,如何在保持速度和成本效率的同时,确保不同模块化组件之间能够安全地交换价值和信息,并且如何让这一切对最终用户透明,避免他们需要处理跨链操作、钱包切换等技术细节。
目前我们还处于探索阶段,但随着我们逐渐明确每个应用场景中最佳平衡点的位置,局势将逐步稳定。这将为形成标准(无论是非正式的还是正式的)提供机会,为在这些区块链上构建的开发者提供更多稳定性。
虽然本文特别聚焦于零知识证明,我们也对现代密码学解决方案(包括ZKPs、多方计算(MPC)、全同态加密(FHE)和可信执行环境(TEE))如何协同工作表示出越来越多的兴趣——这是我们已经开始见证的现象。
虽然这篇文章特别关注 ZKP,但我们也越来越感兴趣现代密码学解决方案(ZKP、MPC、FHE 和 TEE)最终将如何一起发挥作用 - 我们已经看到了这一点。
感谢您的阅读!