Re: 「時間」制限付きトランザクションを可能にするために OP_BLOCKNUMBER が必要

人物: ByteCoin
サトシ・ナカモトの投稿(2010年11月15日 18:37 UTC)

OP_BLOCKNUMBER を安全に実装することはできない。セグメンテーション後のブロックチェーン再編成の場合、トランザクションは後のブロックに入れるようにする必要がある。OP_BLOCKNUMBER トランザクションとそのすべての依存トランザクションが無効になる。時間制限付きトランザクションに関与していなかった後のコイン所有者にとって不公平だ。

OP_BLOCKNUMBER は既存のシステムと比べて新たな脆弱性を導入しない。なぜなら現時点でも分断を悪用して人を騙すことは可能だからだ。これは次のように実現できる:

機会主義的な攻撃者は世界中の複数の場所でクライアントを動かしている。攻撃者のクライアントは同じウォレットを持ち、それぞれ異なるピアの部分集合に接続する。おそらくローカルのピアを優先し、確実にローカルのマイニングピアと連絡を保つ。クライアントは一定間隔で互いに通信し、ネットワークが分断されていないかを確認し、自分が話しているピアのリストを交換する。 攻撃者のクライアントの一つ以上との通信が失われた場合(オフラインになる)、残りのクライアントはオフラインクライアントのすべてのピアと通信を試みる。すべて成功すれば、その攻撃者のクライアントは単にクラッシュしたかインターネット接続を失っただけの可能性が高い。しかし、そのクライアントがオフラインになり、いくつかのピアにも連絡が取れなければ、ネットワークが分断された可能性がある。攻撃者のクライアントは、自分がマイニングパワーの多数派側にあるのか少数派側にあるのかを判定する。さらに、ネットワークの別のアクセス不能な部分が、孤立していると想定される時間中にブロックを生成するだけのマイニングパワーを持っているかも推測する。条件が好都合であれば、攻撃は次のように進む: ネットワークの多数派側にある攻撃者のクライアントは、もっともらしく無害に見えるトランザクションでウォレットから新しいアドレスにコインを送る。少数派側にある攻撃者のクライアントは、同じウォレットの同じコインを使って、サブネットワーク上で見つけられる任意の商品を買う。ネットワークが再び結合したとき、多数派側がより多くのブロックを生成している可能性が高く、少数派側のチェーンのブロック内のすべてのトランザクションはトランザクションプールに戻る。短いチェーン上の攻撃者のトランザクションは、コインが既に長いチェーン上で使われているため破棄される。詐欺完了!

このように、OP_BLOCKNUMBER は新たなリスクを導入せず、分断ベースの詐欺の本当の防止はマイニングパワー喪失の何らかの検出に頼るしかないことが分かる。

ByteCoin