V神談加密支付:總結5次經驗教訓後,以太坊該怎麼做?

撰文:VitalikButerin

編譯:Katie 辜,Odaily 星球日報

2013年,我去了舊金山互聯網檔案館旁邊的一家壽司店,因為我聽說那裡接受比特幣支付,就想試一下。到了付賬的時候,我要求用比特幣支付。我掃描了二維碼,點擊“發送”。令我驚訝的是,這筆交易沒有成功。它似乎已經發送出去了,但餐廳沒有收到。我又試了一次,仍然一無所獲。我很快就發現問題出在當時我的移動互聯網運行不太好。我不得不走了50多米,來到附近的互聯網檔案館,蹭上那裡的Wifi,終於可以發送交易了。

經驗教訓:互聯網不是100%可靠的。我們需要更好的廣播方式,如現場支付系統具有一些功能(NFC和客戶展示二維碼等),允許客戶直接將他們的交易數據傳輸給商家。

2021年,我在阿根廷的一家咖啡店給自己和朋友買茶飲。他們解釋並不是故意要我用加密貨幣支付。只是咖啡店老闆認出了我,並向我展示了他在加密貨幣交易的一個賬戶,所以我建議用ETH支付(使用加密貨幣交易所賬戶作為錢包是拉丁美洲現場支付的標準方式)。不幸的是,我的第一筆0.003 ETH的交易沒有被接受,可能是因為它低於交易所的0.01 ETH的最低存款。我又發送了0.007 ETH。很快,雙方交易都得到了確認(我不介意多付3倍的錢,就當是小費吧)。

2022年,我試圖在另一個地方買茶。第一次交易失敗,因為我手機錢包的默認交易只發送了21000Gas,而接收賬戶是一個需要額外Gas來處理轉賬的合約。嘗試發送第二筆交易失敗,因為我的手機錢包UI 故障,使我無法向下滾動並編輯包含Gas限制的字段。

經驗教訓:簡單而穩定的用戶界面比花哨時尚的用戶界面更好。但同時,大多數用戶甚至不知道Gas限制是什麼,所以我們真的需要更好的默認設置。

很多時候,從我的交易在鏈上被接受到服務承認交易,甚至是“未確認”之間,都會有令人驚訝的長時間延遲。有些時候,我確實擔心他們那邊的支付系統有問題。

很多時候,在發送一個交易和該交易在一個區塊中被接受之間會有長而不可預測的時間延遲。有時,一個交易可以在幾秒鐘內被接受,但其他時候,可能需要幾分鐘甚至幾小時。最近,EIP-1559顯著改善了這一點,確保大多數交易被下一個區塊接受,甚至最近的Merge(合併)通過穩定區塊時間進一步改善了這一點。

本報告圖表由Yinhong(William)Zhao 和Kartik Nayak 繪製

然而,異常值仍然存在。如果你在許多人發送交易的同時發送了一筆交易,而基礎費用卻在飆升,那麼你就有可能因為基礎費用過高而導致交易不被接受。更糟糕的是,錢包的用戶界面不擅長顯示這一點。沒有明顯的紅色警報,也很少有明確的指示你應該做什麼來解決這個問題。即使是專家,他們知道在這種情況下應該通過發布一個具有相同數據但具有更高“最大值基本費用”(max-basefee)的新交易來“加速”交易,但通常可以這樣做的按鈕用戶並不清楚在哪裡。

經驗教訓:關於設計交易的用戶體驗(UX)需要改進,儘管目前有簡單的修復。要感謝Brave錢包團隊認真考慮了我在這個問題上的建議,首先將最大基本費用限度從12.5%提高到33%,最近又探索了讓“阻塞交易”的提示在用戶界面中更明顯的方法。

2019年,我在測試最早的一個試圖提供社交恢復的錢包(social recoverywallet:一種更新的智能合約錢包,提供高水平的安全性和更好的可用性)。與我喜歡的基於智能合約的方法不同,他們的方法是使用Shamir的秘密共享將賬戶的私鑰分割成五個部分,以這種方式,任何三個部分都可以用來恢復私鑰。用戶需要選擇5個朋友(現代術語是“監護人”),說服他們下載一個單獨的移動應用程序,並提供一個確認碼,用於通過Firebase從用戶的錢包創建一個經過加密的連接到朋友的應用程序,並將他們分享的私鑰發送給他們。

這種方法很快就給我的錢包帶來了問題。幾個月後,我的錢包出了問題,我需要使用恢復程序來恢復它。我讓我的朋友們通過他們的應用程序和我一起完成恢復過程,但事情並沒有按計劃進行。其中兩人丟失了私鑰分片(key shard),因為他們換了手機,忘記移動恢復應用程序。第三個原因是,Firebase連接機制在很長一段時間內都不起作用。最終,我們找到了解決問題的方法,並恢復了私鑰。然而,幾個月後,錢包又出現問題。這一次,常規的軟件更新不小心重置了應用程序的存儲並刪除了它的私鑰。但是我沒有添加足夠的參與恢復程序的伙伴,因為Firebase連接機制太差了,不能讓我成功地做到這一點。我最終損失了少量的比特幣和ETH。

經驗教訓:涉及私密信息分享的鏈下社交恢復真的很脆弱,這是個壞主意,除非沒有其他選擇才選它。參與你的恢復程序的朋友(監護人)不應該下載單獨的應用程序,因為如果你的應用程序只用於恢復這樣的特殊情況,那麼很容易忘記並丟失它。此外,需要獨立的中心化通信渠道也會帶來各種各樣的問題。相反,添加參與恢復程序的監護人的方式應該是提供他們的ETH地址,恢復應該通過智能合約完成,使用ERC-4337賬戶抽象錢包。這樣的話,監護人只需要不丟失他們的以太坊錢包就可行。

在2021年,我試圖通過使用“自中繼”(self-relay)選項來節省使用TornadoCash的費用。 Tornado Cash使用“中繼”(reply)機制,第三方將交易推到鏈上,因為當你提現時,你的提現地址通常還沒有代幣,你不想用你的存款地址支付交易,因為這會在兩個地址之間創建一個公共鏈接,這是Tornado Cash試圖防止的問題。問題是中繼機制通常很昂貴,中繼收取一定比例的費用,可能遠遠高於交易的實際Gas費用。

為了節省成本,有一次我在第一次小額提款時使用了中繼機制,收取的費用較低,然後我自己使用Tornado Cash中的“自中繼”功能發送了第二次較大的提款,而不使用中繼。問題是,我搞砸了,在登錄我的存款地址時不小心操作失誤,所以存款地址支付了費用,而不是提現地址。導致我在兩者之間創建了一個公共鏈接。

經驗教訓:錢包開發者應該開始更明確地考慮隱私問題。此外,我們需要更好的帳戶抽象形式,以消除對中心化或甚至“聯合中繼”的需求,並使中繼角色商品化。

其他存在的問題

  • 許多應用程序仍然不能在Brave錢包或Status瀏覽器上運行。這可能是因為他們沒有正確地做功課,而依賴於metamask特定的API。即使是Gnosis Safe在很長一段時間內也不能與這些錢包一起運行,這導致我不得不編寫自己的迷你版JavascriptDapp來進行確認。幸運的是,最新的用戶界面已經修復了這個問題。
  • ERC 20在Etherscan上的交易傳輸頁面,例如:https://etherscan.io/address/0xd8da6bf26964af9d7eed9e03e53415d37aa96045#tokentxns的網站很容易發送詐騙信息。任何人都可以創建一個新的ERC20代幣,它可以發出一個日誌(log),聲稱我或任何其他特定的人向其他人發送了代幣。這有時被用來欺騙人們,使他們認為我支持某種欺詐代幣,而我實際上從未聽說過它。
  • Uniswap曾經提供了非常方便的功能,可以互換(swap)代幣,並將輸出發送到不同的地址。當我必須用USDC向某人支付,但我身上沒有USDC 時,這個功能真的很方便。現在,這個界面不提供這個功能,所以我必須轉換,然後發送一個單獨的交易,這樣操作不方便,浪費更多的Gas。我後來了解到,Cowswap和Paraswap提供的功能,雖然Paraswap目前似乎不能與Brave錢包一起運行。
  • 使用以太坊登錄是一個好選擇,但如果你嘗試在多個設備上登錄,並且你的以太坊錢包只能在一個設備上使用,目前則仍然很難使用。

總結

好的用戶體驗至關重要。一個表面看起來乾淨整潔的用戶界面,但在0.723%的時間段裡做了一些奇怪的、無法解釋的事情,將導致出現巨大問題,這比一個向用戶暴露更多真實存在的細節問題的用戶界面更糟糕。直接暴露問題至少可以讓用戶更容易理解發生了什麼,可以知道問題所在並將其解決。

除了由於規模尚未完全解決而產生的高交易費用這一最重要的問題外,用戶體驗是許多以太坊用戶(尤其是南半球用戶)經常選擇中心化解決方案而不是鏈上去中心化替代方案的關鍵原因,而鏈上去中心化替代方案將權力掌握在用戶及其朋友和家人或當地社區手中。多年來,用戶體驗取得了巨大的進步。特別是從EIP-1559之前的平均交易需要幾分鐘才能完成,到EIP-1559和合併之後的平均交易需要幾秒鐘,這讓使用以太坊變得非常愉快。但在開發這條路上我們仍然道阻且長。

Total
0
Shares
Related Posts