ブロックチェーンの処理速度の計算式

こんにちは、ロードローラーです。本日はブロックチェーンの弱点といわれている処理速度についてまとめました。





現在のブロックチェーン仕様では最大7tps(取引/秒)

まず、ブロックチェーンのキラーコンテンツであるビットコイン仕様では最大7tps(取引/秒)とされています。これはどのようにして計算されているのでしょうか?

ポイントは以下3点です
・ブロック承認時間
・最大ブロックサイズ
・トランザクションの平均サイズ

ブロック承認時間
採掘者たちによってブロックが生成されるまでの経過時間。

採掘と呼ばれるブロック生成作業は、Nonce値を総当たりで変更しながらハッシュ計算を繰り返して、条件を満たすハッシュ値を見つけ出すというマシン処理性能にモノを言わせた単純作業です。そのため条件設定によって難易度を調節できます(例:ハッシュ値の先頭にゼロがX桁並ぶなど)。こうしてブロック承認時間を設定します。

ブロック承認時間は長すぎると取引がいつまでも完了しません。かといって早すぎると同時に採掘完了するユーザが大量発生してしまい、ブロックの正当性確認や合意形成のプロセスに時間がかかり過ぎてしまいます。これらの背景からバランスが重要と言われています。

最大ブロックサイズ
1つのブロックに格納できる取引データ量。

ブロック承認時間が10分だった場合に、10分間に最大ブロックサイズを超える量の取引が発生すると、ブロックに格納しきれず後回しにされてなかなか完了できない取引が出てきます。実際にブロックサイズ問題はビットコインで顕在化しており、ブロックサイズを大きくするための議論が何度もされています。

トランザクションの平均サイズ
1取引あたりのデータ量。これは特に説明不要ですね。


というわけで、現在仕様と照らし合わせてこれらを基に計算すると
・ブロック承認時間:600秒
・最大ブロックサイズ:1MB
・トランザクションの平均サイズ:250Byte
 
1,024 × 1,024(バイト)/(250(バイト)× 600(秒))≒ 6.99(取引/秒)
 
ただしトランザクションの平均サイズが300Byteとも言われていて、計算しなおすと
 
1,024 × 1,024(バイト)/(300(バイト)× 600(秒))≒ 5.83(取引/秒)
 

…………遅っ!!!

※ちなみにVISAカードの性能は最大45,000tpsと言われていて、このことからもブロックチェーンが比較的に遅いのがよくわかります。

 

ブロックチェーンの活用案として、開発用にユーザ情報やセンサ情報を取引するといったことが提案されていますが、そのためにはプライベートブロックチェーンにして仕様変更しないと難しいのかもしれませんね。。。

※ここでいう仕様変更とは
(1)最大ブロックサイズを増やす
(2)トランザクションのサイズを削減する
(3)ブロック承認時間を短くする

過去のブロックチェーン記事

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください