Yellow-Paper
黃皮書 eq 221:為什麼以及如何簽名交易的發送者等於簽名者的地址?
乙太坊黃皮書:請參見方程 220 和 221。
在等式 220 中,我們獲得了可以發送到網路的交易,並將通過 256 位交易 ID 進行跟踪。它最右邊的 160 位等於S(T),它被定義為交易的發送方函式S。
我的問題與方程式 221 有關,這是一個關於:的斷言:
簽名交易的發送者等於簽名者地址的斷言應該是不言而喻的
**$$ Q $$**為什麼以及如何簽名交易的發送者(
S(T) on the eq. 220
)等於簽名者(A(pr)
)的地址?是否有任何與此相關的解釋清楚的文件。我們能否總結以下陳述:
B96...255(KEC(ECDSARECOVER(h(T),Tw,Tr,Ts))) == B96...255((KEC(ECDSAPUBKEY(pr)))
感謝您寶貴的時間和幫助。
這被稱為 ECDSA 公鑰恢復技巧,請參閱https://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-signature-work如何橢圓曲線數學作品。
乙太坊簽名具有三個參數
r
和。使用,和 ECDSA 方程,您有兩個候選公鑰,然後使用您可以消除歧義並準確知道哪個是簽名者的公鑰。s``v``r``s``v
一旦你有了公鑰,你就可以計算出最後 20 個字節的地址
keccak256(publicKey)
。