LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 迈向互联网级产品使用体验的区块链

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

2020-07-16 Nervos 来源:区块链网络

From Nervos Williams

我们常常可以听到许多人在说「区块链产品的用户教育成本很高」,但其实对于 C 端用户而言,用户教育这个说法是不存在的,他们并不需要知道什么是区块链,就像我们使用人工智能产品时不需要理解什么是卷积神经网络一样。


但是,一个可以让上层应用免去用户学习成本的基础设施,究竟该有什么样的特质呢?这好像是几年来大家在关注 TPS 之余比较少探讨到的。所幸还是有人默默的在探究这些问题,我们也从中渐渐地看到了一些答案了。


2017 年的那波浪潮,让世界开始意识到Blockchain is a big thing,但到了 2019 年,区块链已不在是个神秘的技术,甚至有人开始说Blockchain will be boring[1]。今年,如果我们把所有的区块链用户,不论活跃或是不活跃的都加起来,或许还不到世界人口的 0.5%[2]。


本文主要想和大家聊聊,仍处于技术发展早期的区块链技术,到底在使用体验上出了什么问题,以及大家应该怎样去改进,目前有了哪些不错的方案,以及区块链的最底层基础设施——公链,可以如何让区块链的各种应用拥有更大的弹性,从而制造更好的产品使用体验。


图片来源:https://www.technologyreview.com/2018/04/09/3066/in-blockchain-we-trust/



区块链如何吓跑用户?

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

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

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

最后,剩下少数对于新世界的技术、新财富依旧好奇的少数用户留了下来,继续一起经历风雨。

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


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


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


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


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


当然这也是中心化交易所目前的优势,让用户可以绕过助记词等等陌生的产物。但是,历来交易所被盗事件就已不绝于耳,每年少说有个一两起,动辄损失就是上亿美元。而且根据这十几年的趋势来看,我们甚至可以预测对于中心化交易所的攻击只会越来越频繁,攻击手法也会越来越多元,有兴趣的朋友可以看一看知名区块链数据分析公司 Chainalysis 的这篇报告[3]。


总之,最安全的方式还是把你的加密资产放在自己的身边。另外,想要使用任何区块链上的产品,钱包也是必须,因此钱包是个「真正进入区块链世界」的必需品。



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



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


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


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


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



近年来许多钱包的改进

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


WalletConnect:扫码即登入


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


目前已经有许多的钱包商加入了 WalletConnect 协议中,例如 Argent,以及国内用户常常使用的 imToken。而dApp 开发者要使用 WalletConnect 更是一件轻而易举的事情,我们随便看几个 DeFi 应用,例如 Uniswap/Aave/DDEX 等等也都已经支持。


如果想更了解这类型的相关技术的发展,这篇文章[4]很值得一看,或者可以看下方的截图:


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


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

https://walletconnect.org/wallets/

如果想知道有哪些dApp 允许 WalletConnect 可以看这里:

https://walletconnect.org/apps


Meta Transactions:终于不用一登入就要花手续费啦


传统而言,互联网用户的生态里面,有个共识是「流量为王」,尤其是站在风口的行业,必定要拼命的进行闪电式扩张,尽可能透过自己的势能去抢占一片可能下一刻就变成红海的蓝海市场。这个前提下,补贴和尽可能的给顾客优惠,再配合增长黑客(Growth Hacker)行销已经成为了互联网商业的显学。


相对的,区块链世界则非常「高冷」,强调所谓「谁发交易谁付费」的概念。很不巧,任何使用者要和任何dApp 交互,钱包账户要登入就一定会发生第一笔交易(Approved 的交易在 Account Model 的设计下已经是必要之恶),区块链开发者可能觉得理所当然,因为发起交易自然就会需要手续费。

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

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

因此,我们可以看到Meta Transaction(元交易)[6]的解决方案产生了。所谓的 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[7])的改进提案,通过抵押机制确保节点不作恶。


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


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


下方的链接是 Austin Griffith 在提出 Meta Tx 时的 Demo:


https://www.youtube.com/watch?v=6r3SqCcEVU4#action=share


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


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


另外看到的一个酷炫的设计思路,是 BlockABC 推出的轻钱包方案。


所谓的轻钱包,也就是能够管理小额交易的钱包,并且可以让任何人在微信、Twitter 等社交帐号里面通过设立一组 6 位数的密码来使用钱包。


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


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


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



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


如果对于 BlockABC 所推出的轻钱包有兴趣,也欢迎参看他们的官网:

https://blockabc.zendesk.com/hc/zh-cn


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



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


刚才我们说的三种使用体验改进的方式,比较多的是上层应用的设计巧思而带来的体验便利。但终归一句:「区块链的使用体验障碍根本上是源自于底层设计的僵化」。


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


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


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


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

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

今年年初,Nervos 社区 Grant 团队 Lay2[12],实现了一个神奇的钱包 P-wallet[13],用以太坊的地址就可以收到 CKB。很多人开始在问我:这是跨链吗?


不是!这是因为 Nervos CKB 上的密码学原语是可以自定义的!


Nervos CKB 的编程模型 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白嫖[14]MetaMask 的画面(当然白嫖是戏称,同时也是 Nervos 独有的魅力)


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


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


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


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


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


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


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


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


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


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


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


最后,手续费的问题其实会是DeFi 的重大发展隐患,史迪仔的《被公链们遗忘的加油站 —— DeFi 发展的重大隐患之一》探讨了很多深层的问题和内容。


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


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


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







Ref[1]:https://www.technologyreview.com/2019/01/02/66240/in-2019-blockchains-will-start-to-become-boring/[2]:https://techjury.net/blog/blockchain-statistics/#gref[3]:https://blog.chainalysis.com/reports/cryptocurrency-exchange-hacks-2019[4]:https://www.chainnews.com/articles/489002111545.htm[5]:https://www.walletlink.org/#/[6]:https://medium.com/gitcoin/native-meta-transactions-e509d91a8482[7]:https://github.com/ethereum/EIPs/blob/ff3861c53f3266c94d6d5b2f1112e08609c8088b/EIPS/eip-1613.md[8]:https://medium.com/getamis/meta-transactions-%E5%A6%82%E4%BD%95%E6%94%B9%E8%AE%8A-dapp-%E4%BB%98%E8%B2%BB%E7%94%9F%E6%85%8B-a7b840975028[9]:https://medium.com/getamis/%E9%80%8F%E9%81%8E-gas-station-network-gsn-%E6%89%93%E9%80%A0%E6%9B%B4%E5%A5%BD%E7%9A%84-dapp-%E9%96%8B%E7%99%BC%E8%88%87%E5%85%A5%E9%96%80%E9%AB%94%E9%A9%97-b5ab93dab968[10]:https://medium.com/imtoken/imtoken-2-5-5-now-with-eth-free-transactions-c67b0824583e[11]:https://tippin.me/dashboard.php[12]:https://talk.nervos.org/t/lay2-pw-sdk-build-dapps-on-ckb-and-run-them-everywhere/4289/6[13]:https://ckb.pw/#/account[14]:https://sd.lay2.dev/
[15]:https://blog.techbridge.cc/2019/08/17/webauthn-intro/[16]:https://fidoalliance.org/specs/fido-v2.0-rd-20180702/FIDO-COMPLETE-v2.0-rd-20180702.pdf[17]:https://github.com/libbitcoin/libbitcoin-system/wiki/Sighash-and-TX-Signing[18]:https://talk.nervos.org/t/open-tx-protocol-brainstorm-1-otx-in-general/4010

—-

编译者/作者:Nervos

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...