イーサリアムネットワークはDEVCON2の開催中に重度のトランザクションスパム攻撃を受け、ネットワークがクラッシュするというプロトコルレベルの潜在的バグを修正するためにハードフォークを行います。
スポンサーリンク速報:イーサリアムネットワークはかなり重いDoS攻撃を受けています。プールのトランザクションはこの問題が解決するまで遅れます #イーサリアム #Ethereum $ETH #マイニング #マイニングプール #マイナー #ブロックチェーン #スマートコントラクト #暗号通貨 #投資 https://t.co/7moiNXQLia
— 墨汁うまい(Not giving away ETH) (@bokujyuumai) October 13, 2016
目次
1.長期に渡ってのガスコストの変更
IOヘビーオペレーションによるトランザクションスパムアタックの軽減 github.com 以下ヴィタリックからの発表 ハードフォークするために最有力候補は上記の物となり内容は、未だに続くDoS攻撃の問題をガスプライスの再調整によって解決するというものです。 ガスプライスのハードフォークにはいくつかの選択肢があります 基本的には下記のガスコストの値上げとなります
1-1.OPCODEのガスプライス変更点
・EXTCODESIZEを700
・EXTCODECOPYを700
・BALANCEを400
・SLOADを200
・CALL, CALLDELEGATE, CALLCODEを700
・SUICIDEを5000
これはアクセスされていない一部のステートにアクセスする全てのオぺコードをカバーする。 (例えば CODECOPYが現在呼び出されているコードをコピーするが、そのコードはすでにロードされておりそれはカウントされない)
1-1-1.SLOAD
SLOADは5倍ほどコストを増加 それ以外のオぺコードは10-20倍の範囲内です。 これは実際計算してみるとIOオペレーションはオリジナルガステーブルより安く、ガスコストはオぺコードにアクセスするのに多くの時間を必要とするような悪影響はありません
1-1-2.SUICID
SUICIDEは独自に5000という高いガスコストとなる。 SUICIDEはステート読み込みのオペレーションではなく、ステートを変更するオペレーションのためである。このフォークは全てのステート変更を少なくとも5000ガスを消費するという不変条件であることを維持することが目的であるため
*SUICIDEはブロックチェーン上のコントラクトデータとかを一掃するために使用 しかも使用すると残りのイーサを差し引いてガスコストを減らすことができる
1-2.ガスコストへ63/64ルールを追加
CALLが多すぎるガスを要求してきた際、クラッシュして失敗する代わりに子は最大許容のガスを手にすることとします。 これはとても重要で、現在ほとんどのコールは msg.gas – 40ガス でハードコード(様は変更できず強制される感じ)されされ、コールのガスコスト増大は全てのコールを破壊します。 この追加ルールによってこの問題を解決したといえるでしょう
コールの子は、親の63/64以上のガスを消費することはできない これには2つ目的があります
1-2-1.攻撃の回避
ハードリミットの代わりに最大コールスタックの深さとソフトリミット、ディープコールタワーを作成する場合は指数関数的に増加するガスの量を要求する これによってコントラクトディベロッパーが心配しなければならなかった問題のコールスタックの深さ制限攻撃を回避することが可能となり、それだけでなく将来的にoff-by-oneエラー(ループが正しい回数より一回多く、または一回少なく実行された場合などに発生するエラー)によるコンセンサスの失敗を防ぐ可能性を少し上げることができます
1-2-2.将来的なイーサリアムへの攻撃リスクを減らす
事実上のコールスタックの深さを最大~300までと減らし、将来クライアントに対する2次攻撃により脆弱になるというリスクを幾分か軽減します
2.ヴィタリックのハードフォークに対する意見
スポンサーリンクまさに今がこのハードフォークを実行するのにベストタイミングであり、63/64の変更とCALLガスコストの増加という変更はディベロッパーにとっては相容れないもの、また同じことを2回繰り返すより一度の経験で済むため得策である。 更に
「EXTCODESIZE、EXTCODECOPY、CALL、CALLDELEGATE、CALLCODE全てをガスコスト4000に変更しますが、終了時全てのガスを400とコードの6バイトごとに更に1ずつ返金します」
と述べています。
このルールの目的は、18KBコントラクトにアクセス、さらにはスモールコントラクトにアクセスに対してペナルティーを課す、特に申告なDDoS攻撃ベクトルのフルサイズコントラクトのためです(実際1.の~2KBよりも小さいコントラクトにアクセスするユーザーよりも寛大です)
1.の場合、15倍〜30倍にすることによってDoS問題が軽減される
2.の場合、100倍に限り軽減される
しかし2.の場合はコードがより複雑となります。
スポンサーリンク
ビットコインやイーサリアムその他仮想通貨の情報はツイッター上で速報を出しています。
Follow @bokujyuumai Tweet
仮想通貨ランキング Tweets by bokujyuumai