思考は現実化するスマートフォン用の表示で見る思考は現実化する自分の潜在意識を書き換えるために、自分が学んだ事を整理しまとめています。2018年5月15日に国産の仮想通貨「モナコイン」がハッキングにあったのをご存知でしょうか?「また仮想通貨が流出したの?今度はどこの取引所?いったいいくら流出したの?」そんなふうに思われる方もしれません。それくらい大きな被害を出している印象のある仮想通貨のハッキング事件ですが、今回の被害金額はおよそ1,000万円といわれています。え?たったの1,000万円?いえ、そりゃ1,000万円でも大金ですよ。それでもコインチェックのNEM流出のときの約580億円のインパクトに比べたらたいした金額ではないような気がしてしまいます。今回のハッキングはこれまでとは異なる大きな問題が取りざたされているのです。なんと、仮想通貨の根幹技術である「ブロックチェーン(分散型台帳)」が改ざんされてしまったのです。今回は、モナコインのブロックチェーンがどのように改ざんされたのか、ブロックチェーンの仕組みを図を織り交ぜておさらいしながら考えてみます。mining」まとめブロックチェーンの仕組みまずはブロックチェーンの仕組みについておさらいしてみます。ブロックチェーンとはインターネットを通じてつながった複数のコンピュータ(ノード)が同じデータを共有し、一定量の取引データを「ブロック」として数珠つなぎに追記していく仕組みのことです。ブロックチェーンは多くのノードがお互いのデータが正しいものかを常に監視し合う仕組みで管理し、情報を追記していく仕組みのため、悪意のあるユーザーがデータを改ざんしようとしても、他の多くのデータと整合性がとれないため、これまでハッキングは理論上ほぼ不可能とされていました。ブロックチェーンは次のような仕組みでデータの信頼性を担保しています。ブロックチェーンがデータの信頼性を担保する仕組み「ブロック」に含まれた取引のみを「正しい取引」と認めるネットワーク全体で唯一の「ブロックチェーン」を共有するする分岐した際は一番長い「ブロックチェーン」を正しいものとするこれを実現するブロックチェーンの技術を1つずつ確認してみましょう。ブロックチェーンのデータ構造とブロックの生成方法ブロックチェーンのデータ構造は、データの格納された「ブロック」が時系列に連なって追記されていく仕組みとなっています。「ナンス(Nonce)」と呼ばれる特別な値が格納されています。ハッシュとは1つ前のブロックのデータを要約した短いデータのことです。前のブロックのデータが1ビットでも改ざんされてしまうと、そのデータのハッシュ値が異なってしまい、チェーンをつなぐことができなくなってしまいます。ブロックチェーンでは取引の検証作業を行なった人が新しい「ブロック」を生成します。この検証作業はナンス(Nonce)という値を計算し見つけ出すことで行います。ナンスとは、ブロックのデータをハッシュ関数に通したときに先頭に0がたくさん並ぶような非常に小さいハッシュ値が生成されるように調整するための値のことです。この値がターゲット値以下になるようにナンスを計算することができると新しいブロックが生成されます。(このナンスを計算する作業がマイニングです。)ナンスを見つけ出すには大量の計算資源(膨大なCPUリソースと多くの電力)が必要になります。ナンスを見つけ出した人は「ブロッチェーン」に新しい「ブロック」を生成します。この際、仮想通貨であれば、一定額の定められたコインをマイニング報酬としてもらうことができるのです。ブロックチェーンのデータの管理方法ブロックチェーンのデータは、インターネットを通じてつながった複数の参加者のコンピュータ(ノード)が管理します。データの格納された「ブロック」は検証作業を行ったノードが生成し追加していきます。この際、複数の人が「ブロック」を追加すると「ブロックチェーン」が分岐してしまうことがあります。その場合は分岐点から先が一番長い「ブロックチェーン」が正しい「ブロックチェーン」として認められ、他の分岐したチェーンは廃棄されます。仮想通貨のマイニング報酬は正しい「ブロックチェーン」の生成でしか付与されないためマイナーは短いチェーンを伸ばそうとはしません。マイナーブロックチェーンの維持管理作業への参加者。採掘(マイニング)を行う人のこと。攻撃者が改ざんしたデータを含む「ブロックチェーン」を作ろうとした場合、他の大勢のノードを上回る速度で不正なブロックチェーンを伸ばし続ける必要があります。攻撃者とブロックチェーンの伸ばし合い競争をした場合、善意のノードの持つ計算資源が、攻撃者のそれより少しでも多いかぎり、攻撃者がブロックチェーンを乗っ取れる可能性はきわめて低いとされています。一度、ブロックチェーンがデータの信頼性を担保する仕組みをおさらいしてみます。ブロックチェーンが取引の信頼性を担保する仕組み「ブロック」に含まれた取引のみを「正しい取引」と認めるネットワーク全体で唯一の「ブロックチェーン」を共有するする分岐した際は一番長い「ブロックチェーン」を正しいものとする今回のハッキングは、この中の「分岐した際は一番長い「ブロックチェーン」を正しいものとする」という仕様のスキをついたものでした。attack」とは「ブロックチェーンが分岐した際にチェーンが長い方を正しいものとする」という仕様をついた攻撃手法のことです。通常、マイナーは生成した「ブロック」をすぐにネットワークにブロードキャスト(データ送信)します。attack」という攻撃では、攻撃者は強力なマシンを用いて生成した「ブロック」すぐにネットワークにブロードキャストせずに、ローカルに未公開のまま長いブロックチェーンとして貯めこみます。正しいブロックチェーンより長いブロックチェーンを貯め込んだ状態で、今回、攻撃者は取引所でモナコインの換金を行います。その後タイミングを図って貯め込んだブロックチェーンを公開することで、それまで正しいとされていたブロックチェーンを無効化してしまったのです。これにより、取引所で換金がおこなわれたという正しい取引記録の格納された「ブロック」が無効化されてしまい、取引所からは受け取ったはずのコインが消えてしまいます。これは、犯人が貯め込んでいたブロックチェーンでは、取引所で換金したはずのコインが別のアドレスに送ったという情報に書き換えられていたため、正しいチェーンが無効化され入れ替わった瞬間に、コインを取引所に送ったという事実がなかったことにされてしまったためです。いわゆる二重支払いが発生してしまったことで、犯人はコインを失うことなくお金をだまし取ることに成功したのです。Spend/ダブルスペンド)すでに使用したコインを再び使用すること。このようにブロックチェーンを改ざんし、仮想通貨取引で二重支払いを行うためには、採掘速度の51%を支配する必要があります。それはブロックチェーンを管理するネットワーク上のノードの過半数を超える膨大な計算パワーが必要ということでもあります。いう意味では、参加するマイナーの少ない小規模通貨のほうが、よりハッキングのリスクが高いといえます。ところが、実はブロックチェーンには、計算パワーが50%より少なくても、一部の悪意あるノードがブロックチェーンの生成をコントロールできる方法があるのです。mining」ブロックチェーンでは、マイニングノードがブロックを生成する確率は、そのノードが持つ計算パワーに比例するとされていました。計算パワーが大きなノードほど、他のノードに比べより早くナンスを見つけられる可能性が高く、先にブロックを生成できる確率が高くなる、というのは当然のような気がします。mining」という方法を行うと、ノードが持つ計算パワーより大きな確率で「ブロック」の生成に成功することができてしまうことがわかってきました。mining」では、攻撃者は強力なマシンを用いて生成した「ブロック」すぐにネットワークにブロードキャストせずに隠し持ちます。他のマイニングノードが古いブロックをマイニングする間に、自分は隠し持ったブロックを次のブロックのマイニングを行います。隠し持ったブロックの1つ先のブロックを生成できた段階で隠し持っていたブロックを1つ公開します。すると他のマイニングノードは、攻撃者が公開したブロックの次のブロックをマイニングしようとします。この時点で攻撃者はさらに1つ先のブロックのマイニングをはじめているのです。mining」を続けることで、攻撃者は自分の持つブロックチェーンを長くし続けることができるのです。mining」を行うと、マイニングノードの計算パワーが41%あれば50%以上の確率でブロックを生成できる=ブロックチェーンを支配することができてしまうのです。まとめこれまでもいく度か世間を騒がせてきた仮想通貨のハッキング。今までの攻撃は取引所のスキをついた手口ばかりでしたが、今回は仮想通貨の根幹技術である「ブロックチェーン」の仕様のスキをついた攻撃でした。いう意味では被害金額こそ少ないですが、金額以上に大きなインパクトのある事件だったといえます。モナコインと同じような仕組みで、かつ、参加するマイナーの数が少ない小規模通貨は同じように狙われてしまう可能性があるかもしれません。今回の事件が、仮想通貨の、ひいてはブロックチェーンの信頼を揺るがすような事態に発展しないことを祈るばかりです。ブロックチェーンがどのように改ざんされたのかについての考察は以上です。はてなブログPro自分の潜在意識を書き換えるために、自分が学んだ事を整理しまとめています。(29)月別アーカイブ検索リンクはてなブログはてなブログ開発ブログABOUT自分の潜在意識を書き換えるために、自分が学んだ事を整理しまとめています。思考は現実化するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。