ERC-601:确定性钱包的以太坊层次结构

简要说明:该EIP是eip-draft-ethereum- Purpose的一个特殊应用。

原文章:https://eips.ethereum.org/EIPS/eip-601

摘要

该 EIP 定义了基于 BIP32 的确定性钱包的逻辑层次结构、BIP43 和 eip-draft-etherrum-Purpose 中定义的目的方案。

动机

目前。不同的以太坊客户端和钱包使用不同的衍生路径;可以在这里找到他们的摘要。其中一些路径违反了 BIP44,该标准定义了以m/44'/开头的衍生路径。这会造成钱包实现之间的混乱和不兼容,在某些情况下,一个钱包中的资金无法在另一个钱包上访问,而在其他情况下,则需要手动提示用户提供衍生路径,这会妨碍可用性。

此外,BIP44 的设计考虑了基于 UTXO 的区块链,不太适合以太坊,因为以太坊使用账户抽象。

作为替代方案,我们提出了一个更适合以太坊独特要求的确定性钱包层次结构。

规范

我们在 BIP32 路径中定义了以下 4 个级别:

m / purpose' / subpurpose' / EIP' / wallet'

路径中的'表示使用 BIP32 强化推导。

每个级别都有特殊的含义,将在下面的章节中进行描述。

Purpose

Purpose 是一个设置为 43 的常量,表示密钥派生是针对非比特币加密货币

此级别使用强化推导

Subpurpose

Subpurpose 设置为 60,即以太坊的 SLIP-44 代码。

此级别使用强化推导

EIP

EIP 设置为指定 BIP32 派生路径的其余部分 EIP 编号。对于遵循此 EIP 规范的路径,将使用分配给此 EIP 的编号。

此级别使用强化推导。

Wallet

该路径的这个组成部分将钱包分成不同的用户身份,允许单个钱包拥有多个公共身份。

账户从索引 0 开始按顺序递增的方式编号。该数字用作 BIP32 推导中的子索引。

此级别使用强化推导。

如果以前的账户没有交易历史记录(意味着其他地址以前没有被使用过),那么软件应该阻止创建账户。

理由

现在约定是使用“以太坊”硬币标准,使得路径以m/44'/60'/*开头。因为这依然假设基于 UTXO 的代币,所以我们认为这是一个不合适的方案,会导致标准化、可用性和安全性方面的妥协。因此,我们提出上述建议,为基于以太坊的链定义一个全新的层次结构。

向后兼容性

另一种推导路径的引入需要现有软件除了任何现有方案之外,还添加对该方案的支持。鉴于以太坊中钱包派生路径本已混乱的性质,我们预计浙江造成相对较小的额外干扰,并且从长远来看有可能显著改善问题

对于使用助记符的应用程序,作者希望提交另一个 EIP 草案,该草案描述了一种在过渡到这一新的派生路径时避免向后兼容性问题的方法。