Transactions

簽署交易:實際簽署了什麼?noobquestionn這這bq在和s噸一世這nnoob question

  • July 31, 2019

我正試圖圍繞簽名交易的實際工作原理展開思考。據我了解,ECDSA 簽名大致是這樣工作的:有一個魔術函式,我們稱它為帶有sign兩個參數的函式。private keymessage。_ 它輸出簽名或在 web3.py 或 web3.js 的情況下,三個奇怪的值v,rs.

因此,當使用者簽署消息時,他們基本上是在簽署一個數據塊,這是函式message中的值sign。我在這個假設中正確嗎?因此,當使用者簽署消息時,他們基本上是在簽署一個數據塊,即簽名函式中的消息值。我在這個假設中正確嗎?

如何訪問該數據塊?是否可以通過 web3 從公共交易中獲取它?

我找到了這篇文章,它說要簽名的數據雜湊是從rlp + hash. 有誰知道rplweb3 是什麼意思或如何獲取輸出雜湊?

ECDSA 使用數字,因此要首先簽署消息,您必須將其編碼為數字。

RLP的確切含義在黃皮書(附錄 B 遞歸長度前綴)中定義。它是一個將結構化的東西(例如交易)編碼為字節序列的函式。給定一個事務Transaction然後RLP(Transaction)返回一個字節序列。

實際上 ECDSA 數字也必須在一個範圍內。為了確保它RLP(Transaction)具有正確的 ECDSA 範圍,我們應用了一個像KECCAK256(RLP(Transaction)).

此外,ECDSA 簽名的確切細節在黃皮書(附加 F 簽名交易)中。

r, s, v = ECDSASign(KECCAK256(RLP(Transaction)), PrivateKey)

引用自:https://ethereum.stackexchange.com/questions/60815