这篇文章讨论了L2代币支付交易手续费的优缺点。使用者可以通过L2代币支付手续费,增加代币用途,搭配EIP-1559销毁代币也能提升价值。但是,用户体验可能变差,尤其是涉及跨L2使用体验。如果L2接受ETH和L2代币支付手续费,使用体验就不会受影响。StarkNet是第一个计划接受STRK支付手续费的L2,引入Oracle项目为ETH和STRK提供汇率报价。文中还重点介绍了Sequencer的权力和Oracle适用的场景,指出Oracle在L1的Force Inclusion机制中发挥更大作用。
这篇文章介绍了L2让使用者利用该L2代币来支付交易手续费的优缺点。
先备知识:
知道Rollup的运作机制及强制包容机制
Rollup 的强制包容机制介绍
这篇文章将会介绍Rollup这个工具抗审查机制—Force Inclusion,机器几个著名的Rollup的设计与执行实例。
L2几乎都会发行自己的代币,但信徒的实际用途都只是用来参加治理(Arbitrum、Optimism)。有些L2会提供质押L2代币的功能,例如Mantle及Manta。这些质押可以用来「决定谁可以排序交易的权力」、「决定生产零知识证明的权力」,或是用来「确保L2数据数据发布特性(Data Publication)有保障」,详细可参考官方文章或文件:StarkNet、zkSync、Mantle、Manta。
注:不过请注意「数据是否正确发布」是没办法被客观证明的,因此也就没办法进行惩罚,所以我个人对「为了数据发布特性而质押L2代币」设计的仍然存疑。
数据可用性重新命名:用数据发布取代数据可用性
最近有人提出用“Data Publication”来取代“Data Availability”,避免DA术语所造成的标记。本条款介绍DA术语该请求标记以及为什么要用Data Publication来取代Data…
那L2代币如何支付使用者的服务手续费?有优点和缺点吗?
优点
增加代币用途,让L2代币不是只有单纯的治理功能。 最多搭配EIP-1559尝试去销毁L2代币,让L2代币成为通缩代币增加价值。
缺点
L2数据成本还是以L1代币价格
Rollup Sequencer在上传数据到以太坊上时,仍然得以ETH支付手续费,所以Sequencer得要承担风险Rollup代币及ETH之间的价格波动。如果在「收到Rollup代币」到「将Rollup代币兑换成ETH」的期间,Rollup代币价格相对ETH价格下跌,那就表示赔钱;当然反之赚钱,不过Sequencer未必想再多承担一层风险。
注:如果该L2不是Rollup、不是将数据上传到以太坊而是改成上传到其他DA层的话,一样会遇到这个问题,只是ETH换成了该DA区的代币。像是Mantle或Manta都是将数据上传到其他DA层。
影响用户体验
如果L2只能使用自己的代币来支付手续费,会造成使用者使用体验变差,因为使用者进到该L2就得想办法再换成该L2的代币。例如Polygon PoS,如果使用者第一次使用Polygon PoS,以为把ETH存进去就可以开始使用,使用者会发现ETH没办法用来支付手续费,而且他也没有用来换成手续费的Matic代币,因此没法把ETH换成Matic,所以他必须再一次在L1先换到Matic然后再把Matic存进Polygon PoS才能正常使用。
注:严格来说Polygon PoS是属于安全性优先的侧链(Sidechain)而不是L2,不过不影响这里举的使用体验例子。
如果每个L2都变换,那N个L2就会造成使用者N次麻烦。
L2互通多层阻碍
如果L2都用自己的代币支付手续费,那L2之间的互通性(互操作性)将会变得很差。例如单纯的L2跨链转账,用户可以不能单纯地把ETH跨过去就可以顺利在目标L2上开始交易,然后遇到和前面Polygon一样的问题,所以他必须换成目标L2的代币,例如(假设)从ARB换成OP,而这还会受到ARB OP的流动性所影响。如果有N条L2,那流动性就要分割到N-1个矿池子,使用者也要兑换N次才能在N条L2上开始交易。
或例如乐观为互通性而打造的超级链,如果超级链生态里每个人都Rollup都用自己的代币支付手续费,那就等于直接抵触超级链的目的和愿景。
不过以上「使用体验变糟」及「L2互通性变差」的前提都是L2都「只」接受用自己L2代币来支付手续费。如果L2都开放让用户可以选择以ETH或是L2代币支付的话,就不会有上述这两个缺点:用户可以在做跨链操作时就以ETH为准则,在L2上独立操作的话就以L2代币支付手续费。而StarkNet便是即将成为同时提供ETH或STRK来支付手续费的L2。
STRK做为交易手续费
StarkNet去年底宣布将会支持「以STRK代币支付手续费」的选项,用户可以选择以ETH或STRK来支付手续费,Sequencer(StarkNet称为Operator)会承担ETH STRK汇率变化探索。那Sequencer要怎么决定一笔钱是不是0.1 ETH手续费这个项目如果改成STRK支付的话要收多少STRK?
Sequencer 的权力
无论在L1还是L2中,用户的货币交易基本上都是指定一个他愿意输手续费的峰值,例如在Ethereum、Arbitrum或Optimism等采用EIP-1559模式的链上,用户争夺一个maxFeePerGas值,maxFeePerGas乘上gasLimit就代表这笔交易的手续费峰值。如果是在非EIP-1559(例如Bitcoin或是依据以太坊)的链上,用户就是指定一个固定的手续费。
注:StarkNet虽然没有EIP-1559,但也是指定一个maxFee值。
无论在哪一条链上,有权排序、收入交易的人(矿工、验证者、序列器等等)都有权力交易、不收入特定交易,但只要某笔交易被收入了,那笔交易最多就是被征收用户指定的手续费最大值。
公开Oracle提供ETH STRK报价?
有些人会觉得要有一个公开的Oracle来提供ETH STRK报价,这样在把0.1 ETH的手续费转换成STRK数量时才有一个公开公正的转换汇率。不过,与前面一段提到的一样,Sequencer可以不收入特定交易,但只要收入了,最多就是采用用户指定的手续费最大值,所以重点是用户指定的愿意支付的手续费最大值(不管单位是ETH还是STRK),剩下就是等交易被收入。ETH STRK的汇率是否公开并没有影响,只要Sequencer想要,他都有手段可以将用户的交易手续费收到满。
那么就不需要Oracle了?
StarkNet Sequencer 的链下预言机
实际上还是需要Oracle,而且StarkNet也宣布会有Oracle来提供ETH STRK报价,只是这个Oracle会在链下针对StarkNet Sequencer提供报价服务。但我觉得Oracle不应该在这个场景中使用,后面会说明。
如果Oracle是在链下去提供报价给Sequencer,要怎么说服社会群Sequencer真的照着Oracle报价来计算STRK手续费?Oracle至少得公布他们的报价,让社会群能比对Sequencer是否有如实按照报价计算,如果发现Sequencer没有如实参考报价,那社会群至少可以提出证据来谴责Sequencer️。
如果Oracle的报价能写到链上或者整合进协议里,就能免除Sequencer作恶或失误的可能,不过这得牵涉到协议层的冲突,所以或许目前这个做法是以尽力获取信息于社会的最大利益做法的,毕竟StarkNet其实是可以完全让Sequencer自己决定的。反正如先前一样,使用者指定maxFee后剩下就是由Sequencer决定的。
那Oracle在哪才会真的派上用场?
力量包容机制
为什么Force Inclusion机制需要Oracle?先生态StarkNet目前还没有真正履行Force Inclusion机制,其他L2像是Optimism或zkSync都会在使用者在L1上执行Force Inclusion函式时,先向使用者接收L2的手续费。例如Optimism的depositTransaction函式会按照使用者指定的L2 gas limit去烧毁(消耗掉)对应的gas,也就是接收L1 ETH的意思;zkSync的requestL2Transaction函式会算出L2交易的基本成本并要求L1交易要带上足够的ETH来支付基本成本。如果今天Optimism或zkSync也推出自己的代币支付手续费的功能,那Force Inclusion机制有什么影响?
假设用户从L1请求强制获得他的L2交易收入,但是L1接收的是ETH,而L2手续费是用OP支付的话,要怎么计算该在L1收他多少ETH? 如果没有公正的汇率,就有可能造成使用者的超额手续费,等于是惩罚Force Inclusion用户;要么造成使用者害怕低廉手续费,都从L1去送交易而不是从L2。而这才是我觉得Oracle该派上用场的场景:让L1合约可以公正地计算Force Included交易要接收的手续费。
不过L2可以规定Force Inclusion交易和L2交易都以L2代币计价(即都接收OP),这样就不需要烦恼L1与L2手续费单位换算的问题。但要注意的是,仍然有一个成本是不可避免要以ETH计价—数据上传成本,所以用户的Force Inclusion交易会变成要同时支付ETH以及OP,这可能会造成一些使用体验上的摩擦,但这也是L2用自己代币支付手续费本来就需要面对的挑战。
总结
- L2发行自己的代币可以有不同用途,但如果将L2用于支付L2手续费会有什么样的优缺点?
- 优点我相信:L2代币会有一个明确的实际用途,如果搭配EIP-1559烧毁代币,可以进一步提升币价
- 但缺点也不少:Sequencer承担风险变大、用户的使用体验变差、尤其跨L2使用体验会糟糕很多
- 不过如果L2保留ETH和L2代币回到用来支付手续费,那就不会影响到使用体验(L2或跨L2)太多
- StarkNet是几个较知名的L2中第一个计划开放以STRK支付手续费的L2,并会引进第三方Oracle项目来为ETH STRK汇率进行报价
- 而这篇文章的重点是介绍“Sequencer权力”及“Oracle真正适合的场景”
- 「Sequencer权力」:Sequencer在收入及排序交易这件事上的权利每天都是大的,使用者没办法去挑战Sequencer的公平性,因为公平这件事是没办法在链上去证明的
- 用户能做的就是指定他愿意为他这笔交易罚金多少手续费(maxFee、maxFeePerGas),剩下就是找不到Sequencer并相信他了
- 「Oracle真正适合的场景」:正因为「只要Sequencer需要,它就可以将用户的手续费收到满」,所以L2交易引进一个Oracle来报价并没有太大的用途,更多的是让社会和用户安心,
- 真正有Oracle适合的场景应该是在L1上的Force Inclusion机制,因为Force Inclusion交易收取的手续费如果和L2手续费单位不同,且没有公正的汇率的话,就会造成无辜的用户超额Force Inclusion手续费,要么共用欺诈低廉手续费,都从L1送交易
- 如果L2规定强制纳入手续费和L2手续费都用L2代币的话,就不需要烦恼汇率问题了,不过用户的强制纳入交易就要同时支付「交易数据上传到L1费用」及「L2手续费」,分别是以L1代币及L2代币计价。这妨碍到使用体验,不过这本来就是L2使用自己代币支付手续费就必须面对的挑战。
资讯来源:由a0资讯编译自THECOINREPUBLIC。版权归作者A0资讯所有,未经许可,不得转载