Flow Town Hall:2022 年の総括と 2023 年の展望
初開催の Flow Town Hall を見逃した方、共有された情報をすべて見直したい方は、この記事をご覧ください。イベントの完全な要約と、ソーシャルメディアで共有するための簡単な内容を紹介します。※元の英語記事はこちら
Flow は必要性から生まれました。妥協のない、メインストリーム消費者規模のレイヤー 1 ブロックチェーンをつくる必要性から生まれたのです。
- スケーラビリティに妥協しない: Flow は、シャーディングやレイヤー 2 を必要としない、斬新なマルチノード・アーキテクチャを採用しています。しかし、それは 1 種類ではなく、6 種類のノードを構築し(訳注:プロトコルを構成する主要な 4 種類のノード + 分権化のために構築されたアーカイブ・ノードとオブザーバ・ノード)、さらに今後も多くのノードを構築していくことを意味します。
- セキュリティと所有に妥協しない: Solidity などの既存の言語を使って EVM と互換性を持つことは簡単な選択でしたが、開発者経験は改善されなかったでしょう。Flow のネイティブ・スマートコントラクトプログラミング言語 Cadence は、ゼロから設計され、web3 の既存言語にはない安全性・可読性・柔軟性の面で重要な改良が加えられています。
- アダプションに妥協しない: 次の 10 億人のユーザーを引き込むことは、単なる安っぽいキャッチフレーズではなく、Flow が存在する理由であり、1700 万アカウントが利用しているいま、我々はすでにそれを達成する途上にあります。そのためには、マルチシグやセキュリティ強化のためのアカウントごとの複数の鍵のサポート、ユーザーフレンドリーなウォレット、ブロックチェーンとのやりとりをユーザーにとって透明な体験にする、高速でほぼ手数料のかからないトランザクションなど、新しいパラダイムが必要とされたのです。
2022 年を迎えるにあたり、このビジョンに関して、この 12 ヶ月で Flow がどれだけ前進したかを振り返る機会を得ました。一言で言えば「成長」です。
それを示すいくつかの数字を紹介します。
- 1750 万の新規 Flow アカウント数:前年比 4.9 倍増
- 3 億件の累計トランザクション数:前年比 3.5 倍増
- 2,500 万件の NFT 関連トランザクション:あらゆるチェーンの中で最大
もちろん、ネットワーク全体の成長は、Flow で何が起きているかを示すひとつの指標に過ぎません。また、世界トップクラスのビルダーたちが、素晴らしい体験を実現しています。
フォーチュン 500 社、高成長スタートアップ、インディーズのデベロッパーなど、Flow はメインストリーム消費者規模の体験を構築する場所なのです。ますます多くのビルダーがこのことに気づきつつあります。過去 12 ヶ月は、これから起こることを垣間見たに過ぎません。
開発者の成長と生産性
今年は Flow ビルダーにとって最大の年でした。開発者の活動を測るには、ネットワーク・アクティビティ、ライブラリのダウンロード数、Dapps の数など、いくつかの方法があります。
2022 年に新たに 7,000 のコントラクトが開発者によってテストネットにデプロイされ(前年比 250 %増)、Flow Client Library(FCL)は 63 万回ダウンロードされました(前年比 2 倍)。加えて、今年だけで 2,430 のメインネットのコントラクトがデプロイされました!まだ物足りませんか?過去最高の記録をいくつかご紹介しましょう。
- 9 月には、550 以上の月間アクティブ・コントラクトがあり、ChainMonsters コントラクトだけで、毎日 13 万件のトランザクションがありました。
- 5 月には、FCL は1週間で 30,000 回ダウンロードされました。
FCL Discovery は、サービス開始以来、毎月 128,000 件のリクエストに対応しています。
開発者の成長は数字だけではありません。生産性も重要です。生産性とは、より速く・より安全に、資金やサポートにアクセスしやすく、Dapps を構築できることを意味します。2022 年、私たちは開発者向けのツールやサービスに以下のような改善をもたらしました。
エコシステムの強化は、開発者体験の改善だけではありません。開発者向けの助成金も導入しました。
開発者エコシステム・サポート
2022 年、私たちは開発者向けの助成金を導入しました。助成金は、開発者が新しい勇敢なアイデアに取り組み、オープンソースのエコシステムに貢献することを支援します。私たちは 90 件の助成金の提案を受け、そのうちの 35 件を受け入れ、69 件のマイルストーンの完了を承認し、助成金の対象者に 677K ドルの FLOW トークンを支払いました。2022 年までの Flow の Developer Grants についての詳細は、こちらのブログをご覧ください。
プロジェクトの例を挙げると、Flowser による CLI 統合、Outblock によるiOS + Android SDK、Bjarte による Overflow、Tyron による .NET SDK などです。ツールやサービスのサポートだけでなく、教材制作のための助成金も提供しました。Buildspace、LearnWeb3、Emerald Academy が独自のブートキャンプ、コース、オンチェーン証明書を運営することを支援しました。
Flow の技術面の主要マイルストーン
Cadence
Cadence は、web3 やデジタルアセットのためにつくられました。Ethereum 上での CryptoKitties などのメインストリーム Dapps の開発後、我々は Flow で、Solidity よりも優れたスマートコントラクトのプログラミング言語をつくる価値があると気付きました。こうして生まれたのが Cadence です。
Cadence には3つの利点があります。
パーミッションレス・コントラクト・デプロイと Secure Cadence
今年達成された最も重要なマイルストーンは、パーミッションレスなコントラクト・デプロイを可能にする Secure Cadence でした。
Secure Cadence のタスクは 2021 年末に開始され、多くの重要な成果物が含まれています。
- 可変のトランザクション手数料(公正な計算利用のために重要なインセンティブメカニズム)
- メモリ使用量の測定と制限(メモリ枯渇攻撃に対する防御を実現)
- エラー処理のリファクタリング(リソースの重複を検出するための防御チェックレイヤーのクラッシュを回避するため)
- 自動ファジングによるテストカバレッジの向上
私たちは、2 つの外部監査機関により、Cadence およびその実行時のセキュリティ監査を完了し、バグバウンティと標的型侵入テストを実行しました。全体として、10 以上のセキュリティの問題を発見し、修正しました。
また、Cadence チームは、コミュニティがコントラクトをスキャンし、破壊的な変更を検出するためのツールも構築しました。
Secure Cadence は 6 月 15 日にメインネットでリリースされ、その後 7 月 5 日にはパーミッションレス・コントラクト・デプロイが可能になりました。
Cadence の新機能
今年は 40 を超える機能が実装されました。その一部をご紹介します。
- ストレージ・クエリ API: Flow の開発者にとって大きなペインポイントであったアカウント・ストレージの検索を容易にします。
- Immutable な値・関数のためのチェック構文: どの関数が副作用を持ち得るか明確にすることで、Flow 開発者の安全性を高めます。
- ブートストラップされた Capability のための API: リソースの Capability を特定ユーザーに簡単・安全に共有できるようになりました。
- すべての PublicAccount キーの取得: 公開鍵へのアクセスを簡素化しました。
- インターフェイス・メソッドのデフォルト実装: 後方互換性のある方法でインターフェイスを更新できるようになりました。
- また、標準ライブラリのユーティリティ関数や拡張機能の追加、REPLの改良を行いました。
Cadence の新しいツール
- Cadence Testing Framework: Cadence を使って Cadence のコードをテストすることが初めて可能になりました。
- Cadence Linter: 静的コード解析を実現します。
また、パーサー、型チェッカー、インタプリターなど Cadence のパフォーマンスを向上させる 30 以上の変更を導入しています。これらの変更は、トランザクションの実行速度と使用メモリ量の改善に大きく貢献しました。
Flow Improvement Proposals (FLIPs)
独立の研究者や、幅広いコミュニティ・コントリビューターによって、これまでに 10 件の FLIP が提案され、承認されています。さらに 3 件が進行中で、承認に近づいています。そのうちのいくつかを紹介します。
- Cadence Mutability Restrictions: Cadence の開発者の安全性を向上させます。
- Cadence BorrowContract: コントラクトの動的なインポートを可能にし、コントラクト・コードを簡素化します。
- Publish & Claim for Capabilities: Capability のブートストラップ問題を解決します。
- Attachment: 既存のリソースの拡張を可能にします。これにより、有名な「キティ・ハット」のユースケースを Cadence で非常に簡単に実装できます。
スマートコントラクト・エンジニアリング
スマートコントラクト・エンジニアリング・グループは、コミュニティや Dapper Labs のステークホルダーと協力し、Flow 上にデプロイされるコントラクトのインパクトやネットワーク効果を増大させることを目的としています。このグループは、オンボーディングを簡素化し、ビルダーに求められる継続的な作業を軽減するための標準、パターン、モデルの開発を担っています。
今年初めには、 NFT Storefront v2 と ロイヤリティ・メタデータ・ビュー 標準をリリースし、Storefront v1 をいくつかの新機能でアップグレードしました。
- 複数のマーケットプレイスで NFT の出品 / 購入 / 出品キャンセルを管理
- 出品のブロードキャストと、それを発見するためのイベントを改善し、マーケットプレイスがネットワークに表示されたときに出品を追加できるようにした。
- ロイヤリティ・ビューを使った、ロイヤリティ、コミッション、その他の収益分配のサポート
コア・プロトコル
プロトコル性能の向上
Flow は需要に応じてスケールできるように設計されています。2022 年の驚異的な成長を考慮し、チームはパフォーマンスにおける最初の大きな飛躍に取り組んできました。過去 12 ヶ月の間に、Flow ネットワークの TPS スループットは 50 TPS から 500 TPS へと 10 倍になり、全体的にいくつかの性能向上が行われました。
4 月には、コンセンサス・ノードに、完全同時投票の処理をデプロイし、ブロック・レートとファイナリティまでの時間が 60% に削減され、ネットワークの応答性が大幅に向上しました。
(ブロック・レート [block/s] の図 ↓)
ネットワークの回復力
Flow の目標は、すべての種類のノードのパーミッションレスな参加をサポートすることです。しかし、これは同時に、ネットワークが悪意のあるノードからの不正なメッセージに対処しなければならないことを意味します。今年、私たちは、ネットワーク全体にわたるメッセージ・レベルの攻撃を防止し、悪意のあるノードによる他のノードへのなりすましを検出するための基盤をデプロイしました。この基盤に基づき、Flow は悪意のあるアクセスノードを強固に対処できるようになりました。
さらに、Flow は好ましくないノード運用状況や高負荷スパイクに対する回復力が劇的に向上しています。すべてのノードでは、特にコンセンサス・ノードでは、多くの異なるメッセージやイベントが同時に処理されます。以前は、これらの処理コンポーネントの 1 つに負荷がかかると、CPU リソースを占有し、他の重要なコンポーネントのシステムリソースが枯渇してしまうことがありました。これは、ひどい場合には、大きな遅延やタイムアウトを引き起こし、ネットワークの運用を不安定にしてしまいます。
2022 年、私たちは処理コンポーネントを分離し、各コンポーネントに限られた CPU リソースを割り当て、一時的に作業を保留するための内部キューを追加しました。ノードは、イベント駆動型のソフトウェアデザインに移行しました。
処理コンポーネントの強力な分離は、将来、より多くの悪意あるノードに耐えるためにも重要です。ネットワーク内部のスパム攻撃によって Flow を不安定にすることは、今ではかなり難しくなりました。
また、インシデント管理プロセスをいくつか改善し、ノード・オペレーターのコミュニティを整え、重大性の高いインシデントに迅速に対応できるようにしました。その結果、Flow のネットワークは、2022 年に 99.71 % のネットワーク可用性を達成したことからも明らかなように、好ましくない条件や負荷の急上昇に対して非常に強くなっています。
新しいノード・ロールによるすべての人への参加権
スケーラビリティは運命の分かれ道です。ネットワークがデフォルトで数百万にスケールすることができれば、数百万人がやってくるでしょう。大半のプロジェクトは、シャーディング(レイヤー 1)とロールアップ(レイヤー 2)という2つの回避策に頼っています。これらの技術は、当面の技術的な必要性には対処できるかもしれませんが、より大きなリスクをもたらします。これらは分散化のメリットを減らし、長期的には開発者とエンドユーザーに複雑さをもたらします。
Flow のアプローチは異なっています。Flow のノードは、各ノードがすべての作業を行うのではなく、トランザクション・パイプラインに従って専業化されています。コレクション・ノードは作業をバッチ化し、コンセンサス・ノードは作業を保護し、実行ノードは作業を実行し、検証ノードは作業をチェックします。アクセス・ノードは、ビルダーがネットワークにアクセスするためのインターフェースです。2022 年には、データ可用性を高めるために、パーミッションレスのオブザーバ・ノードとアーカイブ・ノードの 2 種類のノードが追加されました。
より素早い & より少ないスポーク
Flow は、ネットワークのアップデート方法に関してもユニークです。後方互換性のある変更をゆっくりと追加するのではなく、変更を大きなアップグレードに分割して、ネットワークを一時的に停止し、ノードのソフトウェアをアップグレードして、再びネットワークを起動させます。その結果、ソフトウェアの複雑さが軽減され、バグや脆弱性が発生する可能性が低くなり、ネットワークの安全性が高まります。さらに、レガシーな設計を気にする必要がないため、Flow ネットワークは、特に初期の段階では、急速に進化できます。
時間が経つにつれ、ネットワークは成熟し、破壊的な変更は少なくなっていきます。2021 年には 11 回のスポークを行いましたが、今年は 5 回だけです。 しかし、私たちはイノベーションのスピードを緩めることはありません。プロトコル自体が、実行ノードと検証ノードのアップグレードを、指定したブロック番号でスケジュールできる仕組みを追加しています。そうすれば、Flow は応答性を保ち、トランザクションを受け入れ続けることができます。 実行ノードが再起動している間だけ、トランザクションの計算にわずかな遅れが生じます。
最後に、スポーク前の古いネットワークから、アップグレードされた新しいネットワークに実行ステートを移行するためのロジックを大幅に最適化しました。スポークのダウンタイムは、2022 年初頭の 4 時間から、今年最後のスポークでは 90 分と劇的に改善されました。
それでは、来年以降に Flow に何が来るのか、もっと広く見てみましょう。
展望:2023 年にメインストリームに向けて構築すること
2022 年は Flow にとって大きな年でしたが、2023 年はさらに大きな年になるでしょう。2023 年はどんな年になるのか、みていきましょう。
前進的なユーザー・オンボーディング:ユーザーがいる場所で出会う
ブロックチェーンのメインストリーム採用がなぜこれほどまでに遅れているのか、不思議でなりません。その要因のひとつは、ポジティブなユーザー体験と高品質のユーザー・フレンドリーなインターフェースの限界です。これらはいずれも次のユーザーを取り込むための障壁となっています。多くの新規ユーザーにとって、クリプトの世界は西部劇のようなものです。
どのように接すればいいのかわからず、利用しようとしているサービスに対する信頼や安心感が持てない状況が無数にあります。セルフ・カストディーはおそらく web3 の最も重要な機能ですが、次の 10 億人のブロックチェーン・ユーザーはまだセルフ・カストディーのウォレットを持っていません。
Flow は、ウォレットレス・オンボーディングを展開し、すぐに価値を得られるようにするためのツールを開発者に提供する予定です。これは、電子メールやソーシャル・アイデンティティを介して新規ユーザーをオンボーディングし、ユーザーの準備ができたとき、または、アプリが必要とするときに、セルフ・カストディにシームレスにアップグレードするための道を作成することを意味します。
モバイル・ファースト:すべてのポケットに Flow を
モバイルに最適化した体験を web3 で構築するのは難しいですが、モバイルはインターネットのトラフィックの 60 % 以上を占めています。ノン・カストディアル・ウォレットの体験は、モバイルではあまりにも違和感があります。ノン・カストディアル・ウォレットを使ってサインイン/アップやトランザクションの署名を行うアプリケーションでは、ユーザーはウォレットとアプリを切り替えて頻繁に認証のプロンプトを表示させなければなりません。
金融取引の署名を促すためにユーザー・セッションを中断するのは理にかなっているかもしれません。しかし、多くのオンチェーン・イベントは、ユーザーを邪魔することなく行われなければなりません。つまり、モバイルが成功するためには、シームレスな署名体験でなければならないのです。
カストディアルのオンボーディングでは、ユーザーは鍵やトランザクションの署名に対応する必要がありません。これは web2 フレンドリーな体験ですが、資産を閉じ込めてしまう、壁のような庭を作り出してしまいます。Flow は、開発者が、最良の UX・セキュリティ・ポータビリティのトレードオフを行う必要がないようツールを提供する予定です。以下の領域で、多くのエキサイティングな開発が行われています。
- 子アカウント / 親アカウントのモデルによるアカウントの抽象化: キーレスで、セキュアにスコープされた、サブ・アカウントでのマルチ・アカウントの変更可能性を実現するため、Capability ベースのモデルに基づきます。
- マルチ・プラットフォームの SDKs: WalletConnect ライブラリに対応した iOS と Android の SDK。
サービスレスな Dapps: プラットフォーム・リスクを排除し、信頼関係を構築し、新しい体験を解き放つ
ソフトウェアを構築する古い方法: AWS や GCP から仮想コンピュータのインスタンスを大量に借りて、そこに必要なサービスを搭載したカスタム・ブート・イメージをインストールします。AWS / GCP には、サーバーやプラットフォームの依存関係があります。
“サーバーレス” な方法: Amazon Lambda のようなサービス・フレームワークで、API サービスや計算エンジンを書きます。何千人もの顧客をそれぞれ処理できる冗長なマシン・イメージをいくつも作るのではなく、それぞれがひとりの顧客を処理するジョブを作ります。負荷に応じてスケールしますが、それでもプラットフォームへの依存は存在します。
“サービスレス” な方法(ブロックチェーン利用): API サービスや計算エンジンを、一連のスマートコントラクト、トランザクション、スクリプト、および、クライアント・コードとして記述する。スマートコントラクトとトランザクションはブロックチェーン上で実行され、スクリプトはアクセス・ノード上で実行され、クライアント・コードはブラウザ / クライアント・アプリケーションで実行されます。AWS や GCP などは一切関与しません。
今日の問題のひとつは、ブロックチェーンの使い方のほとんどが、単に資産の追跡や、監査ロックのためのデータベース的な用途に限定されていることです。
オンチェーン・コントラクト・ベースのゲーム: Flow は、プラットフォーム・リスクを排除した、インタラクティブな 100 % オンチェーンのゲームを構築する方法を紹介します。これにより、ブロックチェーンの真の可能性を解き放ちます。すなわち信頼性、透明性、プラットフォーム・リスクn排除を実現し、その上で新しい経験を構成できるようになります。
今後: Flow を Dapps 開発の安定した基盤として確固たるものにする
Stable Cadence:一度つくればずっと使える
Cadence の最優先事項のひとつは、最初の安定した長期サポートされるリリースを設計・実装することです。これにより「一度つくればずっと使える」の本当の約束が解き放たれます。
このプロセスを経て、Cadence は機能の完全性を達成します。コア・スマートコントラクトは十分に実戦のテストが行われ、システムの経済性は十分に理解され、破壊的変更やメンテナンス問題に苦しむことなく長期サポートを提供できるようになります。
パフォーマンス改善
現在、トランザクションの実行はツリー・ウォーク型のインタプリターを使って実装されていますが、これは高いパフォーマンスを実現するために設計されたものではありません。エコ・システムの開発者は、コンパイルに切り替える選択肢を検討予定です。
LayerZero を使ったクロスチェーン通信
LayerZero ブリッジは、Flow と他のブロックチェーンの世界の間でシームレスな資産移動を可能にします。今日、チェーン間のブリッジは、高価で、不確実で、安全でないプロセスです。ユーザーは元のチェーンと宛先チェーンの両方でガス代を支払う必要があります。ラップされたトークンはネイティブ・アセットと交換する必要があり、ユーザーのフローに追加のステップ(およびトランザクション手数料)を追加することになります。クロスチェーンの分散型金融アプリケーションの流動性プールは断片化されています。
これらの問題を解決するには、チェーン間の相互運用性とコンポーザビリティを可能にし、同時にクリプト・ネットワークの新しい設計領域と可能性を解き放つプロトコルが必要です。これが、私たちがクロスチェーン通信に LayerZero を使うことを決めた理由です。この問題を解決するために、私たちは彼らのプラットフォームを利用したマルチパーティ、イベント・ベースの、オンデマンド・アプローチを使う予定です。
ネットワーク可用性: より速く、より少ないスポーク
私たちは、皆さんの声をはっきりと聞きました。Flow のエコシステムは、より速く、より少ないスポークを要求しているので、我々は、ほとんどのスポークの長さを 30 分未満に短縮する高度に調整されたプロトコル・アップグレードを採用予定です。スポークの頻度を四半期ごとに減らし、さらに頻繁にローリング・アップグレードを行うことで、イノベーションのペースを損なうことなく、プロトコルがよりシームレスなアップグレードを提供することを保証します。
成熟したプロトコルの究極の目標は、スポークレス・アップグレードを実現することです。
データ検索性の向上
現時点では、Flow のコア・プロトコルでは、時間とともにコミットされるすべての実行ステートの変更を恒久的に保存する方法を規定していません。これを実現するには、データ量が大きすぎるのです。過去のデータを保存するために、貴重なオンチェーン・ストレージを浪費することになります。オブザーバ・ノードとアーカイブ・ノードの導入により、ユーザーはアーカイブや検証のためにローカルにデータを抽出できるようになりました。
それでも現在、完全なアーカイブ・ノード(これは、データセンター級のハードウェアを必要とします)を実行せずに履歴データにアクセスする、経済的に実現可能なソリューションが必要です。コミュニティでは、コミュニティ・グレードのハードウェアでアーカイブ・ノードを実行し、インデックス作成や分析に必要なチェーン履歴を簡単に抽出するための新しいアプローチを検討しています。
パーミッションレスなステークしたアクセス・ノード
目標は、すべてのノード・タイプを完全にパーミッションレスにすることです。ネットワークは、漸進的な分散化と、段階的なプロセスを経て、幅広いコミュニティのノード・オペレータによるアクティブな所有を可能にします。
オブザーバ・ノードの発表によって、我々はすべての人のために参加権のロックを解除しました。さらに我々は、ステークしたプロトコル準拠のノード・タイプを、初めてパーミッションレスにできることに興奮しています。ステークしたアクセス・ノードの、パーミッションレスなノード運用は、コミュニティに透明性のある新しいオペレータ選択アルゴリズムを必要としています。それには、なりすましやスパム攻撃に対する BFT 保護も含まれます。
さて、2023 年に期待できることの一端を共有しました。エコシステム全体では、さらなる革新が計画されています。世界中のコントリビューターによって実行される共同計画があり、Flow の歴史上初めて、チームはエコシステムの優先順位を説明するブループリントをリリースしました。この優先事項の文書は、常に進行中の作業です。情報をよりアクセスしやすく、整理することで、コントリビューションの敷居を下げ、コミュニティ全体のコラボレーションを容易にできます。
2022 年までの Flow の大きな成長の総括と、次に来るものへの考察を行いました。エコシステム全体がどれだけ成熟したかを実感している私たちと同様に、これがあなたにとって刺激的であったことを願っています。2023 年の Flow がどのようなものになるか、今から楽しみです。