「钱包」不是个好类比,拆分 3 层重新理解

以下内容整理自「Web3 101」播客的第 S1E14 期,主播为阿伟(Awaei),嘉宾为 UniPass 创始人知县。


阿伟(主持人):我记得你之前在即刻 App 上发过原本准备在「瓦猫之夏」分享的 PPT。在那个 PPT 中,你认为钱包这概念并不是很好,并对钱包进行了拆解,可以跟我们具体讲讲吗?

知县(UniPass 创始人):钱包这个说法不好,是我之前一直隐隐有的一个想法,别人在提到钱包的时候,总会让对方的思维产生一种禁锢。后来,我看到一篇文章,把我这个想法说得淋漓尽致,这篇文章叫 Stop Calling it a Wallet,不要再叫它钱包了。我把这篇文章的一些核心观点列到了 PPT 里。

第一个,是钱包的这个意象不好。钱包咱们用的时间太久了,人类用钱包的历史几百上千年,这个东西在我们的印象里是个静态的物品,缺乏成长感,因为一个钱包你可能用 10 年它也不会变,只是变得更老更旧,不会有什么新功能突然蹦出来,所以有一种特别陈旧的感觉。

第二个,是钱包的一个固有用途,就是放钱,会对你的认知产生一些误导。比如说,咱们现在用的区块链钱包,Web3 钱包,它里面放的其实不是资产,它里面放的是你的密钥,你的资产其实是在链上的,你只是放了一个能动资产的凭证在里面。如果真要类比的话,它其实是你放钥匙的包,而不是放钱的包,只不过放的钥匙,有的是去动钱的,有的不一定是动钱的,可能是你去开另一个保险柜,拿出一个证明来证明你是你,后者就是 DID 的使用场景。

在区块链领域,一开始为什么叫 wallet?其实是因为比特币是一个金融类的产品,它叫 bitcoin,它一开始就是钱,所以用来管理它的就是钱包,这个没毛病。

但是,当时代往后发展,叙事也好,区块链的应用场景也好,其实是变得越来越多了。如果大家还在用钱包这个概念,其实没有办法适应一些新的需求,至少我觉得可以把它称为「账户」。如果再想抽象一点,有一个更极客的词,叫 DPKI(去中心化公钥基础设施)

用区块链和智能合约来实现的一套去中心化公钥基础设施,你可以用它来管理资产,这个时候你可以叫它钱包;你也可以用它来登录,用它来认证,用它来签名,甚至用它来加密,做端对端加密的聊天通话或者说数据保存,这个时候你再叫它钱包就不贴切了。这是我对钱包这个概念的一些看法。

关于钱包的分层,我画了个图:

我把钱包分成三层,最下层我们可以叫它 Signer,签名器。它其实是跟区块链一点关系都没有,它是个纯密码学或者说纯数学运算的一个东西。比如说,你去创建一个密钥对,导入一个密钥,导出一个密钥,或者你拿这个密钥进行各种格式的签名、加密,这些操作全是数学运算,全是在处理数据,所以这部分其实跟链无关。

第二层,我们可以叫它 Provider。这一层开始跟区块链有关系了,比如说,这个是比特币的 Provider,那么你按照比特币的要求,用公钥能够生成一系列的地址;你按照以太坊的要求,可以用公钥生成一个 EOA;或者按照其他链的要求,生成不同的地址。

你怎么跟区块链交互,也是这一层定义的。比如说,某些 RPC 的服务,一些相关的 API 处理,其实都是 Provider 做的事情,我们经常会看到换个 Provider 就能切换到另外一条链。如果是多链钱包的话,用户使用同一套助记词可以生成多个不同链不同地址的钱包。这些都是在不同的 Provider 的作用下做到的。

最上面那一层,就是我们常说的 Wallet。它是一个应用逻辑,或者说它是一个场景。Wallet 干的事情,包括资产的展示,资产的收发,交易记录的查看,等等。

这是我自己的想法,当然也欢迎大家去来 challenge。

阿伟(主持人):其实本质上可能没有一个官方的定义。我们经常会把钱包这概念混用,比如我们中文可能都叫钱包,但有的时候英文对应的是 Wallet,有的时候是 Address。

地址和钱包,这两个词经常混在一起。你能不能给大家解释一下?比如,MetaMask 到底是什么?它应该叫钱包,还叫地址?它这里边生成的是啥?

知县(UniPass 创始人):MetaMask 其实是钱包,因为钱包是一个应用。

地址可以理解为一个概念,钱包里面管的是各种各样的地址。只不过大家在聊的时候,不太注意的时候,就直接把地址叫钱包了。Active wallets 有多少,可能就是一种省略的说法,实际指的是 active wallet address。

在我看来,这两个概念还是非常清楚的,可以很容易区分。

地址是一个实体,其实可以不经过钱包,你自己就能算出地址。比如以太坊的 EOA,用 ECDSA-secp256k1 的签名算法将私钥映射成公钥,然后计算公钥的 Keccak-256 哈希值,结果取后 20 bytes,再十六进制数转换,完成后前面再加个 0x,就得到了以太坊地址。这个地址的生成过程中,没有用到任何钱包。

所以,钱包其实是一个工具,它可以帮你去生成地址,帮你去管理资产。

阿伟(主持人):对于普通的用户来说,比如我们用的 MetaMask,它可以生成很多的地址,但其实这些地址你用别的钱包也可以生成。其实应该这么理解这个事情。

知县(UniPass 创始人):**对,同一个地址可以在不同钱包里使用,也可以不用钱包就算出一个地址。钱包和地址的关系,还是比较解耦的。你也可以简单理解为钱包是操作地址的。


收听博客的完整版音频:

Subscribe to Nervos 中文社区
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.