加密貨幣交易所 加密貨幣交易所
Ctrl+D 加密貨幣交易所
ads
首頁 > BTC > Info

一個示例來解釋EIP-712_比特幣:Domain

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.0

Metamask9.8.4

truffle5.4.0

EIP-712

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

安永Paul Brody:今年加密冬天的一個主要特征是加密資產的價格與加密行業之間存在脫鉤:金色財經報道,安永 (EY) 全球區塊鏈負責人Paul Brody在Mint出版物發表的采訪中討論了加密冬天、監管的必要性以及加密交易所 FTX 的崩潰。有人問他是否預計當前的加密貨幣冬天會很快結束。Paul Brody表示,這是一個比上一個冬天溫和得多的加密貨幣冬天,今年冬天的一個主要特征是加密資產的價格與加密行業正在進行的產品和工程開發工作之間存在脫鉤。他補充說,以太坊生態系統現在更加專注于應用程序開發、NFT和DAO。[2022/11/27 20:56:56]

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

軟銀金融研究院彭和平:IPFS分布式存儲可能會作為一個細分賽道蓬勃發展:由開源礦池和火幣主辦,金色算力云、鏈上ChainUP、Filecoin Beijing聯合主辦的“分布式存儲中國行暨開源礦池IPFS私享會”2020年11月25日在深圳舉行。軟銀金融研究院彭和平在會上表示,從今年開始到未來的若干年中,IPFS分布式存儲可能會作為一個細分賽道蓬勃發展。一方面是因為大眾對數據應用如視頻、數據存儲有剛性需求,另一方面是國家把數據作為新型生產資料進行了立法,人們對這部分的認知提高了一個維度。從全局來看,IPFS雖然說代表了一種新生力量,但是全局來看金融屬性比較強,目前官方已經從算法和激勵機制方面進行了調整,并且不斷的擴大落地應用,也證明這個項目未來可期。[2020/11/25 22:07:54]

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

Willy Woo:比特幣是世界上第一個追逐風險避風港:金色財經報道,黃金支持者、比特幣反對人士Peter Schiff今日發推文稱,最近比特幣相對于黃金的上漲并不能證明比特幣是一種優秀的價值存儲手段。熱情高漲的投資者正紛紛涌向風險資產,在全球范圍內避開避險資產。作為所有資產中風險最高的資產,人們購買比特幣是作為交易風險的一部分。對此,加密貨幣分析師Willy Woo評論稱,比特幣是世界上第一個追逐風險的避風港。這意味著,它會在傳統的繁榮周期上升,當投資者涌向安全港時也會上升。前者是由于其采用曲線,后者是由于其技術設計。[2020/11/17 20:59:57]

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

編碼函數正確性的理論框架,

與solid結構相似并兼容的結構化數據規范,

聲音 | 戴鵬程:2020年挖礦將是一個非常重要的契機:在今日,金色財經聯合Matrixport舉辦的AMA活動中,螞蟻礦機區域銷售主管戴鵬程發言指出:BTC面臨歷史上第三次減半,2020年挖礦將是一個非常重要的契機。從以往來看,比特幣減半之后都迎來了幣價的大漲和牛市的到來,也帶來了技術的不斷迭代創新。比特幣的發展不僅促進了算力基礎的增長和POW共識機制的深入人心,也讓挖礦芯片行業得到了巨大的前進。

從2019年,年中小牛市到今年年初BTC挖礦全網算力翻了一倍多,挖礦難度也在起伏中穩步上升。2019年讓很多礦工看到了希望,2020年更要做規劃,迎接未來可能到來的牛市。[2020/2/22]

安全哈希算法用于這些結構的實例,

在可簽名消息集中安全包含這些實例,

一個可擴展的域分離機制,

新的RPC調用eth_signTypedData,

聲音 | 加密貨幣交易員:BTC經過一個月的相對橫盤整理后將突破8000美元:加密貨幣交易員Nebraskan Gooner在推特發文稱,BTC分形意味著短期內價格會上升到7500美元,在一個月的時間內價格會相對橫盤整理,然后突破8000美元。這對我來說似乎是一條合乎邏輯的道路。如果這種情況出現,現在是時候開始查看每日/每周的山寨幣支持水平了。[2020/1/5]

EVM中哈希算法的優化實現。

EIP-712的實現可以在UniswapV2的Periphery合約中看到,它通過許可移除流動性,最終調用UniswapV2Core中的方法來完成這一操作。

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

示例代碼

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

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

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

步驟1

繼續克隆truffle的reactbox。

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

步驟2

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

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

當使用該提案時,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以查看所反映的變化。

Tags:比特幣AINDomainMAIN比特幣最新行情走勢圖PolkaDomainMAIN幣

BTC
人民日報:區塊鏈智能合約技術有利于切實解決司法執行難_區塊鏈:CryptoVsZombie

原文標題:《合法自愿、務實管用,《人民法院在線訴訟規則》本月起施行網上審案,便民又規范》近年來,從推動裁判文書全面上網,到電子卷宗同步生成、移動微法院一網通辦.

1900/1/1 0:00:00
閃電網絡的歷史:從頭腦風暴到測試版本(上)_比特幣:dogecoin

幾周以前,第一個閃電網絡實現?lnd?已經正式推出beta版。第二個實現?eclair?在上周發布,第三個實現?c-lightning?也快要來了.

1900/1/1 0:00:00
金色前哨|人民銀行2021年下半年工作會議摘要_比特幣:CBI

據中國人民銀行官網消息,7月30日,人民銀行召開了2021年下半年工作會議,傳達學習黨中央、國務院關于當前經濟形勢的總體判斷及做好下半年經濟工作的重要部署,總結上半年人民銀行系統各項工作.

1900/1/1 0:00:00
HashKey 郝凱:解析 Aave Pro 潛在影響及 DeFi 趨勢_DEF:AAVE

AavePro為機構用戶參與DeFi提供了新的通道,但也可能隨之帶來公平性和中心化等問題。 AavePro簡介 Aave是一個去中心化、開源、非托管的借貸平臺.

1900/1/1 0:00:00
金色觀察 | NFT熱潮持續升級 CryptoPunks交易量周內飆升1270%_PUN:TOP

2021年可以稱得上是NFT發展的元年,NFT的加密藝術正在成為主流。從收藏品到二級市場,NFT行業的頭部參與者銷售額不斷突破.

1900/1/1 0:00:00
北京市發布超前布局區塊鏈 加快建設數字城市方案_區塊鏈:數字金融科技

各區委、區政府,市委各部委辦,市各國家機關,各國有企業,各人民團體,各高等院校:  經市委、市政府同意,現將《北京市關于加快建設全球數字經濟標桿城市的實施方案》印發給你們.

1900/1/1 0:00:00
ads