# 钱包架构

> <mark style="color:黄色;">**摘要**</mark>  我们为 EVM 链创建两个钱包：一个签名者钱包（EOA）和一个智能合约钱包（SCW）。您的资金保存在 SCW 中。签名者钱包为 SCW 授权交易，并由企业级 MPC 安全保护。两个钱包均为完全非托管。
>
> 对于 Solana 用户，我们创建一个单一的非托管 MPC 钱包。它没有智能合约组件（因为 Solana 目前尚不支持 SCW）。安全原则相同。

### 以太坊和 EVM 链（Base、BNB Chain、Arbitrum）

简单来说，“传统”以太坊钱包只是一个私钥/公钥对。私钥用于签名交易；公钥就是您的钱包地址。

这些传统钱包称为外部拥有账户（EOA）。只有 EOA 能在 EVM 区块链上直接签名交易。

智能合约钱包（SCW）是在链上的智能合约， *看起来* 像钱包，但不能签名交易。为了解决这一点，SCW 将签名委托给配对的 EOA 钱包。

当您在 goodcryptoX 中设置 EVM 钱包时，我们会创建：

* **钱包 1** (`签名者`）— 一个传统的 EOA 钱包。它为您的智能合约钱包签名交易。
* **钱包 2** (`钱包`）— 由 ZeroDev 部署的智能合约钱包（Kernel）。此钱包持有您的资金。

EOA 钱包（钱包 1）由 [web3auth](https://web3auth.io/customers.html) 创建并保护——web3 钱包基础设施的领导者之一，为 Trust Wallet 等提供支持。 &#x20;

该钱包有一个私钥，但该私钥被拆分并加密分布在两个独立方：

* 分片 1：加密并绑定到您的 goodcryptoX 账户
* 分片 2：由 Web3Auth 持有

由于我们使用全 MPC 技术，私钥从不被重构，即使在签名过程中也不会。相反，双方加密因子通过 MPC 共同授权签名。这提供了冷钱包级别的安全性。

您的智能合约钱包（钱包 2）是使用 [ZeroDev](https://www.zerodev.app/)部署的，基于 Kernel 智能合约——目前最节省 gas、最安全的 SCW 实现。

SCW 没有私钥。它完全由您的签名者钱包控制。

因此：

* 您无需管理或查看私钥
* 系统完全非托管

为启用高级交易，我们发行 **会话密钥**：有限权限的密钥，仅能代表您通过 1inch 执行兑换。这些密钥由您的钱包签名一次，加密后在服务器端用于自动化交易。

只有兑换使用会话密钥。转账始终需要直接的钱包签名。

您的 SCW 会在首次发起的外发交易（转账或兑换）时部署。部署前，该地址在区块浏览器上看起来像普通的 EOA。首次交易会稍微多花一些 gas 来覆盖部署费用。

**钱包密码**

最初，您的签名者钱包是一个 2/2 的 MPC 钱包：goodcryptoX 和 web3Auth 各持有一个分片。要实现完全非托管，您可以设置一个 [钱包密码](https://docs.goodcrypto.app/goodcryptox-zh/qian-bao/nei-zhi-qian-bao/qian-bao-mi-ma)，将您的签名者钱包转换为 2/3 MPC：

* 分片 1：绑定到您的 goodcryptoX 账户 — 由我们的基础设施加密并存储
* 分片 2：您设置的钱包密码
* 因子 3：从密码派生并存储在您的设备上，以便您每次打开应用时无需输入密码

这确保任何第三方都无法访问您的私钥——即使在理论上也不能。

这也意味着如果您同时丢失密码和设备，钱包将无法访问。仅在您理解风险时使用。

**即将到来的变更**

我们正在过渡到 **单一钱包架构** 在 EVM 上使用 [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702):

* 签名者 EOA 钱包也将同时作为智能合约钱包运行
* 会话密钥和高级功能将可用，而无需两个钱包
* 您将能够从应用中导出您的私钥

这将简化设置，同时保留相同的 MPC 级别安全性。

您还可以自带 EOA（例如 MetaMask）作为签名者，而不是使用 goodcryptoX 生成的钱包。

***

### Solana 钱包

在 Solana 上，智能合约钱包尚不受支持。因此，我们创建一个单一的 MPC 保护钱包（相当于 EOA）。

该钱包使用相同的 MPC 设置创建：

* 因子 1：绑定到您的 goodcryptoX 账户
* 因子 2：由 web3Auth 持有

在使用过程中私钥从不被重构。相反，使用基于 MPC 的签名来授权交易。

您可以选择设置钱包密码，将您的 Solana 钱包转换为 2/3 MPC。与 EVM 链相同的好处和风险适用。

与 EVM 不同，您的 Solana 钱包私钥可以通过应用直接导出，使用 `导出密钥` 选项在“钱包”选项卡中。
