區塊鏈產品體驗升級,除了有賴於應用層的巧思外,底層公鏈的靈活設計也彌足重要。

原文標題:《邁向互聯網級產品使用體驗的區塊鏈》
撰文: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 的 DeFi dApp,但卻支持另一個 Coinbase 支持的手機端錢包登入的 Walletlink[5]

  • 如果有興趣的查詢哪些錢包有支持 WalletConnect 的,可以看 這裏
  • 如果想知道有哪些 dApp 允許 WalletConnect 可以看 這裏

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

但可以代付手續費,對於區塊鏈進行擴張和市場運營的意義重大,尤其在 Gas 費用高漲的此刻。

社交賬戶輕錢包:常用的社交工具 Wechat /Twitter 即錢包

另外看到的一個酷炫的設計思路,是 BlockABC 推出的輕錢包方案。

所謂的輕錢包,也就是能夠管理小額交易的錢包,並且可以讓任何人在微信、Twitter 等社交帳號裏面通過設立一組 6 位數的密碼來使用錢包。

作爲小額收款的錢包,它有意思的地方就在於輕便。大家並不需要直接下載一個 App,而是可以用社交帳號的小程序等等輕便的工具就能收取「加密貨幣紅包」。這和微信、支付寶的收紅包使用體驗也幾乎是一樣的。但其實 BlockABC 的巧思是在於「當用戶真的有幣了之後」,纔會願意真正的去下載錢包 App 並使用它。到了這個時候,用戶再從輕錢包中將助記詞導出,並且匯入他們的錢包 App 中即可。這裏應用的是 OAuth 的授權登入技術,當只要確定了你的 Open id 之後,就能幫你生成一組助記詞。

所以它的小額支付非常便利,但長期而言用戶還是會需要自己備份錢包,也不適合把過大的金額存於輕錢包。

區塊鏈想要擁有互聯網級的用戶體驗,如何從應用層與公鏈去改進?要使用一個錢包,只需要在微信小程序上打開,而且設定好 6 位密碼就可以使用

區塊鏈想要擁有互聯網級的用戶體驗,如何從應用層與公鏈去改進?

其實更早以前在閃電網絡上就有推出可以在 Twitter 上進行小額支付的工具 tippin.me[11],只可惜沒有出現更泛化的版本。

如果對於 BlockABC 所推出的輕錢包有興趣,也歡迎參看他們的 官網

接下來,我們再和大家分享這半年來 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

來源鏈接:mp.weixin.qq.com