Alert Source Discuss
🚧 Stagnant Standards Track: ERC

ERC-2645: Layer-2 的分层确定性钱包

Authors Tom Brand <tom@starkware.com>, Louis Guthmann <louis@starkware.com>
Created 2020-05-13
Discussion Link https://ethereum-magicians.org/t/hierarchical-deterministic-wallet-for-computation-integrity-proof-cip-layer-2/4286

简述

在诸如 ZK-Rollups 等计算完整性证明 (CIP) Layer-2 解决方案的背景下,用户需要在为这些环境优化的新椭圆曲线上签署消息。 我们利用现有的密钥推导工作 (BIP32, BIP39BIP44) 来定义一种安全有效地生成 CIP L2 私钥的方法,以及在 Layer-2 应用程序之间创建域隔离。

摘要

我们提供了一个推导路径,允许用户为 Layer-2 解决方案推导分层密钥,具体取决于 zk-technology、应用程序、用户的 Layer-1 地址,以及一种有效的研磨方法来强制私钥在曲线域内的分布。 所提出的推导路径定义如下

m / purpose' / layer' / application' / eth_address_1' / eth_address_2' / index

动机

在诸如 ZK-Rollups 等计算完整性证明 (CIP) Layer-2 解决方案的背景下,用户需要在为这些环境优化的新椭圆曲线上签署消息。已经做了大量工作,通过 BIP32, BIP39BIP44 使其在比特币上安全。这些协议是整个行业钱包的标准,独立于底层区块链。随着 Layer-2 解决方案的兴起,在这种新领域中保持相同的标准和安全性是必要的要求。

规范

Starkware 密钥通过以下 BIP43 兼容的推导路径推导,直接受到 BIP44 的启发:

m / purpose' / layer' / application' / eth_address_1' / eth_address_2' / index

其中:

  • m - 种子。
  • purpose - 2645 (本 EIP 的编号)。
  • layer - 图层名称上 sha256 的最低 31 位。用作不同技术之间的域分隔符。在 starkex 的上下文中,该值为 579218131
  • application - 应用程序名称的 sha256 的最低 31 位。用作不同应用程序之间的域分隔符。在 2020 年 6 月的 DeversiFi 的上下文中,它是 sha256(starkexdvf) 的最低 31 位,该值为 1393043894
  • eth_address_1 / eth_address_2 - 对应的 eth_address 的第一个和第二个最低 31 位。
  • index - 允许每个 eth_address 对应多个密钥。

例如,假设在 2020 年 6 月 DeversiFi 的上下文中,地址 0x0000….0000 的预期路径,假设种子为 m 且索引为 0:m/2645'/579218131'/1393043894'/0'/0'/0

密钥推导应遵循以下算法

N = 2**256
n = Layer2 curve order
path = stark derivation path
BIP32() = Official BIP-0032 derivation function on secp256k1
hash = SHA256
i = 0
root_key = BIP32(path)
while True:
	key = hash(root_key|i)
	if (key < (N - (N % n))):
		return key % n
	i++

定义此算法是为了在现有受限设备上保持效率。

Nota Bene: 在每一轮中,密钥大于 (N - (N % n)) 的概率 < 2^(-5)。

理由

此 EIP 指定了分层钱包上下文中密钥推导的两个方面:

  • 推导路径
  • 研磨算法,用于强制在椭圆曲线上进行均匀分布。 定义推导路径是为了允许基于技术和应用程序进行有效的密钥分离,同时保持与 Layer-1 钱包的 1-1 关系。 这样,丢失 EIP-2645 钱包会回退到丢失 Layer-1 钱包。

向后兼容性

此标准符合 BIP43。

安全考虑

定义此 EIP 旨在保持密钥分离,同时在密钥推导上提供万无一失的逻辑。

版权

CC0 下放弃版权及相关权利。

Citation

Please cite this document as:

Tom Brand <tom@starkware.com>, Louis Guthmann <louis@starkware.com>, "ERC-2645: Layer-2 的分层确定性钱包 [DRAFT]," Ethereum Improvement Proposals, no. 2645, May 2020. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-2645.