[EIP6] SUICIDEからSELFDESTRUCTへ用語を置き換える提案を理解しよう！

# はじめに

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

https://cryptogames.co.jp/

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

https://cryptospells.jp/

今回は、メンタルヘルスへの配慮から「`SUICIDE`」オペコードの名称を「`SELFDESTRUCT`」に変更する提案をしている**EIP6**についてまとめていきます！

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

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

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

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

# 概要

Ethereumでのプログラミングにおいて、EIP（Ethereum Improvement Proposal、イーサリアム改善提案）によって提案された変更の1つに、「`SUICIDE`」というオペコード（操作コード）の名前を「`SELFDESTRUCT`」に変更するというものがあります。
ここでいうオペコードとは、イーサリアムの仮想マシン（EVM）が理解し、実行できる基本的な命令のことです。

「`SUICIDE`」オペコードは、スマートコントラクトが自らをブロックチェーン上から削除し、残っているイーサ（ETH）を指定したアドレスに送るために使用されます。
この操作は必要ないか、セキュリティ上の理由で機能を停止させたいコントラクトを「**破壊**」させることを意味します。

しかし、「`SUICIDE`」という用語は、明らかにネガティブな響きがあり、不適切と感じられることがあります。
そのため、このオペコードの名前を「`SELFDESTRUCT`」と変更することが提案されました。
「`SELFDESTRUCT`」は、スマートコントラクトが自己破壊することをより中立的に、そして文字通りに表現しています。
この名前の変更は、主にセマンティック（意味論的）な理由によるものであり、オペコードの機能自体に変更はありません。

# 動機

Ethereumのプログラミング言語における「`SUICIDE`」というオペコードの名称を変更する理由とその背景について説明しています。
メンタルヘルスは多くの人にとって重要な問題であり、プログラミング言語における用語選びが、特に損失やうつ病を経験している人々に影響を与える可能性があることを指摘しています。
全世界で推定3億5000万人がうつ病に苦しんでいるため、Ethereumのエコシステムを様々な開発者に広げたいと考えるなら、プログラミング言語のセマンティック（意味論的な側面）を頻繁に見直す必要があると述べています。

DEVolution, GmbHによって委託されたEthereumのセキュリティ監査で、Least Authorityは「`SUICIDE`」という指示名を「**self-destruct**」、「**destroy**」、「**terminate**」、「**close**」などの意味合いが軽い言葉に置き換えることを推奨しました。
これは、スマートコントラクトの自然な終了を記述する用語であり、コミュニティのメンバーが抱える可能性のあるメンタルヘルスの問題に配慮するためです。

変更の主な理由は、コードよりも人々を優先し、Ethereumプロジェクトがこの変更の必要性を認識するほど成熟していることを示すことにあります。
「**suicide**」という言葉は重いテーマであり、開発コミュニティの中でうつ病に苦しんでいる人々や最近自殺で誰かを失った人々に影響を与えないように最大限の努力をするべきだと主張しています。
Ethereumはまだ若いプラットフォームであり、その寿命の早い段階でこの変更を実装することが、将来的により少ない問題を引き起こすとしています。

# 実装

Ethereumのプログラミング言語であるSolidityとSerpentにおいて、「`SUICIDE`」というオペコードの名前を完全に置き換えるのではなく、「`SELFDESTRUCT`」という別名を追加する形で変更が行われました。
この変更は、GitHub上のコミットリンクを通じて確認することができます。

- [https://github.com/ethereum/solidity/commit/a8736b7b271dac117f15164cf4d2dfabcdd2c6fd](https://github.com/ethereum/solidity/commit/a8736b7b271dac117f15164cf4d2dfabcdd2c6fd )
- [https://github.com/ethereum/serpent/commit/1106c3bdc8f1bd9ded58a452681788ff2e03ee7c](https://github.com/ethereum/serpent/commit/1106c3bdc8f1bd9ded58a452681788ff2e03ee7c)


この変更により、開発者は「`SUICIDE`」オペコードを引き続き使用できる一方で、「`SELFDESTRUCT`」というより中立的な用語も選択できるようになりました。
これは、既存のコードベースとの互換性を保ちつつ、言葉の選択によるネガティブな影響を減らすための妥協策です。
「`SUICIDE`」オペコードは廃止されず、代わりに「`SELFDESTRUCT`」という別名が追加されました。

このアプローチにより、プログラミング言語のセマンティクス（意味論）を改善し、メンタルヘルスに配慮しつつ、Ethereumのエコシステム内での技術的な連続性と安定性を保持することが可能になります。
開発者は、自分のコードやプロジェクトの文脈に応じて、どちらの用語を使用するかを選択できます。

# 引用

Hudson Jameson <hudson@hudsonjameson.com>, "EIP-6: Renaming SUICIDE opcode," Ethereum Improvement Proposals, no. 6, November 2015. [Online serial]. Available: https://eips.ethereum.org/EIPS/eip-6.

# 最後に

今回は「メンタルヘルスへの配慮から「`SUICIDE`」オペコードの名称を「`SELFDESTRUCT`」に変更する提案をしている**EIP6**」についてまとめてきました！
いかがだったでしょうか？

質問などがある方は以下の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