調査によると、EOSネットワークはフリーズする可能性があり、Block.oneはエラーを拒否します

過去数週間以内に、EOSブロックチェーンプロトコルのユーザーはネットワークアクセスで定期的な問題を経験しています。最近 論文 偽名のスマートコントラクト開発者でありセキュリティエンジニアであるDexaranは、問題の明らかな根本原因について説明しました。ハッカーがわずか数ドル相当のEOSでネットワークを「混雑」させる、または低効率モードにすることができる安価な手法です。.
このエクスプロイトにより、ハッカーは9月初めにEOSギャンブルアプリケーションであるEOSPlayから110,000ドルを超える暗号通貨を盗むことができたようです。ただし、EOSの親会社であるBlock.oneの幹部, 慌てていない, ネットワークが「正しく」動作していると主張する。
EOSの基本:ガバナンス、ステーキング、輻輳モード
EOS.ioは、分散型アプリケーション(DApp)の開発とホスティングのためのブロックチェーンを利用したスマートコントラクトプロトコルです。委任されたプルーフオブステーク(DPoS)と呼ばれるコンセンサスモデルを採用し、EOSユーザー契約(EUA).
合意により、21のブロックプロデューサーのうち少なくとも15の間にコンセンサスがある場合、つまりEOSブロックチェーン上のブロックの処理を担当する独立したエンティティが存在する場合にネットワークに変更を加えることができます.
このプロトコルは、その名を冠したネイティブ暗号通貨によってサポートされており、現在、時価総額で7番目に大きい資産です。これらのトークンは、EOSの特徴的な機能の1つである、組み込みのリソースステーキングメカニズムの中核です。トランザクションがEOSネットワークに送信されるたびに、ブロックプロデューサーはそれを処理する必要があります.
ブロックプロデューサーがトランザクションを検証するために必要な時間の長さ(マイクロ秒単位で測定)は、CPUと呼ばれます。簡単に言えば、EOSユーザーと開発者は、トークンをステーキングすることで、チェーン全体のCPUおよび帯域幅リソースにアクセスできます。ブロックは500ミリ秒ごとに生成されます。各ブロックプロデューサーには、ブロックを検証するための200ミリ秒があります。残りの300ミリ秒は、ネットワーク全体に配布するために残されています.
特に、200ミリ秒の上限内に、ネットワーク全体でレート制限が開始されるパーセンテージしきい値もあります。つまり、ブロックがブロックごとに許可される合計200ミリ秒のCPUの10%の制限に達すると、 トリガー 「輻輳」モードに入るCPU割り当てアルゴリズム.
「この制限に達する前は、「輻輳モード」ではないため、すべてのユーザーがネットワーク上で自由に取引できます」と記事の著者は述べています。 説明. 「この制限を超えると、ユーザーは、賭けられたEOSごとのCPU割り当ての合計の比例配分に戻されます。」
によると 別の記事 EOSブロックチェーンネットワークの主要なブロックプロデューサーであるEOSCanadaが執筆し、ある時点でCPUに1,000個のトークンが賭けられていて、1つのアカウントに20個のトークンが賭けられている場合、そのアカウントはCPU全体の2%が保証されます。ネットワークの容量.
ただし、ネットワークがレート制限がアクティブ化されるしきい値に達していない場合(「輻輳」モードではない)、そのアカウントは、保証された2%を超えてトランザクションをプッシュできます。そのしきい値を超えると、アカウントは割り当てを超えることはできません。また、 "混雑" フェーズでは、各ユーザーのCPUの量は、すべての混雑しているパーティがCPUを使い果たし、CPUを消費するアクションの実行を停止するまで減少し始めます。.
EOSの共同創設者でBlock.oneの最高技術責任者であるDanielLarimer, 参照 ネットワークの「無料のメリット」としてこのメカニズムに:
「#eosを所有してステーキングすると、ユーザーは利用可能な帯域幅を比例配分できます。人々が自分の共有を使用しない場合、それは比例して他の人にリダイレクトされます。頻繁に使用している間、ユーザーはこの無料の特典を利用できなくなります。」
問題:輻輳モードをトリガーするのは簡単すぎる
Dexaran氏は、問題は、輻輳モードをトリガーするのが簡単すぎることだと主張しました。分析後、スマートコントラクトの開発者は、EOSBetDiceと呼ばれる賭けDAppが原因であるとされる、各時間の初めにCPU使用率の大幅な急上昇に気づきました。次に、Dexaranは、ネットワークを輻輳状態にするために必要なCPUの量を評価することを決定しました。.
実験のために、開発者はCPU用に7,156EOSを賭けました。その量のEOSは、月に2つのEOS(6ドル未満)という低コストでリソース交換から借りることができると、Dexaran氏は強調しました。テストが平均的なEOSネットワークユーザーにどのように影響するかを確認するために、セキュリティエンジニアは、セッション開始直前にEOSKnightsDAppをオンラインでプレイしていた3つのランダムユーザーアカウントを事前に選択しました.
次に、開発者は1秒の遅延で多くの遅延トランザクションを生成するコントラクトを実行し、各トランザクションは「25〜27ミリ秒のCPU」を消費しました。 CPU使用率を1分間独占した後、契約によりEOSネットワークが輻輳モードになりました。その結果、3つのサンプルアカウントはすべてCPUが不足していたため、「完全にフリーズ」しました。つまり、基本的に、すべてのカジュアルなEOSユーザーはその時点でネットワーク上のDAppを利用できませんでした。.
2分後、前述のEOSBetDice DApp(実験とは関係なく、1時間ごとに定期的なCPUスパイクが発生しました)がスケジュールどおりに動作を開始しました。すでに過負荷になっているときにネットワークからさらに多くのCPUを消費することにより、Dexaranによって開始された輻輳の原因になりました。 「連続して消費するCPUが多いほど、輻輳モードが「深く」なり、ネットワークが通常モードに回復するまでに時間がかかります」と開発者は述べています。.
その結果、EOSネットワークはさらに「深刻な」輻輳に陥り、CPUの可用性はすべてのEOSユーザーで35分の1に減少したと報告されています。 「CPUにどれだけのEOSを賭けても、3%を超えて使用すると、フリーズします」とDexaran氏は述べています。.
Dexaranの契約とEOSBetDiceが合計5分間ネットワークにストレスを与えた後、ネットワークは表面上、次の10分間麻痺したままでした。さらに6分が経過した後、ほぼ回復しましたが、リソース交換でのEOSの貸出価格は、通常の約3倍であり、ストレステストのためにネットワークがCPUに大量のトークンを割り当てる必要があることを示しています。.
ネットワークは最後の30分後に完全に復元されました "悪意のある" アクション。開発者の推定によると、攻撃は1時間ごとに実行される可能性があるため、これによりユーザーは「次の輻輳セッションまで25分のウィンドウ」が得られるとDexaran氏は述べています。 「7000EOSは、EOSネットワークを適切な時間輻輳モードに移行させるのに十分です」と研究者は結論付けました。
「説明されている輻輳セッションは、(1)CPU帯域幅の特定のシェアを使用したユーザー、(2)CPU帯域幅が非常に低いユーザーにのみ問題を引き起こします。説明されている輻輳セッションは、(1)使用可能なCPUが多いDApp、(2)アクティビティに関与せず、CPUを完全に使用できるユーザー(これらのユーザーが単一のtxを作成するのに十分なCPUを持っていると想定)には影響しません。 )。」
さらに、Dexaranは、一部のEOSユーザーは彼または彼女を "ハッカー" ネットワークが意図的に過負荷になっているため、「私は正反対のことをしています。私は自分の投資とあなたの投資を保護しています。」
特に、EOS輻輳に関するDexaranのエントリが公開される数日前に、開発者のChristoph Michel ブログ記事を書いた 最近のEOSPlayカジノハッキングをネットワークの混雑にリンクし、ネットワークの問題が利益のためにどのように悪用される可能性があるかを示します.
ミシェルによると、攻撃者はCPUとNETのリソースレンタル市場であるREXからEOSトークンをレンタルし、それらを積み重ねて、カジノの機能を維持するために彼とEOSPlayのCPUの両方を増やしました。したがって、賭け金を支払うことができます。その後、ハッカーはDexaranと同様のトランザクションでネットワークをスパムし、EOSPlayでいくつかのサイコロゲームをプレイし、50/50の結果に賭けました。 EOSPlayが結果ブロックのブロックハッシュを見て、最初の2文字(右から始まり、0から9の間)をサイコロの目として取るとすると、ゲームに勝つには、結果ブロックのブロックハッシュを予測する必要があります。.
「予測の唯一の未知数は、ブロックに含まれるトランザクションです」とミシェルは説明しました。 「しかし、他の誰もトランザクションを送信できないように、スパムを送信してネットワークを混雑させることができたらどうでしょうか?」
開発者によると、攻撃者がネットワークをスパムするためにEOSを借りたのはまさにそのためです。つまり、ネットワークを制御し、ブロックハッシュを予測して、ほとんどの賭けに勝つことができるようにするためです。予測が間違っている場合、攻撃者は別のランダムトランザクションをブロックに送信する可能性があるため、余分な「コイントス」が発生し、オッズが大幅に向上します。.
最終的に、ハッカーはわずか300 EOSを使用し、1,000ドル強の価値があり、数ドルで借りることができました。その見返りとして、固定勝利の豊富さは30,000以上のEOS、または約110,000ドルをもたらしました.
EOS開発者は、ネットワークが「正しく動作している」ことを確認しますが、全員が同意するわけではありません
多くのユーザーが「CPUの問題」を抱えていると報告しているため、Dexaranの輻輳実験は見過ごされていません。 ツイッター そして Reddit. スマートコントラクト開発者のチームであるGrapheneLabのCEOであるDenisBredikhinは、アプリケーション自体は危険にさらされていませんが、ポーカーベースのEOSベッティングDAppのユーザーも過去数週間にわたって問題を経験していることをCointelegraphに確認しました。ブレディキンは言った:
「スパムのピーク時には、CPUに8〜1万のEOSが割り当てられていても、プレーヤーは何の操作もできませんでした。」
彼によると、10月1日から、スパムセッション中にゲームが停止しないように、プレーヤーはCPUに「最大10,000EOS」を割り当てる必要があります。一方、Block.oneのLarimerは、EOSが「正しく動作している」ことをコミュニティに安心させるためにTwitterを利用しました。彼 書きました:
「これは、攻撃者がethまたはビットコインを高額のトランザクションスパムで溢れさせる場合と同じです。トークン所有者のためにネットワークがフリーズすることはなく、無料で使用できる追加の帯域幅がなかっただけです。」
ただし、一部のコミュニティメンバーは異なることを求めています。 「このEOSへの攻撃と、BTCまたはETHでの高額スパムとの違いは、BTCまたはETHでトランザクションを送信するためにさらに支払うことができるということです。」 主張した 米国を拠点とするEOSブロックプロデューサーCypherGlassのCEO、RobFinch氏。彼が追加した:
「多くのEOSユーザーは、より多くのCPUをレンタルするのに十分なCPUを持っていなかったため、フリーズしました。正しく動作することは、IMOの最善の対応ではありません。」
別のEOSユーザー、ブロックチェーン起業家のJared Moore, 確認済み ネットワークがDAppまたは彼のウォレットに使用できなかったこと。彼はまた、Block.oneが「EOSコミュニティを支援し、REX攻撃を防ぐ方法のガイドラインを公開する」かどうか疑問に思いました。
Cointelegraphはさらにコメントを求めてBlock.oneに連絡し、さらに情報が得られたら記事を更新します.

Facebook
Pinterest