TimeWindowとは
TimeWindowとは分散型台帳技術Cordaの特徴の一つです。公式ドキュメントでも一節が用意されている重要な概念の一つです。一般的なブロックチェーンは、時間の経過をブロックの積み上げによって表現しますが、取引単位で自由にブロックを構築できるCordaの場合、時間の経過は文字通りの時間という概念を使用できます。さて、Time Windowとは、一つのTransaction(取引)の実行可能時刻に制限を与える設定値のことを言います。例えば、1年の定期預金の解約は、申込後1年立たないと解約できません。そういう場合、解約可能なタイミングとして、契約の1年後という時刻を設定することができます。定期預金の解約Transactionをもし作るなら、以下のような形になるかと思います。
この絵の中でグレーで描かれた実行可能時間のことをTimeWindowと言います。TimeWindowはTransactionが持つ性質の一つになっていて、TransactionのMerkle Treeに含まれれる情報です。下図はCorda4のMerkleTree実装を示す概念図ですが、右下に、TimeWindowが確かに存在しています。
実は、TimeWindowを理解するにはもう一つ重要なポイントがあります。分散型のアーキテクチャの中で、一体誰の時間を正とするか、という問題です。Cordaは「時刻を定義する」ことと、「すべての取引に順序性を定義する」ことを同一の課題と捉えた上で、この解決を匿名性&プライバシーの高いNotaryに一任しています。Cordaのネットワークの中で、正しい時刻を提供するのはNotaryです。そのため、TimeWindowが参照する正しい時間はNotaryが提供します。これはCorda4でもCorda5でも変わりません。
ブロックチェーンは分散系を前提にします。そのため、ネットワークには複数の参加者がおり、参加者ごとに時刻を管理しているのが一般的です。しかし、バラバラの参加者が好きに時刻を管理すると、当然ながらある参加者にとっては午後1時59分だけど、他の参加者にとっては午後2時01分だということが普通に発生します。
この問題は、Oracle問題(正しい情報を誰が提供できるのか?)の一つとして理解されることが多いです。しかし、こと時刻に関しては、Oracleがあれば解決できるという課題ではありません。
この問題の本質には、「複数の取引を固めたブロックを構築し」、構築したブロック間の順序は定義するが「同一ブロック内の取引の順序性を定義できない」というブロックチェーンによく見られるアーキテクチャ選定に問題があります。
同一ブロック内の取引の順序性を定義できない為、複雑な取引の実行に時間がかかったり、取引順序への要求次第では実行できない取引が発生しうる点は、「複数取引を一つのブロックに入れる」というアーキテクチャがもたらす課題の一つで、エンタープライズ領域では特にその解決が待たれます。
エンタープライズ領域に特化したCordaは、この制約を、ある意味ブロックチェーンらしさと引き換えに解決していると言えます。
Corda4のTimeWindow
Corda4での使い方はCorda PartnerであるTIS社の方が詳しく書いてくださっています。こちらの記事もぜひご参照ください。
Corda4のTimeWindowは、ざっというと以下のような設定が可能です。
TimeWindowには色々な使い方が想定できますが、基本的にはユーザーが自由に使う設定項目という考え方でした。つまり、Corda4では、TimeWindowはアプリケーション上の「任意設定項目」で、Corda側のコア機能というよりは付加機能的な扱いでした。
Corda5のTimeWindow
Corda5は、TimeWindowがより重要なコア機能の一部として「必須設定項目」になりました。また、設定パターンが今までのように自由に決められるのではなく、時刻の上限値を必ず設定する必要があります。(以下の絵をご確認ください) このような変更が行われた理由については、こちらの記事をご覧ください。
まとめ
CordaのTimeWindowの紹介と、Corda4と5の間でのその差についての解説でした。 そもそもTimeWindowの裏側にはアーキテクチャ選定という重大な技術的選択が隠れていたこと。Corda4ではその扱いがとても軽かったのに対して、Corda5では必須設定項目として重要視されるようになったことを説明しました。 Corda5でこのように重視されるようになった理由については、ぜひ後続記事としてこちらの記事をご覧いただければと思います。
<ご質問・ご要望の例>
- Corda Portalの記事について質問したい
- ブロックチェーンを活用した新規事業を相談したい
- 企業でのブロックチェーン活用方法を教えて欲しい 等々
SBI R3 Japan エンジニアリング部長
書籍出してます:https://amzn.asia/d/c0V31Vd
趣味:サッカー、ガンプラ、ドライブ、キャンプ