ArcBlockの最新アーキテクチャとその進化を振り返る

著者 Mao、ArcBlock創業者。
2023年の歩みを振り返るにあたり、私たちは最新版の全体アーキテクチャ図を公開しました。これはこれまで数年間の開発を経て進化・反復してきた結果です。本稿では、私たちの最新のアーキテクチャ図について解説し、これまで一歩ずつどのように進化してきたかを振り返ります。
全体アーキテクチャ
これが、私たちの最新アーキテクチャ図の全体像です:

私たちはシステム全体を4つの層に分割しており、以前の区分から若干の調整を加えています:
- アプリケーション層(Application Layer)
- サービス提供層(Service Provision Layer)
- インフラストラクチャ層(Infrastructure Layer)
- コンピューティング(Compute)
- ストレージ(Storage)
- ブロックチェーン(Blockchain)
- アイデンティティ層(Identity Layer)
そして、私たちの基盤コンポーネントのほとんどは、すでに本番サービスとして完全に稼働できる状態にあります。ここ最近の新規開発の多くは、アプリケーションとサービス提供に集中しています。本番サービス稼働の段階に入ったからといって、やるべきことがなくなったわけではありません。パフォーマンスの向上、安定性の確保、セキュリティの強化、そして市場や技術の進歩に応じた適切な調整を、引き続き継続していく必要があります。
私たちのアーキテクチャはどのように進化してきたか?
アーキテクチャは、ソフトウェアシステムにおいて最も重要な要素の一つです。システム全体の構造と組織を定義するものです。優れたアーキテクチャは、システムの保守性、拡張性、再利用性を高めると同時に、複雑さとリスクを低減します。したがって、ソフトウェア開発プロセスにおいて、アーキテクチャを合理的に設計・実装することは極めて重要です。
アーキテクチャ図はしばしば非常に抽象的でシンプルに見えますが、こうした図を形作るには多くの思考、そしてそれ以上に多くの実践と反復が必要です。強力なエンジニアリングの背景を持つチームとして、ArcBlockのあらゆるアーキテクチャは、実践の中で探求され、まとめ上げられてきました。つまり、私たちは提案された解決策の一部を開発し、試行してから、これらの設計を徐々に確定させていくことが多いのです。そのため、各バージョンのアーキテクチャ図が作成される頃には、エンジニアリング作業はすでに半分以上、時には80%を超える完成度に達していることも珍しくありません。これを実現するには、段階的な進化のプロセスが必要です。
ArcBlockの開発過程において幸運だったことがあるとすれば、それは過去数年間、私たちのアーキテクチャが大きな変更を必要としてこなかったことです。しかし、私たちのアーキテクチャは静かに進化を続けてきました。それでは、開発開始以来のアーキテクチャの完全な進化の過程を振り返ってみましょう。
2017年
これは、2017年に作成されたArcBlock初の完全なアーキテクチャ設計図です。同年10月に確定しました。それ以来、ArcBlockプラットフォームの全体アーキテクチャは今日まで継承されています。ご覧の通り、BlockletやOpen Chain Accessといったいくつかの重要な概念は、すでにこの設計に登場しています。

興味深い点として、当時私がArcBlockプラットフォームに付けた名前はLODE(Lightweight Objects Decentralization Engine)でした。これは私が個人的にとても気に入っている言葉です。もう一つ気に入っている言葉はEZcomm(Easy Communicationの略)です。興味深いことに、これらの名前とそのコンセプトは、私のキャリアを通じて、これまで手がけたすべてのスタートアップに脈々と受け継がれています。
2018年
これは広く流通したArcBlockのアーキテクチャ設計図で、2018年1月にわずかに改良を加えたものです:

この図はオリジナル版と用語面での若干の改善を除き、基本的に違いはありません。2018年、私たちは基本的なOCAPを初めて実装し、アーキテクチャ内でEthereumとHyperledgerをサポートするための調整を行い、BitcoinとEthereumのサポートも実現しました。
さらに、EthereumのアイコンをそれまでのEthereumからEnterprise Ethereum Allianceのものに変更したことにお気づきかもしれません。この年、私たちはEnterprise Ethereum AllianceとHyperledger Foundation(およびLinux Foundation)にもメンバーとして加盟しました。これは、当時私たちが想定していたターゲット顧客層がブロックチェーン企業と政府系ユーザーだったためです。
2018年末、私たちはBitcoinとEthereumをサポートするOCAPサービスをローンチしました。すぐに商業顧客も獲得できました。計画通り、EthereumのERC20版ABTを採用し、顧客がサービス利用料を支払えるようにしました。これは極めて象徴的な瞬間でしたが、こうした実際のサービス運用を通じて、いくつかの現実的な課題にも気づかされることになりました。
- EthereumのERC20 ABTで支払う場合、パフォーマンス、可用性、速度、そしてユーザー体験のいずれも非常に低い水準にとどまっていました。デジタル通貨に関するコンプライアンス上の不明確さから、企業や政府の顧客がArcBlockの製品を利用したいと思っていても、実務上多くの障壁に直面する可能性がありました。
- システムに一貫性を持たせるためには、分散型アイデンティティシステムが必要でした。ArcBlockを当初設計した際、私たちはこの課題を認識していましたが、この分野には従うべき明確な標準がまだ存在していませんでした。そのため、当時私たちが取った妥協策は、顧客が自身のアイデンティティシステムを使用できるようにすることでした。サービスがローンチされ顧客が現れるにつれて、分散型アイデンティティの必要性はますます明確になっていきました。
2019年
この年、私たちが行った最大の改良は、分散型アイデンティティ(DID)の導入でした。これは、私たちのアーキテクチャ全体の進化における最も重要なアップグレードと言えるかもしれません。この年、Web IDなど複数の分散型アイデンティティソリューションを評価した上で、私たちはW3C CCGとDecentralized Identity Foundation(DIF)の初期段階に参加し、W3C DIDを私たちのロードマップの一部としました。

この年、私たちが成し遂げた重要かつ影響力のある進展には、以下が含まれます:
- DID Methodの設計と実装
- DIDをサポートする初のクリプトウォレット、ABT Wallet(2022年にDID Walletへ改称)の開発とリリース
- DID/VCをアプリケーション認証に利用可能にするDID Connectの初版リリース
2020年
2020年、新型コロナウイルス感染症(COVID-19)のパンデミックが始まり、ブロックチェーン業界は2年間続いた低迷の末、ほぼ底を打ちました。過去2年間にわたりフォローアップしてきた複数の主要顧客(首汽約車、上汽集団、華泰証券など)を失っただけでなく、VP Engineeringを含む技術チームのメンバーが離職するという事態にも見舞われました。これは、創業以来私たちが直面した最大の危機であり試練でした。
しかし、この年、私たちは最も重要な成果も達成しました。チームを再編成した上で、私たちは当初設計したアーキテクチャへと引き続き立ち返りました。ブロックチェーン業界の長期的な低迷、コンプライアンスの不透明さ、そして世界的なウイルス感染拡大がもたらす未知の影響を考慮した結果、私たちは開発者エコシステムとWeb3の消費者市場に注力することを決断しました。私たちはまず、チームの全力を挙げて、これまで最も特色がありながら常に見過ごされてきたもの、すなわちBlocklet Frameworkとそれを支えるABT Node(注 Nodeは後にBlocklet Serverへと改称)の実装に集中しました。
2020年までに、ABT Nodeのローンチと順調な運用により、私たちは2017年当時に計画していたシステムの初の完全な実装をついに達成しました。このマイルストーンは、超高層ビルの最上部に到達したことに匹敵する成果です。
私たちは2020年から2023年にかけて、このアーキテクチャ図をウェブサイトの更新に使用してきました。この図のアーキテクチャは実質的には以前の構造と変わりありませんが、分散型アイデンティティ(DID)と検証可能なクレデンシャル(VC)を組み込み、Open Chain Access Protocolと並べて配置しました。

2020年は非常に困難な年でしたが、同時に勇気、決意、そして努力の年でもありました。この年、私たちは一連の製品・サービスをサンセット(終了)しました:
- AWSのサービスインデックスアーキテクチャに基づいて設計された初期版OCAPサービスを、BlockletベースのOCAPコンポーネントに置き換えました。
- 第一世代OCAPをベースに、企業・政府向けのニーズに対応していたToken FlowおよびTAO(Token Accounting Officer)は廃止されました。
- Tendermintをベースとしていた Forge FrameworkおよびSDKは、後にBlocklet Frameworkによって完全に置き換えられました。
- Token Swap V1サービスは、後のArc Bridgeサービスに置き換えられる予定です。
- 技術アーキテクチャの面でも、以前のErlang/Elixir技術スタックから、主にJavaScript/TypeScriptとNode.jsを中心とした統一的な方向へ移行しました。
しかし、この年、私たちはABT Nodeにおいても大きな進展を遂げました:
- ABT NodeとBlocklet Frameworkのローンチ
- Blocklet Frameworkの下でブロックチェーンサービスを再構築
- Blocklet Frameworkを基盤にOCAPを再構築
- 初の開発者カンファレンスを開催し、DID/VCをベースとしたNFT製品をローンチ。DevConのチケットやバッジに利用
- ブロックチェーン関連の書籍を2冊出版し、ブロックチェーン業界における私たちの基盤と地位を確立
2021年
超高層ビルの上棟が建設の完了を意味しないことは誰もが知っていますが、ソフトウェアプラットフォームにも同じことが言えます。2020年以降、私たちのシステムは完全に稼働しているため、私たちの主な焦点は、このアーキテクチャを継続的に充実させ、改善していくことへとシフトしました。
この図は2021年のDevConで発表されたもので、非常にシンプルな4層構造に見えます:

この4つの層は以下の通りです:
- アプリケーション(Application)
- インフラストラクチャ、サービス
- ブロックチェーンとストレージ
- アイデンティティ(Identity)
これらの階層設計はすでに確定しています。2023年の最新アーキテクチャ図は、この分類をより合理的な形で再編成したにすぎません。すなわち、コンピューティング(Blocklet)、ストレージ、ブロックチェーンを一つにまとめ、コンポーネントとサービスを別々に分類しています。

この年の最も重要な改善の一つは、Blocklet Launcherというコンセプトの導入です。Blocklet Launcherの導入により、ABT Nodeの起動とBlockletの実行が初めて完全に自動化され、一般消費者にも扱いやすいものになりました。これは、dAppsが真に数百万世帯に届くようにするための基盤です。
2022年
2022年におけるアーキテクチャ上の最も重要な改善は以下の通りです:
- 独自の分散型ストレージソリューションであるDID。
- Blocklet Server上でのサーバーレスなサービスデプロイを実現しました。
2022年にはまた、いくつかの概念を整理し、会社のリブランディングも行いました:
- ABT WalletはDID Walletとしてリブランディングされました
- ABT NodeはBlocklet Serverとしてリブランディングされました
この年、私たちの多くの取り組みが実を結び始めました:
- W3C DIDが7月にW3C勧告(Recommendation)、すなわち標準となりました。これは、DIDという技術方向における私たちの長年にわたる努力と深い取り組みが、より広いコンセンサスを得たことを意味します。
- ArcBlockはAmazonのカンファレンス、イベント、Webサイトにパートナーおよび顧客として登場しました。
- ABTは、米国最大のコンプライアンス準拠取引所であるCoinbaseに上場しました。これにより、ArcBlockがより多くのユーザーにサービスを提供するための基盤が築かれました。
ご覧の通り、この年はアーキテクチャ図を更新する必要はありませんでした。すでに成熟したこの基盤の上に改善を加えていくだけで良かったからです。
2023年
2023年におけるアーキテクチャ上の最も重要な改善は、大規模言語モデル(LLM)とAIGCをサポートするAI Kitの導入です。ArcBlockの優れたアーキテクチャのおかげで、大規模言語モデルやAIGCなどのサポートは、通常のBlocklet開発の延長線上にあるにすぎず、私たちのアーキテクチャを使えば、AI、Web3、ユーザープライバシーなどの課題を即座に、かつ完璧に統合できます。AIサポートの組み込みは、私たちのエコシステムを強化するだけでなく、私たちのアーキテクチャの合理性と先見性をも裏付けるものとなりました。
2023年末、私はさらにアーキテクチャを洗練させ、以下に示す最新版を描きました:

このアーキテクチャは、2017年に描いたアーキテクチャ図と多くの類似点を共有しています。最大の違いは、2017年の図では多くのブロックが「計画中」の状態にとどまっていたのに対し、現在ではこれらのブロックのほぼすべてが「本番稼働中」となっている点です。
このページに関わるもの
用語
-
Blocklet
Blocklet は ARC の deployable unit です。アプリケーションが宣言する content、configuration、runtime の要件を一緒に保ち、実行する単位を理解し管理しやすくします。