見出し画像

Filecoinバーチャルマシンについて

今日、Filecoinは、NFT、公共財としてのデータセット、web3やメタバースの資産などを検証可能な形で保存したりアクセスしたりするためのロバストなプラットフォームとなっています。web3のI/Oレイヤーとみなして良いでしょう。しかし、これは氷山の一角に過ぎません。スマートコントラクトをFilecoinネットワークに導入して、一般的なプログラム機能を備えると、さらに多くの価値と可能性を引き出すことができます。また、ストレージの上に計算機能を重ねることで、クロスチェーンにおける相互運用性や、ブロックチェーンの信頼性の下での統合を新しい次元に導いていくことができます。

最近、Protocol Labsの研究者、Raúl Kripalaniは、分散型ストレージエコシステムの次の進化における中核的な柱であるFilecoinバーチャルマシンをFilecoinコミュニティに向けて発表しました。

なぜFilecoinにスマートコントラクトを?

スマートコントラクト(Filecoinではアクターと呼んでいる)は、Web2テクノロジーの下では極めて困難な、インテリジェントでダイナミックなストレージソリューションを可能にします。いくつか例をあげよう。

* Filecoinに保存されたデータに対する分散型計算(データを移動させてからではなく、データが保存されている場所でそのまま計算を実行する)
* クラウドファンディングによるデータセットの保存(例:犯罪統計や環境温暖化など、社会的に重要なデータの保存に誰でも資金を出せるようになる)
* よりスマートなストレージマーケット(例:時間帯別、レプリケーションレベル別、アクセス可能な地域別にストレージの価格を動的に設定)
* 複数世代にわたる保存と持続的な管理(例:複数の世代にまたがるデータの保存)
* データDAOとトークン化されたデータセット(例:データの価値をトークンとしてモデリングし、その上で実行する計算を調整・仲介するDAOを形成する)
* ローカルに保存されたNFT(例:NFTのコンテンツとそれをトラキングするレジストリの位置を同時に特定する)
* タイムロックがかかった検索(例:企業が結果を公表してから、そのデータセットのロックを解除する)
* 担保融資(例:特定のクライアントからのFIL+ディールの受け入れや、具体的な時間枠内でのキャパシティのオンボード化など、具体的な目的のためにストレージプロバイダーに融資する)
* それ以外にも多くあります。

また、流動性を共有したり、他のチェーン(Ethereum、NEAR、Polygon、Solana、Flowなど)にデプロイされたアプリケーションもFilecoinネットワークが提供するストレージ容量や機能を受け入れるようにしたりするため、開発者はチェーンの間の相互運用性を支えるブリッジを構築していくことも可能になります。

ここからは、web3エコシステム全体において、Filecoinバーチャルマシンがどのように相互運用可能なストレージと計算のあり方を根底から変えていくかをみていきましょう。

レイヤー0としてのストレージ

現在、Filecoinプラットフォームは、データの保存と検索が中心となっています。この2つの機能がプロトコルのレイヤー0を構成していると考えています。

画像1

このシステムはクリーンでわかりやすいものですが、プログラミング可能なスマートコントラクトを利用してより複雑なアプリケーションやソリューションを構築しようとする開発者にとっては不十分です。

一個上のレイヤー1、ここはスマートコントラクトが動作する場所になります。現在のFilecoinネットワークのロジックは、システムで定義されたアクターによってハードコードされています。つまりこれは、ユーザー定義のスマートコントラクトは、EthereumやNEARといった他のプログラミング可能なブロックチェーンとの外部ブリッジを介してのみ、使用可能ということを意味しています(たとえば、Textile]、 Bridges]などのソリューション)。Filecoinバーチャルマシンは、Filecoinネットワークのネイティブなユーザー定義のアクターを実現します。

Ethereumと互換性のあるFilecoinバーチャルマシン

最新の技術面の議論は、2021年6月からFilecoin Improvement Proposal 113において始まりました。Filecoinバーチャルマシン(FVM)は、Hypervisorsというコンセプトに基づいて、マルチVMという設計を構築し、ポリグロットVMを目指しています。EVMをそのまま採用するほか、LLVM-IR、eBPF、Secure EcmaScriptなど、多くのアプローチが検討されました。

FVMのネイティブランタイムであるWASMがFVMのコアです。私たちは、WASMがブロックチェーン分野において強力で明るい未来を持っていると信じています。WASMを選んだことによって、WASMにコンパイル可能なあらゆるプログラミング言語でネイティブアクターを書くことができます(ただし、すべての言語が適しているわけではなく、リファレンスSDKはRustで構築されています)。これにより、web2開発者がweb3に移行する際に、開発者の現状に合わせて、ある特定の言語を学習する必要を回避することができます。

画像2

さらに、Ethereumバーチャルマシン(EVM)をはじめ、外部ランタイムをエミュレートするためのサポートを追加しています。この選択の背景には、FVMがEVM/Solidityをサポートすることによってソースコードへの変更がゼロまたは最小限にすることができるというFilecoin開発者のコミュニティからの要望があります。詳しくは現在の仕様をご覧ください。

画像3

いままで、Ethereumコミュニティは、ERC-20トークン、NFT、DAO、フラッシュローンなど実用的で、そしてもっと重要なのは、監査や実戦に耐えられるスマートコントラクトの巨大なコーパスを構築してきました。これらのコントラクトをそのまま再利用できるようにすることで、Filecoinにおいてもカンブリア紀の爆発のように革新的でコンポーザブルなソリューションが輩出していくでしょう。さらに、Solidityの開発者がブリッジやオラクルを使ってチェーンをまたいでソリューションをつなぐことができるようになれば、総合的な価値と実用性が高くなるでしょう。

また、EVMの互換性はバイトコードレイヤーを対象としているため、Truffle、Remix、Hardhat、VSCodeプラグインなど成熟したEthereumツールチェーンをFilecoinのコンテキストでもフル活用できる可能性があることも注目すべきでしょう。開発者は、既存のスマートコントラクトをデプロイする以外、Solidityで新しいアクターを書くことで開発スピードを速めたり、パフォーマンスの最適化が必要な場合はネイティブアクターにアップグレードしたりすることもできます。

Filecoinネットワークのインパクトを拡大する

FVMにより、Filecoinネットワークは、既存のストレージ機能に加えて、計算能力を手に入れます。私たちは、Filecoinネットワーク上では2種類の計算が実行されると想定しています。それは、状態に対するオンチェーンの計算と、データに対するオフチェーンの計算です。FVMはその両方にとって重要な構成要素となります。

画像4

次のようなユースケースがFilecoinネットワークに現れるだろうと私たちは推測しています。

* データ中心の分散型自治組織(データDAO): 個人や組織のリソースをプールすることで、人々は共通に興味をもっているデータセットや公共財としてのデータセットの保存、キュレーション、アグメンテーション、処理を促進することができます。データDAOは、トークンやNFTを価値の単位として使用し、そのトークンを交換してサービスを要求したり、アクセス権を付与したりします。
* レプリケーション・クライアント: インセンティブの下でユーザーが定義したポリシーに従って、Filecoinネットワーク内のデータに対して一定レベルの複製を維持する自動ボット。
* 代替的ストレージマーケット: オークションやバウンティなどの方式に基づいて、ストレージマーケットはデータにエラー修正コードを適用し、障害発生時の復旧可能性を確保します。また、データを確実に配信するために、自動再試行ができる取引を可能にすることもできます。
* 担保融資: プロバイダへの信頼性がある・目的限定の担保融資、たとえば、これによって特定のクライアントからのFIL+ディールを受け入れるためにしか融資資金を使用できないことが実現できます。
* データの計算: 大規模な計算では、データの転送が大きな問題となり、すべての操作にコストと待ち時間がかかります。データが保管されているストレージプロバイダーに計算ジョブをプッシュし、コーディネーターノードに報酬を与えてFilecoinネットワーク全体での実行を戦略的に計画することで、タスクは相互依存せずに独立で並行処理できるようなジョブを効率良く実行し、実行結果をFilecoinネットワークに戻して、さらにダウンストリームにおいて継続で計算していくことが実現できます。

さらに、FVMは、Filecoinネットワーク上で動作するレイヤー2(L2)ソリューションが、その状態をレイヤー1(L1)にコミットすることを初めて可能にし、より安全で追跡可能なサイドネットワークやオーバーレイネットワークを実現します。私たちは、コンテンツデリバリネットワーク(CDN)、レピュテーションシステム、ペイメントチャンネルネットワークのようなL2ソリューションがFilecoinに現れることに期待しています。

これらのユースケースのプロトタイピングに興味をもつ開発者の方は、ぜひご連絡ください!

開発ロードマップ

目の前のFVM開発ロードマップのフェーズは以下の通りです。

* フェーズ0: メインネット上にプログラミングできないFVMをカナリアローンチし、フィーチャーフラグやリファレンス実装(Lotus)のフォークの後ろに配置し、システムアクターのみを稼働させます。既存のチェーンとの互換性があり、プロトコルのアップグレードは必要ありません。このフェーズは2021年Q4に実行される予定です。
* フェーズ 1:プロトコルのフォークにより、ガスのスケジュールやアーキテクチャの調整など、ユーザープログラミング可能にするための事前準備的な変更を導入していきます。このフェーズが終了する頃には、全ネットワークはFVMをバックとしたシステムアクターで稼働するようになります。このフェーズは、2022年Q1に稼働する予定です。
* フェーズ2: ネイティブアクターとEVMの外部アクター両方にユーザープログラミング可能性を導入していきます。このフェーズは、2022年Q2に稼働する予定です。
* フェーズ3: システムアクターを再設計し、より深いレベルでのプロトコルの変更により、システムアクターに対するプログラムの難易度を下げていきます。このフェーズは、2022年Q2に稼働する予定です。

画像5

FVMの開発に興味がある方や、このプロジェクトについてもっと知りたい方は、filecoin-project/fvm-projectのGitHubリポジトリや、Filecoin Slackの#fvmチャンネルをフォローするのがおすすめです。