以太坊錢包可能很快就要迎來重大升級。一旦升級完成,普通賬戶(EOA)即可發送批量事務、限期事務、無序事務等。
我與兩位同事 @_SamWilsn_ 和 @adietrichs 正在研究如何改善以太坊的交互體驗。經過多次迭代后,我們提出了 EIP 3074:操作碼 AUTH 和 AUTHCALL。
要想使用這兩個操作碼,外部賬戶需要在鏈下簽署一個消息,并將該消息發送給中繼者,再由中繼者將簽名和調用數據發送至一個鏈上合約(稱為 “調用者”)。調用者合約會先使用操作碼 AUTH 來驗證簽名,再使用操作碼 AUTHCALL 中繼外部賬戶的調用。
AUTHCALL 與普通調用只有一個區別:AUTHCALL 將調用者(例如,消息發送方)設為使用操作碼 AUTH 恢復的外部地址。這樣一來,用戶不使用以太幣也可與以太坊交互。換言之,他們的事務是由中繼者 “贊助” 的。
以太坊網絡當前已銷毀3,519,920.28枚ETH:金色財經報道,據Ultrasound數據顯示,截止目前,以太坊網絡總共銷毀3,519,920.28枚ETH。其中,OpenSea銷毀230,050.67枚ETH,ETHtransfers銷毀296,756.85枚ETH,UniswapV2銷毀197,378.05枚。注:自以太坊倫敦升級引入EIP-1559后,以太坊網絡會根據交易需求和區塊大小動態調整每筆交易的BaseFee,而這部分的費用將直接燃燒銷毀。[2023/8/7 21:28:34]
你可能會覺得這個機制似曾相識。事實上,這與元事務(meta-transaction)的運作方式差不多。但是這里要強調一下,元事務是不能隨意設置消息發送方的。因此,合約必須明確支持元事務。EIP 3074 旨在淘汰元事務,降低合約的復雜性。
在深入闡述運作原理之前,我們先來介紹一下我們想要構建什么。我們想要構建一個讓普通用戶無需使用以太幣即可以免信任方式發送事務的機制。這里的關鍵詞是 “免信任”,即,用戶不會授予中繼者任何可能會被利用的特權。
以太坊L2網絡總鎖倉量為58.3億美元:金色財經報道,L2BEAT數據顯示,截至3月2日,以太坊Layer2上總鎖倉量為58.3億美元。其中鎖倉量最高的為擴容方案Arbitrum,約31.9億美元,占比54.72%。其次是dYdX,鎖倉量9.8億美元,占比16.82%。[2022/3/2 13:33:14]
EIP 3074 通過謹慎選擇普通賬戶簽名中包含的參數來創建免信任系統。用戶簽署 keccak(0x03 ++ invoker_address ++ commit_hash)。
“type byte” 是 EIP 2718 的常量字節,值為 0x03。這個字節的作用是避免與其它簽名機制發生沖突,例如,EIP 2930 的訪問列表事務、EIP 1559 的費用市場事務、EIP 191 的 0x19 簽名消息等。
1inch以太坊版本交易額突破500億美元:鏈上交易聚合器1inch Network官方宣布,1inch以太坊版本交易額突破500億美元。[2021/6/2 23:05:30]
調用者地址將用戶的調用與特定合約綁定。用戶的簽名只對調用者合約有效。因此,用戶可以選擇自己信任的調用者,就像是選擇用來存放資產的智能合約錢包那樣。
我們預期只會有少量調用者存在,因為如果調用者合約的實現出錯,用戶就有可能蒙受損失(請注意,調用者是自主選擇加入的)。開發一個安全的調用者合約成本會很高,需要經過多方審計和靜態證明。
不過這與如今的慣例沒什么太大的不同。在存放巨額資金之前,智能合約錢包也應該經過全面的審計和證明。很多大型 DeFi 項目也是如此。
最后一個簽名參數是 commit_hash(或者 commit)。這為調用者設計者帶來了更大的靈活性,可以讓他們開發出很多不同的方案。
羅斯柴爾德投資公司已購買價值475萬美元灰度以太坊信托基金:總部位于芝加哥的羅斯柴爾德投資公司(Rothschild Investment Corporation)最近購買了26.5302萬股灰度以太坊信托基金,這是它對以太坊信托基金的第一筆投資。該公司周四披露,截至3月31日,其在以太坊信托的股份價值475萬美元。監管備案文件顯示,羅斯柴爾德是首批通過灰度的信托產品尋求ETH敞口的知名機構資產管理公司之一。(Coindesk)[2021/4/16 20:25:22]
這個 commit 限制調用者只能執行特定操作并創建特定的驗證要求(validity requirement)來處理調用。用戶可以信任調用者會遵循這一流程,因為他們可以在鏈上驗證代碼。這就是區塊鏈的優點。
我們來看一個簡單的案例。用戶想要通過調用者發送一個調用。為了避免他們的調用被無限次中繼,他們需要提供一個 nonce,另外還有其它不可更改的值。用戶對這些值進行哈希計算得到 commit,并將該 commit 包含在簽名消息內,以便合約使用操作碼 AUTH 進行驗證。
基于以太坊的DeFi協議Balancer在Algorand上擴展:基于以太坊的DeFi協議Balancer計劃在Algorand上擴展。Algorand首席運營官W. Sean Ford表示,一旦在Algorand區塊鏈上啟動,Balancer用戶將能夠與任何Algorand標準資產(ASA)建立流動性池或交易對。(The Block)[2021/4/6 19:52:01]
調用者會使用傳入的值來重新生成 commit 哈希。這樣一來,如果代付者(sponsor)改變了其中一個值,調用者計算得到的 commit 哈希會與外部賬戶簽署的完全不同,導致 AUTH 恢復出一個垃圾地址,如下圖所示:
希望你現在已經相信,調用者就像任何普通賬戶都可以使用的智能合約錢包。現在我們來看看如何使用 commit 來構建更有趣的方案。
通常情況下,“一個操作對應一個簽名” 已經成了經驗法則。這是一種比較簡單的理解。簽名是基于一個事務的哈希值創建的,為什么我們不將多個事務合并進行哈希計算呢?事實證明,EIP 3074 可以做到這點。
只要某個賬戶可以通過 AUTH 的驗證,調用者就可以按該賬戶的要求做任意多次 AUTHCALL。這樣做是沒問題的,因為我們相信調用者會如實執行代碼。我們可以設計將多個調用合并哈希成 commit 的方案。
在上圖所示的方案中,調用者會將所有值(nonce1、nonce2 等)合并進行哈希,生成 commit。調用者將使用這個 commit 和用戶簽名來調用 AUTH。AUTH 會驗證用戶是否真的簽署了這些參數。
然后,調用者會遍歷每個調用并驗證 nonce 和其它參數,然后將經過認證的調用數據(calldata)發送至被許可的地址。
在此基礎上,我們還可以構建更多方案。例如,假設你增加一個新的參數 “保質期”。該參數會與其它參數一起經過哈希得到 commit。另外,在驗證過程中,調用者會驗證expiration < block.number。現在,外部賬戶已經可以使用限期交易了!
EIP 3074 將帶來更多流暢的用戶體驗,同時不會引入額外的信任假設。如果你想要閱讀 EIP 3074 的完整內容,請點擊這個鏈接:https://eips.ethereum.org/EIPS/eip-3074
go-ethereum 的原型實現在此處維護:
https://github.com/quilt/go-ethereum/tree/eip-3074
我們正在與一些對該機制有興趣的團隊合作。如果你覺得這個機制有用的話,請告訴我們,讓我們一起努力!歡迎大家提供對該提案的反饋,非常感謝!點擊該鏈接,留下你的反饋:https://ethereum-magicians.org/t/eip-3074-auth-and-authcall-opcodes/4880/49。
最后,如果你對我們的工作感興趣,我們的團隊正在火熱招聘中。我們致力于對以太坊核心協議進行中長期改進。如需了解更多信息,請直接私信我 @lightclients。
(完)
原文鏈接: https://twitter.com/lightclients/status/1371911245561917441作者: lightclients翻譯&校對: 閔敏 & 阿劍
你可能還會喜歡:
賬戶抽象化(EIP-2938):為什么 & 如何做
以太坊元交易
以太坊中的賬戶、交易、Gas 和區塊 Gas Limit
從點到面,通過宏觀數據分析 DeFi 協議在這次黑天鵝事件引發的壓力測試中的表現。在 5 月 21 日晚間政府機構發布了針對「打擊比特幣挖礦和交易行為」的要求之后,全球加密貨幣市場發生持續兩日的.
1900/1/1 0:00:00期待大半年的Kusama的平行鏈競拍,終于要與我們見面了,最終競拍方案很可能會在今天的Polkadot Decoded大會上公布,那么作為KSM代幣的持有者.
1900/1/1 0:00:005月21日,在國務院副總理、金融委主任劉鶴主持召開的國務院金融穩定發展委員會第五十一次會議上,明確提出要堅決防控金融風險,強化平臺企業金融活動監管,打擊比特幣挖礦和交易行為.
1900/1/1 0:00:00在倫敦上周一個安靜的周四,幾乎是午夜時分。軟件工程師和兼職 Dogecoin 開發者 Ross Nicoll 正在穿上睡衣,準備睡覺,這時他的信息反饋突然變得活躍起來.
1900/1/1 0:00:00特斯拉 CEO 埃隆·馬斯克今早發推稱,特斯拉暫停使用比特幣支付,正考慮使用能源消耗更低的加密貨幣.
1900/1/1 0:00:00專業投資者“獲得”DeFi的速度比他們獲得比特幣(或以太坊)的速度快得多。 這不是猜想;這是事實。 作為Bitwise資產管理公司的首席信息官,我在前排座位上看到了這個假設的一個測試案例.
1900/1/1 0:00:00