4 月 5 日,JoyID 创始人兼 CEO Cipher 在登链社区直播分享了 JoyID Wallet 这款产品,以及它的原理,还展望了 Web3 领域钱包的未来发展。
以下是字节君根据直播视频整理的内容概要:
钱包创新会是区块链的下一个推动吗?
我们可以看到 3 个现状:
1、越来越多的资本和开发者进入了 Web3。大家普遍认为 Web3 还是一个重要的叙事,虽然最近被 AI 给抢了一点风头,但资本和开发者还是愿意进来的。
2、Web3 目前的主流用户画像是投机用户,还有撸羊毛用户。
3、整个 Web3 的 DApp 领域,DeFi 这个叙事在往下走,甚至很弱了,Game、Social、NFT、音乐等出圈应用在兴起。
这个时候,你会发现 Web3 的叙事和现状出现了矛盾。Web3 的叙事是取代 Web2,或者至少用户基数和 Web2 一样,但目前 Web3 真正的用户并不多,使用钱包的用户可能全球不超过两三千万人。
为什么会有这个矛盾?一个很重要的原因是钱包挡住了用户,用户进不来。
钱包存在 3 个普遍的问题:助记词学习曲线太高,私钥丢失无法复原,手续费需要用户支付。目前的这些钱包产品,对技术极客来说,安全但不便利;对 99% 的人来说,既不安全也不便利,不安全是因为他们大部分人不具备管理私钥的能力。
当然,目前也出现了几种针对钱包的解决方案:
智能合约钱包:可以解决私钥丢失无法复原以及手续费需要用户支付这两大问题,但并没有解决助记词学习曲线太高的问题。智能合约钱包还存在成本高的问题,以及多链同步的问题。
MPC(多方安全计算):可以解决助记词学习曲线太高和私钥丢失无法复原的问题,且无条件支持多链,但并没有解决手续费需要用户支付的问题。MPC 的本质是 SaaS,不论 MPC 钱包帮你把私钥分成了多少碎片,最终每一笔交易签名其实都依赖于 MPC 的服务器去帮你做一些事情,而且只能依赖它这一家,所以也存在很高的风险。
其他方案:托管钱包,或者是伪装成 MPC 的托管钱包,以及使用了 MPC、合约和其他技术的混合钱包。
特别提醒,只要牵扯到 MPC,就需要问下自己是否真的打算用一个 SaaS 钱包?另外,尤其要警惕只需验证一次就完成登录的 MPC 钱包。
JoyID 钱包的特点
在介绍 JoyID 之前,大家可以先试玩一下 JoyID 的测试版,它支持 Windows 电脑、Mac 电脑、苹果手机,以及安装有谷歌服务(GMS)的安卓手机。
测试版链接:https://app.joyid.dev
CKB 测试币领取地址:https://faucet.nervos.org
JoyID 钱包具有以下特点:
无密码、无助记词:直接通过指纹创建钱包,确认交易。
无需依赖任何 Web2 账号:不需要手机号,不需要邮箱......
去中心化、真非托管:密钥在你的设备的安全芯片里生成,JoyID 只能读取你的公钥并请求签名,并不能读取你的私钥。
无需安装:不用下载 App,只要打开网页就行了,也很方便被其他应用集成。
多设备登录:测试版需要在其他设备上输入地址后再开始授权登录,后面会优化成直接扫码登录(类似 Telegram 的多设备登录方式)。
支持助记词、社交恢复、Passkey 等多种恢复方案(可选)。
拥有超越 Web2 账户的体验。
JoyID 的设备支持范围非常广,账号创建可以在 Windows 10/11、MacOS(需要支持 TouchID)、Android 7.0+(需要有 GMS)、iOS 14.5+ 等系统的浏览器中实现(不要用 “魔改” 的浏览器,比如微信浏览器),而 JoyID 账号的登录对设备的系统没有要求,支持全平台登录。Linux 系统后面也可以用,只不过需要使用 Yubikey 来生成公私钥。
JoyID 的原理介绍
首先科普一下 JoyID 的密码学基础:WebAuthn/Passkey。
WebAuthn 是 FIDO 联盟推出的,很多 Web2 大厂(比如微软、谷歌、苹果等)都在支持的下一代无密码账户技术。这项技术在每一台设备上内置了一个叫安全芯片或者说安全区的 TEE(独立于 CPU 芯片),然后在里面生成公私钥对。其安全性达到了硬件级别的安全性,并通过生物识别技术进一步保障使用安全。
Passkey 则在 WebAuthn 的基础上,实现了多个设备之间的互通或者互相授权。
这项技术原本是给 Web2 的账号系统来使用的,但我们把它用到了区块链上,还给它起了个名字叫 “设备账户”。设备账户是什么意思?本质上它是一个合约账户,但是这个区块链合约账户的私钥不是通过助记词来保存的,而是用设备上的硬件芯片来保存。通过使用 WebAuthn/Passkey 技术,在不需要安装的情况下,可以直接在网页环境里面使用系统的安全芯片来做密钥生成和签名,然后通过账户抽象技术,将多个设备密钥绑定到同一地址上,在区块链上公示出来,同时也提供账户恢复功能。
WebAuthn/Passkey 采用的密码学算法是 P256/RS256 等,和主流区块链使用的 secp256k1 还不一样,所以这里就需要区块链拥有账户抽象的能力,能支持其他密码学源语。这样的区块链很少,而 Nervos CKB 正好可以满足这点,所以 JoyID 选择了在 Nervos CKB 区块链上做开发。
这里再科普一下 Nervos CKB 上基于 UTXO 的账户抽象。其实每一个 UTXO 都由一个锁定脚本来管理使用权限,使用者只要提供正确的证明即可解开锁定脚本。通常情况下,“证明” 即数字签名;“锁定脚本” 即验签算法,例如 secp256k1,而锁定脚本即 “地址”。Bitcoin 是第一个使用 UTXO 模型的区块链,但 Bitcoin 的锁定脚本不是图灵完备的,且有很大的限制。Nervos CKB 在 Bitcoin UTXO 模型的基础上做了改进,并提供了基于 RISC-V 虚拟机的图灵完备脚本,所以 CKB 上所有的账户都是 full-featured 抽象账户。
很多人可能会问,JoyID 基于 Nervos CKB 做开发,是不是只支持 CKB 而不支持其他 EVM 链?其实不是的,JoyID 会支持多链,除了 CKB 链外,也会支持 CKB 的侧链 Axon,而 Axon 100% 兼容 EVM 且有着非常高的 TPS。其实只要把其他 EVM 生态无缝地迁移过来,再配合 JoyID 这款低门槛钱包,就可以满足新用户的需求了,因为他们不会特别在意自己在玩哪条链,只在意生态里可玩的项目多不多。
这里再解释一下背后的技术原理。以太坊上的交易由原始交易和数字签名两部分组成,其中数字签名由节点校验,校验通过后就让 EVM 去执行交易内容,EVM 并不会去校验数字签名。所以,我们可以把以太坊的数字签名换成 JoyID 的签名,节点遇到 JoyID 的签名时,把这个签名丢给 CKB 去校验,校验通过后再把交易内容交给 EVM 去执行。这样就能做到 100% EVM 兼容了。
现在 Axon 的开发已经接近尾声,所以大家能看到 JoyID 的测试版里有 ETH 和 USDT,目前是灰色不可用的状态,但再过个把月就可以玩起来了。
最后,有必要提一下 JoyID 的全流程开源和去中心化。JoyID 的合约还在审计中,审计完后会开源,开放访问;中间件也会开源,且允许第三方自行部署;前端同样会开源,任何人都可以部署,且支持离线签名。JoyID 的账户密钥,则完全在用户侧持有和管理。所以,JoyID 真正地实现了全流程开源和去中心化。
全流程开源和去中心化在整个 Web3 的基础设施里面是非常重要的,因为当你的用户数达到一个量级时,比如说 10万以上,你迟早会意识到你不可能一直依赖于一个中心化、不透明的 SaaS。
Web3 钱包的未来
首先说两个我自己的判断:
1、钱包生来就是用来代替 Web2 账户的。
2、通过邮箱、手机号、用户名和密码、谷歌登录等方式作为入口的钱包,一定是中间状态,因为钱包要替代 Web2 账户,就不能让它依赖于 Web2 的账户服务。
有些人可能会问,Web2 账号服务我用得挺好,为什么要换成 Web3 账户?因为 Web3 账户有很多优势:
1、没有密码,不怕服务器泄漏或者被社会工程学,更加安全;
2、不需要提供邮箱/手机号,隐私性更强;
3、应用方对接不需要中心方允许,更加开放;
4、账户自我主权,不依赖中心方,独立存在,更加可靠;
5、天然具备支付和收款功能,以及更多去中心化服务。
有些人可能还会问,既然 Web3 账户这么好,为什么现在用的人却很少?这个当然有历史原因,但我觉得更重要的是 Web3 门槛太高了。所以 JoyID 才会想把门槛降到比 Web2 还低。
门槛降低后,显然会有更多的人进入 Web3 世界,而且 Web3 账户的 permissionless、开放性、可组合性,会让越来越多的 Web2 应用开始使用 Web3 账户,最终导致 Web2、Web3 没有明显界限。