概要
要想成功解决公链的可扩展性问题,不只是要提高交易吞吐量。所谓的可扩展性,就是系统要能够在
满足数百万用户的需求的同时不以去中心化为代价。而密码学货币能大规模普及的前提条件是速度快、费用低、用户体验流畅,并且能保护隐私。
在没有技术突破的情况下,现有的可扩展性解决方案不得不在一个或多个条件上做出重大妥协。幸运的是,零知识证明技术的最新进展为我们带来了更多新的解决方案。
如今,我们?MatterLabs?团队要满怀激动地宣告?ZKSync?的愿景:基于ZKRollup的免信任型可扩展性和隐私性解决方案,旨在带来绝佳的用户和开发者体验。我们还要骄傲地宣布ZKSync的开发者测试网络已上线。
ZKSync旨在将以太坊上的吞吐量提高到像VISA那样每秒可达几千笔交易,同时又能确保资金像存储在底层账户那样安全,并维持较高水平的抗审查性。该协议的另一个重要方面是延迟性极低:ZKSync上的交易具有即时经济确定性。
我们认同精益设计理念,并支持以循序渐进的方式推进协议,按顺序逐一引入各个功能,让每个步骤都能为用户带来最实际的价值。这就是为什么我们从最基础的部分开始,首先聚焦于基础可扩展性,然后是可编程性,最后是隐私性。
ZKSync特性一览:
严格持平于L1的安全性
VISA级别的吞吐量
亚秒级交易确认速度
抗审查,抗DoS攻击
隐私保护型智能合约
区块链扩容的最大挑战
实际上,密码学货币的最主要用途依然是投机。
在没有得到真正的普及之前,互联网货币、DeFi、Web3.0等区块链概念的价值主张在很大程度上都无法实现。
可扩展性指的不仅是交易吞吐量,还有区块链系统是否能够满足数百万用户的需求。
我们来看一看将区块链革命推向大众所面临的三大挑战。
挑战一:保持去中心化
要想在现实生活中推广区块链,目前去中心化程度最高的区块链的交易处理量还差了一个数量级。比特币网络每秒能处理7笔交易,以太坊网络每秒能处理15笔交易——而VISA平均每秒能处理2000笔交易之多。
以太坊Layer2上总锁仓量为98.55亿美元:金色财经报道,L2BEAT数据显示,截至目前,以太坊Layer2上总锁仓量为98.55亿美元,近7日跌6.38%。其中锁仓量最高的为扩容方案Arbitrum One,约55.94亿美元,占比56.77%,其次是Optimism,锁仓量25.82亿美元,占比26.20%。[2023/8/20 18:10:49]
但是,对于比特币和以太坊而言,低效是一种特色,而非缺陷!只要减少验证者的数量,就能轻而易举地加快交易处理速度。作为两大顶尖区块链网络,比特币和以太坊上大量的全节点是它们最重要的资产。因此,这就为区块链带来了强韧性,从根本上将其与现有金融机构区别开来。
另一个热门的扩容方案就是,要求每个验证者只验证一部分相关的区块链流量,而非全部流量。但这难免会引入另外的信任假设,系统所依据的博弈论基础也会变得极为脆弱。
挑战二:实现隐私性
大多数人都不会喜欢在众目睽睽之下转移大量财富。如果会立马暴露自己拥有多少钱的话,动荡地区——例如,委内瑞拉——的居民不可能愿意用密码学货币来付钱。如果付款之时有可能暴露自己的真实身份,生产或消费成人内容的人就不可能使用加密货币来
代替Paypal?。
此外,在不具备链上保密性的情况下,《通用数据保护条例》和《2018年加州消费者隐私法案》之类的隐私条例会促使普通企业从公链转向更加中心化的支付和金融中心,让我们这个日益无现金化的社会变成一场监视噩梦。
隐私性是普及区块链的必备条件。
但是在公链上很难实现隐私性,原因如下:
隐私性必须是协议的默认配置。引用VitalikButerin的话来说,“如果隐私模型的匿名集是中等大小,实际上就只有很小。如果隐私模型的匿名集很小,实际上就约等于没有。只有全球化的匿名集才是真正强健可靠的。”
要让隐蔽交易成为大家的默认选择,隐蔽交易的交易费用必须非常低,但是,在技术上,隐蔽交易必将带来高昂的计算成本。
隐私模型必须具有可编程性,因为现实世界的用例不仅限于转账:还需要账户恢复、多签和消费限额,等等。
挑战三:达到预期的用户体验
现实是很残酷的:产品经理都很清楚,用户向来喜欢更轻松、更轻量级的体验,能够立即带来满足感,却
会忽略长尾风险。要想诱使用户从熟悉的事物切换到新事物,这需要
非常强大的力量。对于一些人来说,密码学货币的价值主张就已经足够有吸引力了。但是这部分人很可能已经入场了。密码学货币若要实现当初的承诺,其用户群体的规模就算不用数十亿,也要有数百万才行。
如果要吸引数百万的主流用户,我们需要为他们提供符合乃至超出这些期望的用户体验。我们必须一面提供全新的功能,一面保留人们已经习惯的传统互联网产品的所有便利属性,即,快速、简单、直观且具有容错性。
ZKSync的承诺:免信任、保密、快速
本文会向大家解释我们的架构、设计原则以及我们所提议的协议的良好特性。当然解释过程少不了对技术做一番说明。
1.安全性:扎根于ZKRollup
ZKSync是基于ZKRollup的概念搭建的。
简而言之,ZKRollup是一种二层扩展方案,所有资金都存储在主链上的智能合约内,计算和存储则在链下执行。每创建一个新的Rollup区块,就会生成一个状态转换的零知识证明,并提交给主链上的合约进行验证。这个SNARK包含了对Rollup区块中所有交易有效性的证明。此外,每个区块的公开数据更新都会作为便宜的calldata发布到主链上。
这个架构提供以下保证:
Rollup验证者永远不能破坏状态或窃取资金。
即使验证者不配合,用户也可以追回Rollup上的资金,因为Rollup具备数据可用性。
得益于有效性证明,无论是用户还是可信第三方都不需要通过在线监视Rollup区块来防止。这里有一篇优质文章,深入探讨了有效性证明相比错误性证明的压倒性优势。
换言之,ZKRollup严格继承了底层链的安全保障。正是有了这种安全保障,再加上丰富的以太坊社区和现有基础设施,我们才决定专注于二层解决方案,而不是试图搭建自己的底层链。
为了更好地理解这一概念,请参阅我们在?ZCon1?和?Dappcon?上的演讲,zeroknowledge.fm上关于MatterLabs的播客,以及我们早期发布的技术解释帖。好奇心旺盛的读者也可以阅读这篇文章,来了解ZKRollup和OptimisticRollup之间的区别。
在以太坊基金会的资助下,MatterLabs在过去的一年以来都在研究ZKRollup技术。自首个原型发布以来,我们已经全部重写了架构和ZK电路。最新的版本融合了我们从社区获得的反馈,并实现了各种可用性和性能改进。
总结:ZKRollup
完全的免信任性
具备与底层链同样的安全保障
第一次确认之后就具有由以太坊背书的确定性
2.可用性:实时交易
我们预计ZK证明技术的最新发展成果将缩短证明时间,将ZKRollup区块的出块时间控制在一分钟之内。一旦区块证明被提交到主链上,并在Rollup智能合约中验证通过,这个区块内的所有交易都会得到最终确定,并且受到Layer-1抵御链重组的能力保护。
然而,就零售和线上支付领域而言,以太坊上仅仅15秒的区块延迟也有些久了。我们如何才能做得更好?
这个办法就是:在ZKSync中引入即时交易收据。
选择参加ZKSync区块生产的验证者必须向主网上的ZKSync智能合约提交一笔可观的安全保证金。由验证者达成的共识会为用户提供亚秒级确认,确保其交易包含在下一个ZKSync区块内,并由绝大多数的共识参与方签署。
如果一个新的ZKSync区块被创建出来并提交到主链上,它是无法被撤回的。但是,如果这个区块不包含已承诺的交易,则签署过原始收据和新区块的验证者的安全保证金会被罚没。这部分验证者所质押的保证金必定超过总金额的1/3以上。也就是说,惩罚会覆盖1/3乃至以上的安全保证金,而且只有恶意验证者会遭受惩罚。
被罚没的金额中有一部分会用来补偿交易接收者,剩下的会被销毁。
罚没机制既可由用户自己触发,也可由任意签署过原始交易收据的诚实共识参与方触发。后者天生就有触发罚没机制的动机:如果他们参加下一轮区块生产,可能也会遭到惩罚。因此,共识参与者中只要有一个是诚实的就足以检测欺诈了。
我们再细说一遍:在ZKSync中,我们设计了一种零确认的交易模式,也就是让一笔交易附带一个即时交易数据,该收据会指向一个尚未发布到链上的ZKSync区块。
在区块证明发布到主链之前,只有短短几分钟的时间可以对ZKSync上的零确认交易发起双花攻击。此外,恶意验证者要想诱使用户相信自己的交易已成为零确认交易,得做好1/6的安全准备金被罚没的打算。
从买卖双方的角度来看,零确认交易是:
即时的
存在逆转的可能性,不过只在短短的几分钟之内
只有在同时而非逐个对上千个卖方发起攻击的情况下才可逆
相比信用卡支付,ZKSync在用户体验和安全性上有很大提升!
现在让我们站在不同参与者的角度来看:
出售实物商品的线上商店会立即向用户确认订单,但是不会遭受攻击,因为卖家会等到完全确认之后再发货。
实体店在交易量较少之时是几乎不可能遭受攻击的。即使你是以即时收据的形式来出售一台Macbook,也要有数千名协调一致的攻击者在不同的地点发起攻击,还要依靠大多数验证者串谋才能成功。
说得再深入一些。为了量化风险,我们可以将保证金提供的经济保证与PoW区块链提供的结算保证进行比较(这里可以参阅?
NicCarter撰写的一篇文章)。举例来说,经过35个交易确认之后,Coinbase才会接收一笔以太坊资金存款。如果是通过亚马逊云服务租用GPU来发起51%攻击的话,要持续攻击10分钟才能撤回这个交易,成本大约在6万美元。假设安全保证金高达数百万美元,撤回一个即时ZKSync收据所需的成本会高得多。因此,这些即时收据的经济确定性相比以太坊有过之而无不及。
要注意的是,即时交易数据不会受到ETH区块重组的影响,因为这些收据的有效性与以太坊无关。此外,以太坊的结算保证与ZKSync的结算保证是结合在一起的。
总结:实时交易
亚秒级交易确认的经济确定性堪比以太坊
几分钟之后就具有由以太坊背书的确定性
3.活性:抗审查性和抗DoS攻击
扩展方案必然具备的一个属性是,大多数用户都无法参与所有交易的验证。因此,所有二层扩展方案都需要专门设置一个角色。这类角色对于安全性和性能的要求较高,带来了中心化和审查的风险。
为了解决这一问题,ZKSync在设计上引入了两种不同的角色:验证者和守护者。
验证者
验证者负责将交易打包到区块内,并为这些区块生成零知识证明。他们要参与共识机制,因此必须缴纳一笔安全保证金,才能创建即时交易收据。验证者节点必须在网络带宽良好的安全环境中运行。或者,他们也有可能按自己心意在不安全的云平台上生成零知识证明。
验证者将获得交易费作为奖励,是用被交易代币来支付的。
为了快速达成ZKSync共识,验证者的人数是有限制的。但是别忘了,ZKRollup验证者是完全免信任的。在ZKSync上,恶意验证者既不能破坏系统的安全性,也不能诚实的验证者触发罚没机制。因此,不同于optimisticrollup,系统的守护者可以频繁更换一小部分验证者。与此同时,只要有2/3的提名验证者是诚实且可进行操作的,就能确保满足活性要求。
守护者
大部分通过质押代币份额来提名验证者的ZKSync持币者会成为守护者。守护者的目的是监控点对点交易流量,探测审查行为,并确保不会提名那些有审查行为的验证者。为了保护自己的质押物不被罚没,守护者必须确保ZKSync可以抵御DoS攻击、不会实施审查。
虽然投票密钥通常来说都是在线保存的,但是这不会给ZKSync上的守护者带来罚没或盗窃的风险。守护者就可以选择只监控一小部分流量。因此,守护者节点可以运行在普通的手提电脑或云服务器上,也就是说,不需要提供专门的验证者服务。
守护者会获得验证者的费用作为奖励,是以ZKSync原生代币的形式发放的。其收益和押金会被锁定较长一段时间,以此促进ZKSync代币的长期升值。
总结:活性
两种角色:验证者和守护者,都受到交易费的激励
由验证者运行共识机制并生成证明
由运行在普通硬件上的守护者防止审查
4.1RedShift:透明的通用SNARK
要实现基于零知识证明的智能合约,最大的障碍就是缺乏一种通过递归组合实现的高效且通用的零知识证明系统。Groth16曾是最高效的ZKSNARK,但它需要为每一个应用专门启动一套受信任初始化设置,而且在采用递归方式之时会很低效。另一方面,基于FRI的STARK需要高度专业化的构建技能,而且缺乏针对任意通用电路的高效递归组合。
这也是我们开发?RedShift?的主要动机之一:从基于FRI协议的多项式承诺方案中衍生出一个透明、高效且简洁的新型SNARK。我们目前正在进行同行评议和社区反馈,之后会将RedShift作为一个核心部分部署在ZKSync上。
Redshift是一种通用的SNARK,能让我们将任意程序转换为可证明的ZK电路。异构电路可以通过递归的方式在一个SNARK中构成。RedShift仅依赖于抗碰撞的哈希函数,因此可被认为具有后量子安全性。
总结:Redshift
透明的:不需要可信的设置
可被认为具有后量子安全性:基于久经考验的密码学
通用的:适用于通用程序
4.2Zinc:零知识智能合约框架
在ZKSync的可编程模型的设计上,我们致力于实现以下几大目标:
高度可扩展性
支持公开的智能合约和私密的智能合约
最重要的一点:平缓的学习曲线和简单的开发过程
很多优秀的项目都实现了其中几个目标,但是至今没有一个项目能够实现上述所有目标。例如,
ZkVM?提供了一个用于通用智能合约的虚拟机,但是是基于防弹协议的,而且不支持简洁证明聚合。
ZEXE?具有绝佳的隐私保护设计,但是需要深入理解零知识证明电路的具体细节和权衡关系,因此对程序员来说门槛很高。其他较为简单的零知识证明编程框架则缺少表达性以及安全的智能合约开发所必需的功能。
因此,我们决定创建Zinc——一种安全、简单且高效的编程框架和基于虚拟机的运行时环境,专为基于零知识证明的智能合约而设计。
SyncVM的设计优先级主要是安全性和开发者友好性。定义合约的编程语言严格遵循简化的Rust语法,并从Solidity和Libra的Move中借鉴了智能合约的编程元素。开发者并不需要深入了解零知识证明领域的技术细节即可编写出高效且安全的程序。实际上,凡是具备Rust、Solidity和C++等编程语言背景的开发者只需要一天时间就可以弄懂Zinc。
用Rust为Bellman框架编写一部分程序和为Zinc编写同样的程序对比如下:
Zinc的0.1版本将在2020年1月上线。
总结:Zinc
具备安全性和表达性的编程框架
以委托的方式生成零知识证明的沙盒式虚拟机
聚焦于易开发性:Solidity程序员只需要花一天时间学习
ZKSync0.1版本开发者网络上线!
ZKSync0.1版本的开发者网络上线。该版本仅限于在单个运营者环境中进行ETH和ERC20的代币转账。
查看ZKSync的软件开发工具包
在Github上浏览代码
体验demo
上线0.1版本的开发者网络是实现ZKSync愿景的第一步。未来还需要进行很多研究、实验和开发工作。在我们了解并吸收反馈的过程中,一些设计部分可能会发生变化。但是我们保证,ZKSync会将数百万用户引入密码学货币世界,这一愿景是不会改变的。我们为设定了很高的用户体验标准,并将证明零知识证明技术能够在不牺牲区块链价值观的情况下提供类似于Web的体验。
你可以关注MatterLabs的推特、公开的?Telegram频道或是订阅我们偶尔更新的新闻推送。
如果你想要为ZKSync的开发做贡献的话,请与我们联系。我们正在寻找优秀的工程师和密码学家加入我们的团队。
原文链接:?https://medium.com/matter-labs/introducing-zk-sync-the-missing-link-to-mass-adoption-of-ethereum-14c9cea83f58作者:?AlexGluchowski翻译&校对:?闵敏&阿剑
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。