2018.06.27 (Wed) column

仮想通貨ネットワークの攻撃コストとリスクの比較と考察

Written by 真田雅幸

昨年からの仮想通貨市場の盛り上がりにより、多くの仮想通貨の価格が高騰しました。価格の高騰により、仮想通貨を狙ったハッキング事件が今年に入り多発しています。取引所のシステムがハッキングされ仮想通貨が盗まれるといったニュースは以前からありましたが、最近では仮想通貨のネットワークを直接攻撃する事件も発生しています。

ビットコインゴールド、バージ、モナーコインといった仮想通貨のネットワークが次々と攻撃され、関係者は被害を受けました。モナーコインは日本発というこもあり、改ざん不可能なブロックチェーンが攻撃されたとして話題になりました。

モナーコインのネットワークへハッカーが仕掛けた攻撃は、一般に51%アタックと呼ばれる手法で、Block Withholding Attack(ブロック隠し持ち攻撃)としても知られています。銀行とは異なり、仮想通貨では管理者が存在しない非中央集権のネットワークを利用して取引が行われます。管理者がいない誰でも参加できるネットワークだからこそ、あらゆる攻撃に耐えられるセキュリティが求められます。

仮想通貨にはユーザビリティとセキュリティの両方が必要不可欠ですが、ユーザビリティに関する情報が圧倒的に多く、セキュリティに関して語られることは比較的少なかったのではないでしょうか。

価格が高騰する以前は仮想通貨を攻撃するメリットもハッカーには存在しませんでした。しかし、今ではハッカーが攻撃するインセンティブがあります。今回は51%アタックにかかるコストから、ハッカーがどの程度のリスクを負って攻撃を仕掛けているのかを分析してみたいと思います。

51%アタックとは

ほとんどの仮想通貨はPoW(プルーフ・オブ・ワーク)と呼ばれるマイニングアルゴリズムを採用しています。PoWは計算を行ったことを証明することでブロックを採掘できるアルゴリズムで、その計算量はハッシュレートで表されます。マイナーはPoWを行い、ユーザーの取引をブロックに取り込みネットワークへ送信します。計算の証明が正しければ、そのブロックは新たにブロックチェーンに追加されます。

51%アタックは、膨大なハッシュレートを投入してネットワークの参加者を混乱させようとする攻撃です。通常、二重支払(double-spending)に悪用されます。

二重支払いは仮想通貨取引所のような、大量の仮想通貨を保管している業者に対して行われます。ハッカーは51%攻撃の準備が整った後、取引所が送金の受取を確定させたことを確認してから、ブロックチェーンを巻き戻し送金を取り消します。キャンセルされたコインはハッカーの手元に戻り、再び送金に利用できるようになります。

ブロックチェーンは最も長いチェーンが正当なチェーンであると見なすようにルールが決められています。送金が取り込まれたブロックより前の時点からブロックを採掘し、隠し持っておき後から公開することで、その送金をキャンセルすることが可能です。

取引がマイナーによってブロックに取り込まれ、そのブロックがブロックチェーンに追加された時点で「取引が承認された」とネットワークは認識します。取引の承認後に複数のブロックが追加されると承認数が増え、取引所はその取引が安全であると判断し、システムに反映します。

通常PoWを採用している仮想通貨に関して言えば、取引がブロックチェーンに取り込まれてから5つブロックが追加される(6承認)と、安全と言われています。しかし仮想通貨のハッシュレートの高さやブロックの生成間隔によって安全性は異なります。

ビットコインのようにハッシュレートの高い仮想通貨であれば、1ブロック巻き戻すだけでも多大なコストがかかります。しかし、ハッシュレートが低い仮想通貨であれば、6ブロック戻すことも低コストで済みます。

モナーコインのハッキング

モナーコインのネットワークへの攻撃は5月13日から15日にかけて行われ、Livecoinという取引所が狙われました。攻撃を仕掛けたハッカーは、最低でもモナーコインのハッシュレート全体の57%を保有していたと言われ、24ブロックもブロックチェーンが巻き戻りました。

この攻撃によって、約1000万円程度の被害が発生したと報告されています。モナーコインへの攻撃が成功してしまった理由として大きく挙げられるのが、ハッシュレートの低さとブロック生成間隔の短さです。

モナーコインのハッシュレートは平均で2TH/sで、ブロック生成間隔は90秒です。ビットコインのハッシュレートは36EH/sで、ブロック生成間隔は10分です。

総ハッシュレートが低い仮想通貨の場合、ハッカーは低コストで51%のハッシュレートを保有できるようになります。ブロックの生成間隔が短いと、ひとつのブロックを採掘する時間も短縮され、マイニング作業を行うコストはさらに下がります。ハッカーは、攻撃に係るコストと成功時に得られる報酬を天秤にかけ、実行するか否かを判断します。今回のモナーコインの件でも、ハッカーが利益を得られる見込みがあったものと思われます。

51%アタックの成功確率と仕掛けるコスト比較

マイニングを仕掛けるコストを、Nicehashのハッシュレートの販売価格を参照して計算してみましょう。Nicehashはマイニングアルゴリズムごとにハッシュレートを販売しているサービスです。

ビットコインのネットワークに対して51%アタックを仕掛けようとすると、合計36.4EH/sの51%であるハッシュレート18.5EH/sが必要になります。18.5EH/sをNicehashから購入すると、60分あたり7500万円かかります(Nicehashが在庫を保持していると仮定)。

取引所がビットコインをシステムに反映させるための必要承認回数が6だと仮定して、51%アタックを成功させるためには最低7ブロック巻き戻す必要があります。ビットコインのブロック生成間隔は10分であるため、7ブロック分のPoWを行う時間は70分間となります。70分間分のハッシュレートを購入すると、8750万円のコストとなります。

マイニング難易度は一定であると仮定して、7ブロックを巻き戻すための51%アタックの成功確率を計算してみましょう。ハッシュレートは全体の51%であるため、ハッカーは1ブロックあたりにつき約4%早くチェーンを構築することができます(49%/51%)。ビットコインのブロック生成時間は10分間ですから、1ブロックにつき24秒早くハッカーはブロックを生成します。(600秒×4%)

7ブロックを採掘しようとした際ハッカーは理論上、144秒多くPoW作業を行えることになります(24秒×7ブロック=144秒)。144秒間の間にハッカーがブロックを採掘できる確率は、24%となります(144秒/600秒)。144秒間の間にハッカーがブロックを生成できれば、1ブロック長いチェーンを構築し攻撃成功となります。おおよそ4回に1回成功するかしないかといった確率です。

モナーコインの場合は合計ハッシュレートが2TH/sであるため、51%分のハッシュレートは1.02TH/sとなります。1.02TH/sのハッシュレートをNicehashから購入すると60分あたり30万円となります。

ビットコインと同様、取引所の必要承認回数が6回だと仮定して巻き戻すブロックを7回に設定します。モナーコインのブロック生成間隔は90秒であるため、7ブロック分のPoWを行う時間は10.5分間となりコストは5.25万円となります。

攻撃の成功確率は共に24%ではあるものの、攻撃に係るコストはモナーコインの方が格段に安価であることがわかります。

実際のモナーコインの場合は、ブロック毎にマイニング難易度が変化するため24%はおおよその数字です。また、ハッカーが51%以上のハッシュレートを保持していたり、PoWを行う時間を伸ばせば、長いチェーンを構築する確率は上がり、攻撃の成功確率も上昇していきます。

仮想通貨ごとの51%アタックに係るコスト

下記の表は仮想通貨ごとの51%アタックに係るコストです。必要承認回数は主に海外取引所Krakenを参照しています。国内取引所ビットバンクでは、モナーコインの51%アタック発覚後、必要承認回数を6回から100回に引き上げ51%アタック対策を行っています。

まとめ

51%アタックによる攻撃により直接被害を受ける可能性があるのは、主に取引所や決済代行業者などの仮想通貨のネットワークを利用してサービスを提供する業者です。

ユーザーにとっては送金が一時的にキャンセルされたとしても、その後のブロックに取り込まれるためいずれ着金します。また51%アタックにより保有する仮想通貨が盗まれるといったこともありません。

51%アタックに関してはビットコインのホワイトペーパーでも言及されており、「悪意」をもったマイナーによって引き起こされる可能性があると表現されています。この悪意と表現される理由は、51%アタック自体は仮想通貨のネットワーク上では不正とはみなされないからです。

管理者が存在しない非中央集権のネットワーク上で行われるデータ通信は、コンセンサスによって正しく行われたかどうかを判断します。コンセンサスに則っていない場合ブロックはネットワークに拒否され、コンセンサスに則っていればブロックはブロックチェーンに追加されます。

51%アタックを仕掛けるマイナーは、コンセンサスに則ってマイニングを行っています。他のネットワーク参加者を混乱させようとする悪意をもっているものの、不正を行っているわけではありません。

攻撃を防ぐ方法は、マイニングコストを引き上げ攻撃を仕掛けるインセンティブを最小限に抑えることです。コンセンサスアルゴリズムにPoWを採用する仮想通貨の場合、ハッシュレートが高く保たれ、ブロックの生成間隔が適度な長さであれば、マイニングコストが上がり攻撃するインセンティブを抑えることができます。

また、取引所や決済代行業者は、必要認証回数を引き上げることで自己防衛することができます。しかし、必要承認回数を引き上げると、取引がブロックに取り込まれてから業者のシステムに反映されるまでの時間も長くなるため、ユーザビリティは低下します。そのためセキュリティとユーザビリティのトレードオフのバランスをうまく取る必要があります。

仮想通貨の世界ではこのバランスがとても重要です。ブロックの生成間隔が短ければ送金スピードは上がりますが、51%アタックに係るコストも下がります。また送金手数料が安すぎるとネットワークへ無意味なトランザクションを引き起こすDDoS攻撃を行うことも容易になります。

ハッシュレートが高い仮想通貨がもっとも安全ではありますが、すべての仮想通貨がビットコインのように高いハッシュレートを保持しているわけではありません。マイナーを引きつけるインセンティブ構造や、低ハッシュレートでもセキュリティを高めるネットワークデザインがアルトコインには求められます。

仮想通貨のネットワークは何かを得れば何かを失うゼロサムゲームであり、ユーザービリティーとセキュリティの両方のバランスをうまく保つことができる仮想通貨が良質な通貨だと言えるのではないでしょうか。


PoW 51% Attack Cost


無料メールマガジン

BTCNの最新ニュースを毎日お昼ごろお届けします!