百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

用原生L2代币来支付交易手续费(原生代币是什么)

mhr18 2024-10-17 10:28 19 浏览 0 评论

原文作者:NIC Lin

原文来源:medium

这篇短篇文章会介绍L2让使用者用该L2的代币来支付交易手续费的优缺点。

先备知识:

知道Rollup的运作机制及Force Inclusion机制

Rollup的Force Inclusion机制介绍

这篇文章将会介绍Rollup的交易抗审查机制—Force Inclusion,并以几个著名Rollup的设计与实作为例。

L2几乎都会发行自己的代币,但绝大多数的实际用途都只是用来参加治理(Arbitrum、Optimism)。有些L2会提供质押L2代币的功能,例如Mantle及Manta。这些质押可以用来「决定谁可以排序交易的权力」、「决定生产零知识证明的权力」,或是用来「确保L2数据的数据发布特性(Data Publication)有被保障」,详细可参考官方文章或文件:StarkNet、zkSync、Mantle、Manta。

注:不过要注意「数据是否正确发布」是没办法被客观证明的,因此也就没办法进行惩罚,所以我个人对「为了数据发布特性而质押L2代币」的设计仍然存疑。数据发布特性的介绍可参考:

数据可得性重新命名:用Data Publication取代Data Availability

最近有人提出用「Data Publication」来取代「Data Availability」,避免DA这个词所造成的混淆。本篇文章将会介绍DA这个词所带来的混淆以及为什么要用Data Publication来取代Data…

那L2代币可以用来支付使用者的交易手续费吗?这么做有什么样的优点和缺点?

优点

增加代币用途,让L2代币不是只有单纯治理功能。甚至可以搭配EIP-1559机制去销毁L2代币,让L2代币成为通缩代币增加价值。

缺点

L2的数据成本还是以L1代币计价

Rollup Sequencer在上传数据到Ethereum上时,还是得以ETH支付手续费,所以Sequencer得要承担风险Rollup代币及ETH之间的价格波动风险。如果它在「收到Rollup代币」到「将Rollup代币兑换成ETH」的期间,Rollup代币价格相对ETH价格下跌,那就表示赔钱;当然反之则是赚钱,不过Sequencer未必会想再多承担一层风险。

注:如果该L2不是Rollup、不是上传数据到Ethereum而是改成上传到其他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之间的互通性(Interoperability)将会变得很差。例如单纯的L2跨链转账,使用者不能单纯地把ETH跨过去就可以顺利在目标L2上开始交易,他会遇到和前面Polygon一样的问题,所以他必须换成目标L2的代币,例如(假设)从ARB换成OP,而这还会受到ARB OP的流动性所影响。如果有N条L2,那流动性就要分割到N-1个池子,使用者也要兑换N次才能在N条L2上开始交易。更复杂的操作例如跨链借贷、跨链开仓、跨链清算,都隐含着要先跨手续费过去,等于每次都要支付一定成本在这上面。

或例如Optimism为互通性而打造的Superchain,如果Superchain生态里的每个Rollup都用自己的代币支付手续费,那就等于直接抵触Superchain的目的和愿景。

不过以上「使用体验变糟」及「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或是以前的Ethereum)的链上,使用者就是指定一个固定的手续费。

注:StarkNet虽然还没有EIP-1559,但一样也是指定一个maxFee值。

不管在哪一条链上,有权排序、收入交易的人(矿工、验证者、Sequencer等等)都有权力可以审查交易、不收入特定交易,但只要某笔交易被收入了,那笔交易最多就是被征收使用者指定的手续费最大值。

公开Oracle提供ETH STRK报价?

有些人会觉得要有一个公开Oracle来提供ETH STRK报价,这样在把0.1 ETH的手续费转换成STRK数量时才有一个公开公正的转换汇率。不过如同前面一段提到的,Sequencer可以不收入特定交易,但只要收入了,最多就是收取使用者指定的手续费最大值,所以重点是使用者指定了愿意付出的手续费最大值(不管单位是ETH还是STRK),剩下就是等交易被收入。ETH STRK的汇率是否公开根本没有影响,只要Sequencer想要,他都有手段可以将使用者的交易手续费收到满。

所以就不需要Oracle了吗?

Off-chain Oracle for 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机制

为什么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 Inclusion交易要收取的手续费。

不过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规定Force Inclusion手续费和L2手续费都用L2代币的话,就不需要烦恼汇率的问题,不过使用者的Force Inclusion交易就要同时支付「交易数据上传到L1的成本」及「L2手续费」,分别是以L1代币及L2代币计价。这会影响到使用体验,不过这本来就是L2使用自己代币支付手续费就必须面对的挑战

相关推荐

【预警通报】关于WebLogic存在远程代码执行高危漏洞的预警通报

近日,Oracle官方发布了2021年1月关键补丁更新公告CPU(CriticalPatchUpdate),共修复了包括CVE-2021-2109(WeblogicServer远程代码执行漏洞)...

医院信息系统突发应急演练记录(医院信息化应急演练)

信息系统突发事件应急预案演练记录演练内容信息系统突发事件应急预案演练参与人员信息科参与科室:全院各部门日期xxxx-xx-xx时间20:00至24:00地点信息科记录:xxx1、...

一文掌握怎么利用Shell+Python实现完美版的多数据源备份程序

简介:在当今数字化时代,无论是企业还是个人,数据的安全性和业务的连续性都是至关重要的。数据一旦丢失,可能会造成无法估量的损失。因此,如何有效地对分布在不同位置的数据进行备份,尤其是异地备份,成为了一个...

docker搭建系统环境(docker搭建centos)

Docker安装(CentOS7)1.卸载旧版Docker#检查已安装版本yumlistinstalled|grepdocker#卸载旧版本yumremove-ydocker.x...

基础篇:数据库 SQL 入门教程(sql数据库入门书籍推荐)

SQL介绍什么是SQLSQL指结构化查询语言,是用于访问和处理数据库的标准的计算机语言。它使我们有能力访问数据库,可与多种数据库程序协同工作,如MSAccess、DB2、Informix、M...

Java21杀手级新特性!3行代码性能翻倍

导语某券商系统用这招,交易延迟从12ms降到0.8ms!本文揭秘Oracle官方未公开的Record模式匹配+虚拟线程深度优化+向量API神操作,代码量直降70%!一、Record模式匹配(代码量↓8...

一文读懂JDK21的虚拟线程(java虚拟线程)

概述JDK21已于2023年9月19日发布,作为Oracle标准Java实现的一个LTS版本发布,发布了15想新特性,其中虚拟线程呼声较高。虚拟线程是JDK21中引入的一项重要特性,它是一种轻量级的...

效率!MacOS下超级好用的Linux虚拟工具:Lima

对于MacOS用户来说,搭建Linux虚拟环境一直是件让人头疼的事。无论是VirtualBox还是商业的VMware,都显得过于笨重且配置复杂。今天,我们要介绍一个轻巧方便的纯命令行Linux虚拟工具...

所谓SaaS(所谓三维目标一般都应包括)

2010年前后,一个科技媒体的主编写一些关于云计算的概念性问题,就可以作为头版头条了。那时候的云计算,更多的还停留在一些概念性的问题上。而基于云计算而生的SaaS更是“养在深闺人未识”,一度成为被IT...

ORA-00600 「25027」 「x」报错(报错0xc0000001)

问题现象:在用到LOB大对象的业务中,进行数据的插入,失败了,在报警文件中报错:ORA-00600:内部错误代码,参数:[25027],[10],[0],[],[],[],[],[...

安卓7源码编译(安卓源码编译环境lunch失败,uname命令找不到)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

编译安卓源码(编译安卓源码 电脑配置)

前面已经下载好源码了,接下来是下载手机对应的二进制驱动执行编译源码命令下载厂商驱动https://developers.google.com/android/drivers?hl=zh-cn搜索NGI...

360 Vulcan Team首战告捷 以17.5万美金强势领跑2019“天府杯“

2019年11月16日,由360集团、百度、腾讯、阿里巴巴、清华大学与中科院等多家企业和研究机构在成都联合主办了2019“天府杯”国际网络安全大赛暨2019天府国际网络安全高峰论坛。而开幕当日最激荡人...

Syslog 日志分析与异常检测技巧(syslog发送日志配置)

系统日志包含有助于分析网络设备整体运行状况的重要信息。然而,理解并从中提取有效数据往往颇具挑战。本文将详解从基础命令行工具到专业日志管理软件的全流程分析技巧,助你高效挖掘Syslog日志价值。Gr...

从Oracle演进看数据库技术的发展(从oracle演进看数据库技术的发展的过程)

数据库技术发展本质上是应用需求驱动与基础架构演进的双向奔赴,如何分析其技术发展的脉络和方向?考虑到oracle数据库仍然是这个领域的王者,以其为例,管中窥豹,对其从Oracle8i到23ai版本的核...

取消回复欢迎 发表评论: