チューリング完全マシンにおけるガス(Gas)の役割

チューリング完全マシンにおけるガス(Gas)の役割
今回は、イーサリアムの「チューリング完全マシン」と「停止性問題」について専門用語を省き、事例を使いながら説明しています。このレポートを読んで頂くことで、チューリング完全マシンであるイーサリアムのメリットと課題について知ることができ、その課題の解決方法がどのような形で実装されているかについて理解することができます。


CoinPicks Labでは、BitcoinやEthereum、時事情報に焦点を絞り毎週金曜日レポートを配信しています。

今回の記事に関してメールマガジンでは、優先的に配信を行なっています。

レポートを希望する

チューリング完全マシンにおけるガス(Gas)の役割

イーサリアムについて学び始めると「チューリング完全」という言葉を良く目にします。イーサリアムは、ビットコインと異なりチューリング完全であると言われている為、今回の記事ではその意味合いについて掘り下げたいと思います。

1.1 チューリング完全マシンについて

チューリング完全なマシンとは、特別なシステムが備わっている万能なシステムをイメージするかもしれませんが、実はそうではありません。不完全なマシンと比較して、僅かなプログラムで簡単に実装できるというのが特徴です。

チューリングというのはイギリスの数学者、アラン・チューリングの名前から由来しています。

イーサリアムは、冒頭で説明したようにチューリング完全なマシンとしてあらゆるプログラムを実行することができます。つまり、様々な開発言語やプログラムに対応することができ、ワールドコンピュータとしての汎用性が高さがイーサリアムのイノベーション要素とも言えるわけです。

分かりやすいワールドコンピューターの説明についてはこちら

[blogcard url=”https://atomic-temporary-106217043.wpcomstaging.com/ethereum_blockchain/”%5D

プログラムを簡単に実行できるからこそ、悪意あるプログラムの実行も簡単にできてしまします。悪意あるプログラムとは、コンピューターに終わりのないプログラム(無限ループ)を処理させ、負荷をかけ停止させるような攻撃を例に、「停止性問題」と呼ばれるものです。

これは、イーサリアムにとっても非常に重要な問題です。

通常、限られた人だけが使用するプログラムであれば、停止性問題が発生した場合でも、プログラムを再起動や強制終了することで、処理は終了します。しかし、パブリックブロックチェーンを採用しているイーサリアムはそのような解決方法を実行することができません。

何故なら、イーサリアムは限られた人だけに管理されているネットワークではなく、世界中の人間がイーサリアムネットワーク(ブロックチェーン)を維持するために分散的に参加している為、現実的に停止させることができないのです。

つまり、イーサリアムネットワーク上で停止性問題が発生した場合、ネットワークは永遠に同じプログラムを処理し続け、他の処理をすることができずネットワークの詰まりが発生します。そうすると、イーサリアムはワールドコンピュータとして機能しなくなります。

この問題を解決するために、実装されているのが「Gas」と呼ばれるメカニズムです。

1.2 Gasと停止性問題について

Gasとは、イーサリアムのスマートコントラクトと呼ばれるプログラムの規格を動かす為に使用されるコストです。車を動かす為に使用されるガソリン(燃料)のようなイメージを持つと分かりやすいです。

このGasによって、停止性問題を解決しています。

スマートコントラクトでプログラムを動かす為には、事前に必要なGasの量が決められています。そのGasは、トランザクションの中に含まれており、プログラムを動かす命令と一緒に送信されます。そして、含まれているGasが消費され無くなるとプログラムが停止する仕組みになっているのです。車の中のガソリンが無くなり、車が強制的に停止してしまうようなイメージです。

補足事項として、Gasはトランザクション送信時に全て消費されるわけではなく、送信時に一定のGasがトランザクション内に含まれている条件が決められているのみであり、実際にGasが消費されるのはプログラムが動き出してからとなります。

1.3 まとめ

イーサリアムは、チューリング完全マシンとして、様々な開発言語やプログラムに対応することができる、汎用性の高いワールドコンピューターであるというメリットを持ちながら、停止性問題と呼ばれるネットワークを脅かす可能性のある問題がありました。

その停止性問題を解決しているのが、Gasと呼ばれるプログラムを動かす為に必要なコストであり、Gasコスト決められている以上、プログラムも無限にループすることができないということでした。

汎用性の高いイーサリアムブロックチェーンにおいて、Gasは大変重要な役割を果たしていることが理解頂けたかと思います。

 

CoinPicks Lab

レポートを希望する