特别鸣谢本文原作者TrapdoorTech创始人Star.LI的支持!
本文摘自:IOSG
原标题:《L2的理解与思考》
Layer2是个大的话题。是否去中心化,是否安全,资金状态确认时间是Layer2的主要的讨论话题。最近有点时间,总结一下Layer2的理解和思考。
Layer2交互模型
Layer2,相对于Layer1,在Layer1的基础上提供更丰富功能,更好的用户体验。抽象一下Layer2的逻辑以及交互模型如下:
除了Layer1的交易外,其他Layer2的交易都在Layer2执行。为了Layer2在必要时恢复交易状态,所有Layer2的交易数据需要安全存储。简单起见,也为了和Layer1保持一样的安全性,所有Layer2的交易数据一般存储在Layer1。这种交易数据的随时可访问,称为"DataAvailability"。所有的Layer2交易都在Layer2执行,并同步到Layer1。如何证明Layer2同步的状态正确,不同的layer2方案有不同的实现方法。
FINMA:欢迎国际社会审查其对Libra的监管方式:7月13日消息,瑞士最高金融监管机构(FINMA)表示,瑞士欢迎国际社会对其监管facebook领导的Libra加密货币项目的方式进行审查,并准备与其他国家合作,以确保无缝监管。全球最大的社交媒体网络Facebook在6月份宣布了推出新数字货币的计划,但总部位于日内瓦的Libra受到了监管机构的抨击,他们担心这可能会破坏全球金融体系的稳定。(newagebd)[2021/7/13 0:48:28]
Layer2实现分类
从Layer2状态同步方式,Layer2分为两类:一类是侧链实现,一类是Rollup。侧链,就是通过不同于Layer1的共识进行Layer2状态向Layer1的同步。仅从这一点,整个侧链的安全性,就降低到Layer2的共识的安全性。Rollup又分为两种:一种是zkRollup,一种是OptimisticRollup。所谓OptimisticRollup,乐观性Rollup,期望绝大多数情况下Rollup正确向Layer1同步状态。同时,为了防止同步错误的状态,提供了挑战机制。乐观预计挑战的机率比较小。在需要挑战的情况下,Layer1可以判断正确状态。zkRollup是最直接的状态同步方式,通过零知识证明技术,在向Layer1提交状态的同时提供状态变化的证明。Layer实现分类如下:
Huobi哲叔:头部项目对Layer2的技术选型决定了未来ETH生态发展:3月11日,在以《Layer2百花齐放, DeFi 们如何“站队”?》为主题的AMA中,Huobi Global商业战略总监哲叔、Synthetix大中华区负责人Dorothy、路印协议CTO Steve Guo、Starks Network联合创始人张晓关于即将到来的Layer2展开了精彩的对话。Huobi哲叔认为:1.随着Layer2的爆发,tps的提升和gas的降低,会大大提升DeFi用户的使用体验。DeFi再也不再是有钱人的游戏。相信DeFi整体的TVL和各类业务量都会上一个新的台阶。无论是借贷,还是DEX,合成资产还是其他,各个赛道都会打开之前的天花板,强者恒强,头部效应会更加集中。2.而且目前这些在layer1上已经跑出来的头部项目,他们选择哪个技术选型,他们的站队对未来的ETH生态发展起到了决定性的作用。3.由于ETH 2.0还要2年左右的时间才有可能落地,这不光给了layer2,还给了其他的公链机会。比如今年目前暂定4-6月才会进行插槽拍卖的KSM/DOT。此外以Heco/BSC为代表的CEX公链生态也抓住了机会,得到了迅猛的发展,目前Heco上整体的TVL最高也达到过80亿美金。未来非常有可能的生态,是ETH生态、波卡生态、CEX做的公链生态,三足鼎立。[2021/3/12 18:37:22]
报告:大众对LINK的社交情绪严重看空:区块链分析公司Santiment 7月8日发布报告,表示LINK的社交情绪实际上严重看空,报告称,“尽管LINK在过去三个月里暴涨了82%,但就目前的价格水平而言,仍有很多人不相信它。如果社交指数偏离平均水平低于-0.5,则意味着人们怀疑这种反弹能否继续。”[2020/7/9]
zkRollup,按照采用的零知识证明协议又分为三类:1/Groth162/PLONK3/STARK。Groth16协议需要针对每一个电路进行初始设置(TrustedSetup)。PLONK协议在一定规模下的电路只需要一次初始设置。STARK协议不需要初始设置。但是,相对另外两种算法,STARK协议,证明数据量大,验证时间长。相对来说,在Layer2的场景下,PLONK是目前广泛使用的算法。
STARK协议和SNARK(Groth16/PLONK)协议比较:
动态 | 立法者在与扎克伯格共进晚餐期间提及对Libra的担忧:根据华盛顿邮报9月19日发表的一篇文章,参议员Mark R. Warner透露,9月18日,在与民主党议员共进晚餐期间,Facebook CEO扎克伯格听取了他们对隐私、对恶意内容的担忧及对Facebook将如何处理这些问题的疑问。一位拒绝透露姓名的成员特别提出了有关Libra的问题。Warner称:“当Facebook的代表在参议院及我的委员会面前作证时曾表示,如果不能获得美国监管机构的批准,就不会推出Libra。但却又听说很多迹象表明Facebook可能会先选择在其他国家推出。因此有人没有说实话。”Warner补充说,扎克伯格听到了这些担忧,但他仍然没有100%确定Facebook是否觉得他们可以在没有获得美国监管部门批准的情况下推出Libra。[2019/9/20]
https://github.com/matter-labs/awesome-zero-knowledge-proofs
总结一下,从安全性角度看,各种Layer2的排序如下:zkRollup,optimisticRollup,侧链。从提现的时间也印证了安全性,zkRollup的提现是分钟级别,其他两种方案,小时甚至是天级别。zkSync是比较完善的zkRollup开源项目,感兴趣的小伙伴可以查看之前的分析文章:
声音 | 赵长鹏:启明星(Venus)应该会对Libra有所帮助:赵长鹏于推特转发CryptosBatman关于“币安推出区域版Libra——Venus计划”的报道并就此表示:“推动采用?是的。统治一并?并不。永远乐于共存。事实上,如果你仔细想想,这应该会对Libra有所帮助。就这样吧。” 注:币安今日下午发布官方公告称,将打造一个独立自主的“区域版Libra”,称之为“启明星(Venus)”。[2019/8/19]
zkRollup,虽好,目前存在很大的缺陷:可编程性差。
细看zkRollup
相对其他Rollup方案,zkRollup方案多了zk证明系统。也就是说,在Layer2每个交易除了“执行”外,还需要生成证明,证明执行过程的正确性。熟悉零知识证明技术的小伙伴都知道,零知识证明的安全性在于”电路“的安全性。对于Layer2,每种交易的处理”固化“为电路,电路逻辑完全公开。对应于每种电路,存在唯一的验证秘钥。验证秘钥用在Layer1验证状态证明。通过验证的状态证明,符合固化电路的逻辑。
关键就在于Layer2交易的执行和固化电路语义是否一致。公开电路就是一种共识方式,供所有人查阅电路逻辑。简单的说,为了实现zkRollup,需要实现Layer2执行对应的电路。事实上,电路的实现相对复杂,没有高级语言,很多情况下都是手写R1CS。进一步,为了利用zk证明系统,为了优化电路的实现,整个Layer2的状态经常优化为电路友好结构。所以,zkRollup的系统需要考虑电路的结构,从而约束了Layer2交易以及账户模型。细心的小伙伴可以发现,不管是zksync/zkswap/loopring,都只实现了特定交易场景。
反过来说,如果需要通过zkRollup支持EVM的交易执行,需要将EVM的交易抽象成电路友好的账户模型。这种抽象并不容易,再者,EVM的描述电路可以预见比较大。从零知识证明的性能看,这方面会限制整个zkRollup的性能。
再看看zkRollup方案在Layer1的gas消耗。整个zkRollup方案的主要gas消耗为三部分:
TransactionRawData:在zksync中称为pubdata。为了保证dataavailability,所有的Layer2的交易都会以裸数据的形式提交到Layer1。Layer2Block管理:在Layer2提交区块状态时,Layer1维护着Layer2的区块结构和状态。验证Layer2Block状态:在Layer2提交证明时,Layer1需要验证状态证明。以一个区块350笔交易,每个交易的TransactionRawData的大小为20字节为例,一个区块处理的gas消耗:
虽然上述的数据不是精确值,但是足以说明交易原始数据在整个zkRollup方案中的gas消耗占比是非常高的。从这个角度看,Layer2的有些项目选择通过其他链下的方式存储交易数据。
Optimismvs.Arbitrum
OptimisticRollup兼容EVM。也就是说,Layer2支持可编程性,并且在以太坊上的程序几乎无缝迁移。为了保证链上的状态正确,这两种方案都提供一段时间内的挑战机制。挑战者提供挑战的证据,Layer1抉择正确与否。深入理解Optimism和Arbitrum可以查看之前的文章。
Optimism采用OVM执行Layer2交易。取名OVM是为了区分Layer1的EVM。因为提交到Layer1的状态需要检验正确性,Layer1需要“重放”Layer2的交易,也就是说,Layer1在有些情况下需要执行OVM交易的执行。OptimisticRollup最复杂的地方也在于此,用EVM模拟OVM,并执行Layer2的交易。可想而知,在Layer1的EVM模拟OVM的执行是比较繁琐,消耗较大的操作。
Arbitrum也是采用挑战机制。为了避免挑战的gas费用低,Arbitrum引入了AVM:
相对于EVM,AVM是一个相对简单的虚拟机。Arbitrum在AVM虚拟机上模拟EVM执行环境。也就是说,所有的Layer2交易都是在AVM执行,交易的执行状态可以用AVM状态表示。在提交到Layer1的状态有分歧时,挑战双方先将状态分割,找出“分歧点”。明确分歧点后,挑战双方都可提供执行环境,Layer1执行相关操作确定之前提交的状态是否正确。在Layer1挑战的是AVM的状态,分歧点的AVM的指令执行。
简单的说,为了省挑战的gas费用,Arbitrum采用了精简的AVM,通过快速分割,在链上只需要执行一个指令,判断状态是否执行正确。Arbitrum介绍文档中提到,整个挑战需要大概500字节的数据和9w左右的gas。在AVM的基础上,Arbitrum设计了mini语言和编译器,模拟了EVM的执行环境,从而兼容EVM。
总结
Layer2,相对于Layer1,在Layer1的基础上提供更丰富功能,更好的用户体验。资金状态确定性时长,安全性,可编程性是目前讨论的焦点。zkRollup是资金状态确定性最快的方案。optimisticRollup/侧链具有可编程性。zkRollup支持EVM的证明是个期待的方向。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。