一串密钥重新生成出来,不代表钱包已经恢复好了。我在 Dusk 的 W3sper 文档里看到一条很硬的提醒:不要直接拿新生成的 Profile 去构造转账,因为它没有同步后的 Bookkeeper 记录,拿不到所需余额和 nonce。W3sper 把边界写得很清楚:自己签名的客户端,除了可恢复的密钥存储,还要维护已同步的资产状态,包括公开账户的 nonce 和 shielded notes。这个细节把“我有私钥”与“我能安全花这笔钱”拆成了两件事。
压力通常发生在恢复之后。假如一个应用清掉本地数据后重新生成身份,页面仍显示原来的账户,用户自然会以为一切都回来了;可同步尚未完成时,转账无法正确构造。资产没有消失,用户却会先被一个看起来像余额或网络故障的问题困住。开发者若只做密钥恢复、不展示状态恢复,就把排查成本留给了用户和客服。这不是 $DUSK 的协议缺陷,反而说明 shielded 资产的可花费状态不能靠地址字符串代替。@Dusk 生态需要把“身份已找回”和“资金状态已同步”分开显示,并在后一项完成前明确拦住转账。#dusk