迈向互联网级的产品使用体验的区块链

常常可以听到许多人在说「区块链产品的用户教育成本很高」,但其实对于 C 端用户而言,用户教育这个说法是不存在的,他们并不需要知道什么是区块链,就像使用人工智能的产品不需要理解什么是卷积神经网络一样,但是,一个可以让上层应用免去用户学习成本的基础设施,究竟该有什么特质,好像很是这几年来大家在关注 tps 之余比较少去探讨的,所幸还是有人默默的在面向这些问题,也让我们可以渐渐的看到了一些答案了。

2017 年的 ICO 浪潮,让世界开始意识到 Blockchain is a big thing,但到了2019 年,区块链已不在是个神秘的技术,甚至有人开始说 Blockchain will be boring ,今年,如果我们把所有的区块链用户,管他活跃或是不活跃的都加起来,或许还不到全世界的 0.5%,本文主要想来聊聊,仍处于技术发展早期的区块链,在使用体验出了什么问题,以及大家怎么样去改进,目前有了哪些不错的方案,以及区块链的最底层基础设施 — 公链,可以怎么让区块链的各种应用拥有更大的弹性,去制造更好的使用体验的产品。


source

区块链如何吓跑用户?

一直以来,区块链都面临到一个很致命的问题:就是过高的用户门槛
这样棘手的问题,也让对区块链感到好奇,想要进入的萌新用户逃之夭夭。

要好好保存一大堆乱码的私钥、十二个不明所以的助记词、地址吓跑了一大票新手村的朋友。

终于,有些人鼓起勇气,要记下十二个字的助记词,但又被恐吓不能截图…只能说区块链对新手来说真的太难,也太不友善了。

剩下少数对于新世界的技术、新财富依旧好奇的少数用户留了下来。

然后继续一起走过摧残,中间有些人觉得区块链的技术是在太难以理解,还满地都是术语和缩写,受不了离开了区块链,有些人买币亏了一屁股钱而和这个领域说了声掰掰。

如果用一个用户漏斗来形容的话,在区块链上的离去的用户可能依序是这个样子吧

钱包是进入区块链的必须工具

钱包是区块链的入口,任何一位区块链的用户要使用区块链上的资产,或者要使用任何一种智能合约,钱包就是一张进入这个世界的通行证。

『乱讲,我只要买币卖币,干嘛需要用钱包,把钱放交易所好了啊!』

当然对于这也是中心化交易所目前的优势,让用户可以不用管助记词等等陌生的产物。

但是,历来已经有越来越多的交易所被盗事件。每年少说有个一两起,动辄损失就是上亿美元。而且根据这十几年的趋势而言,我们是甚至可以预期对于中心化交易所的攻击会越来越频繁,攻击手法也会越来越多元,有兴趣的朋友可以看一看知名区块链数据分析公司 Chainalysis 的这篇报告。总之,最安全的还是把你的加密资产放在自己的身边,另外,要使用任何区块链上的产品,钱包也是必须,因此钱包是个『真正进入区块链世界』的必需品。


历年的中心化交易所攻击所造成的损失 source:Chainalysis

我们最早看到的钱包是怎么样?

钱包最基本的功能,其实就和钥匙圈一样,只是存放资产密钥的工具。
最早的桌面钱包,例如 Bitcoin Core 还需要进行节点同步,慢慢的,不需要同步节点的网页版钱包,像大家常见的 MyEtherWallet ,还有可以直接在网路上和 Dapp 交互的 MetaMask 这种 Web Eextension Wallet 出现了。

但是用户似乎还是在受惊吓的阶段,导出助记词的时候既不明所以,还需要被警告,密钥、地址的管理与使用上的不直观始终都是存在的问题。

当然这还不是体验糟糕的结束,因为你要用任何的 Dapp 之前,都还需要交易手续费呢 …

近年来许多钱包的改进

庆幸的是最近几年可以看到大家也开始在思考,怎么带领区块链『出圈』,让普罗大众能更普及得使用区块链产品的钱包、协议也逐渐的问世,帮大家把一堆区块链使用上的坑填起来了一点,以下简单的介绍几个我看到的改进:

WalletConnect :扫码即登入

WalletConnect 是一个很棒的协议,基本上他的重点就是让用户在网页端要和 Dapp 进行交互时,可以不需要再透过安装一个 Metamask, 而是可以直接用手机钱包,连接各种网页端的 Dapp,如此一来,密钥管理就可以在装置端完成,同时,扫码登入也更符合一般使用网际网路的使用者的习惯,而且完整的解决了原先区块链『钱包在手机端,Dapp 在网页端』 的使用逻辑矛盾。

目前已经有许多的钱包商,已经加入了Wallet Connect 的协议中,例如 Argent, 以及国内用户常常使用的 imToken,而 Dapp 开发者要使用 WalletConnect 更是一件轻而易举的事情,我们随便看几个 DeFi ,例如 Uniswap/Aave/DDEX 等等都已经支持。如果想更了解这类型的相关技术的发展,这篇文章很值得一看,或者懒一点看一下我的文字配下方的截图,应该也不难理解。

p.s Compound 似乎是少数不支持 walletconnect 的DeFi Dapp,但却支持另个 Coinbase 支持的手机端钱包登入的 Walletlink

如果有兴趣的查询哪些钱包有支持 WalletConnect 的,可以看这里:

如果想知道有哪些 Dapp 允许 WalletConnect 可以看这里:
https://walletconnect.org/apps

Meta Transactions :终于不用登入也要花手续费

传统而言,互联网用户的生态里面,有个共识是『流量为王』,尤其是站在风口的行业,必定要拚命的进行闪电式扩张,尽可能透过自己的势能去抢占一片可能下一刻就变成红海的蓝海市场,这个前提下,补贴和尽可能的给顾客优惠,再配合成长骇客 (Growth Hacker) 行销已经成为了互联网商业的显学。 相对的区块链世界则非常的『高冷』,强调所谓的『谁发交易谁付费』的概念,很不巧,任何使用者要和任何 Dapp 交互,钱包帐户要登入就是一定会发生的第一笔交易(Approved 的交易在 account model 的设计下已经是必要之恶),区块链开发者可能觉得理所当然,因为发起交易自然就会需要手续费。

“我一个 App 玩都还没玩你就要跟我收钱 ?! 大哥你还想做生意吗 ?”

“Gas 是新的币种吗? 不是?! 一样是 ETH 你干嘛假鬼假怪叫做 Gas ?”

因此,我们可以看到 Meta Transaction (元交易)的解决方案产生了,所谓的 Mata Transaction 的解决方案就是说,即使我们一样更动不了底层协议要发交易方付钱的情况,但我在形式上找个代理人来帮你付钱,这应该没问题吧~

这就是 Meta Transaction 的特点,也就是说有个 Relayer 中继层可以在你签署交易以后,代替你支付手续费和发送交易,这不仅是对新手非常友善,对于交易老手来说也可以避免在 312 那种极端情况下,因为没有足够的 ETH 而翻船。

但目前 Meta Transaction 还存在着一些限制,首先的问题就是所有的智能合约必须改成 Meta Tx 的模式,也就是在程式码中将原本交易发送人的 msg.sender 换成 signer ,然后将中继人( Relay Server)设定为 msg.sender ,这已经和原初的各种智能合约的设计在所差异了,因此很多既成的智能合约可能无法直接套用。

另外,还有一个更大的缺点是 Relayer 变相的可以有审查合约的权力,如果他们窜改资料或者不发送交易,都会造成原本的交易失败以及对于原先的交易发送人造成损失,因此后续也再有了 Gas Station Network (GSN,EIP-1613) 的改进提案,透过抵押机制确保节点不作恶。

如果想要了解更多,可以去这两篇文章,一篇介绍元交易另一篇介绍 GSN 方案,但目前 Meta Transaction 还是因为诸多的限制,还没有一个大规模推行。

另外,imToken 透过 Tokenlon 的方式进行手续费代付的方案也值得一看。

下方的连结是 Austin Griffith 在提出 Meta Tx 时的 Demo

但可以代付手续费,对于区块链进行扩张和市场运营的意义重大,尤其在 Gas 费用高涨的此刻。

社交帐户轻钱包:常用的社交工具 Wechat /Twitter即钱包

另外看到的一个酷炫的设计思路,是 BlockABC 推出的轻钱包方案。
所谓的轻钱包,也就是能够管理小额交易的钱包,并且可以让任何人在微信、Twitter 等社交帐号里面设立一组 6 位数的密码。

作为小额收款的钱包,他有意思的地方就在于轻便,大家并不需要直接下载一个 App ,而是可以用社交帐号的小程序等等轻便的工具就能收取『加密货币红包』,这和微信、Line pay 的收红包使用体验也几乎是一样的。但其实 BlockABC 的巧思,就是在于『当用户真的有币了之后』,才会愿意真正的去下载钱包 App 和使用它,到了这个时候,用户再从轻钱包终将助记词导出,并且汇入他们的钱包 App 中即可,这应用的是 OAuth 的授权登入技术,当只要确定了你的 Open id 之后,就能帮你生成一组助记词。

所以他的小额支付非常便利,但长期而言用户还是会需要自己备份钱包比较好,也不适合把过大的金额存于轻钱包。


要使用一个钱包,只需要在微信小程序上打开,而且设定好6位密码就可以使用

其实更早以前闪电网络上就有推出可以在 twitter 上进行小额支付的工具 tippin.me,只可惜没有出现更泛化的版本。

如果对于 BlockABC 所推出的轻钱包有兴趣,也欢迎参看他们的官网:
https://blockabc.zendesk.com/hc/zh-cn

以下这个部分,主要在和大家分享这半年来 Nervos 生态上发生了哪些使用体验升级的提案和实现,而这些也源自于公链底层设计的一些创新~

公链能为上层应用带来产品使代体验的升级

刚才我们说的三种使用体验改进的方式,比较多的上层应用的设计巧思带来的体验便利。

但终归一句: 『区块链的使用体验障碍其实原自于底层设计的僵化』

能不能有更直觉的区块链使用体验一直是一个挑战,因为区块链虽然也是一串程式码写成的软体,但公链本身却非常像是『硬体』,部署好了之后,要改动、要分叉都是一件极其漫长的过程。

因此,公链在设计的第一天开始必须尽可能做到灵活与弹性。

首先,地址和密钥管理,有没有可能更为自由?

答案是可能的! 这也是 Nervos 这条公链从设计之初就一直非常重视的面向。

听说用以太坊的地址可以收到 Nervos CKB 的公链原生代币 CKB ?

今年年初,Nervos 的 社区 Grant 团队 Lay2 ,实现一个神奇的钱包 P-wallet,用以太坊的地址可以收到 CKB,很多人开始在问我:

『这是跨链吗?
不是! 而是因为 NervosCKB 上的密码学原语是可以自定义的』

Nervos 的编程模型 Cell Model 是泛化的 UTXO 模型, Cell 里面分别有四个字段:Capacity(金额和存储空间)、lock script(资产解锁的规则)、type script 、data。
在 Nervos CKB 的底层设计中,交易签名、客户端验证的签名算法并非是硬编码的,而是可以让开发者做任意的编写和抽换,同时有赖于基于 Risc-V 的 CKB-VM 性能足够的强大,任何被编译成 CKB-VM 能验证的加密算法,都可以在不经过硬分叉的情况下就被使用。
在 ckb.pw 的例子中,他就是对 Lock Script 进行更动而已,因为以太坊签名用的是 secp256k1,与 CKB 预设的相同,差别在于哈希函数,CKB 用的是 blake2b,而以太坊用的是 keccak256,因此只需要将提供验证的哈希函数 keccak256 和原先的 blake2b 调换即可。

这象征着什么?

用户不需要为了使用这条链的资产、应用再多管理新的地址和密钥对。

这是最基本的一层,再往另外一个角度看,当我在发送交易的时候,我的签名工具可以是任何一个以太坊等用户较多的工具常用的钱包,例如 Metamask、imToken等, 已经在区块链圈子里的用户,可以将他的的进入 CKB 的摩擦成本压缩到最低,钱包的创建的步骤也可以在初期的开发过程中被省略。

任何在 CKB 上的应用可以因此而赋能,只要他所想使用的验证规则和签名算法有被放到 CKB 链上,那用户直接用他们常用的这套验证工具做交易的签署(ETH 只是其中一种)。

一个 CKB 钱包CKB Dapp 白嫖 Metamask 的画面,当然白嫖是戏称,同时也是 Nervos 独有的魅力


以太坊是目前区块链中最大的智能合约平台,比特币是区块链中最有价值的资产。未来可能还会有超过十亿用户的 Libra 或 DCEP 加入战场,但此外,我们不妨先把视角放到广袤的互联网生态去看,当今天 WebAuthn 以及指纹解锁、PGP Key 等等符合 FIDO(Fast Identity Online)的生态有多少的用户,按造这套设计的思路,这些已经是大家习惯的验证方式,或许在不久的未来都是可以移植到区块链上的。

想想有一天,你用你的手指做一下指纹辨识,就生成了一个地址,以及签署完成一笔区块链上的交易,这会多么的滑顺~

手续费的灵活设置:用各种 token 付手续费和请他人代付都是可能的

自己的交易自己付这个概念对于互联网用户来说已经很难被接受了。

从底层出发,怎么让这件事情变得更灵活一点,这可以从 Nervos 的 Open Transaction 开始说起。

在 Nervos 上的交易和比特币一样,都是在上链前要先构造好的,也就是说输入与输出在上链前是确定的,而不需要透过链上的计算才会知道结果,所以交易手续费在上链前可知,因为所耗损的资源可以提前计算。

由于必须事前先构建交易,于是便有了 Open Transaction 这样的协议提案,这个概念最早源自比特币社区,因为在 UTXO 或者 Cell Model 的架构下,一笔交易里面的输出的生成必定符合输入的规则,才可以被验证上链, 换个角度说说一笔交易是可以由多人组合的,只要符合组成规则就好。

同样的, 一笔交易里面,使用什么样的 token 来支付手续费,在 CKB 上一样是可以被用户自己定义的


Open tx 的交易构造示意图,取自 Cipher on Nervos talk

好像篇幅拉得太长了,如果对这个点有兴趣的朋友们,欢迎参阅 Open Transaction 的提案内容

日前 Nervos 的国民学姐也曾经在线上用 Live Coding 的方式实现 Open Transaction ,欢迎大家来看看~

最后,手续费的问题其实会是DeFi 的重大发展隐患,史迪仔的这篇文章探讨了很多深层的问题和内容。

这些故事都还在进行中,未来的区块链要成为革命性的 Web3,在用户体验上势必不能输过以前的互联网,并且要在这个基础下,让用户体验到区块链的优势与加成效果,这些除了有赖于应用层的巧思外,等层公链的灵活设计也弥足重要。

这个世界还在等待着一种给 99 % 的用户使用的区块链

当今世界的节奏越来越快,每过几年,都会有一些革命性的产品,来向这个世界宣示新时代的到来,区块链时代的会怎么重新形塑世界,我很期待。

文章的篇幅很长,内容跨度也很大,有任何错误欢迎指证但求轻拍。

10 Likes

这里 token 有个 typo

写得太好啦,手动点赞!

1 Like

谢谢知县大人,这一路上你给了我很大的启發。从去年你写的那篇消费级区块链到你们现在在做的PW-SDK,其实都让我对区块链有了全新视角的认识和思考。

1 Like