Tech

ガスと取引コスト: Gas Limit と Gas Price とは?

  • このエントリーをはてなブックマークに追加

前提知識

  • Ethereumとは何かの基礎知識
    • ether, wei (通貨単位)
    • weiはetherの最小単位
    • 1 wei = 0.000000000000000001 ether
  • マイナー(採掘者): トランザクションを処理したり、プログラムを実行したりするコンピュータ

Gasとは?

  • Ethereumにて、プログラム実行に必要な燃料(ガソリン)
    • トランザクションを送ったり、プログラムを実行するのに必要なもの
  • 実行するためのガス消費の単位
    • 例えるなら、ガソリンのリッター単位。20 gasは、20リットルのようなもの。

Gas Fee (ガス手数料)

  • トランザクションやプログラムを実行するのに必要な手数料
  • その作業をしてくれるマイナーに支払われる
  • 例えば、トランザクションを送るのに500 Gasが必要
  • その他の手数料の料金表は以下の通り

Gas Price (ガスの料金)とは?

  • 1 Gasの値段(wei)
  • 何wei/Gas か?の値
  • Gas Priceは、需要によって変動する
  • マイナー(採掘者)は、Gas Priceが低いトランザクションを無視する自由がある
  • 通常、マイナー(採掘者)は、Gas Priceが高いものから実行していく
  • 現在、1 Gasは 10 szabo = 0.00001 ether = 0.0000014096 USD位
  • 正確な現在のGas Priceは、以下サイトなどでチェックして下さい
  • 正確な現在の値段は、Ether単位コンバータでチェックして下さい
  • 平均GasPriceのチャート(履歴): Ethereum Average GasPrice Chart

車のガソリンで例えると

20リットルの価格は、120円/リットルなら2400円といった感じで、20 gas * ガスの価格(gasPrice)で支払うetherの額が決まる

トランザクション手数料は?

では、トランザクションの手数料はいくらでしょうか?

  • トランザクションのガス手数料: 500 Gas
  • Gas Price: 10 szabo (だとする)
  • 500 Gas x 10 szabo = 5000 szabo (≒ 0.0007 USD)

トランザクションでは、ガスを多めに付けて、利用されなかった分は送信者へ戻る。

Fee = (startGas – remainingGas) × gas price
Refund = remainingGas x gas price

estimageGasとは?

事前にgasを見積もるためのweb3.jsのメソッド

web3.eth.estimateGas(callObject [, callback])

Gas Limitとは?

Gas Limitには2つある。

  1. トランザクション・ガスリミット
  2. ブロック・ガスリミット

1. トランザクション・ガスリミットとは?

2. ブロック・ガスリミットとは?

ブロックに入るトランザクション数を制限するための数値。

  • ブロックに入るトランザクションの量は、block gas limitにより制限される (Bitcoinにおけるブロックサイズに近い。Ethereumの場合は、この値が変動する。)

トランザクションの価格決定

  • 現在、トランザクションは、21,000 gasを利用する
  • Homesteadに移行した時にデフォルトのgas priceが50 Shannon から20 Shannonと60%引きに変更になった。

Frontierでは

0.00000005 * 9 * 21000 = 0.00945 USD / transaction

Homesteadでは

0.00000002 * 9 * 21000 = 0.00378 USD / transaction

callの場合

ローカルのgethから情報を取ってくるので、feeは要らない。が、処理が大きい場合は、gasを指定しないと Out of Gasになることがある。

例えば

contract.method.call({gas: 1000000000})

よくある疑問

  • Q: Etherの価格が高くなったら、コントラクト実行のお金ももっとかかるのでは?
    • A: 需要によってgas priceは変わるので、そうとは言えない

参考: speculation – With the rising Ether price to $9, doesn’t this mean gas costs more? – Ethereum Stack Exchange

  • Q: どうやって、コントラクト実行のfeeを予想するの?
    • A: estimateGasを使って予想する

ツール

参考

関連単語

  • Ethereum、イーサリアム、エセリウム
  • ガス、ガソリン、ガスリミット、ガス制限、ガスプライス、ガス価格
  • gas limit, gasLimit, gas price, gasPrice
  • このエントリーをはてなブックマークに追加