
在关于扩展以太坊的讨论中,“zk-rollup”这个术语常常被使用,好像它代表了一个统一的概念。人们谈论零知识证明,就像这个概念本身解释了系统一样。但zk-rollup并不仅仅由加密证明的概念定义。它的定义在于计算如何变得可证明,状态转移如何被编码,以及这些证明如何以保持终局意义的方式锚定回以太坊。在Linea的案例中,理解系统需要理解证明者,因为证明者是将实际执行转化为以太坊可以简洁验证的部分架构。如果证明者强大,rollup优雅地继承了以太坊的信任模型。如果证明者较弱,rollup则只是一个更便宜的并行链。
Linea的设计并不试图重新定义以太坊。相反,它是对以太坊的扩展。rollup在一个模拟以太坊虚拟机的环境中执行交易,产生的结果表现出与开发者所期望的相同方式。但不是直接在以太坊上记录每个交易,@Linea.eth 产生一个加密证明,表明执行是有效的。这个证明随后由以太坊上的智能合约进行验证。主要优势在于,验证证明的成本远低于重新执行交易的成本。以太坊不需要重新执行任何东西。它只需验证证明是否对应于正确的执行痕迹。
执行和验证之间的这种关系是Linea架构的核心。链本身执行完整的计算。以太坊确认计算是正确的。两者之间的连接是证明者系统。证明者分析rollup区块的整个执行痕迹,将其分解为结构化组件,并生成一个证明,表明这些组件共同满足以太坊执行模型的规则。rollup只需执行一次工作。以太坊只需检查一次证明。信任面保持不变。
然而,这个过程并不简单。以太坊虚拟机是为灵活和动态的计算而设计的。存在跳转、内存扩展、存储查找、调用帧、外部合约互动和事件。这些操作中没有一个是自然适合于证明系统的,证明系统需要将计算表达为约束。约束是一条规则,说明:如果这个输入存在,则这个输出必须跟随。为了以这种形式表达以太坊计算,Linea必须将每个操作转换为可以在零知识系统内证明的数学约束形式。这个翻译过程是zk-rollup的复杂性所在,而证明者的优雅决定了这个rollup是否实用,还是仅仅是理论上的。
状态使问题变得更加复杂。以太坊不仅仅是计算;它是共享的状态,并随时间演变。要证明执行,Linea必须证明每个状态变更都是有效的。这意味著要显示每次存储读取都对应于Merkle-Patricia状态树中的一个位置,每次存储写入都正确更新了树,并且批次结束时结果的状态根正是如果按步骤遵循以太坊规则所得到的。因此,证明者不仅在证明执行。它是在证明状态随时间的完整性。
这是zk-rollup与乐观rollup根本不同的地方。在乐观rollup中,正确性是被假设的,如果有人挑战执行,则处理争议。在zk-rollup中,正确性在以太坊接受状态更新之前就已经被证明。这一区别不仅影响安全性,还影响用户体验。没有等待挑战期。没有延迟的提款。系统以用户所期望的即时性行为,同时维持以太坊所要求的结算纪律。
证明过程本身分为几个阶段。首先,rollup节点执行交易并记录完整的执行痕迹。然后,证明者将该痕迹转换为一组匹配证明电路结构的中间表示。每个操作码和状态转换对应于一个电路闸或约束。这些约束然后形成一个大型关系系统,定义了执行正确性意味著什么。证明者然后以多项式形式承诺痕迹的值,并使用加密证明系统来演示这些多项式满足约束。结果是一个简洁的证明。
这个证明是紧凑的。即使执行本身很广泛,也可以快速验证。这就是零知识技术的核心:将计算压缩成一种快速验证的形式。证明者做了昂贵的工作。以太坊则不需要。
但证明者在实践中也必须高效。如果证明者运行得太慢或成本太高,rollup将变得昂贵或延迟。Linea的设计对证明者性能给予了重要重视,因为证明的成本就是运行链的成本。在经济上,证明者是决定费用市场的引擎。在架构上,证明者是决定rollup是否像真正的以太坊扩展运行的枢纽,还是仅仅是一个偶尔在其上结算的独立系统。
Linea的证明架构旨在确保证明的复杂性不会影响开发者的体验。开发者像往常一样编写合约。用户像往常一样互动。证明系统吸收了正确性的负担。与链互动的那些人不需要考虑电路、多项式或代数承诺。他们只是依赖于系统是可验证的,并且以太坊确认了这一点。
这就是rollup成为扩展而不是替代品的方式。 以太坊仍然是结算环境。 Linea成为执行可以扩展而不失去意义的地方。
因此,可扩展性并不是新信任的增加。 而是信任在更大协调表面上的延续。
要理解Linea的证明者架构在实践中的运作情况,将证明过程视为一个管道而非单一行为是有帮助的。证明并不是一次性发生的事情。它在各个阶段展开,每个阶段负责将交易的执行转换为可以被以太坊验证的形式。用户体验的流畅性依赖于这些阶段的合作程度。如果任何阶段成为瓶颈,zk-rollup的好处就会减少。Linea的设计密切关注执行、表示、证明创建和最终验证之间的关系。
管道始于一批交易的执行。Linea的执行层使用一个行为像以太坊虚拟机的环境来处理交易。目标不是重新诠释以太坊的规则,而是忠实地反映它们,以便开发者不必学习新的语义或重写代码。交易改变余额,更新合约存储,调用外部合约,有时部署新合约。在所有这些过程中,rollup保持每一步的记录。这个记录被称为执行痕迹。
执行痕迹本身对以太坊没有用处。它只是发生过的事情的证据。证明者现在将这个痕迹转换为可以数学上证明的结构化表示。这一转换要求将执行痕迹重新组织为列、行和约束集。执行痕迹中的每个指令都映射到特定的电路模式。例如,加法操作映射到算术约束。存储读取映射到验证包含于状态承诺的约束。合约调用映射到验证调用深度和气体会计的约束。证明系统确立了每个指令都遵循以太坊执行模型的预期行为。
这是证明系统与状态互动的地方。以太坊的状态表示为Merkle-Patricia树。要证明存储读取是否正确,证明者必须包括一个证明,表明所读的值对应于这棵树中的一个叶子。要证明存储写入是正确的,证明者必须展示树根如何随之改变。这些证明在整个执行痕迹中累积,证明系统将它们整合到最终证明中。其目的是显示所做的状态转换恰恰是根据以太坊的规则应该发生的那些。
当约束被构建后,证明者将其转换为多项式表示。这一步允许证明系统应用代数检查,而不是程序检查。代数检查的优势在于可压缩且验证速度更快。在零知识系统中,这种从计算到代数的转换使得证明能够简洁。然后,证明者使用其证明后端生成证明,可能会使用椭圆曲线配对、多项式承诺方案和其他先进的加密原语。
一旦证明创建完成,Linea执行证明聚合。聚合允许将多个电路证明压缩为一个证明。没有聚合,对应于执行痕迹部分的每个电路都需要在以太坊上单独验证,这将是不可承受的昂贵。聚合允许rollup发布一个简洁的证明,而以太坊只需验证这一个证明。验证只需少量计算努力,使得定期确认正确性变得可行,而不会对基层造成费用压力。
结果是以太坊继续作为状态有效性的最终权威,但无需重新执行交易的负担。Linea和以太坊之间的关系变成了委托执行和锚定验证。rollup执行重计算。以太坊确认计算遵循其规则。这种安排保留了结算最终性的意义。rollup并未获得独立性。它获得了可扩展性,而不失去使以太坊有价值的信任结构。
然而,证明者不仅仅是技术组件。它具有经济和去中心化的含义。运行成本高的证明者限制了谁可以参与保护网络。过于集中化的证明者引入了新的信任假设。Linea的路线图承认了这一点,并旨在随著时间的推移去中心化证明网络。证明者网络的去中心化意味著多个参与者可以生成证明,互相验证,并为rollup的安全性和可靠性做出贡献。该系统从一个受信任的证明设置演变为一个分布式的证明市场,计算被共享。
证明者的去中心化也影响流动性和用户体验。随著证明的分布,证明延迟减少,rollup可以更频繁地结算状态更新。更快的结算意味著应用程序感觉更具响应性。流动性可以更快地移动。交易者可以保持更紧凑的执行窗口。网络变得更加流畅,这种流畅性强化了可靠性的感知。
围绕可扩展性的叙述常常集中于吞吐量指标和每秒交易基准。但Linea的方法强调可扩展性不仅仅是一个容量问题。这是一个在扩大覆盖范围的同时维持完整性的问题。如果可扩展性妥协了信任,系统就不是真正的扩展。它是在没有基础的情况下扩展。Linea通过保护基础并向外投射信任而扩展,而不是使信任变薄。
这一观点强调了为什么证明者是rollup的核心。证明者不仅是展示正确性的机制。它是rollup保持有意义地成为以太坊一部分的机制。如果没有证明者,rollup只是一个执行环境。与证明者一起,rollup则是它所继承的链的延续。
我的最终看法
对我而言,Linea设计中最突出的是它的克制,而不是雄心。它并不试图重新定义以太坊。它并不声称要修正基层。它接受以太坊结算保证的稳定性和意义,并专注于扩展它们。证明者是使这一切成为可能的安静机械。它确保扩展不会漂移到碎片化中。它确保灵活性不会侵蚀保证。
Linea将可扩展性视为不创造新事物的机会,而是让已经有效的事物在更自然的条件下运作的机会。这项工作发生在背景中。用户不需要理解它。开发者不需要调整它。信任不需要转移。系统只是变得更大、更平静和更一致。
这是成熟生态系统的架构类型。
不是更响亮的声明,而是 更清晰的基础。

