@1shotapi 團隊在實驗 @PayPal 的 $PYUSD 用於 x402 付款時發現了一個有趣的失敗模式,事後看來這可能是顯而易見的。 與 $USDC 不同,PYUSD(這是 @Paxos 的實現)在調用 `transferWithAuthorization` 時不會因為使用過的 nonce 而回退。 因此,如果促進者/驗證邏輯在鏈上明確檢查使用過的 nonce,促進者將告訴伺服器該交易是有效的,而 `/settle` 將消耗燃料處理一個不轉移 PYUSD 的交易,而是簡單地發出 `AuthorizationAlreadyUsed` 事件,這將讓客戶免費使用付費 API,除非促進者檢查發出的事件。 這也為這類實現的高吞吐量用例提供了一個潛在的邊緣情況,其中惡意用戶可能會向伺服器發送大量使用相同 nonce 的 x402 付款,所有這些付款即使進行鏈上讀取也會驗證,促進者最終將為不會轉移 PYUSD 的壞交易支付燃料,並且在區塊中包含之前也不會回退。 促進者保護自己免受此影響的唯一方法是保持一個離鏈的已提交 nonce 記錄,並檢查在最終結算中是否發出了 `Transfer` 事件,以便不會繞過付費 API。 我們希望聽到 x402 協議貢獻者的意見。