国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

EIP-191(關于如何在以太坊合約中處理簽名數據的詳細說明)

curlyCheng / 1083人閱讀

摘要:改標準試圖拓展以太坊的簽名規則,為簽名內容的可讀化提供的重要的基礎。摘要這個提議了一個關于如何在以太坊合約中處理簽名數據的詳細說明。如果對沒有句法約束,這就意味著可以用作句法有效的交易。

本文翻譯了官網EIP-191的相關內容。改標準試圖拓展以太坊的簽名規則,為簽名內容的可讀化提供的重要的基礎。
摘要

這個ERC提議了一個關于如何在以太坊合約中處理簽名數據的詳細說明。

動機

一些接受presigned交易的多簽名錢包應用已經出現了。一筆presigned交易就是一堆二進制的signed_data,同時包含簽名(r, s, v)。因為對signed_data的解釋并不具體,導致了一些問題:

標準的以太坊交易可以作為signed_data提交。一筆以太坊交易可以拆解成這幾個組件:RLP(這里被稱為RLPdata),r,s,v。如果對signed_data沒有句法約束,這就意味著RLPdata可以用作句法有效的presigned交易。

多簽名錢包同樣也有問題:presigned交易并不和一個特定的validator綁定在一起,舉一個特定錢包的例子:

i. 用戶A, BC2/3-錢包X

ii. 用戶A, BD2/3-錢包Y

iii. 用戶AB提交了一個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是為了可以擴展這個模式,通過定義一個版本 0x45E)來處理這種類型的簽名。

版本字節登記
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

相關文章

  • 我想說技術!

    摘要:有效的數字簽名使收件人有理由相信該信息是由已知的發件人認證創建的,發件人不能否認已發送的信息不可否認,并且信息在傳輸過程中未被更改完整性。當我們說簽署交易時,我們實際上是指簽署序列化交易數據的哈希。 特殊交易:合約注冊 有一種特殊的帶有data,沒有value的交易。表示注冊一個新的合約。合約登記交易被發送到一個特殊的目的地地址,即零地址。簡而言之,合約注冊交易中的+to+字段包含地址...

    focusj 評論0 收藏0
  • 一個比特幣交易完整流程。

    摘要:本文解釋了比特幣交易的內容,目的和結果。本文底部的信息圖提供了從錢包到區塊鏈的整個比特幣交易流程的全面說明。在文本中使用的任何地方是比特幣交易的縮寫。目的比特幣交易的目的是將一定數量的比特幣的所有權轉移到比特幣地址。 本文解釋了比特幣交易的內容,目的和結果。下面的解釋適用于新手和中級比特幣用戶。 作為加密貨幣用戶,你需要熟悉交易雛形——為了你對這種不斷發展的創新有信心,以及作為理解新興...

    My_Oh_My 評論0 收藏0
  • 以太區塊鏈保證Asp.Net CoreAPI安全(上)

    摘要:去中心化應用程序的常見設計不僅依賴于以太坊區塊鏈,還依賴于層。每個用戶的所有登錄操作在以太坊區塊鏈上變得不可公開。用于驗證用戶身份的機制與以太坊用于保證以太坊區塊鏈安全性的機制相同。以太坊,主要是針對工程師使用進行區塊鏈以太坊開發的詳解。 去中心化應用程序(DApp)的常見設計不僅依賴于以太坊區塊鏈,還依賴于API層。在這種情況下,DApp通過用戶的以太坊帳戶與智能合約進行交互,并通過...

    Raaabbit 評論0 收藏0
  • 如何理解比特幣和區塊鏈?

    摘要:比特幣區塊鏈無疑是當今業界的最熱門的。目前,每個成功的礦工獲得可能每年更換一次或通過比特幣社區決策作為成功向區塊鏈添加一塊交易的獎勵。填寫其他詳細信息,例如比特幣金額和可選說明。 比特幣區塊鏈無疑是當今業界的最熱門的。通過這篇博客,我將盡力向大家介紹加密貨幣比特幣的概念,以及它如何創造我們稱之為區塊鏈的革命性技術。 這個問題經常引起混淆。這篇文章可以快速解釋和清理這方面的混亂! 什么是...

    Kosmos 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<