摘要:改標準試圖拓展以太坊的簽名規則,為簽名內容的可讀化提供的重要的基礎。摘要這個提議了一個關于如何在以太坊合約中處理簽名數據的詳細說明。如果對沒有句法約束,這就意味著可以用作句法有效的交易。
本文翻譯了官網EIP-191的相關內容。改標準試圖拓展以太坊的簽名規則,為簽名內容的可讀化提供的重要的基礎。摘要
這個ERC提議了一個關于如何在以太坊合約中處理簽名數據的詳細說明。
動機一些接受presigned交易的多簽名錢包應用已經出現了。一筆presigned交易就是一堆二進制的signed_data,同時包含簽名(r, s, v)。因為對signed_data的解釋并不具體,導致了一些問題:
標準的以太坊交易可以作為signed_data提交。一筆以太坊交易可以拆解成這幾個組件:RLP
多簽名錢包同樣也有問題:presigned交易并不和一個特定的validator綁定在一起,舉一個特定錢包的例子:
i. 用戶A, B和C有2/3-錢包X
ii. 用戶A, B和D有2/3-錢包Y
iii. 用戶A和B提交了一個presigned交易給X
iv. 攻擊者可以復用他們的給X的presigned交易,然后提交給Y。
說明我們為signed_data提議了以下格式:
0x19 <1 byte version>.
版本0對于版本特定數據有<20字節地址>,這個地址就是預期的驗證者。在多簽名錢包的例子中,就是錢包自己的地址。
最初的0x19字節用來確保signed_data不是有效的RLP
對于單個值為[0x00, 0x7f]的字節,字節的RLP編碼就是它本身
這意味著任何signed_data不能是一個RLP結構,而是1個字節的RLP,后面再加上一些別的內容。
因此,任何ERC-191 signed_data永遠不會是一筆以太坊交易。
額外地,之所以用0x19是因為自從ethereum/go-ethereum#2940,下面的一行文字會在personal_sign方法中預添加在要簽名的hash數據之前:
"x19Ethereum Signed Message: " + len(message).
因此,使用0x19是為了可以擴展這個模式,通過定義一個版本 0x45(E)來處理這種類型的簽名。
版本字節登記Version byte | EIP | Description |
---|---|---|
0x00 | 191 | Data with intended validator |
0x01 | 712 | Structured data |
0x45 | 191 | personal_sign messages |
function submitTransactionPreSigned(address destination, uint value, bytes data, uint nonce, uint8 v, bytes32 r, bytes32 s) public returns (bytes32 transactionHash) { // Arguments when calculating hash to validate // 1: byte(0x19) - the initial 0x19 byte // 2: byte(0) - the version byte // 3: this - the validator address // 4-7 : Application specific data transactionHash = keccak256(byte(0x19),byte(0),this,destination, value, data, nonce); sender = ecrecover(transactionHash, v, r, s); // ... }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/24166.html
摘要:本文解釋了比特幣交易的內容,目的和結果。本文底部的信息圖提供了從錢包到區塊鏈的整個比特幣交易流程的全面說明。在文本中使用的任何地方是比特幣交易的縮寫。目的比特幣交易的目的是將一定數量的比特幣的所有權轉移到比特幣地址。 本文解釋了比特幣交易的內容,目的和結果。下面的解釋適用于新手和中級比特幣用戶。 作為加密貨幣用戶,你需要熟悉交易雛形——為了你對這種不斷發展的創新有信心,以及作為理解新興...
摘要:去中心化應用程序的常見設計不僅依賴于以太坊區塊鏈,還依賴于層。每個用戶的所有登錄操作在以太坊區塊鏈上變得不可公開。用于驗證用戶身份的機制與以太坊用于保證以太坊區塊鏈安全性的機制相同。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 去中心化應用程序(DApp)的常見設計不僅依賴于以太坊區塊鏈,還依賴于API層。在這種情況下,DApp通過用戶的以太坊帳戶與智能合約進行交互,并通過...
摘要:比特幣區塊鏈無疑是當今業界的最熱門的。目前,每個成功的礦工獲得可能每年更換一次或通過比特幣社區決策作為成功向區塊鏈添加一塊交易的獎勵。填寫其他詳細信息,例如比特幣金額和可選說明。 比特幣區塊鏈無疑是當今業界的最熱門的。通過這篇博客,我將盡力向大家介紹加密貨幣比特幣的概念,以及它如何創造我們稱之為區塊鏈的革命性技術。 這個問題經常引起混淆。這篇文章可以快速解釋和清理這方面的混亂! 什么是...
閱讀 712·2021-10-14 09:42
閱讀 1966·2021-09-22 15:04
閱讀 1571·2019-08-30 12:44
閱讀 2134·2019-08-29 13:29
閱讀 2730·2019-08-29 12:51
閱讀 542·2019-08-26 18:18
閱讀 697·2019-08-26 13:43
閱讀 2803·2019-08-26 13:38