撰文:vitalik buterin
編譯:DeFi 之道
2013年,我去了舊金山互聯網檔案館(Internet Archive)旁的一家壽司店,因為聽說那裡接受比特幣支付,我就想去試試。到了付賬的時候,我要求用BTC 付款。我掃描了二維碼,然後點擊了“發送”。令我驚訝的是,交易並沒有完成,它似乎發送出去了,但這家餐廳並沒有收到。我又試了一次,還是沒能完成。我很快發現問題出在我的手機網絡連接上。我不得不向附近的互聯網檔案館走50 多米才能訪問到wifi ,這最終讓我能夠發送這筆交易。
經驗教訓:互聯網並非100% 可靠,客戶互聯網不如商家互聯網可靠。我們需要面對面支付系統具有某些功能(NFC,客戶出示二維碼等),以允許客戶將他們的交易數據直接傳輸給商家(如果這是廣播的最佳方式)。
2021 年,我試圖在阿根廷的一家咖啡店為自己和朋友買茶喝。據咖啡店老闆表示,這家店並沒有特意接受加密貨幣,他只是認出了我,並向我展示了他在加密貨幣交易所的一個賬戶,所以我建議用ETH 付款(在拉丁美洲,使用加密貨幣交易所賬戶作為錢包是進行當面支付的標準方式)。不幸的是,我第一筆0.003 ETH 的交易沒有被接受,可能是因為它低於交易所0.01 ETH的最低存款額,然後我又發了0.007 ETH,很快,兩筆交易都得到了確認(我不介意多付3倍,並將其視為小費)。
2022年,我嘗試在一個不同的地點買茶喝,第一筆交易失敗了,因為我手機錢包的默認交易只發送了21000 gas,而接收賬戶是一個需要額外gas 來處理轉賬的合約。發送第二筆交易的嘗試也失敗了,因為我手機錢包中的UI 故障導致無法向下滾動和編輯包含gas 限制的字段。
經驗教訓:簡單而強大的UI 要優於花哨而時尚的UI。而且,大多數用戶甚至不知道什麼是gas 限制,所以我們真的只需要有更好的默認值。
很多時候,在我的交易在鏈上被接受與服務確認交易之間存在令人驚訝的長時間延遲, 有時,我確實擔心他們這邊的支付系統出了點問題。
很多時候,在發送交易和該交易在區塊中被接受之間,存在令人驚訝的長時間和不可預測的時間延遲。有時,一筆交易會在幾秒鐘內被接受,但也有時候可能需要幾分鐘甚至幾小時。最近,EIP-1559 顯著改善了這一點,確保大多數交易都被接受到下一個區塊中,甚至最近,合併(Merge)通過穩定區塊時間進一步改進了這一點。
圖表來自Yinhong (William) Zhao 和Kartik Nayak 的報告
然而,異常值仍然存在。如果你在許多其他人發送交易的同時發送交易,並且基礎費用(base fee)飆升,則你可能會面臨基礎費用(base fee)過高且你的交易不被接受的風險。更糟糕的是,錢包UI 不擅長顯示這一點。不會有大的紅色閃爍警報,也沒有明確指示你應該如何解決此問題。即使對於一位專家來說,他知道在這種情況下,你應該通過發布一個具有相同數據但基礎費用(base fee)更高的新交易來“加速”交易,但通常也不清楚該怎麼做。
經驗教訓:圍繞交易包含的用戶體驗需要改進。感謝Brave 錢包團隊認真對待我對這一主題的建議,首先將最大基礎費用(base fee)容忍度從12.5% 提高到33%,最近還探索瞭如何在UI 中更明顯地顯示卡住的交易。
2019 年,我測試了一個最早試圖提供社交恢復功能的錢包之一。與我首選的基於智能合約的方法不同,他們的方法是使用Shamir 秘密共享方案將帳戶的私鑰分成五部分,這樣可以使用其中的任何三部分來恢復私鑰。用戶需要選擇五個朋友(“監護人”),說服他們下載一個單獨的移動應用,並提供一個確認碼,用於通過Firebase 創建從用戶錢包到朋友應用程序的加密連接,並向他們發送密鑰份額。
這種方法很快就給我帶來了問題。幾個月後,我的錢包出了問題,我需要使用恢復程序來恢復它。我請我的朋友通過他們的應用與我一起執行恢復程序,但它沒有按計劃進行。其中有兩人丟失了密鑰碎片,因為他們換了手機,忘記了遷移恢復應用。第三,Firebase 連接機制長時間無法正常工作。最終,我們想出了解決問題並恢復密鑰的方法。然而,幾個月後,錢包又壞了。這一次,不知何故,定期的軟件更新意外地重置了應用程序的存儲並刪除了它的密鑰。但是我沒有添加足夠的恢復監護人,因為Firebase 連接機制太糟了,不能讓我成功地做到這一點。最終,我損失了少量的BTC 和ETH。
經驗教訓:除非別無選擇,否則基於秘密共享方案的鏈下社交恢復真的很脆弱,而且這也不是一個好主意。你的恢復監護人不必下載單獨的應用程序,因為如果你只有一個用於恢復等特殊情況的應用程序,那麼就很容易忘記它並丟失它。此外,需要單獨的集中通信信道會帶來各種問題。相反,添加監護人的方法應該是提供他們的ETH 地址,恢復應該通過智能合約,使用ERC-4337 賬戶抽象錢包來完成。這樣,監護人只需要不丟失他們的以太坊錢包(這是他們已經更關心的事)就能幫忙恢復。
2021 年,我試圖通過使用“self-relay”選項在使用Tornado Cash 時節省費用。 Tornado Cash 使用“中繼”機制,第三方將交易推送到鏈上,因為當你提款時,你的提款地址中通常還沒有幣,你不不想用存款地址支付交易,因為這會在兩個地址之間創建一個公共鏈接,而這是Tornado Cash 試圖防止的全部問題。問題是中繼機制通常很昂貴,中繼收取的費用可能遠高於交易的實際gas 費用。
為了節省成本,有一次,我使用中繼進行了第一次小額取款,這將收取較低的費用,然後使用Tornado Cash 中的“self-relay”功能,在不使用中繼的情況下自行發送第二次較大的取款。問題是,我搞砸了,在登錄我的存款地址時不小心做了這件事,所以存款地址支付了費用,而不是提款地址,這導致我在這兩者之間創建了一個公共鏈接。
經驗教訓:錢包開發人員應該開始更加明確地考慮隱私問題。此外,我們需要更好的帳戶抽象形式,以消除對中心化甚至聯合中繼的需求,並將中繼角色商品化。
雜項
-
很多應用程序仍然無法與Brave 錢包或Status 瀏覽器一起使用,這很可能是因為他們沒有做好功課並依賴於Metamask 特定的API。甚至Gnosis Safe 也很長時間沒有使用這些錢包,導致我不得不編寫自己的迷你Javascript dapp 來進行確認。幸運的是,最新的UI 已經修復了這個問題。
-
Etherscan 上的ERC20 轉賬頁面(例如https://etherscan.io/address/0xd8da6bf26964af9d7eed9e03e53415d37aa96045#tokentxns)很容易被偽造交易攻擊,任何人都可以創建一個新的ERC20 token,其邏輯可以發出一個日誌,聲稱我或任何其他特定的人發送了其他人的token。這有時被用來欺騙人們認為我支持了一些騙局代幣,而實際上我從未聽說過它。
-
Uniswap 曾經提供了真正方便的功能,能夠交換代幣並將輸出發送到不同的地址。當我必須用USDC 支付某人但我錢包裡沒有USDC 時,這真的很方便。現在接口不再提供這個功能,所以我必須先轉換然後在一筆單獨的交易中發送,這不太方便,並且浪費了更多的gas。從那以後,我了解到Cowswap 和Paraswap 提供了該功能,儘管Paraswap ……目前似乎不適用於Brave 錢包。
-
使用以太坊登錄很好,但如果你嘗試在多個設備上登錄,並且你的以太坊錢包只能在一個設備上使用,則仍然很難使用。
結論
良好的用戶體驗不是關於平均情況,而是關於最壞的情況。一個乾淨時尚的UI,但它在0.723% 的時間裡會做一些奇怪和無法解釋的事情,那這就會導致大問題,這比一個向用戶暴露更多細節的用戶界面更糟糕。
除了規模化帶來的交易費用高昂這一非常重要的問題尚未被完全解決之外,用戶體驗也是很多以太坊用戶(尤其是全球南方用戶)經常選擇中心化解決方案,而不是將權力掌握在用戶及其朋友、家人或當地社區手中的鏈上去中心化解決方案的關鍵原因。這些年來,Crypto 的用戶體驗取得了巨大進步,特別是從EIP-1559 之前的平均交易需要幾分鐘才能完成,到EIP-1559 和合併之後的平均交易只需要幾秒鐘就能完成,這讓以太坊的用戶體驗變得非常愉快。但是,我們仍然還有更多的工作需要去做。