黄纸:请参阅方程220和221号。
在方程220上,我们获得了可以发送到网络并由256位事务id跟踪的事务。它的右端160位相当于S(T),后者被定义为交易的发件人函数S。
我的问题与方程式221有关,即:
关于签名事务的发送方等于签名者地址的断言是不言而喻的。
问:签名事务(S(T) on the eq. 220
)的发送方为什么和如何等于签名者(A(pr)
)的地址?是否有任何与此相关的解释充分的文档。
我们能否得出以下结论:
B96...255(KEC(ECDSARECOVER(h(T),Tw,Tr,Ts))) == B96...255((KEC(ECDSAPUBKEY(pr)))
感谢您宝贵的时间和帮助。
发布于 2017-12-16 13:41:31
这是众所周知的ECDSA公钥恢复技巧,参见https://crypto.stackexchange.com/questions/18105/how-does-recovering-the-public-key-from-an-ecdsa-signature-work椭圆曲线数学如何工作。
以太签名有三个参数:r
、s
和v
。使用r
、s
和ECDSA方程,您有两个候选的公钥,然后使用v
可以消除歧义,并确切地知道哪一个是签名者的公钥。
一旦您拥有了公钥,您就可以使用最后20个字节的keccak256(publicKey)
计算地址。
https://ethereum.stackexchange.com/questions/33559
复制相似问题