並列化

中級者


並列化の概要

並列化(トランザクションの並列処理)は、複数のタスクを同時に処理する方法の1つです。並列化は、コンピューターサイエンスにおいて複数のプロセスを同時に実行する能力を表す概念である並列処理が基になっています。ブロックチェーン技術においては、並列化により、TPS(1秒あたりのトランザクション)数が増加し、ネットワーク全体のスループットが向上します。

並列化の仕組み

並列化では、複数のトランザクションを順番に(個別に)検証するのではなく、同時に検証できるようにネットワークが構築されます。並列化では、利用可能なネットワークリソースが用いられ、複数のノードにトランザクション実行タスクが分配されます。

並列化では、多くの潜在的なネットワークのステートが同時に調査され、それぞれが特定のトランザクションの検証結果を導きます。ステートの調査を実施することにより、各トランザクションが検証された場合に台帳及ぶ影響が判明します。調査が完了すると、ネットワークは共通のステートに到達し、並列検証の結果が反映されます。

並列化モデル

並列化モデルには、オプティミスティック並列化とステートアクセス並列化の2種類が存在します。

1. オプティミスティック並列化オプティミスティック並列化実行モデルでは、ネットワークはソート段階を経由せず、直接トランザクション処理に進みます。同モデルは、順番待ちのトランザクションは独立しており、誤った処理を修正するために立ち戻ることを前提に動作します。同モデルにおいて、トランザクション間に追加の依存状態が発生した場合、ネットワーク上でトランザクションが再処理されます。
2. ステートアクセス並列化ステートアクセス並列化実行モデルにおいては、最初に、トランザクションがネットワークのステートに影響を与える度合いに基づきソートされます。この際、特定のスマートコントラクトまたはアカウントとのインタラクションなどの要因が考慮されます。このようにしてソートされたトランザクションは、コンセンサスシステムに入力され、関連・非関連トランザクションに分けられます。関連トランザクションは処理前に調整され、処理速度の向上のためにガス代に基づき優先順位が付けられます。また、効率の最適化のために非関連トランザクションも同時に実行されます。

並列化によるメリット

トランザクション処理速度の向上

複数のノードに対するタスクの分配により、トランザクション実行時間が大幅に削減されるほか、トランザクション処理速度が向上します。この仕組みにより、並列化が実装されたネットワークは通常、順次処理モデルが用いられたネットワークよりも効率的となっています。

スケーラビリティ

並列化により、ネットワークノードに対しトランザクションの検証を分配することにより、ブロックチェーンの抱えるスケーラビリティ問題に対処できます。これによりトランザクション処理速度が向上し、水平方向のスケーリングが可能となります。水平方向のスケーリングとは、需要の高い期間にはノードを増やし、低い期間には減らすことによる、ネットワークのリソース拡大能力を指します。

ガス代の削減

並列化では、ノードのサブグループへのトランザクションの分配により、すべてのノードが各トランザクションの検証を行う順次処理と比較してコストが抑えられるため、ガス代の削減が実現します。また、トランザクション処理の高速化により検証における競争が減るため、1トランザクションあたりの手数料もさらに削減されます。

まとめ

並列化は、ブロックチェーンが抱えるスケーラビリティ問題解決への糸口となるトランザクション処理方法の1つとなります。並列化におけるトランザクションの同時実行および複数のノードへの検証分配の仕組みにより、ブロックチェーンネットワーク上で処理可能なトランザクション数の増加、ガス代の削減、処理時間の高速化につながります。