Portal Wallet:让 CKB 连接全世界的钱包

从去年十一月 Nervos CKB 主网上线以后,一直就有非常多关心 CKB 的朋友们引颈期盼,想看看 Nervos 上的应用究竟会长成什么样子。Nervos 经常在谈的那些技术,真正变成一个用户可以落地使用的产品时,真的有这么的神奇吗?
主网上线后,在经过几个月的基础设施布建,以及 Grants 计划后,我们的 CK Labs 计划也正式启动。第一批入驻的团队 Lay2 也在昨天顺利发布了第一款 CKB 上的 dApp:Portal Wallet。
这不仅是一款钱包,还是一款完善的发挥 CKB 的各种优势的 dApp,让你从此之后再也不需要管理多余的助记词和地址,而是在 Nervos CKB 的链上,直接和以太坊等现有的生态接上线,享受丝滑的使用体验。然而,这只是 Lay2 团队的第一步,他们想做的,是一个让任何人都没有学习门槛、极致简单安全的钱包,甚至可能不单单是钱包。Portal Wallet 和背后的黑科技究竟是怎么样的呢?
Portal Wallet——让 CKB 连接全世界的入口
钱包是任何区块链连接用户的入口,它不但能够进行资产管理,同时还可以是一个通证集成器,所有各种用户端集成的通证。例如在流动性挖矿的概念下非常火的 DeFi 治理代币就是一个治理权的凭证,基本上这些区块链上的功能,都必须透过钱包去做为端口,才能够让用户对交易进行签署以及和各种合约进行交互。我们几乎可以说没有了钱包,用户很难玩转区块链上任何的 dApp。
但其实用户熟悉的钱包是有限的(甚至我们该说熟悉区块链钱包的人在全世界仍是少数),基本上现在区块链用户能够熟悉的,就只有以太坊上常用来和合约做互动的钱包。因此,对于其他非以太坊的后进公链而言,让大量的用户愿意再安装一个专为自己链服务的插件钱包或者手机钱包,似乎都是一件比较困难的事情。除非这条链上的生态,已经能让用户做非常高频的使用,但显然今天这样的情景还未发生。
Portal Wallet 轻巧且优雅的给出了一个答案:那就用以太坊地址等等既有的方案来收发 CKB 吧
首先,Portal Wallet 告别了过去使用一条公链的dApp就要重新下载一个钱包的老路子,而是可以让用户简单的使用既有的以太坊地址,来收发 CKB。同时 Portal Wallet 支持了市面上许多的主流以太坊钱包,例如我们熟知的 Metamask、imToken、Coinbase wallet、Alphawallet、Opera、ABC wallet、Bitpie、TokenPocket 等等。如此一来,用一款 CKB 钱包,可能对于用户来说和用以太坊上的 dApp 在体验上是差不多的。呃……不对,是体验更好,因为在 Portal Wallet 的 CKB 交易跑在 CKB 的链上,所以以太坊上拥堵和昂贵的手续费对你是没有影响的。
在 Chrome 以及这些钱包的浏览器上,我们只需要输入 ckb.pw ,那么 Portal Wallet 就可以去连接我们的以太坊钱包。在这样的情况下,我们的以太坊地址、以太坊的域名地址(ENS),和原本的 CKB 地址都可以成为 CKB 的收发方式。如此一来,过去那些要用新公链的 dApp 就必须要搞一个新钱包,或者是记一组新地址和助记词的问题就不存在了。因为从即刻起,以太坊的主流钱包就是你的 CKB 钱包。
同时,如果想要获取 CKB,对于用户而言这也是一个非常便捷的平台。因为 Portal Wallet 直接在钱包中提供了兑换的服务,那么基本上任何一个持有 USDT 和 ETH 的用户,便可以用这两个非常常见的 Token 直接兑换 CKB,进入 Nervos 的生态之中。省去了到传统的中心化交易所上买 Token,再转到 CKB 钱包的路径。而且当我们透过 Portal Wallet 的闪兑功能换来 CKB 时,他还能够直接支持 Nervos DAO。这意味着一般非开发者的用户,终于可以在不用同步节点的情况下将自己的资金存入 Nervos DAO 了,因为第一款支援 Nervos DAO 功能的移动钱包就在你的眼前。
最后,Portal Wallet 还有一个有趣的雷兔商城,可以让你在上面够购买星巴克兑换券、Imkey 硬钱包等等商品。这个商城未来会有更多关于支付的探索,成为一个现实世界到区块链世界的入口,让钱包和用户的日常生活产生更多连结。
Portal wallet 对 Nervos 生态的影响
可以白嫖以太坊,其他公链和互联网的验证方式也可以
今天我们可以看到,Portal Wallet 几乎是白嫖了以太坊的地址和生态中许多的钱包来作为交易的签名工具。但其实我们可以去想想,如果以太坊的签名可以透过 Portal Wallet 在 CKB 上可以被验证,那么其他公链,或者互联网的其他验证方式可能都会是潜在的用户入口。想一想未来由脸书推行的公链 Libra 可能拥有十亿的用户,如果验证 Libra 的签名是可行的,那么 Libra 上的大量用户也能够直接用 Portal Wallet 接入 CKB 生态 。

如果你觉得这太远,那么可以想想我们每天常用的电脑、手机指纹解锁、FaceID 或者邮件、电子护照等等,其实都是基于密码学签名验证的原理。例如指纹解锁、FaceID 以及 Yubikey 是基于 WebAthun 的标准去产生。如果 Portal Wallet 今天验证的签名从以太坊改成 WebAthun 的签名算法,那么任何一个用户就可以和在使用一般的互联网产品一样,直接透过目前我们已经习以为常的指纹、FaceID 去做为交易签署和验证的方法。用户不需要知道这是一个 CKB 上的 dApp,甚至不会知道他是一个区块链产品,因为和自己平常的使用方式相比几乎是如出一辙的。

一个 dApp 可以白嫖,CKB 上千千万万个 dApp 也都可以
Portal Wallet 是基于 Lay2 在 Nervos 上的 Grants 项目 PW-SDK 而成的 dApp。那么,脑筋动的快的你一定也会想,如果 Portal Wallet 可以直接使用以太坊,甚至是其他公链以及互联网上现行的验证规则,其他和 Portal Wallet 一样依循着 PW-SDK 所打造的  dApp,一样也可以直接调用以太坊和其他公链,以及指纹解锁等互联网的验证方式。只要 PW-SDK 已经将该 dApp 所需的签名算法部署到 CKB 链上即可。

那么可想而知,对很多 CKB 的 dApp 用户而言,他们就不需要为了使用 CKB 上的 dApp 而再去做太多的前置作业。例如安装钱包等等,这对于很多的 C 端用户而言可以降低许多使用上的负担,因为他在使用这些 dApp 时,就像是他原本在使用以太坊或者平常自己习惯的互联网产品,用户并不需要为了使用 CKB 上的 dApp 而增加任何因为基础设施转换而造成的学习成本。这对比目前其他的公链,都还要额外安装自己的插件钱包,抄下助记词和用一组新公钥相比,在使用上会是天大的差别。
那么,对于 CKB 的 dApp 开发者来说,也可以减去许多用户获取上的门槛,对公链的生态扩展也有所帮助,毕竟对于开发者来说,用户基础和公链性能是他们选择要在哪个公链上发展的两大重要因素。
白嫖不是偶然
为什么 CKB 能够做到这件事情:白嫖不是偶然,而是技术创新下的必然
Portal Wallet 是第一款 Nervos 的 dApp,同时也是让 CKB 连接全世界的钱包。
或许看到这里你还是一头雾水。
「为什么 Nervos 上的 dApp 能够白嫖以太坊、甚至是互联网上的验证工具作为 CKB 交易的签名验证呢?」
这样的白嫖并不是偶然,而是在 Nervos CKB 底层设计下的必然。Nervos 底层的虚拟机 CKB-VM 是基于 RISC-V 指令集的基础打磨而成,可以解读各种的密码学原语。而 Nervos CKB 本身的编程模型 Cell Model 也足够的灵活,可以任意的在 Lock Script 抽换解锁该 Cell 的验证方法。
在这个基础上,地址和签名验证基本上就的是应用层。在 CKB 中证明资产所有权的签名验证规则,是可以自由更改的。Nervos CKB 原先预设的签名算法和哈希函数分别是 secp256k1 和 blake2b,以太坊的签名算法和哈希函数是 secp256k1 和 keccek256 ,我们只要能够在 CKB 链上部署上  keccek256,那么就可以在 cell 的 lock script 中调用 keccek256 进行哈希的计算。最后算出来的哈希对上签名就可以对以太坊地址的公钥进行还原,并且和发送交易的以太坊地址进行比对,那么我们用以太坊私钥的签名就可以被验证了。

同样的,在 CKB 上要部署其他公链或是互联网常见的 WebAthun 的签名算法,一样也可以用同样的方式来完成,让所有的 dApp 都可以自由的使用各种类型的签名验证系统,包含大家使用已久的各种互联网验证的签名算法。
这只是开始,未来 CKB 上的 dApp 能在这样的灵活性下,产生更多的可能。因为 Nervos CKB 的底层设计,就已经赋予了CKB 上的生态产品有这样的基因。不但可以有更活泼的使用方式,并且在带来创新和区块链的服务时,还能够确保这些 dApp 并不会和互联网既有的生态产生隔阂,并且能和开发者、用户的使用习惯都保持紧密的相连。
从 Portal Wallet 之后,这种可以善用既有的基础设施,减低用户进入门槛的 dApp,或许也会成为区块链 dApp 设计的新范式,当然这有赖于足够灵活的底层基础设施。