(58)【調査した分野】(Int.Cl.,DB名)
前記スマートコントラクトは、複数のロールを定義しており、各ロールは、前記複数のオペレーションについてのそれぞれのセットが許可されている、請求項1または2に記載の方法。
前記スマートコントラクトは、アドミニストレータロールを定義しており、前記スマートコントラクトは、前記アドミニストレータロールが前記複数のオペレーションのうちのすべてを実行することが許可されていることを定義している、請求項3に記載の方法。
前記スマートコントラクトは、前記アドミニストレータロールが前記スマートコントラクトにおいて定義されている前記複数のロールのうちの1つまたは複数を追加、削除、または問合せをするオペレーションを実行することが許可されていることを定義している、請求項4に記載の方法。
前記スマートコントラクトは、オブザーバロールを定義しており、前記スマートコントラクトは、前記オブザーバロールが前記スコア問合せオペレーションのみを実行することが許可されていることを定義している、請求項3に記載の方法。
前記指定の居住者の前記所帯スコアを管理するために前記スマートコントラクトにおいて定義されている前記複数のオペレーションのうちの前記1つを実行することが許可されているロールに前記ノードが関連付けられているかどうかを決定するステップをさらに含む、請求項3に記載の方法。
前記ノードによって、前記指定の居住者に関連付けられたクライアントノードから、前記ブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの前記指定の居住者の前記所帯スコアの移動要求を受信するステップと、
前記ノードによって、前記スマートコントラクトにおいて定義されている前記スコア移動オペレーションを実行することによって前記別の所帯スコア管理システムに前記指定の居住者の前記所帯スコアを移動するステップと
をさらに含む、請求項1から9のいずれか一項に記載の方法。
前記ノードによって、前記指定の居住者に関連付けられたクライアントノードから、前記別のブロックチェーンネットワークにデプロイされている前記別の所帯スコア管理システムへの前記指定の居住者の前記所帯スコアの移動要求を受信するステップと、
前記ノードによって、前記ブロックチェーンネットワークと前記別のブロックチェーンネットワークとの間のチェーン間オペレーションを呼び出すことによって前記別の所帯スコア管理システムに前記指定の居住者の前記所帯スコアを移動するステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。
ブロックチェーンネットワーク内で実行されるスマートコントラクトを使用して居住者の所帯スコアを管理するための装置であって、居住者の所帯スコアは、住居を賃貸または購入する際の前記居住者の権利を示し、前記装置は、請求項1から11のいずれか一項に記載の方法を行うための複数のモジュールを含む、装置。
【発明を実施するための形態】
【0013】
本明細書の実施形態は、居住者の所帯スコアを問合せ、変更、更新、決定、またさもなければ管理をするための所帯スコア管理スキームを目的としている。いくつかの実施形態においては、地域内の居住者の所帯スコアは、地域内の住居を賃貸または購入する際の居住者の権利を示している。いくつかの実施形態においては、スマートコントラクトは、地域内の居住者の所帯スコアを管理するためのブロックチェーンネットワークにおける分散システムとして所帯スコア管理スキームを実施するために使用され得る。いくつかの実施形態においては、所帯スコア管理スキームは、より容易なアクセスおよび改善された透明性を一般市民に提供することができ、動的で、健全で、秩序正しく、持続可能な住宅の賃貸および購入エコシステムを作成するのに役立っている。
【0014】
本明細書の実施形態についてのさらなる状況をあげるとすれば、上述したように、コンセンサスネットワーク(例えば、ピア・ツー・ピアノードで構成される)およびブロックチェーンネットワークとも称し得る、分散型台帳システム(DLS)は、関与エンティティが安全かつ変更不可能な形でトランザクションを実施しデータを記憶することを可能にする。ブロックチェーンという用語は、特定のネットワークおよび/またはユースケースに一般的に関連付けられているが、ブロックチェーンは、任意の特定のユースケースを指すわけではなくDLSを一般的に指すために本明細書では使用している。
【0015】
ブロックチェーンは、トランザクションが変更不可能となる方法でトランザクションを記憶するデータ構造である。そのため、ブロックチェーン上に記録されるトランザクションは、信頼性のあるものおよび信頼できるものとなる。ブロックチェーンは、1つまたは複数のブロックを含む。チェーン内の各ブロックは、前のブロックの暗号ハッシュを含めることによって、チェーン内のその直前にある前のブロックに連結される。各ブロックはまた、タイムスタンプ、それ自身の暗号ハッシュ、および1つまたは複数のトランザクションを含む。ブロックチェーンネットワークのノードによって既に検証されているトランザクションは、ハッシュ化され、Merkleツリーに符号化される。Merkleツリーは、ツリーのリーフノードにおけるデータがハッシュ化され、ツリーの各ブランチにおけるすべてのハッシュがブランチのルートにおいて連結されるデータ構造である。このプロセスは、ツリー全体のルートまでツリーの上方へと進行し続け、ツリー全体のルートは、ツリー内のすべてのデータを表すハッシュを記憶している。ツリーに記憶されているトランザクションであることを意味するハッシュは、それがツリーの構造と一致しているかどうかを決定することによって素早く検証され得る。
【0016】
ブロックチェーンは、トランザクションを記憶するための分散化または少なくとも部分的に分散化されたデータ構造である一方で、ブロックチェーンネットワークは、トランザクションをブロードキャストすること、検証すること、および有効性を確認することなどによって、1つまたは複数のブロックチェーンを管理、更新、および維持管理するコンピューティングノードのネットワークである。上述したように、ブロックチェーンネットワークは、パブリックブロックチェーンネットワーク、プライベートブロックチェーンネットワーク、またはコンソーシアムブロックチェーンネットワークとして提供され得る。コンソーシアムブロックチェーンネットワークを参照して、本明細書の実施形態をここではさらに詳細に説明している。しかしながら、本明細書の実施形態が任意の適切なタイプのブロックチェーンネットワークにおいて実現され得ることも考えられる。
【0017】
一般に、コンソーシアムブロックチェーンネットワークは、関与エンティティの間でプライベートなものとなっている。コンソーシアムブロックチェーンネットワークにおいては、コンセンサスプロセスは、コンセンサスノードとも称し得る、権限を与えられたノードのセットによって制御され、1つまたは複数のコンセンサスノードがそれぞれのエンティティ(例えば、金融機関、保険会社)に管理される。例えば、十(10)のコンソーシアムエンティティ(例えば、金融機関、保険会社)がコンソーシアムブロックチェーンネットワークを管理してもよく、その各々がコンソーシアムブロックチェーンネットワーク内の少なくとも1つのノードを管理する。
【0018】
いくつかの例においては、コンソーシアムブロックチェーンネットワーク内では、グローバルブロックチェーンが、すべてのノードにわたって複製されるブロックチェーンとして提供される。すなわち、すべてのコンセンサスノードは、グローバルブロックチェーンに関する完全状態コンセンサスにある。コンセンサス(例えば、ブロックチェーンへのブロックの追加に対する合意)を得るために、コンセンサスプロトコルがコンソーシアムブロックチェーンネットワークにおいて実施される。例えば、コンソーシアムブロックチェーンネットワークは、以下でさらに詳細に説明している、実用的Byzantineフォールトトレランス(PBFT)コンセンサスを実施し得る。
【0019】
図1は、本明細書の実施形態を実行するために使用され得る環境100の例を示している図である。いくつかの例においては、環境100は、エンティティがコンソーシアムブロックチェーンネットワーク102に関与することを可能にする。環境100は、コンピューティングデバイス106、108、およびネットワーク110を含む。いくつかの例においては、ネットワーク110は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、またはその組合せを含み、ウェブサイト、ユーザデバイス(例えば、コンピューティングデバイス)、およびバックエンドシステムを接続する。いくつかの例においては、ネットワーク110は、有線および/または無線通信リンクを介してアクセスされ得る。いくつかの例においては、ネットワーク110は、コンソーシアムブロックチェーンネットワーク102との通信およびコンソーシアムブロックチェーンネットワーク102内の通信を可能にする。一般に、ネットワーク110は、1つまたは複数の通信ネットワークを表す。いくつかのケースにおいては、コンピューティングデバイス106、108は、クラウドコンピューティングシステムのノード(図示せず)であり得る、または、コンピューティングデバイス106、108の各々は、ネットワークによって相互接続された多数のコンピュータを含み、分散処理システムとして機能する、独立したクラウドコンピューティングシステムであり得る。
【0020】
図示した例においては、コンピューティングシステム106、108の各々は、コンソーシアムブロックチェーンネットワーク102内のノードとしての参加を可能にする任意の適切なコンピューティングシステムを含み得る。コンピューティングデバイスの例は、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピューティングデバイス、およびスマートフォンを含むがこれらに限定されない。いくつかの例においては、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102とやりとりするための1つまたは複数のコンピュータ実施サービスをホストする。例えば、コンピューティングシステム106は、第1のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第1のエンティティ(例えば、ユーザA)のコンピュータ実施サービスをホストすることができる。コンピューティングシステム108は、第2のエンティティが1つまたは複数の他のエンティティ(例えば、他のユーザ)とのトランザクションを管理するために使用するトランザクション管理システムなどといった、第2のエンティティ(例えば、ユーザB)のコンピュータ実施サービスをホストすることができる。
図1の例においては、コンソーシアムブロックチェーンネットワーク102を、ノードからなるピア・ツー・ピアネットワークとして表しており、コンピューティングシステム106、108は、コンソーシアムブロックチェーンネットワーク102に参加する、第1のエンティティおよび第2のエンティティのノードをそれぞれ提供する。
【0021】
図2は、本明細書の実施形態による、機構200の例を図示している。例示的な機構200は、関与者A、関与者B、および関与者Cにそれぞれ対応する関与者システム202、204、206を含む。各関与者(例えば、ユーザ、企業)は、少なくとも一部がブロックチェーン216に情報を変更不可能な形で記録する複数のノード214を含むピア・ツー・ピアネットワークとして提供されたブロックチェーンネットワーク212に関与する。単一のブロックチェーン216をブロックチェーンネットワーク212内に概略的に図示しているが、本明細書でさらに詳細に説明しているように、ブロックチェーン216の複数のコピーが、提供され、ブロックチェーンネットワーク212にわたって維持管理される。
【0022】
図示した例においては、関与者システム202、204、206の各々は、関与者A、関与者B、および関与者Cによってまたはそれらの代わりにそれぞれ提供され、ブロックチェーンネットワーク内のそれぞれのノード214として機能する。本明細書で使用されており、ノードは、ブロックチェーンネットワーク212に接続されている個々のシステム(例えば、コンピュータ、サーバ)を一般的に指し、それぞれの関与者がブロックチェーンネットワークに関与することを可能にする。
図2の例においては、関与者は、各ノード214に対応する。しかしながら、関与者がブロックチェーンネットワーク212内の複数のノード214を処理し得ることおよび/または複数の関与者がノード214を共有し得ることも考えられる。いくつかの例においては、関与者システム202、204、206は、あるプロトコル(例えば、ハイパーテキスト・トランスファー・プロトコル・セキュア(HTTPS))を使用して、および/またはリモートプロシージャコール(RPC)を使用して、ブロックチェーンネットワーク212と通信するまたはブロックチェーンネットワーク212を介して通信する。
【0023】
ノード214は、ブロックチェーンネットワーク212内の関与についての様々な度合いを有し得る。例えば、いくつかのノード214がコンセンサスプロセスに(例えば、ブロックをブロックチェーン216に追加するマイナーノードとして)関与し得る一方で、他のノード214はコンセンサスプロセスには関与しない。別の例としては、いくつかのノード214がブロックチェーン216の完全なコピーを記憶する一方で、他のノード214はブロックチェーン216の一部のコピーのみを記憶する。例えば、データアクセス権は、それぞれの関与者がそのそれぞれのシステムに記憶しているブロックチェーンデータに制限し得る。
図2の例においては、関与者システム202、204は、ブロックチェーン216の完全なコピー216'、216''をそれぞれ記憶している。
【0024】
ブロックチェーン(例えば、
図2のブロックチェーン216)は、各ブロックがデータを記憶しているブロックのチェーンで構成される。データの例としては、2つ以上の関与者間のトランザクションを表すトランザクションデータを含む。トランザクションを非限定的な例として本明細書では使用しているが、任意の適切なデータがブロックチェーンに記憶され得ること(例えば、ドキュメント、画像、ビデオ、オーディオ)も考えられる。トランザクションの例は、価値のあるもの(例えば、資産、製品、サービス、通貨)の交換を含み得るがこれに限定されない。トランザクションデータは、ブロックチェーン内に変更不可能な形で記憶される。すなわち、トランザクションデータを変更することはできない。
【0025】
ブロックに記憶する前に、トランザクションデータはハッシュ化される。ハッシュ化は、トランザクションデータ(文字列データとして提供される)を固定長のハッシュ値(文字列データとしても提供される)に変換するプロセスである。ハッシュ値を逆ハッシュ化してトランザクションデータを取得することはできない。ハッシュ化は、トランザクションデータにおけるわずかな変化でさえも完全に異なるハッシュ値という結果になることを保証している。さらに、上述したように、ハッシュ値は固定長である。すなわち、トランザクションデータのサイズに関係なく、ハッシュ値の長さは固定される。ハッシュ化は、ハッシュ機能によってトランザクションデータを処理してハッシュ値を生成することを含む。ハッシュ機能の例は、256ビットハッシュ値を出力するセキュアなハッシュアルゴリズム(SHA)-256を含むがこれに限定されない。
【0026】
複数のトランザクションのトランザクションデータがハッシュ化されブロックに記憶される。例えば、2つのトランザクションのハッシュ値が提供されると、それら自身がハッシュ化され別のハッシュを提供する。このプロセスは、すべてのトランザクションがブロックに記憶されるように、単一のハッシュ値が提供されるまで繰り返される。このようなハッシュ値は、Merkleルートハッシュと称され、ブロックのヘッダに記憶される。トランザクションについての何らかの変化は、そのハッシュ値における変化、最終的に、Merkleルートハッシュにおける変化をもたらすことになる。
【0027】
ブロックは、コンセンサスプロトコルを介してブロックチェーンに追加される。ブロックチェーンネットワーク内の複数のノードは、コンセンサスプロトコルに関与し、ブロックがブロックチェーンに追加されるようにする作業を行う。そのようなノードをコンセンサスノードと称する。上述したように、PBFTは、コンセンサスプロトコルの非限定的な例として使用される。コンセンサスノードは、コンセンサスプロトコルを実行してトランザクションをブロックチェーンに追加し、ブロックチェーンネットワークの総合的な状態を更新する。
【0028】
さらに詳細には、コンセンサスノードは、ブロックヘッダを生成し、ブロック内のトランザクションのすべてをハッシュ化し、単一のハッシュ値がブロック内のすべてのトランザクションに対して提供される(Merkleルートハッシュ)まで、ハッシュ値がペアになるように組み合わせてさらなるハッシュ値を生成する。このハッシュがブロックヘッダに追加される。コンセンサスノードはまた、ブロックチェーン内の最新ブロック(すなわち、ブロックチェーンに追加された最終ブロック)のハッシュ値を決定する。コンセンサスノードはまた、ノンス値およびタイムスタンプをブロックヘッダに追加する。
【0029】
一般に、PBFTは、Byzantine障害(例えば、正常に動作していないノード、不正ノード)に耐性がある実用的Byzantineステートマシンの複製を提供する。このことは、障害が生じるであろうことを想定すること(例えば、独立したノードの故障の存在および/またはコンセンサスノードによって送信される操作メッセージを想定すること)によってPBFTでは実現される。PBFTでは、コンセンサスノードは、プライマリコンセンサスノードおよびバックアップコンセンサスノードを含むシーケンスにおいて提供される。プライマリコンセンサスノードは、周期的に変更され、トランザクションは、ブロックチェーンネットワークの系全体の状態(world state)に関して合意に至ったブロックチェーンネットワーク内のすべてのコンセンサスノードによってブロックチェーンに追加される。このプロセスにおいては、メッセージは、コンセンサスノード間で送信され、各コンセンサスノードは、メッセージが指定のピアノードから受信されたことを証明し、メッセージが送信中に変更されなかったことを検証する。
【0030】
PBFTでは、多様な局面において、コンセンサスプロトコルが、同じ状態で開始するすべてのコンセンサスノードに提供される。はじめに、クライアントは、サービス動作を発動する(例えば、ブロックチェーンネットワーク内のトランザクションを実行する)ためにプライマリコンセンサスノードに要求を送信する。要求を受信したことに応答して、プライマリコンセンサスノードは、バックアップコンセンサスノードに要求をマルチキャストする。バックアップコンセンサスノードが要求を実行し、各々がクライアントに応答を送信する。クライアントは、閾値数の応答が受信されるまで待機する。いくつかの例においては、クライアントは、f+1個の応答が受信されるまで待機する、ここで、fは、ブロックチェーンネットワーク内で許容され得る、障害のあるコンセンサスノードの最大数である。目標達成は、ブロックチェーンに追加されることになるレコードの順で十分な数のコンセンサスノードが合意に至ることであり、レコードは、受理されるか拒否される。
【0031】
いくつかのブロックチェーンネットワークにおいては、暗号化がトランザクションのプライバシーを保持するために実施される。例えば、ブロックチェーンネットワーク内の他のノードがトランザクションの詳細を理解することができないように、2つのノードがトランザクションをプライベートな状態を維持することを望む場合には、ノードはトランザクションデータを暗号化し得る。暗号化の例は、対称暗号化および非対称暗号化を含むがこれらに限定されない。対称暗号化とは、暗号化(平文から暗号文を生成すること)および復号(暗号文から平文を生成すること)の両方に関して単一の鍵を使用する暗号化プロセスを指す。対称暗号化においては、同一の鍵が複数のノードで利用可能であるため、各ノードがトランザクションデータを暗号化/復号し得る。
【0032】
非対称暗号化は、各々が秘密鍵および公開鍵を含む鍵のペアを使用しており、秘密鍵はそれぞれのノードにのみに対して既知となっており、公開鍵はブロックチェーンネットワーク内の他のノードのいずれかまたはすべてに対して既知となっている。あるノードは、別のノードの公開鍵を使用してデータを暗号化し、暗号化されたデータは、他のノードの秘密鍵を使用して復号され得る。例えば、
図2を再び参照すれば、関与者Aは、関与者Bの公開鍵を使用してデータを暗号化し、暗号化されたデータを関与者Bに送信し得る。関与者Bは、その秘密鍵を使用して、暗号化されたデータ(暗号文)を復号し、元のデータ(平文)を抽出し得る。ノードの公開鍵で暗号化されたメッセージのみが、ノードの秘密鍵を使用して復号され得る。
【0033】
非対称暗号化は、トランザクション内の関与者がトランザクション内の他の関与者だけでなくトランザクションの有効性を確認することを可能にするデジタル署名を提供するために使用される。例えば、あるノードは、メッセージをデジタル的に署名し得るし、別のノードは、関与者Aのデジタル署名に基づいてメッセージがそのノードによって送信されたことを確認し得る。デジタル署名はまた、メッセージが送信中に改竄されていないことを保証するために使用され得る。例えば、
図2を再び参照すれば、関与者Aは、メッセージを関与者Bに送信しようとしている。関与者Aは、メッセージのハッシュを生成し、その後、その秘密鍵を使用して、ハッシュを暗号化して、暗号化したハッシュとしてデジタル署名を提供する。関与者Aは、デジタル署名をメッセージに付け加え、デジタル署名付きのメッセージを関与者Bに送信する。関与者Bは、関与者Aの公開鍵を使用してデジタル署名を復号し、ハッシュを抽出する。関与者Bは、メッセージをハッシュ化し、ハッシュを比較する。ハッシュが同一である場合には、関与者Bは、メッセージが確かに関与者Aからのものであり改竄されていないことを確認することができる。
【0034】
いくつかのブロックチェーンネットワークにおいては、所謂、スマートコントラクトが実行されてもよい。スマートコントラクトは、様々な関係者に影響を及ぼす契約条項を有する現実世界の適法契約のデジタル表現として説明することができる。スマートコントラクトは、例示的な状況では、コンソーシアムブロックチェーンネットワーク内で、実施され、記憶され、更新され(必要に応じて)、実行される。スマートコントラクトに関連付けられた契約関係者(例えば、買主および売主)は、コンソーシアムブロックチェーンネットワーク内のノードとして表される。いくつかの例においては、契約関係者は、(例えば、スマートコントラクトに対する関係者として)スマートコントラクトに関連付けられたエンティティ(例えば、企業)を含み得る。
【0035】
さらに詳細には、スマートコントラクトは、ブロックチェーン(例えば、ブロックチェーンネットワーク内のノード)上で実行されるコンピュータ実行可能プログラムとして提供される。スマートコントラクトは、そのルールの下でそのスマートコントラクトに対する関係者が互いにやりとりすることに合意する事前に定義されたルールのセットを含む。スマートコントラクトの事前に定義されたルールを満たしている場合には、スマートコントラクトにおいて定義された合意が自動的に実施される。スマートコントラクトは、通常は改竄抵抗性があり、合意またはトランザクションの交渉または遂行を容易にし、検証し、実施する。
【0036】
図3は、本明細書の実施形態による、ブロックチェーンネットワーク内のスマートコントラクトを使用して所帯スコアを管理する所帯スコア管理スキーム300の例を図示している図である。図示しているように、所帯スコア管理スキーム300は、スマートコントラクトを使用して地域の居住者350の所帯スコアに関する複数のオペレーション(所帯スコアオペレーションとも称する)を定義し得る。
【0037】
いくつかの実施形態においては、オペレーションの各々は、アプリケーションプログラミングインターフェース(API)、サービス、関数、またはその組合せとして実装され得る。オペレーションは、ルーチン、データ構造、および1つまたは複数のコンピュータ言語のオブジェクトクラスを使用して指定される。
【0038】
所帯スコアオペレーションは、例えば、スコア問合せオペレーション302、スコア加算オペレーション304、スコア控除オペレーション306、スコア引換オペレーション308、およびスコア移動オペレーション312を含み得る。所帯スコアオペレーションは、居住者350の所帯スコアに関する追加のまたは異なるオペレーションを含み得る。
【0039】
図4は、本明細書の実施形態による、地域内の居住者350のアクティビティに基づいて定義されている所帯スコアオペレーションの例を図示している
図400である。居住者350のアクティビティは、居住者350の所帯スコアを問合せ、変更、更新、決定、またさもなければ管理をする1つまたは複数の所帯スコアオペレーションを引き起こし得る。いくつかの実施形態においては、スマートコントラクトを使用した1つまたは複数の所帯スコアオペレーションの実行履歴は、ブロックチェーンネットワークに記録され得る。記録された実行履歴は、検査に利用可能であるとともに監視の対象であり得る、そのため、改善された透明性を地域内の居住者350の所帯スコアに対して提供している。いくつかの実施形態においては、居住者350は、スコア問合せオペレーション302を呼び出すことによって、彼または彼女自身の所帯スコアを閲覧する要求をし得る。いくつかの実施形態においては、1つまたは複数の居住者350は、所帯スコア管理システムを介してリアルタイムにオンラインでその者のポイントおよび対応する権利を閲覧し得る。いくつかの実施形態においては、居住者350は、居住者が第三者の所帯スコアに対するスコア問合せオペレーション302を呼び出す権限を有している場合には、第三者の所帯スコアを閲覧する要求をし得る。
【0040】
いくつかの実施形態においては、スコア加算オペレーション304は、所帯スコアを累算することによって、例えば、地域内の居住者350の生活を介して、トリガされ得る。例えば、地域内の居住者350の住居の賃貸または購入時には、スコア加算オペレーション304が、地域内の居住者350の所帯スコアを増大するようにトリガされ得る。スマートコントラクトを使用したスコア加算オペレーション304の実行時には、居住者350の所帯スコアは、例えば、リアルタイムにまたは実質的にリアルタイムに、更新され、ブロックチェーンネットワークに記録され得る。いくつかの実施形態においては、スコア加算オペレーション304は、(例えば、ある閾値を上回る)ある期間の間における地域内の居住者350の生活によってさらにトリガされ得る。いくつかの実施形態においては、スコア加算オペレーション304は、居住者350の状態または資格(例えば、大学の学位または学士号より上の学位を保有していること、地域内で雇用されていること、または地域内の生まれ)によってトリガされ得る。いくつかの実施形態においては、スコア加算オペレーション304は、例えば、居住者350に報いる際に、地域に対する居住者350の貢献または賞賛に値するアクティビティ(例えば、地域内での投資、または公的サービスへの参画、またはコミュニティ内でのボランティア活動)によってトリガされ得る。いくつかの実施形態においては、スコア加算オペレーション304は、居住者350の追加のまたは異なるアクティビティに基づいて定義され得る。
【0041】
いくつかの実施形態においては、所帯スコアが累算されると、所帯スコアが1つまたは複数のトリガ閾値に達した場合または1つまたは複数の報告条件を満たした場合には、1つまたは複数の報告イベント314が、居住者350が対応する所帯スコアを獲得したことを居住者350に通知するために生成され得る。所帯スコアは、市内で住居を賃貸または購入する際の適格性、優先度、特権、または権益などといった、ある権利に対応し得る。いくつかの実施形態においては、自動的な通知またはアラートが、所帯スコア管理システムによって、生成され、居住者350に関連付けられたクライアントノードに送信され得る。権益または権利は、例えば、住居を購入する適格性または優先度、登記済みの住居を所有する適格性または優先度、住居の賃貸または購入の価格における割引、地域内の税金に対する割引を含み得る。
【0042】
いくつかの実施形態においては、居住者350の所帯スコアが1つまたは複数の引換条件に達した場合には、居住者350は、スコア引換オペレーション308をトリガまたは起動し得る対応する権益または権利を引き換えることを選択し得る。例として、居住者350が地域内で住居352を賃貸するまたは住居354を購入することを可能にする閾値に居住者350の所帯スコアが達したまたは超過した場合には、居住者350は、そのような適格性を行使することを選択し得る。引換は、居住者350の所帯スコアを消費してもしなくてもよい。いくつかの実施形態においては、スコア引換オペレーション308は、居住者350の所帯スコアからある量を控除するようにトリガされ得る。スマートコントラクトを使用したスコア引換オペレーション308の実行時には、居住者350の所帯スコアは、例えば、リアルタイムにまたは実質的にリアルタイムに、更新され、ブロックチェーンネットワークに記録され得る。いくつかの実施形態においては、スコア引換オペレーション308は、居住者350の追加のまたは異なるアクティビティに基づいて定義され得る。例えば、スコア引換オペレーション308は、地域内の住居の賃貸または購入の価格に対する割引についての居住者350の引換によってトリガされ得る。
【0043】
いくつかの実施形態においては、居住者350が1つまたは複数のポリシー、規則、法律、またはルールを違反した場合には、居住者350の所帯スコアは、例えば、居住者350に対する罰として、低減され得る。いくつかの実施形態においては、スコア控除オペレーション306は、居住者350の所帯スコアからある量を控除するようにトリガされ得る。スマートコントラクトを使用したスコア控除オペレーション306の実行時には、居住者350の所帯スコアは、例えば、リアルタイムにまたは実質的にリアルタイムに、更新され、ブロックチェーンネットワークに記録され得る。いくつかの実施形態においては、スコア控除オペレーション306は、居住者350の追加のまたは異なるアクティビティに基づいて定義され得る。
【0044】
いくつかの実施形態においては、居住者350が別の地域で仕事および生活をする場合には、彼または彼女の所帯スコアは、例えば、スコア移動オペレーション312を起動することによって、別の地域に移動され得る。いくつかの実施形態においては、2つ以上の異なる地域は、同じまたは異なる所帯スコア管理スキームを使用し得る。例えば、2つの異なる地域は、それぞれのスマートコントラクトを使用して、2つの異なる地域内のそれぞれの居住者の所帯スコアを管理するためにそれぞれの所帯スコアオペレーションを定義し得る。いくつかの実施形態においては、それぞれのスマートコントラクトは、単一のブロックチェーンネットワークにデプロイされ得る。この場合には、移動プロセスは、(適切なインターフェースを有する)2つのスマートコントラクトにおいて定義されているスコア移動オペレーション312を実行することによって、2つのスマートコントラクトを使用して行われ得る。いくつかの実施形態においては、それぞれのスマートコントラクトは、異なるブロックチェーンネットワークにデプロイされ得る。この場合には、移動プロセスは、2つのブロックチェーンシステム間のチェーン間オペレーションに使用することよって行われ得る。
【0045】
図3に戻って参照すれば、いくつかの実施形態においては、所帯スコア管理スキーム300は、スマートコントラクトを使用して、地域内の居住者の所帯スコアを管理する際の対応する権限を有する複数のロールを定義し得る。例えば、図示しているように、
図3では、ロールは、例えば、アドミニストレータ310、オペレータ320、およびオブザーバ330のうちの1つまたは複数を含み得る。いくつかの実施形態においては、所帯スコア管理スキーム300は、スマートコントラクトを使用して追加のまたは異なるロールを定義し得るし、各ロールは、所帯スコアに対する追加のまたは異なるオペレーションで許可され得る。
【0046】
いくつかの実施形態においては、アドミニストレータ310は、地域内の居住者の所帯スコアを管理するためのスマートコントラクトにおける最高の権限を有するロールである。例えば、アドミニストレータは、スコア問合せオペレーション302、スコア加算オペレーション304、スコア控除オペレーション306、スコア引換オペレーション308、およびスコア移動オペレーション312を含む、スマートコントラクトにおいて定義されている所帯スコアオペレーションのすべてを行うことが許可され得る。
【0047】
いくつかの実施形態においては、オペレータ320は、スマートコントラクトにおいて定義されている所帯スコアオペレーションのサブセットを行うことが許可されているロールである。例えば、オペレータ320は、スコア加算オペレーション304、スコア控除オペレーション306、スコア引換オペレーション308、およびスコア移動オペレーション312を行うことが許可され得る。
【0048】
いくつかの実施形態においては、オブザーバ330は、スマートコントラクトにおいて定義されている制限された所帯スコアオペレーションを行うことが許可されているロールである。例えば、オペレータ330は、スコア問合せオペレーション302のみを行うことが許可され得るが、スコア加算オペレーション304、スコア控除オペレーション306、スコア引換オペレーション308、およびスコア移動オペレーション312のいずれも許可され得ない。
【0049】
図5は、本明細書の実施形態による、地域内の居住者の所帯スコアを管理する際の異なるロールのオペレーションの例を図示している
図500である。いくつかの実施形態においては、各ロールは、それぞれのロールおよび所与の対応する権限で指定されたそれぞれのリストに対応し得る。例えば、所帯スコア管理スキーム300は、地域内の居住者の所帯スコアを管理する際にアドミニストレータ権限を有する1つまたは複数のアカウントを含むアドミニストレータリストを含み得る。いくつかの実施形態においては、アドミニストレータリスト内の1つまたは複数のアカウントの各々はアドミニストレータ310と称し得る。同様に、オペレータリストは、地域内の居住者の所帯スコアを管理する際にオペレータ権限を有する1つまたは複数のアカウントを含むように指定され得るし、オペレータリスト内の1つまたは複数のアカウントの各々はオペレータ320と称し得る。いくつかの実施形態においては、オブザーバリストは、地域内の居住者の所帯スコアを管理する際にオブザーバ権限を有する1つまたは複数のアカウントを含むように指定され得るし、アドミニストレータリスト内の1つまたは複数のアカウントの各々はアドミニストレータ310と称し得るし、オブザーバリスト内の1つまたは複数のアカウントの各々はオブザーバ330と称し得る。
【0050】
いくつかの実施形態においては、各アカウントは、人、組織、または別のエンティティに関連付けられ得る。各アカウントは、1つまたは複数のコンピューティングシステム(例えば、コンピューティングシステム106、108)、関与者システム(例えば、関与者システム202、204、206)、および/またはノード(例えば、ブロックチェーンネットワークのクライアントノードまたはコンセンサスノード)を介してブロックチェーンネットワーク内のスマートコントラクトを使用して所帯スコアを管理することに関与し得る。
【0051】
いくつかの実施形態においては、スマートコントラクトは、アドミニストレータ310の管理オペレーションをさらに定義し得る。例えば、図示しているように、
図5では、アドミニストレータ310の管理オペレーションは、アドミニストレータ管理(例えば、アドミニストレータ追加オペレーション512、アドミニストレータ削除オペレーション514、アドミニストレータ閲覧オペレーション516)、オペレータ管理(例えば、オペレータ追加オペレーション522、オペレータ削除オペレーション524、オペレータ閲覧オペレーション526)、およびオブザーバ管理(例えば、オブザーバ追加オペレーション532、オブザーバ削除オペレーション534、オブザーバ閲覧オペレーション536)についてのオペレーションを含み得る。例えば、アドミニストレータ310は、例えば、スマートコントラクトにおいて定義されているアドミニストレータ追加オペレーション512を呼び出すことによって、別のアドミニストレータ310をアドミニストレータリストに追加し得る。別の例としては、アドミニストレータ310は、例えば、スマートコントラクトにおいて定義されているオペレータ削除オペレーション524を呼び出すことによって、オペレータリストからオペレータ320を削除し得る。さらに別の例としては、アドミニストレータ310は、例えば、スマートコントラクトにおいて定義されているオブザーバ閲覧オペレーション536を呼び出すことによって、オブザーバリスト内のすべての許可されているオブザーバ330を閲覧し得る。
【0052】
いくつかの実施形態においては、スマートコントラクトは、オペレータ320の管理オペレーションをさらに定義し得る。例えば、図示しているように、
図5では、オペレータ320の管理オペレーションは、オペレータ閲覧オペレーション526のみを含み得る。例えば、オペレータ320は、例えば、スマートコントラクトにおいて定義されているオペレータ閲覧オペレーション522を呼び出すことによって、オペレータリスト内のすべての許可されているオペレータ320を閲覧し得る。
【0053】
いくつかの実施形態においては、スマートコントラクトは、オブザーバ330の管理オペレーションをさらに定義し得る。例えば、図示しているように、
図5では、オブザーバ330の管理オペレーションは、オペレータ閲覧オペレーション526のみを含み得る。例えば、オブザーバ330は、例えば、スマートコントラクトにおいて定義されているオペレータ閲覧オペレーション536を呼び出すことによって、オブザーバリスト内のすべての許可されているオブザーバ330を閲覧し得る。
【0054】
いくつかの実施形態においては、アカウントがスマートコントラクトにおいて定義されている任意のオペレーションを呼び出すことができるようになる前には、ロール検証プロセスを行うことはできない。例えば、アカウントがアドミニストレータロール515を与えられているかどうか、アカウントがオペレータロール525を与えられているかどうか、およびアカウントがオブザーバロール535を与えられているかどうかを決定し得る。いくつかの実施形態においては、アカウントがあるロールを与えられていることを検証する際に、そのようなロールについて許可されている対応するオペレーションが、ブロックチェーンネットワーク内のスマートコントラクトを使用して所帯スコアを管理する際にアカウントによって呼び出され得る。
【0055】
図6は、本明細書の実施形態による、ブロックチェーンネットワーク内のスマートコントラクトを使用して所帯スコアを管理するためのプロセス600の例を図示している。例示的なプロセス600は、1つまたは複数のコンピューティングデバイスを使用して実行される1つまたは複数のコンピュータ実行可能プログラムを使用して行われ得る。いくつかの例においては、例示的なプロセス600は、ブロックチェーンネットワーク内のスマートコントラクトを使用して所帯スコアを管理するための分散システム(例えば、
図1のブロックチェーンシステム100)によって行われ得る。便宜上、プロセス600は、1つまたは複数のロケーションに位置する1つまたは複数のコンピュータのシステムによって行われるように記載しており、本明細書に従って適切にプログラムされることになる。例えば、分散システム、例えば、適切にプログラムされた
図1のブロックチェーンシステム100は、プロセス600を行い得る。いくつかの実施形態においては、プロセス600の一部またはすべてのオペレーションは、ブロックチェーンネットワークのコンセンサスノードなどのノードによって行われ得る。例えば、適切にプログラムされた機構200の例えばノード214は、プロセス600の一部またはすべてのオペレーションを行い得る。ノードは、例えば、1つまたは複数のコンピューティングデバイス(例えば、コンピューティングデバイス106、108)を使用して実装され得る。
【0056】
602において、スマートコントラクトは、ブロックチェーンネットワークのノードによって受信される。スマートコントラクトは、居住者の所帯スコアを管理するための複数のオペレーションを定義している。指定の地域内の居住者の所帯スコアは、指定の地域内の住居を賃貸または購入する際の居住者の権利を示している。複数のオペレーションは、所帯スコアオペレーション302〜312ならびに管理オペレーション512〜516、524〜526、および534〜536などといった、
図3から
図5を参照して説明したオペレーションを含み得る。例として、複数のオペレーションは、スコア問合せオペレーション、スコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションを含む。複数のオペレーションは、追加のまたは異なるオペレーションを含み得る。
【0057】
いくつかの実施形態においては、スマートコントラクトは、複数のロールを定義しており、各ロールは、例えば、
図3から
図5を参照して説明しているように、複数のオペレーションについてのそれぞれのセットが許可されている。例えば、スマートコントラクトは、アドミニストレータロールを定義しており、スマートコントラクトは、アドミニストレータロールが複数のオペレーションのうちのすべてを実行することが許可されていることを定義している。いくつかの実施形態においては、スマートコントラクトは、アドミニストレータがスマートコントラクトにおいて定義されている複数のロールのうちの1つまたは複数を追加、削除、または問合せをするオペレーションを実行することが許可されていることを定義している。いくつかの実施形態においては、スマートコントラクトは、オペレータロールを定義しており、スマートコントラクトは、オペレータロールがスコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションのうちの1つまたは複数を実行することが許可されていることを定義している。いくつかの実施形態においては、スマートコントラクトは、オブザーバを定義しており、スマートコントラクトは、オブザーバロールがスコア問合せオペレーションのみを実行することが許可されていることを定義している。
【0058】
いくつかの実施形態においては、スマートコントラクトは、地域の政府機関(例えば、行政機関)に関連しているデプロイサーバによって生成される。いくつかの実施形態においては、デプロイサーバ306は、ブロックチェーンネットワークにスマートコントラクトをデプロイする。いくつかの例においては、デプロイサーバは、ブロックチェーンネットワークへのスマートコントラクトのトランザクションを生成および送信する。スマートコントラクトのトランザクションは、スマートコントラクトのプログラムおよび起案者を含み得る。ブロックチェーンネットワークのノード(例えば、コンセンサスノード)は、スマートコントラクトのトランザクションを検証する。マイニングノードがスマートコントラクトのトランザクションを検証することに成功した後に、スマートコントラクトは、分散方式でブロックチェーンネットワークにデプロイされ得るし、スマートコントラクト310を呼び出すことができる一意なスマートコントラクトアドレスを有する。いくつかの実施形態においては、ノードは、ブロックチェーンネットワークにアクセスし、スマートコントラクトを受信する。いくつかの実施形態においては、ノードは、スマートコントラクトを処理し、アカウントをスマートコントラクトに登録(生成)する。アカウントは、スマートコントラクトにおいて定義されているロールに関連付けられ得る。いくつかの実施形態においては、ノードは、ブロックチェーンネットワークのコンセンサスノードであり、ノードのアカウントは、地域内の1つまたは複数の指定の居住者の所帯スコアを管理するためのアドミニストレータロールを与えられている。いくつかの実施形態においては、ノードは、ブロックチェーンネットワークのコンセンサスノードであり、ノードのアカウントは、地域内の1つまたは複数の指定の居住者の所帯スコアを管理するためのオペレータロールを与えられている。いくつかの実施形態においては、ノードは、ブロックチェーンネットワークのクライアントノードであり、ノードのアカウントは、地域内の1つまたは複数の指定の居住者に対応する1つまたは複数の所帯スコアおよび1つまたは複数のオブザーバリストを閲覧することだけができるオブザーバロールを与えられている。
【0059】
604において、居住者の所帯スコアを管理するための複数のオペレーションのうちの1つがトリガされるかどうかがブロックチェーンネットワークのノードによって決定される。いくつかの実施形態においては、そのような決定は、ブロックチェーンネットワークのノードによって受信された1つまたは複数の要求またはデータに基づいてなされ得る。要求またはデータは、指定の居住者の住宅スコアに影響を及ぼし得る指定の居住者の1つまたは複数のアクティビティに反映され得る。いくつかの実施形態においては、ブロックチェーンネットワークのノードは、指定の居住者に関連付けられたクライアントノードから、指定の居住者の所帯スコアの問合せを受信し得る。いくつかの実施形態においては、ブロックチェーンネットワークのノードは、指定の居住者に関連付けられたクライアントノードから、ブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信し得る。いくつかの実施形態においては、ブロックチェーンネットワークのノードは、指定の居住者に関連付けられたクライアントノードから、別のブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信し得る。
【0060】
606において、ノードが指定の居住者の所帯スコアを管理するための複数のオペレーションのうちの1つを実行することが許可されているかどうかがブロックチェーンネットワークのノードによって決定され得る。いくつかの実施形態においては、そのような決定は、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行することが許可されているロールにノードが関連付けられているかどうかに基づいてなされ得る。
【0061】
ノードが複数のオペレーションのうちの1つを実行することが許可されていない場合には、607においてエラーが示され得るし、居住者の所帯スコアを管理するための複数のオペレーションのうちの1つがトリガされたかどうかをモニタするために例示的なプロセス600は604に戻り得る。いくつかの実施形態においては、例示的なプロセス600は、607においてエラーが発生した場合には終了し得る。
【0062】
608において、ノードが複数のオペレーションのうちの1つを実行することが許可されていると決定したことに応答して、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つが、ノードによって、例えば、
図3から
図5を参照して説明しているような例に従ってスマートコントラクト呼び出しをすることによって実行される。いくつかの実施形態においては、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行するステップは、指定の居住者の現在の所帯スコアをチェックするためにスコア問合せオペレーションを実行するステップ、指定の居住者に報いる際に指定の居住者の所帯スコアを増大するためにスコア加算オペレーションを実行するステップ、指定の居住者を罰する際に指定の居住者の所帯スコアを低減するためにスコア控除オペレーションを実行するステップ、住居を賃貸または購入する際の1つまたは複数の権益のために指定の居住者の所帯スコアの一部またはすべてを引き換えるためにスコア引換オペレーションを実行するステップ、または、別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するためにスコア移動オペレーションを実行するステップのうちの1つまたは複数を含む。
【0063】
いくつかの実施形態においては、ノードが指定の居住者の所帯スコアをチェックするためにスコア問合せオペレーションを実行することが許可されていると決定したことに応答して、ノードは、指定の居住者の所帯スコアの指定の居住者履歴に関連付けられたクライアントノードにさらに報告し得る。
【0064】
いくつかの実施形態においては、ノードが別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するためにスコア移動オペレーションを実行することが許可されていると決定されたことに応答して、ノードは、別のスマートコントラクトまたは別のブロックチェーンネットワークを使用して、別の所帯スコア管理システムが同一のブロックチェーンネットワークにデプロイされているかをさらに決定し得る。別の所帯スコア管理システムがブロックチェーンネットワークにデプロイされている場合には、ノードは、2つのスコア移動オペレーションのインターフェースを満たすために適切にプログラムされた、スマートコントラクトにおいて定義されているスコア移動オペレーションおよび別のスマートコントラクトにおいて定義されているスコア移動オペレーションを実行することによって、別の所帯スコア管理システムに指定の居住者の所帯スコアを移動し得る。別の所帯スコア管理システムがブロックチェーンネットワークにデプロイされている場合には、ノードは、ブロックチェーンネットワークと別のブロックチェーンネットワークとの間のチェーン間オペレーションを呼び出すことによって別の所帯スコア管理システムに指定の居住者の所帯スコアを移動し得る。
【0065】
610において、指定の居住者の現在の所帯スコアが報告イベントをトリガするかが、例えば、
図4を参照して説明したような例に従って、ノードによって決定される。いくつかの実施形態においては、そのような決定は、指定の居住者の所帯スコアに基づいて決定された1つまたは複数の閾値または基準に基づいてなされ得る。指定の居住者の現在の所帯スコアが任意の報告イベントをトリガしていない場合には、居住者の所帯スコアを管理するための複数のオペレーションのうちの1つがトリガされたかどうかをモニタするためにプロセスは604に戻り得る。
【0066】
612において、指定の居住者の現在の所帯スコアが報告イベントをトリガすると決定したことに応答して、指定の居住者の現在の所帯スコアが、例えば、
図4を参照して説明したような例に従って、指定の居住者にノードによって報告される。例えば、ノードは、所帯スコアの指定の居住者および/または履歴の現在の所帯スコアを指定の居住者に関連付けられたクライアントノードに送信し得る。
【0067】
図7は、本明細書の実施形態による、装置700のモジュールの例の図である。装置700は、ブロックチェーンネットワーク内で実行されるスマートコントラクトを使用して居住者の所帯スコアを管理するためのブロックチェーンネットワーク内のノードの実施形態の例であり得る、ここで、居住者の所帯スコアは、住居を賃貸または購入する際の居住者の権利を示している。装置700は、上記で説明した実施形態に対応し得るし、装置700は、スマートコントラクトを受信するための受信モジュール702であって、スマートコントラクトは、居住者の所帯スコアを管理するための複数のオペレーションを定義しており、複数のオペレーションは、スコア問合せオペレーション、スコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションを含む、受信モジュール702と、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行するための実行モジュール704と、指定の居住者の現在の所帯スコアが報告イベントをトリガするかを決定するための決定モジュール706と、指定の居住者の現在の所帯スコアが報告イベントをトリガすると決定したことに応答して指定の居住者の現在の所帯スコアを、指定の居住者に、報告するための報告モジュール708とを含む。
【0068】
随意的な実施形態においては、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行するステップは、指定の居住者の現在の所帯スコアをチェックするためにスコア問合せオペレーションを実行するステップ、指定の居住者に報いる際に指定の居住者の所帯スコアを増大するためにスコア加算オペレーションを実行するステップ、指定の居住者を罰する際に指定の居住者の所帯スコアを低減するためにスコア控除オペレーションを実行するステップ、住居を賃貸または購入する際の1つまたは複数の権益のために指定の居住者の所帯スコアの一部またはすべてを引き換えるためにスコア引換オペレーションを実行するステップ、または、別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するためにスコア移動オペレーションを実行するステップのうちの1つまたは複数を含む。
【0069】
随意的な実施形態においては、スマートコントラクトは、複数のロールを定義しており、各ロールは、複数のオペレーションについてのそれぞれのセットが許可されている。
【0070】
随意的な実施形態においては、スマートコントラクトは、アドミニストレータロールを定義しており、スマートコントラクトは、アドミニストレータロールが複数のオペレーションのうちのすべてを実行することが許可されていることを定義している。
【0071】
随意的な実施形態においては、スマートコントラクトは、アドミニストレータがスマートコントラクトにおいて定義されている複数のロールのうちの1つまたは複数を追加、削除、または問合せをするオペレーションを実行することが許可されていることを定義している。
【0072】
随意的な実施形態においては、スマートコントラクトは、オペレータロールを定義しており、スマートコントラクトは、オペレータロールがスコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションのうちの1つまたは複数を実行することが許可されていることを定義している。
【0073】
随意的な実施形態においては、スマートコントラクトは、オブザーバを定義しており、スマートコントラクトは、オブザーバロールがスコア問合せオペレーションのみを実行することが許可されていることを定義している。
【0074】
随意的な実施形態においては、装置700は、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行することが許可されているロールにノードが関連付けられているかどうかを決定するための第2の決定サブモジュールをさらに含む。
【0075】
随意的な実施形態においては、装置700は、指定の居住者に関連付けられたクライアントノードから、指定の居住者の所帯スコアの問合せを受信し、ノードによって、指定の居住者に関連付けられたクライアントノードに、指定の居住者の所帯スコアの履歴を報告するための第1の受信サブモジュールをさらに含む。
【0076】
随意的な実施形態においては、装置700は、指定の居住者に関連付けられたクライアントノードから、ブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信するための第2の受信サブモジュールと、スマートコントラクトにおいて定義されているスコア移動オペレーションを実行することによって別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するための第1の移動モジュールとをさらに含む。
【0077】
随意的な実施形態においては、装置700は、指定の居住者に関連付けられたクライアントノードから、別のブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信するための第2の受信サブモジュールと、ノードによって、ブロックチェーンネットワークと別のブロックチェーンネットワークとの間のチェーン間オペレーションを呼び出すことによって別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するための第2の移動モジュールとをさらに含む。
【0078】
上記の実施形態において示したシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティを使用して実装され得る、または、ある機能を有する製品を使用して実装され得る。典型的な実施形態デバイスは、コンピュータであり、コンピュータは、パーソナルコンピュータ、ラップトップコンピュータ、セルラ電話、カメラ電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メール送受信デバイス、ゲームコンソール、タブレットコンピュータ、ウェアラブルデバイス、またはこれらのデバイスの任意の組合せであり得る。
【0079】
装置内の各モジュールの機能およびロールについての実施プロセスについては、上記の方法における対応するステップについての実施プロセスを参照されたい。簡潔にするために詳細はここでは省略する。
【0080】
装置の実施形態は方法の実施形態に基本的に対応しているため、関連する部分については、方法の実施形態における関連する説明を参照されたい。上記で説明した装置の実施形態は一例に過ぎない。別個の部分として説明したモジュールは、物理的に分離され得るしまたはされ得ない。モジュールとして図示した部分は、物理ユニットであり得るしまたはあり得ないし、1つの位置にあり得るし、または多数のネットワークモジュールに分散され得る。モジュールの一部またはすべては、本明細書のソリューションの目的を達成するための実際の要求に基づいて選択され得る。当業者は、創造的努力無しで本出願の実施形態を理解および実施できよう。
【0081】
図7を再び参照すれば、ブロックチェーン所帯スコア管理装置の内部機能モジュールおよび構造を図示しているものとして解釈できよう。ブロックチェーン所帯スコア管理装置は、ブロックチェーンネットワーク内で実行されるスマートコントラクトを使用して居住者の所帯スコアを管理するように構成されるブロックチェーンノードの例であり得る、ここで、居住者の所帯スコアは、住居を賃貸または購入する際の居住者の権利を示している。本質的な実行の主体は、電子デバイスであり得るし、電子デバイスは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサの実行可能命令を記憶するように構成される、メモリとを含む。
【0082】
本明細書において説明した技法は、1つまたは複数の技術的効果を生み出す。いくつかの実施形態においては、スマートコントラクトは、地域内の居住者の所帯スコアに対するオペレーションを規定またさもなければ定義するために使用され得る。いくつかの実施形態においては、スマートコントラクトベースの所帯スコアオペレーションは、ブロックチェーンネットワーク内のスマートコントラクトにおいて定義されている1つまたは複数のオペレーションの実行に基づいて地域内の指定の居住者の所帯スコアを動的かつ自動的に決定することができるように、ブロックチェーンネットワークのノードによって実行され得る。いくつかの実施形態においては、スマートコントラクトベースの所帯スコアオペレーションは、所帯スコアに影響を及ぼし得る信頼できるオペレーションおよびトランザクションを実行するために使用され得る。いくつかの実施形態においては、オペレーションおよびトランザクションは、追跡可能かつ不可逆的であり、改竄抵抗性があり得る、そのため、改善された透明性を提供しており、居住者が地域に貢献することを奨励しその動機を与える、オープンで、公正で、セキュアで、信頼できる所帯スコア管理スキームを作成している。所帯スコア管理スキームは、一般市民の所帯スコアについての容易なアクセス、問合せ、および管理を提供することができ、1つまたは複数の管理機関または所管官庁による悪用または汚職を防止している。いくつかの実施形態においては、スマートコントラクトはまた、所帯スコアオペレーションに関して異なる権限を有する異なるロール(例えば、アドミニストレータ、オペレータ、またはオブザーバ)を定義しており、所帯スコアを管理する際のフレキシビリティを可能にしている。いくつかの実施形態においては、スマートコントラクトベースの所帯スコア管理スキームはまた、スマートコントラクトにおいて定義されている移動機能またはチェーン間オペレーションを呼び出すことによって所帯スコアの地域間の移動を可能にし得る。
【0083】
発明特定事項の説明した実施形態は、単独または組合せで1つまたは複数の特徴を含み得る。
【0084】
例えば、第1の実施形態においては、ブロックチェーンネットワーク内で実行されるスマートコントラクトを使用して居住者の所帯スコアを管理するためのコンピュータ実施方法であり、居住者の所帯スコアは、住居を賃貸または購入する際の居住者の権利を示し、方法は、ブロックチェーンネットワークのノードによって、居住者の所帯スコアを管理するためのオペレーションを定義しているスマートコントラクトを受信するステップであって、オペレーションは、スコア問合せオペレーション、スコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションを含む、ステップと、ノードによって、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されているオペレーションのうちの1つを実行するステップと、ノードによって、指定の居住者の現在の所帯スコアが報告イベントをトリガするかを決定するステップと、指定の居住者の現在の所帯スコアが報告イベントをトリガすると決定したことに応答して、ノードによって、指定の居住者に、指定の居住者の現在の所帯スコアを報告するステップとを含む。上記でおよび他の説明した実施形態の各々は、必要に応じて、以下の特徴の1つまたは複数を含む。
【0085】
下記の特徴のいずれかと組み合わせることが可能な第1の特徴としては、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行するステップは、指定の居住者の現在の所帯スコアをチェックするためにスコア問合せオペレーションを実行するステップ、指定の居住者に報いる際に指定の居住者の所帯スコアを増大するためにスコア加算オペレーションを実行するステップ、指定の居住者を罰する際に指定の居住者の所帯スコアを低減するためにスコア控除オペレーションを実行するステップ、住居を賃貸または購入する際の1つまたは複数の権益のために指定の居住者の所帯スコアの一部またはすべてを引き換えるためにスコア引換オペレーションを実行するステップ、または、別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するためにスコア移動オペレーションを実行するステップのうちの1つまたは複数を含む。
【0086】
上記または下記の特徴のいずれかと組み合わせることが可能な第2の特徴としては、スマートコントラクトは、複数のロールを定義しており、各ロールは、複数のオペレーションについてのそれぞれのセットが許可されていることを規定している。
【0087】
上記または下記の特徴のいずれかと組み合わせることが可能な第3の特徴としては、スマートコントラクトは、アドミニストレータロールを定義しており、スマートコントラクトは、アドミニストレータロールが複数のオペレーションのうちのすべてを実行することが許可されていることを定義していることを規定している。
【0088】
上記または下記の特徴のいずれかと組み合わせることが可能な第4の特徴としては、スマートコントラクトは、アドミニストレータがスマートコントラクトにおいて定義されている複数のロールのうちの1つまたは複数を追加、削除、または問合せをするオペレーションを実行することが許可されていることを定義していることを規定している。
【0089】
上記または下記の特徴のいずれかと組み合わせることが可能な第5の特徴としては、スマートコントラクトは、オペレータロールを定義しており、スマートコントラクトは、オペレータロールがスコア加算オペレーション、スコア控除オペレーション、スコア引換オペレーション、およびスコア移動オペレーションのうちの1つまたは複数を実行することが許可されていることを定義していることを規定している。
【0090】
上記または下記の特徴のいずれかと組み合わせることが可能な第6の特徴としては、スマートコントラクトは、オブザーバを定義しており、スマートコントラクトは、オブザーバロールがスコア問合せオペレーションのみを実行することが許可されていることを定義していることを規定している。
【0091】
上記または下記の特徴のいずれかと組み合わせることが可能な第7の特徴としては、方法が、指定の居住者の所帯スコアを管理するためにスマートコントラクトにおいて定義されている複数のオペレーションのうちの1つを実行することが許可されているロールにノードが関連付けられているかどうかを決定するステップをさらに含むことを規定している。
【0092】
上記または下記の特徴のいずれかと組み合わせることが可能な第8の特徴としては、方法が、ノードによって、指定の居住者に関連付けられたクライアントノードから、指定の居住者の所帯スコアの問合せを受信するステップと、ノードによって、指定の居住者に関連付けられたクライアントノードに、指定の居住者の所帯スコアの履歴を報告するステップとをさらに含むことを規定している。
【0093】
上記または下記の特徴のいずれかと組み合わせることが可能な第9の特徴としては、方法が、ノードによって、指定の居住者に関連付けられたクライアントノードから、ブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信するステップと、ノードによって、スマートコントラクトにおいて定義されているスコア移動オペレーションを実行することによって別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するステップとをさらに含むことを規定している。
【0094】
上記または下記の特徴のいずれかと組み合わせることが可能な第10の特徴としては、方法が、ノードによって、指定の居住者に関連付けられたクライアントノードから、別のブロックチェーンネットワークにデプロイされている別の所帯スコア管理システムへの指定の居住者の所帯スコアの移動要求を受信するステップと、ノードによって、ブロックチェーンネットワークと別のブロックチェーンネットワークとの間のチェーン間オペレーションを呼び出すことによって別の所帯スコア管理システムに指定の居住者の所帯スコアを移動するステップとをさらに含むことを規定している。
【0095】
発明特定事項の実施形態ならびに本明細書において説明したアクションおよび動作は、デジタル電子回路の形で、有形に具現化されたコンピュータソフトウェアまたはファームウェアの形で、本明細書において開示した構造およびそれらの構造的均等物を含むコンピュータハードウェアの形で、またはそれらの組合せのうちの1つまたは複数で実装され得る。本明細書において説明した発明特定事項の実施形態は、データ処理装置による実行のためにまたはデータ処理装置の処理を制御するために、コンピュータプログラムキャリア上に符号化された、例えばコンピュータプログラム命令の1つまたは複数のモジュールといった1つまたは複数のコンピュータプログラムとして実装され得る。例えば、コンピュータプログラムキャリアは、そこに符号化または記憶されている命令を有する1つまたは複数のコンピュータ可読記憶媒体を含み得る。キャリアは、磁気ディスク、光磁気ディスク、もしくは光ディスク、ソリッドステートドライブ、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、または他のタイプの媒体などといった、有形非一時的コンピュータ可読媒体であり得る。あるいはまたは加えて、キャリアは、データ処理装置による実行に適した受信機装置への伝送のために情報を符号化するために生成された、人為的に生成した伝搬信号、例えば、機械生成された電気信号、光信号、または電磁気信号であり得る。コンピュータ記憶媒体は、機械可読ストレージデバイス、機械可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリデバイス、またはそれらのうちの1つまたは複数の組合せであり得るもしくは一部であり得る。コンピュータ記憶媒体は伝搬信号ではない。
【0096】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、モジュール、ソフトウェアモジュール、エンジン、スクリプト、またはコードとも称し得るまたは記述し得る、コンピュータプログラムは、コンパイル型もしくはインタプリタ型言語、または宣言型もしくは手続き型言語を含む、任意の形式のプログラミング言語で書かれ得るし、スタンドアロンプログラムとして、またはモジュール、コンポーネント、エンジン、サブルーチン、もしくはコンピューティング環境における実行に適した他のユニットとして、といったことを含む任意の形式で、デプロイされ得る。環境は、1つまたは複数のロケーションにおいてデータ通信ネットワークによって相互接続される1つまたは複数のコンピュータを含み得る。
【0097】
コンピュータプログラムは、ファイルシステム内のファイルに対応し得るが、必ずしも必要ではない。コンピュータプログラムは、例えば、マークアップ言語ドキュメントに記憶されている1つまたは複数のスクリプトといった、他のプログラムまたはデータを保持するファイルの一部に、当該プログラム専用の単一のファイルに、または、例えば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイルといった、複数の協調ファイルに、記憶され得る。
【0098】
コンピュータプログラムの実行のためのプロセッサは、例として、汎用および特殊用途マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。一般的に、プロセッサは、プロセッサに結合されている非一時的コンピュータ可読媒体からデータだけでなく実行のためのコンピュータプログラムの命令も受信することになる。
【0099】
「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、または複数のプロセッサもしくはコンピュータを含む、データを処理するためのあらゆる種類の装置、デバイス、およびマシンを含む。データ処理装置は、特殊用途ロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)、ASIC(特定用途向け集積回路)、またはGPU(グラフィック処理ユニット)を含み得る。装置はまた、ハードウェアに加えて、コンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。
【0100】
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行し、入力データを処理して出力を生成することによって処理を行う、1つまたは複数のコンピュータもしくはプロセッサによって行われ得る。プロセスおよびロジックフローはまた、例えばFPGA、ASIC、またはGPUといった特殊用途ロジック回路によって、または、特殊用途ロジック回路と1つまたは複数のプログラマブルコンピュータとの組合せによって、実装され得る。
【0101】
コンピュータプログラムの実行に適したコンピュータは、汎用もしくは特殊用途マイクロプロセッサもしくはその両方、または任意の他の種類の中央処理ユニットに基づき得る。一般的に、中央処理ユニットは、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信することになる。コンピュータの要素は、命令を実行するための中央処理ユニットと、命令およびデータを記憶するための1つまたは複数のメモリデバイスとを含み得る。中央処理ユニットおよびメモリは、特殊用途ロジック回路によって補完され得る、またはそれに組み込まれ得る。
【0102】
一般的に、コンピュータは、1つまたは複数の記憶デバイスを含むことになる、または、1つまたは複数の記憶デバイスからデータを受信もしくは1つまたは複数の記憶デバイスにデータを送信することが動作可能なように結合されることになる。記憶デバイスは、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスク、ソリッドステートドライブ、または任意の他のタイプの非一時的コンピュータ可読媒体であり得る。しかしながら、コンピュータは、そのようなデバイスを必ずしも有する必要はない。そのため、コンピュータは、ローカルおよび/またはリモートにある1つまたは複数のメモリなどといった、1つまたは複数の記憶デバイスに結合され得る。例えば、コンピュータは、コンピュータの統合コンポーネントである1つまたは複数のローカルメモリを含み得る、または、コンピュータは、クラウドネットワークにある1つまたは複数のリモートメモリに結合され得る。さらに、コンピュータは、数例挙げるとすれば、例えば、モバイル電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、Global Positioning System(GPS)受信機、または例えばユニバーサルシリアルバス(USB)フラッシュドライブなどのポータブルストレージデバイスといった別のデバイスに組み込まれ得る。
【0103】
コンポーネントは、直接または1つまたは複数の中間コンポーネントを介して互いに電気的または光学的などといった通信可能なように接続することによって互いに「結合」され得る。コンポーネントは、コンポーネントの1つが他のものに統合されている場合も互いに「結合」され得る。例えば、プロセッサ(例えば、L2キャッシュコンポーネント)に統合されている記憶コンポーネントは、プロセッサに「結合」される。
【0104】
ユーザとのインタラクションを提供するために、本明細書において説明した発明特定事項の実施形態は、ユーザに情報を表示するための、例えば、LCD(液晶ディスプレイ)モニタといった、表示デバイスと、例えば、キーボード、および例えば、マウス、トラックボールまたはタッチパッドなどのポインティングデバイスといった、ユーザがコンピュータに入力を提供することができる、入力デバイスとを有するコンピュータ上で実装され得る、または、そのようなコンピュータと通信するように構成され得る。同様に、他の種類のデバイスがユーザとのインタラクションを提供するために使用され得る。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックといった任意の形式の感覚フィードバックであり得るし、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信され得る。加えて、コンピュータは、ユーザによって使用されるデバイスにドキュメントを送信することおよびユーザによって使用されるデバイスからドキュメントを受信することによって、例えば、ユーザのデバイス上のウェブブラウザから受信した要求に応答してウェブブラウザにウェブページを送信することによって、または、例えばスマートフォンもしくは電子タブレットといったユーザデバイス上で動作するアプリとのインタラクションを行うことによって、ユーザとのインタラクションを行い得る。また、コンピュータは、メッセージングアプリケーションを動作する例えばスマートフォンといったパーソナルデバイスにテキストメッセージまたは他の形式のメッセージを送信し、その返信としてユーザから応答メッセージを受信することによって、ユーザとのインタラクションを行い得る。
【0105】
本明細書は、システム、装置、およびコンピュータプログラムコンポーネントに関連して「ように構成される」という用語を使用している。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータのシステムとは、処理においてシステムに処理またはアクションを行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組合せがインストールされているシステムを意味する。特定の処理またはアクションを行うように構成される1つまたは複数のコンピュータプログラムとは、データ処理装置によって実行されると装置に処理またはアクションを行わせる命令を含む1つまたは複数のプログラムを意味する。特定の処理またはアクションを行うように構成される特殊用途ロジック回路とは、処理またはアクションを行う電子ロジックを有する回路を意味する。
【0106】
本明細書は多くの特定の実施形態の詳細を含んでいるが、これらを、特許請求の範囲そのものによって定義される、主張しているものについての範囲に対する限定として解釈すべきではなく、むしろ特定の実施形態に固有のものであり得る特徴の説明として解釈すべきである。別個の実施形態に即して本明細書において説明したある特徴もまた、組み合わせることで単一の実施形態で実現され得る。反対に、単一の実施形態に即して説明した様々な特徴もまた、別々に複数の実施形態でまたは任意の適切なサブコンビネーションで実現され得る。さらに、ある組合せで動作するものとして特徴を上記で説明している場合があるが、たとえ最初はそのように主張していたとしても、いくつかのケースにおいては、主張した組合せのうちの1つまたは複数の特徴をその組合せから削除し得るし、主張したものをサブコンビネーションまたはサブコンビネーションの変形とし得る。
【0107】
同様に、処理を特定の順序で図面に図示するとともに特許請求の範囲に記載しているが、このことを、示した特定の順序でもしくは一連の順序でそのような処理を行う必要があると理解すべきではないし、または、望ましい結果を達成するために図示した処理のすべてを行う必要があると理解すべきではない。ある環境においては、マルチタスク処理および並行処理が有利となり得る。さらに、上記で説明した実施形態における様々なシステムモジュールおよびコンポーネントの分離がすべての実施形態においてそのような分離を必要とすると理解すべきではなく、説明したプログラムコンポーネントおよびシステムは一般的に単一のソフトウェア製品に一緒に統合され得るまたは複数のソフトウェア製品にパッケージ化され得ると理解されたい。
【0108】
発明特定事項の特定の実施形態を説明してきた。他の実施形態も以下の特許請求の範囲の範囲内にある。例えば、特許請求の範囲に記載のアクションは、異なる順序で行われ得るし、それでも望ましい結果を達成し得る。一例として、添付の図面に図示したプロセスは、望ましい結果を達成するために示した特定の順序または一連の順序を必ずしも必要とするわけではない。いくつかのケースにおいては、マルチタスク処理およびパラレル処理が有利となり得る。