
半分だけ承認された取引はどうなるのか
2-of-2 のウォレットでは、どの送金にも中間の瞬間があります。SSP Wallet で承認を済ませ、いまはスマートフォンの SSP Key を待っている状態です。スマートフォンが別の部屋にあるのかもしれませんし、気が変わったのかもしれません。この半分だけ承認された取引がどこで待ち、どれくらい有効で、何ができて、どう終わるのかを説明します。
リクエストはどこで待つのか
SSP Wallet で送金を確定すると、ウォレットは取引を組み立て、自分の署名を加え、その結果を署名リクエストとして SSP リレーに送ります。リレーはそれをウォレットの識別情報のもとに保存し、ライブ接続とプッシュ通知の両方で SSP Key に渡します。SSP Key が後から接続した場合も、接続した時点で待機中のリクエストが届けられます。
リレーが保持するのはウォレットごとに一つの保留中リクエストだけです。ウォレットから新しいリクエストが届くと、それまで待っていたものが置き換えられます。半分だけ承認された送金が列をなして溜まることはありません。
SSP Wallet にはカウントダウン付きの待機画面が表示されます。30 秒たっても応答がない場合は、SSP Key が開いていてオンラインかを確認するよう案内し、リクエストを手動でスマートフォンに読み込むための QR コード(またはコピー用のテキスト)を表示します。
有効期間はどれくらいか
リクエストの有効期間は 15 分です。リレーは各リクエストに作成から 15 分後の有効期限を記録し、その時刻を過ぎるとデータベースが自動的にレコードを削除します。ウォレットのカウントダウンはこの時間枠に合わせたもので、実際に期限を適用しているのはリレーです。
その後、リクエストは消えます。SSP Key はもう取得できず、SSP Wallet は期限切れになったので再試行するよう知らせます。何もブロードキャストされていないので、ブロックチェーン上で取り消すものはありません。
スマートフォンがオフライン、拒否した、または応答しなかった場合
スマートフォンがオフライン。 リクエストはリレー上で待ちます。15 分以内に SSP Key がオンラインに戻れば、リクエストを受け取ります。戻らなければ期限切れになります。
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 型のチェーンでは使われるコインが含まれています。リレーはプッシュ通知の文面(「Y への X の取引」)を作るためにこれをデコードします。これは 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 は自分の署名を加える前に必ずあなたに確認します。ただし、受取人、金額、アドレスといった読み取れる情報は含まれており、リレーはそれを見ることができます。


