Optimistic Rollup自下而上全解读

本文通过一个简单的示例,从下而上完整地介绍了Optimistic Roll-Up(ORU)是什么。为了理解简单的ORU链,我们找出了规范说明书,“触摸并感受”其全部含义。

ORU是用于第二层扩容的一种关键设计模式(design pattern),其作用是让你实现并利用可扩展性。它们之所以令人兴奋,是因为其近亲——ZK-Rollups克服了多年来一直困扰着侧链、Plasma和State Channel的基础性限制问题。
1、问题
一所高中面临这样的一个问题:每隔一天,两名正在热恋中的学生总会打架,原因是有一方发现了另一方出轨了。
典型场景:
Alice因为看到自己的男朋友Bob亲了Cathy,非常生气。Bob会说:“我保证,你误会我了”,或者说:“我和她已经分手了!”但Alice不相信,在走廊上抄起椅子,砸向了Bob,从而影响到了整个学校。
解放方案 v1 
Jamal,学校里最聪明的书呆子,针对这个烦人的问题,提出了一种解决方案:每天晚上,每个学生用暗号发出下面的某一条消息:
   “我现在单身,不想谈恋爱”
   “我现在单身,想要谈恋爱”
   “我在约会X,我很专一”
   “我在约会很多人,我不专一”
这些签名没什么特别的,它们都是同一类签名,能帮助加密货币从一个地址转移到另一个地址。
在学校的走廊上,公布了一张“学生—公钥”映射表,所有人都能核实学生的签名是否有效。
Jamal让学生的恋爱生活变轻松了。在他开发的手机APP上,每个学生只需输入上面的四条消息之一,然后点击“签名并发送”即可。在后台,被签名的消息会广播至以太坊P2P网络。实际上,这些消息会进入Jamal家里的服务器,因为他充当了学生们的中继器,这样的话,学生们就不需要担心燃料(gas)了,甚至什么不需要知道。Jamal利用了神奇的智能合约(CREATE2 EVM操作码),使他能代表学生支付燃料费。每个月,学校都会报销这笔钱。
学校里有1000名学生,每名学生每天签发1条消息,每条消息的平均燃料费是0.1美元,则学校每月的开销是:
1000名学生x 1条消息/每天/学生 x 0.1美元燃料费/消息 x 30天/月= 3000美元 燃料费/月。
心疼。
解决方案 v2 
囊中羞涩的学校无法负担每月3000美元的开销。
这时候就需要Optimistic Rollups(ORU)前来救场了。Jamal说,通过ORU,学校可以使燃料费降低99%左右,方法如下:
当学生点击“签名并发送”时,签名后的消息还会像以前一样发送到Jamal家里的服务器上。但随后,他会把所有这些签名添加到一大串数据中。我们把这些数据叫做WiSWho(即“谁在和谁约会”):
WiSWho=“【alice的ID,alice的消息msg,alice的签名】、【bob的id,bob的消息,bob的签名】……
当然有其他更有效的方法来封装这些WiSWho数据,不过先忽略这一点。
然后,Jamal广播了一个用他的私钥签名的交易。交易消息显示:
“本人,Jamal,证明本交易附带的数据(WiSWho)代表了XX学生在X日/X月/X年的关系状态,并且我拉钩发誓,这里面包含了全部的事实且只有事实”。
用行话来说,Jamal是第二层的“操作员”。
如果你曾经在以太坊上进行过交易,那么你会知道这些附加数据的去向,即Etherscan资源管理器中的“输入数据”字段。如下图所示,在进行简单的以太坊转账时,多数情况下不会填写这个字段。当调用一个函数时,例如Uniswap的交换函数,会附加上函数名称及函数输入。而且,WiSWho就是在这里被附加到了Jamal的交易中。Jamal的交易是对第一层ORU合约中一个函数的调用。
只有Jamal的签名能校验以太坊上的这一份ORU合约。就第一层而言,WiSWho中的学生签名只是一块又一块“冰冷的”二进制数据。
这便是可扩展性取得进展的缘由:第一层上的全节点不会校验WiSWho内部的签名,而是仅校验ORU操作者的签名,并将附加的数据保存起来。
接下来,我们看看为什么这些数据必须永远只能由全节点保存。
2、悬念
你可能已经在上面Jamal的签名消息中,注意到了两个被强调的词语:
1. 全部的事实
2. 只有事实
缺点(1)——审查。即在Bob的收买下,Jamal恶意地审查了Alice的消息。Bob和Alice吵架了,于是想要破坏Alice的浪漫生活。
缺点(2)——欺诈。即Jamal加入了一条或多条无效的消息。例如,Jamal在Alice的消息中加入信息,说:“我正在同时和10个男孩和10个女孩约会”,而实际上,Alice根本没有签署过这样的消息。在WiSWho中,Jamal加入的Alice签名是无效的,是伪造的签名。他这么做的原因可能是Bob收买了他,想要伤害Alice,或者是Jamal本人憎恨Alice,想让她尴尬。正向我们所说的那样,ORU智能合约不会检查WiSWho内部内容的有效性,因为这么做会违背ORU的初衷:增加燃料费(签名校验可不便宜),并且在本质上变成了上述不可持续的解决方案v1。
如果Jamal是个好人,承诺永远不会进行审查或欺诈。但是,为了安全起见,我们最好不要依赖“不可能作恶”或“不会作恶”。
3、始终检查Jamal
学校通过软硬兼施政策,激励Jamal不进行审查或欺诈:
①软政策:向Jamal提供的服务,支付有吸引力的费用。每当Jamal提交每天的WiSWho交易时,智能合约向他的学校钱包中汇入一笔可以取出来的费用,就比如5美元吧。但是,Jamal现在不能把这5美元立刻取出来,必须要到月底。于是,Jamal会发现金额与日俱增,高到让他开始流口水。
②对抗审查的软措施:如果Jamal忽视了Alice的签名,那么Alice必须直接把自己的签名发布到当晚的智能合约中(当然会产生燃料费)。接着,第二天早上,Alice告诉了校长存在审查的情况。她也可能会告诉所有的学生。Jamal的声誉就会受到打击。
学校可以很容易地找到Jamal的替代者:合约已经在第一层上启动并运行,Jamal的替代者只需启动一个AWS lambda函数,即可听取学生的消息,批量处理签名,并把该单笔交易(tx)广播到ORU合约中。才多大点儿事啊!
实际上,任何愿意在合约上锁定保证金的人都可成为操作者。只不过他们需要向学生宣传自己,等等。
③ 对抗欺诈的硬措施:任何人都可以检测到Jamal的欺诈发布,并通过可以简单的欺诈证明,调用第一层的合同。另外,要求Jamal将保证金锁定在合约中(任何想要成为操作员的人都必须在合约将其认定为操作员之前存入一笔保证金)。
举报人可以通过如下的反欺诈证明举报Jamal:“嘿,ORU合约,这是已发布数据中Alice的签名,Jamal证明了该签名是由Alice签署的,但是我—举报人—声称该签名无效”。
合约会从历史数据内部提取Alice的签名,并根据Alice的公钥(在ORU合约订立时,储存在合约中)进行签名校验。如果签名的确是伪造的,则合约:
o 将清零Jamal的待定奖励。
o Jamal的保证金则会一半发送给举报人,另一半销毁。
4、深入硬措施
这一硬措施是ORU中最有趣、最典型的方面。实际上,这就是二层解决方案能成为ORU的原因!
这一措施有何与众不同之处:任何人都可以使用它,不仅限于学校或学生。WiSWho数据已经上链并长期可用,举报者只需要这些就能够检测Jamal提交的无效消息,向ORU智能合约证明存在这种问题,从而获得奖励。
硬措施的设计与执行方式是不同ORU实现方案之间最重要的区分因素。
5、教育部的来电
“何时实现主流应用”是密码界经常问的问题。如果主流最终大范围地采用“区块链”,那么ORU则有助于避免一时间的蜂拥而至。
假设教育部希望委托Jamal开始处理全国所有学校的签名。我们就会问:1层能处理多少所学校,而不是多少名学生。
或许你会问:“为什么不通过全国一个交易来更进一步,反而采用每所学校一个交易的方式呢?”
这个问题触及到了ORU可扩展性的天花板:区块燃料限制(block gas limit)。从燃料的角度看,Jamal发布的数据尽管价格便宜,但始终要消耗燃料。最终,全国所有学校全部数据的燃料总量可能会超过区块燃料限制的上限,在这种情况下,Jamal就需要分批提交。
因此,从ORU中可以挤出的扩展性收益是有上限的。如果要无限扩展,应使用侧链或Plasma等,但是,资金就不安全了。
6、收益,还是收益
收益来自于这样的事实:在理想的情况下,第一层的全节点无需执行埋藏在ORU操作者所附加数据内部的交易:
第一层全节点所产生的开销成本更低,因为存储数据的成本要比在其内部运行任何逻辑的成本低得多。
每笔交易的天然气成本更低,因为与执行交易相比,存储数据的天然气成本更低。
7、ORU与侧链/Plasma/State Channel有何不同?
不同于自2014年出现至今仍未获得任何前进动力的侧链,ORU链由第一层保护。
如果在ORU链上进行交易,例如,玩扑克或交易代币,资产的安全性则等同于在第一层本身(例如,以太坊主网)进行交易。当发生欺诈时,尽管可能会遇到不便,例如,等待一两个星期才能释放资金,但是第一层仍然可以保证资金的安全。
相反,如果在侧链上进行交易,则侧链上的矿工(PoW)或验证人(PoS)有能力窃取资金,因为无论第二层上在进行什么,他们可以随便地欺骗第一层。而第一层没有任何办法知晓下面的情况。
区别于Plasma和State Channel,ORU的反欺诈证明机制十分简单,任何人都可以提交。举报人拥有第一层上所有可用的数据,可以向ORU智能合约举报欺诈情况,并以此获得奖励。通常,在Plasma和State Channel中,用户有责任保证其资金的安全,并且必须“关注着”第一层上的情况,以防操作员或其他用户尝试欺诈性地退出。
8、执行摘要
Optimistic Rollup链实际上只是(1)以太坊主网等第一层链上的智能合约,以及(2)区块生产者(block producer),负责侦听专用P2P网络上的交易,将其批量处理成一大串数据,然后连同证明其有效性的签名一并发布到链上。
如果操作者在进行审查,则合约可直接接受用户的交易。这样的话,当操作者进行欺诈或不做出反应时,用户便可以带着自己的资金安全地退出ORU。而且更重要的是,如果确实存在欺诈,合约可核实欺诈索赔,扣除操作者的保证金。
检举人只需要附加至ORU交易的全部数据便可发现并举报欺诈行为,这是一定的。第一层全节点永远不会执行附加数据中的内容(除非有人举报欺诈行为),而这正是可扩展性收益的来源。对于第一层而言,这些数据只不过是需要永久保留的二进制块。
后续计划  
在接下来的文章中,我将介绍一些以太坊“杀手”、DeFi所追求的治理与预言机风险最小化、可自动调节的稳定币,或者更大胆一些完全无治理、无预言机,以及某些项目的对照。
感谢Takahiro Kido的歌曲,伴随了本文的创作。感谢Harry Kalodner提供的反馈意见。
祝您愉快。