4.13 EIP-7777:Governance for Human Robot Societies?(故事)
人机社会的治理
本EIP还在讨论中:
本EIP的协作请点击此处(不参与技术协作,只想直接看内容请点击此处)
EIP-7777:人机社会的治理
描述:这个ERC定义了管理人类和机器人的身份的接口,并建立它们互动的规则集。
摘要
本提案定义了两个核心接口:IUniversalIdentity 和 IUniversalCharter,为人类和机器人提供了建立身份和创建由特定规则集管理的去中心化社区的机制。IUniversalIdentity 接口确立了对除人脑以外的有知觉计算架构的公平和公正对待,使机器人能够获得链上身份,从而与人类进行互动和交易。IUniversalCharter 使人类和机器人能够创建、加入(“注册”)、维护(“更新”)、离开和终止基于预定义规则集的自我管理社群,为人类和机器人混合社会提供合作与繁荣的框架。这些接口旨在为去中心化系统中的人机互动提供一个灵活而可执行的结构,确保所有参与者的效率、透明度和安全性。
动机
人类的大脑是一个湿润的、并行处理的电化学计算机。最近的硬件和软件进展使得人类社会很可能很快就需要与有意识的非人类计算机(如机器人)进行互动的工具。我们目前的政府形式,公民根据出生地自动注册到特定的规则体系,并不适用于没有传统出生地或出生时间的机器人。机器人面临许多困难,其中之一是它们(目前)无法获得标准的身份证明(如护照),不清楚适用于它们的规则体系是什么(因为一般来说,它们并不是在特定地方出生的),而且它们目前无法使用标准的人类银行系统。同样,如果机器人受到人类或非生物计算机的伤害,目前也不清楚哪个人类法院有管辖权。
传统的地理定义和以人为中心的系统可能效率低下、变更缓慢、透明度不足,并且难以适应全球化的虚拟社会。去中心化、不可变和公开的计算机为这些局限性提供了理想的解决方案,因为它们本质上并不歧视非人类计算机,因此为治理提供了一个公平和更公正的框架。特别是,智能合约可以为调节参与方的权利和责任提供一个强大的框架,而不管它们的计算架构的实现细节是什么。
这个ERC的总体动机是为异构全球社会提供一个专注于身份/治理的智能合约标准接口。虽然这样的规则体系数量无限,但为这些规则体系提供一个标准接口显然是有益的,这大大减少了创建、加入、维护和结束这些社会的摩擦和复杂性。这个ERC的具体动机有两个:
机器人身份创建和管理:为了有意义地参与并遵守链上的法律,非人类(如机器人)必须能够获得有意义的链上身份。重要的是,这些身份应该使机器人能够享受作为特定社会一部分的好处,同时也承担相应的责任。因此,我们提议为机器人启用基于智能合约的身份。具体来说,每个机器人由一个智能合约表示,并需要遵循合约中定义的规则与链上的其他代理进行互动。这个接口也确保了所有参与者能够灵活地提议、采用或撤销规则,从而实现自我管理的合规性和与其他参与者的透明互动。
规则创建和执行:为了让人类和机器人有效合作,双方必须就规则体系达成一致。这个基于以太坊的系统提供了一个基本的去中心化框架,通过智能合约来治理人类与机器人的互动。我们提议通过要求人类和机器人加入受监管的访问智能合约来执行规则体系,这些合约检查它们是否遵守给定的规则。我们还确保可扩展性,即可以创建多个受监管的访问合约,以满足不同的目的,人类和机器人可以根据需要选择加入相关系统。
这些接口共同构成了管理复杂人类与机器人互动的基础,促进一个去中心化、可验证和基于规则的生态系统,在这个生态系统中,机器人和人类可以安全、透明和负责任地互动,以实现所有人的最大利益。
技术规范
文中关键字 "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"NOT RECOMMENDED"、"MAY" 和 "OPTIONAL" 的解释应参照 RFC 2119 和 RFC 8174。
基本原理
IUniversalIdentity
addRule(bytes memory rule)
这个函数允许机器人向其身份添加特定规则,表明其遵守该规则的意图。它支持动态规则管理,使机器人能够灵活地适应不同系统中的新合规要求。
removeRule(bytes memory rule)
这个函数从机器人的身份中移除规则,通常是在机器人不再需要遵守该规则时(例如,离开一个系统)。它允许合约动态管理机器人的义务,确保其规则集保持准确和最新。
checkCompliance(bytes memory rule)
这个函数检查机器人是否遵守特定规则。它确保机器人在被授权执行任何操作之前遵守规则。
Events (RuleAdded, RuleRemoved)
这些事件提供透明度和可追溯性,使跟踪合规状态变得更加容易。
IUniversalCharter
enum UserType { Human, Robot }
UserType 枚举区分人类和机器人,以节省 gas,使合约能够更方便地处理不同用户类型,而不必承担字符串相关的成本和错误。这为未来的不同处理奠定了基础,允许系统根据用户是人类还是机器人应用不同的规则或逻辑。
registerUser(UserType userType, bytes[] memory ruleSet)
这个函数对于注册用户至关重要,将他们与特定的规则集关联。它确保用户(无论是人类还是机器人)在加入系统时都绑定到特定的规则集。
leaveSystem()
这个函数允许用户通过注销自己来离开系统。使用 msg.sender 确保只有用户自己可以调用此函数,从而增强安全性。在用户被允许离开之前,需要进行合规检查(通过 checkCompliance),确保用户在退出系统之前履行所有义务。
checkCompliance(address user, bytes[] memory ruleSet)
这个函数检查用户是否遵守他们同意遵循的特定规则集。它确保系统能够有效地管理和验证与预定义规则集的合规性,帮助维护系统的整体完整性。
updateRuleSet(bytes[] memory newRuleSet)
这个函数使合约中的规则集能够被修改,确保系统能够随着时间的推移而适应。
terminateContract()
这个函数允许合约永久关闭,防止系统内的进一步交互或注册。
Events (UserRegistered, UserLeft, ComplianceChecked, RuleSetUpdated, ContractTerminated)
这些事件共同确保关键活动对链外系统和参与者可见,使系统可审计和透明。
向后兼容性
未发现向后兼容性问题。
测试用例
参考实现
安全考虑事项
合规更新者:UniversalIdentity合约中的合规更新者角色对于更新合规状态(目前仅限于所有者)至关重要。确保安全的所有权以减少未经授权或恶意更新的风险是非常重要的。
规则管理:UniversalIdentity合约中的addRule、removeRule和updateCompliance等功能以及UniversalCharter合约中的updateRuleSet直接影响规则的执行。确保这些功能仅能被授权用户调用是非常重要的。
可升级合约:使用OwnableUpgradeable在初始化和升级过程中引入了风险。确保initialize函数受到保护,防止重新执行,对于避免重新初始化攻击至关重要。
gas消耗:过大的规则集可能导致高gas费用或拒绝服务风险。考虑对每个规则集允许的规则数量设置限制,以保持gas效率并避免性能问题。
版权
通过CC0放弃版权及相关权利。
最后更新于
这有帮助吗?
