オブジェクトモデルは、オブジェクトの所有権タイプに応じて、トランザクション実行パスを変えることができる。トランザクション実行パスは、トランザクションがネットワークによってどのように処理され、検証されるかを決定する。このセクションでは、Suiにおける様々なトランザクション実行パスと、それらがコンセンサスメカニズムとどのように相互作用するかを探る。

同時並行性の課題

根底では、ブロックチェーン技術は根本的な同時並行性の課題に直面している。つまり、分散化された環境において、複数の参加者が同じデータを同時に変更しようとしたりアクセスしようとしたりする可能性があるということだ。ネットワークの一貫性を支持するため、これにはトランザクションを順序立てて検証するシステムが必要となる。Suiはコンセンサスメカニズムを通じてこの課題に対処しており、すべてのノードがトランザクションの順序と状態に同意することを保証している。

アリスとボブが同時に同じ資産を購入するといったマーケットプレイスの状況を考えてみてほしい。ネットワークはこの衝突を解決して二重支払いを防がなくてはならず、せいぜい一方のトランザクションが成功するのを保証するだけであり、対してもう一方のトランザクションは当然ながら拒否されてしまう。

ファストパス

しかしながら、すべてのトランザクションが同レベルの検証とコンセンサスを必要とするわけではない。例えば、もしアリスが自身の所有するオブジェクトをボブにトランスファーしたい場合、ネットワークはこのトランザクションをネットワーク内にある他のすべてのトランザクションと順序付けずに処理できる。なぜなら、アリスだけがそのオブジェクトにアクセスする権限を持っているためである。これはファストパス実行として知られており、アカウント所有のオブジェクトにアクセスするトランザクションについては、広範なコンセンサスを必要とせずに速やかに処理される。このように、同時データアクセスがない場合は、課題が単純化され、ファストパスで処理される。

ファストパス実行を可能とするもう一つの所有権モデルは、不変状態である。不変オブジェクトは変更できないため、それらに関するトランザクションは順序付けを必要とせず、直ちに処理できる。

コンセンサスパス

共有状態、それは共有オブジェクトを用いて表現されるのだが、そこへアクセスするトランザクションはすべてのノードで状態が更新され一貫性が保たれるように順序付けが必要である。これはコンセンサスによる実行として知られており、共有オブジェクトにアクセスするトランザクションは、ネットワークの一貫性を維持するため、合意プロセスの対象となる。

オブジェクトにより所有されるオブジェクト

最後に、他のオブジェクトによって所有されているオブジェクトが、親オブジェクトと同じルールに従うということを触れておくのは重要である。親オブジェクトが共有されている場合、子オブジェクトも他動的に共有されている。親オブジェクトが不変である場合、子オブジェクトもまた不変である。

要約