BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

不斷進擊的以太坊:EIP-1559之後的EIP-3074

ChinaDeFi
特邀专栏作者
本文約3568字,閱讀全文需要約6分鐘
Ropsten的高度為10499401,已於6月24日推出。另一方面,Goerli 在6月30日,Rinkeby將在7月7日。
AI總結
展開
Ropsten的高度為10499401,已於6月24日推出。另一方面,Goerli 在6月30日,Rinkeby將在7月7日。
  • Ropsten測試網已於6月24日上線,區塊高度為10,499,401。

  • 自部署以來,約有88,500個測試網以太坊被燒毀,價值1.776億美元。

  • 大約在Eth2啟動的同時,價值2億美元的10萬以太坊已經被存入Eth2的質押合約。

  • 備受期待的以太坊改進提案EIP-1559最終部署在Ropsten測試網,用於以太坊即將到來的倫敦升級。幾天前,倫敦硬分叉的三個以太坊測試網發布日期公佈。以太坊核心開發者Tim Beiko宣布Ropsten、Goerli 和Rinkeby 測試網的區塊高度已經確定。 Ropsten的高度為10499401,已於6月24日推出。另一方面,Goerli 在6月30日,Rinkeby將在7月7日。

    EIP-1559的燃燒機制可能有利於代幣的價格

    雖然倫敦硬分叉有5個以太坊改進提案,但EIP-1559已經吸引了所有的注意力。新的升級預計將消耗網絡上的交易費用。據EIP-1559跟踪網站Watch the Burn報導,自從Ropsten測試網在倫敦進行升級後,約有88500個測試網以太坊被燒毀,價值1.776億美元。然而,EIP-1559所燃燒的大量以太坊再次引發了Eth2 大修通貨緊縮的討論。由於燃燒機制,以太的燃燒速度比流通的供應更快。這可能對ETH的價格非常有利。

    在EIP-1559之後,社區關注的是EIP-3074,旨在解決安全問題

    然而,EIP-1559並不是以太坊社區關注的唯一EIP。 EIP-3074是社區在升級中高度期待的另一個改進提案。根據David Mihal和他的推文,以太坊忽視的一個主要安全問題是ERC20的批准。他補充說,他已經推動了ERC777,他們修復這一問題的唯一機會是EIP-3074。這一以太坊改進提案將允許用戶在一次交易中批准轉賬、執行操作和撤銷批准。

    此前,以太坊開發者註意到EIP-1559的設計並不是為了降低gas成本:但許多人仍然相信,該提案肯定會大幅降低gas成本。這甚至可能使礦工的收入減少50%,導致“礦工起義”,但最終以失敗告終。儘管如此,倫敦的升級預計將促進以太坊的看漲趨勢。知名加密分析師CryptoQuant指出,大約在Eth2推出的同時,價值2億美元的10萬以太坊已經存入Eth2的質押合約。目前,超過5%的ETH供應量被鎖定,價值約117.5億美元。

    什麼是EIP-3074?

    當我們想要發送代幣到智能合約時,通常必須做兩個交易:第一筆交易approve是花費我們的代幣的合約,第二筆是transferFrom將代幣發送到合約的交易。

    EIP-3074通過引入一種智能合約的方式來在外部擁有的賬戶(EOA,或簡單地說一個常規以太坊地址)中發送交易,來解決問題。

    這個EIP介紹了兩個EVM指令AUTH和AUTHCALL。第一個設置*authorized*基於ECDSA 簽名的上下文變量。第二個發送呼叫作為*authorized*。這實質上將EOA 的控制權委託給了[a] 智能合約。

    AUTH和AUTHCALL EVM指令(也稱為操作碼),讓智能合約基於已簽名的消息授權EOA,並從該EOA發送交易(“調用”)。這帶來了很多可能性,比如:

  • 贊助交易(也稱為元交易):從另一個賬戶支付交易的gas。這也將允許我們從一個沒有任何以太的地址發送代幣。

  • 批量交易:在一個調用中發送多個交易。這保證了在同一個區塊中執行兩個或多個交易,還可以降低交易費用。

  • 二級標題

  • 二級標題

    AUTH和AUTHCALL操作碼

    EIP-3074定義了兩個新的操作碼,可以從智能合約中調用:

  • AUTH (0xf6) -根據簽名和提交授權外部擁有的帳戶。它接受四個輸入參數:commit和簽名的yParity、r和s。

  • AUTHCALL (0xf7) -在授權的EOA上下文中發送調用(交易)。它接受8個輸入參數:gas、addr、value、valueExt、argsOffset、argsLength、retOffset、retLength。這類似於現有的CALL操作碼。

  • 為了授權一個EOA,我們需要一個來自該EOA的簽名消息。調用AUTH的智能合約可以從消息簽名中恢復簽名者,然後將消息簽名設置為authorized EVM上下文變量。現在,無論何時智能合約調用AUTHCALL,調用者都被設置為授權地址。當被調用的智能合約調用CALLER(例如,通過Solidity的msg.sender)時,這現在是授權EOA的地址,而不是執行調用的智能合約調用者的地址。

    發送一個或多個交易的基本流程如下所示:

    一個基本的EIP-3074流程,其中調用者契約發送多個交易。

  • EOA簽署授權信息;

  • EOA或其他gas支付人將交易數據和授權信息發送給調用者合約;

  • 二級標題

  • 二級標題

    圖片描述

    圖片描述

    圖片描述

    圖片描述

    授權消息格式,包括可用於提交的示例

    提交描述了EOA提交的對象,並且可以根據調用的某些屬性(如地址、值) 進行計算。調用者合約可以根據提供的屬性重新計算提交,如果這些字段正確,則執行授權。

    例如,假設我們想要發送以下交易(表示為JSON):

    我們可以哈希這些字段(例如,以一種確定的方式將它們連接在一起,或者使用EIP-712之類的東西)並將其用作提交。

    我們可以在智能合約中提供要發送的交易和授權消息的簽名,如此JSON數據所示。合約函數可以是這樣的:

    正文

    正文

    限制和安全問題

    正文

    正文

    弱提交和重放攻擊

    如上所述,EIP-3074沒有為提交定義標準化的格式。調用者可以自由地以他們想要的任何方式實現這一點。這意味著調用者完全負責提供足夠的保護,以防止(例如)重放攻擊。

    如果提交不包含某種隨機數,則可以簡單地獲取簽名消息並將其再次發送給調用者。惡意調用者可以通過根本不驗證提交來獲得對EOA的控制。我們在簽名消息時應該始終小心。

    通過在授權消息中包含調用者的地址,EIP-3074具有防止重放攻擊的基本保護。這樣就不可能在另一個調用者上重放一個調用程序的授權消息。

    可升級的調用程序

    EIP-3074明確地指出,調用程序必須是不可升級的。如果調用程序是可升級的,則有人可以部署該調用程序的另一個版本,該版本不驗證提交,從而給予合約對EOA的完全控制。

    重入攻擊

    結論

    結論

    結論

    EIP-3074為以太坊帶來了許多令人興奮的新可能性。 AUTH和AUTHCALL允許EOA將帳戶的控制權委託給智能合約調用者,從而使發送批量交易、贊助交易等成為可能。不過,它對以太坊上的交易工作方式帶來了一些重大變化,所以在EIP-3074在主網上被激活之前,還需要對安全性進行更多思考。


ETH
開發者
歡迎加入Odaily官方社群