
只批准了一半的交易会怎样
在 2-of-2 钱包里,每一笔转账都有一个中间时刻:你已经在 SSP Wallet 中批准了它,现在它正在等待你手机上的 SSP Key。也许手机在另一个房间,也许你改变了主意。下面说明这笔只批准了一半的交易在哪里等待、有效多久、能拿它做什么,以及它如何结束。
请求在哪里等待
当你在 SSP Wallet 中确认一笔转账时,钱包会构建交易、加上自己的签名,并把结果作为签名请求发送到 SSP 中继。中继以你钱包的身份标识保存这个请求,并通过实时连接和推送通知把它交给 SSP Key。如果 SSP Key 稍后才连接,中继会在它接入后立即送上等待中的请求。
中继为每个钱包只保留一个待处理请求。你的钱包发出的新请求会替换原先等待的那个;不会积压一串只批准了一半的转账。
SSP Wallet 会显示一个带倒计时的等待窗口。如果 30 秒内没有回应,它会提示你检查 SSP Key 是否已打开并在线,并提供二维码(或可复制的文本),让你手动把请求加载到手机上。
有效多久
请求的有效期是 15 分钟。中继会给每个请求标上创建后 15 分钟的过期时间,时间一到,数据库就会自动删除这条记录。钱包里的倒计时与这个时间窗口一致;真正执行过期的是中继。
之后,请求就不存在了。SSP Key 再也取不到它,SSP Wallet 会告诉你请求已过期,请重试。由于没有任何内容被广播,区块链上也没有什么需要撤销。
手机离线、你拒绝,或你一直不回应
手机离线。 请求在中继上等待。如果 SSP Key 在 15 分钟内重新上线,就会取到这个请求;否则请求过期。
你在 SSP Key 上拒绝。 SSP Key 会通过中继发回一条拒绝消息,由它取代原来的请求。SSP Wallet 显示“交易已拒绝”,并确认该交易不会上链,你的资金完全可用。
你一直不回应。 如上所述,请求会在 15 分钟后过期。
你关闭了 SSP Wallet 中的窗口。 关闭窗口并不会取消请求。窗口本身就写明了:请求会在 SSP Key 上保持待处理状态直到过期,并且它也会作为一笔待处理的转账出现在你的活动列表中。
因此,普通转账没有单独的“取消”按钮。一个请求只会以四种方式之一结束:SSP Key 批准、SSP Key 拒绝、过期,或被你钱包发出的更新请求替换。如果你改变了主意,最干净的做法是在 SSP Key 上拒绝它。
有人能利用这笔只签了一半的交易吗?
不能。你的资金存放在 2-of-2 多签中,有效的支出需要两个签名。在比特币这类 UTXO 链上,地址的脚本本身就要求来自两把特定密钥的两个签名,只有一个签名的交易会被网络拒绝。在 EVM 链上,智能账户校验的是一个组合签名,只有同时拥有两把密钥才能生成。任何看到它的人,包括中继在内,拿到的都是一笔没有任何网络会接受的交易。什么是 2-of-2 多签 解释了其中的原理。
SSP Key 也不会自动签名:它会在设备上解码交易,并等待你的批准。真正能拦住一笔交易的是什么 介绍了沿途的其他检查。
只签了一半的交易无法转移资金,但它并不保密。其中包含收款人、金额、你的发送地址,在 UTXO 链上还包括被花费的币。中继会解码它来生成推送通知(“一笔 X 发往 Y 的交易”)。这正是 SSP 中继能看到和看不到的内容 的一部分:足以读出你在发送什么,但没有任何能让它转移你资金的东西。
等待期间的币与随机数
在 SSP Key 签名之前不会广播任何内容,所以请求等待期间链上什么都不会变。
在 UTXO 链上,为交易选中的币仍然处于未花费状态。SSP Wallet 不会为待处理的普通转账预留它们。如果你再发起一笔转账,它可能会选中同样的币,而且新请求无论如何都会在中继上替换旧请求。SSP Key 不信任请求中的币信息,签名前会自己查询这些币。
在 EVM 链上,涉及两种随机数。账户随机数,也就是 随机数:为什么以太坊交易要排队 中讲到的计数器,在构建交易时读取,只有当某笔交易被打包上链时才会递增,因此等待中或被拒绝的请求不会消耗它。另一种是用于组合签名的一次性签名随机数。SSP Wallet 用过即弃,因此它永远不会为第二笔交易签名,即使第一笔已被拒绝或过期。
SSP Enterprise 有何不同
SSP Enterprise 金库使用 M-of-N 提案,本身就是为更长时间的等待而设计的:默认 7 天,也可以通过金库策略设为 1 小时到 30 天之间。提案的创建者,或组织的管理员或所有者,可以取消提案,从而释放它预留的币或随机数。如果某个提案已经不可能执行,例如它的币已在别处被花掉,它会被标记为过时并关闭,签名人也会收到原因说明。
坦诚的总结
一笔只批准了一半的 SSP 交易,就是中继上一个寿命为 15 分钟的签名请求。它会在被批准、被拒绝、被替换或过期时结束。关闭钱包窗口不会取消它,也没有单独的取消按钮,所以在 SSP Key 上拒绝才是干净的退出方式。
在等待期间,它无法转移你的资金:2-of-2 多签需要两个签名,而 SSP Key 在加上自己的签名之前会先征求你的同意。不过,它确实包含收款人、金额和地址等可读信息,中继能够看到这些内容。


