はじめに

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

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

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

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

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

概要

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

動機

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

仕様

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

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などからお気軽に質問してください!

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