
※株式会社DM2C Studioは2024年7月30日付で株式会社DMM Cryptoへ社名を変更いたしました。また、記事内で登場するトークンの名称「DM2P」は「Seamoon Protocol(SMP)」へ変更して発行予定です。
はじめに
Web3事業部テックグループの宮田(@miyata_17_)です。
株式会社DM2CStudioというDMMの100%子会社でCTOとプラットフォーム(SMPPlatform)のPdMを担当しています。
来年の目標はK-1アマチュアBクラスのトーナメントで優勝することです。
この記事では私たちが今後提供するWeb3事業の紹介と、社内で運用しているブロックチェーンサービスに関して構築初期において苦労した点や、いわゆるweb2におけるAPIサーバーとweb3のブロックチェーンノードを比較した際に必要な観点について解説をさせていただきます。
Seamoon Protocolについて
私たちはSeamoon Protocol(以下、SMP)という、独自の暗号資産を含む異なる種類の通貨・アセットを組み合わせたマルチチェーン上のデジタル経済圏構想を掲げています。
将来的にはこの構想に多くの事業者や個人のクリエイターが参加することで、強固でサステナブルな経済圏が確立することを目指しています。
SMPが提供する4つのモジュール
SMPは経済圏構想を実現するための、異なる役割を担う以下の4つのモジュールから成り立っています。
- Economics:独自通貨DM2Pを主体とした経済システムの安定した発展
- Applications: ユーザーとの接点になるエンタメコンテンツの創造
- Platform:ユーザー体験、開発体験の向上のための機能群の提供
- Intelligence:事業支援・セキュリティ強化のための情報収集・分析
それぞれのモジュールの相関図はこちらです。

その中のSMPPlatformでは現在以下の機能を開発運用中で、これらの機能は自社開発と外部SaaS・プロトコルの双方を組み合わせて提供しています。
- ブロックチェーンノードやエクスプローラー(以下、ブロックチェーンサービス)
- ウォレット
- 認証基盤
- 分析データ基盤
- 分析ダッシュボード
- ポータルサイト
- NFTマーケットプレイス
- ポイントの暗号通貨変換機能
事業者やクリエイターはそれぞれの機能を単体または複数組み合わせて、アプリケーション開発に活用することができます。今後も常にweb3業界のトレンドを追いかけ、開発者・ユーザーともに魅力的な体験を提供できるよう、またスムーズにweb3へオンボーディングできるような機能を提供する予定です。
ブロックチェーン選定について
SMPの初期段階では、下記のようなアーキテクチャのもとでユースケースごとに最適なブロックチェーンを選定します。
ただ、今後エコシステムの拡大を目指して、さまざまなチェーンとの連携を行い、展開していく予定です。
ー Ethereumチェーン
トークンの初期発行や長期保有のためのチェーンに使います。多くのバリデーターや資産を抱えているので、チェーン自体への攻撃やサービスの停止といったセキュリティリスクを軽減します。また、取引所での取り扱いや、多くのウォレットアプリでの取り扱いを容易にするメリットもあります。
ー Oasys Hub(Oasys L1)チェーン
Oasysは、Game関連サービスに特化したEVM互換のチェーンです。Oasys Hubを経由して、Ethereumをはじめとするさまざまなパブリックチェーン間で容易にトークンを移転できるブリッジ機能を提供することで、それぞれのパブリックチェーン同士を個別に接続することなく、効率的な相互運用性を実現します。
ー DM2 Verse(Oasys L2)チェーン
DM2CStudioが独自に構築・運用するチェーンです。Oasysが提供する、OptimismをベースとしたLayer2のVerseチェーンを複数接続可能なアーキテクチャにより、Layer2においてはガス代無料で高速なトランザクションを実現しています。Ethereum上で発行されたトークンは、送金のために高額なトランザクション手数料を支払う必要がありますが、Oasys Hubを経由してDM2 Verseに持ち込んだトークンは、ガス代無料で高速に取引することが可能です。
また、DM2 Verse上で発行されたNFTは、ブリッジを実装することで他のVerseチェーンやEthereumなどのパブリックチェーンに移転し、マーケットプレイス等で売買することが可能です。
ブロックチェーンサービス(DM2 Verse)について
提供している機能
ブロックチェーンサービスの中で提供している機能は以下です。
ー ブロックチェーンインターフェース(RPC)とL1へのロールアップ
- DM2 Verseに対して送信されたトランザクションの処理する機能(Writeノード)
- DM2 Verseで処理されたトランザクションの参照(Readノード)
- セキュリティやパフォーマンス向上を目的としたプロキシ
- Oasys Hubへのロールアップ
これらを実現するためのコンポーネント群に関する解説と運用Tipsに関しては後述します。
ー Explorer
- DM2 Verse上に記録されている情報を検索・閲覧する機能
- 特定のアドレスの資産確認
- ブロックチェーンインターフェース(RPC)のラッパーAPI
この機能を実現するために、Oasysが独自拡張したOSS(ベースにはBlockscoutというOSSが使われている)を利用し、自社で運用しています。
各コンポーネントの役割
DM2 Verseではブロックチェーンサービスを提供するために必要な複数のコンポーネントが稼働しており、それらが統合して稼働することでOptimistic Rollupの機能を有したブロックチェーンが実現されています。
DM2 Verseにおける主なコンポーネントは5つあり、それぞれの役割は以下のようになっています。(このほかに前述のexplorerなどが稼働しています)
| コンポーネント | 役割 |
|---|---|
| ① l2geth | トランザクション処理とブロック生成に関連する処理を行う。 |
| ② data transport layer |
新規のl2gethがチェーン情報を復元する際のデータの参照元となる。 Oasys Hub(及び稼働中のDM2 Verse)にあるデータをインデックスして参照可能にする。 |
| ③ batch submitter | Optimistic RollupにおけるRollupを担う。 |
| ④ message relayer |
DM2 VerseからOasys Hubに対するブリッジの実行を担当する。 DM2 Verseに送信されたトランザクションデータとブロックのstateをL1に対して送信する。 |
| ⑤ instant verifier |
Validatorによる署名を利用してOptimistic Rollup特有のfraud proof期間の省略を実現する。 Oasysが独自に実装している。 |
L2→L1のロールアップと、L1とL2におけるブリッジに焦点を絞ると、以下の図のような流れで各コンポーネントがそれぞれの役割を果たしています。

DM2 VerseをはじめとしたOasysの各verseはOSSであるOptimismをOasysが拡張したブロックチェーンですが、Optimismでは2023年の6月に「Bedrock」と呼ばれる大型アップデートが行われました。
これはチェーンのパフォーマンスの向上、Ethererumとの互換性の向上、そしてモジュラー性の導入という観点から実施されたもので、DM2 Verseも今後これに追従する予定です。
このアップデートの詳細に関しては、DM2 Verseのアップデート対応後に別途技術ブログを執筆予定です。
構築の際の注意点と、運用の工夫しどころ
ー セキュアでマネージドな運用が可能な堅牢なアーキテクチャ設計
ノード運用に関しては、業界全体での運用実績も少ないため最適なインフラのアーキテクチャが見出せていない状況が続いています。今回は、WriteノードとReadノードを冗長化しながら安定したパフォーマンスでのサービス提供を目標とし、Oasysからサンプルとして提供されている構成をベースに社内で独自のアーキテクチャを検討し、さらにセキュアな構成でDM2 Verseの構築を行いました。
ー 冗長性の担保
前述のアーキテクチャ設計において、特にWriteノードはデータの不整合を防ぐため、基本的には単一サービスでの稼働が要求されます。一方でWriteノードが停止した場合に新規のトランザクション処理とブロック生成が停止してしまうため、安定したWriteノードの運用のための冗長化を考える必要があります。DM2 Verseにおいては前述のアーキテクチャ設計において、稼働中のWriteノードが停止した場合の安定した復旧方法を独自に設計し、フェイルセーフとしての機構を備える方針で運用を行なっています。
また、前述のinstant verifierではOptimistic Rollupで必要なfraud proofの期間をスキップするためのvalidatorの署名を集める処理が実装されていますが、署名情報はDM2 Verse以外のVerseも含めた横断的なデータを扱う必要があり、ファイルIOに注意し構築を行う必要がありました。また、instant verifierが停止してしまった際でも過去の署名データが欠損せずに高速な再起動ができるように、データの冗長化と高速なファイルIOの両立のためにOSS内部の挙動を確認しつつ構築を行いました。
一般的なシステム監視と別で考慮が必要なところ
ー ウォレット残高監視
DM2 VerseではOptimistic Rollupの機能やHubとVerse間のブリッジの実現のために、コンポーネントに格納したウォレットによってHub側での断続的なトランザクションの送信が必要となります。この際トランザクション送信に必要なネイティブトークンであるOASの残高が不足すると一部のサービスが停止することになってしまいます。DM2CStudioでは独自のウォレット監視システムを導入し安定したサービス供給を図っています。
ー セキュリティ監視項目
web2におけるAPIではSQLインジェクションやAPIキーの管理などをはじめとしたいくつものセキュリティを確保する対応が必要ですが、ブロックチェーンサービスにおいてはそれらに加えた固有のセキュリティ項目を意識する必要があります。
例えばコンポーネントで利用するウォレットの秘密鍵管理、Optimistic Rollupにおいて不正なデータが含まれていないことの証明、ブロックチェーン上で稼働するスマートコントラクトについての攻撃可能性の排除などがあります。
セキュリティ要件を細かく設定した上で、社内のインフラチームやAWS社へ相談しつつ、ケースごとのリカバリ方法を策定してチーム内での監視運用をしています。
まとめ
DM2CStudioではブロックチェーンノードの他にさまざまなプロダクトを構築中で、順次サービスを提供予定となっています。
web3におけるブロックチェーン技術は常に発展を続けており、チームとしても常にキャッチアップして新技術に挑戦しています。
今回の記事でぼかしている、セキュリティ対策の具体的な話も興味ある方はぜひチームにジョインしてください!
エンジニアを中心に絶賛採用中ですので、ご興味ある方はぜひご連絡ください。