Skip to main content
QUICK REVIEW

[論文レビュー] Concurrency Protocol Aiming at High Performance of Execution and Replay for Smart Contracts

Shuaifeng Pang, Xiaodong Qi|arXiv (Cornell University)|May 17, 2019
Distributed systems and fault tolerance参考文献 21被引用数 9
ひとこと要約

本論文は、バッチ処理に配慮した最適化コンcurrency control(OCC)の変種と、グラフ分割に基づくスケジュールログ分解を用いて、マイニング(実行)および検証(再実行)の両フェーズを最適化する、スマートコントラクト向けの新規二段階コンcurrency制御プロトコルを提案する。この手法により、マイナーおよびバリデーターのパフォーマンスが最大11倍向上し、通信オーバーヘッドは約90%削減され、最先端のソリューションを著しく上回る性能を達成する。

ABSTRACT

Although the emergence of the programmable smart contract makes blockchain systems easily embrace a wider range of industrial areas, how to execute smart contracts efficiently becomes a big challenge nowadays. Due to the existence of Byzantine nodes, the mechanism of executing smart contracts is quite different from that in database systems, so that existing successful concurrency control protocols in database systems cannot be employed directly. Moreover, even though smart contract execution follows a two-phase style, i.e, the miner node executes a batch of smart contracts in the first phase and the validators replay them in the second phase, existing parallel solutions only focus on the optimization in the first phase, but not including the second phase. In this paper, we propose a novel efficient concurrency control scheme which is the first one to do optimization in both phases. Specifically, (i) in the first phase, we give a variant of OCC (Optimistic Concurrency Control) protocol based on {\em batching} feature to improve the concurrent execution efficiency for the miner and produce a schedule log with high parallelism for validators. Also, a graph partition algorithm is devised to divide the original schedule log into small pieces and further reduce the communication cost; and (ii) in the second phase, we give a deterministic OCC protocol to replay all smart contracts efficiently on multi-core validators where all cores can replay smart contracts independently. Theoretical analysis and extensive experimental results illustrate that the proposed scheme outperforms state-of-art solutions significantly.

研究の動機と目的

  • ブロックチェーンシステムにおける効率的なコンcurrency制御の欠如が原因で生じるスマートコントラクト実行のパフォーマンスボトルネックを解消すること。
  • Byzantine、フルレプリカ、Turing完全なブロックチェーン環境には不適切な、従来のデータベースコンcurrency制御プロトコルの制限を克服すること。
  • 実行(マイニング)と再実行(検証)の両フェーズを最適化する統合型コンcurrency制御スキームを設計すること。
  • スケジュールログを分割することで、マイナーとバリデーター間の通信オーバーヘッドを低減しつつ、高い並列性を維持すること。
  • マルチコアバリデーター上で決定論的かつ高パフォーマンスな並列再実行を可能にする、新規のDeOCCプロトコルを提供すること。

提案手法

  • マイニングフェーズ向けに、バッチ処理に配慮した最適化OCCの変種を提案し、トランザクション実行における並列性を向上させる。
  • コンフリクトグラフ内のコンフリクトを解消するためのグリーディーなフィードバック頂点集合(FVS)アルゴリズムを導入し、スケジュールログの品質を向上させる。
  • バリデーター向けに通信効率の良いチャンクに分割できるスケジュールログを分割するためのグラフ分割アルゴリズムを設計する。
  • マルチコアバリデーター上で独立して並列に再実行できる、決定論的なOCCプロトコルであるDeOCCを開発する。
  • 分割プロセスにおけるタスク粒界とパフォーマンス・通信コストのバランスを制御するため、ワークロード閾値τを採用する。
  • パーティショニング済みログを用いた一貫性のあるリードセットを採用し、決定論的再実行を保証するとともに、データ転送量を最小限に抑える。

実験結果

リサーチクエスチョン

  • RQ1スマートコントラクト実行のマイニングおよび検証フェーズにおいて、コンcurrency制御をどのように効率的に最適化できるか。
  • RQ2バッチ処理とコンフリクトグラフ解析は、ブロックチェーンシステムにおけるスマートコントラクト実行パフォーマンスをどの程度向上させ得るか。
  • RQ3グラフ分割技術を用いることで、並列性を損なわずにマイナーとバリデーター間の通信オーバーヘッドを低減できるか。
  • RQ4提案されたDeOCCプロトコルは、マルチコアバリデーター上でどのように決定論的かつ高パフォーマンスな再実行を可能にするか。
  • RQ5ワークロード閾値τをチューニングする際、通信コスト削減とパフォーマンス劣化の間にはどのようなトレードオフが生じるか。

主な発見

  • 提案された方式は、マイナーおよびバリデーター両フェーズで平均11倍の高速化を達成し、最先端のソリューションを著しく上回る性能を示した。
  • グラフ分割アルゴリズムにより、通信オーバーヘッドは約90%削減された。これは、高いデータスケュー(例:スケュー = 0.7)下でも同様に成立する。
  • データスケューの変動に関わらず、11倍前後の安定した高速化が維持され、ワークロードスケューに対する高い耐性を示した。
  • ブロックあたりのトランザクション数が900を超えると、コンフリクト密度の増加によりパフォーマンスが劣化するが、依然としてシリアライズド実行を上回る性能を発揮した。
  • ワークロード閾値τはパフォーマンスにわずかな影響しか与えず、τが増加するにつれてわずかに高速化が低下するが、τ > 0.015の範囲では依然として効果的である。
  • パーティショニングアルゴリズムは高い並列性を維持しており、トランザクション数が少ない場合(例:ブロックあたり100件)でも、効率的なタスク配分によりほぼ最適な高速化(11倍)を達成した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。