Vitalik:我使用以太坊的一些用户体验及经验教训
文/Vitalik,以太坊创始人;译/金色财经0xnaitive
ETH支付
2013年 ,我去了旧金山互联网档案馆旁边的一家寿司店,因为我听说它接受比特币支付,我想试试。到了付账的时候,我要求用BTC支付。我扫描了二维码,然后点击了 “发送”。令我惊讶的是,交易没有通过;它似乎已经发送,但餐厅没有收到它。我又试了一次,还是没有成功。我很快就发现,问题出在我的移动互联网当时工作不顺。我不得不向附近的互联网档案馆走了50多米,接入了它的WIFI,这才使我终于可以发送交易。
经验教训: 互联网不是100%可靠的,消费者互联网比商家互联网更不可靠。我们需要现场支付系统具备一些功能(NFC,顾客出示二维码,等等),让顾客直接将交易数据传输给商家,如果这是最好的广播方式。
2021年 ,我试图在阿根廷的一家咖啡店为自己和朋友的茶水付费。在他们的说法中,他们没有特意接受加密货币:老板只是认出了我,并向我展示了他在加密货币交易所的账户,所以我建议用ETH支付(使用加密货币交易所账户作为钱包是在拉丁美洲进行当面支付的标准方式)。不幸的是,我的第一笔0.003 ETH的交易没有被接受,可能是因为它低于交易所0.01 ETH的最低存款额。我又发了一笔0.007ETH。很快,两笔交易都得到了确认。(我并不介意多付3倍的钱,把它当作小费)。
2022年 ,我试图在不同的地方支付茶水费。第一笔交易失败了,因为我的手机钱包的默认交易只发送了21000 Gas,而接收账户是一个合约,需要额外的Gas来处理转账。试图发送第二笔交易失败,因为我手机钱包的用户界面出现故障,无法向下滚动并编辑包含Gas限额的字段。
经验教训: 简单而坚固的用户界面比花哨而华丽的用户界面更好。但是,大多数用户甚至不知道什么是Gas限制,所以我们真的需要有更好的默认值。
确认延迟
很多时候 ,在我的交易被链上接受和服务确认交易之间有一个令人惊讶的长时间延迟,即使是作为 “未确认”。其中有些时候,我肯定会担心他们的支付系统出现了一些故障。
很多时候 ,在发送交易和该交易被接受的区块之间有一个令人惊讶的、不可预知的时间延迟。有时,一笔交易会在几秒钟内被接受,但其他时候,需要几分钟甚至几小时。最近,EIP-1559大大改善了这一点,确保大多数交易被接受到下一个区块中,甚至最近的合并通过稳定区块时间进一步改善了情况。
图表来自Yinhong (William) Zhao和Kartik Nayak的报告。
然而,异常仍然存在。如果你在其他许多人发送交易的时候同时发送交易,而基本费用正在飙升,你就会面临基本费用过高和你的交易不被接受的风险。更糟糕的是,钱包的用户界面在显示这些方面很糟糕。没有大的红色闪烁警报,也很少清楚地表明你应该做什么来解决这个问题。即使对一个专家来说,他知道在这种情况下,你应该通过发布一个数据相同但最大基本费用较高的新交易来 “加速 “交易,但往往不清楚这样做的按钮在哪里。
经验教训: 关于交易的用户体验需要改进,尽管有相当简单的修复方法。归功于Brave钱包团队认真对待我在这个问题上的建议,首先将最大基本费用的容忍度从12.5%提高到33%,最近又在探索如何使卡住的交易在用户界面上更加明显。
社交恢复
2019年 ,我正在测试最早的钱包之一,试图提供社交恢复。与我喜欢的基于智能合约的方法不同,他们的方法是使用Shamir的秘钥共享,将账户的私钥分成五块,以这样的方式,其中任何三块都可以用来恢复私钥。用户要选择五个朋友(用现代术语说是 “监护人”),说服他们下载一个单独的移动应用程序,并提供一个确认码,用来通过Firebase创建一个从用户钱包到朋友应用程序的加密连接,并将他们的秘钥份额发送给他们。
这种方法对我来说很快就遇到了问题。 几个月后,我的钱包出事了,我需要实际使用恢复程序来恢复它。我让我的朋友通过他们的应用程序和我一起执行恢复程序–但事情并没有按计划进行。其中两个人失去了他们的秘钥碎片,因为他们换了手机,忘记把恢复程序移过来。对第三个人来说,Firebase的连接机制在很长一段时间内都没有工作。最后,我们想出了如何解决这个问题,并恢复了秘钥。然而,在那之后的几个月,钱包又坏了。这一次,一个常规的软件更新不知怎么就意外地重置了应用程序的存储,并删除了其秘钥。但我没有添加足够的恢复伙伴,因为Firebase的连接机制太破,没有让我成功做到这一点。我最终损失了少量的BTC和ETH。
经验教训: 基于秘钥分享的链下社交恢复实在是太脆弱了,除非没有其他选择,否则是个坏主意。你的恢复监护人不应该下载一个单独的应用程序,因为如果你有一个应用程序只用于恢复这样的特殊情况,那就太容易忘记它并失去它。此外,要求单独的中心化通信渠道也会带来各种问题。相反,添加监护人的方式应该是提供他们的ETH地址,而恢复应该由智能合约完成,使用ERC-4337账户抽象钱包。这样一来,监护人只需要不丢失他们的以太坊钱包就可以了,而这是他们因为其他原因已经更在乎不会丢失的东西。
隐私问题
在2021年 ,我试图在使用Tornado Cash时,通过使用 “自我中继 “选项来节省费用。Tornado Cash使用 “中继 “机制,由第三方在链上推送交易,因为当你取款时,你的取款地址中一般还没有代币,你不想用你的存款地址支付交易,因为这在两个地址之间建立了公共联系,这正是Tornado Cash试图防止的整个问题。问题是,中继机制往往很昂贵,中继机构收取的百分比费用可能远远超过交易的实际Gas费用。
为了节省成本,有一次我使用中继机制进行第一笔小额提款,这样收费较低,然后使用Tornado Cash的 “自我中继 “功能,自己发送第二笔较大的提款,而不使用中继机制。问题是,我搞砸了,在登录我的存款地址时不小心这么做了,所以存款地址支付了费用而不是提款地址。哎呀,我在两者之间建立了一个公共链接。
经验教训: 钱包开发者应该开始更明确地考虑隐私问题。另外,我们需要更好的账户抽象形式,以消除对中心化或甚至联合式中继的需求,并使中继角色商品化。
其他的东西
-
许多应用程序仍然不能与Brave钱包或Status浏览器一起使用 ;这可能是因为他们没有正确地做功课,而是依赖于Metamask特定的API。甚至Gnosis Safe也有很长一段时间不能与这些钱包一起使用,导致我不得不自己编写迷你Javascript dapp来进行确认。幸运的是,最新的UI已经修复了这个问题。
-
在Etherscan上的ERC20转账页面非常容易被伪造的东西所欺骗。
(例如:https://etherscan.io/address/0xd8da6bf26964af9d7eed9e03e53415d37aa96045#tokentxns)。任何人都可以创建一个新的ERC20代币,其逻辑可以发出一个日志,声称我或任何其他特定的人向其他人发送了代币。这有时被用来欺骗人们,让他们以为我支持一些骗人的代币,而实际上我甚至从未听说过它。
-
Uniswap曾经提供非常方便的功能,能够交换代币,并将输出发送到不同的地址。 当我必须用USDC支付给某人,但我身上没有任何美元时,这真的很方便。现在,接口不提供这个功能,所以我不得不swap,然后在一个单独的交易中发送,这不那么方便,而且浪费更多的Gas。我后来了解到Cowswap和Paraswap提供了这个功能,不过Paraswap……目前似乎不能与Brave钱包一起使用。
-
Ethereum登录 很好,但如果你想在多个设备上登录,而你的Ethereum钱包只在一个设备上可用的话,还是很难使用。
结论
良好的用户体验不是指平均情况,而是指最坏的情况。一个干净整洁的用户界面,但在0.723%的情况下会做一些奇怪的、无法解释的事情,从而导致大问题,这比一个向用户暴露更多细节的用户界面更糟糕,但至少可以让用户更容易理解发生了什么,并解决任何出现的问题。
除了尚未完全解决扩容导致的高额交易费用这一重要问题外,用户体验也是许多以太坊用户,尤其是发展中国家用户,经常选择中心化解决方案,而不是将权力掌握在用户及其亲友或当地社区手中的链上去中心化替代方案的一个关键原因。多年来,用户体验已经取得了长足的进步–特别是,从EIP-1559之前的平均交易需要几分钟才能被包含,到EIP-1559和合并之后的平均交易需要几秒钟才能被包含,这对使用以太坊的愉快程度是一个巨大的改变。但仍需做更多工作。