Post
Topic
Board 日本語 (Japanese)
Re: Bitcoin全体を破壊する技術は可能でしょうか?
by
tennom
on 17/03/2019, 17:05:49 UTC
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-a25f13396ca0
https://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日に戻して再出発。ということでしょうか?

まだ、ビットコインコアすらも、稼働させてないので、初心者すぎる質問で申し訳ありませんが、ご教授お願い致します。
そうなりますね。
Monacoinへのアタックでも起きた事ですが、基本的にはコミュニティによるコンセンサスが得られる事でチェーンの巻き戻しが実現します。

時にはコミュニティのコンセンサスが得られずに、攻撃を受けたチェーンを修正せずに続けると言う場合もあります。
例えばハードフォークしたEthereumとEthereum Classicです。
今のEthereumは不正送金(通称The DAO事件)が起き、それを不正送金される前にチェーン戻す事で解決したものです。
しかしその対応を中央集権的だとしてよく思わなかった一部の人達が、チェーンを戻さずに続けていこうと生まれたのがClassicです。

あとフルノードの同期ですが、bootstrap.datというファイルを取り込めば早く同期できますよ。
『Bitcoin bootstrap』とかで調べれば情報が出てくると思います。


自分はBitcoinのセキュリティには特段詳しい訳ではないので、ざっくりとした回答になってしまいすみません。
日本でのBitcoinは投機的な見方をされる方が大多数ですので、tennomさんのように技術的な側面で見て下さる方がいると嬉しいです。 Wink


Anon11073さん、ありがとうございます。
はい、私は多くの人と違った、投機的な見方ではなくて、今までなかった理念、技術に対して
尊敬しておるところです。Bitcoinをはじめ、多くの暗号通貨に関わる方の知能に驚いております。

あと、フルノードの同期ですが、bootstrap.datというファイルのことを調べたのですが、
ちょっと私のレベルで理解が足りないので、地道にDLしてみようと思っています。

今後とも、宜しくお願い致します。