# 加密体验设计原则中的容错性

By [Modashi.eth](https://paragraph.com/@modashi) · 2024-01-16

---

体验设计中的容错性，是指产品在设计时考虑到用户可能犯错的情况，并在错误发生时，提供及时、有效的帮助，让用户能够尽快从错误中恢复，继续完成任务。

Web3 大规模采用面临的挑战之一是新用户的用户体验。新接触加密货币的用户往往对数字敏感度不足，尤其是在法币和加密货币之间进行换算时。这可能导致计算错误，造成财产损失。

例如，一个用户想用 100 美元买 1 ETH，但是在计算的时候，他将 1 ETH 的价格错记为 1000 美元，于是他就输入了 10000 美元。这意味着，他实际上是花了 10000 美元买了 1 ETH，相当于亏损了 99000 美元。

这种错误发生的原因，主要是因为用户对数字的单位不够熟悉，尤其是在 Crypto 领域，由于涉及到小数点和精度等问题，计算起来更加复杂。此外，用户在情绪激动的情况下，也更容易犯错误。

法币换算

作为解决方案，设计师可以通过在 Crypto 出现的地方同步显示法币金额以帮助用户避免错误的发生。从图中 Coinbase、Uniswap 以及 Opensea 的案例中我们发现，在用户需要输入 Crypto 金额的地方也都出现了法币的显示。这样的场景往往会在用户 Buy、Swap、Transfer 或者 Make offer 的时候发生。

在加密领域，Fat finger 是指用户在输入数字时由于手指误操作而导致的错误，例如输入错误的金额、币种或地址等，翻译过来也被称为“肥手指”。Fat finger 通常会导致用户的数字资产损失而且在加密领域非常常见，原因有以下几点：

*   加密资产的单位通常是小数，例如 BTC 的单位是 satoshi，1 satoshi 等于 0.000000001 BTC。在这种情况下，即使是小小的错误也会导致巨大的损失。
    
*   加密货币交易的价格波动很大，这使得用户在交易时更容易犯错误。
    
*   加密货币交易的界面和操作方式可能复杂，这也增加了用户犯错误的风险。
    
*   加密交易通常是不可逆的，一旦交易被提交，就无法撤销。因此，即使用户发现了错误，也无法挽回损失。
    

在 2023 年 8 月 10 日，区块先生在他的视频中介绍了他在交易时遭遇 fat finger 的案例。当时，他正在交易一个名为 "Acoin" 的代币。他想买入 100 个 Acoin，但由于手指滑动，他将数量输入成了 10000 个。区块先生在发现错误后立即联系了交易所，要求取消交易。但交易所表示，该交易已经成功，无法取消。区块先生因此损失了 10000 个 Acoin。

区块先生的案例提醒我们，在交易时一定要注意，避免发生 fat finger 事故。以下是一些避免 fat finger 事故的建议：

*   在交易时，一定要仔细检查输入的数量和价格，确保正确无误。
    
*   使用止损等风险控制措施，避免发生损失。
    
*   在发现错误后，立即联系交易所，要求取消交易。
    

这些解决方案有效，作为平台方来说，是否有责任也有义务帮助用户提前避免这些问题呢？作为设计师我们也许可以：

*   **二次确认**。在用户输入敏感信息之前，会显示确认提示，让用户再次确认输入是否正确。例如，当用户完成输入完买入价和买入量之后提交订单，会触发包含汇总信息的弹窗，用户可以选择是否确定下单或者取消当前订单。
    

二次确认

*   **限制输入范围**。对于数字输入，会设置最大值和最小值。例如，用户在交易所提款时，输入一个小于最小 gas fee 的值，输入框便会自动飘红报错。
    

限制输入范围

*   **可撤销操作**。在交易所场景中，当用户不小心输入了一个错误的订单之后，用户还有一次机会可以撤回操作，那就是撤单功能。
    

可撤销操作

除了这些之外，我们还可以针对输入场景做一些特定的优化，以帮助用户更安心的使用，例如我们可以提供：

*   **可调整大小的输入框**。可调整大小的输入框可以帮助用户更准确地输入数字。例如，在用户输入交易数量时，可以根据需要调整输入框的大小。
    
*   **自动纠错**。当用户需要输入一个自定义金额的时候，也可以清空当前的输入框。例如，输入框需要自动检测当前输入的数据是否为正确的类型，例如在买入价的输入框中，当用户按 "ABC" 等按键，用户将无法输入对应的字符，除非输入数字字符。
    

自动纠错

*   **输入提示**。 在输入金额的场景中，当用户选中输入框之后，默认的把当前的最小买入数量以 Tooltip 的形式显示给用户，并且在输入过程中不消失。
    

输入提示

*   **预填充值**。在一些场景中，使用预填充值。例如，在交易所交易时，使用 Token 当前价格作为预填充值，这样当用户需要调整的时候就可以基于当前的数额进行调整。
    

预填填充值

*   **自动检查验证**。在发送资产场景中，用户有时候因为输入错误（多打一个字母，或者打错某个字母）发送给一个错误的地址。为了避免之类问题，以下图为例，当需要发送资产的时候，输入框可以考虑同步验证用户输入的ENS，如果验证通过会显示对应的 0x 地址。另外假设用户将该地址提前存入了地址簿还可以将对应的备注也同步显示出来。
    

自动检查验证

在体验设计中，容错性设计是一项重要原则。通过良好的容错性设计，可以提高用户体验、降低用户成本、提升产品可靠性。

---

*Originally published on [Modashi.eth](https://paragraph.com/@modashi/uO8eYWwbyNSc40oHCHWz)*
