我在加密世界的一些个人体验

2022 Oct 28 See all posts


我在加密世界的一些个人体验

译者:wonder @ GreenPill CN

原文:Some personal user experiences

我在加密世界的一些个人体验

2013 年,我去了旧金山互联网档案馆旁边的一家寿司店,因为我听说它接受比特币支付,我想去试试。在结账的时候,我要求用 BTC 进行支付,我扫描了二维码,然后点击了「发送」。令我惊讶的是,交易并没有成功;看起来交易已经发送出去,但餐厅并没有收到这笔交易。我又试了一次,还是没有成功。我很快就发现了问题所在,原因在于当时我的网络信号不好。我不得不向附近的互联网档案馆走 50 多米,接入了它的 WiFi,才终于将这笔交易发送出去。

经验教训:互联网不是 100% 可靠的,用户互联网比商家互联网更不可靠。线下支付系统需要具备一些能让客户直接将交易数据传输给商家的功能(例如 NFC、客户出示二维码等等),假如这是传输的最佳方式的话。

2021 年,在阿根廷的一家咖啡店,我尝试使用加密货币为自己和朋友支付茶水费。店主表示,他们本不接受加密货币支付,只是因为他认出了我。他向我展示了他在加密货币交易所拥有的一个账户,所以我提议用 ETH 进行支付(在拉丁美洲使用加密货币交易所账户作为钱包是一种标准的面对面支付方式)。不凑巧的是,第一笔 0.003 ETH 的交易没有被接收成功,可能是因为它低于交易所 0.01 ETH 的最低存款额要求。于是我又发送了 0.007 ETH,很快,两笔交易都得到了确认。(我并不介意多付 3 倍的钱,就当作是小费吧)。

2022 年,在另一家店铺,我再次尝试用加密货币支付茶水费。第一笔交易失败了,因为我的手机钱包的默认交易只发送了 21,000 gas,而接收账户是一个智能合约,需要额外 gas 才能处理转账。试图发送的第二笔交易也失败了,因为我的手机钱包的用户界面出现了点小故障,无法向下滑动并编辑「gas 限制」这一字段。

经验教训:简单实用的用户界面要优于花哨华丽的用户界面。但是,大多数用户甚至不知道「gas 限制」是什么,所以我们的确需要优化默认值。

有很多次,我的交易被链上接收和系统确认交易之间的延迟出乎意料地久,甚至出现了「未确认」的状态。有时,我的确会担心链上的支付系统是否出现了一些故障。

还有很多次,发送交易和区块接收交易之间存在延迟,并且这种延迟是不可预测的。有时,一笔交易会在几秒钟内被接收,但更多时候一笔交易需要几分钟甚至几小时才被接收。最近,EIP-1559 大大优化了这一点,确保大多数交易被接收到下一个区块中,最近的合并通过稳定区块时间进一步改善了这种情况。

Yinhong (William) Zhao 和 Kartik Nayak 制作的报告


但是,异常值仍然存在。如果同时有许多人正在发送交易,那么基础 gas 费就会飙升,你就会面临基础 gas 费过高和交易不被接收的风险。更糟糕的是,钱包的用户界面对这种情况的提示也不够到位,既没有显眼的红色闪烁警报,也没有清晰的提醒告知用户应该做什么来解决这个问题。即使你是专家,知道在这种情况下,可以通过提高 gas 费并发布一个数据相同的新交易来「加速」交易,但往往找不到可操作的按钮在哪里。

经验教训:交易相关的用户体验仍需改进,改善方法其实相当简单。感谢 Brave 钱包团队认真对待了我在这个问题上的建议,首先将最大基本费用的限制从 12.5% 提高到了 33%;近期,他们还在探索如何在用户界面清晰地展示「交易被卡住了」这一状态的方法

2019 年,我测试了一款早期的钱包,它提供社交恢复方案。与我偏爱的智能合约方案不同的是,社交恢复采取了沙米尔的秘密分享理念,即将账户的私钥分成五部分,集齐其中任何三个部分都可以恢复私钥。用户需要选择五个朋友(或者是当代术语「守护人(guardians)」),说服他们下载一个单独的移动应用程序,并提供一个确认码,通过 Firebase 创建一个从用户钱包到应用程序的加密连接,并将他们拥有的密钥发送给用户。

于我而言,使用这种方法很快就遇到了麻烦。几个月后,我的钱包出了问题,我需要使用恢复程序来恢复钱包。我请朋友们通过他们的应用程序和我一起执行恢复程序,但事情并没有按计划进行。其中两位朋友丢失了他们的密钥,因为他们换了手机,忘记迁移恢复程序。第三位朋友表示,Firebase 的连接机制在很长一段时间内不起作用。虽然最终我们还是想出了解决问题的办法,并恢复了密钥。但是,几个月之后,钱包又坏了。这一次的问题在于,一次常规的软件更新莫名其妙重置了应用程序的存储,并删除了密钥。由于 Firebase 的连接机制过于垃圾,我无法添加足够的恢复伙伴,最终损失了少量的 BTC 和 ETH。

经验教训:基于秘密分享的链下社交恢复实在是太脆弱了,在有其他选择的情况下,这绝不是一个好的方法。帮助恢复密钥的守护人不应该下载一个单独的应用程序,因为如果一个应用程序只有「恢复(密钥)」这一种特殊用途,人们很容易忘记和丢失。此外,独立的中心化通信渠道也会带来各种问题。相反,添加守护人的方式应该是提供他们的 ETH 地址,恢复过程应该由智能合约完成,例如使用 ERC-4337 账户抽象钱包。这样一来,守护人只需保证不丢失以太坊钱包即可;出于其他原因,他们也会更加小心翼翼,不让钱包丢失。

2021 年,我想通过使用 Tornado Cash 的「自我中继」选项来节省费用。Tornado Cash 采用的「中继器」机制是由第三方在链上来推送交易。因为当你取款时,你的取款地址中一般没有代币,并且你不想用你的存款地址来支付交易,因为这样会在两个地址之间形成公开的联系,这正是 Tornado Cash 试图避免的问题。但中继器机制往往很昂贵,中继器收取的百分比费用可能远远超过交易的实际 gas 费。

为了节约成本,有一次,我使用中继器先发起了一笔小额提款,这样收取的费用较低,然后在不使用中继器的情况下,我通过 Tornado Cash 的「自我中继」功能,发送了第二笔大额提款。然后,我搞砸了,我在登录存款地址时不小心进行了这项操作,所以我使用了存款地址而不是提款地址,支付了费用。糟糕!我在两者之间建立了一个公开的联系。

经验教训:钱包开发者应该开始更明确地考虑隐私问题。此外,我们需要更好的账户抽象形式,以消除对中心化、甚至是联合中继的需求,并使中继角色商品化。

其它事项

结论

良好的用户体验不是在平均情况下的表现,而是如何处理最坏情况。如果用户界面简约整洁,但在 0.723% 的时间里会出现一些奇怪且无法解释的状况,从而导致一些大麻烦,其实比事无巨细的用户界面更糟糕,因为后者至少可以让用户更容易理解发生了什么,并解决出现的问题。

除了扩容导致的高额交易费用这一重要问题尚未完全解决,用户体验也是许多以太坊用户,尤其是南方世界的用户,经常选择中心化解决方案的关键原因;这也阻碍了用户选择将权力掌握在自己、亲友或当地社区手中这一链上去中心化方案。多年来,用户体验已经取得了长足的进步,尤其是 EIP-1559 的采用。在此之前,交易被接收的平均时间是几分钟,而合并之后的平均交易时间只需要几秒钟,这极大提升了使用以太坊的愉悦程度,但以太坊要做的远不止于此。