The SKALE Networkは、構成変更可能なエラスティックサイドチェーンであり、パブリックメインネットのような高いトランザクションコストを必要としない、高スループット・低レイテンシーなトランザクションに対応しています。このネットワークは大容量のストレージ機能を提供する他、Ethereumメインネットとの接続機能やチェーン間メッセージング機能が組み込まれています。これらを実現するのは、プール機能付きトランザクション検証機能、そして優れた効率性・拡張性・結託耐性に優れたセキュリティモデルです。

The SKALE Networkの技術概要の一部は以下の通りです。各項目の詳細については「SKALE Network Whitepaper」をご参照ください。

  • ゼロまたはゼロに近いガス手数料
  • ランダムなノード選択/高頻度のノードローテーション
  • 仮想化されたサブノート
  • コンテナ化されたバリデータノード
  • Asynchronous Binary Byzantine Agreement(ABBA)を通じたコンセンサス
  • BLSロールアップ
  • ノードの監視
  • Ethereumとの相互運用性

ゼロまたはゼロに近いガス手数料

SKALE Networkは、SKALEチェーンのリソースが特定のしきい値以下である限り、そのサイズを問わず、ガス手数料がゼロです。ゼロまたはゼロに近いガス手数料の体系は、分散型アプリケーションを構築し運用する上で、重要なメリットをもたらします。ブロックチェーンのガス手数料によるフリクションは、ユーザーアダプションや収益性の高いユースケースの構築において、大きな阻害要因になっています。こうしたコストを前提から排除することで、市場開拓のハードルが大幅に下がり、普及率が向上し、より優れた分散型ソリューションを実現可能になります。

SKALEチェーンのコンテナは、特定の処理量に達するまではガス手数料がゼロで、負荷に応じて比例的に処理を行えるよう、各コンテナにCPU、メモリ、ディスクサイズが割り当てられます。そして特定の処理量に達すると、ガス手数料が発生します。こうしてリソースを随時切り替えることで、2つのメリットがあります。1つはサービス拒否(DoS)攻撃を予防できる点。もう1つは、SKALEチェーンのサイズを拡張する必要性をユーザーに伝えられる点です。(後者は、AWSでt2.microからm3.largeに移行したりなど、クラウドサービスで上位プランに移行する際に似ています)

ランダムなノード選択 / 高頻度のノードローテーション

バリデータノードは、メインネットコントラクトが調停するランダムな手順により、エラスティックサイドチェーンに割り当てられます。チェーンコンセンサスのセキュリティは、頻繁にノードをローテーションすることでさらに向上します。各ノードは、非決定論的なスケジュールに基づき、1つまたは複数のチェーンから解除され、新しいノードが追加されます。このローテーションは、メインネットに対して継続的に照合処理を行うノードコアにより実行されます。現行のチェーンから離脱したノードは、メインネットコントラクトとそのランダムな割り当てアルゴリズムの判断に従い、新しいチェーンと接続され、そこで処理を再開します。

SKALEチェーン内のノードは定期的かつランダムにローテーションされますこれにより、各チェーンのためにネットワーク全体のセキュリティプールを活用することが可能です

仮想化されたサブノード

各エラスティックサイドチェーンを構成するのは、無作為に指名された仮想化サブノートの集合体で、これらがSKALEデーモンとSKALEコンセンサスを実行します。SKALE Networkのノードは、単一のチェーンに限定されるものではなく、仮想化サブノートを用いることで、複数のサイドチェーンで動作することができます。こうした多重化機能は、コンテナ化サブノートのアーキテクチャを、ネットワークの各ノードに展開することで実現しています。各ノードは仮想化されており、サブノードのアーキテクチャに基づき、バリデータとして、それぞれ個別の数のサイドチェーンに加わることが可能です。

バリデータノードは仮想化サブノートとノードコアで構成されます

コンテナ化されたバリデータノード

仮想化サブノートは、産業グレードのパフォーマンスと選択の自由を分散型アプリケーションの開発者に提供する、革新的なコンテナ化アーキテクチャにより実現されています。そのパフォーマンスと柔軟性は、従来の中央集権型のクラウドシステムやマイクロサービスシステムに匹敵します。各コンテナは、Docker化したLinux OSによりカプセル化された複数の主要コンポーネントに分割されていることから、OSに依存しない方法で各ノードをホストすることが可能です。

エラスティックサイドチェーンはサイドチェーンの規模に応じてリソースの一部分かノード全体を使うことができます ‌‌

Asynchronous Binary Byzantine Agreement(ABBA)を通じたコンセンサス

各エラスティックサイドチェーンにおいて、ブロックチェーンの作成とコミットのために使用されるコンセンサスモデルは、Asynchronous Binary Byzantine Agreement(ABBA/非同期バイナリビザンチン合意)プロトコルの一種です。(Mostefaouiやその他の実装から派生したものです。ただし、特定の性質を満たしている限り、他のコンセンサスプロトコルを使用することも可能です)。ABBAプロトコルの長所は、サブノードが故障し、潜在サブノードおよび/または故障サブノートがスローリンクとみなされた場合においても、安定性を維持できるよう設計されている点です。プロトコルの詳細はこちらをご覧ください。.

ABBAコンセンサスプロトコル

BLSしきい値署名を用いたチェーン間メッセージング機能

各エラスティックサイドチェーンは、チェーン間メッセージング機能に対応する上で重要な、BLS(ボネ・リン・シャチャム)しきい値署名に対応しています。各チェーンの仮想化サブノートは、別のチェーンのサブノートが署名・コミットしたトランザクションを、そのチェーンによるグループ署名を用いて検証することが可能です。この署名は、Ethereumメインネットに公開することで、他のすべてのチェーンが利用できるようになります。

このメッセージング機能はマイクロサービスモデルに類似しており、サイドチェーンが1つまたは複数の特定の処理を実行すると、その出力は直接別のチェーンに受け渡されるか、メッセージキューに預けられた上で(Ethereumメインネットなど)、別のサイドチェーンやそこで必要な処理に対する入力として利用されます。SKALEのチェーン間メッセージング機能は、ETH、ERC20、ERC721、ERC777、Daiなど、Ethereumのあらゆる主要なトークン標準に対応しています。

BLSロールアップ

各サイドチェーンは、効率的かつ安全にSKALE Networkを利用できるBLSロールアップ(BLS Rollups)にも対応しており、これにより、Ethereumメインネットのスループットが改善され、ガス手数料が抑制されています。ロールアップとは、トランザクションの公開はチェーンで行う一方、ガス手数料を節約するために、トランザクションの計算とトランザクション結果の保管は別の場所で行うソリューションと一般的に定義することができます。BLSロールアップでは、ETHのトランザクションサイズを圧縮するために、BLS集約署名(aggregated BLS signature)と呼ばれる暗号アルゴリズムが用いられます。

BLSロールアップをSKALEに組み込む作業は、3段階の開発からなり、このうち第1段階では、ERC-20トークンの転送について、毎秒50件までのトランザクションを処理できるようになります。それ以降の段階では、トランザクションの性能指標をさらに改善する予定です。BLSロールアップの仕組みやロードマップについて詳しい概要を知るには、こちらをご覧ください。

補足:BLSロールアップの他にも、楽観的ロールアップ、(Optimistic Rollups)やZKロールアップ(ZK Rollups)などのロールアップ手法が存在します。楽観的ロールアップは、誤った結果をチェーンに公開できる点で問題があります(これに対処するには、トランザクション後に苦情処理を行うしかありません)。ZKロールアップは、チェーン上でステートフルな正当性を担保できるという点で、楽観的ロールアップより技術的に優れています。ただし、ZK-S*arkの処理は計算の負荷が大きく、トランザクションの完了に何時間もかかるといった問題が生じることがあります。BLSロールアップは、超高速なBLS暗号を用いているという点で、より現実的なソリューションとなっています。

 BLSロールアップは他のロールアップ方式に対して大きな利点を備えています

ノードの監視

Node Monitoring Service(NMS/ノード監視サービス)は、それぞれのSKALE Node上で動作し、ネットワーク上の一定数の他ノードの性能追跡を円滑化することができます。性能追跡においては、一般的な手順に従い、各ピアノードをPingして、測定値をローカルデータベースに記録することで、アップタイムとレイテンシーが計測されます。各期間の終わりには、これらの指標の平均値が計算され、メインネット上のスマートコントラクトに送信されます。スマートコントラクトはこうした数値を用いて、ノードへの支払い配分を決定したり、審査やペナルティの必要性がありそうなノードに印をつけたりします。

各ノードのノードコアはネットワーク内の他ノードの性能を分析・スコアリングします

Ethereumとの相互運用性

The SKALE Networkは、セキュリティおよび運用モデルを提供する上で、Ethereumネットワークと密接に結び付く「セキュリティおよび実行」レイヤーとして設計されています。ノードの処理を管理するスマートコントラクトは、全てEthereumメインネット上で実行されます。さらに、Ethereumメインネットで動作するスマートコントラクトは、バリデータのステークやユーザーのサブスクリプションの他、言うまでもなくトークンのインフレーションを管理し、制御することができます。

Solidityへの対応

SKALE Networkは、コントラクト言語としてSolidityを利用しており、開発者は新しい言語を学ぶ必要がありません。Solidityは、スマートコントラクトの実装を目的とするオブジェクト指向の高レベル言語です。C++、Python、JavaScriptに影響を受けており、Ethereum Virtual Machine(EVM/イーサリアム仮想マシン)をターゲット環境としています。

Ethereum EVMとの互換性

SKALEの実行モデルは、Ethereum Virtual Machine(EVM)と完全な互換性があり、Ethereumメインネットで動作するスマートコントラクトであれば、SKALE Networkでも動作可能になっています。スマートコントラクトを書き直したり移植したりする必要はありません。EVMのために記述されたコードなら、SKALEでも実行可能です。したがって開発者は、ニーズとメリットに応じて、スマートコントラクトを個別にSKALEに移行することが可能です。このように、SKALEのエラスティックサイドチェーンへのマイグレーションは、段階的に実行することができます。

開発者ツールへの対応

SolidityとEthereum VMに対応していることから、Ethereumの開発ツールとも親和性があります。開発者は、web3.jsとweb3.pyを介してネットワークに接続したり、TruffleやRemixなどのツールを使用したりなど、Ethereumメインネットの作業と同じツールを使用することができます。

トークンへの対応

SKALE Networkは、ETH、ERC20、ERC721、ERC777、Daiなど、Ethereumのあらゆる主要なトークン標準に対応しています。チェーン間メッセージング機能や、デポジットボックス(deposit box)、トークンクローンが、SKALE Networkに対するトークン処理の完全性と忠実性を保証しています。

一般的なウォレットへの対応

SKALE Networkは、数々の主要暗号通貨ウォレットやブラウザのプラグイン、ブリッジに対応しています。Bitski、Fortmatic、Metamask、Portis、Torusなどがその例です。これらのインターフェイスコンポーネントは、コミュニティーで高い評価を受けており、何千人もの開発者に利用されています。

SKALE Networkについて

The SKALE Networkは、オープンソースのエラスティックなブロックチェーン・ネットワークプロトコルです。その使命は、フルステートなスマートコントラクトが動作する、費用対効果と性能に優れたサイドチェーンを、迅速かつ容易に構築できるようにすることです。The SKALE Networkは、スピード・機能性とセキュリティ・分散化を両立することが可能である、高パフォーマンスな体験を開発者たちに提供することを目指しています。SKALE Networkのフォローは、Telegram(@SkaleOfficial)、Twitter(@SkaleNetwork)、Discord(www.skale.chat)まで。SKALEの公式サイトはこちら(www.skale.network)。開発者向けドキュメントを読むにはSKALE Developer Portal(skale.network/docs)、コードを見るにはGithub(github.com/skalenetwork)をご覧ください。