ブロックチェーントランザクションの不変性は、祝福でもあり呪いでもあります。
BAYC フィッシング ネットワーク攻撃。ポリネットワークのハッキング。ハーモニーブリッジのハッキング。浪人の盗難事件。 2021 年だけで140 億ドルの仮想通貨が盗まれることになります。これらはすべて盗難が確認されていますが、「元に戻すボタン」(クレジット カードの支払いの取り消しなど)はなく、誰もが必要なときに保存できる Jump Crypto を持っているわけではありません。
しかし、可逆タイプのトークンがあった場合はどうなるでしょうか?
これは、スタンフォード大学の何人かの研究者 (ダン ボーネ、チンチェン ワン、そして私) が過去数か月間答えようとしてきた疑問です。私たちは ERC-20 や ERC-721 に似たオプトイン トークン標準を設計し、リバース トランザクション (それを裏付ける十分な証拠がある場合) をサポートし、それらについて論文を書き、いくつかのプロトタイプを実装しました。これらのトークン標準をそれぞれ ERC-20R および ERC-721R と呼びます。
さて、あなたは次のように考えているかもしれません: リバーシブルトークン?これはブロックチェーンの目的に反するのではないでしょうか?実は違う。これは、ERC-20 トークンを置き換えたり、イーサリアムを可逆的にしたりすることを目的としたものではありません。トランザクション後の短時間であれば、盗難に挑戦し、場合によっては復元できるようにするだけです。
トランザクションは、元に戻せなくなるまでの短期間 (たとえば 3 日間) のみ凍結できることに注意してください。 ERC-20R 資金は、ほとんどの場合、取り消すことができません。
トランザクションの可逆性
トランザクションでは、2 つの可逆トークン間の交換は瞬時に行われ、一方の当事者が凍結を要求した場合、可逆期間が経過したかどうかに関係なく、他方の当事者から資金を回収することが可能です。ただし、可逆トークンを不可逆トークンと交換することは可能であり、取り消されないように保護するために、トランザクションは可逆期間が経過した後にのみ完了することがあります。これは、可逆的→不可逆的スワップでは、資金が不可逆的になるまで遅延が生じることを意味します。したがって、2 つの主要なトークンが可逆的になると、他のトークンにも同様に可逆的になるよう多くのプレッシャーがかかります。
実装によっては、可逆期間が経過した資産をすぐに清算できる場合があります (例: 3 日前に受け取った資産を清算する)。この場合、可逆トークンと不可逆トークンの間に遅延を設ける必要はありません。
動作原理
取引を取り消すプロセス
攻撃者が被害者から資金を盗んだとします。以下の図 1 に示すように、資金はさらに他のアドレスに転送される場合があります。次のようなことが起こります。
1. 被害者は盗まれた資金の凍結を要求します。被害者は、関連証拠と一部の資金とともに、ガバナンス契約への凍結リクエストを提出します。問題のトランザクションは最近のものでなければなりません (取り消し可能な期間が固定されています)。
2. 裁判官は凍結要求を受け入れるか拒否します。分散された裁判官グループが資産を凍結するかどうかを投票します。審議時間はせいぜい1~2日です。彼らが要求を拒否した場合、プロセスは停止し、被害者は資金を失います。要求を受け入れた場合、ガバナンス契約により ERC-20R/ERC-721R 契約が凍結されます。
3. フリーズを実行します。 NFT の場合、NFT の転送が阻止されるだけです。 ERC-20R の場合、盗まれた資金を追跡し、これらの資金の転送を禁止します。アカウント所有者の残高が凍結された金額を超えている限り、他の人と取引を行うことができることに注意してください。
4. 判断。その後、両当事者は分散された裁判官グループに証拠を提出できます。最終的に、裁判官は決定を下し、影響を受ける ERC-20R または ERC-721R コントラクトに対して reverse または拒否Reverse 関数を呼び出すようにガバナンス コントラクトに指示します。拒否Reverseが呼び出されると、係争中の資産の凍結が解除されます。トライアルは長期にわたる場合があり、場合によっては数週間続く場合があります。
5. 取り消し (該当する場合)。リバース機能は、凍結された資産を被害者に送り返します。
図 1: トランザクション例の図
盗まれた資金の追跡
資産が盗まれる場合、その資産が 1 か所だけで盗まれることはほとんどありません。攻撃者は多くの場合、あるアカウントから別のアカウントにそれを転送します。この場合、攻撃者はメモリプールを監視し、フリーズリクエストの受信を確認すると、フロントランニングトランザクションで資産を移動する可能性さえあります。これを回避するための解決策は、単一トランザクションで完全なオンチェーン フリーズ (およびその計算) を実行し、攻撃者がフリーズを「回避」できないようにすることです。
しかし、これらの資産に関わるすべてのアカウントを単に無効にすることはできません。では、どのアカウントを凍結するかをどのように決定すればよいでしょうか?幸いなことに、NFT の場合、凍結は非常に簡単です。現在 NFT を所有している人を調べて、そのアカウントを凍結するだけです。ただし、通貨は分割できるため、ERC-20 の凍結はさらに複雑になります。これらの資金は数十のアカウントに分割したり、Tornado のような匿名ミキサーに転送したり、別のデジタル通貨に交換したりできます。多数のアカウントを経由する場合、少なくともそのうちのいくつかはハッカーに関連しています。しかし、一部のアカウントはおそらく無実であり、販売者は支払いと引き換えに正規のサービスを提供しています。各アカウントの責任を正確に特定できるとは限りません。したがって、当社では、盗まれた資金を追跡しロックするためのデフォルトの凍結手順を提供しています。私たちのアルゴリズムは以下を保証します:
1. 破壊がないと仮定すると、盗まれた金額を補うのに十分な資産が凍結されることになります。 (破壊された資産は返還金額から差し引かれます)
2. 口座内の資金は、泥棒と直接取引があった場合にのみ凍結されます。
3. トランザクション グラフに関する限り、アルゴリズムの実行時間の複雑さは妥当です。
アルゴリズムの詳細については論文で説明します。
分権的な司法制度
パズルのより曖昧な部分は、「分散化された裁判官の集団」に関するものである。この裁判官は誰ですか?彼らはどうやって投票するのでしょうか?彼らはどのように報酬を得るのでしょうか?
これらは最終的には ERC-20R/ERC-721R インスタンスを作成するガバナンス次第です。私たちの論文では、裁判官の不正や贈収賄を阻止する方法、報酬の仕組みなどを検討します。裁判官が取引を追加したり、残高の値を恣意的に変更したりすることはできないことを強調します。