(57)【要約】  少なくとも１つのプロセッサ、少なくとも１つのメモリ、および少なくとも１つのネットワークインターフェースを含むネットワークノード。ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成される。ネットワークノードは、少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合される。少なくとも１つのプロセッサは、親スマートコントラクトの後続バージョンである子スマートコントラクトを、分散型台帳において展開するように構成される。少なくとも１つのプロセッサはまた、子スマートコントラクトのアドレスを指すように、親スマートコントラクトにおいてアップグレードされたアドレスフィールドを設定するように構成される。親スマートコントラクトは、子スマートコントラクトが展開された後も展開されたままである。
2021534486.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークノードであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのメモリと、
前記少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのネットワークインターフェースとを備え、
前記ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成され、
前記ネットワークノードは、前記少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合され、
前記少なくとも１つのプロセッサは、
親スマートコントラクトの後続バージョンである子スマートコントラクトを、前記分散型台帳において展開し、
前記親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、前記子スマートコントラクトのアドレスを指すように設定するように構成され、
前記親スマートコントラクトは、前記子スマートコントラクトが展開された後も展開されたままである、ネットワークノード。
【請求項２】
前記少なくとも１つのプロセッサは、前記アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するようにさらに構成される、請求項１に記載のネットワークノード。
【請求項３】
前記少なくとも１つのプロセッサは、
前記親スマートコントラクトのアドレスを指すように、前記子スマートコントラクトにおける親アドレスフィールドを設定し、
前記アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するようにさらに構成される、請求項１に記載のネットワークノード。
【請求項４】
前記少なくとも１つのプロセッサは、前記子スマートコントラクトにおけるトークン供給パラメータを、前記親スマートコントラクトにおけるトークン供給パラメータと等しくなるように設定するようにさらに構成される、請求項１に記載のネットワークノード。
【請求項５】
前記少なくとも１つのプロセッサは、前記親スマートコントラクトにおけるすべての古いトークンを、トークン保有者アドレスから、前記子スマートコントラクトのアドレスに移行するようにさらに構成される、請求項１に記載のネットワークノード。
【請求項６】
前記少なくとも１つのプロセッサは、前記子スマートコントラクトにおける少なくとも１つの新しいトークンを、前記トークン保有者アドレスに発行するようにさらに構成される、請求項５に記載のネットワークノード。
【請求項７】
前記少なくとも１つのプロセッサは、
移行する必要のある古いトークンが少なくとも１つの他のトークン保有者アドレスにあるか否かを判定し、
前記子スマートコントラクトにおける新しいトークンを、中間アドレスに発行し、
前記少なくとも１つの他のトークン保有者アドレスから、新しいトークン保有者アドレスを選択し、
前記親スマートコントラクトにおける古いトークンを、前記新しいトークン保有者アドレスから、前記子スマートコントラクトの前記アドレスに移行し、
前記子スマートコントラクトにおける少なくとも１つの新しいトークンを、前記中間アドレスから、前記新しいトークン保有者アドレスに移動する
ようにさらに構成される、請求項６に記載のネットワークノード。
【請求項８】
前記少なくとも１つのプロセッサは、前記子スマートコントラクトの展開後、前記親スマートコントラクトにおける古いトークンが取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動するようにさらに構成される、請求項７に記載のネットワークノード。
【請求項９】
前記少なくとも１つのプロセッサは、前記親スマートコントラクトにおける前記アップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、前記親スマートコントラクトにおける古いトークンが取引を制限されると判定するようにさらに構成される、請求項７に記載のネットワークノード。
【請求項１０】
前記古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである、請求項１に記載のネットワークノード。
【請求項１１】
前記親スマートコントラクトおよび前記子スマートコントラクトは、それぞれの発信元のスマートコントラクトを使用して実施される、請求項１に記載のネットワークノード。
【請求項１２】
親スマートコントラクトをアップグレードするためのコンピュータ化された方法であって、前記コンピュータ化された方法は、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおける複数のネットワークノード内に含まれるように構成されたネットワークノードによって実行され、前記ネットワークノードは、前記ピアツーピアネットワークにおける他のネットワークノードに通信可能に結合されるように構成され、前記コンピュータ化された方法は、
前記親スマートコントラクトの後続バージョンである子スマートコントラクトを、前記分散型台帳において展開するステップと、
前記親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、前記子スマートコントラクトのアドレスを指すように設定するステップとを備え、
前記親スマートコントラクトは、前記子スマートコントラクトが展開された後も展開されたままである、コンピュータ化された方法。
【請求項１３】
前記アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するステップをさらに備える、請求項１２に記載のコンピュータ化された方法。
【請求項１４】
前記親スマートコントラクトのアドレスを指すように、前記子スマートコントラクトにおける親アドレスフィールドを設定するステップと、
前記アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するステップと
をさらに備える、請求項１２に記載のコンピュータ化された方法。
【請求項１５】
前記親スマートコントラクトにおけるトークン供給パラメータと等しくなるように、前記子スマートコントラクトにおけるトークン供給パラメータを設定するステップをさらに備える、請求項１２に記載のコンピュータ化された方法。
【請求項１６】
前記親スマートコントラクトにおけるすべての古いトークンを、トークン保有者アドレスから、前記子スマートコントラクトのアドレスに移行するステップをさらに備える、請求項１２に記載のコンピュータ化された方法。
【請求項１７】
前記子スマートコントラクトにおける少なくとも１つの新しいトークンを、前記トークン保有者アドレスに発行するステップをさらに備える、請求項１６に記載のコンピュータ化された方法。
【請求項１８】
移行する必要のある古いトークンが少なくとも１つの他のトークン保有者アドレスにあるか否かを判定するステップと、
前記子スマートコントラクトにおける新しいトークンを、中間アドレスに発行するステップと、
前記少なくとも１つの他のトークン保有者アドレスから、新しいトークン保有者アドレスを選択するステップと、
前記親スマートコントラクトにおける古いトークンを、前記新しいトークン保有者アドレスから、前記子スマートコントラクトの前記アドレスに移行するステップと、
前記子スマートコントラクトにおける少なくとも１つの新しいトークンを、前記中間アドレスから、前記新しいトークン保有者アドレスに移動するステップと
をさらに備える、請求項１７に記載のコンピュータ化された方法。
【請求項１９】
前記子スマートコントラクトの展開後、前記親スマートコントラクトにおける古いトークンが取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動するステップをさらに備える、請求項１８に記載のコンピュータ化された方法。
【請求項２０】
前記親スマートコントラクトにおける前記アップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、前記親スマートコントラクトにおける古いトークンが、取引を制限されると判定するステップをさらに備える、請求項１８に記載のコンピュータ化された方法。
【請求項２１】
前記古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである、請求項１２に記載のコンピュータ化された方法。
【請求項２２】
前記親スマートコントラクトおよび前記子スマートコントラクトは、それぞれの発信元のスマートコントラクトを使用して実施される、請求項１２に記載のコンピュータ化された方法。
【請求項２３】
ネットワークノードであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのメモリと、
前記少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのネットワークインターフェースとを備え、
前記ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成され、
前記ネットワークノードは、前記少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合されるように構成され、
前記少なくとも１つのプロセッサは、
親スマートコントラクトの後続バージョンである子スマートコントラクトを、前記分散型台帳において展開し、
前記親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、前記子スマートコントラクトのアドレスを指すように設定し、
前記子スマートコントラクトにおける新しいトークンを、中間アドレスに発行し、
前記親スマートコントラクトにおけるすべての古いトークンを、トークン保有者アドレスから、前記子スマートコントラクトのアドレスに移行し、
前記子スマートコントラクトにおける少なくとも１つの新しいトークンを、前記中間アドレスから、前記トークン保有者アドレスに移動するように構成され、
前記親スマートコントラクトは、前記子スマートコントラクトが展開された後も展開されたままであり、
前記古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである、ネットワークノード。
【請求項２４】
前記少なくとも１つのプロセッサは、前記子スマートコントラクトにおけるトークン供給パラメータを、前記親スマートコントラクトにおけるトークン供給パラメータと等しくなるように設定するようにさらに構成される、請求項２３に記載のネットワークノード。
【請求項２５】
前記少なくとも１つのプロセッサは、前記子スマートコントラクトの展開後、前記親スマートコントラクトにおける古いトークンが取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動するようにさらに構成される、請求項２３に記載のネットワークノード。
【請求項２６】
前記少なくとも１つのプロセッサは、前記親スマートコントラクトにおける前記アップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、前記親スマートコントラクトにおける古いトークンが取引を制限されると判定するようにさらに構成される、請求項２３に記載のネットワークノード。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
[0001]この出願は、２０１８年８月１０日に出願され「ＳＥＬＦ−ＥＮＦＯＲＣＩＮＧ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ  ＩＭＰＬＥＭＥＮＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＣＯＭＰＬＩＡＮＣＥ  ＲＵＬＥＳ  ＣＯＮＳＵＬＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＧＬＯＢＡＬ  ＲＥＧＩＳＴＲＹ  ＯＦ  ＩＮＶＥＳＴＯＲＳ（スマートコントラクトベースの投資家のグローバルレジストリを参照するスマートコントラクトベースのコンプライアンス規則を実施する自己執行型証券トークン）」と題された米国仮特許出願第６２／７１７，５７５号（代理人整理番号２７０．０２３ＵＳＰＲ）、２０１９年７月８日に出願され「ＳＰＬＩＴＴＡＢＬＥ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ（分割可能な証券トークン）」と題された米国仮特許出願第６２／８７１，５４３号（代理人整理番号２７０．０３２ＵＳＰＲ）、および２０１９年７月３１日に出願され「ＵＰＧＲＡＤＡＢＬＥ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ（アップグレード可能な証券トークン）」と題された米国仮特許出願第６２／８８１，１２１号（代理人整理番号２７０．０３３ＵＳＰＲ）の利益を主張し、これらはすべて、参照により本明細書に組み込まれる。
【０００２】
[0002]この出願は、参照により本明細書に組み込まれる、以下の同時係属の米国特許出願に関連する。
[0003]参照により本明細書に組み込まれる、「ＳＥＬＦ−ＥＮＦＯＲＣＩＮＧ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ  ＩＭＰＬＥＭＥＮＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＣＯＭＰＬＩＡＮＣＥ  ＲＵＬＥＳ  ＣＯＮＳＵＬＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＧＬＯＢＡＬ  ＲＥＧＩＳＴＲＹ  ＯＦ  ＩＮＶＥＳＴＯＲＳ（スマートコントラクトベースの投資家のグローバルレジストリを参照するスマートコントラクトベースのコンプライアンス規則を実施する自己執行型証券トークン）」と題され、同日付で出願された米国特許出願第______________号（代理人整理番号２７０．０２３ＵＳ０１）。
【０００３】
[0004]参照により本明細書に組み込まれる、「ＳＰＬＩＴＴＡＢＬＥ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ（分割可能な証券トークン）」と題された、同日付で出願された米国特許出願第______________号（代理人整理番号２７０．０３２ＵＳ０１）。
【背景技術】
【０００４】
[0005]暗号トークンは、ブロックチェーンの様々な態様に関連して使用される。例では、イーサリアムブロックチェーンにおいて実施されるスマートコントラクトにより、複雑な動作が付加されたトークンの作成と発行が可能になる。Ｅｔｈｅｒｅｕｍ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ２０（ＥＲＣ２０）は、トークンを実施する（イーサリアムブロックチェーンにおいて）スマートコントラクトのために使用される技術規格である。ＥＲＣ２０規格は、その全体が参照により組み込まれる。それに加えて、一般会社法に関連するデラウェア州法の第８編を満たすために、他の方法も実施され得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
[0006]少なくとも１つのプロセッサ、少なくとも１つのメモリ、および少なくとも１つのネットワークインターフェースを含むネットワークノード。ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成される。ネットワークノードは、少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合される。少なくとも１つのプロセッサは、親スマートコントラクトの後続バージョンである子スマートコントラクトを、分散型台帳において展開するように構成される。少なくとも１つのプロセッサはまた、親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、子スマートコントラクトのアドレスを指すように設定するように構成される。親スマートコントラクトは、子スマートコントラクトが展開された後、展開されたままである。
【０００６】
[0007]図面は典型的な実施形態のみを描写し、したがって、範囲を限定すると見なされるべきではないことを理解して、典型的な実施形態は、添付の図面を使用することにより、追加の特異性および詳細とともに説明される。
【図面の簡単な説明】
【０００７】
【図１】[0008]アップグレード可能なスマートコントラクトベースの証券トークンを使用する例示的なシステムのブロック図である。
【図２Ａ】[0009]図１に示されるシステムにおいて使用されるデータ構造を示すブロック図である。
【図２Ｂ】[0010]図１に示されるシステムにおけるエンティティの階層を示すブロック図である。
【図３】[0011]アップグレード可能なスマートコントラクトの３つの異なるバージョンを示すブロック図である。
【図４】[0012]図４Ａは、スマートコントラクトの後続バージョンへのトークンの移行の異なる段階を示すブロック図である。図４Ｂは、スマートコントラクトの後続バージョンへのトークンの移行の異なる段階を示すブロック図である。図４Ｃは、スマートコントラクトの後続バージョンへのトークンの移行の異なる段階を示すブロック図である。図４Ｄは、スマートコントラクトの後続バージョンへのトークンの移行の異なる段階を示すブロック図である。
【図５】[0013]子スマートコントラクトを展開するための方法を示すフロー図である。
【図６】[0014]親スマートコントラクトにおける未処理のトークンを、子スマートコントラクトに移行するための方法を示すフロー図である。
【図７】[0015]本開示の実施形態が利用され得る例示的なコンピュータシステムを示すブロック図である。
【図８】[0016]本開示の実施形態が利用され得る別の例示的なコンピューティングデバイスを示すブロック図である。
【発明を実施するための形態】
【０００８】
[0017]一般的な慣行にしたがって、説明された様々な特徴は、一定の縮尺で描かれていないが、典型的な実施形態に関連する特定の特徴を強調するように描かれている。
[0018]以下の詳細な説明では、本明細書の一部を形成し、例示として特定の例示的な実施形態が示されている添付の図面が参照される。しかしながら、他の実施形態が利用され得、論理的、機械的、および電気的変更がなされ得ることを理解されたい。さらに、図面および明細書で表されている方法は、個々のステップが実行され得る順序を限定するものとして解釈されるべきではない。したがって、以下の詳細な説明は、限定的な意味で解釈されるべきではない。
【０００９】
[0019]「スマートコントラクト」（または単に「コントラクト」）という用語は、ソフトウェアにおいて実施され得る条件付きロジックのセット、たとえば、１つまたは複数の関連する条件が満たされることに応じて実行される１つまたは複数の順次のステップを指す。スマートコントラクトは、分散型台帳のアドレスに格納され得る。スマートコントラクトは、スマートコントラクトのアドレスを使用して呼び出され得る。例では、スマートコントラクトは、Ｓｏｌｉｄｉｔｙプログラミング言語でプログラミングされ得る。スマートコントラクトは、分散型台帳を実施するネットワークノード、たとえば、イーサリアム仮想マシン（ＥＶＭ）などの仮想マシンを実行するネットワークノード上のプロセッサによって実行され得る。
【００１０】
[0020]スマートコントラクトの１つの特定の例は、証券トークンである。言い換えれば、証券トークンは、スマートコントラクトの一種、たとえば、証券を表す暗号トークンであり得る。証券トークンは、分散型台帳（たとえば、ブロックチェーン）における（たとえば、格納された）スマートコントラクトとして実施され得る。所与の証券トークンの様々な態様（たとえば、発行、移動など）は、証券取引委員会（ＳＥＣ）または他の規制機関によって規制され得る。
【００１１】
[0021]証券トークンは、既存のトークン保有者、アドレスのトークン残高、トークンの総供給などを示す状態を維持し得る。したがって、スマートコントラクトを指すことに加えて、「証券トークン」または「トークン」という用語は、証券を表す証券トークンの状態、たとえば株式のシェアを指す場合がある。一般に、限定されないが、「証券トークン」という用語は、スマートコントラクトを指すために使用される一方、「トークン」という用語は、たとえば株式のシェアを表すなど、証券トークンの状態を指すために使用される。
【００１２】
[0022]証券は、ある種の金銭的価値を保持する代替可能で譲渡可能な金融商品（fungible, negotiable financial instrument）であり得る。証券は、任意選択によって表されるように、所有権の立場、債権者関係（creditor relationship）、または所有権の権利を表し得る。証券の例は、不動産、少なくとも１つの商品、個人資産、少なくとも１つの債券、少なくとも１つのデリバティブ、少なくとも１つの先物、少なくとも１つのファンド、少なくとも１つの通貨ファンド、少なくとも１つの上場投資信託、少なくとも１つの投資信託、少なくとも１つのインデクスファンド、少なくとも１つの債券ファンド、少なくとも１つの商品ファンド、および／または少なくとも１つの不動産ファンドを含むが、これらに限定されない。
【００１３】
[0023]発行、移動、およびそれに関連する規制を含む証券トークンのさらなる説明は、２０１８年８月１０日に出願され「ＳＥＬＦ−ＥＮＦＯＲＣＩＮＧ  ＳＥＣＵＲＩＴＹ  ＴＯＫＥＮ  ＩＭＰＬＥＭＥＮＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＣＯＭＰＬＩＡＮＣＥ  ＲＵＬＥＳ  ＣＯＮＳＵＬＴＩＮＧ  ＳＭＡＲＴ−ＣＯＮＴＲＡＣＴ−ＢＡＳＥＤ  ＧＬＯＢＡＬ  ＲＥＧＩＳＴＲＹ  ＯＦ  ＩＮＶＥＳＴＯＲＳ（スマートコントラクトベースの投資家のグローバルレジストリを参照するスマートコントラクトベースのコンプライアンス規則を実施する自己執行型証券トークン）」と題された米国仮特許出願第６２／７１７，５７５号（代理人整理番号２７０．０２３ＵＳＰＲ）に見出すことができ、その全体は、参照により本明細書に組み込まれる。
【００１４】
[0024]（たとえば、イーサリアム／Ｓｏｌｉｄｉｔｙにおける）スマートコントラクトを開発する際の一般的な困難性は、それらをアップグレードする方法、バグを修正する方法、またはスマートコントラクト内のコードの変更を保証する他の方法である。スマートコントラクトをアップグレードする際の従来の試みは、コントラクトの元のアドレスの保持に重点をおく。本システムおよび方法は、コード変更時にコントラクトアドレスを保持するのではなく、元のコードを保持することを重視しており、コントラクトの完全な論理的監査を維持しながら、古いコードを新しいコードにリンクする機能を備えている。このアプローチはあらゆる種別のスマートコントラクトに適用され得るが、特に有用な１つの構成は、たとえば状態を含む、証券トークンのアップグレードパスを含む。
【００１５】
[0025]分散型台帳技術（ＤＬＴ）およびブロックチェーン技術の最も重要な２つの特徴は、委託および監査可能性である。これらの特徴は両方とも、見過ごされがちな（all-too-often overlooked）（および／または欠けている）別の特徴である保全性の影響を受ける可能性がある。コントラクトが保全可能ではない場合、問題が発生したり、特徴が不足したり、最悪の場合、詐欺および／または悪用が発生すると、すぐに信用を失う。最も悪名高い問題のうちの１つは、よく知られている分散型自律組織（ＤＡＯ：decentralized autonomous organization）攻撃であり、これは、ＤＬＴコミュニティ全体に懸念を引き起こし、外部の観察者を混乱させた。
【００１６】
[0026]それらがいかに良好に設計または試験されていても、スマートコントラクトは、破壊、乱用、および／または悪用の影響を受けない訳ではない。不変性は、再展開、ホットフィックス／パッチの適用、および／または、コードのバージョン管理に慣れている多くの開発者にとって新しい概念であるため、この保全性の欠如はしばしばチェックされない。スマートコントラクト（および、特に証券トークンを実施するスマートコントラクト）へのアップグレードパスを設計することによって、本システムおよび方法により、発行者は、システムのユーザへの影響を少なくして、スマートコントラクトの基礎となるコードに変更を加えることができる。
【００１７】
[0027]スマートコントラクトを更新する必要があることを許容することにより、アップグレード可能性を、事前に設計できる。上記のように、スマートコントラクトでは、監査可能であることが望ましい。したがって、本明細書で説明されるアップグレード可能な証券トークンは、（リンクされたリストと同様に）証券トークンの異なるバージョンを、時系列順に辿ることを可能にする。これにより、監査を実行する明確な機能が可能になると同時に、置き換えられたコントラクトがあるとしか知らない場合に、最新の実施をナビゲートする簡単な手法が提供される。
【００１８】
[0028]それに加えて、親コントラクトにおける古いトークンの保有者が、その保有物を、子孫コントラクトにおける新しいトークンに移動することを可能にすることによって、古いコントラクトから新しいコントラクトに状態を遷移させることも望ましい。これは、アップグレードパスにいくつかの特徴を提供する。まず、古いコントラクトのトークン保有物が、その子孫のアドレスに送信される。これは基本的に、これらのトークンのロック／書き込み（burn）／循環からの削除、を行い、古いコントラクトからの状態情報を保全しながら、保有者が保有物を移動したときの監査証跡を提供する。これにより、所与のコントラクトが最新であるか否か、またはアップグレードパスのどこにあるかが明らかになり得る。次に、誰が保有物の遷移を決定し、誰が決定しなかったのかを確認し、アップグレードされた変更を選択するか否か、または許容するか否かに関する制御を、ユーザに与える。「親」と「子」のスマートコントラクトの代わりに、「第１」と「第２」または、「先任者」と「後継者」という用語も使用され得る。
【００１９】
[0029]本明細書におけるアップグレード可能な証券トークンに関する１つの重要な変更は、従来のソリューションと比較した場合、資産／証券トークンが潜在的に複数のアドレスを有する可能性があることである。証券トークンの履歴を辿ってアクティブな資産／証券トークンを見つける簡単な機能がある限り、複数のアドレスを使用して実施するのに障害が発生することはない。
【００２０】
[0030]不変性は、ブロックチェーン空間内の重要な概念であると同時に、保全性に関する障害でもあるため、イーサリアムエコシステム内のアップグレード可能なスマートコントラクトにおいて、多くの試みがなされてきた。多くのソリューションで共有される１つの概念は、（本システムおよび方法とは対照的に）固定された不変のコントラクトアドレスである。
【００２１】
[0031]具体的には、「プロキシパターン」は、不変性が提供する固有の障害に対する一般的なソリューションとして現れるが、実施は、格納されたデータを保持するために永久ストレージ、ハブアンドスポーク、または他の手段の形態も使用する傾向がある。プロキシパターンは、コントラクトの現在の実施のアドレスを保有することを唯一の目的とする単一の代理コントラクトである。代理コントラクトは、低レベルのＳｏｌｉｄｉｔｙオペコード（デリゲートコール）を使用して呼び出され得る。この場合、代理コントラクトは、イニシエータのアドレスを、コントラクトの実際の実施に渡す。このように、代理コントラクトのアドレスは、アップグレード間で変更がない。代わりに、コントラクトをアップグレードするために、新しいコードが展開され、代理コントラクト内に保有されているアドレスフィールドが更新され、変更を含む新しく展開されたバージョンを指す。これは、代理コントラクトの実施内でバグや他の問題が発見されるまで、保全のために便利である。代理コントラクトにおいて脆弱性が発見された場合、これは、採用を妨げる可能性がある。
【００２２】
[0032]第２の潜在的な問題は、代理コントラクトの委託に関して生じる。代理コントラクト内のポインタはいつでも変更される可能性があり、透明性を覆い隠しながら、ブロックチェーンの不変の性質を本質的に回避する。本システムおよび方法は、完全なアップグレード履歴を保持することによって、これらの欠点に対処する一方で、所与のアドレスの機能が、初期状態から変更されるのを防ぐ。
【００２３】
[0033]本明細書で説明される例は、保管人が、投資家および／またはブローカディーラに代わってトークンを保有する、保管モデルと互換性があり得る。しかしながら、ここでのシステムは、非保管モデルとも互換性があり、たとえば、投資家および／またはブローカディーラは、仲介者が少ないかまったくない状態でトークンを直接保有する。
【００２４】
[0034]本明細書では、例として様々な方法名が使用され得る。方法名は説明することを目的するものであり、限定するものではないことを認識されたい。それに加えて、任意選択のデバイスおよび方法ステップが、図に破線で示される。
【００２５】
[0035]図１は、アップグレード可能なスマートコントラクトベースの証券トークン１０２を使用する例示的なシステム１００のブロック図である。システム１００は、１つまたは複数の証券トークン１０２と、システム所有者１１２と、発行者１１４と、分散型台帳１２２を実施する少なくとも１つのネットワークノード１４０とを含み得る。システム１００はまた、以下に説明されるように、様々な任意選択のエンティティおよび／またはデバイスを含み得る。
【００２６】
[0036]例では、証券トークン１０２／スマートコントラクトにおける各トークンは、会社の単一のシェアを表し得る。証券トークン１０２は、分散型台帳１２２（たとえば、ブロックチェーン）で実施（たとえば、格納）され得る。証券トークン１０２は、１つまたは複数のスマートコントラクトを使用して実施され得る。証券トークン１０２は、それ自体の状態の表示、たとえば、発行されたトークンの数、どのアドレスがいくつのトークンを保有するかなどを格納し得る。
【００２７】
[0037]投資家１２０は、トークンを以前に有している、または検討している、受信している、または移動している個人またはエンティティであり得る。例では、投資家１２０は、ブローカディーラ１１８（または、保管人１１６の直接）の顧客であり得、投資家１２０は、１つまたは複数のトークンの購入および／販売に関する注文を、ブローカディーラ１１８に（または、保管人１１６に直接）送信し得る。あるいは、投資家１２０は、ブローカディーラ１１８または保管人１１６に接続する必要のない「外部投資家」であり得る。代わりに、外部投資家は、たとえば、以下に説明されるトークン１０２／スマートコントラクト自体および／またはグローバルレジストリ１０８における方法のように、トークントランザクションを開始するために本明細書で説明される関連する方法を呼び出し得る。
【００２８】
[0038]「トークントランザクション」または同様の用語は、証券トークン１０２の任意の移動を指し、トークンの移動によって実行される発行、提供、贈与、購入、販売、および／または従業員補償を説明するために使用され得る。トークン１０２トランザクションは、（１人または複数の投資家１２０、ブローカディーラ１１８、および／または保管人１１６に属する）１つまたは複数の入力アドレスから、（１人または複数の投資家１２０、ブローカディーラ１１８、および／または保管人１１６に属する）少なくとも１つの出力アドレスに、大量のトークンを移動し得る。本明細書で使用される場合、「買い手」および「売り手」という用語は、それぞれトークンを移動および受信する投資家１２０を指す。トークントランザクションは、オンエクスチェンジまたはオフエクスチェンジで実行され得る。
【００２９】
[0039]システム１００内のブローカディーラ１１８は、自身の口座のために、および／または、その顧客に代わって、トークンを購入または販売する個人またはエンティティであり得る。オンボーディング中に、ブローカディーラ１１８は、情報の収集を含む、新しい顧客のための口座を作成することができ、たとえば、ブローカディーラ１１８は、投資家１２０を新しい顧客としてオンボーディングし得る。これは、たとえば、アイデンティティサービスプロバイダ１２６によって提供される、その顧客に対して、マネーロンダリング防止および／または顧客確認（ＡＭＬ（anti-money laundering）／ＫＹＣ(know-your-customer)）チェックを実行することを含み得る。
【００３０】
[0040]発行者１１４は、トークンを発行するように所有者１１２に指示する個人またはエンティティであり得、すなわち、所有者１１２は、証券トークン１０２を展開／発行する１つまたは複数の発信元のスマートコントラクト１１３を所有し得る。システム１００は、任意選択で、多くの発行者１１４を含み得る。例では、発行者１１４は、会社であり得、証券トークン１０２内の各トークンは、会社のシェアを表す。
【００３１】
[0041]ブローカディーラ１１８は、保管人１１６、すなわち、１人または複数のブローカディーラ１１８のトークンの保管、所持、および／または所有権を保有する個人またはエンティティを有する口座を有し得る。保管人１１６は、多くのブローカディーラ１１８（ブローカディーラ１１８がその顧客として多くの投資家１２０を有する可能性がある）に代わってトークンの保管、所持、および／または所有権を保有する個人またはエンティティであり得る。システム１００は、多くの保管人１１６および／または多くのブローカディーラ１１８を含み得る。
【００３２】
[0042]所有者１１２は、システム１００においてスマートコントラクトを所有、展開、再展開、および／または移動する個人またはエンティティであり得る。例では、所有者１１２は、発信元のスマートコントラクト１１３への（たとえば、仮想マシンによって実行される）方法呼出しを使用して、証券トークン１０２を展開／発行し得る。所有者１１２は、システム１００の管理者と呼ばれ得る。システム１００は、１人または複数の所有者１１２のみを有し得る。任意選択で、所有者１１２は、システム１００において実行されるトークントランザクションに基づいて、トークンの「市場」を説明するデータサービス、たとえば、トークントランザクションの量、最新のトークントランザクションのトランザクション価格などを示すフィードを提供し得る。
【００３３】
[0043]上記で説明されるように、所有者１１２、発行者１１４、保管人１１６、ブローカディーラ１１８、および投資家１２０という用語は、システム１００において様々な役割を果たす個人またはエンティティを指し得る。あるいは、これらの用語は、それぞれ、所有者１１２、発行者１１４、保管人１１６、ブローカディーラ１１８、および投資家１２０によって使用されるコンピューティングデバイスを指し得る。コンピューティングデバイスを指す場合、所有者１１２、発行者１１４、保管人１１６、ブローカディーラ１１８、および投資家１２０の各々は、それぞれのコンピューティングデバイス上のメモリ内の命令を実行する１つまたは複数のプロセッサで実施され得る。各それぞれのコンピューティングデバイスは、命令および／または他のデータを他のコンピューティングデバイスと、たとえば、インターネットのようなネットワーク１３８を介して送受信するように構成されたセル電話もしくはタブレットなどのモバイルデバイス、パーソナルコンピュータ、またはサーバであり得る。
【００３４】
[0044]証券トークン交換部１２４は、証券トークン１０２、商品、デリバティブ、および／または他の金融商品が取引きされる市場、または市場を運営する事業体（または、証券トークン交換部１２４によって運営される１つまたは複数のコンピューティングデバイス）であり得る。例では、証券トークン交換部１２４は、分散型台帳１２２に、正常に実行されたトランザクションを記録し得る。証券トークン交換部１２４は、保管するところ、すなわち、保管人１１６が、ブローカディーラ１１８および／または投資家１２０に代わってトークンを保有およびトランザクトするところである。
【００３５】
[0045]ネットワークノード１４０は、本明細書で説明される機能を実施するためにメモリに格納された命令を実行する１つまたは複数のプロセッサを使用して実施されるコンピューティングデバイスであり得る。例では、ネットワークノード１４０は、本明細書で説明されるスマートコントラクトのいずれかを実行する仮想マシン（たとえば、イーサリアム仮想マシン）を実行し得る。
【００３６】
[0046]「分散型台帳」という用語は、複数の相互接続されたネットワークノード１４０（すなわち、メモリに格納された命令を実行するコンピューティングデバイス）に分散され、ここでは、ネットワークノード１４０のうちの２つ以上が、分散型台帳１２２のコピーを格納する。例では、ピアツーピアネットワーク内の１つまたは複数のネットワークノード１４０は、分散型台帳１２２を実施し得る。
【００３７】
[0047]分散型台帳１２２は、分散型台帳１２２内に格納されたデータを検証するために、１つまたは複数のブロックチェーンを実施し得る。ブロックチェーンは、そのブロックを検証する各ブロックに、プルーフオブワークシール（proof-of-work seal）（ハッシュなど）が貼付された、一度に１つのブロックで構築される検証可能な永久的な台帳である。ブロックチェーンでは、以前のブロックのハッシュが現在のブロックに含まれているため、再帰によって、現在のハッシュは以前のすべてのブロックを検証して、元の起源のブロックに戻す。ブロックチェーンへのハッシュの挿入は、そのハッシュを永久に記録し、そのブロックがチェーンに追加された時点でのハッシュデータのタイムスタンプ付きの存在証明を検証する公証として機能する。将来のブロックは、チェーンに格納されたデータの操作、またはチェーンの再編成からの保護の層を追加するため、チェーンの早期のブロックに変更を加えることができないという追加的な確証を提供する。ブロックチェーンは、分散型台帳１２２の実施であり、公開されている（たとえば、誰でも見ることができる）か、またはプライベート（たとえば、許可されたユーザまたはエンティティのみが見ることができる）であり得る。例示的なブロックチェーンは、ビットコインブロックチェーン、イーサリアムブロックチェーン、ＢｉｇｃｈａｉｎＤＢ、Ｂｉｌｌｏｎ、Ｃｈａｉｎ、Ｃｏｒｄａ、Ｃｒｅｄｉｔｓ、Ｅｌｅｍｅｎｔｓ、Ｍｏｎａｘ、Ｆａｂｒｉｃ、ＨｙｄｒａＣｈａｉｎ、Ｈｙｐｅｒｌｅｄｇｅｒ、Ｍｕｌｔｉｃｈａｉｎ、Ｏｐｅｎｃｈａｉｎ、Ｑｕｏｒｕｍ、Ｒａｖｅｎｃｏｉｎ、Ｓａｗｔｏｏｔｈ、およびＳｔｅｌｌａｒを含むが、これらに限定されない。好ましくは、分散型台帳１２２は、公開されたイーサリアムブロックチェーンであるが、しかしながら、他の実施も可能である。プライベートブロックチェーンが使用されている場合、公開されたブロックチェーンのハッシュは、定期的にパブリックブロックチェーン、たとえば、イーサリアムブロックチェーンまたはビットコインブロックチェーンなどにコミット（つまり、記録）され得る。
【００３８】
[0048]それに加えて、そのまたは代わりに、分散型台帳１２２は、システム１００のネットワークノード１４０間で情報を共有するためにゴシッププロトコル（gossip protocol）を使用する有向非巡回グラフ（ＤＡＧ）、たとえば、ＩＯＴＡまたはＨａｓｈｇｒａｐｈを実施し得る。さらに、プルーフオブワークなしで、分散型台帳１２２において、コンセンサスに達することができ、代わりにプルーフオブステークを使用できる。さらに、暗号ハッシュを使用して異なるデータのセットを接続する任意のマークルツリー（またはハッシュツリー）は、分散型台帳１２２によって実施され得る。
【００３９】
[0049]「ウォレット」という用語は、トークンなどのデジタル資産を格納および／または管理するために使用されるソフトウェアプログラム、デジタルファイル、および／またはメモリを指す。本明細書では、本システムおよび方法は、トークンを使用して説明されるが、任意の種別のデジタル資産とも互換性がある。例では、ウォレットは、１つまたは複数の秘密鍵、１つまたは複数の秘密鍵から派生した１つまたは複数の公開鍵、および／または、１つまたは複数の秘密鍵および／または１つまたは複数の公開鍵から導出された１つまたは複数のアドレスによって定義され得る。例では、ウォレットは、１つまたは複数の秘密口座鍵（および、任意選択の、対応する公開口座鍵）によって定義され得、各鍵は、１つまたは複数の子トランザクション鍵および／または孫トランザクション鍵を有し得る。「口座」という用語は、分散型台帳１２２におけるアドレス、たとえば、階層決定論的（ＨＤ）ウォレットにおけるイーサリアムアドレスを指すために使用され得る。
【００４０】
[0050]Ｅｔｈｅｒｅｕｍ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ２０（ＥＲＣ２０）は、一組の方法を定義する規格である。ＥＲＣ２０に準拠するために、暗号トークン（たとえば、ユーティリティ、暗号通貨、または証券）は、これらの方法を実施しなければならないが、証券トークン１０２の所有者は、独自の手法でこの方法を実施できる。ＥＲＣ２０の利点の１つは、各アプリケーション、ウォレット、交換部、またはインターフェースを、各々特定の証券トークン１０２に合わせて調整する必要がないことである。むしろ、プロジェクトが、ＥＲＣ２０規格をサポートする場合、プロジェクトは、多くの異なるＥＲＣ２０証券トークン１０２をサポートし得る。
【００４１】
[0051]ＥＲＣ２０に準拠するために、証券トークン１０２は、ｔｏｔａｌＳｕｐｐｌｙ（）、ｂａｌａｎｃｅＯｆ（）、ｔｒａｎｓｆｅｒ（）、ｔｒａｎｓｆｅｒＦｒｏｍ（）、ａｐｐｒｏｖｅ（）、およびａｌｌｏｗａｎｃｅ（）を含む６つの必須の方法を実施するトークンロジックおよび／またはパラメータ１０４を含み得る。これらの必須の方法は、トークンを移動できる方法と、トークン関連のデータにアクセスできる方法とを説明する。トークンロジック／パラメータ１０４はまた、ＥＲＣ２０に準拠するための様々なイベント、たとえば、Ｔｒａｎｓｆｅｒ（）およびＡｐｐｒｏｖａｌ（）を実施し得る。これらのイベントは、移動と承認のためのフォーマットガイドラインを説明する。
【００４２】
[0052]トークントランザクションが要求されたときにｔｒａｎｓｆｅｒ（）方法／関数１０９を呼び出すことができ、ｔｒａｎｓｆｅｒ（）方法１０９は、任意選択で、１つまたは複数の他のスマートコントラクトにおける、たとえば、トークンロジック／パラメータ１０４および／またはグローバルレジストリ１０８における方法を呼び出し得る。ｔｒａｎｓｆｅｒ（）方法１０９は、トークンを、入力アドレスから、少なくとも１つの出力アドレスに移動する、任意の適切な手法で実施され得る。
【００４３】
[0053]トークンロジック／パラメータ１０４はまた、ｎａｍｅ（）、ｓｙｍｂｏｌ（）、および／またはｄｅｃｉｍａｌｓ（）など、ＥＲＣ２０に準拠するための１つまたは複数の任意選択の方法を実施し得る。これらの任意選択の方法を使用して、証券トークン１０２に名前およびシンボルを割り当て、ならびに証券トークン１０２がそれぞれ使用するいくつかの小数を定義できる。これらの方法およびイベントは、ネットワークノード１４０上の仮想マシン（たとえば、イーサリアム仮想マシン）によって実行され得、ＥＲＣ２０規格においてさらに説明される。
【００４４】
[0054]トークンロジックおよび／またはパラメータ１０４はまた、証券トークン１０２の名前、同じ種別のトークンがいくつ展開または発行されたか、および／または証券トークン１０２のシンボル、を示すデータを含み得る。例では、証券トークン１０２のシンボルは、株式ティッカシンボルと同様、証券トークン１０２の複数文字（たとえば、４つまたは５つ）の識別子であり得る。証券トークン１０２のシンボルは、金融業界規制当局（ＦＩＮＲＡ）に登録され得る。会社によって発行された証券トークン１０２シンボルは、たとえば、特定の文字（たとえば、Ｑ、Ｘ、またはＺ）が、会社のティッカシンボルの末尾に連結された、好ましくは、会社のティッカシンボルの拡張バージョンであり得る。
【００４５】
[0055]証券トークン１０２はまた、たとえば、分散型台帳１２２に格納された残高表１０５を含み得る。残高表１０５は、トークンのすべての保有者の残高を示し得、たとえば、残高表１０５は、どのアドレス（たとえば、イーサリアムアドレス）が、どれだけの量のトークンを保有しているのかを示し得る。あるいは、投資家１２０（または保管人１１６またはブローカディーラ１１８）のアドレスによるインデクス付けの代わりに、残高表１０５は、他の手法、たとえば、投資家の名前のハッシュなどでインデクス付けされ得る。証券トークン１０２の残高表１０５は、公開、準公開、または非公開であり得、特定の投資家１２０、保管人１１６、またはブローカディーラ１１８によって保有されたトークンの残高が、公共利用可能な情報から純粋に導出され得ないように匿名であり得る。
【００４６】
[0056]残高表１０５は、展開または発行されたすべてのトークンを説明できる。トークンの移動が発生すると（すなわち、残高に変更があると）、残高表１０５が更新され、異なるネットワークノード１４０において格納された証券トークン１０２の各コピーに配布され得る。例では、証券トークン１０２におけるトークンの移動は、証券トークン１０２における残高表１０５を更新することを含み得る。表１は、各投資家アドレスの鍵／値のペアを含む残高表１０５の例である。
【００４７】
【表１】
2021534486.tif 000003
【００４８】
いくつかの例では、残高表１０５は、（表１における左列に示される）アドレスによってインデクス付けされ、各インデクスの値が、アドレスに関連付けられた（表１における右列に示される）トークン残高であるマルチオブジェクトデータ構造（たとえば、配列）として格納され得る。
【００４９】
[0057]いくつかの構成では、証券トークン１０２は、たとえば、分散型台帳１２２に格納される、トークン供給パラメータ１１５を含み得る。トークン供給パラメータ１１５は、未処理のトークンの総数を示し得る。たとえば、トークン供給パラメータ１１５は、証券トークン１０２の残高表１０５におけるすべてのアドレスのトークン残高の合計であり得る。
【００５０】
[0058]しかしながら、（他の種別のトークンとは異なり）証券トークン１０２は、米国において証券取引委員会（ＳＥＣ）によって規制され得る。したがって、多くの上場企業がデラウェア州に設立されているために重要である、一般会社法に関連するデラウェア州法の第８編を満たすことが望ましい場合がある。第８編を満たす追加の方法は、本明細書では第８編方法と呼ばれ、たとえば、Ｅｔｈｅｒｅｕｍ  Ｒｅｑｕｅｓｔ  ｆｏｒ  Ｃｏｍｍｅｎｔｓ  ８８４（ＥＲＣ８８４）の有無に関わらず、様々な手法で実施され得る。具体的には、第８編方法では、各トークンが、デラウェア州法人によって発行された単一のシェアを表すトークンの作成が可能であり、つまり、そのようなトークンは、秘密か公開かに関わらず、デラウェア州法人によって発行されたエクイティを表すように設計され得る。
【００５１】
[0059]したがって、トークンロジックおよび／またはパラメータ１０４は、ａｄｄＶｅｒｉｆｉｅｄ（）、ｒｅｍｏｖｅＶｅｒｉｆｉｅｄ（）、ｕｐｄａｔｅＶｅｒｉｆｉｅｄ（）、ｃａｎｃｅｌＡｎｄＲｅｉｓｓｕｅ（）、ｉｓＶｅｒｉｆｉｅｄ（）、ｉｓＨｏｌｄｅｒ（）、ｈｏｌｄｅｒＣｏｕｎｔ（）、ｈｏｌｄｅｒＡｔ（）、ｈａｓＨａｓｈ（）、ｉｓＳｕｐｅｒｓｅｄｅｄ（）、および／またはｇｅｔＣｕｒｒｅｎｔＦｏｒ（）を含む、（ＥＲＣ２０によって必要とされる６つを超える）１つまたは複数の第８編方法を実施し得る。トークンロジック／パラメータ１０４はまた、たとえば、ｖｅｒｉｆｉｅｄＡｄｄｒｅｓｓＡｄｄｅｄ（）、ＶｅｒｉｆｉｅｄＡｄｄｒｅｓｓＲｅｍｏｖｅｄ（）、ＶｅｒｉｆｉｅｄＡｄｄｒｅｓｓＵｐｄａｔｅ（）、および／またはＶｅｒｉｆｉｅｄＡｄｄｒｅｓｓＳｕｐｅｒｓｅｄｅｄ（）のように、（ＥＲＣ２０互換性のために必要とされる６つを超える）１つまたは複数のイベントを実施し得る。これらの第８編方法およびイベントは、ネットワークノード１４０上の仮想マシンによって実行され得る。
【００５２】
[0060]しかしながら、ＳＥＣ規制は、ＥＲＣ２０および／または第８編方法によって要求または執行されない証券トークン１０２に追加の要件を課す。ＳＥＣ規制への準拠を自己執行するために、システム１００は、第８編方法を超える機能を実施し得る。具体的には、１つまたは複数のコンプライアンス規則１０６Ａ〜１０６Ｂは、証券トークン１０２を含むあらゆるトランザクションが、関連するＳＥＣ規制に準拠することを保証し得る。例では、コンプライアンス規則１０６は、（１）トークンの買い手および／または売り手が、ＳＥＣ規則Ａ、Ｄ、およびＳの少なくとも１つの下で適格であることを検証し得、（２）買い手および／または売り手に対して、ＡＭＬおよび／またはＫＹＣサービスが実行されていることを検証し得、（３）トークンの移動を妨げるフリーズ（以下で説明する）が設定されていないことを検証し得、ならびに／あるいは（４）特定の証券トークン１０２が、ブラックアウト期間、すなわち、トークンの取得後の特定の期間（たとえば、１年）の間、売り手がトークンを販売することを妨げる制限にないことを検証し得る。
【００５３】
[0061]いくつかの構成では、コンプライアンス規則１０６Ａは、証券トークン（たとえば、分散型台帳１２２）に格納され得る。あるいは、証券トークン１０２は、少なくとも１つのコンプライアンス規則ポインタ１０７を含み得、各コンプライアンス規則ポインタ１０７は、（１つまたは複数のスマートコントラクトを使用して実施される）少なくとも１つの外部のコンプライアンス規則１０６Ｂのアドレスを示す。この種の構成では、少なくとも１つのコンプライアンス規則ポインタ１０７は、必要に応じて、更新された外部のコンプライアンス規則１０６Ｂを指すように更新され得る。
【００５４】
[0062]コンプライアンス規則１０６のうちの少なくとも１つは、（証券トークン１０２の外部にある）グローバルレジストリ１０８を参照することができ、すなわち、コンプライアンス規則１０６のうちの少なくとも１つは、データストレージスマートコントラクト１２８に格納された情報にアクセスする。コンプライアンス規則１０６を、証券トークン１０２の外部に格納することにより、たとえば、ＳＥＣ規制に変更があり、少なくとも１つのコンプライアンス規則１０６を更新する必要がある場合、証券トークン１０２自体を修正することなく、少なくとも１つのコンプライアンス規則１０６が更新され得る。あるいは、少なくとも１つのコンプライアンス規則１０６が、証券トークン１０２自体に含められ得る。その場合、少なくとも１つのコンプライアンス規則１０６を修正する（たとえば、破棄および再展開する）には、証券トークン１０２を修正する必要がある。任意選択で、いずれのコンプライアンス規則１０６をも使用しないトークントランザクションも可能であり、たとえば、デフォルト動作は、あらゆるコンプライアンス規則１０６に関係なく、すべてのトランザクションを承認することであり得る。
【００５５】
[0063]グローバルレジストリ１０８は、スマートコントラクト１２８〜１３４の集合であり得る。スマートコントラクト１２８〜１３４は、データを格納するデータストレージスマートコントラクト１２８を含む。データストレージスマートコントラクト１２８に格納されたデータは、（投資家１２０が、ＳＥＣ規制の免除下で適格であるか否かの表示など）ＳＥＣ規制への準拠、投資家１２０の個人識別可能情報（ＰＩＩ）、投資家１２０に対してＡＭＬ／ＫＹＣが実行されたか否かを示す表示、ならびに／あるいは、フリーズが、証券トークン１０２、保管人１１６、ブローカディーラ１１８、および／または投資家１２０に設定されたか否か、に関連し得る。
【００５６】
[0064]データストレージスマートコントラクト１２８におけるデータ構造１１０は、各々が特定の投資家１２０に関する情報を有する少なくとも１つの投資家要素を格納し得る。それに加えて、各投資家要素は、投資家のブローカディーラ１１８のアドレス（たとえば、イーサリアムアドレス）、および／または様々な規制認定情報（たとえば、ＡＭＬ／ＫＹＣが投資家１２０に対して実行されたか否か、投資家１２０の出身国、特定のトークンが投資家１２０によって所有されている時間の長さなど）を含み得る。投資家要素における属性は、たとえば、オンボーディング中にブローカディーラ１１８によって収集された、投資家１２０に関する他の情報を含み得る。そのような情報は、顧客名、納税者識別番号（たとえば、社会保障番号）、住所、電話番号、電子メールアドレス、生年月日、運転免許証、パスポート情報、もしくは他の政府発行の身分証明書からの情報、雇用状況および職業、顧客が仲介企業に雇用されているか否か、年収、純資産、口座投資目的、ならびに／または、個人の身元を区別するために使用できる他の任意のデータを含み得る。
【００５７】
[0065]投資家要素における属性（たとえば、投資家要素におけるスロットの値）は、たとえば、図２Ａに示されるように、コンマ区切り値、ハッシュテーブル、マッピング、辞書、および／または、鍵／値のペアなどとして格納され得る。各投資家要素は、所有者１１２、発行者１１４、ブローカディーラ１１８、保管人１１６、および／または（たとえば、投資家１２０が外部投資家である場合）投資家１２０によって作成され得る。データストレージスマートコントラクト１２８における投資家要素は、必要に応じて更新され得る。たとえば、投資家１２０がブローカディーラ１１８との口座を閉鎖するとき、対応する投資家要素は、データストレージスマートコントラクト１２８から削除され得る。それに加えて、またはその代わりに、投資家１２０は、たとえば、投資家１２０が外部投資家である場合、自身に関連付けられた投資家要素２２３における属性を作成、更新、および／または削除する責任を負い得る。
【００５８】
[0066]データストレージスマートコントラクト１２８は、投資家１２０が口座を有するブローカディーラ１１８ごとに、投資家１２０の各インスタンスの投資家要素を含み得る。すなわち、データストレージスマートコントラクト１２８は、複数のブローカディーラ１１８に口座を有する投資家１２０のための複数の投資家要素を格納し得る。例では、投資家１２０の投資家要素は、投資家１２０が関連付けられているブローカディーラ１１８によってのみ作成、更新、および／または削除され得るが、他の構成が可能である。したがって、各ブローカディーラ１１８は、好ましくは、それぞれのブローカディーラ１１８の顧客である投資家１２０に関連付けられた投資家要素を作成、修正、または削除し得る。
【００５９】
[0067]任意選択で、１つまたは複数の他の種別の要素は、システム１００内の様々なアクタに関する属性を含むデータストレージスマートコントラクト１２８に格納され得る。例では、他の要素（すなわち、投資家要素以外）は、少なくとも１つの保管人要素、少なくとも１つのブローカディーラ要素、および／または、少なくとも１つの証券トークン要素を含み得る。例では、ブローカディーラ１１８のブローカディーラ要素は、ブローカディーラ１１８が関連付けられる保管人１１６によってのみ作成、更新、および／または削除され得るが、他の構成が可能である。任意選択で、発行者要素および／または証券トークン交換要素は、システム内のすべての発行者１１４および／または証券トークン交換部１２４のために格納され得る。他の要素のうちの１つの要素における属性（たとえば、要素におけるスロットの値）は、コンマ区切り値、ハッシュテーブル、マッピング、辞書、および／または、鍵／値のペアなどとして格納され得る。
【００６０】
[0068]上記で説明されるように、各スマートコントラクト（たとえば、証券トークン１０２）は、スマートコントラクトによって実施される方法を呼び出すために使用できるアドレスにおいて格納され得る。スマートコントラクトをアップグレードするための従来のソリューションは、アップグレードの前後でスマートコントラクトのために同じアドレスを維持する。たとえば、プロキシパターンを介したスマートコントラクトのアップグレードは、（１）変更がないアドレスにおける代理コントラクト、および（２）代理コントラクトが指す非代理コントラクトを展開することを含む。非代理コントラクトは、コントラクトの実質的な機能を実施するが、代理コントラクトは、（他の機能はほとんど、またはまったくない）非代理コントラクトのアドレスを指すだけである。アップグレード中に、代理コントラクトが指すアドレスは、新しく展開された非代理コントラクトに変更されるが、代理コントラクトのアドレス（代理コントラクトが呼び出されるアドレス）は変更されない。
【００６１】
[0069]対照的に、本システムおよび方法によれば、第１のスマートコントラクトをアップグレードすることは、（１）第２のスマートコントラクトを展開し、第２のスマートコントラクトを指すように（第１のスマートコントラクトのアップグレードされたアドレス１１１フィールドにおける）アドレスを変更すること、（２）第２のスマートコントラクトにおける新しいトークン１０２を、中間アドレス（たとえば、発行者のアドレス）に発行すること、（３）（トークン保有者アドレスのセットに保有された）第１のスマートコントラクトにおける古いトークン１０２を、第２のスマートコントラクトのアドレスに移行すること、および（４）第２のスマートコントラクトにおける新しいトークンを、中間アドレスから、（第１のスマートコントラクトにおいて以前に古いトークン１０２を保有していた）トークン保有者アドレスのセットに移動することを含み得る。したがって、第１のスマートコントラクトは展開されたままであり、必要に応じて、アップグレード後も監査可能である。なぜなら、第１および第２のスマートコントラクトの両方が、閲覧可能／検索可能であるからである。
【００６２】
[0070]任意選択で、親アドレス１１７は、展開されるときに第２のスマートコントラクトに設定され得る。親アドレス１１７は、第１のスマートコントラクトのアドレスを指し得る。親アドレス１１７は、必要に応じて、トークン履歴を、逆時系列順に辿ることを可能にし得る。
【００６３】
[0071]（たとえば、証券トークン１０２のような）スマートコントラクトのアドレスは、スマートコントラクトにおいてアップグレードされたアドレス１１１フィールドとは異なることに留意されたい。スマートコントラクト「の」アドレスは、スマートコントラクトが分散型台帳において格納されているアドレスである。アップグレードされたアドレス１１１は、スマートコントラクトの後続バージョン（のアドレス）を指す値を有するスマートコントラクトにおけるフィールドである。
【００６４】
[0072]図２Ａは、図１に示されるシステム１００において使用されるデータ構造１１０を示すブロック図である。１つまたは複数のデータ構造１１０は、データストレージスマートコントラクト１２８に格納され得る。各データ構造１１０は、１つまたは複数の要素２２３Ａ〜２２３Ｍを含み得、各要素２２３は、特定の保管人１１６、ブローカディーラ１１８、または投資家１２０に対応する（すなわち、それらに関する情報を含む）。任意選択で、証券トークン要素２２３はまた、１つまたは複数のデータ構造１１０に格納され得る。
【００６５】
[0073]いくつかの構成では、特定のデータ構造１１０内のすべての要素２２３は、同じ種別のエンティティに対応し、たとえば、すべての要素２２３は、システム１００における投資家１２０に対応する。この構成では、データストレージスマートコントラクト１２８は、システム１００におけるすべての投資家１２０のための第１のデータ構造１１０、すべての保管人１１６のための第２のデータ構造１１０、すべてのブローカディーラ１１８のための第３のデータ構造１１０、および／またはすべての証券トークン１０２のための第４のデータ構造を含み得る。あるいは、特定のデータ構造１１０は、異なる種別のエンティティに対応する要素２２３を含み得、すなわち、投資家要素２２３、保管人要素２２３、およびブローカディーラ要素２２３は、単一のデータ構造に含まれ得る。
【００６６】
[0074]いくつかの構成では、各要素２２３は、２つのストレージスロット２１５Ａ〜２１５Ｎを含み得、ここで、各ストレージスロットは、固定されたバイト数である。たとえば、ストレージスロットは、３２バイト長（または任意の適切な長さ）であり得、たとえば、各ストレージスロット２１５は、Ｓｏｌｉｄｉｔｙプログラミング言語のスロットであり得る。各要素２２３は、２つのストレージスロット２１５（すなわち、Ｎ＝２Ｍ）を含むものとして図２Ａに示されているが、要素２２３は、単一のストレージスロット２１５（すなわち、Ｎ＝Ｍ）のみ、または３つ以上のストレージスロット２１５（すなわち、Ｎ＞２Ｍ）を含み得る。
【００６７】
[0075]各ストレージスロット２１５は、鍵２１９Ａ〜２１９Ｎおよび値２２１Ａ〜２２１Ｎ、すなわち、鍵／値のペアを含み得る。各鍵２１９は、要素２２３が対応するエンティティの種別（たとえば、保管人１１６、ブローカディーラ１１８、投資家１２０など）を示す第１のレベルと、特定のエンティティによって所有されるアドレス（たとえば、イーサリアムアドレス）を示す第２のレベルとを有するネスト構造であり得る。このようにして、鍵２１５は（エンティティの種別で）符号化され得る。アドレスによるインデクス付けの代わりに、鍵２１９の第２のレベルは、他の手法、たとえば、エンティティ／投資家／証券トークン名のハッシュなどでインデクス付けされ得る。任意選択で、鍵２１９は、３つ以上のレベルを含み得る。要素２２３が、２つのスロット２１５を含む場合、要素２２３の第１のストレージスロット２１５における鍵２１９は、要素２２３の第２のスロット２１５における鍵２１９と同じであり得るか、または異なり得る。
【００６８】
[0076]値２２１に含まれる情報は、要素２２３が対応するエンティティの種別に応じて変化し得る。データ構造１１０における各値２２１は、要素２２３が対応するエンティティの種別（たとえば、保管人１１６、ブローカディーラ１１８、投資家１２０など）を示す第１のレベルと、追加情報を示す１つまたは複数の追加のレベルとを有するネスト構造であり得る。このようにして、値２２１は、（エンティティの種別で）符号化され得、その結果、コンピューティングデバイス（たとえば、ネットワークノード１４０）は、値２２１におけるデータを解釈する方法を知る。言い換えれば、コンピューティングデバイス（たとえば、ネットワークノード１４０）は、符号化、すなわち、値２２１に示される種別に基づいて、値２２１におけるデータを異なる方式で解釈する。複数のパラメータをビットシフト（および／または連結）して、同じ値２２１に収まるようにできる。
【００６９】
[0077]たとえば、特定の投資家要素２２３における第１のストレージスロット２１５における値２２１は、第１のレベルにおける「投資家」を示す１つまたは複数のビットと、第２のレベルにおける投資家１２０のためのＰＩＩハッシュとを含み得る。さらに、投資家要素２２３における第２のストレージスロット２１５における値２２１は、投資家１２０の他の属性を示す１つまたは複数のビットを含み得る。
【００７０】
[0078]他のデータ構造１１０の例は、保管人要素２２３、ブローカディーラ要素２２３、および／または任意選択の証券トークン要素２２３を含む。各保管人要素２２３は、特定の保管人１１６に関する属性を含み得る。任意選択で、保管人要素２２３は、保管人要素２２３が関連付けられる１つまたは複数の投資家要素２２３、ブローカディーラ要素２２３、および／または証券トークン要素２２３のアドレス（たとえば、イーサリアムアドレス）を参照し得る。たとえば、保管人要素２２３は、保管人１１６が関連付けられる１人または複数のブローカディーラ１１８のアドレス（たとえば、イーサリアムアドレス）を含み得る。
【００７１】
[0079]各ブローカディーラ要素２２３は、特定のブローカディーラ１１８に関する属性を含み得る。特定のブローカディーラ要素２２３における値２２１は、第１のレベルにおける「ブローカディーラ」を示す１つまたは複数のビットと、第２のレベルにおけるブローカディーラ１１８に関する属性を示す１つまたは複数のビットとを含み得る。任意選択で、ブローカディーラ要素２２３は、ブローカディーラ要素２２３が関連付けられる１つまたは複数の投資家要素２２３、保管人要素２２３、および／または証券トークン要素２２３のアドレス（たとえば、イーサリアムアドレス）を参照し得る。たとえば、ブローカディーラ要素２２３は、ブローカディーラ１１８が関連付けられる１人または複数の保管人１１６のアドレス（たとえば、イーサリアムアドレス）を含み得る。
【００７２】
[0080]各証券トークン要素２２３は、特定の証券トークン１０２に関する属性を含み得る。任意選択の証券トークン要素２２３における値２２１は、第１のレベルにおける「証券トークン」を示す１つまたは複数のビットと、第２のレベルにおける証券トークン１０２に関する属性を示す１つまたは複数のビットとを含み得る。証券トークン１０２に関する様々な種別の情報は、証券トークン要素２２３の値に含まれ得る。
【００７３】
[0081]各任意選択の発行者要素２２３は、特定の発行者１１４に関する属性を含み得る。特定の任意選択の発行者要素２２３における値２２１は、第１のレベルにおける「発行者」を示す１つまたは複数のビットと、第２のレベルにおける発行者１１４に関する属性を示す１つまたは複数のビットとを含み得る。任意選択で、発行者要素２２３は、発行者１１４が関連付けられる１人または複数の投資家１２０、保管人１１６、ブローカディーラ１１８、および／または証券トークン１０２のアドレス（たとえば、イーサリアムアドレス）を参照し得る。
【００７４】
[0082]図２Ｂは、図１に示されるシステム１００におけるエンティティの階層を示すブロック図である。具体的には、図２Ｂは、システム１００の１人または複数の投資家１２０、任意選択の１人または複数のブローカディーラ１１８、任意選択の１人または複数の保管人１１６、および／または１人または複数の所有者１１２の間の関係を示す。
【００７５】
[0083]例では、図２Ｂにおける階層は、システム１００におけるデータ許可を定義し得る。階層は、任意の適切な形式で格納され得るか、および／または様々な要素２２３に格納されるデータにおいて暗黙的であり得る。
【００７６】
[0084]データ構造１１０は、複数のブローカディーラ１１８に口座を有する投資家１２０のために、複数の投資家要素２２３を格納し得る。例では、第１の投資家要素２２３Ａは、たとえば、第１のブローカディーラ１１８Ａによって実行されるオンボーディング中に、第１のブローカディーラ１１８Ａによって収集されたデータにしたがって、特定の投資家１２０を説明し得る。同様に、異なる投資家要素２２３Ｂは、たとえば、異なるブローカディーラ１１８Ｂによって実行されるオンボーディング中に、異なるブローカディーラ１１８Ｂによって収集されたデータにしたがって、同じ特定の投資家１２０を説明し得る。それに加えて、またはその代わりに、投資家要素１２０Ｉは、ブローカディーラ１１８または保管人１１６の顧客ではない外部投資家のために格納され得る。
【００７７】
[0085]グローバルレジストリ１０８を実施する任意のスマートコントラクトは、ネットワークノード１４０上で実行する仮想マシン（たとえば、イーサリアム仮想マシン）によって実行され得る。システム１００における各エンティティは、データストレージスマートコントラクト１２８に対して異なるデータ許可を有し得る。例では、所有者１１２は、自身の階層において、保管人１１６、ブローカディーラ１１８、および／または投資家１２０の要素を追加、削除、および／または変更し得る。保管人１１６は、自身の階層において、ブローカディーラ１１８および／または投資家１２０の要素を追加、削除、および／または変更し得る。ブローカディーラ１１８は、自身の階層において、投資家１２０の要素を追加、削除、および／または変更し得る。所有者１１２は、自身の階層において、保管人１１６、ブローカディーラ１１８、および／または投資家１２０の要素を追加、削除、および／または変更し得る。いくつかの構成では、投資家１２０は、２つのアドレス間で資金および／またはトークンを移動するｔｒａｎｓｆｅｒ（）方法１０９を呼び出す許可を有し得る。
【００７８】
[0086]図３は、アップグレード可能なスマートコントラクトの３つの異なるバージョン３０２Ａ〜３０２Ｃを示すブロック図である。言い換えれば、図３は、２回アップグレードされ、その結果、スマートコントラクトの第１のバージョン３０２Ａ、スマートコントラクトの第２のバージョン３０２Ｂ、およびスマートコントラクトの第３のバージョン３０２Ｃがもたらされるスマートコントラクト３０２を示す。いくつかの構成では、図３に示されるスマートコントラクト３０２は、上記で説明される証券トークン１０２を実施し得る。図３には示されないが、本明細書で説明される各スマートコントラクト３０２は、図１における証券トークン１０２について説明される同じ機能、方法、および／またはパラメータのいずれかまたはすべてを実施し得る。
【００７９】
[0087]各スマートコントラクト３０２は、その子孫である後続のコントラクトへのアドレスを保有する。このアドレスは、それぞれアップグレードされたアドレス１１１Ａ〜１１１Ｃフィールドにおける各スマートコントラクト３０２に格納され得る。スマートコントラクトの第１のバージョン３０２Ａにおけるアップグレードされたアドレス１１１Ａは、スマートコントラクトの第２のバージョン３０２Ｂのアドレスを指し、スマートコントラクトの第２のバージョン３０２Ｂにおけるアップグレードされたアドレス１１１Ｂは、スマートコントラクトの第３のバージョン３０２Ｃのアドレスを指す。このように、第３のバージョン３０２Ｃは、第１のバージョン３０２Ａの子／子孫である第２のバージョン３０２Ｂの子／子孫である。
【００８０】
[0088]スマートコントラクトの第３のバージョン３０２Ｃが現在のバージョンであると仮定すると、スマートコントラクトの第３のバージョン３０２Ｃのアップグレードされたアドレス１１１Ｃは、設定されていないことがあり、たとえば、すべてのビットが「０」に、すべてのビットが「１」に、またはスマートコントラクト３０２が実施される分散型台帳１２２におけるアドレスに対応しない他の任意の値に設定される。設定されていないアップグレードされたアドレス１１１Ｃは、スマートコントラクトの第３のバージョン３０２Ｃが、スマートコントラクト３０２の現在アクティブな実施、たとえば、スマートコントラクト３０２の直近に展開されたバージョンであることを意味する。いくつかの構成では、スマートコントラクト３０２におけるアップグレードされたアドレス１１１は、たとえば、分散型台帳１２２におけるスマートコントラクト３０２において実施される方法を呼び出すことによって、スマートコントラクト３０２の発行者１１４によって最初に設定され得る。
【００８１】
[0089]いくつかの構成では、アップグレードされたアドレス１１１フィールドは、一度設定されると変更されない。スマートコントラクト３０２においてアップグレードされたアドレス１１１フィールドを、スマートコントラクト３０２の同じ後続バージョンを指すように永久に設定しておくことは、スマートコントラクト３０２のアップグレード履歴が監査可能であることを保証する。スマートコントラクト３０２のアップグレードパスを監査するために、バージョンは、たとえば、第３のバージョン３０２Ｃから第２のバージョン３０２Ｂ、第１のバージョン３０２Ａへと逆方向に辿ることができる。監査以外に、スマートコントラクト３０２の存続期間中、逆方向に辿る必要はない。なぜなら、主な関心事は、指し示されたアドレスが、スマートコントラクト３０２のアクティブなバージョンであるか否かと、アクティブなバージョンではないのであれば、アクティブなバージョンへどうやって辿るかであるからである。
【００８２】
[0090]任意選択で、各スマートコントラクト３０２は、その親コントラクトへのアドレスを保有する。このアドレスは、親アドレス１１７Ａ〜１１７Ｃフィールドに格納され得る。スマートコントラクトの第１のバージョン３０２Ａが、最も古いバージョンであると仮定すると、スマートコントラクトの第１のバージョン３０２Ａにおける任意選択の親アドレス１１７Ａは、設定されていない可能性があり、たとえば、すべてのビットが「０」に、すべてのビットが「１」に、または、スマートコントラクト３０２が実施される分散型台帳１２２におけるアドレスに対応しない他の任意の値に設定され得る。スマートコントラクトの第２のバージョン３０２Ｂにおける任意選択の親アドレス１１７Ｂは、スマートコントラクトの第１のバージョン３０２Ａのアドレスを指し、スマートコントラクトの第３のバージョン３０２Ｃにおけるアップグレードされたアドレス１１７Ｃは、スマートコントラクトの第２のバージョン３０２Ｂのアドレスを指す。このように、第１のバージョン３０２Ａは、第３のバージョン３０２Ｃの親である第２のバージョン３０２Ｂの親である。
【００８３】
[0091]第１の例では、コントラクトがアップグレードされたとき、たとえば、アップグレードされたアドレス１１１および／または親アドレス１１７が設定されたとき、イベントが発行される。例では、（たとえば、投資家１２０、ブローカディーラ１１８、保管人、発行者１１４、所有者１１２、またはネットワークノード１４０に属する）デバイスは、そのようなイベントを傍受し得る。例では、イベントは、アップグレードされたアドレス１１１および／または設定された親アドレス１１７を示す。子スマートコントラクト３０２は、イベントにおいてアップグレードされたアドレス１１１を使用して直接呼び出され得る。
【００８４】
[0092]第２の例では、発呼デバイスは、任意選択で、親スマートコントラクト３０２を呼び出して、親スマートコントラクト３０２においてアップグレードされたアドレス１１１および／または親アドレス１１７が設定されているか否かを判定し得る。例では、子スマートコントラクト３０２におけるゲッタ関数（getter function）は、（その親を指す）親アドレス１１７を返し得、親スマートコントラクト３０２におけるゲッタ関数は、（その子を指す）アップグレードされたアドレス１１１を返し得る。例では、そのような関数は、アップグレードされたアドレス１１１および／または親アドレス１１７が設定されていないときにゼロアドレスを返し得る。
【００８５】
[0093]スマートコントラクト３０２が証券トークン１０２を実施する例では、スマートコントラクト３０２の各バージョンは、トークン供給パラメータ１１５を含み得る。トークン供給パラメータ１１５は、証券トークン１０２／スマートコントラクト３０２における未処理のトークンの総数を示し得、たとえば、トークン供給パラメータ１１５は、証券トークン１０２／スマートコントラクト３０２の残高表１０５におけるすべてのアドレスのトークン残高の合計であり得る。
【００８６】
[0094]スマートコントラクト３０２の後続バージョンが展開されると、発行者１１４（または所有者１１２）は、（スマートコントラクト３０２の後続バージョンの）総供給パラメータ１１５を、親バージョンの総供給パラメータ１１５と一致するように設定する。図３の例では、スマートコントラクトの第２のバージョン３０２Ｂの総供給パラメータ１１５Ｂは、スマートコントラクトの第２のバージョン３０２Ｂの展開後のスマートコントラクトの第１のバージョン３０２Ａの総供給パラメータ１１５Ａに等しくなるように設定され得る。同様に、スマートコントラクトの第３のバージョン３０２Ｃの総供給パラメータ１１５Ｃは、スマートコントラクトの第３のバージョン３０２Ｃの後続する展開後のスマートコントラクトの第２のバージョン３０２Ｂの総供給パラメータ１１５Ｂに等しくなるように設定され得る。
【００８７】
[0095]スマートコントラクト３０２が証券トークン１０２を実施する例では、各バージョン３０２はまた、証券トークン１０２／スマートコントラクト３０２の各バージョンにおいて発行されたトークンのトークン残高およびアドレスを示す残高表１０５Ａ〜１０５Ｃを含み得る。各残高表１０５におけるトークン残高およびアドレスは、スマートコントラクト３０２の状態の一部と見なされ得る。図４Ａ〜図４Ｄにおいて説明されるように、スマートコントラクトの親バージョンおよび子バージョンの両方の状態／残高表１０５は、親バージョンにおけるトークンの、子バージョンへの移行を反映するように更新され得る。
【００８８】
[0096]図４Ａ〜図４Ｄは、トークン１０２の、スマートコントラクト３０２の後続バージョンへの移行の異なる段階を示すブロック図である。図４Ａ〜図４Ｄの例では、アップグレードされたスマートコントラクト３０２は、証券トークン１０２を実施している。具体的には、図４Ａ〜図４Ｄの各々は、２つの残高表１０５を示し、左側の表１０５Ａは、（非推奨である）親スマートコントラクト３０２のために実施され、（および親スマートコントラクト３０２におけるトークンを追跡し）右側の表１０５Ｂは、親スマートコントラクト３０２の後続バージョンである子スマートコントラクト３０２のために実施される（および子スマートコントラクト３０２におけるトークンを追跡する）。子スマートコントラクト３０２のアドレスは、アドレスＤであると仮定する。言い換えれば、子スマートコントラクト３０２は、分散型台帳１２２のアドレスＤにおいて格納される。
【００８９】
[0097]図４Ａは、スマートコントラクト３０２の後続バージョンへのトークンの移行中の第１の段階を示す。まず、（左側の残高表１０５Ａによって表される）親スマートコントラクト３０２が、４５０の未処理のトークンを含む（総供給パラメータ１１５は、４５０に等しい）と仮定する。親スマートコントラクト３０２における未処理のトークンは、３つの異なるアドレス、すなわち、１００がアドレスＡへ、１５０がアドレスＢへ、２００がアドレスＣへ分散され得る。
【００９０】
[0098]子スマートコントラクト３０２の展開後、発行者１１４（または所有者１１２）は、親スマートコントラクト３０２におけるトークンが取引することを許可または制限することができる。取引を制限すると、受信者が、アップグレードされたアドレス１１１フィールドにおけるアドレス（この例ではアドレスＤ）と一致するアドレスではない限り、親スマートコントラクト３０２内でのすべての取引の発生を制限することによってアップグレードを強制し得る。言い換えれば、取引を制限することは、親スマートコントラクト３０２におけるトークンの保有者が、自分の保有物を、子スマートコントラクト３０２にしか移動できないことを意味する。移行後、（アドレスＤにおける）子スマートコントラクト３０２は、親スマートコントラクト３０２内の保有者になる。これは、保有者が、自分のトークンを、子スマートコントラクト３０２のアドレス（アドレスＤ）に移行／移動するときに疑似書込機能を提供すると同時に、アップグレード中のトークンの遷移の完全な監査証跡を提供する。
【００９１】
[0099]（右側の残高表１０５Ｂによって表される）子スマートコントラクト３０２は、最初に展開されたとき、未処理のトークン（総供給パラメータ１１５が０に等しい）またはトークン保有者を有さないので、残高表１０５Ｂは空になる。次に、アップグレードプロセスの一部として、子スマートコントラクトにおいて新しいトークン（親スマートコントラクト３０２の総供給パラメータ１１５に等しい数：４５０）が発行され、たとえば、子スマートコントラクト３０２において、発行者のアドレス１１４へ４５０の新しいトークンが発行される。（親スマートコントラクト３０２における）古いトークンがアドレスＤに移行されると、（子スマートコントラクト３０２における）対応する新しいトークンが、発行者のアドレスからトークン保有者アドレスに移動される。
【００９２】
[0100]図４Ｂ〜図４Ｄは、３つのアドレス（Ａ、Ｂ、およびＣ）に保有される（親スマートコントラクト３０２における）古いトークンの、子スマートコントラクト３０２のアドレス（アドレスＤ）への移行パスと、（子スマートコントラクト３０２における）新しいトークンの、発行者のアドレスから３つのアドレス（Ａ、Ｂ、およびＣ）への対応する移動とを示す。親スマートコントラクト３０２におけるトークンの取引を制限する代わりに、発行者１１４は、親スマートコントラクト３０２が、取引の継続を許可できることに留意されたい。親スマートコントラクト３０２が取引を継続する場合、親スマートコントラクト３０２におけるトークンは、子スマートコントラクト３０２のアドレス（アドレスＤ）以外のアドレスに移動され得る。たとえば、発行者１１４が、親スマートコントラクト３０２が取引を継続することを許可する場合、アドレスＡに関連付けられたトークン保有者は、（アドレスＤの代わりに）アドレスＢにそれらの５０のトークンを移動し得る。
【００９３】
[0101]将来のアップグレードは、図４Ａ〜図４Ｄに関連して説明したものと同じフローにしたがい、発行者１１４は、廃止された親スマートコントラクトにおけるトークンが、積極的に取引する（またはしない）ことを可能にする。（親スマートコントラクト３０２においてトークンが取引を継続することを許可されるか否かの）執行は、（１）トークン１０２／スマートコントラクト３０２自体において実施されたコンプライアンス規則１０６Ａ、および／または（２）トークン１０２／スマートコントラクト３０２の外部で実施されたコンプライアンス規則１０６Ｂにおいて生じ得る。言い換えれば、アップグレードが執行されることに応じて、親／非推奨のトークン１０２における（または、そうでなければ関連付けられた）コンプライアンス規則が執行される。これは、すべてのトークントランザクションが、子スマートコントラクト３０２のアドレス（アドレスＤ）へ送信されることを必要とする。いくつかの構成では、コンプライアンス規則１０６は、アップグレードされたアドレス１１１フィールドが設定されている（取引が制限されていることを示す）か、設定されていない（取引が許可されていることを示す）かを判定することによって、親スマートコントラクト３０２におけるトークンが、取引の継続を許可されるか否かを判定し得る。
【００９４】
[0102]図４Ｂは、１００のトークンがアドレスＡからアドレスＤへ移行されるトークン１０２の移行中の第２の段階を示す。言い換えると、（アドレスＡに関連付けられた）保有者は、親スマートコントラクト３０２内の１００の古いトークンを、子スマートコントラクト３０２のアドレスＤに移行する。これにより、これらの１００の古いトークンが、アドレスＤから移動されることはないため、親スマートコントラクト３０２に、効果的に書き込まれる。例では、（たとえば、アドレスＡ、Ｂ、またはＣからアドレスＤへの）古いトークンの移行は、分散型台帳１２２における親スマートコントラクト３０２において実施される移動方法を呼び出すことを含み得る。移動方法は、発行者１１４、所有者１１２、または移動アドレスに関連付けられたトークン保有者によって呼び出され得る。
【００９５】
[0103]トークン保有者アドレスから、親スマートコントラクト３０２におけるアドレスＤに古いトークンを移行することに加えて、子スマートコントラクト３０２における対応する新しいトークンは、発行者のアドレスから、トークン保有者アドレスに移動される。例では、親スマートコントラクト３０２におけるすべての古いトークンを置き換えるのに十分な数の新しいトークンが、（アップグレードプロセス中に）子スマートコントラクト３０２において、発行者のアドレスへ発行される。たとえば、４５０の新しいトークンが、子スマートコントラクト３０２において、発行者のアドレスへ発行される。例では、（子スマートコントラクト３０２における）すべての新しいトークンが、一度に発行される。その後、（親スマートコントラクト３０２における）古いトークンが、トークン保有者アドレスから子スマートコントラクト３０２のアドレス（アドレスＤ）に移行されると、（子スマートコントラクト３０２における）対応する数の新しいトークンは、発行者のアドレスからトークン保有者アドレスに移動される。
【００９６】
[0104]したがって、（親スマートコントラクト３０２における）１００の古いトークンが、アドレスＡからアドレスＤに移動された後、（子スマートコントラクト３０２における）対応する１００の新しいトークンが、発行者のアドレスからアドレスＡに移動され得る。例では、古いトークンをアドレスＤに送信する移動方法呼出しのアドレスが、発行者のアドレスから新しいトークンを移動するための出力アドレスとして使用され得る。
【００９７】
[0105]図４Ｃは、１５０のトークンがアドレスＢからアドレスＤへ移行される間の、トークン１０２の移行中の第３の段階を示す。言い換えると、（アドレスＢに関連付けられた）保有者は、親スマートコントラクト３０２における１５０の古いトークンを、子スマートコントラクト３０２のアドレスＤに移行し、これらの１５０の古いトークンを効果的に書き込む。例では、この移行は、分散型台帳１２２における親スマートコントラクト３０２において実施される移動方法を呼び出す（移動アドレスに関連付けられた）発行者１１４、所有者１１２、またはトークン保有者を含む。この１５０の古いトークンの移行後、（親スマートコントラクト３０２の）アドレスＤは、親スマートコントラクト３０２において、アドレスＡから１００、アドレスＢから１５０の、２５０の古いトークンを保有し得る。それに加えて、子スマートコントラクト３０２における対応する１５０の新しいトークンが、発行者のアドレスからアドレスＢに移動され得る。その時点で、発行者のアドレスは、残りの２００（４５０−アドレスＡへの１００−アドレスＢへの１５０）の新しいトークンを保有する。
【００９８】
[0106]図４Ｄは、２００のトークンがアドレスＣからアドレスＤに移行される間の、トークン１０２の移行中の第４の段階を示す。言い換えると、（アドレスＣに関連付けられた）保有者は、親スマートコントラクト３０２における２００の古いトークンを、子スマートコントラクト３０２のアドレスＤに移行し、これらの２００の古いトークンを効果的に書き込む。例では、この移行は、分散型台帳１２２における親スマートコントラクト３０２において実施される移動方法を呼び出す（移動アドレスに関連付けられた）発行者１１４、所有者１１２、またはトークン保有者を含む。この２００の古いトークンの移行後、親スマートコントラクト３０２の最終状態は、単一の保有者、（子スマートコントラクト３０２の）アドレスＤを有し、親スマートコントラクト３０２において、アドレスＡから１００、アドレスＢから１５０、アドレスＣから２００の、総供給４５０の古いトークンを保有する。これは本質的に、親スマートコントラクト３０２における古いトークンをロック／書き込みをする一方で、それらが子スマートコントラクト３０２に移行されたことを証明する。
【００９９】
[0107]それに加えて、子スマートコントラクト３０２における対応する２００の新しいトークンは、発行者のアドレスからアドレスＣに移動され得る。その時点で、発行者のアドレスはゼロの新しいトークンを保有し、発行者のアドレスは、任意選択で、残高表１０５Ｂから削除され得る。
【０１００】
[0108]図５は、子スマートコントラクト３０２を展開するための方法５００を示すフロー図である。方法５００は、システム１００内の仮想マシンを実行する少なくとも１つのプロセッサ、たとえば、ネットワークノード１４０における少なくとも１つのプロセッサによって実行され得る。方法５００は、たとえば、分散型台帳１２２に格納された、証券トークン１０２／スマートコントラクト３０２において実施された１つまたは複数の方法を実行することを含み得る。それに加えて、方法５００は、たとえば、分散型台帳１２２に格納された、証券トークン１０２／スマートコントラクト３０２における１つまたは複数のパラメータを利用し得る。
【０１０１】
[0109]方法５００は、少なくとも１つのプロセッサが、分散型台帳１２２において、親スマートコントラクト３０２の後続バージョン（「子」とも呼ばれる）である子スマートコントラクト３０２を展開するステップ５０２で開始する。現在実施されるバージョンではないが、親スマートコントラクト３０２は、監査可能性を維持するために、子スマートコントラクト３０２の展開後、展開されたままである。例では、子スマートコントラクト３０２は、子スマートコントラクト３０２を分散型台帳１２２に格納し、たとえば、分散型台帳１２２においても実施される、親スマートコントラクト３０２において実施されたアップグレード方法を呼び出すことによって展開される。アップグレード方法は、親スマートコントラクト３０２の所有者１１２または発行者１１４によって呼び出され得る。
【０１０２】
[0110]方法５００は、ステップ５０４に進み、ここでは、少なくとも１つのプロセッサは、親スマートコントラクト３０２におけるアップグレードされたアドレス１１１フィールドを、子スマートコントラクト３０２のアドレスを指すように設定する。各スマートコントラクト３０２は、もしあれば、その子スマートコントラクト３０２へのアドレスを含み得る。子スマートコントラクト３０２のないスマートコントラクト３０２の場合（すなわち、スマートコントラクト３０２は、スマートコントラクト３０２の現在アクティブな実施である場合）、アップグレードされたアドレス１１１フィールドは、設定されていない可能性があり、たとえば、すべてのビットが「０」に、すべてのビットが「１」に、またはスマートコントラクト３０２が実施される分散型台帳１２２におけるアドレスに対応しない他の任意の値に設定される。スマートコントラクト３０２におけるアップグレードされたアドレス１１１は、たとえば、分散型台帳１２２におけるスマートコントラクト３０２において実施される方法を呼び出すことによって、スマートコントラクト３０２の発行者１１４によって設定され得る。
【０１０３】
[0111]いくつかの構成では、アップグレードされたアドレス１１１フィールドは、一度設定されると変更されない。スマートコントラクト３０２においてアップグレードされたアドレス１１１フィールドを、スマートコントラクト３０２の同じ後続バージョンを指すように永久に設定しておくことは、スマートコントラクト３０２のアップグレード履歴が監査可能であることを保証する。
【０１０４】
[0112]方法５００は、任意選択のステップ５０６に進み、ここでは、少なくとも１つのプロセッサは、（親スマートコントラクト３０２の）アップグレードされたアドレス１１１フィールドが設定されたことを示すイベント、たとえば、イーサリアムイベントを開始する。例では、イベントは、アップグレードされたアドレス１１１、および任意選択で、親スマートコントラクト３０２のアドレスを示し得る。例では、これらのイベントは、分散型台帳１２２を実施するノード１４０のネットワークにブロードキャストされる。例では、（たとえば、投資家１２０、ブローカディーラ１１８、保管人、発行者１１４、所有者１１２、またはネットワークノード１４０に属する）デバイスは、そのようなイベントを傍受し得る。
【０１０５】
[0113]方法５００は、ステップ５０８に進み、ここでは、少なくとも１つのプロセッサは、子スマートコントラクト３０２における親アドレス１１７フィールドを、親スマートコントラクト３０２のアドレスを指すように設定する。各スマートコントラクト３０２は、もしあれば、その親スマートコントラクト３０２へのアドレスを含み得る。親スマートコントラクト３０２のないスマートコントラクト３０２の場合（すなわち、スマートコントラクト３０２は、スマートコントラクト３０２の最も古いバージョンである場合）、親アドレス１１７フィールドは設定されていない可能性があり、たとえば、すべてのビットが「０」に、すべてのビットが「１」に、またはスマートコントラクト３０２が実施される分散型台帳１２２におけるアドレスに対応しない他の任意の値に設定され得る。スマートコントラクト３０２における親アドレス１１７は、たとえば、分散型台帳１２２におけるスマートコントラクト３０２において実施される方法を呼び出すことによって、スマートコントラクト３０２の発行者１１４によって設定され得る。
【０１０６】
[0114]方法５００は、任意選択のステップ５１０に進み、ここでは、少なくとも１つのプロセッサは、（子スマートコントラクト３０２の）親アドレス１１７フィールドが設定されたことを示すイベント、たとえば、イーサリアムイベントを開始する。例では、イベントは、親アドレス１１７、および任意選択で、子スマートコントラクト３０２のアドレスを示し得る。例では、これらのイベントは、分散型台帳１２２を実施するノード１４０のネットワークにブロードキャストされる。例では、（たとえば、投資家１２０、ブローカディーラ１１８、保管人、発行者１１４、所有者１１２、またはネットワークノード１４０に属する）デバイスは、そのようなイベントを傍受し得る。
【０１０７】
[0115]方法５００は、任意選択のステップ５１２に進み、ここでは、少なくとも１つのプロセッサは、子スマートコントラクト３０２におけるトークン供給パラメータ１１５を、親スマートコントラクト３０２におけるトークン供給パラメータ１１５と等しくなるように設定する。例では、任意選択のステップ５１２は、スマートコントラクト３０２が証券トークン１０２を実施する場合にのみ実行される。そのような構成では、トークン供給パラメータ１１５は、スマートコントラクト３０２における未処理のトークンの総数を示し得、たとえば、トークン供給パラメータ１１５は、スマートコントラクト３０２の残高表１０５におけるすべてのアドレスのトークン残高の合計であり得る。対照的に、方法５００におけるスマートコントラクト３０２が証券トークン１０２を実施しない場合、任意選択のステップ５１２は実行されない。
【０１０８】
[0116]図６は、親スマートコントラクト３０２における未処理のトークンを、子スマートコントラクト３０２に移行するための方法６００を示すフロー図である。方法６００は、システム１００内の仮想マシンを実行する少なくとも１つのプロセッサ、たとえば、ネットワークノード１４０における少なくとも１つのプロセッサによって実行され得る。方法６００は、たとえば、分散型台帳１２２に格納された、証券トークン１０２／スマートコントラクト３０２において実施される１つまたは複数の方法を実行することを含み得る。それに加えて、方法６００は、たとえば、分散型台帳１２２に格納された、証券トークン１０２／スマートコントラクト３０２における１つまたは複数のパラメータを利用し得る。
【０１０９】
[0117]図６における方法６００は、親スマートコントラクト３０２および子スマートコントラクト３０２が各々、それぞれの証券トークン１０２を実施する場合に実行される。いくつかの構成では、たとえば、子スマートコントラクト３０２が展開された後、図６の方法６００は、図５の方法５００に続いて実行され得る。したがって、図６の方法６００における親スマートコントラクト３０２および子スマートコントラクト３０２は、それぞれ、図５の方法５００において説明された親スマートコントラクト３０２および子スマートコントラクト３０２と同じであり得る。いくつかの構成では、図５の方法５００および／または図６の方法６００は、（親スマートコントラクト３０２の）発行者１１４が親スマートコントラクト３０２において実施され、たとえば、分散型台帳１２２においても実施されるアップグレード方法を呼び出すことに応じて開始される。
【０１１０】
[0118]方法６００は、任意選択のステップ６０２で開始し、ここでは、少なくとも１つのプロセッサは、子スマートコントラクト３０２の展開後、親スマートコントラクト３０２における古いトークンが、取引から制限されているか否かを判定する。例では、発行者１１４は、親スマートコントラクト３０２のさらなる取引を許可するか、制限または許可するかを決定する。取引が制限される場合、親スマートコントラクト３０２における古いトークンのすべてのトランザクションは、たとえば、図４Ａ〜図４Ｄの例におけるアドレスＤのように、トランザクションの出力アドレスとして子スマートコントラクト３０２のアドレスを使用する必要がある。対照的に、発行者１１４が、親スマートコントラクト３０２が取引を継続することを許可する場合、親スマートコントラクト３０２における古いトークンは、子スマートコントラクト３０２のアドレス（アドレスＤ）以外のアドレスに移動され得る。
【０１１１】
[0119]（親スマートコントラクト３０２における古いトークンが、取引の継続を許可されるか否かの）執行は、（１）証券トークン１０２／スマートコントラクト３０２自体において実施されたコンプライアンス規則１０６Ａ、および／または（２）証券トークン１０２／スマートコントラクト３０２の外部で実施されたコンプライアンス規則１０６Ｂにおいて起こり得る。たとえば、発行者１１４は、親スマートコントラクト３０２において実施される方法を呼び出して、親スマートコントラクト３０２内の古いトークンの取引が制限されている／アップグレードが強制されていることを（たとえば、コンプライアンス規則１０６において）示すことができ、その後、親スマートコントラクト３０２における古いトークンの移動／トランザクションが開始されると、少なくとも１つのプロセッサがこの表示をチェックする。いくつかの構成では、コンプライアンス規則１０６は、アップグレードされたアドレス１１１フィールドが設定されている（取引が制限されていることを示す）か、または、親スマートコントラクト３０２において設定されていない（取引が許可されていることを示す）かを判定することによって、親スマートコントラクト３０２におけるトークンが取引を継続できるか否かを判定し得る。いくつかの構成では、方法６００における残りのステップは、たとえば、子スマートコントラクト３０２の展開後、親スマートコントラクト３０２における古いトークンが、取引を制限されているとの判定に基づいて（たとえば、それに応じて）のみ実行される。
【０１１２】
[0120]方法６００は、ステップ６０４に進み、ここでは、少なくとも１つのプロセッサは、子スマートコントラクト３０２における新しいトークンを、中間アドレスに発行する。例では、子スマートコントラクトにおいて発行された新しいトークンの数は、親スマートコントラクト３０２の総供給パラメータ１１５に等しい。例では、中間アドレスは、発行者１１４のアドレスである。言い換えれば、新しいトークンは、最初に発行者のアドレスに保有されている子スマートコントラクト３０２において発行され得る。
【０１１３】
[0121]方法６００は、ステップ６０６に進み、ここでは、少なくとも１つのプロセッサは、親スマートコントラクト３０２におけるすべての古いトークンを、トークン保有者アドレスから、子スマートコントラクト３０２のアドレスに移行する。親スマートコントラクト３０２は、親スマートコントラクト３０２における古いトークンを保有するすべてのアドレスのトークン残高を示す（分散型台帳１２２における）残高表１０５を含み得、たとえば、残高表１０５は、どのアドレス（たとえば、イーサリアムアドレス）が、親スマートコントラクト３０２において、どれだけの量のトークンを保有しているのかを示し得る。同様に、子スマートコントラクト３０２は、子スマートコントラクト３０２における古いトークンを保有するすべてのアドレスのトークン残高を示す（分散型台帳１２２における）残高表１０５を含み得る。
【０１１４】
[0122]ステップ６０６における移行を実行するために、少なくとも１つのプロセッサは、トークン保有者アドレスにおける古いトークンの、子スマートコントラクト３０２のアドレスへの移動を実行し得る。これは、たとえば、発行者１１４、所有者１１２、または移動アドレスに関連付けられたトークン保有者によって呼び出され、分散型台帳１２２における親スマートコントラクト３０２において実施される移動方法を呼び出すことを含み得る。
【０１１５】
[0123]方法６００は、ステップ６０８に進み、ここでは、少なくとも１つのプロセッサは、子スマートコントラクト３０２における少なくとも１つの新しいトークンを、中間アドレスからトークン保有者アドレスに移動する。たとえば、ステップ６０６において、（親スマートコントラクト３０２における）１００の古いトークンが、トークン保有者アドレスから移行された場合、ステップ６０８において、（子スマートコントラクト３０２における）１００の新しいトークンが、中間アドレスからトークン保有者アドレスに移動される。
【０１１６】
[0124]方法６００は、任意選択のステップ６１０に進み、ここでは、少なくとも１つのプロセッサは、残りのトークン保有者アドレスにおける古いトークンがまだ移行されていないか否かを判定する。まだ移行されていない古いトークンがある場合、方法は、任意選択のステップ６１２に進み、ここでは、少なくとも１つのプロセッサは、新しいトークン保有者アドレスを選択し、新しいトークン保有者アドレスのために、ステップ６０６から６０８を再度繰り返す。
【０１１７】
[0125]親スマートコントラクト３０２のためのステップ６０８の最終実行後、親スマートコントラクト３０２の最終状態は、親スマートコントラクト３０２における古いトークンの総供給を保持する単一のアドレス（子スマートコントラクト３０２のアドレス）を有する。これは本質的に、トークンが子スマートコントラクト３０２に移行されたことを証明しながら、親スマートコントラクト３０２の保有物をロック／書き込む。ステップ６０８の最終実行後、発行者のアドレスは通常、どの新しいトークンも保有していない。
【０１１８】
[0126]ステップ６１０において、移行する古いトークンがこれ以上ない場合（または、ステップ６１０が実行されない場合）、方法６００はステップ６１４において終了し得る。図６は、親スマートコントラクト３０２内のトークンを保有する各アドレスに対して繰り返し実行される方法６００を示す。あるいは、ステップ６０６を実行して、親スマートコントラクト／証券トークン１０２においてトークンを保有するすべてのトークン保有者アドレスのトークンを移行することができ、ステップ６０８を実行して、次のトークン保有者アドレスに移動する前に、各トークン保有者アドレスについてステップ６０６〜６０８の実行を繰り返すことなく、新しい証券トークンを、中間アドレスから、すべてのトークン保有者アドレスに移動することができる。
【０１１９】
[0127]方法５００および／または方法６００の後、子スマートコントラクト３０２が呼び出され得る。第１の例では、コントラクトがアップグレードされた場合、たとえば、アップグレードされたアドレス１１１および／または親アドレス１１７が、ステップ５０４および５０８におけるように設定された場合、イベントが発行される。例では、（たとえば、投資家１２０、ブローカディーラ１１８、保管人、発行者１１４、所有者１１２、またはネットワークノード１４０に属する）デバイスは、そのようなイベントを傍受し得る。例では、イベントは、アップグレードされたアドレス１１１および／または設定された親アドレス１１７を示す。子スマートコントラクト３０２は、イベントにおいてアップグレードされたアドレス１１１を使用して直接呼び出され得る。発呼デバイスは、イベントにおいてアップグレードされたアドレス（子スマートコントラクト３０２のアドレス）を使用して、子スマートコントラクト３０２において実施される方法を呼び出し得る。
【０１２０】
[0128]あるいは、発呼デバイスは、任意選択で、親スマートコントラクト３０２を呼び出して、親スマートコントラクト３０２においてアップグレードされたアドレス１１１が設定されているか否かを判定し得る。例では、親スマートコントラクト３０２におけるゲッタ関数は、（その子スマートコントラクト３０２を指す）アップグレードされたアドレス１１１を返し得る。例では、そのような関数は、アップグレードされたアドレス１１１および／または親アドレス１１７が設定されていないときにゼロアドレスを返し得る。
コンピュータシステムの概要
[0129]本開示の実施形態は、上記で説明される様々なステップおよび動作を含む。これらの様々なステップおよび動作は、ハードウェア構成要素によって実行される場合もあれば、マシン実行可能命令で具体化される場合もあり、これらの命令を使用してプログラムされた汎用または専用プロセッサにステップを実行するようにすることができる。あるいは、ステップは、ハードウェア、ソフトウェア、および／またはファームウェアの組合せによって実行され得る。したがって、図７は、本開示の実施形態が利用され得る例示的なコンピュータシステム７００を示すブロック図である。本例によれば、コンピュータシステム７００は、相互接続７０２、少なくとも１つのプロセッサ７０４、少なくとも１つの通信ポート７０６、少なくとも１つのメインメモリ７０８、少なくとも１つのリムーバブルストレージ媒体７１０、少なくとも１つの読取専用メモリ７１２、および少なくとも１つの大容量ストレージデバイス７１４を含む。
【０１２１】
[0130]少なくとも１つのプロセッサ７０４は、任意の既知のプロセッサとすることができる。少なくとも１つの通信ポート７０６は、たとえば、モデムベースのダイヤルアップ接続で使用するためのＲＳ−２３２ポート、１０／１００イーサネットポート、または銅線またはファイバを使用するギガビットポートのいずれかとすることができるか、またはこれらを含むことができる。少なくとも１つの通信ポート７０６の性質は、ローカルエリアネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）、またはコンピュータシステム７００が接続する任意のネットワークなどのネットワークに応じて選択され得る。少なくとも１つのメインメモリ７０８は、ランダムアクセスメモリ（ＲＡＭ）、または当技術分野で一般に知られている他の任意の動的ストレージデバイスとすることができる。少なくとも１つの読取専用メモリ７１２は、少なくとも１つのプロセッサ７０４の命令などの静的情報を格納するためのプログラマブル読取専用メモリ（ＰＲＯＭ）チップなどの任意の静的ストレージデバイスとすることができる。
【０１２２】
[0131]少なくとも１つの大容量ストレージデバイス７１４を使用して、情報および命令を記憶できる。例では、ハードディスク（磁気ディスクドライブ、または、シリアル／パラレルＡＴＡまたはＳＣＳＩインターフェースを使用するソリッドステートドライブなど）、光ディスク、レイド（ＲＡＩＤ）などのディスクアレイ、または他の任意の大容量ストレージデバイスが使用され得る。相互接続７０２は、１つまたは複数のバス、ブリッジ、コントローラ、アダプタ、および／またはポイントツーポイント接続とすることができるか、またはこれらを含むことができる。相互接続７０２は、少なくとも１つのプロセッサ７０４を、他のメモリ、ストレージ、および通信ブロックと、通信可能に結合する。相互接続７０２は、使用されるストレージデバイスに応じて、ＰＣＩ／ＰＣＩ−ＸまたはＳＣＳＩベースのシステムバスとすることができる。少なくとも１つのリムーバブルストレージ媒体７１０は、任意の種類の外付ハードドライブ、フロッピードライブ、コンパクトディスク読取専用メモリ（ＣＤ−ＲＯＭ）、コンパクトディスク再書込可能（ＣＤ−ＲＷ）、デジタルビデオディスク読取専用メモリ（ＤＶＤ−ＲＯＭ）、ブルーレイディスク読取専用メモリ（ＢＤ−ＲＯＭ）、ブルーレイディスク記録可能（ＢＤ−Ｒ）、ブルーレイディスク記録可能消去可能（ＢＤ−ＲＥ）とすることができる。
【０１２３】
[0132]上記で説明される構成要素は、いくつかの種別の可能性を例示することが意図される。前述の例は、単なる典型的な実施形態であるため、決して開示を限定するべきではない。
【０１２４】
[0133]図８は、本開示の実施形態が利用され得る別の例示的なコンピューティングデバイス８００を示すブロック図である。例示的なコンピューティングデバイス８００は、グローバルレジストリ１０８、所有者１１２、発行者１１４、保管人１１６、ブローカディーラ１１８、投資家１２０、分散型台帳１２２のコピーを格納するネットワークノード１４０のうちの１つのネットワークノード、証券トークン交換部１２４、および／または本明細書で説明されるスマートコントラクトのいずれかを実行する仮想マシン（たとえば、イーサリアム仮想マシン）のうちの何れかを実施するために使用され得る。コンピューティングデバイス８００は、少なくとも１つのメモリ８０２、少なくとも１つのプロセッサ８０４、任意選択の少なくとも１つのネットワークインターフェース８０６、任意選択のディスプレイデバイス８０８、任意選択の入力デバイス８１０、および任意選択の電源８１２を含む。
【０１２５】
[0134]例では、少なくとも１つのメモリ８０２は、情報を格納するために使用される任意のデバイス、メカニズム、または入力されたデータ構造とすることができる。例では、少なくとも１つのメモリ８０２は、任意の種別の揮発性メモリ、不揮発性メモリ、および／または動的メモリとすることができるか、またはそれらを含むことができる。例では、少なくとも１つのメモリ８０２は、ランダムアクセスメモリ、メモリストレージデバイス、光メモリデバイス、磁気媒体、フロッピーディスク、磁気テープ、ハードドライブ、消去可能プログラマブル読取専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ）、光学媒体（コンパクトディスク、ＤＶＤ、ブルーレイディスクなど）などとすることができる。
【０１２６】
[0135]いくつかの実施形態によれば、少なくとも１つのメモリ８０２は、１つまたは複数のディスクドライブ、フラッシュドライブ、１つまたは複数のデータベース、１つまたは複数のテーブル、１つまたは複数のファイル、ローカルキャッシュメモリ、プロセッサキャッシュメモリ、リレーショナルデータベース、フラットデータベースなどを含み得る。それに加えて、当業者は、少なくとも１つのメモリ８０２として使用することができる、情報を記憶するための多くの追加のデバイスおよび技法を認識する。少なくとも１つのメモリ８０２は、少なくとも１つのプロセッサ８０４において１つまたは複数のアプリケーションまたはモジュールを実行するための命令を格納するために使用され得る。例では、少なくとも１つのメモリ８０２を、１つまたは複数の例において使用して、たとえば図３〜図４において、本明細書で説明する機能を実行するために必要な命令のすべてまたは一部を収容できる。
【０１２７】
[0136]少なくとも１つのプロセッサ８０４は、汎用プロセッサ（ＧＰＰ）または特殊目的（フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）または他の集積回路または回路構成など）、または任意のプログラマブルロジックデバイスのような任意の既知のプロセッサとすることができる。例では、（たとえば、図３〜図４において）本明細書で開示される機能のいずれかは、少なくとも１つのプロセッサ８０４および少なくとも１つのメモリ８０２によって実施され得る。
【０１２８】
[0137]例では、少なくとも１つの任意選択のネットワークインターフェース８０６は、ネットワーク（システム１００の少なくとも１つのネットワーク１１２のうちの１つなど）と通信するための少なくとも１つの任意選択のアンテナを含むか、またはそれに結合される。例では、少なくとも１つの任意選択のネットワークインターフェース８０６は、イーサネットインターフェース、セルラ無線アクセス技術（ＲＡＴ）無線、Ｗｉ−Ｆｉ無線、ブルートゥース無線、または近距離通信（ＮＦＣ）無線のうちの少なくとも１つを含む。例では、少なくとも１つの任意選択のネットワークインターフェース８０６は、ローカルエリアネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を用いて、遠隔サーバと、十分な速度のセルラデータ接続（モバイルインターネット）を確立するために構成されるセルラ無線アクセス技術無線を含む。例では、セルラ無線アクセス技術は、パーソナル通信サービス（ＰＣＳ）、特殊移動無線（ＳＭＲ）サービス、拡張特殊移動無線（ＥＳＭＲ）サービス、高度ワイヤレスサービス（ＡＷＳ）、符号分割多元接続（ＣＤＭＡ）、グローバル移動体通信システム（ＧＳＭ）サービス、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ）、ユニバーサルモバイルテレコミュニケーションシステム（ＵＭＴＳ）、ワールドワイド相互運用性フォーマイクロ波アクセス（ＷｉＭＡＸ）、第３世代パートナーシッププロジェクト（３ＧＰＰ）ロングタームエボリューション（ＬＴＥ）、高速パケットアクセス（ＨＳＰＡ）、第３世代（３Ｇ）、第４世代（４Ｇ）、第５世代（５Ｇ）など、または他の適切な通信サービスまたはそれらの組合せのうちの少なくとも１つを含む。例では、少なくとも１つの任意選択のネットワークインターフェース８０６は、広域ネットワークではなく、遠隔サーバと通信するワイヤレスローカルエリアネットワークと通信するように構成されたＷｉ−Ｆｉ（ＩＥＥＥ８０２．１１）無線を含む。例では、少なくとも１つの任意選択のネットワークインターフェース８０６は、パッシブ近距離通信（ＮＦＣ）タグ、アクティブ近距離通信（ＮＦＣ）タグ、パッシブ無線周波数識別（ＲＦＩＤ）タグ、アクティブ無線周波数識別（ＲＦＩＤ）タグ、近接カード、または他のパーソナルエリアネットワークデバイスなどの近接通信に限定される近距離無線通信デバイスを含む。
【０１２９】
[0138]例では、任意選択の少なくとも１つのディスプレイデバイス８０８は、発光ダイオード（ＬＥＤ）、液晶ディスプレイ（ＬＤＣ）、発光ダイオード（ＬＥＤ）ディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、ｅ−ｉｎｋディスプレイ、フィールドエミッションディスプレイ（ＦＥＤ）、表面伝導電子エミッタディスプレイ（ＳＥＤ）、またはプラズマディスプレイのうちの少なくとも１つを含む。例では、任意選択の少なくとも１つの入力デバイス８１０は、タッチスクリーン（容量性および抵抗性タッチスクリーンを含む）、タッチパッド、容量性ボタン、機械式ボタン、スイッチ、ダイヤル、キーボード、マウス、カメラ、バイオメトリックセンサ／スキャナ、マイクロフォンなどのうちの少なくとも１つを含む。例では、任意選択の少なくとも１つのディスプレイデバイス８０８は、コンピューティングデバイス８００とのユーザ相互作用のために、任意選択の少なくとも１つの入力デバイス８１０と、ヒューマンマシンインターフェース（ＨＭＩ）に組み合わされる。例では、少なくとも１つの任意選択の電源８１２が、コンピューティングデバイス８００の様々な構成要素に電力を供給するために使用される。
用語
[0139]本出願全体で使用される用語、略語、および句の簡単な定義を以下に示す。
【０１３０】
[0140]「判定すること」という用語は、計算すること、算出すること、生成すること、処理すること、導出すること、調査すること、検索すること（たとえば、テーブル、データベース、または別のデータ構造において検索すること）、確認することなどを含み得る。また、「判定すること」はまた、受信すること（たとえば、情報を受信すること）、アクセスすること（たとえば、メモリ内のデータへアクセスすること）などを含み得る。また、「判定すること」は、解決すること、選択すること、選ぶこと、確立することなどを含み得る。
【０１３１】
[0141]「〜に基づく」という句は、特に明記しない限り、「〜のみに基づく」を意味しない。言い換えれば、「〜に基づく」という句は、「〜のみに基づく」と「少なくとも〜に基づく」との両方を説明する。それに加えて、「〜に基づく」という句は、中間ステップを排除せず、たとえば、ＡはＣに基づくは、ＢはＣに基づき、ＡはＢに基づくことを意味し得る。それに加えて、「および／または」という用語は、「および」または「または」を意味する。例では、「Ａおよび／またはＢ」は、「Ａ」、「Ｂ」、または「ＡおよびＢ」を意味することができる。それに加えて、「Ａ、Ｂ、および／またはＣ」は、「Ａのみ」、「Ｂのみ」、「Ｃのみ」、「ＡおよびＢ」、「ＡおよびＣ」、「ＢおよびＣ」、または「Ａ、Ｂ、およびＣ」を意味することができる。
【０１３２】
[0142]「接続された」、「結合された」、および「通信的に結合された」という用語および関連する用語は、動作上の意味で使用され、必ずしも直接の物理的接続または結合に限定されない。したがって、例では、２つのデバイスは、直接、または１つまたは複数の中間媒体またはデバイスを介して結合され得る。別の例として、デバイスは、相互に物理的接続を共有せずに、情報がそれらの間で受け渡されることができるように結合され得る。本明細書で提供される開示に基づいて、当業者は、前述の定義にしたがって接続または結合が存在する様々な手法を認識するであろう。
【０１３３】
[0143]「典型的な実施形態において」、「例示的な実施形態において」、「いくつかの実施形態において」、「いくつかの実施形態による」、「示された実施形態において」、「他の実施形態において」、「実施形態」、「例において」、「例」、「いくつかの例において」、「いくつかの例」などの句は、一般に、句に続く特定の特徴、構造、または特性が、本開示の少なくとも１つの実施形態に含まれることを意味し、本開示の１つよりも多くの実施形態に含まれ得ることを意味する。さらに、そのような句は、必ずしも同じ実施形態または異なる実施形態を指すとは限らない。
【０１３４】
[0144]明細書が、構成要素または特徴が、「含まれ得る」、「含まれる可能性がある」、「含まれる可能性があった」、または「含まれるかもしれない」、または特性を「有し得る」、「有する可能性がある」、「有する可能性があった」、または「有するかもしれない」と述べている場合、その特定の構成要素または特徴は、含まれる必要がないか、または特徴を有する必要はない。
【０１３５】
[0145]「応答して」という用語は、完全にまたは部分的に応答することを含む。
[0146]「モジュール」という用語は、ソフトウェア、ハードウェア、またはファームウェア（またはそれらの任意の組合せ）構成要素を広く指す。モジュールは通常、指定された入力を使用して有用なデータまたは他の出力を生成できる機能構成要素である。モジュールは、自己完結型である場合と、そうでない場合とがある。アプリケーションプログラム（「アプリケーション」とも呼ばれる）は、１つまたは複数のモジュールを含み得るか、またはモジュールは、１つまたは複数のアプリケーションプログラムを含むことができる。
【０１３６】
[0147]「ネットワーク」という用語は、一般に、情報を交換できる相互接続されたデバイスのグループを指す。ネットワークは、ローカルエリアネットワーク（ＬＡＮ）における数台のパーソナルコンピュータから、インターネット、コンピュータの世界的なネットワークまでの大きさの場合がある。本明細書で使用される場合、「ネットワーク」は、あるエンティティから別のエンティティに情報を送信できる任意のネットワークを包含することが意図される。場合によっては、ネットワークは、複数のネットワークによって、さらには、１つまたは複数の境界ネットワーク、音声ネットワーク、ブロードバンドネットワーク、金融ネットワーク、サービスプロバイダネットワーク、インターネットサービスプロバイダ（ＩＳＰ）ネットワーク、および／または、様々なネットワーク間の通信を容易にするように動作可能なゲートウェイを介して相互接続された公衆交換電話網（ＰＳＴＮ）のような複数の異種ネットワークによってでさえも構成され得る。
【０１３７】
[0148]また、例示のために、本開示の様々な実施形態は、コンピュータプログラム、物理的構成要素、および現代のコンピュータネットワーク内の論理的相互作用の文脈で本明細書で説明される。重要なことに、これらの実施形態は、最新のコンピュータネットワークおよびプログラムに関連して本開示の様々な実施形態を説明するが、本明細書で説明される方法および装置は、当業者が理解するように、他のシステム、デバイス、およびネットワークに等しく適用可能である。したがって、本開示の実施形態の例示された用途は、限定を意味するものではなく、例である。本開示の実施形態が適用可能である他のシステム、デバイス、およびネットワークは、例では、他の種別の通信およびコンピュータデバイスおよびシステムを含む。より具体的には、実施形態は、通信システム、サービス、およびセル電話ネットワークおよび互換性のあるデバイスなどのデバイスに適用可能である。それに加えて、実施形態は、パーソナルコンピュータから、大規模ネットワークのメインフレームおよびサーバまでのすべてのレベルのコンピューティングに適用可能である。
【０１３８】
[0149]結論として、本開示は、アップグレード可能な証券トークンのための新規のシステム、方法、および構成を提供する。本開示の１つまたは複数の実施形態の詳細な説明が上述されているが、様々な代替、修正、および均等物が、本開示の精神から変化することなく、当業者に明らかであろう。例では、上記で説明される実施形態は特定の特徴を参照するが、本開示の範囲は、特徴の異なる組合せを有する実施形態、および説明された特徴のすべてを含む訳ではない実施形態も含む。したがって、本開示の範囲は、特許請求の範囲内にあるようなすべてのそのような代替、修正、および変形を、それらのすべての均等物とともに包含すると意図される。したがって、上記の説明は限定として見なされるべきではない。
実施形態の例
[0150]例１は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのメモリと、少なくとも１つのプロセッサに通信可能に結合する少なくとも１つのネットワークインターフェースとを備えるネットワークノードを含み、ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成され、ネットワークノードは、少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合され、少なくとも１つのプロセッサは、親スマートコントラクトの後続バージョンである子スマートコントラクトを、分散型台帳において展開し、親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、子スマートコントラクトのアドレスを指すように設定し、親スマートコントラクトは、子スマートコントラクトが展開された後も展開されたままである。
【０１３９】
[0151]例２は、少なくとも１つのプロセッサが、アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するようにさらに構成される、例１のネットワークノードを含む。
【０１４０】
[0152]例３は、少なくとも１つのプロセッサが、親スマートコントラクトのアドレスを指すように、子スマートコントラクトにおける親アドレスフィールドを設定し、アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始するようにさらに構成される、例１〜例２のいずれかのネットワークノードを含む。
【０１４１】
[0153]例４は、少なくとも１つのプロセッサが、子スマートコントラクトにおけるトークン供給パラメータを、親スマートコントラクトにおけるトークン供給パラメータと等しくなるように設定するようにさらに構成される、例１〜例３のいずれかのネットワークノードを含む。
【０１４２】
[0154]例５は、少なくとも１つのプロセッサが、親スマートコントラクトにおけるすべての古いトークンを、トークン保有者アドレスから、子スマートコントラクトのアドレスに移行するようにさらに構成される、例１〜例４のいずれかのネットワークノードを含む。
【０１４３】
[0155]例６は、少なくとも１つのプロセッサが、子スマートコントラクトにおける少なくとも１つの新しいトークンを、トークン保有者アドレスに発行するようにさらに構成される、例５のネットワークノードを含む。
【０１４４】
[0156]例７は、少なくとも１つのプロセッサが、移行する必要のある古いトークンが少なくとも１つの他のトークン保有者アドレスにあるか否かを判定し、子スマートコントラクトにおける新しいトークンを、中間アドレスに発行し、少なくとも１つの他のトークン保有者アドレスから、新しいトークン保有者アドレスを選択し、親スマートコントラクトにおける古いトークンを、新しいトークン保有者アドレスから、子スマートコントラクトのアドレスに移行し、子スマートコントラクトにおける少なくとも１つの新しいトークンを、中間アドレスから、新しいトークン保有者アドレスに移動するようにさらに構成される、例６のネットワークノードを含む。
【０１４５】
[0157]例８は、少なくとも１つのプロセッサが、子スマートコントラクトの展開後、親スマートコントラクトにおける古いトークンが、取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動するようにさらに構成される、例６〜例７のいずれかのネットワークノードを含む。
【０１４６】
[0158]例９は、少なくとも１つのプロセッサが、親スマートコントラクトにおけるアップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、親スマートコントラクトにおける古いトークンが、取引を制限されると判定するようにさらに構成される、例６〜例８のいずれかのネットワークノードを含む。
【０１４７】
[0159]例１０は、古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである、例１〜例９のいずれかのネットワークノードを含む。
[0160]例１１は、親スマートコントラクトおよび子スマートコントラクトは、それぞれの発信元のスマートコントラクトを使用して実施される、例１〜例１０のいずれかのネットワークノードを含む。
【０１４８】
[0161]例１２は、親スマートコントラクトをアップグレードするためのコンピュータ化された方法を含み、コンピュータ化された方法は、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおける複数のネットワークノード内に含まれるように構成されたネットワークノードによって実行され、ネットワークノードは、ピアツーピアネットワークにおける他のネットワークノードに通信可能に結合されるように構成され、コンピュータ化された方法は、親スマートコントラクトの後続バージョンである子スマートコントラクトを、分散型台帳において展開することと、親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、子スマートコントラクトのアドレスを指すように設定することとを備え、親スマートコントラクトは、子スマートコントラクトが展開された後も展開されたままである。
【０１４９】
[0162]例１３は、アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始することをさらに備える、例１２のコンピュータ化された方法を含む。
[0163]例１４は、親スマートコントラクトのアドレスを指すように、子スマートコントラクトにおける親アドレスフィールドを設定することと、アップグレードされたアドレスフィールドが設定されたことを示すイベントを開始することとをさらに備える、例１２〜１３のいずれかのコンピュータ化された方法を含む。
【０１５０】
[0164]例１５は、親スマートコントラクトにおけるトークン供給パラメータと等しくなるように、子スマートコントラクトにおけるトークン供給パラメータを設定することをさらに備える、例１２〜１４のいずれかのコンピュータ化された方法を含む。
【０１５１】
[0165]例１６は、親スマートコントラクトにおけるすべての古いトークンを、トークン保有者アドレスから、子スマートコントラクトのアドレスに移行することをさらに備える、例１２〜１５のいずれかのコンピュータ化された方法を含む。
【０１５２】
[0166]例１７は、子スマートコントラクトにおける少なくとも１つの新しいトークンを、トークン保有者アドレスに発行することをさらに備える、例１６のコンピュータ化された方法を含む。
【０１５３】
[0167]例１８は、移行する必要のある古いトークンが、少なくとも１つの他のトークン保有者アドレスにあるか否かを判定することと、子スマートコントラクトにおける新しいトークンを、中間アドレスに発行することと、少なくとも１つの他のトークン保有者アドレスから、新しいトークン保有者アドレスを選択することと、親スマートコントラクトにおける古いトークンを、新しいトークン保有者アドレスから、子スマートコントラクトのアドレスに移行することと、子スマートコントラクトにおける少なくとも１つの新しいトークンを、中間アドレスから、新しいトークン保有者アドレスに移動することとをさらに備える、例１７のコンピュータ化された方法を含む。
【０１５４】
[0168]例１９は、子スマートコントラクトの展開後、親スマートコントラクトにおける古いトークンが取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動することをさらに備える、例１７〜１８のいずれかのコンピュータ化された方法を含む。
【０１５５】
[0169]例２０は、親スマートコントラクトにおけるアップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、親スマートコントラクトにおける古いトークンが、取引を制限されると判定することをさらに備える、例１７〜１９のいずれかのコンピュータ化された方法を含む。
【０１５６】
[0170]例２１は、古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである、例１２〜２０のいずれかのコンピュータ化された方法を含む。
【０１５７】
[0171]例２２は、親スマートコントラクトおよび子スマートコントラクトは、それぞれの発信元のスマートコントラクトを使用して実施される、例１２〜２１のいずれかのコンピュータ化された方法を含む。
【０１５８】
[0172]例２３は、少なくとも１つのプロセッサと、少なくとも１つのプロセッサに通信可能に結合された少なくとも１つのメモリと、少なくとも１つのプロセッサに通信可能に結合する少なくとも１つのネットワークインターフェースとを備えるネットワークノードを含み、ネットワークノードは、分散型台帳を実施するネットワークノードのピアツーピアネットワークにおいて通信可能に結合された複数のネットワークノード内にあるように構成され、ネットワークノードは、少なくとも１つのネットワークインターフェースを介して、少なくとも１つの遠隔に位置するコンピューティングデバイスに通信可能に結合されるように構成され、少なくとも１つのプロセッサが、親スマートコントラクトの後続バージョンである子スマートコントラクトを、分散型台帳において展開し、親スマートコントラクトにおいて、アップグレードされたアドレスフィールドを、子スマートコントラクトのアドレスを指すように設定し、子スマートコントラクトにおける新しいトークンを、中間アドレスに発行し、親スマートコントラクトにおけるすべての古いトークンを、トークン保有者のアドレスから、子スマートコントラクトのアドレスに移行し、子スマートコントラクトにおける少なくとも１つの新しいトークンを、中間アドレスから、トークン保有者アドレスに移動するように構成され、親スマートコントラクトは、子スマートコントラクトが展開された後も展開されたままであり、古いトークンおよび新しいトークンは、各々が外部の取引可能な資産を表す暗号トークンである。
【０１５９】
[0173]例２４は、少なくとも１つのプロセッサが、子スマートコントラクトにおけるトークン供給パラメータを、親スマートコントラクトにおけるトークン供給パラメータと等しくなるように設定するようにさらに構成される、例２３のネットワークノードを含む。
【０１６０】
[0174]例２５は、少なくとも１つのプロセッサが、子スマートコントラクトの展開後、親スマートコントラクトにおける古いトークンが、取引を制限されるとの判定に基づいて、すべての古いトークンを移行し、少なくとも１つの新しいトークンを移動するようにさらに構成される、例２３〜２４のいずれかのコンピュータ化された方法を含む。
【０１６１】
[0175]例２６は、少なくとも１つのプロセッサが、親スマートコントラクトにおけるアップグレードされたアドレスフィールドが設定されているか設定されていないかに基づいて、親スマートコントラクトにおける古いトークンが、取引を制限されると判定するようにさらに構成される、例２３〜２５のいずれかのコンピュータ化された方法を含む。
【図１】
2021534486.tif 000004
【図２Ａ】
2021534486.tif 000005
【図２Ｂ】
2021534486.tif 000006
【図３】
2021534486.tif 000007
【図４】
2021534486.tif 000008
【図５】
2021534486.tif 000009
【図６】
2021534486.tif 000010
【図７】
2021534486.tif 000011
【図８】
2021534486.tif 000012
【国際調査報告】
2021534486.tif 000013
2021534486.tif 000014