ERC-5485: 合法性、管辖权和主权
用于识别合法性、管辖权和主权的接口。
Authors | Zainan Victor Zhou (@xinbenlv) |
---|---|
Created | 2022-08-17 |
Discussion Link | https://ethereum-magicians.org/t/erc-5485-interface-for-legitimacy-jurisdiction-and-sovereignty/10425 |
Requires | EIP-165, EIP-5247 |
摘要
提供一种方法,使兼容的智能合约能够声明其合法性谱系、其遵守的管辖权以及如果它们选择不属于任何管辖权的主权。
动机
如今,智能合约没有标准的方法来指定其合法性谱系、管辖权或主权关系。引入这样一个标准,可以更好地与当今的法律和监管场景集成:
- 它支持监管机构允许或拒绝与智能合约的互操作性。
- 它还允许 DAO 通过此接口声明“自主权”,声明它们不主张来自自身以外任何来源的合法性。
一个真实的例子是,ContractA 代表在某个国家/地区注册的 A 公司,ContractB 代表该国的国务卿,而 ContractC 代表该国的最高法院。
另一个真实的例子是一个声明“自主权”的合约,它不遵循任何管辖权。
该接口支持这两种情况,提供了一种方法,允许智能合约确定它们是否要根据主权允许/禁止交互。
例如,一个国家可能希望要求任何数字货币服务的所有智能合约在被允许在其(现实世界)法律管辖范围内运营货币之前,遵守其 ERC-5485 管辖权。
另一个真实的用例是,在某些司法管辖区,例如在美国,如果代币发行者选择发行代币, 他们可以尝试向 SEC 请愿,以承认他们的代币为注册证券,如果获得批准,将从 SEC 获得合法性。 如果他们选择向商品期货交易委员会 (CFTC) 请愿,以承认他们为商品,如果获得批准,将 从 CFTC 获得合法性。
另一方面,具有强烈去中心化意识形态的 DAO 可能会选择仅与 EOA 或“自主”智能合约进行互操作,以避免受到任何国家的影响。
规范
本文档中的关键词“MUST”、“MUST NOT”、“REQUIRED”、“SHALL”、“SHALL NOT”、“SHOULD”、“SHOULD NOT”、“RECOMMENDED”、“MAY”和“OPTIONAL”应按照 RFC 2119 中的描述进行解释。
- 兼容的合约必须实现以下接口。
interface IERC5485 {
/// 返回地址中合法性来源的函数
///
/// @returns 向此合约授予合法性状态的 EOA 或合约的地址。
/// 更多详细信息请参见规范 #2 和 #3。
function sourceOfLegitimacy() public view returns (address);
/// 返回地址中的主权管辖权的函数
///
/// @returns *最终*授予合法性状态的 EOA 或合约的地址(合法性谱系的根)。
/// 更多详细信息请参见规范 #4 和 #4。
function jurisdiction() public view returns (address);
}
-
假设一个兼容的
ContractA
部署在地址0x<Contract_Address_A>
,并从另一个合约或外部拥有账户 (EOA) 地址0x<ADDRESS_B>
获得其合法性。 在这种情况下,当查询sourceOfLegitimacy()
时,它必须返回0x<ADDRESS_B>
。 例如。 如果ContractA
从ContractB
获得合法性,ContractB
从ContractC
获得合法性,但ContractC
没有从任何人获得合法性,则ContractC
被认为是ContractB
和ContractA
都遵守的“管辖权”。ContractA
和ContractB
都必须返回ContractC
的地址作为管辖权的结果。 -
符合以下任何情况的合约都被认为是“主权合约”:
- 情况 1:它未实现此 EIP
- 情况 2:它实现了此 EIP 但返回其自身地址。
- 情况 3:它实现了此 EIP 但返回零地址。
-
任何兼容合约在被
jurisdiction()
查询时,必须返回其合法性来源链,直到主权合约。 - 如果 ContractA 从 ContractB 获得合法性,则 ContractA 必须遵守 ContractB 对以下任何一项的命令
- 命令类型 1:执行 ContractA 的
selfdestruct
- 命令类型 1:执行 ContractA 的
- 如果 ContractA 遵守 ContractC(一种主权)的管辖权,则 ContractA 必须遵守 ContractC 对以下任何一项的命令
- 命令类型 1:执行 ContractA 的
selfdestruct
- 命令类型 2:执行 ERC-5247 中指定的任何智能合约可执行提案
- 命令类型 1:执行 ContractA 的
TODO 确定是否在此 EIP 中处理“添加/删除合法性”,还是将其作为未来的 EIP
理由
需要讨论。
向后兼容性
需要讨论。
安全注意事项
需要讨论。
版权
版权和相关权利通过 CC0 放弃。
Citation
Please cite this document as:
Zainan Victor Zhou (@xinbenlv), "ERC-5485: 合法性、管辖权和主权 [DRAFT]," Ethereum Improvement Proposals, no. 5485, August 2022. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-5485.