Unipass : 让区块链和用户没有距离!

我们是被互联网宠幸的一代,在成长的过程中也见过了无数的互联网爆品项,随着流量等时代的红利而高歌猛进,成为了独角兽,甚至是当今的特定场景一方之霸,例如腾讯、阿里、拼多多等互联网巨头。在互联网井喷般的环境下熏陶的我们,再投入了区块链领域以后,心情可能是矛盾的,一方面惊叹区块链的成长速度竟然如此之快,这个月流动性挖矿、下个月算法稳定币、之后还有 NFT, NFT 和 DeFi 还能玩出 GameFi ,各种新的戏法不断的涌现,让人随时都有新鲜感。但是另外一方面,现实也是骨感的,除了看尽行情的起起落落外,我们同时也很清楚,真正使用 dApp 的参与者寥寥。流动性挖矿几周、几天的盛况不久随即杯盘狼藉的画面也已经屡见不鲜。区块链似乎让我们看到未来的轮廓,但大家却无法有底,究竟什么时候能看到公链应用的大规模落地,像互联网产品一样获取真实的用户。我想,在此我们有个清晰,但是实现起来却不容易的答案:那就是我们必须让区块链产品和用户没有距离。

为什么在区块链上寻无爆品?

我们至今依然很难看到一个大家都公认的区块链「爆品」,笔者认为原因有很多种,每个人可能也会有个自己的版本。在这里我试着结合自己的区块链经验,总结出一个区块链爆品公式:

区块链爆品 = 滑顺 x 高频应用 x 新流量

从以前到现在,产品的使用滑顺,以及能够有足够吸引人的场景,和找到能被吸引的那群人,其实这几点缺一不可,但是在区块链上目前目前却很难有长期吸引新用户的爆款产品。
在区块链圈子里,我们可以常常看见一个不正常的现象:在交易所买过的资产,我们不一定真正用过它背后的产品,就像很多人买了 Uni ,但是从没有用过 UniSwap,甚至很多人炒币炒了三五年,还不一定有使用过 metamask 去玩过任何 DeFi 、NFT,持币者多于真实用户 这个可能和外在的互联网世界的逻辑完全相反,以股票为例持股人数量多余用户数量的 C 端项目根本不可能存在。

这样怪奇的现象背后一个很重要的原因是因为用户门槛过于的高,即使我是一个想要使用 DeFi 的用户,钱包的创建、私钥保存对很多用户来说以及是一大阻力,更别说后头还会遇到交易速度慢,以及手续费如何支付才合理等等,都是一个坑接着一个坑,一个坎儿接着一个坎儿,光是使用钱包的逻辑这一块就已经足够的整死用户了,那即使背后有财富效应或者其他高频诱因的应用,也难以去打动新用户。说句可能不动听但却写实的话,那就是对于用户而言,在体验上,助记词、私钥保存以及插件钱包等等都不是什么太过于「先进」的体验,而是使用区块链产品的必要之恶。

滑顺的使用体验是区块链产品能够产生爆款的前提和比必要条件,这非常考验区块链产品人的对于技术理解的造诣以及对于用户痛点的同理心。如果用互联网的语境来说,其实滑顺体验背后就是一种技术创新,他会推进新场景以及新用户群体进入区块链产品的世界。

今天,Unipass 重新定义了钱包

今天,如果区块链产品能够尽可能降低使用的门槛,例如像一般的互联网产品一样透过邮箱的验证,指纹的识别就能够生成区块链账户,并且用它来进入任何的 dApp,那么区块链世界的格局或许会继续往上提升一个层级。

这个时候,有个 Game Changer 出现了,那就是 Lay2 团队的 Unipass !

今天 Unipass 重新定义了用户进入区块链世界的入口-- 钱包。这是一款由 Lay2 团队经过经年累月的迭代而打磨出来的产品,当然产品也还逐渐的在进化中。他们对于钱包的理解和实现可能有点颠覆了我们过往对于区块链非托管钱包的印象:

  1. 钱包不是:一定非得要用户记下复杂的助记词
    在 Unipass 中,任意的签名验证都可以在不失去安全性的情况下,让用户方便的使用各种方式创建区块链账户。这点不但考验着钱包的实现能力,也考验着公链的兼容能力,这点在 Unipass 上你可以看到,记下助记词这种步骤不需存在,取而代之的是互联网既有的签名验证工具生成的公私钥

  2. 钱包不是:一定只有一种方式可以生成密钥
    钱包的背后是无数的 dApp 应用,钱包必须要有人使用才有意义,而应用则是希望能够有来自四面八方的用户都用上我的 dApp,因此接入 dApp 的钱包能够开启各扇不同的门,来迎接不同入口的用户这是一大重点,在这点上 Unipass 也在他的登入选择上比一般的钱包多元,长期来说,互联网的 R1、RSA,比特币、以太坊的 K1 或者硬件钱包都可以生成 CKB 上的区块链账户的途径。

  3. 钱包更不是:一定非得是用户不熟悉的操作界面
    安全感是用户在使用产品时必备的条件,界面越是熟悉其实用户越能够放心的使用,过去的用户可能还是对于 metamask 或者其他移动钱包作为入口非常不熟悉,当然更别说让他登入的界面是透过硬件钱包,这更是天方夜谭。其实区块链账户能够在很多用户熟悉的互联网页面直接生成。

  4. 钱包更不是:一定要用户下载某个 App 或者插件
    过去几年在区块链圈子中,大家已经潜移默化的有了一个概念:对 dApp 而言钱包是一个插件或者一款手机 APP,用户使用 dApp 时必须依赖着这个「额外」下载的插件钱包,或者在我们「额外」下载的钱包的浏览器之中才能打开我们的 dApp。 这些其实都为用户带来许多不必要的步骤,因为都一个路径,就代表这个产品又拒绝掉了一批用户。

但是在 Unipass 中则有所不同,下图是 Unipass 钱包的界面,我们可以发现很特别的点,是这样一个钱包它是一个网页的形式,不论我们在电脑、手机、平板,我们可以在任一装置的网页浏览器中打开 Unipass 钱包。

紧接着你会问,怎么样能够在这个钱包中创建一个 Nervos 的钱包账户呢?你只需要创建一组属于自己的账号密码,并且通过邮箱的验证码就能够生成一个区块链钱包。 同时,他还能够放置在任意 dApp 的登入页面中,以弹窗的方式呈现出登入的入口,如此一来,钱包就不是你需要去下载的插件或者手机 App,而是你要用时,任何开发商就可以为你准备好的进入入口。

这不是在吹牛,也不是魔法,当然过程中更不可能发生像某家公链的钱包一样,当你给他你的邮箱,他发给你竟是明文私钥的愚蠢行为,Unipass 之所以能带来滑顺的使用体验,背后是 Lay2 团队的精心构思和 Nervos CKB 开放的密码学验证体系的结晶。


秘宝钱包能够单独开启,也能够镶嵌在任何 dApp 的登入弹窗之中
source:Unipass & Mibao

Unipass 的黑魔法背后的秘密

Unipass 背后的黑魔法有什么秘密呢?这有赖于 Nervos 能够支持各种的密码学源语的底层虚拟机、以及不设限解锁规则的 Cell model ,当然还有 Lay2 对于 Unipass 精良的架构设计。对于 Nervos 能够灵活的支持各种既存的签名算法,而不用让用户再创建一组新的钱包这个特性,我想已经不用赘述,大家可以参考过往的一些文章就可以了解这些原理,在这里我想着重介绍的是,即使有了灵活的底层,Unipass 也必须有设计足够精妙的设计,才能够让用户有滑顺的区块链体验 ,这点 Lay2 是怎么办到的?

双层架构 – 让钱包无孔不入又安全

安全是钱包完全不会妥协、也不能让步的要点,安全性不足的钱包就像是窗户破了洞的飞机,随时都可能土崩瓦解,即使是豪华的 A380 也一样。但是用户体验却又非常的重要,因此在 Unipass 这个轻量级的钱包上,他有着精致的双层架构,来保护密钥的安全,并且兼顾到使用的方便性。

Unipass 的双层架构如下图,由MasterKey 和 LocalKey 组成:

  • MasterKey:第一时间生成 Unipass 账户所使用的密钥
    MasterKey 是这个钱包真正的公私钥对,他可以是任何的签名算法,包含一般网页浏览器的端到端加密工具 Subtle Crypto 就支持的 RSA 算法,以及对于区块链玩家才比较熟悉的以太坊、比特币的签名算法,当然也可以是硬件钱包,甚至是 Yubikey。因此我们可以知道,在 MasterKey 层次上,Unipass 赋予了很大的活性支援各种的签名算法,因此用户可以使用各种既存的设施的 Key 做为自己 Unipass 的密钥,一般而言,Unipass 已经预设了用户什么设施也没有,可以直接在网页浏览器透过 Subtle 生成一组属于自己的公私钥 ,当然也为进阶的加密货币玩家以及 Degen 们准备了进阶的方法。
  • LocalKey :LocalKey 为用户端真正会接触到的 Key ,也就是用户在登入 Unipass 或秘宝钱包时所输入的密码,其实就是在使用 LocalKey,这样的好处是我们可以确保 MasterKey 私钥在连网环境下有过长时间的暴露,同时,透过 MasterKey 对 LocalKey 的授权签名,我们还可以让 LocalKey 支援的 Subtle 和 WebAuthn 生成的密钥做为代替 MasterKey 的密钥。如此一来,我们就能够确定平常用户和 dApp 交互时,我们并不会让用户的 MasterKey 密钥直接暴露在我们的使用环境中,同时由于 LocalKey 可以被保存在装置中的 IndexedDB 内存中, 其私钥无法被导出, 因此 在不会泄露密钥的前提下, 还能够维持持续登入的好体验。

    Unipass 的授权以及与 dApp 交互的方式

交易验证

如果有人对于密钥的安全有兴趣,想更进一步了解的话,笔者认为 Unipass 的交易验签值得深入探讨,在 Unipass 中,由于 MasterKey 对于 LocalKey 进行了授权,因此 LocalKey 可以开启这个钱包,在此处,交易验签其实需要验证的内容,分别是:

  1. MasterKey 的公钥以及MasterKey-privKey 对 LocalKey-pubKey 的授权签名
  2. 同时还会验证 LocalKey 的公钥以及 LocalKey 对交易的签名

MasterKey 的授权签名和 LocalKey 的签名必须同时具备才能够使用该账户的资产。

你的密钥保存在哪?

机智的你可能在这个时候想到了一个问题,那就是如果这不是一个托管钱包,那么我们的密钥存储在哪里呢?其实这个问题可以分成几个层次去回答,在目前暂时的版本中,用户 MasterKey 的 Keystore 会被以密码强加密存在云端服务器中 ,但是只有拥有密码的人才有办法使用 ,也就是用户自己。同时在用户自身装置的 IndexedDB 内存中,则是会保留不可以导出的 LocalKey ,以及等于地址效力的 MasterKey-pubkey,还有 MasterKey 对 LocalKey 的授权签名。如此一来我们确保了用户的使用和密钥的安全,未来据 Lay2 团队表示,Unipass 的 MasterKey 的 Keystore 也会支持用户自行下载保管。

邮箱的恢复机制是怎么办到的?

接下来,可能还会有眼尖的朋友們问到了,那么恢复机制是怎么回事呢?

当然一样是授权的魔法起了做用,在我们创建账户时,其实我们的 MasterKey 授权了两把 Key,一是我们的 LocalKey,另外一个是就是我们的邮箱。

域名金鑰辨識郵件(DomainKeys Identified Mail,DKIM)一套电子邮件的认证机制,提供了数位签章与身分验证的功能,以检测寄件者、主旨、内文、附件等部份有否被伪冒或窜改,目前绝大部份的邮箱,例如 Gmail,QQ 等都已经具备 DKIM 。

通过 MasterKey 对于邮箱的 DKIM 签章授权,我们可以让 CKB 链上去验证「DKIM的发出单位、是不是指定的邮箱所发出,以及是否带有授权签名」,进儿让我们可以转移自己账户的资产,这就是让我们可以在忘记 Unipass 的密码,也就是丢了我们的 Key 的时候还可以恢复这个资产的办法,因为当你忘记密码的时候,这世界上是没有其他人能够帮你保存 Unipass 非托管钱包的公私钥信息的,我们能够依靠的惟一办法,就是你起初的注册邮箱的签名,因为 Unipass 已经事先授权了这个邮箱的签名可以解锁该 Cell 的 lock。

当然,这背后也还有一个安全机制,那就是透过邮箱恢复解开 lock 的这个动作,他必须经历约 48 小时的时间后,才能够转移该账户上面的这些资产,以避免有人恶意的盗用邮件盗取资产。邮箱恢复是 Lay2 的 Unipass 设计的精妙之处,他成功的让每天上亿人都在使用,但却从从未在任何区块链中扮演密钥角色的邮箱 DKIM 签名,首次在 Nervos 链上扮演了用户的入口 ,这是 Nervos 的第一次,也是区块链领域和这个我们最熟悉的互联网设施进行整合的第一次。


LocalKey 和加密遗嘱的授权

一个没有区块链账户的人,怎么能收的了区块链资产红包?

Unipass 还有一个红包的功能,可以让任何人拿走你的加密货币资产,还可以用口令以及谜语红包,红包中的资产目前有 NFT ,甚至未来还能 Fungible Token 。

好奇的你如果你在使用 Unipass 的红包功能时,你可能会觉得神奇,为什么我们可以轻易的发出 CKB 链上的 NFT 红包呢?

答案很简单,还是神奇的授权。

今天我们可以看到发红包的动作,实际上是用户选择好了要发送的 NFT 后,我们透过发红包这个动作,我们在链下签名授权了一对 Key, 可以打开我们存放资产的 Cell 的 lock,并转移走我们的资产 ,因此其实发红包的动作,其实也是一种授权,如果你的红包是口令红包,那么其实我们就是用这个口令或者谜底去对这把 Key 进行加密,而输入 Key 的人就可以转走这笔资产到你自己的 Unipass 账户,所以这就是为什么我们晚来就抢不到红包的原因,因为已经有人早我们一步,拿走这把 Key 并且转移走其中的资产。

如果你是眼尖一点的小伙伴,你甚至还会发现一件有趣的事情,那就是这个过程中(如下图),我们只有进行一笔链上的交易,就是让得到红包的用户转走资产,而包红包其实只是对于 Key 的链下授权 ,这个动作其实也可以显现 Cell Model 的轻巧之处。

上面这些用户都不需要懂,用户要做的就是享受!

没错,对于一般用户而言,我上一段的内容都是废话。

因为用户并不需要了解原理,只需要享受就好。

用户不需要在他不需要动脑的地方被教育,这可能是任何领域产品设计的极致境界 ,就像我曾经听过 APPLE 的某位主管说过苹果的产品是不需要让用户看说明书的,这点在 Unipass 上也相同。

在 Unipass 上,我们不会看到这个钱包要求用户理解区块链

在 Unipass 上,我们也不会看见钱包对于用户的「使用前考试」

在 Unipass 上用户要做的就是尽情的享受区块链技术为其带来的便利以及资产自主管理权,即使上述的技术架构是复杂的,但是在用户面前呈现的使用步骤,基本上都能够符合用户既有的使用习惯与经验,能够让用户直接操起手边的邮箱,或者 WebAthun 的生物识别等工具就玩转区块链 dApp ,我想这就是 Unipass 这个万用通行证想做到的。

当然,Unipass 绝不仅止于此,未来它能够和许多的互联网网页进行结合,也能够和很多的区块链基础设施以及应用结合 。我们可以预见,未来的 dApp 不再需要用户下载插件钱包,不再需要用户下载钱包 APP,而是能够直接在 PC 或者移动端的网页中,透过 dApp 接上 Unipass 的 SDK 而直接产生区块链账户,同时在传统的网页端,许多的登入也可以直接使用上 Unipass 做为登入的凭证,例如论坛等等,如此一来,我们能够看到更多的论坛积分等等过去在互联网中,需要存储在中心化服务器上的资产,可以变为是用户所能够自己握有的资产。如下的示意图所示,未来没有钱包的用户,在 dApp 上可以有直接使用 Unipass 登入的机会,传统互联网的网站,例如论坛也可以透过 Unipass ,为用户开启其他去中心化的使用场景,因为此时的用户账户已经具有了接收资产的能力,而这个时候用户也不需要额外改动什么自己的使用习惯。在这样的情况下,红包等等点对点的价值传递以及社交属性的应用,也能借由这个机会开启一扇窗。

任何 dApp 未来可以为没有区块链钱包的用户提供便捷的入口
soure:Curve.fi(仅为示意,如有雷同那就雷同)

任何互联网网页可以借由这个入口开启他们的区块链应用

最终,在消除了不必要的用户壁垒后,我们会看见区块链和用户不再有距离,在 Nervos 链上任何有新流量的场景以及高频应用,将可以在 Unipass 等技术创新基础设施下,提供给用户更好的使用体验,并且确保这个场景实际存在的用户不会因为技术门槛而被排除在外,这时候区块链的全面落地之路又因此向前迈进了一步,区块链的爆品到来的那天也因此更靠近了一点。


1. 本文谢谢 Lay2 团队的史迪仔、知县不厌其烦的指教与技术细节的分享,没有他们没有这些内容和愉快的学习过程
2.Unipass 是个迭代快速的产品,可能随时会有内容和设计上的更新和进化,一切的架构、内容以 Lay2 团队的实时更新为准,有转载也望友善告知

9 Likes

总之,Unipass使用方便,存资产安全。
接下来最重要的是迎接千万互联网用户来使用了。
基础设施的价值还得由它的用户量来体现。
红包已领。 :grinning:

1 Like

想不到 彩蛋这么快就被发现了 :ox:

链上验证邮箱是怎么实现的?是因为每个用户的邮箱都有公钥的原因吗,cell记录了用户的邮箱以及对应的公钥?

我们这里以 [email protected] 邮箱发出的邮件为例,这封邮件在发送出去的时候会包含来自 gmail 的私钥的签名。其他邮件服务商就是通过在 DNS 上查询 gmail 公开的公钥去验证这封邮件确实是由 gmail 服务商发出来的。这个签名可以在邮件原文中直接看到:

image

这里使用的是 DKIM 技术,可以参考:

UniPass 就是通过在链上实现了 DKIM 签名的验证,从而实现对收件人、发件人、邮件内容等一系列数据的验证的。

目前 UniPass 支持的都是大型邮件服务商提供的邮件服务,比如 gmail.comoutlook.comqq.com163.com 等等。

1 Like

太牛逼了!!真心为nervos感到高兴 能有lay2这样的开发一个顶十个solana生态的开发 可能顶一百个bsc生态开发哈哈哈哈
有几个小问题
localkey == 登陆unipass时候和邮箱一起输入的密码嘛?
我注册成功后换了一台电脑用邮箱+密码也可以登陆 说明不依赖本地环境的任何东西吧 那如果unipass账号的邮箱密码(不是邮箱的密码)泄露了(比如别人看到我输入或者保存在Chrome里Chrome有安全漏洞)是不是等同于传统的助记词泄露?localkey泄露相当于masterkey泄露?

所以说从安全性上和本地的热钱包是差不多的?但是邮箱登陆ux好太多了

我的理解,密码是用来解开 Masterkey 强加密后的 Keystore 文件,之后会生成授权的 LocalKey 放置在本地的 IndexDB 中,所以 MasterKey 基本上不会泄露,而 LocalKey 不可导出,同时在 Lock 验证的时候也还会验证 MasterKey 的授权签名。

未来据了解 Unipass 也会有像是 WebAuthn 等等的安全性更好的工具支援。

LocalKey 目前主要有两种选择,一个是 SubtleCrypto,另一种是 WebAuthn。现在 UniPass 中支持的主要是前者,我们关闭了 SubtleCrypto 的私钥导出功能,因此 LocalKey 在生成之后,是以密文形式存在 IndexDB 内的,无法被导出。就算 Chrome 被人黑了,密文被人盗走了,对方也解不出来私钥的。

安全性上基本和 APP 的加密钱包一致。后面支持上了 WebAuthn 的话,基本就是手机原生级别的加密钱包。

1 Like

还是相当中心化的方案。如果能用邮箱恢复资产,那么metamask钱包+邮箱作为账户也是一个方案,钱包创建私钥和助记词这个过程用户是可以忽略跳过的,有了邮箱就不去备份助记词了。

layer1主链能验证邮箱账号的话,那么理论上邮箱号能做收款账号,发送资产过去让对方在一定时间内注册绑定好公钥地址,然后接收资产。可能矿工费较高,要在layer2上面做

1.哪里中心化还望指教

2.邮箱这块我认为没有你说的这么复杂

网站登陆本来就是中心化的,安全性始终不是像用户掌握私钥那样

你理解错了网站登入
你的metamask一样可以让你自己输入密码
但不代表有人保存你的私钥啊

确实以太坊私钥加邮箱也是我们的解决方案之一,通过metamask,imtoken或者Ledger等私钥管理器作为UniPass的MasterKey。只是我们目前主要针对的是互联网用户,所以服务您这样的高级用户并不是我们最先需要解决的问题,因为高级用户已经有了更多的选择,和更安全更自主的方案了。

邮箱可以在链上验证,所以确实可以直接将邮箱作为接收资产的地址,而且是链原生的支持,这个我们已经在开发相关的解决方案了。

至于说网站是中心化的就不太能够同意了,目前的dApp的网站都是需要中心化部署运维的,我们开源了前端代码,用户完全可以自行部署使用。

1 Like

Unipass 正式上线了吗?还是说现在是测试阶段?

1 Like

已经上线主網了
现在的版本你可以直接用你的邮箱和互联网设备直接生成区块链账户。
未来还会支援扫脸指纹等等签名算法以及多层级的密钥管理。Lay2这个非常兢兢业业的团队会不断的迭代产品,让你最终可以使用一个unipass 就进入所有的区块链世界。
可以先尝试看看:https://unipass.xyz/
私信我我给你发个主网nft红包体验体验

1 Like

感谢 Williams 介绍!

目前线上运行的 UniPass 算是 beta 版本呐,正式版本还在马不停蹄的开发中,不久之后就会上线呐。

如果是 beta 版本的话,在里面放一些 token,未来正式版本也不会丢吧?

目前大家在 UniPass 内放的 NFT 这些不用担心呐,肯定不会丢的。但是不建议往里面放 CKB 这些资产呐。