サイトアイコン CRIPCY

イーサリアムの「Gas(ガス)」って何?~イーサリアムの仕組みを理解しよう

イーサリアムの「Gas(ガス)」

<この記事(ページ)は 7分で読めます>

イーサリアムを保管し送金したりするときに、必ず「Gas(ガス)」という言葉に遭遇すると思います。

Gasはその名の通り燃料のガスと同義で、イーサリアムのブロックチェーンの「燃料」として使用されています。

ここではイーサリアムについてより理解を深めるために、このGasがイーサリアムのブロックチェーンの中でどのような働きをしているのか紹介していきます。

イーサリアム(ETH)とは

イーサリアムは、2015年7月にリリースされたプラットフォームとその通貨です。ロシア人のVitalik Buterin(ヴィタリック・ブテリン)を中心に開発されました。

大きな特徴としては、スマートコントラクトであることと、PoS(プルーフ・オブ・ステーク)を導入しようと取り組んでいることです。他の仮想通貨やプラットフォームと同様に、そのプラットフォームにブロックチェーンを組み込んでいます。

※プルーフ・オブ・ワーク(PoS)とは:コインを保有している割合(Stake)によって、ブロックの承認の割合を決めるという承認方法。

イーサリアムのGas(ガス)とは

イーサリアムのGasは一言でいえば、1つの計算ステップの単位です。イーサリアムのプログラム(スマートコントラクト)を実行することや、トランザクションを送信するためにどれくらいの計算ステップが必要かを測るために使用されます。

そのため、どれだけ計算するかという仕事量の目安となり、マイナーに支払う手数料の単位としても扱われます。

イーサリアムを一つのシステムととらえると「システムを動かす燃料」であるためにガスと呼ばれます。

Gas(ガス)にまつわる用語の意味

GasPrice

GasPriceは1Gasあたりの料金、つまりGas(仕事量)の単価です。1 Gasの値段は、GasとEtherの交換レートのなかでGasの需要と供給に応じて変化します。1Etherよりずっと小さい値であるため、weiという単位で数えられます。

weiはイーサリアムのトークンであるEtherの最小単位です。Etherには、以下のようなさまざまな単位考案されています。

Gas Fee

Gas Fee (ガス手数料)は、トランザクションやプログラムを実行するのに必要な手数料のことです

一般にGas Fee=Gas Price(1ガスの単価)×仕事量(ガス)となります。

startGas(Gas limit)

startGasとは、トランザクションの実行にかかるGasの最大量です。

EthereumのホワイトペーパーではstartGasと呼ばれていますが、イエローペーパーではGas limitと呼ばれており、Geth(Ethereumの仕様を実装したクライアントの一つ)では単に“Gas”と呼ばれているので注意が必要です。

例えば、My Ether Wallet(イーサリアム対応のウォレット)でEtherを送金するときには手数料がかかります。この時にかかる手数料(Gas fee)は「注文内容の実行にかかるGasの最大量(startGas/Gas limit)」×「需要と供給に応じて自分で設定するGasの単価(Gas Price)で決定します。

トランザクションの実行時に燃料としてのGasが足りないと「ガス欠」となり取引ができなくなってしまうことがあります。そうならないためにある程度多めにGasを確保しておく必要があります。つまり、startGasとはトランザクションでGasが足りなくならないように保険として実際より多めに払うGasなのです。消費されず余ったGasはremaining gasとして、後で返還される仕組みです。

一般的に、送信者が支払う手数料はstartGas×Gas Priceで、マイナーが得る手数料は(startGasから remaining gasを引いたもの)×Gas Priceで決定します。

Gas priceの設定基準

当然、Gas priceは市場の相場に応じて決定する必要があります。

一般的にマイナーは報酬の大きい取引からマイニングを行う傾向にあります。そのため、Gas priceを高く設定するほど早く取引が実行され、逆にGas priceが少なければいつまで経っても取引が実行されない可能性があります

MyEtherWalletを使用する場合は適切な(需要と供給に応じた通常スピードの)価格がデフォルトとして設定されています。早く取引したい場合や手数料をなるべく払いたくない場合を除いてはデフォルトの価格で良いでしょう。

Gas(ガス)がイーサリアムで使われる過程

Gasが実際にどのようにイーサリアムで使用されているか、例をご紹介します。
例えば、「10 Ether の値と、0.001 Ether / Gas の Gas Price で 2000 Gas 、そして64バイトのデータを送信する」とします。

・トランザクション送信者が、最低限 2000 × 0.001= 2 Ether (送信者側が設定した手数料)を所持しているか確認します。 もし、所持していれば、2 Ether を送信者のアカウントから手数料として差し引きます。

・送信者から手数料として支払われたGasの量を2000 Gasとして初期化します。トランザクションのバイト長が 170 byte であるとすると、byte あたりの手数料が 5 Gas であったことから、850 Gasが手数料として差し引かれ、1150 Gas が残ります。

・次に送信者のアカウントから送信者が実際に送金する 10 Ether を差し引き、それを送信先のアカウントに加えます。(10Etherが送金されたことになる)

・次に取引処理のためのプログラムを動かします。この操作で、187 Gas を消費する場合、残りの Gas は 1150 – 187 = 963 Gasとなります。

・963 × 0.001 = 0.963 Ether を送信者のアカウントに返金し、結果(取引結果)を返します。

このような手順を踏んでトランザクションは成立します。

Gas(ガス)の活用

イーサリアムは現在まで多くのDos攻撃にさらされてきました。Dos攻撃とは、サーバやネットワークリソースに過重に負荷をかけることや脆弱性を突くことで、サービスの妨害や不正を行うことです。

イーサリアムではすべての計算ステップや領域に対して手数料が課されます。そのため、Dos攻撃を仕掛けているアタッカーはアタックするときに手数料を支払わなければなりません。つまり、Gasが一種のDos攻撃対策になっています。イーサリアムでは、これまで何度もDos攻撃を受けてきましたが、そのたびにGasの料金を上げるといった対策を取ることによって攻撃から身を守ってきたようです。

イーサリアムは現在Frontier→Homestead→Metropolis→Serenityという順番でハードフォークを行い、システム改変することでPoSを行おうとしていますが、このハードフォークでもその状況に応じて平均のGas Priceを変更しています。例えばFrontierからHomesteadに移行したときはGas Priceが50gwei(shannon)から20gweiに変更になったため、手数料は例えば1トランザクションに21000Gasかかるとすると、

0.00000005 × 9 × 21000 = 0.00945 USD / transaction(1Ether=9USDの場合)
から
0.00000002 × 9× 21000 = 0.00378 USD / transaction
と値下がりしました。

このようにGas Priceを変更することでトランザクション手数料は大きく変わります。これを利用することでDos攻撃者にも対応しうるのです。 

※ハードフォークとは:ブロックチェーンの定義に規定された“ルールを緩和する”ことによって発生するブロックチェーンの分岐のこと。

まとめ

イーサリアムの仕組みはやや難解です。それはイーサリアムがより高度で使いやすいブロックチェーンを目指して開発・進化しているためといえるでしょう。ブロックチェーンの仕組みを理解するということはその仕組みのより良い活用方法やビジネスの動きをより深く知ることにつながると考えられます。

モバイルバージョンを終了