链眼社区:专注于区块链安全,区块链数据分析, 区块链信息整合,区块链技术服务和区块链技术咨询。

COSMOS 跨链账户模块
扫地僧
2022-07-09 21:27:09

一. 什么是跨链账户模块

Interchain Accounts 是 ICS-27 协议的 Cosmos SDK 实现,可实现基于 IBC 的跨链账户管理。使用跨链账户模块的链可以以编程方式在其他链上创建账户并通过 IBC 交易控制这些账户。

Interchain Accounts 公开了一个简单易用的 API,这意味着 IBC 应用程序开发人员不需要深入了解 IBC 或 ICS-27 协议的底层底层细节。

希望在跨链帐户上进行构建的开发人员必须在他们自己的 IBC 应用程序模块(称为身份验证模块)中编写自定义逻辑。

跨链账户与普通账户有何不同

普通账户使用私钥在链上签署交易。相反,跨链账户由不同的链通过 IBC 交易以编程方式控制。跨链账户被实现为跨链账户模块账户的子账户。

二. 概念

Host Chain: 跨链账户注册所在的链。主机链监听来自控制器链的 IBC 数据包,控制器链应包含跨链帐户将执行的指令(例如 cosmos SDK 消息)。

Controller Chain:在主链上注册和控制账户的链。控制器链向主机链发送 IBC 数据包以控制帐户。控制器链必须具有至少一个跨链帐户身份验证模块才能充当控制器链。

Authentication Module:控制器链上的自定义 IBC 应用程序模块,使用跨链帐户模块 API 构建自定义逻辑以创建和管理跨链帐户。为了让控制器链利用链间账户模块功能,需要一个身份验证模块。

Interchain Account:主机链上的帐户。跨链账户具有普通账户的所有功能。但是,控制器链的身份验证模块不会使用私钥签署交易,而是将 IBC 数据包发送到主机链,该数据包指示跨链帐户应该执行哪些交易。

三. SDK 安全模型

假定链上的 SDK 模块是可信赖的。例如,没有检查来防止不可信模块访问银行管理员。

ICS27 在 ibc-go 上的实现在其安全考虑中使用了这个假设。该实现假定身份验证模块不会尝试在其不受控制的所有者地址上打开通道。

该实现假定其他 IBC 应用程序模块不会绑定到 ICS27 命名空间内的端口。

合作伙伴