tennomさん、良いご質問をありがとうございます。
当たり前のように感じていましたが、ふと自分も不思議に思ったので、以下まとめてみました。
Bitcoinシステムは、チェーンの長い方を採用するという特徴を逆手に取り、
膨大な資金を投入して、ハッシュパワーを獲得し、
最初のブロックから密かにブロックを積み上げていき(その間はP2Pネットワークに公開しません)、
今の正当なチェーンより長くなった時点で、P2Pネットワークに公開します。
そうすれば、不当に改ざんされたこのチェーンが正当なものとなり、
私たち全員のBitcoinをある日突然、消失させることは可能でしょうか?
もしくは、そのような膨大なコストをかけたBitcoinシステム全体を破壊する試みを
ブロックするようなシステムになっているのでしょうか?
仮称Destroyerが作った、genesisブロックから作り直した、偽のブロックチェーンが、
私たち全員のBitcoinを消滅させる可能性が
あるのか? 知りたいです。
まず、genesis ブロックから作り直すというのは非現実的です。
天文学的な計算量が必要ですし、仮に実現できたとしても、「そんなのは受け入れられないので xx月xx日に戻そう」という対応も考えられるので、コストに見合わないので誰も検討していません。
計算量について補足すると、bitcoin はブロックの生成時間を10分に調整する仕組みがあり、それによってマイニングの難易度が自動的に調整されます。
したがって、最初はブロックを仮に 1秒で生成できたとしても、時間とともに計算の難易度は跳ね上がっていくはずです。たぶん全世界のコンピュータを持ってきても、最初から全部再生成して既存ネットワークを置き換えるのは、無理だと個人的には思います。
次に 51%攻撃、つまり xx月xx日の状態からひそかにブロックを積み上げ、その後xx月yy日に公開する場合を考えます。しかし、各個人の通貨は各個人の秘密鍵が無いと送信できないので、他人の資産を勝手に奪い取るということができません。
Monacoin や ETC などで発生した 51%攻撃は、取引所とのやりとりで「支払った分を無かったことにする」二重支払い攻撃がほとんどと理解しています。つまり、他人の秘密鍵が無くても盗めるものが対象になっています。
これは、秘密鍵を持っていれば対応する公開鍵(≒ bitcoin のアドレス)を簡単に確認できるものの、公開鍵から秘密鍵を推測するのが困難、という暗号的な性質に基づいています。
bitcoin 全体を破壊するアプローチとしては、残るものとしてコインの総供給を増やし、資産全体のバランスを大きく崩すという可能性があります。これは yenten や bitzeny において、コインの増殖事件として発生したことがあります。
簡単に言えば、以前に見つかった CVE-2018-17144 では、ネットワークのクラッシュを引き起こす可能性や、二重送信でコインが増殖するといったバグがありました。
こういった、不具合を利用してコインの価値を暴落させたり、ネットワーク自体を使えなくする、といった攻撃は将来的にも考えられます。
どちらかというと、bitcoin 自体のマイニング等で攻撃を行うよりも、不具合(脆弱性)を見つけたり、大規模な遅延など何らかの問題を発生させて信用を貶める、といった攻撃の方がより致命的で発生しやすいと思います。
最後に、英語論文ですが関連資料を。盗難、改竄、プロトコルへの攻撃について検討されています。
https://blog.zebpay.com/releasing-our-white-paper-on-bitcoin-security-a25f13396ca0https://drive.google.com/viewerng/viewer?url=https://www.zebpay.com/pdf/Bitcoin-Security-White-Paper.pdf以上、ご指摘などあればお気軽にお願いします。
kazuki.t さん、教えて頂きありがとうございます。
私はBitcoinの新参者ですが、その理念に惚れこみました。
ビットコインコアをDLして、Bitcoinネットワークを支える
一粒になろうとしています。
ただ、光ファイバー回線でも、ネットワークに同期するのに
何日もかかっておりまして、まだ稼働しておりません。
理解できていないので、また質問になってしまいますが、
>天文学的な計算量が必要ですし、仮に実現できたとしても、「そんなのは受け入れられないので xx月xx日に戻そう」という対応も考えられるので、コストに見合わないので誰も検討していません。
「そんなのは受け入れられないので xx月xx日に戻そう」というのは、具体的に
どういったことでしょうか?
例えば、私がビットコインコアで、ノードになったとします。
ある日突然、Block Withholdig Attack で巻き戻されてしまった仮定します。
その情報は全世界のノードに送られ、ビットコインコアのプログラムが長いブロックチェーンを正当なものと判断して、それぞれのノードの台帳を書き換えていきます。
「そんなのは受け入れられないので xx月xx日に戻そう」というのは、ノードを所有している人間(私のような)が、プログラムの判断を止めて、各々で判断するということなのでしょうか?それとも、たとえ、書き換わってしまった後でも、コア開発者達が、そのような判断をして、ビットコインコアの修正プログラム(そんなのは受け入れられないので xx月xx日に戻そうというプログラム)を全世界のノードに配布、各々がDL後、悪意の巻き戻しを上書きして、xx月xx日に戻して再出発。ということでしょうか?
まだ、ビットコインコアすらも、稼働させてないので、初心者すぎる質問で申し訳ありませんが、ご教授お願い致します。