VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

账户抽象:追踪一项可编程账户操作

Three students in school uniforms work through open books at a classroom table, with textbooks and stationery nearby and study notes on the whiteboard behind them.

English version · 区块链学习导航 · 上一篇

区块链学习 · 文章 BC064

三名学生在教室桌旁一起阅读书本,身边放有课本和文具。
学习场景配图;不代表照片中的学生正在学习区块链。

可编程区块链账户能够按照明确的授权策略,判断一项拟议操作是否被允许。因此,值得追问的不只是有没有人提供签名,还包括:哪个规则检查了签名,它允许执行什么动作,还有哪些条件尚未满足?

账户抽象可以支持受限权限以及不同的执行费用支付安排。这些能力来自具体标准、账户实现和已配置规则。一个产品名称不能证明每个账户都有恢复功能、每段会话都受到严格限制,或者每次请求都会获得费用赞助。

本课通过一项虚构的博物馆目录操作,依次分析账户授权、费用赞助、打包与应用执行。所有名称都是教学标记,策略时间也由题目虚构。无需生成密钥、部署账户、存入资金或提交操作。学习目标是先读懂证据链,再理解便捷界面所表达的结果。

选择适合你的阅读路线

本篇目录

  • 第1至3节介绍参与方,并给出完整的虚构策略。
  • 第4至8节区分权限、付款条件与执行结果。
  • 第9至12节提供证据清单、练习答案与来源记录。

返回目录 · 下一节

1. 先描述账户规则,再描述界面

先考虑一种简单的基准账户:其普通授权依赖某个指定签名密钥。再考虑另一种账户,它按照配置好的程序判断权限:例如,一个权限主体可以修改管理设置,另一个只能在限定时段内更新某个目录对象。后一种安排需要表达并执行这些不同的权力。

关键变化在于决定账户能够做什么的规则。精美的登录页面并不等于这套规则。页面可以收集请求、解释内容、安排递交,但拟议动作是否被允许,取决于账户实际采用的授权路径。

ERC-4337定义了通过EntryPoint处理的UserOperation,并允许账户采用自己的验证逻辑。UserOperation与承载它的基础链交易是不同对象。该规范创建于2021年9月29日;本课核对时,其状态为Final。参见ERC-4337规范。

这里的比较有明确范围,并不是说所有外部拥有账户都永远不能具有可执行行为。EIP-7702另行规定了EOA的持久代码委托机制,创建于2024年5月7日,核对时状态同样为Final。它与ERC-4337属于不同机制,也可以组合使用。两份规范都不能直接证明某个未指明的钱包具备哪些功能。参见EIP-7702规范。

返回目录 · 下一节

2. 沿着四种职责追踪操作

本课把账户、打包者bundler、EntryPoint和可选的费用赞助方paymaster分开讨论。

账户执行已配置的授权条件。打包者接收候选操作,进行初步检查,并把操作打包进链上的EntryPoint调用。打包者文档介绍了这种收集和打包职责。初步检查结果描述的是被检查的情境,并不承诺所有未来状态都会给出相同结果。参见打包者概述。

EntryPoint协调相关验证与执行过程。使用paymaster时,它按照自身条件判断是否赞助费用。paymaster文档将费用赞助描述为具有独立条件的服务。本课只采用这一有限职责,不假设所有实现具有统一的收费政策或接口版本。参见Paymaster概述。

给每个参与方分配一个明确问题:账户判断操作是否获得授权;赞助方判断是否支持指定付款路径;打包者判断操作在已检查情境和拟议打包方案下是否合适;应用随后判断所请求的状态变化是否符合自身规则。如果把这些问题压缩成一个绿色对勾,重要信息就会消失。

返回目录 · 下一节

3. 虚构的权限卡

账户AcctQ已经存在,运行在虚构链S上,并识别EntryPoint E。账户所有者此前为会话权限主体K配置了以下规则,范围仅限于:

  • 目标只能是CatalogueX。
  • 方法只能是setLabel。
  • 对象只能是Object42。
  • 不得转移资产。
  • K仍须处于有效状态。
  • 账户所用的虚构整数策略时间t须满足100 ≤ t ≤ 120,包含两个端点。

这是题目给定的账户策略,并不是ERC-4337统一规定的会话格式。会话密钥文档明确说明,受限会话的约束由具体钱包逻辑执行。“会话密钥”这个名称本身并未定义目标、方法、到期时间或撤销规则。参见会话密钥与委托。

下面各案例彼此独立。除案例明确修改的事实外,均假设策略被正确实现,真实授权绑定了预期操作及其情境,重放保护正确,执行资源充足,其他必要检查也全部满足。这里的t只是教学参数,并不表示某个标准字段的编码、单位或边界惯例。

操作请求CatalogueX将Object42的标签设为“Gallery North”。应用另有一个前置条件:当前目录修订号必须与请求中给出的修订号相同。这属于目录业务规则,不是账户的重放计数器。通过其中一个检查,不能证明另一个也已通过。

返回目录 · 下一节

4. 一次改变一个字段,检查权限

在t = 110、K仍有效,而且目标、方法、对象及不转移资产的条件都正确时,账户授权检查通过。结论到此为止。此时尚未证明获得赞助、已被纳入区块、应用执行成功或结果具有最终性。

保持可读标签不变,只把Object42改成Object43,授权就会失败。权限指定了对象,不是允许修改任何描述相似的对象。把setLabel改成管理方法,也会失败。把CatalogueX改成另一个目标,同样失败,即便那个目标提供同名方法。

接着保持这些字段正确,只改变时间。按照包含端点的规则,t = 120时授权通过,t = 121时失败,t = 99时也失败。计算并不难,重要的是认真核对两个边界,而不是把“临时”理解成自己设想的持续时间。

如果请求额外加入资产转移,就违反了题目中的禁止转移条件。使用错误链或未被识别的EntryPoint,也无法通过给定的情境检查。对另一项操作有效的签名,不能修复这些差异。

还要留意哪些权力并没有出现。修改标签的权限不包括替换账户所有者、安装模块或修改会话自身的限制。这些能力需要各自的授权路径。本权限卡没有把它们授予K。

返回目录 · 下一节

5. 费用赞助回答的是另一个问题

现在加入可选paymaster P。在本教学路径中,P必须同意赞助;如果P拒绝,题目没有提供备用付款来源。这是明确给定的路径假设,不表示所有可编程账户都依赖某个赞助方。

第一种变体中,账户策略允许Object42更新,但P拒绝赞助。给定的赞助路径不能继续。这不能说明K缺少指定的目录权限,问题出在所选择的付款路径。

第二种变体中,P愿意赞助Object43更新。账户策略仍会拒绝这项请求。别人愿意承担费用,并不会扩大K的权限。因此,“赞助方批准了”不是完整结论,除非说明批准的究竟是什么。

第三种变体中,两项检查都通过。在给定条件下,这两处障碍被排除,但请求的新标签未必符合目录当前修订号,也不能保证操作一定会被纳入区块。

这种区分有助于排查问题。如果某项服务停止赞助,值得核实的是是否存在另一条已获授权、得到支持的路径,不能直接假设它存在。反过来,换一个赞助方也不能补足对象权限。诊断应依据失败阶段的证据,而不是笼统宣布账户已经失效。

返回目录 · 下一节

6. 模拟检查的情境可能发生变化

在策略时间110,打包者对请求进行模拟,此时K有效,给定检查全部通过。随后,在相关链上验证发生前,一个拥有独立管理权限的主体撤销了K。题目进一步给定:后续验证所使用的状态已经包含这次撤销。

之后的账户检查失败,因为规则要求K仍有效。较早的模拟不一定不诚实,也不一定计算错误,它描述的是较早状态。如果把模拟结果理解成对未来权限的预留,就额外加入了策略中没有提供的保证。

因此,有用的记录应说明初步检查使用的状态和假设、检查的确切操作,以及之后的处理结果。缺少这些情境时,“模拟成功”不能回答请求实际被处理时是否获得账户授权。

描述撤销时也需要准确。界面显示已请求撤销,与相关状态已经体现撤销,是两回事。本例明确给定的是后者。如果缺少这个事实,就还需要有关顺序和已接受状态的证据。

这说明便捷性与确定性需要分别理解。打包者可以简化递交过程,却不能控制中间发生的所有应用变化和授权变化。不了解条件为何改变就反复提交,也不能证明存在有效路径。

返回目录 · 下一节

7. 账户验证与应用执行有各自的结果

回到获准操作Object42的请求。K有效,t = 110,赞助条件也通过。请求预期目录修订号为7,但应用当前已处于修订号8。假设CatalogueX严格检查修订号相等,并将这次更新失败向上传递为执行失败。

按照题目给定的应用规则,目录更新失败。这不意味着K原本没有受限权限,而是说明:一项获得授权的请求,尝试执行的应用状态变化已经不满足前置条件。

带版本的EntryPoint代码说明了区分阶段的重要性。在v0.8.0实现中,验证和操作执行属于不同处理环节,操作结果记录包含成功与否的信息。代码也存在导致整个打包交易中止的失败路径。因此,不能普遍概括为“任何失败都会撤销所有操作”,也不能概括为“单项操作失败绝不影响整个打包交易”。参见EntryPoint v0.8.0源码。

解释实际结果时,需要识别已部署版本、账户执行行为和确切失败类别。本练习不为未指明的实现计算费用、nonce后果或回滚边界。外层交易的状态本身,也不能替代这一次目录更新的结果证据。

应当追问预期应用状态的结果:在已识别的被接受状态中,Object42是否确实获得了所请求的标签?如果记录仅说明承载它的交易被处理,回答的仍是较窄的问题。在此之后,最终性还需要对应链的证据。

返回目录 · 下一节

8. 受限权限取决于完整执行路径

本模型假设目标、方法、对象以及禁止转移资产等限制,确实约束了实际效果。这个假设很重要。如果某实现只检查友好名称,却允许通过另一条不受限制的路径执行,就不符合本权限卡。

阅读设计说明时,应问清每项限制在哪里执行,以及还有哪些路径能够行使权限。会话是否真的局限于声明的操作?其他模块能否独立行动?谁能够修改规则?这些是具体架构问题,不能据此直接接受或否定整个可编程账户类别。

恢复功能也需要同样谨慎地理解。会话权限不会自动包含所有者恢复能力。如果账户存在独立恢复路径,就需要另行说明参与方、等待时间和权限。本例中的K没有恢复权或管理权。

这里存在实际取舍。狭窄权限可以缩小该权限主体失控后的影响范围,前提是实现及所有可达路径都保留了限制。同时,新增策略代码与依赖关系也需要审查。单凭功能清单,无法判断某个已部署账户是否满足这些条件。

返回目录 · 下一节

9. 建立一张操作证据卡

简明的证据卡能让支持沟通或课堂分析清楚得多。先记录账户与链、被识别的EntryPoint及实现版本、确切请求、适用策略和相关状态,再分别填写以下观察结果:

  • 初步检查:检查了哪项操作,使用哪个状态?
  • 账户授权:哪些条件通过,哪些失败?
  • 付款路径:需要哪个赞助方或其他给定安排,结果如何?
  • 处理情况:操作是否确实在已识别的链上情境中被处理?
  • 应用效果:预期状态变化是否成功?
  • 最终性:哪些协议专属证据覆盖这一结果?

不要补造缺失信息。如果现有证据只能证明赞助方愿意支付,就将账户授权标为未知。如果没有执行结果,不要把纳入通知改写成目录更新已经完成。

证据卡也能帮助确定下一步该问什么。对象不符的拒绝需要核对权限定义;修订号过期需要核对应用状态和请求构造;缺少赞助决定则属于付款路径。这些诊断都可能发生在账户正常、区块链也正常运行的情况下。

返回目录 · 下一节

10. 练习:找出未满足的条件

练习1:最后一个允许的时间

在t = 120时,所有给定条件均满足。账户策略是否允许请求?t = 121时有什么变化?

答案:120包含在区间内,因此账户策略允许;121不在区间内,时间条件失败。这两个结论都不能单独证明最终执行结果或最终性。

练习2:赞助方慷慨,但对象错误

P愿意支付一项签名正确的Object43更新费用。K的策略仍只指定Object42。赞助批准能否使操作获得授权?

答案:不能。对象限制没有满足。支付意愿与账户权限是两个独立条件。

练习3:请求有权限,但路径不可用

Object42请求通过账户检查,P却拒绝赞助,而且题目没有提供其他付款路径。可以得出什么结论?

答案:指定赞助路径不能继续。不能扩大为K没有目录权限,也不能声称账户所有可能路径都不可用。

练习4:先模拟,后撤销

打包者检查确切操作时K有效,之后验证所用的状态已经包含有效的授权撤销。后续账户检查应依据哪个结果?

答案:依据后续状态。有效状态条件已经失败,先前模拟并未预留权限。

练习5:授权通过,修订号不同

操作预期修订号7,CatalogueX当前为8,并执行相等检查。所有授权与赞助条件均通过。能否证明标签更新成功?

答案:不能。按照给定执行行为,应用前置条件失败,更新也失败。账户授权结果是另一项观察事实。

练习6:产品说明缺少字段

说明只写“临时会话访问”,没有目标、方法、时间和管理路径。能否由此推导出Object42权限卡?

答案:不能。这句话没有给出那些限制。需要核对实际配置及其执行方式,不能把本课虚构规则套到产品上。

返回目录 · 下一节

11. 常见问题

账户抽象会消除签名吗?

它改变的是授权可以如何被判断。具体账户仍可能使用签名,并结合其他条件。关键在于实现了什么规则,而不是密码学是否消失。

本课架构必须使用paymaster吗?

不必须。在参与方结构中,P是可选的。但一旦某道练习将P设为唯一给定付款路径,P的批准就成为该练习的必要条件。系统层面的可选功能,仍可能被某项具体配置所依赖。

可编程就意味着可恢复吗?

只有实际配置的恢复路径才能支持这一结论。本课会话规则没有提供恢复功能。恢复、签名权限和付款安排都需要分别说明条件。

便捷界面能证明操作成功吗?

界面陈述是来自该界面的证据。要确立效果,应将确切操作关联到相应处理结果和应用状态,再依据链规则判断最终性。清晰的界面应当帮助呈现这些差别。

返回目录 · 下一节

12. 来源与延伸阅读

以下来源核对于2026年10月12日。ERC-4337与EIP-7702是具有各自创建日期和当前状态的标准文件;文档页面属于持续维护的说明;实现引用固定为v0.8.0。不能把这些资料的细节当成可互换版本。

如需更广泛的入门说明,可阅读How Blockchain Works。接下来可学习持续存在的代币额度授权:那是另一种授权机制,需要在各次动作之后继续追踪剩余权限。核心习惯相同:识别确切规则、规则被判断时的状态,以及证据实际确立的结果。

返回目录