EIP-7702

中等

什麼是 EIP-7702?

EIP-7702 是一項旨在強化外部持有帳戶 (EOA) 功能的提案。EOA 是以太坊網路上的基本帳戶,可用於發送交易並與智能合約進行互動。但是,它缺乏加密貨幣錢包的特定功能,例如批次處理交易和燃料費贊助。
EIP-7702 旨在暫時允許 EOA 在單一交易中如同智能合約帳戶般運作,從而引入原本僅適用於智能合約錢包的功能。EIP-7702 是為因應 EIP-3074 的一些限制與受到的批評而提出。

雖然 EIP-7702 目前尚未上線,但它得到社群的大力支持,許多人認為它可能取代 EIP-3074 提案。如果發生這種情況,EIP-7702 有望在 2024 年底預計進行的以太坊 Pectra 升級中實施。

EIP-7702 如何運作?

EIP-7702 在以太坊網路上提出一種新的交易類型,其中包含一個稱為 contract_code 的特殊欄位,使 EOA 在交易期間具備智能合約的特定屬性。讓我們說明一下它的運作方式。

交易準備

用戶首先準備交易,包括常見的詳細資訊,如目的地地址、燃料費限制以及需要發送的任何資料。除了這些詳細資訊外,用戶還會在 contract_code 欄位中加入一段特殊的智能合約程式碼。這段程式碼概述了暫時指定給其 EOA 的智能合約功能。

授權 

用戶接著簽署交易。此簽署非常重要,因為它用於驗證交易,並包括授權清單。這份清單詳細列出 contract_code 以及其執行條件。本質上,它會驗證和授權將智能合約程式碼暫時指定給 EOA。

執行

當交易提交至以太坊時,網路會透過將特定 contract_code 暫時指定給 EOA 來處理交易。在此階段中,交易會在將 EOA 視同智能合約的情況下進行處理,並利用 contract_code 所提供的功能。

恢復

交易完成後,以太坊網路會自動移除 EOA 的臨時 contract_code,使 EOA 恢復原始狀態,失去智能合約的臨時功能。

送貨比喻

假設 Bob 是一名送貨司機,他的普通車輛只能運送小包裹。有一天,Bob 收到了一份需要運送大包裹的訂單。Bob 沒有拒絕訂單,而是決定租用一個額外貨箱,並安裝在其車輛上。完成包裹運送後,他將貨箱歸還租賃店,恢復成原來的普通車輛。

在這個比喻中:

  • 普通車輛代表 EOA。

  • 臨時貨箱是提供額外功能的 contract_code
  • 送貨行程是交易。

  • 租用和歸還貨箱代表 contract_code 的暫時性,它僅在交易期間有效。

EIP-7702 的好處

安全性

透過在交易完成後自動移除臨時合約程式碼,EIP-7702 可降低未經授權行為的風險。此可確保強化功能僅在交易期間有效,從而限制潛在的漏洞。

彈性

EIP-7702 能實現多種應用案例,例如批次處理交易,可將多項操作合併為一個交易。它亦支援燃料贊助,可讓某個帳戶能夠支付另一個帳戶的交易手續費。

智能錢包採用

EIP-7702 可使 EOA 暫時具備智能合約功能,從而鼓勵使用智能錢包功能,而無需對 EOA 進行永久變更,減少相關安全風險。

結論

EIP-7702 是一項暫時賦予 EOA 智能合約功能來解決其限制的提案。此提案可將智能合約功能的持續時間限制在單一交易的長度內,從而提高安全性。它亦可透過批次處理交易、燃料費贊助和其他功能提供更大彈性。

儘管其未來尚不確定,但 EIP-7702 所獲得的大量支持顯示其極有可能被納入即將於 2024 年底進行的 Ethereum Pectra 升級中。