イーサリアムのソフトフォークの失敗とビットコインの設計上のセキュリティ

イーサリアムのソフトフォークの失敗とビットコインの設計上のセキュリティ

最近、イーサリアムはDAOスマートコントラクトの欠陥により緊急ソフトフォークを実施する必要がありました。しかし、ソフトフォークが完成しようとした時に、ソフトフォーク自体がさらなる欠陥を招くことが突如発覚し、計画は断念せざるを得なくなりました。この不条理な状況はなぜ発生したのでしょうか。また、これはビットコインの発展について何を明らかにしているのでしょうか。

ソフトフォークとは何ですか?
ソフトフォークとは、デジタル通貨システムのルールが変更され、以前は有効だった一部のトランザクションが無効になることを指します。

なぜイーサリアムにはソフトフォークが必要なのでしょうか?
設計上の誤りにより、ハッカーは Ethereum の The DAO スマート コントラクトから 5,000 万ドル相当の Ether を盗み、それを別のスマート コントラクト (「Child DAO」と呼ばれる) に転送しました。ソフトフォークの目的は、Child DAO に関連するすべてのトランザクションを禁止することです。ソフトフォークでは他の投資家が盗まれた資金を回収することはできませんが、盗まれた資金は永久に凍結され、少なくともハッカーが直接利益を得ることはできなくなります。

イーサリアムのソフトフォークはなぜ失敗したのでしょうか?
すでにソフトフォーク計画が進行しており、マイニングプールは次々とアップグレードされていった。しかし、完成に近づいたとき、エミン・ガン・シラーはソフトフォークの設計上の欠陥を指摘した。実装されると、攻撃者は Ethereum ネットワークを麻痺させる可能性があります。 http://hackingdistributed.com/2016/06/28/ethereum-soft-fork-dos-vector/1

イーサリアムの主なセールスポイントは、ループを含むプログラム(いわゆるチューリング完全性)など、ビットコインよりもはるかに複雑なプログラムを実装できることです。不正使用を防ぐため、ユーザーはプログラムの各ステップごとに Ether で料金を支払う必要があります。料金が使い果たされると、プログラムは停止する必要があります。ビットコインとの大きな違いは、プログラムが最終的に失敗したと判断された場合でも、マイナーは取引手数料を受け取ることができるため、誰かが無効なプログラムでマイナーのコンピューティングリソースを消費することを心配する必要がないことです。

ただし、このソフトフォークでは、指定された子 DAO に関連するすべてのトランザクションが禁止されます。したがって、攻撃者は計算コストの高いトランザクションを発行することができ、その最終ステップには子 DAO が関与することになります。これにより、マイナーは大量の計算を実行することになりますが、最終的には取引手数料を受け取ることができなくなります。攻撃者はこれらのトランザクションを大量に送信して、Ethereum ネットワークを麻痺させる可能性がありますが、これは完全に無料です。

イーサリアムの設計上の欠陥がソフトフォークの失敗につながった経緯<br/> イーサリアムの設計は、分散型コンピューターを実現するという目標を掲げ、非常に野心的なものです。そのため、そのプログラミング言語 Solidity はビットコインのスクリプトよりもはるかに複雑であり、ビットコインの地位に挑戦することを目指しています。しかし、これがDAO攻撃とソフトフォークの失敗の直接的な原因でもありました。

まず、Ethereum プログラムに対して静的プログラム分析を実行することはできません。静的プログラム分析とは、実際にプログラムを実行しなくても、プログラムを読むだけでそのプログラムが何を行うかを知ることができることを意味します。静的プログラム解析が可能であれば、上記の攻撃に直面しても、マイナーは最初にプログラムを一度読み取るだけでよく、指定された子 DAO に関連するコードを見つけた場合は、その実行をあきらめることになります。しかし、Ethereum の設計では、攻撃者がコードを使用してコードを計算できるようになっています。マイナーは禁止されたコードに遭遇するまでしかプログラムを実行できないため、多くの計算能力が浪費されます。

さらに、無効なトランザクションを伝播するノードをブロックしても、攻撃を防ぐことはできません。プログラム操作には多くのリソースが関与し、マイナーではない通常のノードは手数料を受け取らないため、通常のノードはトランザクションを伝播するときにトランザクション形式が正しいかどうかを確認するだけで、実際にトランザクションを実行することはありません。ノードをブロックすることで攻撃を阻止すると、通常のノードもすべてブロックされ、イーサリアム ネットワークが麻痺する効果も生じます。

同じ質問ですが、ビットコインはどのように設計されているのでしょうか?
非チューリング完全: まず、Bitcoin のスクリプトはチューリング完全ではなく、ループもないため、プログラムの終了が保証されます。これはサトシ・ナカモトによる意図的な設計です。 DAO の脆弱性自体は、攻撃者がプログラムのループ特性を悪用して、自分に属さない資金を繰り返し引き出すというものでした。
実際、ビットコインは2011年にBIP12 OP_EVALを通じて偶然にチューリング完全になりそうになりましたが、幸運にも最後の瞬間に発見され、放棄されました。

静的プログラム分析: Bitcoin スクリプトはコードを直接記述する必要があるため、静的プログラム分析を通じて無効な操作を直接見つけることができます。 OP_EVAL を使用すると、コードからコードを評価できます。これが非推奨のもう一つの理由です。
さらに、トランザクションに加えて、ブロックサイズや署名チェックの制限など、ビットコインブロック自体のいくつかの制限も静的プログラム分析を通じて直接見つけることができます。よく知られている 1MB の制限に加えて、現在のブロックには 20,000 を超える署名チェックがないことが必要です。この 20,000 の制限には、実行されない署名チェックも含まれるため、実際の検証を行う必要はありません。ブロックトランザクションをチェックして、20,000 の制限を超えていないかどうかを確認します。

有名な BIP109 (Bitcoin Classic ハードフォーク) は、単に 1MB から 2MB への変更ではないことは注目に値します。また、署名チェックの制限が実際の実行回数に基づいて計算されるように変更されるため、静的プログラム分析の特性が失われます。これは、2016 年 2 月に Bitcoin Core 開発者の Luke Dashjr 氏によって指摘されました: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2016-February/012362.html6 このような、オタクだけが興味を持つトピックでも、広範囲にわたる影響を及ぼす可能性があります。

フルノードがトランザクションをチェックします。ビットコインのフルノードはトランザクション手数料を受け取ることはできませんが、チェックが完了した後にのみトランザクションを伝播します。したがって、無効なトランザクションを伝播するノードは禁止されます。ただし、フルノードを稼働させることで直接的な収入は得られないため、トランザクションが多すぎるとフルノードの数が減少し、システムの監視が不十分になります。

標準トランザクションとソフトフォーク: 実際、ビットコインのトランザクション機能はイーサリアムほど優れてはいませんが、それでも優れた柔軟性を備えています。しかし、これらの無限の可能性の中で、標準トランザクションとして定義されるトランザクションはごくわずかです。マイナーとノードが Bitcoin Core のソースコードを変更しない限り、非標準のトランザクションが伝播したり、ブロックに非標準のトランザクションが含まれたりすることはありません。ただし、非標準のトランザクションがブロックに含まれている場合でも、それらは有効であると見なされます。

最近完了した相対ロック時間 (CSV) や今後導入される分離された証人など、非標準のトランザクションを再定義して新しい機能を追加するために、多くのソフトフォークが実行されました。これを行う最大の利点は、古いノードがこれらのトランザクションを非標準トランザクションと見なし、伝播を拒否することです。ソフトフォーク後でも、無効なトランザクションを伝播したために禁止されることはありません。ただし、これらのトランザクションがブロックに含まれている場合、古いノードはそれらを有効であると見なすため、ソフトフォークの下位互換性の目的が達成されます。

イーサリアム事件からの教訓<br/> イーサリアムは、その誕生以来、セキュリティの軽視について批判されてきました。非チューリング完全性、プログラムループなし、静的プログラム分析など、ビットコインが常に遵守してきた機能は、イーサリアムでは意図的に放棄されており、イーサリアムはこれをセールスポイントとしてビットコインを保守主義と後進性の象徴と見なしています。

イーサリアムの戦略は確かに成功し、DAO は総額 1 億 5,000 万ドルの投資を調達しましたが、この神話は 1 か月以内に恥辱に変わりました。著者は、イーサリアムが自らの行動の成果を得たのは今回が初めてであり、これが最後ではないことは間違いないと断言できます。すべては貪欲と無謀さによって引き起こされます。いずれにせよ、この事件の後では、イーサリアムのスマートコントラクトに1億5000万ドルを投資する人がまだいるとは信じがたい。

ビットコインにとって、これは大きな警告でもあり、あらゆるステップを慎重に踏まなければならないことを思い出させてくれます。過去数か月間の上昇により、ビットコインの時価総額は100億米ドルを超えました。開発者であれマイナーであれ、一夜にして金持ちになるために長期的な利益を犠牲にするのではなく、システムのセキュリティを保護することを最大の責任として受け止め、安全性を確保しながら新しい機能を追加して、システムの長期的かつ健全な発展を確保する必要があります。


<<:  ブロックチェーンはビットコインを超えて次のホットな話題となるでしょうか?

>>:  シティバンクの最新のビットコインレポート: ビットコインは銀行にとって脅威ではなくチャンスである (レポート全文をダウンロード)

推薦する

ファイルコインの特徴: 分散ランダム性とリーダー選出

これは、Filecoin ネットワークのユニークな機能を紹介するシリーズの最新版です。 Fileco...

ビットコインウォレット会社が新たな拡張計画を提案、専門家は安全ではないと指摘

ゴールデンファイナンスニュース -ビットコインの拡大に関する最近の議論に新たな変化がありました。 B...

冬の採掘作業中に暖かく過ごせるよう、アバロンの採掘ヒーターが販売中です

先日終了した成都新時代鉱業サミットで、アバロンは同社の主力製品を一挙に展示し、会場にいた多数の鉱夫か...

日曜日に深センでブロックチェーンテーマサロンが開催: ブロックチェーン技術、SF、そして未来

1月10日午後、起業の首都深センで、Bitmain(WeChat ID:Bitmaintech)とB...

ドージ作戦:マスクが非公式チームを使ってホワイトハウスに影響を与えた方法

マスク氏はXを運営するのと同じ方法でホワイトハウスを運営しようとしている。周知のとおり、トランプ大統...

EIP1559 によって DApps のデバッグが難しくなるのはなぜですか?

7月30日、DApp開発者やコア開発者を含むネットワーク関係者がZoomで最終調整会議に集まりまし...

バイトムとビットメインが正式に人工知能研究所を設立

本日午後、Bytomは「2018ブロックチェーン+人工知能サミットフォーラム」において、Bytom創...

【冷徹な知識】共同採掘の原則と利点

現在、ほとんどのマイニングプールは、ビットコインのマイニングに対してNMC、ELA、Vcashを配布...

BitPayがまた勝利、有名なゲームプラットフォームSteamがビットコイン決済を受け入れる可能性

Valve が Steam ゲーム プラットフォームでの支払い方法としてビットコインを使用することを...

トークンが暴落し、ほぼゼロになった - PancakeBunnyハッキングの簡単な分析

作成者: Kong@SlowMist セキュリティ チームSlowMist Zoneの情報によると、...

SEC委員長:ICO取引は価格操作に対して脆弱であり、委員会は規制計画を策定し続ける

米国証券取引委員会(SEC)は、イニシャル・コイン・オファリング(ICO)に関する見解を改めて表明し...

世界のリスク資産にとって「最も暗い瞬間」はまだ来ていないかもしれない

世界的なリスク資産は今年初めから大きな変動を経験しています。リスクセンチメントの後退により、米国株と...

ビットコイン1万ドル突破の裏側:一般人は興味がないようだ

2月9日と10日、ビットコインの価格はついに1万ドルを突破し、暗号通貨全体の上昇を牽引しました。この...

鉱業チェーンにおいて、あなたはどのリンクに属していますか?

当初は、コンピューターの CPU を使用してビットコインをマイニングすることができました。ビットコイ...