イーサリアム「ガス価格」問題は解決できる|Vitalik Buterin
イーサリアム(ETH)の共同創業者であるヴィタリック・ブテリン(Vitalik Buterin)氏は、ETHのトランザクションフィー(取引手数料)が大幅に変動している問題などを解決するために、理想的なガス価格(*1)を実現する新しい方法を7月3日に提案しました。
(*1)ガス価格(Gas Price):イーサリアムのトランザクションやプログラムを実行するために必要な手数料
Gas(ガス)の仕組み
Gas(ガス)とは?
『Gas(ガス)』とは、イーサリアム(ETH)での送金やプログラムを実行するために必要な燃料(ガソリン)のようなものであり、実行するためのガス消費の単位です。
わかりやすい例を挙げると、ガソリンのリッター単位のようなもので、
20gas=20リットル
のようなものであると考えるとわかりやすいでしょう。
プログラムの作業量をカウントするための単位として使用されており、その燃料費はEther(イーサ)から差し引かれます。様々な用途に使われるGasはその用途によって次のような種類があります。
Gas Fee (ガス手数料)
『Gas Fee (ガス手数料)』は、トランザクション(取引/処理)やプログラムを実行するために必要な手数料(Fee)のことです。この手数料はこれらの作業を行なってくれたマイナー(採掘者)に支払われます。
Gas Price(ガス価格)
『Gas Price(ガス価格)』は、イーサリアム送信者がマイナーに支払う一回あたりの手数料のことです。ガス価格はその時のGasの需要に応じてGasとEtherの交換レートのなかで変化します。この価格は非常に小さい値であるため、『wei』という単位で数えられます。
つまりこれは、ビットコインでいうところの『Satoshi』のようなものであり、具体的には以下のような単位が設定されています。
単位 | ether |
wei(最小) | 0.000000000000000001ether |
kwei | 0.000000000000001ether |
mwei | 0.000000000001ether |
gwei(shannon) | 0.000000001ether |
szabo | 0.000001ether |
finney | 0.001ether |
ether | 1ether |
kether | 1000ether |
mether | 1000000ether |
gether | 1000000000ether |
tether | 1000000000000ether |
ガス価格は、マイニング(採掘)を行なったマイナーへの報酬として支払われるため、設定額大きいほど早く送金を処理をしてもらうことができますが、実際の送金にかかる時間は、トランザクションの混み具合にも影響されます。
Gas limit(ガスリミット)
『Gas limit(ガスリミット)』は、トランザクションを実行する際にかかるGasの最大量です。Ethereumのホワイトペーパーでは『startGas』と呼ばれており、Ethereumの仕様を実装したクライアントの一つ「Geth」では『Gas』と呼ばれています。
実際に送金にかかる手数料
「My Ether Wallet」などのウォレットでイーサリアムを送金する際には、手数料を指定しなければいけません。この手数料は、送金を行う人が自分で設定できるようになっているものの、その最低価格は事前に決まっており、
『Gas limit × Gas Price』
で導き出すことができます。つまりイーサリアムの送金を行う際にはこの計算式を使うことで送金にかかる手数料を知ることができます。
一方マイナーが受け取る手数料は、この中の『Gas limit』から『remaining gas』と呼ばれる"Gasが足りなくなった場合のために多めに支払われるGas"を引いた金額に『Gas価格』を掛け合わせることで導き出すことができます。
取引手数料の問題点
イーサリアム(ETH)は、ユーザー自身が支払うガス価格を選択することができるように設計されていますが、取引を処理するマイナーは、通常ガス価格が高いものから実行していくため、設定されたガス価格が他のものと比べてどれほど高いかに応じて、実際にそれらのトランザクションが実行される可能性も高くなります。
この方法の問題点は、ユーザーが平均レートよりも高い料金を設定する意欲がなくても、取引が確実に行われることです。
これはつまり、取引に1ドルを払うという人がいる場合には、本来ならば1ドルまでは入札するつもりであるものの、その他すべての人々が0.05ドルにガス価格を設定している場合は、1ドルを支払う予定であった人も、0.08ドルで送金できてしまうということです。
このシステムは、イーサリアムの取引手数料にボラティリティを与える原因となります。イーサリアムネットワーク上では、何千ものDApp(分散型アプリケーション)が実行されていますが、それらのすべてはトランザクションの処理が必要であるため、ユーザーの設定によってトランザクションフィーに極端な価格変動を引き起こす可能性があります。
イーサリアムにDAppsが与える影響
安定性と利便性を向上させる解決策
この問題に対する一般的な改善策として挙げられるのは『価格オークション』のシステムをとることです。このシステムでは、ユーザーが"トランザクション処理を行うために支払う予定の価格"のオークションを行います。そしてそのオークションが行われた後に、マイナーから受け入れられた最低の手数料が全員に適用されます。
One proposal for improving stability and user-friendliness of gas price markets: https://t.co/1AXsan7u9c
— Vitalik "Not giving away ETH" Buterin (@VitalikButerin) 2018年7月2日
Not dependent on Casper, sharding or abstraction; if well reviewed and people agree it's a significant improvement, it could technically be implemented as a change to mainnet
ガス価格市場の安定性と利便性を向上させるための1つの提案:
Casper(キャスパー)、シャーディング(分裂)、またはアブストラクション(抽象化)に依存しません。
人々によって十分に見直された上で、これが大幅な改善をもたらすことが認められたならば、技術的にはメインネットへの変更として実装することができます。
例えば、マイナーに対し3つのトランザクション領域があったとして、
[.03 / .05 / .07 / .10 / .35]
の5つの入札単価が設定されていたとします。
その場合には、最も高い取引手数料 [.07 / .10 / .35] の上位3名が入札者に適用されます。
Ethereumネットワークは、3つのトランザクションよりも可用性が高く、このシステムを外れ値(*2)を除去するのに有効です。
(*2)外れ値:統計において他の値から大きく外れた値
これは、より良い解決策となるかもしれませんが、欠陥がないわけではありません。ブテリン氏が注目している2つの問題は次のとおりです。
- マイナーは、より高額な取引手数料を大量にばら撒くことによって、価格を引き上げることができる
- マイナーは、トランザクションの送信者が入札単価を引き上げて差額を払い戻すように仕組むことができる
マイナーは自分と取引することができるため、平均的なトランザクション(TX)料金を引き上げることができます。
ブテリン氏は、価格オークションの概念を拡張して、これらの問題に対して可能な回避策を公式で求めました。
この方法を採用することによって、最低限の取引手数料が維持され、マイナーが不正に価格を操作することができないようにすることができるとのことで、ユーザーは料金を指定する代わりに、トランザクションを発生させたい最小限のブロック数を指定することができます。
また、ユーザーはEthereum取引の現在の価格を確認することができ、料金がユーザーにとって高すぎる場合には、これらの取引は発生しません。この方法は無意味な取引を排除し、予想外の取引手数料の変動を取り除くのに非常に有効な策となります。
自由で安価な取引が有効であるように見えるかもしれませんが、Ethereumの現在のシステムでは実用的ではありません。取引手数料は、マイナーに報酬を与え、スパム攻撃から保護するために必要です。
もしもこの新しい提案が開発者とコミュニティから十分なサポートを受けることができれば、すぐにでもイーサリアムのメインネットに追加されることになります。
イーサリアムに関するその他の記事はこちら
bitbankの登録方法はこちらで詳しく解説しています