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是一種更高級、更安全的交易簽名方法。使用該標準不僅可以簽署交易并且可以驗證簽名,而且可以將數據與簽名一起傳遞到智能合約中,并且可以根據該數據驗證簽名以了解簽名者是否是實際發送該簽名的人要在交易中調用的數據。
Kraken CEO:比特幣任何低于4萬美元的價格都是一個買入機會:金色財經報道,Kraken首席執行官Jesse Powell在周二接受采訪時表示,比特幣和加密貨幣生態系統在歷史上是基于 \"某種程度上圍繞著比特幣減半 \"的周期發展的。但是,盡管潛在的加密貨幣冬天迫在眉睫,Powell有信心,一旦投資者開始購買,市場將從熊市中反彈。
我認為任何低于4萬美元的價格都是一個買入機會,我個人在幾個月前回落到接近30000美元時買入,我認為很多人只是在等待在谷底價格時回來。
很難知道它的走向,從長期來看,仍然看好比特幣。當你看一下比特幣的長期趨勢線,它只是持續上升。我總是告訴人們,’如果你考慮購買比特幣,就把它當作五年以上的投資。(cointelegraph)[2021/12/16 7:42:54]
EIP-712提出了數據的標準結構和從結構化消息生成散列的定義過程。然后使用此散列生成簽名。通過這種方式,為發送交易生成的簽名與為驗證身份或任何其他目的生成的簽名之間就有了明顯的區別。EIP-712草案將簽名方案背后的動機表述為:
津巴布韋財政部長:打算制定一個框架來管理其交易:10月15日消息,津巴布韋財政部長Mthuli Ncube表示,津巴布韋準備軟化其在加密貨幣問題上的立場,打算制定一個框架和規則來管理數字貨幣資產類別的正式交易。財政部長在談到津巴布韋的投資機會時表示,擺脫加密貨幣是不可能的。但不希望它成為一種貨幣。希望它成為一種投資類別。因此,通過維多利亞瀑布證券交易所(Victoria Falls Stock Exchange)平臺,我們將嘗試在那里創建基于加密的產品,這些產品在離岸區內被隔離。
我們已經邁出了第一步,在津巴布韋儲備銀行(RBZ)建立了一個沙箱,在那里,這個想法和其他一切都將在一個安全的監管環境中進行測試,然后遷移到這個安全的維多利亞瀑布交易所環境中。一旦我們有了評級產生的各種加密資產的權重,我們就可以創建一個指數;在該指數的背后,可以創建一個加密ETF(交易所交易基金)。(all Africa)[2021/10/15 20:32:10]
提高鏈上使用的鏈下消息簽名的可用性。我們看到越來越多的人采用鏈下消息簽名,因為它節省了gas,減少了區塊鏈上的交易數量。
動態 | V神提出一個無需委員會的可擴展數據鏈模型:以太坊創始人V神今日在Ethereum研究論壇上主持了一場討論,在這場討論中,他通過無欺詐證明的數據可用性證明概述了一個無需委員會的可擴展數據鏈模型。根據V神的說法,無欺詐證明的數據可用性檢查方案保留了傳統非切分區塊鏈的更多特性。他還提出了一種可能的設計,其中包括一個現有的基礎鏈,“類似于以太坊式不可伸縮的區塊鏈,任何人都可以將交易發布到該區塊鏈。”在這里,用戶將能夠支付費用并發送包含數據承諾的一種特殊類型的事務,區塊提議者/礦工隨后可以在該事務上進行數據可用性檢查,以驗證數據是否可用。V神還擴展了如何僅接受通過每個可用性檢查的塊,以及數據可用性采樣將“完全且絕對出于安全性”的依據。(AMBCrypto)[2020/1/6]
EIP-712是類型化結構化數據的哈希和簽名的標準,而不僅僅是字節字符串。它包括一個
聲音 | David Marcus:很早就開始欣賞比特幣了 但其尚不是一個好的交易媒介:在Libra項目負責人David Marcus發推回應Visa等多家支付巨頭退出Libra項目之后。智能合約先驅Nick Szabo評論其推文表示:“你可能想問問自己為什么壓力這么大。去讀一些比特幣先驅們所了解的歷史,比如e-gold的失敗吧。你沒能從歷史中吸取教訓,這使你不惜代價重溫過去的失敗。”David Marcus隨后回復Nick Szabo表示:“別誤會我的意思。早在我開始這段旅程之前,我就已經很欣賞比特幣了,且欣賞仍在增長。只是(比特幣)還不是一個好的交易媒介。”[2019/10/12]
編碼函數正確性的理論框架,
與solid結構相似并兼容的結構化數據規范,
安全哈希算法用于這些結構的實例,
聲音 | 武源文:區塊鏈未來的發展是三個融合和一個轉變:金色財經現場報道,4月9日,宏暢通科技有限公司董事長武源文在\"2019第二屆深圳國際區塊鏈技術與應用大會”現場以“區塊鏈創新商業模式”為主題進行演講。他指出,區塊鏈未來的發展是三個融合和一個轉變。第一個融合就是技術的融合,實際上它為人工智能和物聯網的設備以及大數據的算法提供了一個分布式的快速部署的可能,為未來分布式的應用提供快速落地的基礎設施,這是基礎的融合。第二個是生產關系的融合,區塊鏈的出現為勞動者提供了更多生態構建的參與機會,生態不再是獨享的。第三個是產業的融合,隨著區塊鏈的出現,所有的行業都將是互聯網化的,也推動人類社會全面的進入數字時代。還有一個轉變,就是商業模式從平臺經濟向生態經濟進行一個大的轉變。[2019/4/9]
在可簽名消息集中安全包含這些實例,
一個可擴展的域分離機制,
新的RPC調用eth_signTypedData,
EVM中哈希算法的優化實現。
EIP-712的實現可以在Uniswap V2的Periphery 合約中看到,它通過許可移除流動性,最終調用Uniswap V2 Core中的方法來完成這一操作。
前端的簽名被傳遞給Periphery 中的方法,簽名被用來代表Core中使用該方法的用戶批準Router合約。
我們的示例將使用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以查看所反映的變化。
以太坊的倫敦升級于8月4日完成,其中包括了著名的EIP-1559。在EIP-1559推出至今,不到4天,已經燒毀了16,230.38個ETH(截止到寫稿時),價值接近5,000萬美元.
1900/1/1 0:00:00頭條 ▌PayPal將推出擁有加密貨幣功能的超級應用錢包支付提供商公司PayPal表示,其用戶可能不必再等待太久,就可以通過該平臺擁有更大的加密貨幣功能.
1900/1/1 0:00:00每年都有新的玩樂、游戲形式以及頗具創新的游戲應收方式出現。這些模式幾乎都有一個共性,那就是這些模式都把注意力轉化為收入.
1900/1/1 0:00:00原標題:占全球GDP 90%以上的國家正在探索CBDC世界各地的政府都在向CBDC研究和探索性用例投入更多資源.
1900/1/1 0:00:00概述 2021年 7 月 21 日,OpenEthereum 團隊注意到他們在 Ropsten 上的節點卡在了區塊 10679538 處.
1900/1/1 0:00:00加密貨幣多年來一直在爭奪大型機構投資者的注意力,它們終于得到了想要的關注。可以說,傳統投資者更習慣于股票和房地產等投資領域,關心收入、月活躍用戶和現金流等方面,區塊鏈網絡及其共識機制對傳統投資者.
1900/1/1 0:00:00