比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > AVAX > Info

區塊鏈:科普 | 一個示例解釋EIP-712到底是什么_Infomatix

Author:

Time:1900/1/1 0:00:00

EIP-712是一種更高級、更安全的交易簽名方法。我們可以在UniswapV2的Periphery合約中看到EIP-712的實現。但對于EIP-712卻很難被我們普通人所理解,本文就是根據一個示例來具體體驗EIP-712,以達到對其的更好理解。在GitHub中有許多文章和示例解釋和展示了如何使用EIP-712,但在理解它作為一個整體是如何工作的以及前端代碼和智能合約是如何關聯的方面有很多困難。這是EIP712的一個示例(不是解釋)。先決條件和使用的版本。

Solidity基礎知識npm7.19.1節點16.2.0Metamask9.8.4truffle5.4.0

EIP-712

EIP-712是一種更高級、更安全的交易簽名方法。使用該標準不僅可以簽署交易并且可以驗證簽名,而且可以將數據與簽名一起傳遞到智能合約中,并且可以根據該數據驗證簽名以了解簽名者是否是實際發送該簽名的人要在交易中調用的數據。

人大附中物理老師李永樂科普拜占庭將軍問題和區塊鏈:5月14日,人大附中物理老師、科普視頻網紅李永樂在其公眾號發布視頻《拜占庭將軍問題是什么?區塊鏈如何防范惡意節點?》。李永樂老師在視頻中對拜占庭將軍問題和區塊鏈進行了講解,他表示,拜占庭將軍問題本質上指的是,在分布式計算機網絡中,如果存在故障和惡意節點,是否能夠保持正常節點的網絡一致性問題。在近40年的時間里,人們提出了許多方案解決這一問題,稱為拜占庭容錯法。例如蘭波特自己提出了口頭協議、書面協議法,后來有人提出了實用拜占庭容錯PBFT算法,在2008年,中本聰發明比特幣后,人們又設想了通過區塊鏈的方法解決這一問題。區塊鏈通過算力證明來保持賬本的一致性,也就是必須計算數學題,才能得到記賬的權力,其他人對這個記賬結果進行驗證,如果是對的,就認可你的結果。與拜占庭問題比起來,就增加了叛徒的成本。[2020/5/14]

EIP-712提出了數據的標準結構和從結構化消息生成散列的定義過程。然后使用此散列生成簽名。通過這種方式,為發送交易生成的簽名與為驗證身份或任何其他目的生成的簽名之間就有了明顯的區別。EIP-712草案將簽名方案背后的動機表述為:

聲音 | CNBC主持人:加密貨幣最大的缺點之一就是難以向外行快速科普:CNBC主持人Ran NeuNer近期發推稱,加密貨幣最大的缺點之一就是很難向外行快速解釋。當人們要求我向他們解釋比特幣時,我知道他們至少需要一個小時才能真正理解。[2019/9/10]

提高鏈上使用的鏈下消息簽名的可用性。我們看到越來越多的人采用鏈下消息簽名,因為它節省了gas,減少了區塊鏈上的交易數量。

EIP-712是類型化結構化數據的哈希和簽名的標準,而不僅僅是字節字符串。它包括一個

編碼函數正確性的理論框架,與solid結構相似并兼容的結構化數據規范,安全哈希算法用于這些結構的實例,在可簽名消息集中安全包含這些實例,一個可擴展的域分離機制,新的RPC調用eth_signTypedData,EVM中哈希算法的優化實現。EIP-712的實現可以在UniswapV2的Periphery合約中看到,它通過許可移除流動性,最終調用UniswapV2Core中的方法來完成這一操作。

聲音 | ETC Labs主管:科普教育是未來幾年公鏈面臨的巨大挑戰:ETCLabs主管Darin Kotalik認為,科普教育是未來幾年公鏈面臨的巨大挑戰,人們必須要對區塊鏈有基本的認識,分清楚公鏈和私鏈的區別。[2019/8/25]

前端的簽名被傳遞給Periphery中的方法,簽名被用來代表Core中使用該方法的用戶批準Router合約。

示例代碼

我們的示例將使用EIP-721提案用數據(地址、storedData的值和截止日期)簽署交易,這些數據用于更改合約中變量的值。

如果簽名和散列給出了簽署人的地址,并且沒有超過截止日期,則更改storedData的值。

這是一個無用的例子,但理解了它將確保您可以在其他地方使用該標準。正確使用EIP-712是創建一個ERC20許可證,就像Uniswap團隊所做的那樣。

動態 | 浙江衛視節目科普支付寶區塊鏈防偽溯源產品:昨日,在浙江衛視播出的科普綜藝欄目《智造將來》現場,支付寶首次展示了支付寶區塊鏈防偽溯源產品,以接地氣的方式公開向大眾展示區塊鏈在生活中的應用。[2019/3/4]

步驟1

繼續克隆truffle的reactbox。

我們將根據需要簡單地調整和添加代碼,以使EIP-712正常工作。

步驟2

數據是EIP-712中最關鍵的部分。這些要簽名的數據必須符合預定義的格式。它必須有一個EIP712Domain和要簽名的數據(在我們的示例中設置)。兩者的組合將被簽名并發送給智能合約進行驗證。

在EIP-712下簽名的每個數據必須有一個EIP712Domain和另一個數據。這兩者的結構可以是任何東西,但必須在JS代碼和SC代碼上相同。

科普時報:區塊鏈與云計算長期發展目標不謀而合:據《科普時報》今日報道,區塊鏈與云計算兩項技術的結合,從宏觀上來說,一方面,利用云計算已有的基礎服務設施或根據實際需求做相應改變,實現開發應用流程加速,滿足未來區塊鏈生態系統中初創企業、學術機構、開源機構、聯盟和金融等機構對區塊鏈應用的需求。另一方面,對于云計算來說,“可信、可靠、可控制”被認為是云計算發展必須要翻越的“三座山”,而區塊鏈技術以去中心化、匿名性,以及數據不可篡改為主要特征,與云計算長期發展目標不謀而合。[2018/5/4]

當使用該提案時,EIP712Domain的結構是一個被廣泛接受的標準。

EIP-712數據標準

EIP712Domain有一些參數,這些參數指定在哪個網絡和哪個特定合約上將用于驗證簽名。另一份具有相同代碼的合同將無法驗證該簽名。

步驟3

讓我們添加一個按鈕,當單擊該按鈕時,將彈出元掩碼,使用eth_signTypedData_v3方法對數據進行簽名。

步驟4

一旦簽署了上面定義的數據使用eth_signTypedData_v3方法我們得到了簽名和簽名分割成其r,s,和v組件并將其發送到智能合約將使用ercrecover這些參數和數據哈希恢復簽名者的公鑰。

拆分簽名

步驟5

編寫智能合約。

就像我們定義了包含EIPdomain和要簽名的數據的JS代碼一樣,智能合約也需要兩個變量來表示每個EIPdomain的散列數據和我們的數據(在本例中是設置數據)。

使用ercrecover

在UI端,我們對數據進行簽名,并將r、s和v發送給智能合約。

上面的代碼做了兩件事,首先它散列數據并生成它們的散列。接下來,它使用該數據的散列(在SC中稱為散列)和簽名,使用ercrecover方法生成簽名者的公鑰。

上面顯示的數據的兩個kecak哈希值應該類似于在outJS代碼中定義的數據結構。如果兩者不同,則無法恢復簽名者的地址。

簽名數據的結構

步驟6

將infura中的助記符添加到truffle-config.js文件(第3行),并指定部署者的地址(第18行)。上面的例子使用了rinkebytestnet,但是任何測試都可以使用,并查看truffle文檔來部署到其他測試網。

然后部署合同。部署后復制simplestorage的地址,替換為verifyingContract下app.js第76行的地址。

部署代碼片段

步驟7

進入client目錄,運行npmrunstart啟動react應用。

按下'Presstosign'按鈕,然后在元掩碼彈出的簽名請求上簽名。接下來,確認交易以設置智能合約上的值。

交易完成后,刷新webapp以查看所反映的變化。

source:https://medium.com/coinmonks/eip712-a-full-stack-example-e12185b03d54

Tags:區塊鏈DOMMAINOMA區塊鏈騙局曝光騙局DomainMainframeInfomatix

AVAX
BDC:軟銀旗下LINE PLUS發布區塊鏈平臺,欲幫助央行打造CBDC_CBD Coin

本文來自?Decrypt,原文作者:TimHakkiOdaily?星球日報譯者?|念銀思唐摘要:-LINEPLUS?發布了供各國央行發行數字貨幣的區塊鏈。-該公司目前正在與幾家亞洲央行進行談判.

1900/1/1 0:00:00
區塊鏈:《筱靜觀察》第三季第7期丨中國電信的區塊鏈研究和實踐_Penguin Finance

題記:眾所周知,ARPANET是計算機網絡的鼻祖。當時由于大部分計算機互不兼容,且傳輸速度極慢,計算機網絡多以局域網的形式獨立存在,彼此難以聯通.

1900/1/1 0:00:00
LEND:華東政法大學教授:以虛擬貨幣為名實施電信網絡詐騙屬于涉眾型犯罪_bybit官網下載

據澎湃新聞7月12日消息,華東政法大學金融監管與刑事治理研究中心主任、博士生導師、教授毛玲玲今日在以“涉虛擬貨幣相關犯罪法律適用問題”為主題論壇上表示,對以虛擬財產或虛擬貨幣為對象的犯罪.

1900/1/1 0:00:00
比特幣:曼德拉孫子之一Dumani Mandela將于8月中旬在OpenSea拍賣其小說NFT_DAO

巴比特訊,BeInCrypto消息,納爾遜·曼德拉的17個孫子之一DumaniMandela將從今年8月開始出售《IDreamofKemet》和《YoungandontherunfromApar.

1900/1/1 0:00:00
DAO:DAO財庫聚合平臺Llama發布有關“Uniswap流動性計劃v 0.1”提案的更新_UNI

DAO財庫聚合平臺Llama在推特上發布有關“Uniswap流動性計劃v0.1”提案的相關更新如下:1.更新該計劃的長期目標.

1900/1/1 0:00:00
加密貨幣:美國賓夕法尼亞州法案提議成立特別工作組評估數字貨幣的影響_CRYP

據Cointelegraph7月27日消息,美國賓夕法尼亞州立法機構正在審議加密特別工作組法案。一項提議在賓夕法尼亞州成立加密工作組的法案已經提交.

1900/1/1 0:00:00
ads