# [EIP141] INVALIDオペコードの仕組みについて理解しよう！

> 特定の「命令」を意図的に「無効」にするように指定します。

- URL: https://cardene.dev/articles/69c29ecc0e93cc741f05
- 公開日: 2024-01-24
- 更新日: 2024-01-24
- トピック: Blockchain
- タグ: ethereum, solidity, smartcontract, ブロックチェーン

## はじめに

初めまして。
**CryptoGames**というブロックチェーンゲーム企業でエンジニアをしている **cardene（かるでね）** です！
スマートコントラクトを書いたり、フロントエンド・バックエンド・インフラと幅広く触れています。

https://cryptogames.co.jp/

代表的なゲームは**クリプトスペルズ**というブロックチェーンゲームです。

https://cryptospells.jp/

今回は、の仕組みを提案している**EIP141**についてまとめていきます！

:::message
以下にまとめられているものを翻訳・要約・補足しながらまとめていきます。
:::

https://eips.ethereum.org/EIPS/eip-141

他にも様々なEIPについてまとめています。

https://cardene.notion.site/ERC-EIP-2a03fa3ea33d43baa9ed82288f98d4a9?pvs=4

## 概要

特定の「**命令**」を意図的に「**無効**」にするように指定します。

## 動機

「**無効な命令は、実行を中止する明確な理由として使用できる**」という文は、コンピュータプログラムやシステムにおいて重要なセキュリティ及び安全対策の1つを示しています。
プログラムが意図しない動作をする原因として、無効な命令が実行されることがあります。
このような無効な命令が検出された場合、システムはこれをエラーとみなし、プログラムの実行を安全に中止させることができます。
これにより、さらなる誤動作やデータの損失、システムの不安定化を防ぐことができます。
例えば、オペレーティングシステムやクリティカルなアプリケーションでは、このような安全対策が特に重要です。
無効な命令が検出されると、システムはエラーメッセージを表示し、プログラムの実行を中断するか、または適切なエラーハンドリング処理を行うことが一般的です。
このプロセスは、プログラムの信頼性を高めるために不可欠です。

## 仕様

オペコード`0xfe`は`INVALID`（無効）命令です。これは実行を中止するために使用できます（つまり、`ABORT`[中止]命令としての役割も果たします）。
オペコード（操作コード）とは、コンピュータプロセッサが実行する命令を指定するコードです。
`0xfe`という値を持つこのオペコードは、無効な操作を示していますが、同時にプログラムの実行を安全に中止させるための手段としても機能します。
これは、プログラムが予期しない状態に遭遇した時に、安全な方法で停止させるために設計された命令です。
プログラムがこのオペコードを実行すると、プログラムはエラー状態として中断され、これによりプログラムの安定性を保持したり、データ損失を防ぐことができます。
このような命令は、プログラムのエラーハンドリングや例外処理の戦略の一部として重要です。

:::message
`INVALID`については以下の記事を参考にしてください。
:::

https://zenn.dev/heku/books/aef33b86ded3c0/viewer/27cd5d#invalid

## 互換性

この指示は使われたことがないため、過去のコントラクトには何の影響もないです。

## 引用

Alex Beregszaszi (@axic), "EIP-141: Designated invalid EVM instruction," Ethereum Improvement Proposals, no. 141, February 2017. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-141.

## 最後に

今回は「」についてまとめてきました！
いかがだったでしょうか？

質問などがある方は以下のTwitterのDMなどからお気軽に質問してください！

[Twitter @cardene777](https://twitter.com/cardene777)

他の媒体でも情報発信しているのでぜひ他も見ていってください！

https://chaldene.net/

https://zenn.dev/heku

https://mirror.xyz/0xcE77b9fCd390847627c84359fC1Bc02fC78f0e58

https://cardene.notion.site/ERC-EIP-2a03fa3ea33d43baa9ed82288f98d4a9?pvs=4
