0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

サブ100ミリ秒のレイテンシで実現するオンチェーントレード、DeFiリスク管理、ステーブルコイン決済

Posted at

暗号資産の世界において、レイテンシ(遅延)は単なるインフラ数値ではありません。それは取引結果、プロトコルの安定性、そしてユーザーの信頼を左右します。Solana ではおよそ 400ミリ秒 ごとに新しいブロックが生成されます。BNB Chain では、2026年までにファイナリティを 150ミリ秒未満 に短縮することを目標としています。このような環境では、システムが数秒遅れてデータを処理してしまうと、すでに後れを取っていることになります。マーケットメイカーは古いオーダーブックで取引できませんし、清算エンジンは遅延したマージンコールを許容できません。L2 エクスプローラーも古いチェーン状態を表示することはできません。トレーダー、DeFi プロトコル、L2 開発者にとって「ほぼリアルタイム」では十分ではないのです。求められているのは、ブロック生成時点で正確かつ完全に更新されたデータです。

RisingWave はこの課題に対して、Rust で実装された高性能かつ高信頼の 統合イベントストリーミングデータプラットフォーム を提供します。オンチェーンおよびオフチェーンの大量かつ突発的なイベントフローを取り込み、結果を継続的に更新し、新しいブロックが到着すると同時にクエリ可能にします。エンジニアはデータをストリーミングし、SQL で変換を定義するだけで、RisingWave が常に最新の結果を保証します — 3つの異なるシステムを接続・運用する必要はありません。

暗号資産ワークロードにおける「リアルタイム」とは何か

暗号資産の分野でチームが 「リアルタイムが必要だ」 と言うとき、必ずしも同じことを指しているわけではありません。

取引所(Exchanges).
取引所にとってのリアルタイムとは、異常な取引バーストや不審なネットワークパターンを拡散前に検知することを意味します。1日あたり数百億件のイベントを監視する必要があり、アラートは100ミリ秒未満で発火しなければなりません。それ以上遅れると、被害が出た後のフォレンジック分析になってしまいます。

DeFi プロトコルや NFT マーケットプレイス.
DeFi においては、オファー、スワップ、トランスファーがチェーンに到達した瞬間にウォレットの評価額、プールの健全性、コレクションのフロアプライスを再計算することを意味します。目標はエンドツーエンドでサブセカンド(1秒未満)であり、スパイク時でも一貫した挙動が求められます。

マーケットメイカーや HFT(高頻度取引).
マーケットメイカーにとってのリアルタイムは、オーダーブックを正確に保ちながら、毎秒10万〜50万件のイベントを複数の会場やバスでストリーミングすることを意味します。このループはブロック間隔よりも速く閉じなければなりません。Solana は約400ミリ秒ごとにブロックを生成し、BNB Chain は2026年までにファイナリティ150ミリ秒未満を目指しています。分析が1秒遅れて届いた時点で、その情報はすでに無意味です。

インテリジェンスおよびコンプライアンス.
監視やコンプライアンスのプラットフォームにとってのリアルタイムとは、ウォレットフロー、制裁データ、ガバナンスイベント、ソーシャルの急上昇を相関させ、異常が形成される瞬間に検知することを意味します。仕事は過去の報告ではなく、早期検出です。

Layer2 ネットワーク.
L2 にとってのリアルタイムとは、チェーンの先端に常に追従するエクスプローラーや API を意味します。開発者は TPS、ガス使用量、実行トレースといったメトリクスが、安全ブロックの到着からおよそ100ミリ秒以内に更新されることを期待しています。遅延やブロックの置換も正しく処理されなければなりません。

言い換えれば、暗号資産における「リアルタイム」とは、ダッシュボードの針を速く動かすことではありません。それは運用ループを閉じることを意味します。つまり、取引の実行、清算のトリガー、リスクの強制、決済の照合、インシデント対応、そしてブロック生成と同時に開発者へ即時フィードバックを提供することです。

取引所: リアルタイムの不正検知と悪用防止

取引所は毎日数十億件にのぼるテレメトリイベントを処理します。ネットワークパケット、注文フロー、マッチングログ、認証試行、API 呼び出しなどです。トークン上場や市場の変動時には、これらのボリュームが急激にスパイクします。多くのチームはこれを Kafka + Flink + データウェアハウス のようなスタックで対処しようとします。しかし、このアプローチには深刻な問題があります。Flink の開発と運用は複雑で、パイプラインの作成やデバッグには数週間かかることも珍しくありません。さらに、全体のスタックは重く、データが複数のシステム間を移動するため非効率です。スケーリングも動的ではなく、バーストが発生した際にはクラスターをリサイズするのに時間と手作業が必要となり、バックログが積み重なり、異常が数分遅れてようやく検出されることになります。その時点ではすでに取引所が流動性の歪みやサービス劣化を被っているかもしれません。

RisingWave はこのワークフローを単純化します。すべてのテレメトリが 統合イベントストリーミングデータプラットフォーム に流れ込み、検知ルールは マテリアライズドビュー(MV) として定義されます。ある MV は IP ごとのトラフィック基準値を監視し、別の MV は API の急増と取引バーストを相関させ、さらに別の MV は新規アカウントからの小口注文の急増を検出する、といった具合です。新しいルールを追加するのは、新しい MV を作成するだけです。新しい Flink ジョブも不要、複数システムの配線も不要です。

すべての MV は サブセカンドのレイテンシ で継続的に最新状態を維持し、日単位で数十億イベント規模でも対応可能です。結果は直接クエリできるほか、RisingWave が 下流のエンドポイントにイベントをプッシュ することで、他のシステムやサブスクライバーが即座に反応できるようになります。

これにより、取引所エンジニアが直面する本当の問題が解決されます。すなわち、負荷に弱く複雑なデータスタックを維持する代わりに、バーストにもスムーズにスケールし、信頼できるサブセカンドの異常検知を提供する単一のシステムを利用できるのです。

マーケットプレイス: リアルタイムの評価算定とマルチペア市場データ

マーケットプレイスは大規模に2種類のデータを提示する必要があります。すなわち、各ウォレットの 正確なポートフォリオ評価 と、数千から数百万にも及ぶ取引ペアやコレクションにおける ローソク足(Kライン)市場データ です。新しい取引やオファーが発生するたびに、それは数千のウォレットに波及し、即座の残高再計算を強制します。同時に、Kラインはすべてのアクティブなペアについて 1秒、1分、5分、1時間、1日といった複数の粒度で更新される必要があります。

従来のデータウェアハウスパイプラインは、このようなワークロードでは破綻します。ファンアウトによってポートフォリオ計算が遅延し、生データを走査して Kラインを再計算するのは負荷が大きすぎます。活動が急増する局面ではダッシュボードが追いつかず、ユーザーが最も正確さを必要とする瞬間に古い数値を見せてしまうのです。

RisingWave はこの問題を イベント駆動型マテリアライズドビュー(MV) によって解決します。すべての新しい取引やオファーは 即座に計算をトリガー し、ウォレット残高や Kラインは 真のリアルタイム で更新されます。マイクロバッチやリフレッシュサイクルではありません。すべての MV は トランザクション整合性 を持ち、メトリクス間でギャップや不整合が生じることはありません。高次のロールアップ(例えば1分 Kライン)は低次のビュー(例えば1秒 Kライン)の上に直接構築され、更新が自然かつ効率的に伝播します。

さらに、このアプローチは非常に スケーラブル です。非アクティブなペアはリソースを消費せず、計算資源はアクティブな市場にのみ集中します。システムは数百万のペアや数十億のイベント規模にもスケールでき、一貫性や鮮度を損なうことはありません。レイテンシは サブセカンド に保たれ、通常は数十ミリ秒で安定稼働します。

エンジニアにとって、新しいメトリクスを追加するのは単に新しい MV を定義するだけです。追加パイプラインやカスタムジョブは不要です。結果は SQL クエリで直接提供できるほか、RisingWave が API やエンドポイントに更新をプッシュすることで、ダッシュボードや下流サービスが常にライブ状態を表示できます。

その結果、マーケットプレイスは極端なスケール下でも、正確なポートフォリオ評価と一貫性の保証されたライブのマルチペア Kラインチャートを、真のリアルタイム鮮度で提供できるようになります。

マーケットメイカーと HFT: リアルタイムのオーダーブックおよびポジション監視

マーケットメイカーや高頻度取引(HFT)デスクにとって、成功は急速に変化する状態への絶え間ない可視性に依存しています。最新の最良気配(ベストビッド/アスク)、オーダーブックの深さ、キュー内のポジション、取引所間のスプレッド、手数料スケジュール、そして何よりも 自分自身の在庫とエクスポージャー です。データウェアハウスは日次で損益(PnL)を集計できますが、次のブロックで何をすべきかをトレーダーやリスクエンジンに判断させることはできません。

ここでのユースケースは リアルタイム監視 です。チームは自分たちのポジション、エクスポージャー、フローを継続的に監視する必要があります。戦略を実行するためだけでなく、内部のリスクやバランス制限を遵守するためでもあります。突発的な不均衡、在庫制限の逸脱、キュー内のポジション喪失は、数分後ではなく即座に可視化されなければなりません。

RisingWave では、公開オーダーブックとプライベートフィルが NATS や Kafka のようなバスからストリーミングされます。エンジニアは マテリアライズドビュー(MV) を定義し、最新状態を保持します。トップ・オブ・ブック、ローリングマイクロウィンドウ、取引所ごとのスプレッド、在庫デルタ、PnL カーブ、リスクキャップなどです。すべてのビューは イベント駆動かつ一貫性 を備えているため、各トレードや注文は依存するすべてのメトリクスを即座に更新します。毎秒 10万〜50万件のイベントを取り込むことは珍しくありませんが、結果は過去テーブルを再走査することなく サブセカンド で維持されます。

システムは柔軟です。新しい監視ルールやシグナルを追加するのは単に新しい MV を定義するだけです。結果は直接クエリ可能であり、下流エンドポイントにプッシュすることもできます。リスクエンジンやダッシュボードは常にライブ状態を確認できます。

その結果、マーケットメイカーは真のリアルタイムで自分の帳簿を監視できます。ポジション、エクスポージャー、リスク制限は、市場負荷が高い状況でも正確かつ最新の状態に保たれます。

インテリジェンスとコンプライアンス: リアルタイムのウォレットフローと市場シグナル

暗号資産におけるインテリジェンスは、単なる送金回数のカウント以上の意味を持ちます。エンジニアは 行動パターン を検知する必要があります。例えば、あるウォレットが新規アカウントに繰り返し資金を供給したり、ミキサーを経由して資金を移動したり、突如としてカウンターパーティグラフを拡大させたりするケースです。さらに、これを オフチェーンのシグナル と関連付ける必要があります。ソーシャルでの急激な盛り上がり、速報ニュース、ガバナンス上の動きは、しばしばオンチェーンフローに先行して現れるからです。問題は相関処理です。データウェアハウスのジョブが複数ソースを結合し終える頃には、シグナルはすでに古くなり、行動に移す機会を失ってしまいます。

ここでのユースケースは、多様なシグナルのリアルタイム相関 です。トレーダー、コンプライアンスチーム、アナリストは皆、クジラ(大口投資家)がポジションを移した時、不審なウォレットが資金移動を始めた時、またはソーシャル上の噂が即座に取引に結びついた時を知りたいのです。

RisingWave は、オンチェーントランザクションやログをオフチェーンのフィード(例: ガバナンス提案、ニュースセンチメント、Twitter アクティビティ)と一緒にストリーミングすることを可能にします。エンジニアはこれらのストリームをリアルタイムで結合・拡張する マテリアライズドビュー(MV) を定義します。新しいイベントはすべて即座に計算をトリガーし、アラートやメトリクスは常に サブセカンドの鮮度 を保ちます。Grace ウィンドウによって遅延イベントも適切に処理され、緊急性を優先しつつ一貫した結果を維持できます。

さらに RisingWave はライブクエリを提供できるだけでなく、イベントをエンドポイントにプッシュ することも可能です。そのため、下流のダッシュボード、リスクエンジン、アラートシステムは常に最新状態を反映します。これにより、インテリジェンスやコンプライアンスチームはクジラの動き、ウォレットの異常、市場操作のパターンを事後ではなく、その進行中に検知できるようになります。

Layer2 ネットワーク: リアルタイムのエクスプローラーと開発者向け分析

最新の L2 は 2 つのフロンティアを推し進めています。短いブロックタイムモジュラー実行 です。これらのアプローチはいずれも膨大なイベントストリーム(トランザクション、レシート、実行トレースなど)を生成します。そして、エコシステムに対して同じ保証を求めます。すなわち、エクスプローラー、API、ダッシュボードに表示されるデータは、数秒前の遅延スナップショットではなく、まさに今のチェーン状態 を反映していなければならないのです。

ユースケースは明確です。エクスプローラー、開発者 API、監視システムは、チェーンのアクティビティとリアルタイムで同期し続ける必要があります。もしエクスプローラーが遅延すれば、開発者は信頼を失います。もし監視が遅れれば、ネットワーク運営者は混雑や異常に対応できません。

RisingWave は実行トレース、レシート、ブロックメタデータを直接取り込み、TPS、ガス使用量、成功率、ブロック承認時間、ウォレットアクティビティ、コントラクト呼び出しといったメトリクス用の イベント駆動型マテリアライズドビュー を維持します。新しいブロックやトランザクションが到着するたびに即座に計算がトリガーされ、結果は常に サブセカンドで最新 に保たれます。リオーグやブロック置換も一貫して処理されます。セーフブロックを固定し、ファイナリティウィンドウを定義し、上流データが変わった際には過去の値を修正できます。

エンジニアにとって、新しいメトリクスやカウンタを追加するのは新しい MV を定義するだけです。新しいパイプラインも追加ジョブも不要です。結果はライブクエリで提供でき、あるいは 直接エンドポイントにプッシュ され、エクスプローラーは常にチェーンの先端を表示し、API はチェーンと整合し、内部監視はトークン上場や混雑テストの最中でも安定を保ちます。

その結果、開発者やユーザーは表示される数値を信頼できます。なぜなら、分析がチェーンとまったく同じように振る舞うからです。

開発者体験の一端

リアルタイムパイプラインを構築するのに、新しいプログラミングモデルを学ぶ必要はありません。RisingWave ではすべて SQL です。多くのチームはまずいくつかの マテリアライズドビュー(MV) を定義することから始め、ユースケースの拡大に応じて発展させていきます。各 MV はイベント駆動かつ一貫性を備えており、新しい取引やブロックが到着すると結果が即座に更新されます。

-- リアルタイムで価格、ボラティリティ、セクターセンチメントを結合した市場データセット
CREATE MATERIALIZED VIEW enriched_market_data AS
SELECT
    bas.asset_id,
    ed.sector,
    bas.average_price,
    bas.bid_ask_spread,
    rv.rolling_volatility,
    ed.avg_historical_volatility,
    ed.avg_sector_performance,
    ed.avg_sentiment_score,
    rv.window_end
FROM
    avg_price_bid_ask_spread AS bas
JOIN
    rolling_volatility AS rv
ON
    bas.asset_id = rv.asset_id AND
    bas.window_end = rv.window_end
JOIN (
    SELECT asset_id,
        sector,
        window_end, 
        AVG(historical_volatility) AS avg_historical_volatility,
        AVG(sector_performance) AS avg_sector_performance,
        AVG(sentiment_score) AS avg_sentiment_score
    FROM TUMBLE(enrichment_data, timestamp, '5 minutes')
    GROUP BY asset_id, sector, window_end
) AS ed
ON bas.asset_id = ed.asset_id AND
   bas.window_end = ed.window_end;
-- リアルタイムの異常出来高検知: 各アセットの10分平均の1.5倍を超える取引を継続的にフラグ付け
CREATE MATERIALIZED VIEW unusual_volume AS
SELECT
    trade_id,
    asset_id,
    volume,
    CASE WHEN volume > avg_volume * 1.5 THEN TRUE ELSE FALSE END AS unusual_volume,
    window_start AS timestamp
FROM (
    SELECT
        trade_id,
        asset_id,
        volume,
        AVG(volume) OVER (PARTITION BY asset_id) as avg_volume,
        window_start
    FROM TUMBLE(trade_data, timestamp, INTERVAL '10 MINUTES')
    GROUP BY
        trade_id,
        asset_id,
        volume,
        window_start
);

取引、ウォレットフロー、ブロック、レシートをストリーミング入力します。それらをどのように集計・結合するかを SQL で記述します。RisingWave はすべての結果を サブセカンドで最新かつ一貫性のある状態 に保ち、API やダッシュボードが常にライブデータを提供できるようにします。さらに長期保存が必要な場合には、Parquet や Iceberg ファイルをデータレイクに継続的に書き込みながら、ホットデータはメモリとディスクから提供することが可能です。

結論

暗号資産においては、あらゆる秒が重要です。不正検知、ポートフォリオ更新、ポジション監視、ウォレットフロー追跡、あるいは L2 エクスプローラーを常に最新に保つことに至るまで。課題は常に同じです。すなわち、膨大なスケールと、一貫性があり、イベント駆動で、サブセカンドで新鮮なデータ が必要であるということです。

RisingWave はこれに対して、単一の 統合イベントストリーミングデータプラットフォーム で応えます。エンジニアは SQL でマテリアライズドビューを定義するだけで、新しいイベントごとに結果が即座に更新されます。同じシステムがライブクエリを提供し、イベントをエンドポイントにプッシュし、さらに履歴をデータレイクに書き込みます。

RisingWave がすでにどのように本番環境で利用されているのか知りたいですか? ぜひミーティングをご予約ください。実際のユースケースを詳細にご案内いたします。


RisingWave は、リアルタイムイベントデータを 処理、分析、管理 する最も シンプル で コスト効率に優れた 方法を提供するストリーム処理・管理プラットフォームです。Apache Iceberg™ オープンテーブルフォーマットをネイティブにサポートし、Postgres 互換の SQL インターフェース と DataFrame スタイルの Python インターフェース を備えています。

RisingWave は 1 秒間に数百万件のイベントを 取り込み、リアルタイムストリームと履歴データを継続的に 結合・分析 し、低レイテンシでアドホッククエリに 応答 し、常に最新かつ一貫性のある結果を Apache Iceberg™ またはその他の下流システムに 永続化 します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?