@1shotapi 团队在实验 @PayPal 的 $PYUSD 进行 x402 付款时发现了一种有趣的失败模式,事后看来可能是显而易见的。
与 $USDC 不同,PYUSD(这是 @Paxos 的实现)在调用 `transferWithAuthorization` 时,如果使用了已用的 nonce,则不会回滚。
因此,如果促进者/验证逻辑在链上明确检查已用的 nonce,促进者将告诉服务器该交易是有效的,而 `/settle` 将消耗燃气处理一个不转移 PYUSD 的交易,而只是简单地发出 `AuthorizationAlreadyUsed` 事件,这将使客户可以免费使用付费 API,除非促进者正在检查发出的事件。
这也为这种类型的实现的高吞吐量用例提供了一个潜在的边缘案例,其中恶意用户可能会向服务器发送大量使用相同 nonce 的 x402 付款,即使进行链上读取,所有这些也都会验证,而促进者最终将为不会转移 PYUSD 的坏交易支付燃气,并且在包含在区块之前也不会回滚。
促进者保护自己免受此影响的唯一方法是保持已提交 nonce 的链下记录,并检查在最终结算中是否发出了 `Transfer` 事件,以便不被绕过付费 API。
我们希望听到 x402 协议贡献者的意见。
查看原文1,129
6
本页面内容由第三方提供。除非另有说明,欧易不是所引用文章的作者,也不对此类材料主张任何版权。该内容仅供参考,并不代表欧易观点,不作为任何形式的认可,也不应被视为投资建议或购买或出售数字资产的招揽。在使用生成式人工智能提供摘要或其他信息的情况下,此类人工智能生成的内容可能不准确或不一致。请阅读链接文章,了解更多详情和信息。欧易不对第三方网站上的内容负责。包含稳定币、NFTs 等在内的数字资产涉及较高程度的风险,其价值可能会产生较大波动。请根据自身财务状况,仔细考虑交易或持有数字资产是否适合您。