Ethereumがトランザクションの過半数を占めているらしい

ビットコインはスケーラビリティの問題に行き当たっており、その解決のためブロックサイズをどうするかという論争が延々と続きました。そして、方針の違いからハードフォークを起こしました。いまではハードフォークは、スケーラビリティと無関係の動機からも起る様になっています。

ビットコインとその分派のブロックサイズ

下記のようになっています。

  • ビットコインアンリミテッド 可変(市場にゆだねる)
  • ビットコインコアのSegWit導入 (ブロックウェイトが4Mまで)
  • ビットコインクラシック 2M
  • ビットコインキャッシュ 8M

最近ハードフォークしたゴールドなどについては調べてないのですが、ブロックサイズとスケーラビリティというのは、厄介な問題であり続けてきたわけです。

じゃあ、Ethereumはどうなのか?Contractに欠陥があって大金が盗まれたりしていますし(これはスケーラビリティと無関係)、最近はICOがあると混雑することもあるようです。しかし、ビットコインのようには騒ぎになっていないように見えます。

ここを見ると、驚いたことに暗号通貨のトランザクションの過半数をEthreumのトランザクションが占めていることになってます。ちょっと驚きました。Ethereumがどうして多くのトランザクションをさばけているのか?スケーラビリティでビットコインのような論争に陥っていないのはどうしてなのか?とても興味の沸くところです。

やはりブロックサイズがスケーラビリティにとって影響の大きなところなので、Ethereumのブロックサイズがどうなっているか調べました。

Block Gas Limit

結論からいうと、Ethereum にはBlock Gas Limit というものが存在します。Gas Limitには2種類あって、それは Transaction Gas Limit と Block Size Gas Limit です。

Transaction Gas Limit
ユーザーがトランザクションをEthereumに送るときに設定する、消費されるGasの制限値。無限にGasが消費されて無一文になるのを防ぐためのものです。
Block Gas Limit
ひとつのブロックに含めることができるGasの合計量。マイナーによる設定値

ひとつのブロックに含むことが出来るトランザクションは、Transaction Gas Limitの合計がBlock Gas Limit以下に制限されるわけです。

A~Eの5つのトランザクションがあって、それぞれのTransaction Gas Limit が10、20、30、40、50であるとします。そのとき、Block Gas Limit = 100であるなら、ブロックに入れられるトランザクションは、

A(10)+B(20)+C(30)+D(40)、B(20)+C(30)+E(50)、D(40)+E(50)

などになります。

そして、Block Gas Limitはマイナーがクライアントで指定します。Gethの場合、–targetgaslimitオプションになります。

マイナーが上記オプションで指定することがBlock Gas Limitへの投票となるらしい・・・のですが、単なる多数決なのか何なのか、調べないとよくわかりません。

Bitcoin Unlimited どう違うのか?

この仕組みは、Bitcoin Ultimateのエマージェントコンセンサスと似ています。エマージェントコンセンサスも、マイナーがブロックサイズに影響のあるいくつかのパラメーターを指定して、あとは市場でブロックサイズが調節されます。

どちらにしても、固定されないブロックサイズを持ったチェーンがどのように機能しているのか、興味深いです。Ethereumが、攻撃されながらもトランザクションを大量に処理できているのはなぜか?これは実は、技術にとどまらない本質が潜んでいそうです。

この後も掘り下げていきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です