Back to top
  • 공유 分享
  • 인쇄 列印
  • 글자크기 字體大小
已複製網址

以太坊交易檢查提案:標準過寬仍可能放行非預期結果

智慧型手機錢包與交易驗證流程示意圖 / TokenPost.ai

以太坊(ETH)出現一項在交易執行後檢查結果的提案,但若檢查標準過於寬鬆,非預期結果仍可能通過。EIP-7906若要成為實際的安全防護,錢包與協議必須強制執行檢查,並防止交易建構者降低標準。

以太坊基金會於10月5日公布「交易斷言」(transaction assertion)研究,探討在交易執行後檢查餘額、儲存空間變化與事件。候選實作方案EIP-7906提出一種唯讀的POST_TX框架,在交易結束後執行。目前仍處於草案階段,是否納入Hegotá升級尚未確定。

交易簽名包含使用者核准的請求,但不會固定執行結果。若執行前的程式碼或區塊鏈狀態改變,實際結果可能與預期不同。以太坊基金會以交易排序造成兌換價格變動的三明治攻擊,作為結果不一致的例子。

EIP-7906設計TXTRACE列出交易的淨變化與事件,並透過TXDIFF確認特定地址及儲存空間的初始值與最終值。事件資料則使用EVENTDATACOPY讀取。即使儲存空間多次變動,系統也只保留最初與最後的值,不會記錄所有中間變化。

具備檢查功能,不代表所有交易都會自動受到保護。提案不強制每筆交易加入斷言,必要的檢查必須由錢包納入交易。若要在協議層級提供保護,就必須要求受保護功能執行指定的POST_TX檢查,並拒絕缺少檢查或加入其他檢查的交易。

以太坊基金會在研究說明中指出,若建立交易的前端遭到入侵,攻擊者可能加入寬鬆到足以放行攻擊的規則。現有兌換交易的最低收款數量設定,也呈現類似限制。Uniswap開發者文件警告,將最低收款數量設為0的範例在實際服務中有風險;文件也說明,設定較安全的數值時,可使用SDK或價格預言機等外部資料來源。即使設有條件,若門檻過低,略高於門檻的結果仍可能獲准。

檢查失敗時,已使用的交易成本不會退還。EIP-7906草案指出,POST_TX檢查失敗時,執行主體會回滾,但交易仍以失敗狀態留在區塊中,使用的Gas費用也必須支付。在驗證階段確定的變化則會保留。

以太坊基金會表示,應將希望受到保護的操作放在可回滾的執行主體中,並避免在驗證階段執行不受信任的操作。若檢查所需的Gas不足,斷言也會判定失敗。要保護交易結果,除了檢查邏輯,也必須考量失敗時哪些操作可以回滾。

檢查所參照的價格預言機或登錄表狀態,也可能在交易執行期間改變。提案文件提出,可在簽署時固定數值,或參照交易開始時的狀態;但同一區塊中、交易開始前價格變動的風險仍然存在。

EIP-7906以定義框架交易的EIP-8141為基礎。以太坊基金會公布的狀態顯示,EIP-8141列為預計納入Hegotá的提案,EIP-7906則仍在審查階段。實際上錢包與協議將採用哪些部分,目前也尚未確定。

先前曾介紹以太坊基金會探索在交易執行後確認狀態變化的方案。這次草案的細節顯示,僅有確認交易結果的功能並不足以完成防護;關鍵在於由誰設定使用者核准的標準,以及如何防止交易建構者削弱這些標準。

<版權所有 ⓒ TokenPost,未經授權禁止轉載與散佈>

最受歡迎

其他相關文章

留言 0

留言小技巧

好文章。 希望有後續報導。 分析得很棒。

0/1000

留言小技巧

好文章。 希望有後續報導。 分析得很棒。
1