⚠️ 该 EIP 不建议普遍使用或实施,因为它可能会发生变化。

EIP-3770: Chain-specific addresses Source

A standard for displaying CAIP-10 account identifiers in a human readable format

作者 Lukas Schor, Richard Meissner, Pedro Gomes, ligi
讨论-To https://ethereum-magicians.org/t/chain-specific-addresses/6449
状态 Draft
类型 Standards Track
分类 ERC
创建日期 2021-08-26
英文版 https://eips.ethereum.org/EIPS/eip-3770

摘要

This EIP introduced a new address standard to be adapted by wallets and dApps to display chain-specific addresses by mapping human-readable names to CAIP-3 blockchain IDs.

动机

The need for this EIP emerges from the increasing adoption of non-Ethereum Mainnet chains that use the Ethereum Virtual Machine (EVM). In this context, addresses become ambiguous, as the same address may refer to an EOA on chain X or a smart contract on chain Y. This will eventually lead to Ethereum users losing funds due to human error. For example, users sending funds to a smart contract wallet address which was not deployed on a particular chain.

CAIP-10 introduces an account identifier that encodes a CAIP-2 blockchain ID as part of the address. For EVM-based chains, these blockchain IDs are defined in CAIP-3 and leverage EIP-155 chainIDs. However, CAIP-10 targets developers, not end-users. These account identifiers are not meant to be displayed to users in dApps or wallets, and they were optimized for developer interoperability, rather than human readability.

To solve the initial problem of user-facing addresses being ambiguous in a multichain context, we need to extend CAIP-10 with a user-facing format of displaying these account identifiers.

规范

This EIP extends CAIP-10 with a standard for mapping EVM-based blockchain IDs (CAIP-3) to a human-readable blockchain short name, as defined in ethereum-lists/chains.

Syntax

A chain-specific address is prefixed with a chain shortName, separated with a colon sign (:).

Chain-specific address = “shortName” “:” “address

  • shortName = STRING
  • address = STRING

Semantics

shortName is mandatory and MUST be a valid short name from ethereum-lists/chains

address is mandatory and MUST be a EIP-55 compatible hexadecimal address

Examples

Chain-specific addresses

Resolution Method

Chain-specific addresses are resolved to CAIP-10 account identifiers using ethereum-lists/chains:

EIP-3770 chain-specific address CAIP-10 account identifier
eth:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe eip155:1:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe
ovm:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe eip155:10:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe
poly:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe eip155:137:0x0DA0C3e52C977Ed3cBc641fF02DD271c3ED55aFe

基本原理

CAIP-10 account identifiers are not suitable for user-facing addresses that are chain-specific as they are non-human-readable. However, CAIP-10 identifiers are still the preferred option for development purposes, as they are ecosystem-agnostic and work best with chain-splits. As a result, this EIP aims to bridge the benefits of human-readable chain identifiers with the benefits of CAIP-10.

向后兼容性

Ethereum addresses without the chain specifier will continue to require additional context to understand which chain the address refers to.

Security Considerations

The ethereum-lists/chains curators must consider how similar looking chain short names can be used to confuse users.

版权声明

Copyright and related rights waived via CC0.

参考文献

Please cite this document as:

Lukas Schor, Richard Meissner, Pedro Gomes, ligi, "EIP-3770: Chain-specific addresses [DRAFT]," Ethereum Improvement Proposals, no. 3770, August 2021. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-3770.