(1)Cosmos x/authz 随着账户抽象越来越多地占据了开发人员的注意力,authz(核心Cosmos SDK的一部分)推出,允许一个账户通过授权来代表另一个账户执行某些操作,这与EIP-3074和EIP-7702类似。 Authz有几种预定义授权类型,这些授权类型将某些操作(如质押)的性能委托给被授权者,从而增强了用户体验。 通过authz,可以给出3种类型的授权: · GenericAuthorization:此授权给予被授权者代表授权者执行消息的无限制权限。 · SendAuthorization:与ERC20中的批准一样,该授权旨在为被授权者提供一个积极的支出限制,该限制定义可以代表授权者花费的最大金额。 · StakeAuthorization:此授权允许被授权者管理质押操作,例如代表授权者委托质押、撤销委托或重新委托。 授权由授权者的地址字节、被授权者的地址字节和授权类型组成。还可以定义时间段,限制特定时间段内的权限。在每个区块末端,该网络将通过一个名为pruning的过程删除过期授权。 了解运营框架 Authz可用于为各种操作提供授权,但为了简单起见,我们将研究Authz如何运作以启用通用一般的投票交易。 · 在执行任何授权之前实现授权接口。这个阶段还将定义消息类型,在本例中为MsgVote。在这里,我们看到了Alice对治理投票操作进行的授予。 · Bob生成一个未签名的投票交易。 · Bob生成一个已签名且已执行的来自被授权人的投票交易。交易完成,过期交易将被删除。
authz带来的好处有什么? · 操作安全性:验证者和其他用户可以向独立帐户授权,以便对治理建议进行投票或执行某些操作,从而增强帐户安全性并减少安全负担。 · 简化操作:交易可以在需要访问验证者密钥的情况下执行,多签钱包交易也可以通过使用单个交易为被授权账户进行Authz授权来简化操作。 · 无需迁移:与EIP-3074和EIP-7702类似,授权操作在用户的原始帐户中进行。用户不需要将其资产从原始帐户转移到新帐户来启用帐户抽象。 · DAO操作效率和灵活性:可以将一部分执行权赋予各DAO成员以执行特定操作。 · 质押奖励合成:Authz促进了再质押和同等服务的使用,以自动合成质押奖励。 Authz的局限和风险: 要注意通过Authz授权的交易类型。恶意授权可以执行可能对用户有害的各种类型的授权。 · GenericAuthorization:授予不受限制的权限,以代表授权者执行所多重签名。除非完全了解要签署的内容,否则强烈建议避免签署此类授权类型。一些钱包在签署Authz交易时也可能不提供警告。 · SendAuthorization:允许被授权者发送被授权者可以花费的最大数量代币,如果授权者没有指定具体额度的话。验证AllowList也很重要,它指定了可以接收被授权者所发送代币的具体地址。 (2)Fee Grant Module(费用授权模块) 用户体验存在的另一个障碍是,区块链用户需要持有各种原生代币,才能与不同的生态系统进行交互。这损害了整体用户体验,特别是对于那些第一次接触到Cosmos生态系统中存在的无数链的非加密原生用户来说更是如此。 然而,随着Fee Grant模块的整合,这一问题已经有所突破。与在以太坊上实现账户抽象的paymaster合约类似,Cosmos上的Fee Grant模块允许授权者向被授权者授予费用津贴,支付部分或全部交易费。资金仍在授权者的控制之下,可以随时撤销授权津贴。 费用授权分类 费用津贴可分为两类:BasicAllowance(基本津贴)和PeriodicAllowance(定期津贴)。 BasicAllowance允许被授权者使用授权者账户中的费用,直到达到支出限额或到期时间,然后该授权在状态中终止。需要注意的是,BasicAllowance实行的是一次性费用授权。如果支出限额和时间设置为空,则费用津贴没有有效期和消费上限。 PeriodicAllowance允许在每个指定的时间段后定期更新费用授权。Period_spend_limit指定在某时间段内可以花费的最大代币数量。Period_reset跟踪下一个时间段的时间,period_can_spend跟踪新时间段开始前剩余的代币数量。 了解运营框架 使用AllowedMsgAllowance为指定的消息类型创建一个Allowance津贴。津贴可以是BasicAllowance基本津贴或PeriodicAllowance定期津贴。如果设置了expiration到期时间,FeeAllowance将以expiration前缀在状态中排队,Endblocker将查验FeeAllowanceQueue状态检查到期授权,并删除任何发现的到期授权。除了MsgGrantAllowance之外,还可以使用MsgRevokeAllowance来撤销费用津贴。 总之,Authz和Fee Grant模块解锁了各种各样的创新用例,这些用例最终将在Cosmos生态系统上建设更好的用户体验。
|