二重支出問題とは何ですか?

二重支払い問題は、同じ資金が同時に 2 人の受取人に支払われるデジタル キャッシュ システムにおいて潜在的な問題です。適切な対策がなければ、プロトコルだけでこの問題を完全に解決することはできず、結局のところ、ユーザーは自分が受け取った資金が他人に支払われたかどうかを確認する方法がありません。

デジタル現金の世界では、特定の通貨単位がコピーできないようにする必要があります。もし、アリスが 10 通貨単位を受け取り、それを 10 回コピーして貼り付け、その後自分自身が 100 通貨単位を持つことができた場合、システム全体が崩壊します。同様に、同じ 10 通貨単位をボブとキャロルに同時に送金できたとしても、システムは機能しません。したがって、デジタル通貨が適切に機能するためには、これを防ぐメカニズムが必要です。


二重支払いの問題を防ぐにはどうすればよいですか?

一元化されたアプローチ

集中型アプローチは、通常、システムを管理し、通貨単位の発行と発行を制御する監督者を必要とする分散型ソリューションよりも実装が簡単です。 David Chaum の eCash は、一元的なアプローチを通じて二重支払いの問題を解決します。​

銀行はブラインド署名を使用して、現金のようなデジタル資産をユーザーに発行できます (匿名のピアツーピア取引が可能になります)。これについては、暗号学者デイビッド・チャウムによる 1982 年の論文「追跡不可能な支払いのためのブラインド署名技術」で詳しく説明されています。

この場合、ユーザー Dan がデジタル キャッシュで 100 ドルを受け取りたい場合は、まず銀行に通知する必要があります。彼の口座に残高がある場合、乱数が生成されます (額面が小さい場合はさらに多くなります)。それぞれ 20 ドル相当の 5 つの乱数が生成されたとします。銀行が特定の通貨単位を追跡できないようにするために、ダンは各乱数に盲目要素を追加することで状況を混乱させます。

その後、彼はこのデータを銀行に渡し、銀行は彼の口座から 100 ドルの残高を差し引いてメッセージに署名し、5 つのメッセージがそれぞれ 20 ドルで引き換えられることを証明しました。現時点では、ダンは銀行が発行したデジタル キャッシュを使用できます。彼はエリンのレストランに食事に行き、40ドルを使いました。​

ダンは、盲目的な要素を排除し、各デジタル現金「紙幣」に関連付けられたノンスを公開します。これは、各通貨単位の一意の識別子 (シリアル番号にほぼ相当) です。彼は乱数のうちの 2 つをエリンに開示します。エリンは、ダンが他の商人に支払うのを防ぐために、直ちに銀行と資金を交換する必要があります。銀行は署名が有効かどうかを確認し、正しければエリンの口座に 40 ドルを入金します。

使用済みの「紙幣」はその後破棄され、エリンが同じ方法で口座残高を使用したい場合は、さらに紙幣を発行する必要があります。

Chaumian eCash メカニズムは、プライベート送金にとって非常に価値があります。ただし、eCash の仕組み自体には抵抗がありません。銀行は中央集権的なノードであるため、システムに障害が発生すると、全員が被害を受けることになります。銀行が発行する紙幣にはそれ自体に価値はなく、その価値はもっぱら銀行が紙幣を米ドルに交換する意欲によってもたらされます。顧客は銀行の支配下にあり、資金を運用するには銀行の評判に頼らなければなりません。これはまさに、暗号通貨が解決しようとしている問題です。


分散型アプローチ

監視メカニズムのないエコシステムで二重支出の問題を回避することはさらに困難です。同等の権限を持つ参加者は、詐欺を防止し、すべてのユーザーに誠実に行動するよう奨励するために、同じ一連のルールに従って相互に調整する必要があります。

ビットコインのホワイトペーパーで提示された最大のイノベーションは、二重支払い問題の解決策です。サトシ・ナカモトは、現在ブロックチェーンとして知られる前例のないデータ構造を提案しました。

ブロックチェーンは実際には、いくつかのユニークな特性を備えた単なるデータベースです。ネットワーク参加者 (ノードと呼ばれる) は、データベースの独自のコピーを相互に同期できるようにする特殊なソフトウェアを実行します。このようにして、ネットワーク全体で、ジェネシスブロックに遡るトランザクション履歴を監査できます。ブロックチェーンは公的に閲覧できるため、二重支払いトランザクションの試みを特定するなど、不正行為の検出と防止が容易になります。

ユーザーがトランザクションを公開しても、トランザクションはすぐにはブロックチェーンに追加されないため、ブロックをロードする前にまずマイニングする必要があります。したがって、ブロックがチェーンに入った場合にのみ、受取人はトランザクションが有効であることを確認できます。そうしないと、送信者が他の場所で同じトークンを支払った場合、受信者は資金を失う危険があります。​

トランザクションが確認されると、トークンの所有権が新しいユーザーに割り当てられ、ネットワーク全体によって検証されるため、トークンが二重に使用されることはなくなります。このため、多くの人は、有効な支払いを受け入れる前に複数の確認を待つことを推奨しています。後続のブロックごとに、チェーンの変更または書き換えに必要な作業量が大幅に増加します (51% 攻撃の場合など)。

レストランの状況に戻りましょう。レストランに戻ったダンは、今度は窓に「この店はビットコイン決済に対応しています」というステッカーが貼ってあることに気づきました。彼は最後の食事を忘れることができず、同じ料理を再度注文しました (0.005 ビットコインかかりました)。​

エリンはダンに転送アドレスである公開アドレスを示します。ダンの取引に関する発表は、本質的には、彼が所有する 0.005 ビットコインが現在エリンの所有であることを発表する署名付きメッセージです。あまり詳細には触れませんが、ダンの署名付きトランザクションを見た人は誰でも、トークンが確かに彼のものであることを確認でき、したがってダンはトークンを送信する権限を持っています。

ただし、前述したように、トランザクションはブロックにロードされて確認された後にのみ有効になります。未確認のトランザクションを受け取ることは、以前に 40 ドルを eCash で受け取ったようなもので、銀行を通じてすぐに現金化されない場合、送信者はその資金を他の場所で使うことができます。したがって、Erin は、Dan からの支払いを受け入れる前に、少なくとも 6 ブロックの確認 (約 1 時間) 待つ必要があります。


ビットコインの二重支出問題

ビットコインは、少なくともプロトコルが意図したとおりに使用されている場合には、二重支払い攻撃を防ぐように慎重に設計されています。つまり、誰かがトランザクションのブロック確認を待っている場合、送信者は簡単にトランザクションを取り消すことができません。ブロックチェーンを「リバース」することによってのみトランザクションを元に戻すことができますが、これには膨大な量のハッシュパワーが必要です。

ただし、二重支払い攻撃の中には、未確認の取引を受け入れるユーザーを特にターゲットにするものもあります。たとえば、少額の購入の場合、販売者はトランザクションがブロックに含まれるまで待ちたくありません。混雑したファストフード レストランでは、ネットワークが各トランザクションの処理にかかる時間だけ待つことができない場合があります。したがって、販売者が「即時」支払いを有効にしている場合、二重支払いの問題に直面する可能性があります。誰かがハンバーガーを注文して代金を支払うと、すぐに同じ資金を自分の住所に送り返すことができます。後続の取引の手数料の方が高い場合には、後続の取引が先に確認され、前の取引が無効になる場合があります。

現在、一般的な二重支払い攻撃は 3 つあります。

  • 51% 攻撃: 単一のエンティティまたは組織が、トランザクションの削除または順序の変更を目的として、ハッシュ レートの 50% 以上を管理します。このタイプの攻撃がビットコイン ネットワークで発生する可能性は非常に低いですが、他のネットワークでは発生しています。

  • レース攻撃: 同じ資金を使用して 2 つの矛盾するトランザクションが連続して公開されますが、確認されたトランザクションは 1 つだけです。攻撃者の目的は、自分に有利なトランザクションを検証することで、別の支払いを無効にすることです。たとえば、彼が管理するアドレスに資金を送金するなどです。競合攻撃には、通常、受信者が未確認のトランザクションを支払いとして受け入れることが含まれます。

  • フィニー攻撃: 攻撃者はトランザクションを事前にマイニングしてブロックに入れますが、すぐにはネットワークに公開しません。代わりに、以前にマイニングされたブロックを公開する前に、同じトークンを別のトランザクションに支払ったため、支払いが無効になりました。フェニー攻撃の必要条件は、イベントが特定の順序で発生することであり、成功は受信者が未確認のトランザクションを受け入れるかどうかにも依存します。

ご覧のとおり、販売者はブロックの確認を辛抱強く待つだけで、リスクを大幅に軽減し、二重支払いの被害に遭うことを回避できます。


要約する

ユーザーは二重支払い攻撃を使用してピアツーピア電子現金システムを改ざんし、同じ資金を複数回使用して不当な利益を追求する可能性があります。過去には、この問題をうまく解決する必要があったため、この分野の発展は停滞していました。

幸いなことに、ブラインド署名の使用は、集中金融ソリューションにおいて注目を集めるソリューションとなっています。その後、プルーフ・オブ・ワークのメカニズムとブロックチェーン技術の開発により、強力な分散型通貨であるビットコインが誕生し、何千もの暗号通貨プロジェクトにインスピレーションを与えました。