> For the complete documentation index, see [llms.txt](https://wyzresearch.gitbook.io/wyz/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wyzresearch.gitbook.io/wyz/qu-kuai-lian-jie-gou-xue/qian-bao-de-biao-zhun-she-ji-jia-gou-pending.md).

# 钱包的标准设计架构（Pending）

ending钱包是公链上最基础的dApp之一，它是公链链在底层账户规则设计与上层应用体系穿透式关联的体现。也因此代表了其在区块链生态中的重要性。

如果你问一个Web3行业的人，什么是进入web3、Crypto、区块链行业的第一步？他大概率会回答先去注册一个钱包地址。

还记得2018年初，我与中欧商学院学员组织的北京创协举办区块链的交流活动，当时Web2的一位大佬（清华本科+头部科技VC的VP）就聊到，进入区块链行业，第一步就是先搞明白钱包。

冷钱包和热钱包

冷钱包和热钱包，是钱包的两个大形态分类，算是从技术上的大分类。但这显然不是最佳的分类定义。我们还是要先弄明白很多个必要的定义，然后再了解更清晰的结构定义。

定义钱包

在现实世界和互联网世界，如果你拥有一个钱包。

现实世界中：你可以用来装现金

互联网世界中：你可以用来保存电子现金、支付等等

所以钱包的功能是用来处理货币，在互联网的虚拟领域，货币的形态并不单一，很多电子的资产都存在如同货币一样的在用户心中的价值，所以，如果我们再泛化一些，钱包是用来处理资产，包含以数字化形式现实的一切资产。

那这和区块链有何关系？

&#x20;起源在于比特币，比特币是点对点的电子现金系统，其可以实现在无需许可的情况下开户进行转账支付等操作。

所有的区块链都是基于比特币的逻辑设计的，这就代表着区块链的底层是以比特币点对点电子现金系统的产品逻辑去适应的。这其中第一个问题就是：谁来启动并维护这个系统？

比特币通过利用计算设备挖矿带来经济收益，到后来发展出挖矿生态和二级市场替代了传统的建设和维护方式。

接下来的问题是：如何实现无需许可，且自己控制的账户？

比特币中利用密码学中的公私钥对应账户密码体系和无需许可准入设置实现了这个步骤。

那还有哪些规则是特殊设计？

统一的挖矿账户和应用账户规则，也就是无论是谁，进入网络，都使用统一的地址和原生代币，也是使用者支付gas的经济模式循环的基础。

交易信息要经过所有矿工的维护。

以上基于比特币，而让钱包，也就是生成地址的工具和交易资产的工具变成了链的底层必须工具。

那接下来，一个综合的区块链世界的钱包，要怎么做？

首先，进入这个行业后，会发现，链很多，每条链上都会有很多的资产，这些资产都遵循所在链上的标准。

这代表着，一个钱包必须支持多链以及支持多链上的各类资产标准。

这个过程代表有2：

第一，钱包需要验证该链的账本信息

第二，钱包需要对某些合约发行的资产有定向的显示和操作

因此，在后端部分，钱包必然要连接各个链，作为一个全节点来同步数据。当链上是通过某些合约发行资产或者转移资产时，还需要进行特定的显示和操作。

对于第一部分，我们可以在metamask上验证，metamask上添加新网络的时候，要添加链id和链url，也就是访问链上数据的接口。

对于第二部分，例如钱包支持ERC721、1155这一类合约，要单独查看该类资产做显示。

这两个步骤也必然是先连接网络再访问合约等。

后端的过程实现后，如何完成前端部分？

以metamask举例

metamask早期先做了web端的插件版本，这是dApp最佳的方式。

metamask作为插件，存在前端调用的方式，每次调用时，metamask会执行对该链网络上的合约、数据等的访问、调用。

这个部分很重要的部分是钱包访问网络的远程调用端口的稳定性，拥有良好连接稳定性的钱包才具备竞争力。

这时，钱包就是网络前端与链上进行交互的桥梁。

其原因在于，钱包在本地生成的公私钥体系控制着对地址及资产，而只要对链进行操作，都需要使用钱包。

例如当进入dApp，是需要签名，签名的作用是让地址与dApp做一次身份的验证。

当进行转账时，是钱包调用链底层的合约，然后支付gas费，进行动作。

当进行合约调用的时候，也是要通过该账户执行账户独立控制的操作动作。

我们会发现，公私钥的密码学过程是钱包操作非常常用的方式。这也涉及到每个链本身的账户生成，不同的链有不同的密码算法，算法生成的账户、助剂词是对应的，在每条链上的助剂词是唯一对应地址的，但如果是不同的链，使用相同的账户生成规则，在没有实现信息互通的情况下，只有私钥与地址完全对应。

接下里，我们以几个钱包来说明钱包的功能部分。

在区块链和web3领域里metamask的用户量最大，另外就是trustwallet、imtoken、tokenpocket、bitkeep等以及其他链的原生钱包。

这些钱包中，基本模式是一致的，不同的就是显示问题以及与链上设计不同而带来的操作不同。

我们暂且分为链原生钱包和多链钱包。

例如metamask这类多链钱包，首先的要求是可以利用密码学生成EVM体系内的公私钥对与地址。这一操作保证的是生成全新的账户地址、公私钥、助剂词。

然后进入钱包后，重点在于添加网络与添加链上资产。链上的规则是只要持有私钥就可以支配账户中的资产，因此，也代表着不需要进行其他多余操作，只要显示了资产，以及资产是按正常的开放的协议生成的，即可进行转移操作。

metamask还有swap功能，包含购买加密货币和交易功能，其购买加密货币是有其他平台实现，而swap则是一个dex交易池的聚合器，就像是我们使用钱包发起了需求，metamask查看dex池中的交易信息，然后交易成功后再修改余额显示，是直接进行链上合约调用的操作。

其架构图如下：

有些原生的钱包，还会具有其他功能，比如dm、应用市场等等。
