以太坊錢包可能很快就要迎來重大升級。一旦升級完成,普通賬戶(EOA)即可發送批量事務、限期事務、無序事務等。
我與兩位同事 @_SamWilsn_ 和 @adietrichs 正在研究如何改善以太坊的交互體驗。經過多次迭代后,我們提出了 EIP 3074:操作碼 AUTH 和 AUTHCALL。
要想使用這兩個操作碼,外部賬戶需要在鏈下簽署一個消息,并將該消息發送給中繼者,再由中繼者將簽名和調用數據發送至一個鏈上合約(稱為 “調用者”)。調用者合約會先使用操作碼 AUTH 來驗證簽名,再使用操作碼 AUTHCALL 中繼外部賬戶的調用。
AUTHCALL 與普通調用只有一個區別:AUTHCALL 將調用者(例如,消息發送方)設為使用操作碼 AUTH 恢復的外部地址。這樣一來,用戶不使用以太幣也可與以太坊交互。換言之,他們的事務是由中繼者 “贊助” 的。
以太坊編程語言Solidity發布最新版本編譯器Solidity 0.8.18,支持巴黎硬分叉:金色財經報道,以太坊編程語言Solidity發布最新版本的Solidity編譯器Solidity0.8.18,新版本的功能包括:禁用CBOR元數據、支持巴黎硬分叉、棄用selfdestruct、從Yul生成EVM字節碼。團隊建議所有Solidity開發人員升級到版本0.8.18以利用這些改進和優化。[2023/2/2 11:43:19]
你可能會覺得這個機制似曾相識。事實上,這與元事務(meta-transaction)的運作方式差不多。但是這里要強調一下,元事務是不能隨意設置消息發送方的。因此,合約必須明確支持元事務。EIP 3074 旨在淘汰元事務,降低合約的復雜性。
在深入闡述運作原理之前,我們先來介紹一下我們想要構建什么。我們想要構建一個讓普通用戶無需使用以太幣即可以免信任方式發送事務的機制。這里的關鍵詞是 “免信任”,即,用戶不會授予中繼者任何可能會被利用的特權。
數據:以太坊礦工地址余額較六月初增長15.78萬ETH:據歐科云鏈鏈上大師數據顯示,自今年六月以來,以太坊礦工地址余額重新回到累積模式,當前余額603.83萬枚ETH,占以太坊供應量的5.14%,較六月初增長15.78萬枚ETH。[2021/8/27 22:41:31]
EIP 3074 通過謹慎選擇普通賬戶簽名中包含的參數來創建免信任系統。用戶簽署 keccak(0x03 ++ invoker_address ++ commit_hash)。
“type byte” 是 EIP 2718 的常量字節,值為 0x03。這個字節的作用是避免與其它簽名機制發生沖突,例如,EIP 2930 的訪問列表事務、EIP 1559 的費用市場事務、EIP 191 的 0x19 簽名消息等。
數據:7月以太坊礦工收入為10.3億美元:TheBlock統計數據顯示,7月以太坊礦工收入總計為10.3億美元,較6月份的11.7億美元環比下降約12%,僅相當于5月份歷史峰值24.6億美元的約42%。其中交易手續費用收入1.8億美元,區塊收入8.45億美元,最大可提取價值(MEV)收入76萬美元。[2021/8/2 1:28:48]
調用者地址將用戶的調用與特定合約綁定。用戶的簽名只對調用者合約有效。因此,用戶可以選擇自己信任的調用者,就像是選擇用來存放資產的智能合約錢包那樣。
我們預期只會有少量調用者存在,因為如果調用者合約的實現出錯,用戶就有可能蒙受損失(請注意,調用者是自主選擇加入的)。開發一個安全的調用者合約成本會很高,需要經過多方審計和靜態證明。
不過這與如今的慣例沒什么太大的不同。在存放巨額資金之前,智能合約錢包也應該經過全面的審計和證明。很多大型 DeFi 項目也是如此。
數據:以太坊鏈上錨定BTC的代幣總量為149510枚:DeBank數據顯示,以太坊鏈上錨定BTC的代幣總量已升至149510枚,其中,WBTC總量為117183枚,renBTC總量為21843枚,HBTC總量為6010枚。[2020/10/31 11:19:02]
最后一個簽名參數是 commit_hash(或者 commit)。這為調用者設計者帶來了更大的靈活性,可以讓他們開發出很多不同的方案。
這個 commit 限制調用者只能執行特定操作并創建特定的驗證要求(validity requirement)來處理調用。用戶可以信任調用者會遵循這一流程,因為他們可以在鏈上驗證代碼。這就是區塊鏈的優點。
我們來看一個簡單的案例。用戶想要通過調用者發送一個調用。為了避免他們的調用被無限次中繼,他們需要提供一個 nonce,另外還有其它不可更改的值。用戶對這些值進行哈希計算得到 commit,并將該 commit 包含在簽名消息內,以便合約使用操作碼 AUTH 進行驗證。
動態 | 目前距離以太坊硬分叉還有約4小時:以太坊硬分叉實時播報:據amberdata數據,目前距離以太坊君士坦丁堡和圣彼得堡雙分叉還有約4小時7分鐘,當前區塊高度為7,279,320,距離硬分叉高度還有660個區塊。據etherscan數據,目前網絡哈希率為153404.46GH/s,比之前略有上升。[2019/3/1]
調用者會使用傳入的值來重新生成 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
Ergo公鏈是用于強大去中心化金融合約的Layer 1協議,以10年區塊鏈理論和開發為堅實基礎,可構建高級加密功能和顛覆性全新DeFi功能.
1900/1/1 0:00:00今天大家的心情都一樣,區塊鏈和價值幣的信仰是不是都搖搖欲墜了?哈哈哈,這就是真實的世界啊朋友們,新人們總是喜歡老家伙們不喜歡的東西,然后把它炒的老高老高的,就是不接盤老家伙們手上的東西.
1900/1/1 0:00:00以太坊上存在著不同的交易類型,比如,將ETH發送到某個地址,部署合約等等。在柏林網絡升級之前,以太坊上就有四種不同的交易類型:?帶接收地址的常規交易,數據域等;?沒有目的地址的合約部署交易,數據.
1900/1/1 0:00:00上周,由于市場對埃隆·馬斯克(Elon Musk)發布的一系列推文做出了反應,比特幣價格下跌了26.1%.
1900/1/1 0:00:00近日,Arca首席投資官Jeff Dorman連發多條推特大談sushi為什么被低估,火星財經專門為讀者進行了編譯.
1900/1/1 0:00:00大規模的審查和去平臺化(de-platforming)快速發展。幸運的是,加密貨幣的去中心化性質已經為減少監督的美好明天鋪好道路,這也促進了Web 3.0的到來.
1900/1/1 0:00:00