ブロックチェーンのセキュリティ問題にはどのような種類がありますか?

アルファ公社
2020-12-23 23:36:56
コレクション
安全の観点から見ると、ブロックチェーン技術は五つの層に分けられ、それに対応するセキュリティ問題は六つのカテゴリに分類されます。

この記事は2018年8月21日にアルファ社によって発表されました。

一、導入

2018年8月6日、テンセントセキュリティは「2018年上半期ブロックチェーンセキュリティレポート」を発表しました。このレポートによると、現在世界中で1600種類以上の暗号デジタル通貨が登場しており、2018年上半期にはブロックチェーン分野でのセキュリティ問題による損失が27億ドルを超え、ブロックチェーンセキュリティ事件による損失額は増加し続けています。IOTAの「メール門事件」、USDTの「偽充電脆弱性」、EOSの「レインボー攻撃」、BECとSMTの「整数オーバーフロー攻撃脆弱性」、BTGの「51%攻撃」など、一連の事件は多くの人々の関心と考察を引き起こしました。

ブロックチェーンセキュリティの脅威には主にどのようなものがあるのでしょうか?なぜスマートコントラクトのセキュリティ問題がこれほど重要で、多くの人々の関心を引くのでしょうか?スマートコントラクトのセキュリティタイプはどのくらいあるのでしょうか?現在の主流のセキュリティ監視方法は何でしょうか?最も効果的な方法は何でしょうか?皆さんはどのようにして安全で脆弱性のないスマートコントラクトコードを得ることができるのでしょうか?これらの一連の問題に対して、安比研究所(SECBIT)の創設者である郭宇氏にインタビューを行い、ブロックチェーン業界のセキュリティ問題と主流の解決策について体系的に紹介します。

二、ブロックチェーンセキュリティの六大タイプ

セキュリティの観点から見ると、ブロックチェーン技術は五つの層に分けられ、それに対応するセキュリティ問題は六つの大類に分類されます。

一文で理解するブロックチェーンセキュリティ 6 大分類 3 大問題ブロックチェーン 2.0 バージョン技術アーキテクチャ

第一層、暗号学。暗号学はブロックチェーンの最も基礎的な支援技術であり、ハッシュアルゴリズム、デジタル署名、乱数などを含みます。これらの暗号技術に問題や脆弱性が存在する場合、それに基づくブロックチェーン全体の信頼が崩壊します。

現在、暗号技術はかなり成熟していますが、大きな脆弱性が存在する可能性は低いものの、いくつかのプロジェクトには問題があることを否定できません。2017年7月15日、「IoT世界第一の通貨」と称されるIOTAは、マサチューセッツ工科大学附属の学術研究グループDCIからのメールを受け取り、IOTAのハッシュアルゴリズムCurl-Pに弱点があることを警告されました。DCIはこのシステムに対して成功裏に攻撃を行い、ユーザーの資金を盗むことができるとされました。IOTAはその後、DCIのメールに対して疑問を呈し反論しましたが、現在までこの脆弱性により資金が盗まれたユーザーはいません。しかし、この事件はIOTAや他のプロジェクトにおける暗号技術のセキュリティに対する関心を引き起こしました。

第二層、ユーザーの秘密鍵の生成、使用、保護。ユーザーがブロックチェーンに参加するための証明は一対の公開鍵と秘密鍵です。各人がブロックチェーン上で相互作用を行うための前提は、安全な秘密鍵を持ち、それを適切に保管できることです。したがって、秘密鍵の生成、使用、保護の問題は非常に重要です。

今年7月、EOSは秘密鍵生成ツールにセキュリティ上の欠陥があり、生成された秘密鍵がハッカーに発見され、「レインボー」攻撃が実施され、アカウントのデジタル資産が盗まれ、数千万ドルの損失を引き起こしました。

第三層、ノードシステムのセキュリティ脆弱性。この問題は伝統的なセキュリティの範疇に属します。例えば、ブロックチェーンノードにはバッファオーバーフローなどの伝統的なセキュリティ脆弱性が存在してはいけません。また、ブロックチェーンノードの実装は、ブロックチェーンのコンセンサスプロトコルを忠実に正しく実現する必要があります。ノードは公開すべきでないAPIインターフェースを露出してはいけません。これにより、ハッカーがノードの重要な情報を無障害で取得できるようになります。イーサリアムやEOSも、比較的深刻なセキュリティ脆弱性が報告されたことがあります。この部分のセキュリティも非常に重要です。

第四層、基盤となるコンセンサスプロトコル。現在市場で主流のブロックチェーンコンセンサスプロトコルには、POW、POS、DPOS、PBFTなどがあります。基盤となるコンセンサスプロトコルは、ブロックチェーン全体のアーキテクチャが信頼できるかどうか、真にコンセンサスのあるブロックチェーンを形成できるかどうかを決定します。現在、実際に安全であると証明されているコンセンサスプロトコルは多くありません。なぜなら、コンセンサスプロトコル自体は理論的にも技術的にも簡単ではないからです。そして、長期間の検証を経たコンセンサスプロトコルは比較的安全です。例えば、ビットコインのPOWのように。コンセンサスプロトコルには、実現不可能な三角関係があります:安全性、非中央集権、効率。この三者は同時に二つしか実現できません。効率を追求する場合、非中央集権を犠牲にするか、安全性を犠牲にする必要があります。

ブロックチェーンシステムのコンセンサスプロトコルが安全かどうかは非常に重要な問題です。

理論的には、基盤となるコンセンサスプロトコルに基づいて作成されたすべてのデジタル通貨には51%攻撃のリスクが存在します。今年上半期には、少なくとも4種類のデジタル通貨がそれぞれ51%攻撃を受け、Monacoin、Bitcoin Gold、Verge、Electroneumが含まれ、ユーザーに数千万ドルの損失をもたらしました。

第五層、スマートコントラクト。スマートコントラクトは、デジタル形式で定義された約束(promises)のセットであり、契約参加者がその上でこれらの約束を実行できるプロトコルを含みます。どの参加者もアプリケーション層で契約を作成でき、いわゆるDAPP(分散型アプリケーション)となります。これは現在、最も多くのセキュリティ問題が発生している場所でもあります。

スマートコントラクトのセキュリティリスクには三つの側面が含まれます。第一に、脆弱性があるかどうか。契約コードに一般的なセキュリティ脆弱性が存在するかどうか。第二に、信頼性。脆弱性のないスマートコントラクトが必ずしも安全であるとは限らず、契約は公平で信頼できるものである必要があります。第三に、一定の規範とプロセスに従うこと。契約の作成はデジタル形式で約束を定義する必要があるため、契約の作成プロセスが不十分であれば、大きなリスクを残すことになります。

現在市場には多くのスマートコントラクトがセキュリティ脆弱性の問題を抱えています。例えば、6月3日、安比研究所(SECBIT)はEthereum上に81の契約が同じエラーを持っていることを発見しました。ERC20トークン契約のtransferFrom関数には重大なリスクがあり、一度デプロイされると問題が発生すると取り返しのつかない損失を引き起こします。6月6日、安比研究所(SECBIT)はERC20トークン契約FXEがビジネスロジックの実装に脆弱性があり、誰でも他人のアカウントからTokenを自由に引き出すことができ、Tokenはいつでも完全にゼロになるリスクにさらされていることを発見しました。

ブロックチェーン業界の従事者、スマートコントラクトの利用者、または暗号通貨の保有者は、相応の暗号学とスマートコントラクトプログラミングの知識を学ぶべきであり、資金の安全に関わる契約や公開鍵・秘密鍵などのコードを安易にコピーして使用してはいけません。もし悪意のある攻撃者が重大な脆弱性を持つコードをネット上に公開し、技術開発能力が不足している組織を誘導して使用させると、使用者に壊滅的な打撃と取り返しのつかない損失をもたらすことになります。

第六層、インセンティブメカニズムの設計。スマートコントラクトが協力を達成するためには、通常、相応の経済的インセンティブメカニズムを設計する必要があります。経済的インセンティブはブロックチェーン技術の中で非常に革新的な概念です。真に健康で活力のあるブロックチェーンエコシステムには、良好なインセンティブメカニズムが必要です。しかし、経済的インセンティブが十分に安全に設計されていない場合、エコシステムの構築が困難になる可能性があります。例えば、典型的なポンジスキームのようなものです。この点には注意が必要です。

三、スマートコントラクトの三大問題

前述の六層のブロックチェーンセキュリティ問題は、相応の技術レベルに基づいて分類されており、下層の技術ほど安定しています。例えば、暗号学は一度選定されると、簡単には変更されません。

スマートコントラクトは比較的柔軟で、誰でも作成できるため、相対的にセキュリティ問題が発生しやすいです。

どのユーザーもコンセンサスに基づく契約を作成できるのは、まるで一般市民が法律に基づいて契約書を書くようなものです。この法律は一種のコンセンサスメカニズム(プラットフォーム)であり、この契約にも内在する拘束条項があります。DAPPを使用することは契約を締結することに似ており、すべての行動はこの契約条項に従って実行される必要があります。したがって、スマートコントラクトのセキュリティリスクは、ユーザーの財産損失に直接関係しています。

現在までに、安比研究所(SECBIT)は市場におけるスマートコントラクトの三大問題を発見しました。

第一に、整数オーバーフローを代表とするセキュリティ脆弱性。セキュリティ脆弱性は通常、コードを書く人が不注意で導入するものであり、契約の特定の機能部品が無効になる可能性があります。最も深刻な場合、ハッカーの攻撃、ユーザーの資金喪失、さらにはハッカーが無から多くの通貨を作り出すこともあります。例えば、BEC、SMT、EDUは、整数オーバーフローのセキュリティ脆弱性により、ハッカーの攻撃を受け、通貨の価値がゼロになりました。

第二に、スマートコントラクトの権限管理。一般的に、スマートコントラクトには管理者が設定され、管理者は通常、特権を持っています。この種の契約はセキュリティリスクが大きく、管理者の秘密鍵が盗まれると、巨大な損失を引き起こす可能性があります。安比研究所(SECBIT)の不完全な統計によると、上位570のToken契約の中で342の契約には、管理者のみが呼び出せる機能(Only Owner)が存在し、多くの契約には管理者が自由に通貨を発行、焼却、アカウントを凍結、送金を停止するなどの過剰な権限が存在します。

今年7月10日、暗号通貨取引所Bancorは攻撃を受け、当時の折算法通貨の金額で1250万ドル相当のイーサリアム、1000万ドル相当のBancorトークン、100万ドル相当のPundixトークンを失ったと報告しました。私たちの分析によると、このBancorプラットフォームの盗難事件はBancorConverter契約に関連しており、攻撃者(ハッカー/内部者)が管理者アカウントの秘密鍵を取得し、管理者の身分を利用してユーザーのTokenを盗み出し、ユーザーに巨大な損失をもたらしました。

第三に、規範性の問題。現在、多くのスマートコントラクトの実装には統一された規範がありません。スマートコントラクトは相互作用の形で複数人が協力するものであり、契約が不規範であると、異なる人々が契約の行動について誤解を生じ、大量のセキュリティ問題が発生する可能性があります。

例えば、今年次々と報告された「偽充電」事件には、イーサリアムトークン、USDTなどが含まれます。ある機関による不完全な統計によると、市場に存在する単一トークン契約の3619件が「偽充電」脆弱性のリスクを抱えており、その中には有名なトークンも含まれています。

通常、充電プロセス中に送金が成功しない場合、アカウントは充電できず、アカウント残高は0のままです。しかし、契約に「偽充電」脆弱性が存在する場合、送金が成功しないときにシステムは充電失敗(値)を表示しません。取引所は結果を充電成功と誤判定します。もしハッカーがこの脆弱性を発見すれば、ずっと「偽」充電を行い、その後このお金を引き出すことで、取引所に直接的な損失をもたらすことになります。

四、形式的検証の重要性

現在、市場におけるスマートコントラクトのセキュリティ問題に対する検証方法は主に三つあります。第一はテスト、第二は監査、第三は形式的検証です。テストはプログラムが自動で実行され、さまざまな可能性のある入力を通じて整数オーバーフロー脆弱性などの問題が存在するかどうかを検出します。しかし、このテストは通常100%カバーすることは不可能で、必ず漏れが存在します。監査は専門家の専門知識に基づいて行われますが、どんなに専門的な専門家でも見落としがある可能性があります。前二者の伝統的な方法では、契約に脆弱性がないことを保証することはできませんが、形式的検証はそれを実現できます。

形式的検証は三つの問題を解決できます。第一の問題は、安全で脆弱性がないこと:数学的推論の方法を通じて、契約のすべての行動を捕捉し、すべての可能性をカバーすることで、契約に脆弱性がないことを保証します。第二の問題は、信頼性:公開透明性。契約の作成者は、何をしたのかを明確に説明するだけでなく、コードが実際にそうであることを証明する必要があります。これも現在、形式的検証でしか実現できないことです。第三の問題は、規範性の問題です。前述の偽充電脆弱性は、イーサリアムのERC20規範が非常に曖昧で不完全であるために発生しました。では、どのようにして完全に書くことができるのでしょうか?これには、契約の規範を自然言語や文字で記述するのではなく、形式的な規範を導入し、数学的論理言語を用いて厳密に定義する必要があります。

形式的検証は、産業界、特に安全システム関連の分野で既に多くの適用事例があります。例えば、航空宇宙、高速鉄道、原子力発電などの業界には、形式的検証サービスを提供する専門チームが存在し、その役割と効果はすでに安全業界の専門家に認められています。

現在、形式的検証にはモデル検証と演繹推論の二種類があります。相対的に権威があり安全な企業、例えばZeppelinやイーサリアム公式サイトは、問題のあるスマートコントラクトコードを公開したことがあります。もし、より信頼できる、権威に依存しないスマートコントラクトコードのライブラリが存在し、すべての人が使用できるようになれば、この問題は非常に良く解決されるでしょう。

ChainCatcherは、広大な読者の皆様に対し、ブロックチェーンを理性的に見るよう呼びかけ、リスク意識を向上させ、各種仮想トークンの発行や投機に注意することを提唱します。当サイト内の全てのコンテンツは市場情報や関係者の見解であり、何らかの投資助言として扱われるものではありません。万が一不適切な内容が含まれていた場合は「通報」することができます。私たちは迅速に対処いたします。
banner
チェーンキャッチャー イノベーターとともにWeb3の世界を構築する