アルゴランド、最新アップグレードでパフォーマンスを5倍に向上



アルゴランド、最新アップグレードでパフォーマンスを5倍に向上


Algorandの最新のメジャー・プロトコル・アップグレードの一環として、ブロックチェーンは5倍のパフォーマンス向上で6,000TPSに、ラウンドタイムが最大10%ほど減少して4秒以下になります。アルゴランドのブロック・スペースへの需要が高まる中、エンドユーザーが基礎となるブロックチェーンではなく、dAppsのUXに集中できるよう、採用曲線の先端に立ちたいと考えています。アルゴランド・エコシステムのアプリは、いつも通り、基礎となる技術が「ただ普通に動く(just works)」ことに安心感を持つことができます。


これがどのように達成されたのか、そして今後何を期待すべきなのかを掘り下げてみましょう。



パフォーマンス・レバー


ブロックチェーンは、トランザクションを定期的に「ブロック」にグループ化し、それをリンクしてチェーンを形成することで機能します。歴史的に、私たちの業界では、1秒間に処理できるトランザクションの数(TPS)でパフォーマンスを測定してきました。


この分野で最もわかりやすい3つのレバーを引くと、次のようになります。


  1. ブロックのサイズを大きくする:各ブロック内でより多くのトランザクションを処理するためのスペースを追加する。

  2. トランザクションのサイズを小さくする:トランザクションを小さくして、1ブロックにより多く収まるようにする。

  3. レイテンシーを減らす:ブロックをより頻繁に生成し、1秒間に処理できるトランザクション数を増やす。


余談ですが、これらのレバーのバランスは非常に重要です。1日に1つのブロックを確定するブロックチェーンは、それでも非常に高い「TPS」を持つことができます。例えば、ブロックが864,000,000件のトランザクションを保持していても、86,400秒(1日)に1回しかファイナライズしない場合、10,000TPSを主張することができます。明らかに、計算上は正しいのですが、これはエンドユーザーが楽しんで使えるブロックチェーンではありません。


アルゴランドの3.9アップグレードでは、ブロック・サイズを5MiBに拡大し、平均ラウンドタイム(ブロック・レイテンシー)を4秒未満に短縮しました。より多くのトランザクションを各ブロックに収め、より頻繁にブロックを生成することで、アルゴランドブロックチェーンはピーク時のスループットでブロックあたり約26,000トランザクションを処理できるようになり、6,000TPSに換算されるようになりました。



テクニック


ブロック・サイズは通常、ブロックを処理する能力(ノードのハードウェア)と、ブロックを望ましい速度で伝搬させる能力(ブロック/ネットワークのレイテンシー)の2つの要素によって制限されます。


より大きなブロックを処理するために重要なのは、メモリに必要なデータです。アルゴランドのコンセンサス・セキュリティは、アカウントの状態履歴にアクセスする必要があり、以前のバージョンでは、その状態履歴はメモリに保存されていました。ブロックが大きくなると、より多くのアカウントがアクティブになり、各ノードはより多くのデータをメモリに格納する必要があり、ノードのメモリ制限を圧迫することになります。バージョン3.9では、このメモリ負荷を軽減する大幅なメモリ最適化を導入し、重要な履歴データをディスクに保存することで、同じハードウェアでより大きなブロックを安全に生成できるようになりました。


ブロック・サイズが大きくなると、グローバル・ネットワーク上でより多くのデータをアセンブル、伝搬、検証するのに時間がかかるため、ラウンドタイムが遅くなる(レイテンシーが増加する)可能性もあります。このようにブロック・サイズが大きくなっても、伝搬バッファによって、平均ラウンドタイムを安全に500ms程度短縮することができました。



次の目標は?


私たちの主なパフォーマンス目標の1つは、10,000 TPSを処理することです。ブロック・サイズを最適化した後の次の大きな目標は、エンドユーザー体験をさらに向上させ、将来の採用に向けてより多くのTPSを提供するために、ラウンドタイムの短縮を継続することです。


我々のアプローチは、各ラウンドを3つのフェーズに分割して考えます。


  1. ブロック・アセンブリ(トランザクションをブロックにまとめる)

  2. ブロックの伝搬(ブロック・データを分散したノード・ネットワークに送信する)

  3. ブロックの検証(勝利したブロックの提案が有効かどうかをチェックする)


これら3つのフェーズはそれぞれ最適化することが可能であり、私たちはその実現に向けて取り組んでいます。私たちが積極的に検討しているオプションのいくつかを紹介します。


  1. 計算の高速化:ブロックの提案と検証を高速化し、ブロックの組み立てと検証に必要な時間を短縮することができます。

  2. 投機的アセンブリ:ブロックの組み立てと検証を並列化し、前のブロックの検証中に次のブロックの組み立てを行うことで、トータルの所要時間を短縮します。

  3. ネットワークの高速化:ブロック提案の投票に必要な情報を参加ノードに迅速に配信し、提案の到着を待つ時間を短縮します。


私たちのチームは、これらの各コンポーネントを最適化し、将来のプロトコル・アップグレードでより速いラウンド時間(およびより高いTPS)を達成することに注力しています。


アルゴランドの最新のアップグレードの詳細については、バージョン3.9のリリース・ブログをご覧ください。



元記事:https://developer.algorand.org/articles/algorand-boosts-performance-5x-in-latest-upgrade/