Internet Computer:ステートフルな非中央集権型サーバーレスコンピューティングを提供するブロックチェーン(日本語訳)

tokuryoo
DfinityJP
Published in
10 min readSep 28, 2023

DFINITY 公式の記事 The Internet Computer: A blockchain that offers stateful decentralized serverless computing (2023/8/16) の日本語訳です。

ブロックチェーンプラットフォーム上でサーバーレス計算は可能なのでしょうか?我々の最近の査読付き論文は、Internet Computer が既存のクラウドプロバイダーに匹敵するサーバーレス計算を提供し、さらに非中央集権化とステートフルという利点をもたらすことを示しています。

著者:Alexandru Uta

サーバーレスはクラウドコンピューティングの世界に旋風を巻き起こし、ここ数年で大きな成長を遂げ、将来の予測も実に明るい。最近の予測によると、この市場は 2028 年まで年平均成長率 20% 以上で成長すると予想されています。基本的に、サーバーレスアーキテクチャは、IT 自動化ソフトウェアを通じてクラウドベースの技術のその潜在能力を最大限に引き出し、企業が IT インフラ管理に時間とリソースを費やすのではなく、成長を推進することを可能にします。

これは非常に有望に聞こえますが、サーバーレスクラウドプラットフォームは依然としてステートレスで中央集権的です。したがって、アプリケーションはステートを保存するためにこの欠点を回避し、ベンダーロックインを避ける必要があります。Internet Computer は、セキュリティ、コントロール、トラストのもう1つの層を提供します。それはすべて、単一の当事者がハードウェアやソフトウェアをコントロールしない非中央集権化によって実現されます。さらに、Internet Computer は、設計上ステートフルに動作します。

この投稿では、Internet Computer のブロックチェーンが、サーバーレスコンピューティングの機能を、非中央集権化とステートフルという2つの重要な追加の利点とともに提供する方法について説明します。

サーバーレスとは何か?

サーバーレスとは、適切な仮想マシンのプロビジョニングやスケーリング、ソフトウェアやフレームワークのインストールやメンテナンスといった基盤となるインフラを気にすることなく、迅速でアジャイルな開発サイクルを可能にし、全体的な運用コストを削減する新しいクラウドコンピューティングパラダイムです。サーバーレスにはいくつかの形態があるが、我々のケースに最も関連するのは、function-as-a-service(FaaS)であり、(大規模なコードベースが)非常に短い時間(ミリ秒から数分)で実行される小さなファンクションに分割されます。関数は使用ごとに(つまり実行時間に応じて)課金され、さらに呼び出しごとに固定料金が加算されます。最後に重要な機能として、同じ関数のインスタンスを短時間で数千まで起動できる優れたスケーリング機能が挙げられます。

サーバーレスプラットフォームとしての Internet Computer

Internet Computer のアーキテクチャを少し垣間見ると、それがサーバーレス機能を提供し、さらに利点があることにすぐに気づくでしょう。今日、FaaS の機能はコンテナとして、または単にコードとして(Python、Javascript、Java、Rust などで)パッケージ化され、外部ユーザーまたは他の関数から直接呼び出すことができる単一のエンドポイントを提供します。Internet Computer 上のキャニスタースマートコントラクトも、Rust、Motoko、JavaScript、Python など複数の言語でプログラムでき、キャニスターごとに異なる機能を提供できる複数のエンドポイントを公開できます。以下の表は、主なサーバーレス機能と Internet Computer の対応、およびクラウドベースのサーバーレスと比較してブロックチェーンが持つ利点をまとめたものです。

表1. 主なサーバーレス機能と Internet Computer の機能の対比。非中央集権化、ステートフル、信頼性は Internet Computer の付加的な利点です。

表からわかるように、Internet Computer はサーバーレス環境のすべての条件を満たしています。開発者は知らないかもしれませんが、開発者は既にサーバーレスコードを実行しており、我々の調査が示すように、従来のクラウドベンダーが提供するものとほぼ同じ効率で実行しています。また、特定の側面(メモリーなど)では、Internet Computer は従来のクラウドベンダーが提供するパワーをも上回っています。しかし、我々が強調したい最も重要な開発者向けの機能は、従来のサーバーレスクラウドでは提供されていない ステートフル と 非中央集権化 です。

表2−3では、技術に精通した読者を対象に、Internet Computer が競争力のあるサーバーレスプラットフォームであることを可能にする技術的側面について、更に深く掘り下げます。ここで重要なのは、Internet Computer がスマートコントラクトを実行する際に、アップデート モードとクエリー モードという2つのタイプがあることです。前者はステートフルな呼び出しを表し、後者は一般的なサーバーレスコンピューティングのようにステートレスです。

表2. 大規模なサーバーレスアプリケーションを構築するための重要な機能 ステートフル は、Internet Computer の付加的な利点です。
表3. ランタイム関連の機能に関するプラットフォームの詳細分析。

関数実行後のステートを保持することは、サーバーレス/FaaSの世界で長く求められてきた機能です。一般的に、現在のクラウドで提供されているシームレスなファンアウト型のスケーラビリティと相反するため、実装は非常に困難です。幸いなことに、Internet Computer は最初からステートフルを念頭に置いて設計されており、外部のストレージやデータベースにデータを保存するような、手作業による介入なしに、開発者にこの機能を提供します。そのため、Internet Computer 上でスマートコントラクトを呼び出した後は、すべての変数またはデータが自動的に永続化されます

非中央集権化は、見落とされがちなもう一つの重要な特徴です。最新のサーバーレス製品は現在、いくつかの大規模な中央集権型クラウドによって提供されていますが、これはベンダーロックインに繋がります。この場合、開発者のコードとデータはプロバイダーと同じくらい安全であり、地理的な障害または単にベンダーの方針変更に左右されやすいです。Internet Computer は完全に非中央集権化されており、ノードマシンは様々な地域で動作し、強力なコンセンサス保証の下で実行され、ビザンチン(悪意のある)障害さえ耐えます。

Internet Computer vs 従来のサーバーレスプラットフォーム

Internet Computer ブロックチェーンがサーバーレスクラウドに対してどのような評価を下しているかを評価するために、Internet Computer とトップ3のサーバーレスプラットフォームの1つで素数を計算する CPU 集中型ベンチマークを実行しました。小さな入力では Internet Computer は従来のサーバーレスよりも高速であるのに対し、大きな入力では半分の速度でした(下図の結果を参照)。これは非常に心強いことです。これは、まだ長い道のりがあるとはいえ、従来の中央集権型クラウドと比較した場合、Internet Computer が性能面で牽引力を増していることを示しています。より詳細な情報については、権威ある USENIX ATCカンファレンスで発表された最近の査読付き論文をぜひご覧ください。

Fig 1. Speedup vs. top-3 serverless platform. / 図1. トップ3のサーバーレスプラットフォームとのスピードアップ比較。

パフォーマンスの向上

非中央集権化やステートフルといった追加の組み込み機能が、大規模なワークロードに対する Internet Computer のパフォーマンスを低くしています(図2参照)。これらの機能は非常に強力で重要である反面、生のパフォーマンスを低下させます。

図2. Internet Computer の非中央集権化とステートフルのオーバーヘッド。

DFINITY のエンジニアと研究者は、Internet Computer のパフォーマンスを向上させ、改善する方法を模索し続けます。並列性を高めたり、現在のストレージレイヤーをログ構造のマージツリーアプローチに置き換えたりすることで、チェックポイントにかかる時間を改善できます。

より複雑なアプリケーションを可能にするコンポジットクエリーのパワーをフルに発揮することは、パフォーマンスにも好影響を与えるでしょう。コンポジットクエリーについては、Dapp の水平スケーリングを可能にし、クライアント側のコードを簡素化するための作業がすでに始まっています。クロスサブネットのクエリーコールと複製実行を可能にするためのさらなるエンジニアリングが進行中です。

--

--