スケーラビリティ問題とは? 影響とユーザーが回避する方法を解説

スケーラビリティ問題とは

仮想通貨(暗号資産*)の取引をしていて、送金に時間がかかったり手数料が高額になってしまったりして困ったことはないでしょうか?

それは、スケーラビリティ問題が原因なのです。

今回は、スケーラビリティ問題が発生する理由と、私たちができる対策について解説していきます。

*2019年5月、呼び名を「暗号資産」とする改正資金決済法が可決されました(参考|日本経済新聞

この記事で分かること(スケーラビリティ問題)

1. スケーラビリティ問題とはどんな問題か

大量の箱

スケーラビリティ問題というのは、ブロックチェーンが処理できる量以上の取引を要求されることで発生する問題のことです。

それによって承認自体が滞ることもあり、副作用的に手数料が上がるため、関心のある人は多いのではないでしょうか。

そんな仮想通貨の大きな課題と言えるスケーラビリティ問題について、詳しく解説していきます。

1-1. 送金を処理できるスピードに上限がある

取引の承認にかかる時間には、1つのブロックに入る取引の数と、ブロックの生成速度が関係しています。

ブロックに入るトランザクションの数は限られている

1つのブロックには複数の取引(トランザクション)が収められていますが、ブロックの最大サイズ が決められているので、1度に処理できる取引数には制限があります。

1ブロックの生成に約10分かかる

仮想通貨の取引はブロックチェーンにブロックをつなぐことで承認されます。ブロックを生成してチェーンにつなげる速度はプログラムで制限されており、ビットコインの場合、ブロック生成時間は約10分です。

これらの制限から、仮想通貨は一定時間内に処理できる取引数に上限があるのです。

承認までの時間の計算方法

ブロックの生成時間とブロック1つあたりのトランザクションの最大数が分かれば、おおよその承認速度が計算できます。
ビットコインの場合、ブロックの生成時間は10分、トランザクションのサイズは取引の内容によって変化しますが、以下のサイトを確認することで平均値を得ることができます。

tradeblock.com

上限を超える数の取引要求があると、処理できない取引が出てきて、全体として取引要求から決済までの時間が長くなってしまいます。

1-2. スケーラビリティ問題で起こる現象

送金遅延

スケーラビリティ問題は、仮想通貨を利用するユーザーに大きな影響を与える問題です。その影響について、具体的に紹介しましょう。

送金速度が低下する

前述のとおり、ブロックサイズには上限があるため、ブロックに入りきらない取引要求は保留され、ブロックに取り込まれるまでに順番待ちをしなければいけません。

その待ち時間の分だけ、送金完了までに余計な時間がかかってしまうことになります。

手数料が高騰する

取引を取り込んだブロックを生成してチェーンにつなぐというのは、マイニングそのものです。

マイニングの報酬は新規に発行されるビットコインと、ブロックに格納されている取引全ての送金手数料の合計ですので、送金手数料を高く支払ってくれる取引から優先してブロックに取り込まれます。

一方、できるだけ早く取引を決済したい人は、手数料を高めに設定して取引要求するでしょう。

その結果、手数料を高く設定する人ばかりが決済され、ますます手数料が高騰していくことになるのです。

2. スケーラビリティ問題に自分で対処できるのか?

自分自身をコントロールする

スケーラビリティ問題が発生すると、通常よりも送金に時間がかかります。特に取引所からの入出金などでは、機会損失になってしまうこともあるでしょう。

ここでは、前章で紹介した問題に対して、ユーザーが対応できる方法を紹介します。

もう送った人は手遅れ!
承認待ちとなっている取引に手数料を後から上乗せすることは非常に難しく、一般の利用者では不可能に近いです。筆者も試みてみましたがうまくはいかなかったので、手数料をいくらにするのかは、送金する前に確認するようにしましょう。

2-1. 送金速度の低下への対処

送金が滞るようになってきたと感じた場合は、以下の手順で対処します。

トランザクションの状況を確認し、承認されているなら待つ

blockchain.comで、トランザクションの状況を確認しましょう。

ブロックエクスプローラ1

送金元もしくは送金先のアドレスを入力して検索すれば、トランザクションの状況が確認できます。

ブロックエクスプローラ2

すでにブロックに含まれていれば、しばらくすれば承認されます。もし含まれていない場合は、次のブロックに取り込まれるか、そうでなければ通常よりも長く待つしかありません。

手数料を確認し、相場に合わせる

送金が送れるのは、設定した手数料が現在のトレンドと乖離してしまっていることが考えられます。

blockchain.comのトップページに平均的な手数料(平均料金)が表示されていますので、自分が設定した手数料と比較してみましょう。次回からの手数料を見直すヒントになります。

ブロックエクスプローラ3

2-2. 手数料の高騰への対処

手数料が高すぎる状態になってしまっている場合は、承認を待てる時間と手数料のバランスを確認しつつ、しばらく取引を控えることも重要です。

ビットコインであれば、bitcoinfees.earn.comを確認すれば、手数料と承認時間の状況を確認することができます。

bitcoinfees.earn.comの見方

例えば、データサイズ1byteあたり9~10satoshiの手数料を設定しているトランザクションは、最大で45分程度待つ予測となっています。

ビットコインの手数料

手数料を増やしていくと、予測待ち時間が短くなります。このサイトでは、送金が遅延しない(待機時間がゼロの可能性が高い)部分が緑色のバーになっています。

ビットコインの手数料(ベスト)

この時点では、1byteあたり31-32satoshiの手数料が送金をスムーズに行える最安値と判断できます。

ブロック1つあたりのデータ容量は226bytesくらいなので、送金時に設定する手数料は以下となります。

32satoshi × 226 bytes = 7,232 satoshis

計算が面倒な時は

ページの下部には、英文ですが上記の内容を記載した「Which fee should I use?(どの手数料を使うべきか)」があります。

The fastest and cheapest transaction fee is currently 32 satoshis/byte, shown in green at the top.
For the median transaction size of 226 bytes, this results in a fee of 7,232 satoshis.

(一番上にある緑色(のバー)を見ると、最も早く最も安いトランザクション手数料は、現時点では1byteあたり32satoshiです。トランザクションサイズの中央値が226byteなので、手数料の(最良の)結論は7,232satoshiです)

計算が面倒な場合は、この解説を読むと最適な手数料がすぐにわかります。

2-3. 手数料を見直す方法

手数料を見直して送金遅延を招かないためには、前述の2つの対処とともに手数料と決済速度の関係を理解することが重要です。以下の記事で詳しく説明していますので、ぜひご確認ください。

3. スケーラビリティ問題の解決策

スケーラビリティ問題が引き起こす現象に対して、ユーザー側で対処する方法は、決済速度と手数料の折り合いをつけることしかありません。

ブロックチェーンの開発を進めている人たちは、そんな状態を打破するため、次のような解決策を提案、実施しています。

ブロックサイズを拡張する
ブロックサイズを大きくすることで、1度に処理できる取引数を多くする方法です。
トランザクションを縮小する
取引に相当するトランザクションのサイズを小さくすれば、ブロックに収まる取引数が増えますので、1度に処理できる取引数を多くすることができます。
ブロック生成時間を短くする
ブロックの生成時間が短くなれば、それだけ承認速度が速くなりますので、ブロックに格納されるのを待っている取引の数が減るでしょう。
ブロックチェーンの外で決済する
複数の取引をブロックチェーンの外にある「サイドチェーン」で処理し、最終結果だけをブロックチェーンに書き込むことで、1度に処理できる取引数を増やす方法です。

サイドチェーンや、ブロックサイズの拡張とトランザクションの縮小を合わせて行う「Segwit」については、以下の記事でより詳しく解説しています。

まとめ

スケーラビリティ問題は、処理できる取引量の上限を超えた取引が発生した場合に起こる問題です。

いろいろな対策がとられていますが、仮想通貨のユーザー数や流通量とのバランスによって再発する対策が多く、人気のある仮想通貨ではいたちごっこになってしまっているのが現状です。

  • スケーラビリティ問題は処理できる取引数の上限を超える数の取引が発生したときに起こる
  • スケーラビリティ問題によって、決済に時間がかかる
  • スケーラビリティ問題によって、決済が行われない場合もある
  • スケーラビリティ問題は手数料の高騰を招く
  • スケーラビリティ問題には、保留中の取引数や手数料の平均額などを知ることで対処できる
  • スケーラビリティ問題への根本的な対処は、すでに提案・実施されている

今回挙げたスケーラビリティ問題の解決にはもう少し時間がかかると思われますが、情報を集めさえすればユーザーでも対処できる方法はあります。焦らずに冷静に対処していくようにしましょう。