QuarkChainの説明、パート1:ブロックチェーンスケーラビリティとQuarkChainの簡単な紹介
われわれが知っているように、ブロックチェーンは現在、1秒あたりのトランザクション数(TPS)が低いという問題を抱えています。たとえば、Bitcoinは6〜7TPSしか処理できません。
Ethereumは現在、約15TPSの処理を行っていますが、Alipay(中央集権型の支払いシステム)は2017年11月11日に200,000+ TPSを提供することができました。ブロックチェーンの低いTPSにより、そのブロックチェーン上にある様々な多くのアプリケーションの用途などはかなり制限されてしまいます。
集中型システムは今日では膨大なTPSを提供することができますが、インターネットユーザーの膨大な人口のために、スケーラビリティは中央集権型の世界の重要な問題でした。
すべてのインターネットユーザーのニーズを満たすために数年間にわたって、GoogleやFacebookなどのIT企業の多数の研究者やエンジニア、オープンソースコミュニティ、学界がスケーラビリティに関する膨大な努力とリソースを費やし、さまざまなスケーラブル性が高いシステムを作成・検証しています。
注目すべきプロジェクトとして、Google File System、BigTable、Hadoop、Cassandraなどがあります。
QuarkChainは上記の技術を採用してブロックチェーンのスケーラビリティ問題に対応することを目指しています。しかし、これらの中央集権型のスケーラビリティ技術のうち、その多くは分散型の世界に最適ではなく、直接適用することはできません。
「分散性」「安全性」というブロックチェーンの価値を維持しながらスケーラブルにするには、ブロックチェーンに最適なテクノロジーを慎重に選択し、それらを統合し、分散型の世界に適用する必要があります。
このような方法は分散型の世界では前例がないので、インフラをゼロから構築しなければならないということを意味します。しかし、私たちのチームメンバーは、スケーラブルなシステムの設計、テスト、保守、最適化に豊富な経験を持っているGoogle、Facebook、Uberのシニアソフトウェアエンジニアです。
独自の経験と背景により、中央集権型システムにある多くの落とし穴を開発の速い段階で回避しつつ、QuarkChainを非常に速いペースで開発することができます。
今後、QuarkChainの背後にあるスケーラビリティ技術について詳細に議論するために、まず、中央集権型世界のスケーラビリティの歴史を簡単に振り返りましょう。
中央集権型の世界におけるスケーラビリティの歴史
インターネットの時代(2000年代)の以前、成長するサービスのパフォーマンスのニーズを満たすために、主に垂直方向のスケーラビリティ(またはスケールアップ)と呼ばれるスケーラビリティの一般的な方法が多く利用されてきました。垂直方向のスケーラビリティの基本的な考え方は、より高度で高価なハードウェアを配置して単一のノードシステムを改善することです。以下のようにスケーラビリティを向上させてきました。
• 計算のボトルネックに対してより高速なCPUを追加する。
• メモリ/キャッシュのボトルネックのためにメモリを追加する。
• ストレージのボトルネックのためにより多くの、または、より高速なディスクを追加する。
異なる分野での垂直方向のスケーラビリティのエキスパートとして数社が挙げられます。
• データベースで有名なOracle
• ワークステーションで有名なSUN
• ストレージで有名なEMC
垂直方向のスケーラビリティの主な利点は、管理するのが比較的簡単であることです。単にリソースを追加するだけで済みます。しかし、いくつかの大きな欠点があります。
• 垂直方向のスケーラビリティの先行コストは高くなる可能性があります。たとえば、EMCストレージのエントリーレベルでさえ、PCよりもはるかに高価になります。
• キャパシティが限界に近づいて、さらにキャパシティを追加しようとすると多くのコストがかかります。ハードウェアリソースには物理的な限界があるため、垂直型システムで容量を2倍にするには、ほとんどの場合で単純にコストを2倍する以上のリソースを必要とします。たとえば、2018年6月11日のark.intel.comからリリースされた、Intel Xeon E5-1620 v4(4コア、コアあたり最大3.80GHz)は約300ドル(合計15.2GHz、GHzあたり19.7ドル)で、Intel Xeon E5-1680 v4(8コア、コアあたり最大4.00GHz)は、約1723ドル(32GHz、1GHzあたり53ドル)です。
インターネットアプリケーションの爆発的な増加に伴い、ユーザー数は時間の経過とともに指数関数的に増加し、垂直方向のソリューションによるサービス提供は非常にコストがかかり、時には不可能にもなります。グローバルなユーザーにおけるサービスニーズを満たすために、GoogleやFacebookなどのIT企業は、PCの上に大規模な分散システムを構築することでスケーラビリティの問題に対処する「水平スケーラビリティ(スケールアウト)」を実現しています。これにより、次のような主な利点がもたらされます。
• 先行コストの削減。新規のサービスでは、初期段階でユーザー要求を満たすのに少数のノードを設定するだけで済みます。
• 直線的スケール。より多くのノードを追加することにより、システム容量は直線的に増加します。これは、ユーザー数の増加に伴ってコストを追加(ノードを追加)することで、オンデマンドでシステム容量を増やすことができることを意味します。
いくつかの有名なシステムが設計され、大規模な水平方向のスケーラビリティが提供されています。
• Googleファイルシステム(ストレージ)
• GoogleのBigTable(Key-Valueストア)
• GoogleのMapReduce(計算)
• HadoopのHDFS、HBase、MapReduceなどのいくつかのGoogleのシステムオープンソース
• カサンドラ(Key-Valueストア)
このようなシステムを実現する重要な技術は、グローバルシステム状態を複数の比較的独立したサブ状態(シャード)に分割し、各サブ状態を並列に処理する複数のノードを持つクラスタを構築する「シャーディング」 です。優れたシャーディング設計では、クラスタ内にシャードとノードを直線的に追加することで、システム容量を増やすことができます。
分散型の世界におけるスケーラビリティ
ブロックチェーンのスケーラビリティは、前述した「中央集権型の世界でのスケーラビリティの歴史」から恩恵を受けることができると考えています。(ここではオンチェーンソリューションについてのみ説明します)。
• 現在、ほとんどの既存のオンチェーンソリューションは、単一のブロックチェーンのパフォーマンスを向上させることを目的としています。これを垂直方向のスケーラビリティソリューションと呼んでいます。
• たとえば、BTCには600sのブロック間隔と1Mのブロックサイズがあります。LTCはブロック間隔を600秒から150秒に短縮することでBTCより性能を改善し、BCHは1Mブロックサイズを8Mに増加させることでBTCより性能を改善させています。しかしながら、グローバルなP2Pネットワークの伝搬の限界のために、ブロック間隔をさらに減少させる、または、ブロックサイズを増加させることは失効ブロックが生成する確率を増加させてしまいます。したがってハッシュパワーを無駄にすることを意味します。
• シングルブロックチェーンの容量をさらに増やすために、最新のブロックチェーンでは、コンセンサスアルゴリズムの改良や新しいコンセンサスアルゴリズムの開発(PoSやdPoSなど)が行われています。この方法による改良の2つの大きな例として、EthereumのGHOST実装とEOSのdPoS(EOSのdPoSでは21ノード(またはブロックプロデューサ)のみがチェーン内にブロックを生成)があります。
• 集中化されたシステムと同様、P2Pネットワークとフルノードの物理的な制約ために、ブロックチェーンの垂直方向のスケーラビリティは限界に近づいていると考えています。グローバルな商業的ニーズを満たすブロックチェーンを構築するには、すでに中央集中型システムで成功を収めている水平方向のスケーラビリティが必要だと考えています。ブロックチェーンの水平方向のスケーラビリティの基本的な考え方は、単一のブロックチェーンの状態を複数のブロックチェーンの状態、すなわちシャードに分割することです。各ブロックチェーン(シャード)は比較的独立してトランザクションを処理でき、各シャードは別のシャードとシームレスに接続できます。ネットワーク内のシャード数を増やすことによって、ブロックチェーンのネットワークスループットが直線的に増加します。
QuarkChainはブロックチェーンの水平方向のスケーラビリティ技術(シャーディング)をもって、誰でもいつでもどこでも使用できるブロックチェーンを構築します。以下の記事では、QuarkChainテクノロジーの詳細と、対応する中央集権的世界におけるインスピレーションについて説明します。トピックは次のとおりです。
• QuarkChainがシステム状態をどのように分割するのか?
• QuarkChainが分散型ですべてのシャードを動かすコンセンサスを開発しながら、二重支出攻撃、ブラックリスト攻撃などのさまざまな攻撃からネットワークをどのように保護するのか?
• QuarkChainがクロスシャードトランザクションを効率的かつ安全に実行する方法は?
• QuarkChainがどのようにスマートコントラクトに対応するのか?
• QuarkChainがどのようにスーパーフルノードをノードクラスタに置き換えるのか?
また、QuarkChainネットワークで直面している未解決の問題をいくつか挙げて、システムの改善の方向性について議論します。私たちはQuarkChainに関する建設的なフィードバックや提案を心から歓迎します。
ウェブサイト
https://www.quarkchain.io
テストネット
https://testnet.quarkchain.io/
英語テレグラム
https://t.me/quarkchainio
日本語テレグラム
https://t.me/QuarkChain_Japan
Twitter
https://twitter.com/Quark_Chain
日本公式Twitter
https://twitter.com/quarkchainjp
Medium
https://medium.com/quarkchain-official
日本語Medium
https://medium.com/@quarkchainjp
Reddit
https://www.reddit.com/r/quarkchainio/
Steemit
https://steemit.com/@quarkchain
日本語Steemit
https://steemit.com/@quarkchainjp
Weibo
https://weibo.com/QuarkChain