diff --git a/37_Signature/readme.md b/37_Signature/readme.md index ba74f002a..bba4ec547 100644 --- a/37_Signature/readme.md +++ b/37_Signature/readme.md @@ -137,7 +137,7 @@ print(f"签名:{signed_message['signature'].hex()}") 为了验证签名,验证者需要拥有`消息`,`签名`,和签名使用的`公钥`。我们能验证签名的原因是只有`私钥`的持有者才能够针对交易生成这样的签名,而别人不能。 -**4. 通过签名和消息恢复公钥:**`签名`是由数学算法生成的。这里我们使用的是`rsv签名`,`签名`中包含`r, s, v`三个值的信息,长度分别为32bytes,32bytes,1byte。而后,我们可以通过`r, s, v`及`以太坊签名消息`来求得`公钥`。下面的`recoverSigner()`函数实现了上述步骤,它利用`以太坊签名消息 _msgHash`和`签名 _signature`恢复`公钥`(使用了简单的内联汇编): +**4. 通过签名和消息恢复公钥:**`签名`是由数学算法生成的。这里我们使用的是`rsv签名`,`签名`中包含`r, s, v`三个值的信息,长度分别为32 bytes,32 bytes,1 byte。而后,我们可以通过`r, s, v`及`以太坊签名消息`来求得`公钥`。下面的`recoverSigner()`函数实现了上述步骤,它利用`以太坊签名消息 _msgHash`和`签名 _signature`恢复`公钥`(使用了简单的内联汇编): ```solidity // @dev 从_msgHash和签名_signature中恢复signer地址