Sei V2:EVM 和 Wasm 互操作性

Sei V2 升级引入了高性能并行化 EVM,结合了 Solana 和 Ethereum 的优势,提高了用户体验,为开发者解锁了全新的设计空间。通过指针合约和预编译合约,实现了 EVM 和 CosmWasm 的互操作性,解决了流动性碎片化和钱包碎片化的问题,使得用户可以使用任何钱包与 Sei 上的任何代币交互。

最后更新时间:2025年9月9日

本帖末尾包含一个简短的常见问题解答,以澄清常见问题。

Sei V2 升级引入了各种新功能,例如第一个高性能并行化 EVM。这使得该链结合了 Solana 和 Ethereum 的最佳部分,改善了用户体验,并为开发者解锁了一个全新的设计空间,与 Ethereum 生态系统中当前的产品相比,吞吐量提高了 100 倍。

作为 Sei v2 升级的一部分,Sei 升级为同时支持两种执行环境:CosmWasm 和 EVM。这意味着以太坊区块链上所有可用的代币标准都存在于 Sei 上,例如 ERC-20 和 ERC-721。

请注意,尽管 Sei 目前仍在支持 CosmWasm 智能合约和相关的 “CW” 代币,但一旦 SIP-3(仅 EVM)提案 实施,这些功能将很快被弃用。

💡

CosmWasm 和 EVM 都将继承 Sei 优化架构的所有优势,例如任何区块链中最快的最终确定时间以及处理数千 TPS 的能力。

你可以尝试第一个测试实现来演示互操作性,这些实现已部署在 Sei v2 devnet 上:

  • 通过 Webump 使用 Metamask 铸造 CW-721 NFT
  • 通过 Silo 使用 Metamask 钱包进行流动性质押你的 Sei
  • 通过 Dragonswap 在 EVM DEX 上交易 CW-20 代币 (ORCA)

可以在此处此处找到 Devnet Faucet。

这篇博文将深入探讨 EVM 和 CosmWasm 之间的互操作性如何在 Sei v2 上工作。

TLDR:你可以使用现有的 Sei 应用程序,并使用任何以太坊钱包与 Sei 上的任何代币进行交互,前提是开发人员使用下面提出的说明对他们的应用程序/代币进行简短的升级。

问题

包含两种执行环境可能会给 Sei 上的生态系统和用户体验带来复杂性。在启动具有多个执行环境的链时,需要考虑以下几个方面:

  • 流动性碎片化:任何给定的代币都应该可以在 EVM 和 CosmWasm 端访问,而无需创建“包装”资产。
  • DEX 和市场应该能够列出 CosmWasm 和 EVM 代币。
  • 钱包碎片化:应该可以使用相同的钱包,无论执行环境如何,都可以使用 Sei 上的任何应用程序。
  • 安全假设:这些问题的解决方案不应给 Sei 上的用户带来任何额外的风险。
  • 用户不应将其私钥导出到新钱包。

本博客将深入探讨并从用户和开发人员的角度解释如何解决这些问题,以及 Sei 上的互操作性如何工作。

解决方案

Sei Labs 引入了弥合 EVM 和 Wasm 之间差距的功能,从而允许两个环境之间平稳轻松地交互。

NFT 和代币互操作性

当前 Sei 上的每个代币,无论是 NFT (CW-721) 还是“代币” (CW-20),都可以使用指针合约与 EVM 钱包和应用程序兼容。

这些合约有助于创建“指针”代币,从而在 EVM 和 CosmWasm 之间的代币之间建立链接。这使得代币可以在两个环境中无缝使用,而无需“包装”资产(销毁/铸造或托管/铸造解决方案)。

这导致完全相同的代币余额同时在 EVM 和 CosmWasm 上受到控制。但是如何做到的呢?

这是如何运作的?

要了解指针合约的工作原理,重要的是要介绍“帐户”的概念并了解加密钱包的工作原理。

许多用户误认为代币“存在于你的钱包中”,这是基于真实世界的实体钱包类比。事实上,在所有区块链上,情况并非如此。

代币余额与 Sei 上的“帐户”相关联,该帐户独立于任何特定的钱包软件甚至智能合约语言。钱包只是允许你通过一个简单的界面,使用你的私钥读取此余额并签署交易以更新此余额。换句话说 - 代币“存在”于区块链上,而不是“在你的钱包中”。

指针合约利用了这一事实,创建了一个新的“0x”代币,该代币链接到原始的“Sei”代币。

对此的一个类比是,将钱包视为个人计算机的监视器。它们向你显示你的基础帐户余额,并提供一个简单的界面,允许你使用你的私钥在 Sei 上签署交易。通过这种方式,可以添加一个具有复制视图的“第二个监视器”。现在,无论你使用什么钱包,都可以在 Sei 上看到和控制相同的代币。

代币互操作性类比:复制的监视器视图

💡

指针合约不存储自己的状态或创建任何代币 - 目标合约或银行模块仍然是代币数据的唯一来源。

更详细的分解包含在下面的附录中。

指针合约还解锁了在 EVM 应用程序中使用 CW-20、CW-721 和原生代币的能力,反之亦然。

但是,指针合约无法实现的一件事是,使用 EVM 钱包使用现有的 Sei 应用程序。这需要第二个新功能,称为“预编译”。

预编译合约

重要的是,无论执行环境如何,用户都应该能够使用他们选择的钱包与智能合约进行交互。例如,应该可以使用 EVM 钱包在 Pallet 上列出 NFT,或在 Astroport 上提供流动性。

为了实现这一点,Sei Labs 实施了各种“预编译”智能合约,这些合约允许从 EVM 端进行原生 Sei 功能。这些是直接嵌入在 Sei 区块链中的智能合约。它们为用户和开发者提供通过 EVM RPC 接口访问原生 Sei 功能的网关。

你可以将这些看作是某些类型功能的原生“google 翻译”。

预编译类比:翻译服务

以下是 Sei 上可用的预编译合约列表:

对于正在寻找使用这些预编译的说明的开发人员,请参阅示例用法部分。

实际上,Sei 上的任何现有应用程序都可以实施这些合约并更新其 UI 以支持以太坊钱包。

高级:Sei 上的用户帐户

Sei 上的每个用户“帐户”都有一个唯一的公钥。在 Sei V2 中,此公钥转换为两种不同类型的地址:

  • EVM 地址:此地址以 0x 开头,用于基于以太坊的活动。
  • SEI 地址:此地址以 Sei 开头,用于 Sei 原生活动。

EVM 和 WASM 地址都源自相同的公钥/私钥

虽然这些地址看起来不同,但它们实际上共享同一个底层帐户。 这意味着你使用一个代币地址执行的任何操作也会影响另一个地址。

因此,可以创建一个 EVM 地址并将其与你的 Sei 地址相关联,以便在两个钱包中控制相同的代币。在为特定私钥处理第一个 EVM 交易后,将自动建立此链接。为了关联你的 EVM 和 Sei 地址,你应该从你的 EVM 地址发起交易。例如,你可以将代币发送给自己。

如果你将资金存入你的 EVM 地址,你可以使用你的 Sei 地址访问和使用相同的资金,反之亦然。它们作为一个帐户链接在一起,确保 EVM 和 Sei 生态系统之间的无缝集成。

一些 Sei 钱包团队,例如 Compass 钱包,正在更新他们的构建以支持来自同一界面的 Sei 和关联的 evm 钱包地址,以减少用户错误

结论

包含两种执行环境可能会给 Sei 上的生态系统和用户体验带来复杂性。但是,通过预编译和指针合约:

  • 任何给定的代币都可以在 EVM 和 CosmWasm 端访问,而无需创建“包装”资产。
  • DEX 和市场能够列出 CosmWasm 和以太坊代币,无论它们部署在哪个环境中。
  • 可以使用用户选择的钱包,无论执行环境如何,都可以使用 Sei 上的任何应用程序。

附录

常见问题解答

  1. 我想使用 EVM 钱包使用 Sei 上的现有应用程序。我该怎么做?
  2. 作为用户,你的体验不会有任何改变。DApp 开发人员将更新他们的前端以支持 EVM 钱包,例如 Metamask。
  3. 我在 Sei 上的现有 DEX 上交易代币。我也可以在 Sei 上的 EVM DEX 上交易此代币吗?
  4. 是的,ERC 和 CW 代币的池/市场都可以在 EVM 或 CosmWasm 上创建。请注意,尽管 Sei 目前仍在支持 CosmWasm 智能合约和相关的 “CW” 代币,但一旦 SIP-3(仅 EVM)提案 实施,这些功能将很快被弃用。
  5. 指针合约有哪些风险需要考虑?
  6. 与任何区块链上的任何合约一样,用户应始终验证他们是否正在与真正“指向”正确底层代币的合法合约进行交互。与合约关联的名称和/或代码不保证它真正指向原始代币/NFT。项目团队在部署指针合约时应公开分享此信息。
  7. 是否可以将 Sei 从 CEX 提取到 EVM “0x” 地址?
  8. 是的

指针合约深入探讨

EVM 原生钱包允许用户转移和查看 ERC-20 代币和 ERC-721 NFT 的余额。但是,他们无法直接与基于 CW 的合约交互,因为:

  • EVM 合约存在于 EVM 边界内
  • EVM 合约未实施 CW-20/CW-721 代币标准。

同样,CosmWasm 客户端无法直接识别或与基于 EVM 的代币或 NFT 交互。

指针合约允许基于 CosmWasm 的客户端与指针合约交互以访问基于 EVM 的代币和 NFT。同样,基于 EVM 的客户端可以通过指针合约与 Sei 上基于 CosmWasm 的代币和 NFT 交互。

指针合约的作用有点像其相应合约的“翻译器”。

在这些示例中,指针合约指向不同类型的底层代币。但是,它们都实施 ERC-20 代币标准。这允许基于 EVM 的钱包与它们交互。

当调用指针合约时,它们会:

  • 将发送给它的消息转换为其 CW-20 等效消息。
  • 将消息转发到正确的目的地。

指针合约不存储自己的状态或创建任何代币 - 目标合约或银行模块仍然是代币数据的唯一来源。

订阅

  • 原文链接: blog.sei.io/sei-v2-inter...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
SeiNetwork
SeiNetwork
江湖只有他的大名,没有他的介绍。