原文作者:StarkWare核心工程主管GidiKaempfer
TL;DR
?递归证明已在主网上线,通过单一证明就可扩展到StarkEx或StarkNet
?STARK将会显著提高网络容量、降低网络延迟和交易成本
?为L3和其他应用奠定基础
扩大规模!
由Cairo提供支持的递归证明现已正式投入运营。这标志着STARK对L2扩展能力的重大提升,它能通过单一证明实现以太坊的交易笔数数倍的增长。
目前,STARK的扩展是通过将几万甚至几十万笔交易"rollingup(汇总)"到一个证明中来实现的,这个证明会最终被写入以太坊L1,通过递归,类似这样的证明都可以被"rollingup"到一个单一的证明中去。
这种方法现在已经用于众多基于Cairo的构建的应用程序中,比如:运行在StarkEx和StarkNet上的应用程序。
STARK的发展历程
自2020年3月在Mainnet上完成第一次STARK证明以来,下述事件共同发展塑造了STARKs的发展。
基于STARK的扩展性
2020年6月,首个基于StarkEx的扩展解决方案部署在以太坊主网上。StarkEx拥有一个支持在链下执行计算并生成STARK-proof的验证器,以及一个在链上来验证此证明的验证器,由于第一次部署的完全由StarkWare的工程师“手动”完成,因此也极大地限制了StarkEx的运行速度,最终我们意识到,我需要一种编程语言来支持一般计算的证明,于是Cairo诞生了。
ForthTech与新火科技旗下MPC自托管平台Sinohope达成合作:据官方消息,新火科技旗下MPC自托管平台Sinohope宣布正式与以数据与技术驱动的加密技术服务公司ForthTech达成合作协议,双方将围绕虚拟资产安全及合规托管技术进行深度沟通与密切合作。
ForthTech是一家以数据与技术驱动的加密技术服务公司。从事量化交易、做市商、流动性提供、节点部署等服务,充分运用AI算法,帮助客户安全稳定地实现数字资产的保值增值。在策略研发、数据库处理、服务器建设与维护、IT实现、安全风控等领域有较强经验。[2023/5/22 15:18:49]
Cairo
2020年夏天,Cairo第一次出现在以太坊主网之上。Cairo是CPUAlgebraicIntermediateRepresentation的缩写),并包含单个AIR来验证这个“CPU”的指令集。Cairo为更复杂的商业逻辑、更多样化计算语句打开了大门,并以一种更快、更安全的方式进行编码验证。Cairo程序可以证明单个应用程序执行的逻辑,而且一个Cairo程序也可以是多个此类应用程序的串联——即SHARP。
SHARP
SHARP是一个共享验证程序,它可以从几个独立的应用程序中提取相关交易数据,并在一个STARK-proof软件中进行验证。不同应用程序可以合并它们的交易批次,以更快地填满了stark-proof池,这样会提高交易的速度。所以下一个前沿领域是:递归证明,它不仅适用某些写死的编码逻辑,而且也是针对一般性的计算。
多位美国参议员质疑律师事务所在FTX破产案件中的公正性:金色财经报道,参议员Elizabeth Warren、Cynthia Lummis、Thom Tillis、John Hickenlooper致信美国特拉华州破产法院法官John Dorsey,呼吁任命一名“公正的审查员”参与FTX的破产程序,并批评Sullivan&Cromwell律师事务所为FTX提供了多年建议,但仍使其倒闭。立法者在信中表示:“由于法律顾问通常是重大财务丑闻的核心,鉴于他们在起草财务协议、风险管理合规实践和公司控制方面的作用,对Sullivan&Cromwell对FTX进行调查的公正性和方式感到担忧是完全合理的”。Sullivan&Cromwell代表FTX处理其破产程序。据Bloomberg Law报道,从2021年7月到11月提交的文件,该律师事务所从FTX的非破产工作中获得850万美元报酬。[2023/1/11 11:05:29]
要了解递归证明的全部好处,我们首先要了解SHARP是如何执行证明的。下图描绘了一个典型的非递归流程:
一个典型的非递归证明流程
在这里,状态说明会随着时间汇总,当达到容量(或时间)阈值时,将生成一个大的组合状态说明(也称为Train),只有在收到所有单独的状态说明后,才会验证这个组合状态说明,而这个证明需要很长的时间来进行验证(是单独证明每个状态说明所需时间的总和)。
Pplpleasr的Shibuya Web3平台完成690万美元融资:金色财经报道,pplpleasr的Shibuya Streaming Service通过最近一轮种子融资筹集了690万美元。Web3内容平台已经通过其“白兔”系列制作了 7 分钟的高质量动画电影,并从NFT销售额中筹集了超过150万美元。[2022/12/12 21:38:22]
验证非常大的状态说明最终会受到可用计算资源(如内存)的限制。在递归之前,这实际上是STARK证明中限制可扩展性的阻碍。
什么是递归证明
使用STARK证明,证明一个状态所花费的时间与执行该状态所花费的时间大致呈线性关系。如果执行一个状态需要花费T时间,那么验证证明大约需要log(T)时间,这被称为“对数压缩”。换句话说,使用STARKs,你花在验证状态上的时间要比计算执行状态的时间少得多。
Cairo支持通用的计算状态,这些状态可以由STARK验证,也可以由相应的STARK验证器验证。
这就是执行递归的优势所在:我们可以用同样的方式编写一个Cairo程序来证明数千个交易的正确性,我们也可以编写一个Cairo程序来验证多个STARK证明。我们可以生成一个证明来证明多个“上游”证明的有效性,这就是我们所说的递归证明。
分析:Alameda在10月20日至11月2日从FTX提取超过15亿美元资金:11月24日消息,据0xScope分析,在10月20日至11月2日期间(CoinDesk披露Alameda资产负债表之后),Alameda从FTX提取超过15亿美元资金,位列第一。Genesis提取了约3亿美元,但在FTX停止存款前一天存回4000万美元。Jump也从FTX取出3亿美元,且之后没有存款。[2022/11/24 8:04:44]
由于对数压缩和大致线性的关系,STARK的验证需要相对较短的时间(预计在不久的将来只需要几分钟)。
在实现递归时,SHARP可以在状态数据到达时就对其进行证明,它们的证明可以在各种模式中一次又一次地合并成为递归证明,直到在某个时间节点上,将产生的最终递归证明提交给L1链上验证者。下图描述了一个典型这样的流程:
一个典型的递归证明流程
在这个例子中,四个状态声明被发送到SHARP,这些状态声明都是平行证明的,然后,每对证明都由递归验证器进行验证,并为此生成下一个证明,而这个证明说明了前两个证明已被证实。接下来,通过递归验证器语句再次合并两个证明,最终生成了一个证明了四个原始状态的证明--Proof123。然后,该证明在主链上提交,并由Solidity验证者智能合约进行验证。
Moola Market恢复存款和偿还功能,借款人需在宽限期内处理清算风险:11月1日消息,据官方推特,Celo生态借贷协议Moola Market宣布协议10号提案已得到社区通过,以恢复Moola Market的偿付能力,协议的存款和偿还功能已重新上线。
Moola表示将给予借款人一个宽限期来偿还债务或补充抵押品,以避免清算。MOO和 cREAL已从抵押品中移除,使用MOO和cREAL作为抵押品的借款人需在宽限期结束前偿还债务。其中MOO 备已被冻结,用户将无法存入或借出MOO,但可以在宽限期结束后进行提现。宽限期截止至北京时间11月3日7:30,此后,Moola的借款、提现、清算功能将被恢复。
此前消息,Moola Market于10月19日遭到黑客攻击,损失约840万美元,并暂停运营。此后Moola团队与攻击者进行协商,攻击者将93.1%的资金返还给Moola治理多签。[2022/11/1 12:04:55]
递归证明的好处
降低链上成本
当我们实现了将多个证明"压缩"为一个,这意味着每个交易的链上验证成本降低。
使用递归证明,可以消除限制证明的计算资源障碍(例如内存),让每个有限规模的状态声明都可以被单独证明。因此,当使用递归时,递归的组合状态可以不受限,让每笔交易的成本减少几个数量级。
在实践过程中,减少的成本还取决于你可接受的延迟。此外,由于每个证明通常还伴随着一些输出,如链上数据,因此,与单个证明一起写入链上的数据量是有限的。尽管如此,将成本降低一个数量级完全是可以实现的。
降低交易延迟
递归证明模式减少了证明大量状态数据的延迟,这主要是以下两个因素的结果:
传入的状态数据可以并行证明处理。
无需等到组合状态数据池中的最后一条的到达,即可开始证明,这意味着加入组合状态池的最后一条数据的延迟大致是证明最后一条状态所需的时间加上证明最终的递归验证时间之和。
目前,我们正在积极地开发和优化证明递归验证的延迟。我们希望在几个月内能达到几分钟这个量级。因此,一个高效的SHARP可以提供从几分钟到几个小时的不等延迟,这主要取决于每笔交易与链上成本的权衡,这也表明SHARP的延迟得到了很大意义的改善。
促进L3发展
Cairo中的递归验证器也向StarkNet的提交证明提供了应用可能,因为该声明可以被嵌入到StarkNet智能合约中,这就允许在公共的StarkNet(一个L2网络)上实现L3的部署。
递归模式非常适用于L3的证明的聚合,即通过L2上的一个证明来验证即可,因此这也实现了某种意义上的以太坊性能超扩展。
其他好处
应用型递归
递归证明为希望进一步想要降低成本和提升性能的平台与应用程序提供了更多契机。
每个STARK都证明了应用于某种输入声明的正确性,这种输入被称为"公共输入"。从概念上讲,STARK递归将两个输入的证明压缩为一个,虽然证明的数量减少了,但源头的数量是保持不变,而这些输入通常被用于应用程序或者L1上的状态更新。
如果允许递归声明是应用感知的,即识别应用程序本身的一些语义,那它既可以将两个证明压缩为一个,也可以将两个输入合并为一个,结果语句可以根据应用程序的语义验证输入组合的有效性,因此命名为应用递归,这能大幅降低链上验证器的复杂性。
应用递归示例
首先,声明1证明了从A到B的状态更新,声明2证明了从B到C的进一步更新。声明1和声明2的证明可以合并成第三个声明,它直接证明了从A到C的状态更新。通过类似的逻辑,人们可以显著地减少状态更新的成本。
应用性递归的另一个重要例子是压缩多个证明的汇总数据。例如,对于想StarkNet这样的ValidityRollup,L2上的每个存储更新也作为L1上的传输数据包含在内,以确保数据可用性。其实,我们没有必要在同一个存储元素发送多个更新,因为数据可用性只需要那些经过了验证交易的最终值。这种优化已经在单个StarkNet区块内实现。通过为每个区块生成证明,应用递归可以跨多个L2的区块汇总压缩此数据,这可以显着降低成本,使L2上的块间隔更短,还不牺牲L1可扩展性。
值得注意的是,应用性递归可以与前面描述非应用性递归相结合,这两个优化是彼此独立的。
降低链上验证者复杂度
STARK验证器的复杂性取决于它被设计来验证的语句种类。特别是对于Cairo语句,验证器的复杂度取决于Cairo语言中允许的特定元素,更具体地说,取决于支持的内建程序。
Cairo语言不断发展,提供越来越多有用的内置程序,而递归验证器只需要使用这些内置插件的一部分,通过在递归验证器中支持的完整语言,递归SHARP可以成功地支持Cairo中的任何语句。
L1solididity验证器只需要验证递归证明,而不需要最新的内置代码,换句话说,我们把不断升级的复杂语句的验证被下放到L2,只是让L1验证器来验证更简单、更稳定的状态数据。
减少计算足迹
在没有递归之前,将多个状态数据汇总到一个证明中的计算能力受限于可用计算实体的计算能力。
有了递归,就不再需要证明这种极其庞大的组合证明,因此,可以使用更小、更便宜和更多的计算实体。这使得可以在更多的物理和虚拟环境中部署验证器成为可能。
总结
通用计算的递归证明现在正在服务多个生产系统,包括StarkNet。
在持续的优化之下,递归证明将会提供更高吞吐量、更低GAS费、更低延迟性,并为L3和应用递归带来新的机会。目前,递归验证器还在进一步优化中,随着时间的推移将会提供更好的性能和成本效益。
中文推特:https://twitter.com/8BTC_OFFICIAL英文推特:https://twitter.com/btcinchinaDiscord社区:https://discord.gg/defidao电报频道:https://t.me/Mute_8btc电报社区:https://t.me/news_8btc
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。