1. ERC191
提出了关于如何处理以太坊中签名数据的规范。
简单理解就是在待签名的消息或者交易的hash,前加入
"\x19Ethereum Signed Message:\n" + len(message)
,而len(message)通常来说是32,所以很多在平时的做题或者在靶场中见到的是
1
2 bytes memory prefix = "\x19Ethereum Signed Message:\n32";
bytes32 result = keccak256(abi.encodePacked(prefix, hash));但是这和直接实用metamask进行签名的结果不一样,但是通过 ecrecover求出来的地址是一样的。
2. ERC601
这个提案的目的是为了更好地适应以太坊的独特需求,以解决“不同的以太坊客户端和钱包使用不同的衍生路径,其中一些路径违反了 BIP44,该标准定义了以
m/44'/
.这会造成钱包实现之间的混乱和不兼容,在某些情况下,一个钱包中的资金无法在另一个钱包上访问,而在其他情况下,则需要手动提示用户提供派生路径,这会妨碍可用性”的问题。替代方案为,在BIP32路径中定义一下四个级别
1 m / purpose' / subpurpose' / EIP' / wallet'具体内容可以,移步到这里:链接。