Rustスマートコントラクト安全:防御サービス拒否攻撃
サービス拒否攻撃(DoS)は、スマートコントラクトが一定期間正常に使用できなくなったり、永久に動作しなくなったりする原因となります。主な理由は以下の通り:
1. コントラクトのロジックには計算の複雑さが高すぎる欠陥が存在し、Gasの消費が制限を超えています。
2. クロスコントラクト呼び出し時の外部コントラクトの実行状態への依存は、外部コントラクトによってブロックされる可能性があります。
3. コントラクトの所有者が秘密鍵を失い、重要な特権関数を実行できない。
以下に具体例を挙げて分析します。
1. 外部から操作可能な大型データ構造を遍歴しない
以下は簡単な"分配"スマートコントラクトで、DoSリスクが存在します:
さび
[near_bindgen]
[derive(BorshDeserialize、