EIP-712是一種更高級、更安全的交易簽名方法。我們可以在Uniswap V2的Periphery 合約中看到EIP-712的實現。
但對于EIP-712卻很難被我們普通人所理解,本文就是根據一個示例來具體體驗EIP-712,以達到對其的更好理解。
在GitHub中有許多文章和示例解釋和展示了如何使用EIP-712,但在理解它作為一個整體是如何工作的以及前端代碼和智能合約是如何關聯的方面有很多困難。這是EIP712的一個示例(不是解釋)。先決條件和使用的版本。
Solidity基礎知識
npm 7.19.1
節點 16.2.0
Metamask 9.8.4
truffle 5.4.0
EIP-712是一種更高級、更安全的交易簽名方法。使用該標準不僅可以簽署交易并且可以驗證簽名,而且可以將數據與簽名一起傳遞到智能合約中,并且可以根據該數據驗證簽名以了解簽名者是否是實際發送該簽名的人要在交易中調用的數據。
Yat Siu:正認真考慮推出一個高價值NFT個人獎池:金色財經報道,Animoca Brands聯合創始人兼董事長Yat Siu在社交媒體稱,他正在認真考慮推出一個高價值NFT個人獎池,用于激勵Web3機甲格斗游戲Wreck League和ApeCoin社區,以及Yat Siu個人和由他選擇的戰隊競爭。此前消息,Animoca Brands子公司nWay昨日發布Wreck League游戲,Yuga Labs旗下BAYC、MAYC、BAKC和Otherside Kodas四個IP被納入其中。[2023/8/6 16:20:55]
EIP-712提出了數據的標準結構和從結構化消息生成散列的定義過程。然后使用此散列生成簽名。通過這種方式,為發送交易生成的簽名與為驗證身份或任何其他目的生成的簽名之間就有了明顯的區別。EIP-712草案將簽名方案背后的動機表述為:
Telegram創始人:Telegram可能很快提供一個地址拍賣市場:金色財經報道,Telegram創始人Pavel Durov周一表示,Telegram可能很快提供一個拍賣地址的市場。Durov提到早先在The Open Network上進行的錢包域名拍賣,該協議是他與Telegram一起開發的。由于對美國證券交易委員會的監管顧慮,他離開了這個項目。Durov提議,通過拍賣“@用戶名、群組和頻道鏈接”,Telegram可以成功地重新引入Web3的元素。Durov稱,用戶名持有者可以通過“類似NFT智能合約”將用戶名轉移給相關方。(CoinDesk)[2022/8/23 12:41:56]
提高鏈上使用的鏈下消息簽名的可用性。我們看到越來越多的人采用鏈下消息簽名,因為它節省了gas,減少了區塊鏈上的交易數量。
EIP-712是類型化結構化數據的哈希和簽名的標準,而不僅僅是字節字符串。它包括一個
佟揚:2020年的行業發展態勢最顯著的一個特點是多元化:8月5日消息,BiKi 2周年|乘風破浪之夜私人酒會今日在深圳隆重開啟。
在以2020年區塊鏈行業的創新和發展趨勢為主題的圓桌論壇期間,金色財經合伙人兼IPFS100.com CEO-佟揚表示,2020年的行業發展態勢最顯著的一個特點是多元化,例如今年交易平臺也涉及到了期貨、云算力、合約創新玩法、保險和量化以及理財產品。
下半年自身會把礦業提升到一個新的高度,另外是IPFS,可以帶領我們開啟3.0時代。[2020/8/5]
編碼函數正確性的理論框架,
與solid結構相似并兼容的結構化數據規范,
安全哈希算法用于這些結構的實例,
在可簽名消息集中安全包含這些實例,
一個可擴展的域分離機制,
動態 | Brave瀏覽器宣布開發出一個本地錢包,用以存儲以太坊和以太坊鏈上的多數資產:據cryptovest報道,Brave瀏覽器宣布開發一個本地錢包(Crypto Wallets)來存儲以太坊(ETH)和其他以太坊鏈上資產。Brave團隊開發人員稱,使用Crypto Wallets,您可以在Brave的軟件錢包中管理您的密鑰,或者連接物理硬件錢包(Ledger或Trezor)以實現更安全的密鑰管理[2019/8/29]
新的RPC調用eth_signTypedData,
EVM中哈希算法的優化實現。
EIP-712的實現可以在Uniswap V2的Periphery 合約中看到,它通過許可移除流動性,最終調用Uniswap V2 Core中的方法來完成這一操作。
前端的簽名被傳遞給Periphery 中的方法,簽名被用來代表Core中使用該方法的用戶批準Router合約。
法國財長:法國有興趣成為第一個提出ICO臨時立法框架的金融中心:據ethnews消息,3月19日,法國財政部長Bruno Le Maire發表了一篇專欄文章,描述法國政府對金融科技和區塊鏈技術的接受程度。Le Maire財長寫到:“雖然我們對區塊鏈的潛力和機會的態度較為仁慈,但我們也很謹慎,支持創新并不排除需要衡量它帶來的風險。“Le Maire表示希望法國能夠在新興領域發揮領導作用,尤其是涉及ICO。法國有興趣成為第一個提出ICO臨時立法框架的主要金融中心,這將允許啟動ICO的公司向潛在投資者證明其嚴肅性。Le Maire表示在幾個星期內,部長會議將提交“商業發展與轉型行動計劃”。該計劃將建立由法國股市監管機構AMF監督的ICO許可制度,AMF還會創建一個符合投資者保護標準的項目“白名單”。[2018/3/23]
我們的示例將使用EIP-721提案用數據(地址、storedData的值和截止日期)簽署交易,這些數據用于更改合約中變量的值。
如果簽名和散列給出了簽署人的地址,并且沒有超過截止日期,則更改storedData的值。
這是一個無用的例子,但理解了它將確保您可以在其他地方使用該標準。正確使用 EIP-712 是創建一個 ERC20 許可證,就像 Uniswap 團隊所做的那樣。
繼續克隆 truffle 的react box。
我們將根據需要簡單地調整和添加代碼,以使EIP-712正常工作。
數據是EIP-712中最關鍵的部分。這些要簽名的數據必須符合預定義的格式。它必須有一個EIP712Domain和要簽名的數據(在我們的示例中設置)。兩者的組合將被簽名并發送給智能合約進行驗證。
在EIP-712下簽名的每個數據必須有一個EIP712Domain和另一個數據。這兩者的結構可以是任何東西,但必須在JS代碼和SC代碼上相同。
當使用該提案時,EIP712Domain的結構是一個被廣泛接受的標準。
EIP-712 數據標準
EIP712Domain有一些參數,這些參數指定在哪個網絡和哪個特定合約上將用于驗證簽名。另一份具有相同代碼的合同將無法驗證該簽名。
讓我們添加一個按鈕,當單擊該按鈕時,將彈出元掩碼,使用eth_signTypedData_v3方法對數據進行簽名。
一旦簽署了上面定義的數據使用eth_signTypedData_v3方法我們得到了簽名和簽名分割成其r, s,和v組件并將其發送到智能合約將使用ercrecover這些參數和數據哈希恢復簽名者的公鑰。
拆分簽名
編寫智能合約。
就像我們定義了包含EIPdomain和要簽名的數據的JS代碼一樣,智能合約也需要兩個變量來表示每個EIPdomain的散列數據和我們的數據(在本例中是設置數據)。
使用 ercrecover
在UI端,我們對數據進行簽名,并將r、s和v發送給智能合約。
上面的代碼做了兩件事,首先它散列數據并生成它們的散列。接下來,它使用該數據的散列(在SC中稱為散列)和簽名,使用ercrecover方法生成簽名者的公鑰。
上面顯示的數據的兩個kecak哈希值應該類似于在out JS代碼中定義的數據結構。如果兩者不同,則無法恢復簽名者的地址。
簽名數據的結構
將infura中的助記符添加到truffle-config.js文件(第3行),并指定部署者的地址(第18行)。上面的例子使用了rinkeby testnet,但是任何測試都可以使用,并查看truffle文檔來部署到其他測試網。
然后部署合同。部署后復制simplestorage的地址,替換為verifyingContract下app.js第76行的地址。
部署代碼片段
進入client目錄,運行npm run start啟動react應用。
按下' Press to sign '按鈕,然后在元掩碼彈出的簽名請求上簽名。接下來,確認交易以設置智能合約上的值。
交易完成后,刷新webapp以查看所反映的變化。
Tags:MAIEGRLEGDOMParis Saint-GermainEGR幣Basket LegendsExperty Wisdom Token
本周的“奧運金牌”要頒給EIP-3675(將共識機制升級至PoS),這將是朝著以太坊網絡合并(The Merge)邁出的一大步.
1900/1/1 0:00:00上周,一則消息引發了 NFT 市場不小的波動。佳士得工作人員 Noah Davis 在 CryptoPunk 的 Discord 群組中透露,佳士得將拍賣 CryptoPunks、Bored A.
1900/1/1 0:00:00以太坊「倫敦升級」已準備就緒,預計在區塊高度12965000時激活,官方博客推算的時間為8月3日至5日之間,中文社區預測升級將在8月5日晚上7時許激活.
1900/1/1 0:00:00摘 要:隨著DeFi繼續下行,我們提出一個短期看跌但中期看漲的案例。 上周,加密貨幣市場繼續緩慢走低,BTC已經發現自己在30,000美元以下交易,ETH牢牢低于2000美元.
1900/1/1 0:00:00隨著個人要求更快的支付,為此包括美聯儲在內的央行以及非銀行實體尋求在促進支付方面發揮更大作用,支付系統正在發生深刻變化.
1900/1/1 0:00:00今年上半年,區塊鏈行業有1個備受關注的詞語承接了去年DeFi的熱潮,其以高位出圈的姿態向世人展示了一場區塊鏈+藝術的新興發展業態,并一度占據了各大新聞媒體的頭條.
1900/1/1 0:00:00