(57)【要約】  ブロックチェーンにエンティティのフィードバックを提出するためのコンピュータにより実施される方法が開示される。方法は、複数の参加ノードのうちの1つで実施され、第1鍵を取得するステップであって、第１鍵は、エンティティのためにフィードバックを提出する資格のある参加ノードに配布される固定鍵セットの中の1つの鍵である、ステップと、ブロックチェーンへの提出のためにエンティティの第1フィードバック(rj)を生成するステップと、少なくとも第1鍵を使用して第1フィードバック(rj)を暗号化するステップと、暗号化された第1フィードバックをミキシングサービスに提出するステップであって、ミキシングサービスは、暗号化された第1フィードバックと、1つ以上の資格のある参加ノードからの少なくとも1つの他の暗号化されたフィードバックの提出とに基づいて、混合トランザクションを生成するように構成される、ステップと、を含む。
2020530956.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実施される方法であって、
第1鍵を取得するステップであって、前記第1鍵は、エンティティに対するデータをブロックチェーンに提出する資格のあるノードに配布される固定鍵セットの中の1つの鍵である、ステップと、
前記ブロックチェーンに提出するための前記エンティティの第1データ(rj)を生成するステップと、
少なくとも前記第1鍵を使って前記第1データ(rj)を暗号化するステップと、
前記の暗号化された第1データをミキシングサービスに提出するステップであって、前記ミキシングサービスは、前記暗号化された第1データと、1つ以上の資格のあるノードからの少なくとも1つの他の暗号化されたデータの提出に基づいて混合トランザクションを生成するように構成される、ステップと、
を含む方法。
【請求項２】
前記第1鍵は、秘密鍵(k)の第1鍵シェア(kj)であり、前記第1鍵シェア(kj)は、資格のあるノードに配布され、前記秘密鍵(k)を協働で構築するために使用される、複数の鍵シェアの1つである、請求項1に記載の方法。
【請求項３】
前記第1データ(ri)は、前記エンティティに関連する前記第1鍵シェア(kj)及び公開鍵(Pkci)を使用して暗号化される、請求項2に記載の方法。
【請求項４】
前記エンティティに関連する前記公開鍵(Pkci)を使用して、前記第1鍵シェア(kj)を暗号化するステップと、
前記第1鍵シェア(kj)を使用してシークレット(kG)を生成するために、他の資格のあるノードと協力するステップと、
前記暗号化された第1鍵シェア(kj)及び前記生成されたシークレット(kG)を、前記第1鍵シェア(kj)の妥当性の検証に使用するために、前記エンティティに関連するエンティティノードに提供するステップと、
をさらに含む、請求項3に記載の方法。
【請求項５】
前記シークレット(kG)は、秘密共有参加プロセスに基づいて協働して生成される、請求項4に記載の方法。
【請求項６】
前記第1データ(rj)が英数字文字列を含む、請求項1に記載の方法。
【請求項７】
前記第1データ(rj)は、データ列と、前記エンティティに関連する公開鍵(Pkci)の少なくとも一部を含む第2文字列との連結を含む、請求項6に記載の方法。
【請求項８】
前記第1データ(rj)は、前記エンティティによって提供されるサービスを識別する第3文字列をさらに含む、請求項7に記載の方法。
【請求項９】
前記第1鍵を取得するステップは、前記エンティティから前記第1鍵シェア(kj)を受信するステップを含む、請求項2に記載の方法。
【請求項１０】
前記第1鍵シェアは、前記エンティティによって提供されるサービスのために、前記エンティティに関連するエンティティノードへのトークンの転送に応答して、前記エンティティから受信される、請求項9に記載の方法。
【請求項１１】
前記第1データ(rj)は、排他的論理和暗号化を用いて暗号化される、請求項2に記載の方法。
【請求項１２】
前記第1鍵(ki)は、前記エンティティに関連する第1公開鍵(Pkcij)であり、前記第1公開鍵(Pkcij)は、前記エンティティによって生成され、資格のあるノードに配布される、ノード固有公開鍵の第1セットの中の1つの鍵であり、前記第1セットの中の前記公開鍵の各々は、前記エンティティによって保持される対応する秘密鍵を有する、請求項1に記載の方法。
【請求項１３】
前記混合トランザクションが、前記エンティティに転送すべきトークンの第1数量を指定し、前記第1数量は、前記混合トランザクションにインプットとして含まれる、前記エンティティの暗号化データの提出数に依存する、請求項1に記載の方法。
【請求項１４】
ブロックチェーンにエンティティのデータを提出するプロセスに参加するコンピューティング装置であって、前記コンピューティング装置は、請求項1〜13のいずれか一項に記載の方法を実行するように構成される、コンピューティング装置。
【請求項１５】
ブロックチェーンにエンティティのデータを提出するプロセスに参加するためのプロセッサ実行可能命令を格納する非一時的プロセッサ読取り可能媒体であって、前記プロセッサ実行可能命令が、プロセッサによって実行されると、前記プロセッサに請求項1〜13のいずれか一項に記載の方法を実行させる、非一時的プロセッサ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、暗号化の強制されるデータ記録及び処理システムに関する。特に、本発明は、ブロックチェーンネットワークを介して又はその上で、エンティティによってシステムに提供されたデータを通信、記録、及び／又は格納するための技術的ソリューションに関する。データは、例えば、選別、選択、フィードバック及び／又は決定を示してよい。本発明は、ブロックチェーンネットワーク上のエンティティ間のこのようなデータの安全な記憶及び通信のための技術を提供し、転送され及び転送後に使用されるデータの完全性を保証する。また、指定された(authorised)活動を防止するために、ネットワーク上のこのようなデータのソースの識別に関連する問題を緩和する。本発明は、投票、電子フィードバック提出(feedback  submission)、又は計数アプリケーション、又はデータの完全性、ソースの隠蔽、及び使用割当又は制限の実施が重要であり得る他のアプリケーションに適している(限定ではない)。
【背景技術】
【０００２】
本明細書では、電子的、コンピュータベースの、分散型のあらゆる形態の台帳を含むために「ブロックチェーン」という用語を用いる。これらには、ブロックチェーン及びトランザクションチェーンの技術、許可台帳及び未許可台帳、共有台帳、ならびにそれらの変形が含まれるが、これらに限定されない。ブロックチェーン技術の最も広く知られている用途はビットコイン(Bitcoin)台帳であるが、他のブロックチェーン実装が提案され開発されている。本明細書では、便宜上、説明のためにBitcoinが参照され得るが、本発明は、Bitcoinブロックチェーンと共に使用することに限定されず、代替のブロックチェーン実装及びプロトコルは、本発明の範囲内にあることに留意されたい。
【０００３】
ブロックチェーンは、コンセンサスベースの電子台帳であり、これは、次にトランザクションから構成されるブロックから構成される、コンピュータベースの非集中型分散システムとして実装される。各トランザクションは、ブロックチェーンシステムの参加者間のデジタル資産の制御の移転を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、当該ブロックが一緒にチェーン化されて、発端からブロックチェーンに書き込まれてきたすべてのトランザクションの永続的で変更不可能なレコードを作成する。トランザクションは、該トランザクションのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットにどのように、誰がアクセスできるかを指定する。Bitcoinプラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して書かれる。
【０００４】
トランザクションがブロックチェーンに書き込まれるためには、「検証済み」でなければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を行い、無効なトランザクションはネットワークから拒否される。ノードにインストールされているソフトウェアクライアントは、ロックスクリプトとアンロックスクリプトを実行することによって、未使用トランザクション(UTXO)に対してこの検証作業を実行する。ロック及びアンロックスクリプトの実行が真(TRUE)と評価した場合、トランザクションは有効であり、ブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、以下を行わなければならない：(i)トランザクションを受け取った最初のノードによって検証され、トランザクションが検証された場合、ノードはそれをネットワーク内の他のノードに中継する、(ii)マイナーによって構築された新しいブロックに追加され、(iii)マイニングされる、すなわち、過去のトランザクションの公開台帳に追加される。いったん記録されると、どのブロックのデータも、後に続くすべてのブロックを変更すること及びネットワークの大多数と共謀することなく、遡及的に変更することはできない。
【０００５】
トランザクションは、あるノードから別のノードへの1つ以上のトークンの転送を含む。トークンは、ネットワークリソースの将来の制御を表してよい。いくつかの場合には、トークンは資産又は価値を表すことがあるが、必ずしもそうではない。例えば、いくつかの場合には、トークンは暗号通貨として理解され得る。しかしながら、本願は、暗号通貨の文脈における実装に限定されるものではなく、制御トークンの分散転送のためのブロックチェーンネットワークに関連するものとして、より広く理解される。
【０００６】
ブロックチェーンは、検証可能で永続的な方法で当事者間の取引を記録することができる公開台帳としての役割を果たす。ブロックチェーンは、分散化されたコンセンサスによって確立された、チェーン上に格納された情報の取消し不能性や信頼性のような多くの特性を有し、それらは様々な用途での使用に適している。そのような用途の一つが電子投票である。「投票システム」という用語は、ここでは政治的又は行政的な文脈に限定されるものではなく、単に、選別、選択、決定又はパラメータ(すなわち、投票)が何らかの方法で転送、記録、格納、処理及び／又は登録されることを可能にするシステムを意味するために、一般的な意味で使用されることに留意されたい。従って、本発明は、エンティティ間のデータの通信、記憶、及びセキュリティの改善に関する。
【０００７】
多くのタイプのコンピュータにより実装されたシステムは、選択／決定又は他のデータの指示をネットワークを介して通信させることを可能にし、その結果、データを何らかの方法で作用され又は処理することができるようにする必要がある。多くの場合、選択できる回数に関する特定の規則又は基準を実施できることが望ましい。言い換えれば、選別や選択ができる回数に割り当てや制限があってよい。便宜上及び参照の容易さのためにのみ、このようなシステムを「電子投票」システムと呼ぶことがあるが、これは本発明を政治的又は行政的文脈に限定するものと解釈すべきではない。あるいは、用語「データ記録システム」は、本発明のより広範な適用性を反映するために使用され得る。本発明は、受信され、記録され、格納されるデータの種類又は性質に関して限定されない。
【０００８】
電子投票のための安全で信頼できるシステムは、投票者のプライバシー(投票結果は投票者以外のいかなる参加者にも知られてはならない)と提出された投票の正確性(有効な投票結果は最終集計に数えるべきであるが、無効な投票や承認されていない投票は除外すべきである)を維持しながら、投票操作を防止すべきである。また、ブロックチェーンは、フィードバック、意見、レビュー、評価など、著者が作成したデータや情報を記録し、公表するためのプラットフォームとして実用的な用途を見出し得る。フィードバックは、例えば、数値評価やレビューの形で、製品、サービス、市場に対する消費者の信頼に影響を与えることができる。その結果、観客や市場の知覚を操作しようとするために、肯定的/否定的なフィードバックを提出する動機が存在し得る。ブロックチェーンは、投票／フィードバックを検証する中央権限に依存することなく、投票／フィードバックを公開された分散台帳に公に恒久的に記録することを可能にすることにより、投票及びフィードバック操作(例えば、修正、削除など)を抑止するための適切な環境を提供し得る。
【０００９】
ブロックチェーンを用いた投票／フィードバックプラットフォームの展開の可能性は魅力的であるが、複数投票の防止、資格認定チェック、及びユーザプライバシー保護など、他の多くの問題にも取り組まなければならない。特に、投票者／レビュアーのプライバシーを保護するためには、投票／フィードバック提出プロセスにおいて匿名化が必要となる場合がある。Bitcoinのようなブロックチェーン技術は、トランザクションの擬似匿名性を提供し得るが、二次データ(例えば、トランザクションを完了するために必要な出荷アドレス)と分析を使用して、関心のある第三者が利用可能な情報を組み合わせて、特定のBitcoinアドレスにユーザの身元を関連付けることが可能である。適切な予防措置がなければ、提出され、ブロックチェーンに記録されたデータ(例えば、投票、選択、決定、フィードバックなど)は、それらの情報源へと追跡可能である。一方で、匿名性の欠如は、データ提出プロセスの完全性に悪影響を及ぼす可能性がある。他の用途においても、システムによって受信されたデータのソースを隠すか隠蔽することがしばしば望ましく、これは情報源の標的化を生じさせ得る。データの情報源の追跡可能性を除去することで、セキュリティを強化できる。
【００１０】
従って、コンピュータにより実装されたネットワーク全体にわたり、プライバシー保護されたデータ提出を実現にするための改善された方法及び装置を提供することが望ましい。
【００１１】
このような改善されたソリューションがここで考案された。
【発明の概要】
【００１２】
本発明によると、添付の特許請求の範囲に定義される方法及び装置が提供される。
【００１３】
本発明は、コンピュータにより実施される方法及び対応するシステムを提供し得る。方法／システムは、ブロックチェーンで実装された方法／システムとして記述され得る。本発明は、セキュリティ方法又は暗号化方法／システム、又は暗号化の強制される方法／システムとして説明することができる。それは、暗号通貨の一部又は数量のようなデジタル資産(又は「リソース」)の安全な移転を提供することができる。追加的又は代替的に、それは、暗号通貨の一部又は数量のようなデジタル資産の移転を制御するための制御メカニズムを提供することができる。
【００１４】
追加的又は代替的に、本願は、エンティティからブロックチェーンへデータを提出するためのコンピュータにより実装される方法を記載し得る。データは、フィードバック、決定、選択(「投票」)又はレビューを含む(これらに限定されない)、任意の種類のデータであり得る。追加的又は代替的に、本発明は、データ転送方法として記載されてもよい。これは、エンティティからブロックチェーンへのデータ転送を可能にするように構成されてもよい。
【００１５】
この方法は、複数の(参加)ノードのうちの1つで実装されてもよい。これらは、本明細書に記載される種々の技術に従ってデータ(例えば、フィードバック)を提出及び／又は検証するプロセスに参加するように配置されるノードであってもよい。
【００１６】
方法は、第1鍵を取得するステップであって、第1鍵は、エンティティに対するデータを提出する資格のある参加ノードに配布された固定鍵セットの中の1つの鍵である、ステップと、ブロックチェーンに提出するために、エンティティのための第1データ(rj)を生成するステップと、少なくとも第1鍵を使用して、第1データ(rj)を暗号化するステップと、暗号化された第1データをミキシングサービスに提出するステップであって、ミキシングサービスは、暗号化された第1データと、1つ以上の参加ノードからの少なくとも1つの他の暗号化したデータの提出と、に基づいて、混合トランザクションを生成するように構成されている、ステップと、を含む。
【００１７】
いくつかの実装では、第1鍵は秘密鍵(k)の第1鍵シェア(kj)であってもよく、第1鍵シェア(kj)は、資格のある参加ノードに配布され、協働で秘密鍵(k)を構築するために使用される、複数の鍵シェアのうちの1つである。
【００１８】
いくつかの実装では、第1データ(rj)は、エンティティに関連する第1鍵シェア(kj)と公開鍵(Pkci)を使って暗号化されてよい。
【００１９】
いくつかの実装では、方法は、さらに、エンティティに関連する公開鍵(Pkci)を使用して第1鍵シェア(kj)を暗号化するステップと、第1鍵シェア(kj)を使用してシークレット(kG)を生成するために他の資格のある参加ノードと協働するステップと、第1鍵シェア(kj)の有効性を検証するのに使用するために、エンティティに関連するエンティティノードに暗号化された第1鍵シェア(kj)と生成されたシークレット(kG)を提供するステップと、を含んでもよい。
【００２０】
いくつかの実装では、シークレット(kG)は、秘密共有参加プロセスに基づいて協働して生成されてもよい。
【００２１】
いくつかの実装では、第1データ(rj)は英数字文字列を含んでもよい。
【００２２】
いくつかの実装では、第1データ(rj)は、レビュー文字列と、エンティティに関連する公開鍵(Pkci)の少なくとも一部を含む第2文字列との連結を含んでもよい。
【００２３】
いくつかの実装では、第1データ(rj)は、エンティティによって提供されるサービスを識別する第3文字列をさらに含んでもよい。
【００２４】
いくつかの実装では、第1鍵を取得するステップは、エンティティから第1鍵シェア(kj)を受信するステップを含んでもよい。
【００２５】
いくつかの実装では、第1鍵シェアは、エンティティによって提供されるサービスのために、エンティティに関連するエンティティノードへのトークンの転送に応答して、エンティティから受信されてよい。
【００２６】
いくつかの実装では、第1データ(rj)は、排他的論理和暗号化を使用して暗号化されてもよい。
【００２７】
いくつかの実装では、第1鍵(ki)は、エンティティに関連する第1公開鍵(Pkcij)であってもよい。第1公開鍵(Pkcij)は、エンティティによって生成され、資格のある参加ノードに配布される、ノード固有公開鍵の第1セットの中の1つの鍵であり、第1セットの中の公開鍵の各々は、エンティティによって保持される対応する秘密鍵を有する。
【００２８】
いくつかの実装では、混合トランザクションはエンティティに転送すべきトークンの第1数量を指定してよく、第1数量は混合トランザクションにインプットとして含まれる、エンティティのための暗号化データの提出数に依存する。
【００２９】
本願は、さらに、上記方法を実行するためのコンピューティング装置を記載し、コンピューティング装置は、複数の参加ノードのうちの1つであり、少なくとも1つのプロセッサ、メモリ、ネットワーク接続性を提供するためのネットワークインターフェース、及び、実行されると、プロセッサに本明細書に記載の1つ以上の方法の動作を実行させるプロセッサ実行可能命令を含むブロックチェーンアプリケーションを含む。
【００３０】
本願は、さらに、エンティティに対するフィードバックをブロックチェーンに提出するプロセスに参加するためのプロセッサ実行可能命令を記憶する非一時的プロセッサ読取可能媒体を記載し、プロセッサ実行可能命令は、複数の参加ノードのうちの1つのプロセッサによって実行されると、該プロセッサに、本明細書に記載された1つ以上の方法の動作を実行させる。
【００３１】
本願は、ユーザによってブロックチェーンに提出されるデータアイテムを暗号化し、検証し、ブロードキャストするための、安全で、暗号化の強制された、効率的な方式の実装を実現するシステム及び方法を記載する。ユーザは、いくつかの有用な用途において、投票又はフィードバックプラットフォームに参加してよい。いくつかの実装では、本願は、悪意のある行為者からのデータの提出を防止するように設計されたプロトコルを提供する。これは、受信したデータに基づいてシステムによって生成される結果の完全性と信頼性を保存することができる。
【００３２】
本発明の1つの態様又は実施形態に関連して記載される任意の特徴は、1つ以上の他の態様／実施形態に関しても使用され得る。本発明のこれら及び他の態様は、本明細書に記載した実施形態から明らかであり、それを参照して解明されるであろう。次に、本発明の一実施形態を、単なる例示として、添付の図面を参照して説明する。
【図面の簡単な説明】
【００３３】
【図１】ノードのブロックチェーンネットワークの例を示す。
【図２】参加ノードとエンティティノードとの間に確立されたコミットメントチャネルの概略図を示す。
【図３】本願の一実施形態による、データ、例えばエンティティのフィードバックを、ブロックチェーンに提出するための例示的な方法をフローチャート形式で示す。
【図４】データ、例えばフィードバック提出の暗号化を復号するプロセスの例を示す概略図である。
【図５】本願の一実施形態による、エンティティのデータ、例えばフィードバックを、ブロックチェーンに提出するための別の例示的な方法をフローチャート形式で示す。
【図６】ブロック図の形式で、ブロックチェーンノードの例を示す。
【発明を実施するための形態】
【００３４】
本願において、用語「及び／又は」は、リストされた要素の単独の1つ、任意の小結合又は全ての要素を含む、リストされた要素の全ての可能な組み合わせ及び小結合を、必ずしも追加の要素を排除することなくカバーすることを意図している。
【００３５】
本願において、フレーズ「〜又は〜のうちの少なくとも1つ」は、必ずしも追加の要素を除外することなく、また必ずしも要素の全てを必要とすることなく、リストされた要素のいずれか1つ、任意の小結合、又は要素の全部を含む、リストされた要素のいずれか1つ以上をカバーすることを意図している。
【００３６】
ここで、説明の目的のみで、本発明をどのように実施することができるかの例を示す。本発明の実施例では、本発明はフィードバック提出プラットフォームとして実装されるが、これは、本発明をどのように実施することができるかの純粋に便宜的な例であり、限定することを意図したものではない。
【００３７】
本願において、用語「エンティティ」は、データ(例えば、レビュー、格付け、評価、コメント、投票等の形式でのフィードバック)を受信する、又は受信可能な任意のエンティティを指す。「エンティティ」とは、エンティティに代わって投票／フィードバックなどのデータを受信し検証する権限を付与された代表を追加的に又は代替的に表してよい。例えば、「エンティティ」は、サービスプロバイダ又は製品製造業者のような組織、組織の代表者(例えば、顧客レビューを収集し掲示する企業の顧客サービス部門)、又は個人(例えば、政治的候補者、従業員など)であり得る。本明細書に記載されるデータ提出プロトコルの文脈において、エンティティは、ブロックチェーンネットワーク内の1つ以上のノードによって表され得る。場合によっては、エンティティは、有権者又は彼らの製品のユーザに投票／フィードバック提出プロセスへの参加を求めてよい。エンティティのための投票／フィードバックなどのデータが(参加ノードとして表されるユーザによって)提出されると、エンティティは、データのソースの匿名性を維持しながら、ブロックチェーン台帳でブロードキャストすることによって、データの妥当性を検証し、提出を公開できる。
【００３８】
本願において、「レビュアー(reviewer)」とは、あるエンティティのためにデータ(レビューを含むが、これに限定されない)を提出する組織又は個人を表す。レビュアーは、例えば、本明細書に開示されているブロックチェーンベースのデータ提出プロトコル(Blockchain-based  Data  Submissions  Protocol,  BDSP)に参加してよい。あるいは、語句ブロックチェーンベースのフィードバック提出プロトコル(Blockchain-based  Feedback  Submissions  Protocol,  BFSP)が使用されてもよい。「レビューノード」とは、特定のレビュアーと関連する(ブロックチェーンネットワーク内の)ノードであり、「参加ノード」とは、本開示のBDSPのような検証又はフィードバック提出プロセスに参加するレビュアーと関連するノードである。
【００３９】
まず、ブロックチェーンに関連するブロックチェーンネットワーク100の例をブロック図の形で示す図1を参照する。ブロックチェーンネットワークはピアツーピアの開放型メンバーシップネットワークであり、誰でも、招待されず、又は他のメンバーの同意なしに、参加することができる。ブロックチェーンネットワーク100が動作するブロックチェーンプロトコルのインスタンスを実行する分散型電子デバイスは、ブロックチェーンネットワーク100に参加することができる。そのような分散型電子デバイスは、ノード102と称され得る。ブロックチェーンプロトコルは、例えば、Bitcoinプロトコル、又は他の暗号通貨であってもよい。
【００４０】
ブロックチェーンプロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子デバイスは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイルデバイス、スマートウォッチのようなウェアラブルコンピュータ、又は他の電子デバイスのようなコンピュータを含む種々のタイプのものであってもよい。
【００４１】
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を使用して互いに結合される。多くの場合、ブロックチェーンネットワーク100は、少なくとも部分的にインターネット上に実装され、個々のノード102のいくつかは、地理的に分散された位置に配置されてもよい。
【００４２】
ノード102は、ブロックチェーン上のすべてのトランザクションのグローバル台帳を維持する。グローバル台帳は、分散型台帳であり、各ノード102は、グローバル台帳の完全なコピー又は部分的なコピーを記憶することができる。グローバル台帳に影響するノード102によるトランザクションは、グローバル台帳の有効性が維持されるように、他のノード102によって検証される。Bitcoinプロトコルを使用するようなブロックチェーンネットワークの実装及び動作の詳細は、当業者には理解されるであろう。
【００４３】
各トランザクションは、通常、1つ以上のインプット及び1つ以上のアウトプットを有する。インプット及びアウトプットに埋め込まれたスクリプトは、トランザクションのアウトプットにどのように、誰がアクセスできるかを指定する。トランザクションのアウトプットは、トランザクションの結果としてトークンが転送されるアドレスであってよい。次に、これらのトークンは、使用可能なトランザクションアウトプットとしてそのアウトプットアドレスに関連付けられる。Bitcoinのような暗号通貨の文脈では、利用可能なトランザクションアウトプットは、未使用トランザクションアウトプット(UTXO)と呼ばれてよい。次いで、後続のトランザクションは、それらのトークンを1つ以上の他のアドレスに転送するために、インプットとしてそのアドレスを参照してよい。
【００４４】
トランザクションは、ブロックチェーン台帳上のトランザクションに個人情報が含まれていない点で擬似匿名であるが、トランザクションのチェーンにおけるトークンの転送を追跡し、場合によっては、外部データを使用してトークンを個人にリンクすることが可能である。匿名性を高めるために、ミキシング(mixing)トランザクションを使用して、様々なソースからのインプットをプールし、次に、プールされたトークンを分割し、アウトプットに割り当てよい。
【００４５】
すべてのインプットとアウトプットが同じサイズの場合、特定のインプットを特定のアウトプットに関連付けることは困難である。しかしながら、このようなトランザクションにおいて、少なくとも1つの参加ノードは、別の参加ノードによって指定されたインプットアドレスとアウトプットアドレスとの間のリンクを認識する。このようなミキシングトランザクション、例えばBitcoinプロトコルのCoinJoin演算では、複数のインプットと複数のアウトプットを有する単一トランザクションがトークンを混合(mix)するために使用される。
【００４６】
いくつかの他の匿名化技術が、さまざまな効果により、リング署名やステルスアドレスのようなインプットとアウトプットの間のリンクを明らかにすることを避けるために使われる。ステルスアドレスは、特定のユーザからトークンが送られるアウトプットアドレスをリンク解除しようとする。リング署名は、潜在的署名者グループの中の１人の署名者が、特定のトランザクションに署名した／を承認した者である確率を等しくすることにより、ソースを追跡不可能にしようとする。
【００４７】
本開示は、ブロックチェーンベースのデータ提出プロトコルを提供する。これは、いくつかの実施形態では、フィードバック提出プロトコルとして記載され得る。「フィードバック」という用語は、「データ」の代わりに、説明の便宜のために使用され得るが、限定することを意図したものではない。具体的には、ブロックチェーン台帳を用いてフィードバックを提出するプロトコルが開示されている。プロトコルの参加者は、製品、サービス、エンティティなどに対する彼らのフィードバック(レビューなど)を匿名で特定のエンティティに提出する。フィードバック提出(feedback  submission)自体は暗号化され、フィードバックの提出者(例えば、レビュアー)によって作成されたブロックチェーントランザクションによって、エンティティに送信される。フィードバックの提出を受けると、エンティティは、提出の妥当性を検証し、妥当であれば、そのフィードバックを公開台帳にブロードキャストすることができる。このプロトコルは、信頼できる第三者機関に依存せず、資格のある参加者が複数の異なるフィードバックを提出することを阻止し、資格のない参加者がプロセスに参加することを阻止するメカニズムを含んでいる。フィードバックの提出は、エンティティに対して提出されたフィードバックと、データ、例えばフィードバックを提出する参加者との間の接続を不明瞭にすることによって匿名化される。特に、トランザクションアウトプットシャッフリングプロセスのようなミキシングサービスは、(参加者の)インプットをそれらのアウトプット(すなわちフィードバックを受け取るエンティティの)アドレスから切り離す混合(mixed)又は結合(joint)ブロックチェーントランザクションを生成するために使用される。
【００４８】
提案されるデータ提出プロトコルは、エンティティが提出されたデータを認証することを可能にし、(エンティティの製品又はサービスの推薦された又は以前のユーザのような)資格のある参加者からの提出のみが、そのエンティティによって受け入れられ、ブロックチェーン上でブロードキャストされることを保証することができる。提案されるプロトコルは、ブロックチェーンの概念を利用して、データのシステム/プラットフォームを提供する。例えば、データ、例えばフィードバックの提出(及び検証)のためのシステム／プラットフォームを提供する。該システム／プラットフォームは、データの匿名化、関連エンティティへのデータの適切な配信、及びデータの提出の検証及びブロックチェーン上の適格データの公開のタスクを引き受けるインセンティブをエンティティに与えること実現する。
【００４９】
提案されたデータ提出プロトコルでは、各データ提出は、トークンをデータを受け取るエンティティに転送するブロックチェーントランザクションに含まれる。特に、プロトコルに参加するレビュアーは、データを提出できるように一定量のトークンを転送する(「支払う」)。この「提出手数料」は、ブロックチェーン上でデータのブロードキャストに成功すると、関連するエンティティ(又はデータ検証者)によって徴収される。従って、(例えば、レビューされた)データを受け取るエンティティは、データ提出の検証及びブロックチェーン上の適格データの開示に対する「報酬」として、データのシェアに比例する量のトークンを受け取ることができる。データ提出を含む複数の転送トランザクションを組み合わせて、(提出されたデータを受け取るエンティティに対応する)1つ以上のアウトプットを持つ単一のトランザクションを形成することができ、それによって、データとそのソースとの間の接続を不明瞭にすることによってプライバシーを増加させることができる。
【００５０】
本明細書では、「参加ノード」、「候補ノード」、「インプットアドレス」及び「アウトプットアドレス」という用語を使用することができる。ノードの「アドレス」への参照は、物理ノードのネットワークアドレスを参照することを意味しない。代わりに「アドレス」は、物理ノードがトランザクション上の署名に対応する鍵を持つことによって所有権を主張できるトークンの割り当てを持つ、ブロックチェーン上のトランザクションで指定されたアドレスである。この意味で、「アウトプットアドレス」は、参加ノードのアドレスではなく、参加ノードによって所有されている又は関連付けられているブロックチェーントランザクションアウトプットアドレスである。同様に、「インプットアドレス」は、利用可能なトランザクションアウトプット(暗号通貨の用語ではUXTO)のアドレスであり、参加するノードによって所有されているか又は関連付けられている。
【００５１】
上述のように、本開示のブロックチェーンベースのデータ提出プロトコルはまた、電子投票(すなわち、e-vote  submission)コンテキストにおける展開にも適している。したがって、明細書の「フィードバック」及びフィードバック提出プロトコルの議論は、「投票」及び投票プロトコルにも適用されるものと理解される。さらに、「格付け」及び「レビュー」という用語は、説明の全体にわたって互換的に使用することができ、レビュアー(すなわち、検証者)がエンティティに提出した適切にフォーマットされたフィードバック(例えば、数値的格付け、テキストなど)を指すものと理解される。
【００５２】
＜秘密共有＞
「秘密共有」方式では、シークレットがn個のパーティ間で分割され、n個のパーティのうちの少なくともt+1個のパーティが協力してkを再構成することが求められる。n個のパーティのうちのサブセットは、該サブセットの濃度が指定した閾値より大きい限り、シークレットkを再構成することができる。サブセットの濃度がt以下の場合、シークレットkに関する情報は開示されない。パーティ間での鍵シェアの配分は、鍵シェアを割り当てる中央ディーラー、又はディーラー不在の配分システムを用いて行うことができる。各々のソリューションには、利点と欠点があり、配布方法を選択する際に、実装されるシステムの要件を慎重に検討する必要がある。
【００５３】
本開示のデータ提出プロトコルでは、レビュアーは、鍵kの鍵シェアk1,k2,k3,…,knを用いて、承認されたグループにメンバーであることを証明したり、あるいは、それらがプロトコルに参加する資格があることを証明したりすることができる。
【００５４】
いくつかの実装では、秘密共有方式は、シークレットを次数tの多項式に埋め込むことを含んでもよい。任意のシークレットは、t次多項式f(x)の点f(0)として記憶され、プレイヤーiは自身のシェアf(xi)を計算することができる。n個のパーティのうちのt+1個のパーティが協働する場合、彼らは、ラグランジュ多項式補間を使用して、f(x1),f(x2),…,f(xn)に対応する彼ら各々の(鍵xの)シェアx1,x2,…,xnにより、f(x)上の任意の点を再構成することができる。ラグランジュ多項式補間は、次数tの関数f(x)がt+1個の点により再構成できることを示している。p={(x1,f(x1)),(x2,f(x2)),…,(xt+1,f(xt+1))}、つまり以下による。
【数１】
2020530956.tif 000003
【００５５】
秘密共有方式の1つの要素は、x×Gの決定である。ここで、xは秘密鍵であり、Gは楕円曲線上の点である。f(x)がt次多項式ならば、シークレットxは、x=Σi∈πbi,πkiにより補間される。ここで、πはシェアxa,xb,…,xt,xt+1のうちのサイズt+1の部分集合であり、bは補間因子である。πは彼らの各々のシェアxiを明らかにせずにx×Gを計算するために協力しているt+1人の参加者のグループである。xはt次多項式上のx=0点である。x×Gを計算するには、
・各参加者iは部分bi,πxi×Gを計算し、
・πの中の参加者全員が(ラグランジュ補間によるシークレットxを再構築する)自身の部分を加算し、次の通りである：
ba,πxa×G+bb,πxb×G+…+bt+1,πxt+1×G=x×G
【００５６】
Q=x×Gを計算するこのプロセスを「秘密共有参加(Secret  Share  Joining)」と呼ぶ。
【００５７】
＜コミットメントチャネル＞
Bitcoinのような様々なブロックチェーン技術は、ネットワークノード間のペア単位のトランザクションの構築に「コミットメントチャネル」を利用することがある。コミットメントチャネルは、すべてのトランザクションをブロックチェーンにコミットすることなく、ノードが複数のトランザクションを行うことができるように設計されている。ひとたびコミットメントチャネルが1対のノードの間に確立されると、ノードは、所与の期間内に望むだけの数のトランザクションを行うことができ、トランザクションのうちの2つのみが最終的にブロックチェーンに追加される。その結果、コミットメントチャネルの利用は、ブロックチェーンに追加する必要のあるトランザクションの数を減少させ、関連するトランザクションコストを減少させる可能性がある。コミットメントチャネルはまた、特定の基準が譲受人ノードによって満たされない場合、又は譲渡人又は譲受人ノードのいずれかが特定の一連の譲渡の後にプロセスを終了することを決定した場合に、トークンを返すことの柔軟性を譲渡人ノードに提供する。
【００５８】
コミットメントチャネル実装の少なくとも1つの実施形態では、ネットワークノードUA及びUBのペアと協働して、3つのブロックチェーントランザクション、すなわち、コミットメントトランザクション(TC)、返却トランザクション(Tr,0)、及び転送トランザクション(Tt)を生成する。図2は、譲渡人ノードUAと譲受人ノードUBとの間のコミットメントチャネルUA→UBの概略図を示す。コミットメントトランザクションTCは、コミットメントチャネルのコミットメントコンポーネントを表し、譲渡人UAが、UBへの転送のために、特定のトークンセットxを送信/コミットする。いくつかの実施形態では、コミットメントトランザクションは、2-of-2のマルチ署名pay-to-script-hash(P2SH)トランザクションであり得る。返却トランザクションTr,0は、譲受ノードUBがコミットメントトランザクションの所定の基準を割り当てられた時間内に完了できない場合に、以前にコミットしたトークンxをUAに返却するトランザクションである。特定の時点nLockTimeが終了した後、返却トランザクションはブロックチェーンへの提出のための資格を得る。返却トランザクションの実行に成功するためには、譲渡人ノードUAと譲受人ノードUBの両方の署名が必要である。転送トランザクションTtは、コミットされたトークンxを譲受人ノードUBに実際に送信するトランザクションである。譲受ノードUBが一定の条件を満たす場合にのみ、転送トランザクションが実行される。例えば、転送トランザクションのブロックチェーンへの送信に成功するためには、少なくとも譲受人ノードUBのデジタル署名が必要であってよい。
【００５９】
＜ブロックチェーンベースのデータ提出プロトコル(BFSP)＞
本願は、ブロックチェーンを使用して、エンティティに対するデータを提出(又は「転送」)するための方法及びシステムを記載する。特に、本願は、レビュアーが匿名でデータを提出することを可能にし、データを分散台帳上に公的かつ恒久的に記録することを可能にするブロックチェーン概念を利用する、データ提出プロトコル(ブロックチェーンベースデータ提出プロトコル(Blockchain-based  Data  Submissions  Protocol)、又はBDSP)を提案する。BDSPは、データを提出するレビュアー又は他のデータソースから該データを切り離し、「承認された」レビュアーのみが彼らのデータを開示のために受け入れ／検討することができるように設計されている。ブロックチェーン上でフィードバックの公開を実現することにより、BDSPは、エンティティ及び／又は第三者によるデータ(例えば、フィードバック及び／又は投票、格付け等)の操作を防止するのに役立ち得る。さらに、BDSPは、レビュアーからデータを受け取ったエンティティが、データ提出の妥当性を検証し、適格データをブロックチェーン上にブロードキャストするタスクを引き受けるインセンティブを提供する。
【００６０】
BDSPは、複数の参加ノード(レビュアーに対応する)と少なくとも1つのエンティティノード(審査、レビュー、格付け等のデータを受け取る、又は受け取ることができるエンティティに対応する)を含む。より具体的には、BDSPは、1つ又は複数のエンティティに対するデータを提供することを望む2人以上のレビュアーU1,…,Unのグループに適している。例えば、レビュアーは、一連の候補者のうちの1人に投票する有権者、又は1人以上の他の構成員の審査を提供するグループの構成員であってもよい。あるいは、レビュアーは、特定のサービス又は製品のレビューを提出することを明示的に許可されたサービス提供者又は製品製造者の顧客であってもよい。前述のように、BDSPに参加し、エンティティの中の1つのエンティティに対するデータを提出するために、レビュアーは、一定量のトークンを、データが提供されべきエンティティに転送することが要求される場合がある。トークンの転送は、データ提出の確認とブロードキャストに対して、関連するエンティティ(又はデータ検証者)への報酬を表す。
【００６１】
次に、図３を参照すると、フローチャート形式で、エンティティに対するデータをブロックチェーンに提出するための例示的な方法300が示される。方法300は、例えば、BDSPに参加する1つ以上の参加ノードによって実行されてもよい。上述のように、複数のレビュアー(「参加ノード」)及び1つ以上のエンティティ(「エンティティノード」)に対応する複数のノードがBDSPに参加する。いくつかの実装では、各ノードは、ウォレット又は他のそのようなブロックチェーンエンティティである。
【００６２】
簡単のために、以下のBDSPの以下の説明では、複数のレビュアーが単一のエンティティに対してデータを提出する例を使用する。以下に説明するように、この論法は、複数のエンティティに対するデータ提出プロセスに容易に拡張される。すなわち、単一のエンティティに対するデータを提出するためのBDSPの使用例は、複数の異なるエンティティに対するデータを提出することに容易に一般化可能である。
【００６３】
方法300は、図1のネットワーク100のようなブロックチェーンネットワーク内のノードによって実装される。方法300は、動作302において、ノードが特定のエンティティに対するフィードバックを提出するためのプロセスに参加するステップで始まる。参加するステップは、少なくとも部分的には、提出されたデータの匿名化を可能にするのに十分な数のノードをグループに含めることを保証することに基づいて、参加ノードの適切なグループを組み立てる中央局を介して、又は分散方法で、実施されてもよい。例えば、どの個人(すなわち、レビュアー、候補者、第三者)も提出されたフィードバック(彼ら自身が提出したフィードバックを除く)のソースを直接特定できないことを保証するために、BDSPが開始される前に、3つ以上の参加ノードが参加する必要があってよい。いくつかの実施形態では、複数のレビュアーが一緒にBDSPに協働で参加してよい。
【００６４】
動作304では、ノードは、第1鍵を取得する。第1鍵は、エンティティに対するデータ、例えばフィードバックを提出する資格のある参加ノードに配布される固定鍵セットの中の1つの鍵である。プロトコルに参加するノードの固定セットは、データ提出プロセスへのアクセスを可能にする鍵について効果的に合意する。いくつかの実施形態では、参加ノードは、シークレットkを協働で構築するために使用され得る鍵シェアk1,k2,…,knを配布するために、秘密共有手順(例えば、ディーラー不在方式(dealer-less  scheme))に従事する。すなわち、ノードによって取得された第1鍵は、グループ秘密鍵kの第1鍵シェアkiであってもよく、第1鍵シェアkiは、資格のある参加ノードに配布される複数の鍵シェアのうちの1つである。このように、BDSPへの参加を推奨されている他のレビュアーに対しては、レビュアー自身がある程度の制御を有する。
【００６５】
動作306では、ノードは、ブロックチェーンへの提出のために、エンティティに対するデータ、例えばフィードバックriを生成する。フィードバックriのフォーマットは、異なるプロトコル要件に適合することができる。フィードバックriは、例えば、単純な数値格付け(例えば、0-10の選好度)又はレビュー提出(例えば、ディスクリプタ、固定長テキストブロック等)であってもよい。いくつかの実施形態では、フィードバックriは、以下のような英数字文字列である：review=rj=useful000062727hj9
例示的なフィードバックrjは、第2の識別可能な文字列("000062727hj9")と連結されたレビュー文字列("useful")を含む。第2文字列は、場合によっては、フィードバックriについての関連するレビュアー−エンティティペアを特定する情報を含んでよい。例えば、第2文字列は、エンティティの公開鍵からの第1の文字数lと、レビュアーの鍵シェアからの第2の文字数pを含んでもよい。第2文字列は、レビュー文字列とレビュアー−エンティティ情報を区切るエスケープシーケンス(例えば、0の集合)でパディングされてもよい。
【００６６】
動作308では、フィードバックrjは、動作304でノードによって取得された少なくとも第1鍵を使用して暗号化される。例えば、フィードバックrjは、グループ秘密鍵kの鍵シェアkiで暗号化されてもよい。いくつかの実施形態において、フィードバックrjは、エンティティに関連する公開鍵とレビュアーの鍵シェアkiの両方を使用して暗号化される。BDSPの一部として、各エンティティ(又はエンティティのフィードバック検証者)に、公開秘密鍵ペア(Pkci,Skci)が提供されてもよい。BDSPのエンティティに関連する公開鍵は、参加レビュアーに配布することができ、フィードバック提出を暗号化するために使用することができる。エンティティの公開鍵でフィードバックriを暗号化することは、関心エンティティのみがフィードバックを解読し、アクセスできるようにするのに役立つ。
【００６７】
エンティティは、場合によっては、レビュアーが彼ら各々のフィードバックを暗号化するために使用される鍵シェアの妥当性を検証することを望むことがある。エンティティは、例えば、検証可能な秘密共有(verifiable  secret  sharing,  VSS)や公的に検証可能な秘密共有(publicly  verifiable  secret  sharing,  PVSS)方式のような既存のソリューションを使用して、参加レビュアーの鍵シェアが暗号化された「シークレット」と一致していることを検証することができる。この共有検証手順を実現するために、BDSPにおけるレビュアーは、彼らの選択エンティティに関連する公開鍵を使用して彼らの鍵シェアを暗号化し、他の資格のあるレビュアーと協力して彼らの鍵シェアを使用してシークレットkGを生成することができる。シークレットkGは、例えば、秘密共有参加プロセスを使用して生成されてもよい。暗号化された鍵シェアと生成されたシークレットは、次に、鍵シェアの妥当性の検証で使用するために、エンティティに提供され得る。例えば、特定のエンティティのレビュアーの(暗号化された)鍵シェアは、BDSPの一部として匿名でプールされ、そのエンティティがアクセスできるようになる。
【００６８】
レビュアーの鍵シェアkjとエンティティの公開鍵Pkciを用いたフィードバックrjのための暗号化の一例は、以下の通りである：
【数２】
2020530956.tif 000004
ここで、「○に＋」の記号は、2つの文字列間の排他的論理和(XOR,  exclusive  or)を表す。
【００６９】
図4は、上記の例示的方式(A)を用いて暗号化されたフィードバック提出を復号するプロセスを示す概略図を示す。ステップ402において、フィードバックrjの暗号化は、その秘密鍵を使用して、エンティティCiによって復号され、それによって、Ciを、フィードバックrjが向けられるべきエンティティとして識別する。ステップ404では、ステップ402からの復号されたデータと対応するレビュアーの鍵シェアkjとの間のXORを計算することによって、暗号化されたフィードバック提出がさらに復号される。例えば、エンティティに対するフィードバックを提出する資格のあるレビュアーの鍵シェアは、資格のあるレビュアーから匿名でプールされ、BDSPの一部としてエンティティがアクセスできるようにすることができる。エンティティは、以下の演算を実行することによってステップ304でフィードバックrjを取得できる：
【数３】
2020530956.tif 000005
【００７０】
このフィードバックrjの「二重暗号化」（まず鍵シェアkjを用い、次に公開鍵を用いる）は、データの正確性を二重にチェックすることを可能にする。特に、エンティティは、まず、彼らの公開鍵を使用してデータを復号し、その後、フィードバックrjの暗号化を提供するレビュアーが実際にBDSPに参加する(すなわち、エンティティにフィードバックを提出する)資格があることを検証することができる。
【００７１】
図3に戻ると、ステップ310において、ノードは、暗号化されたフィードバック提出をミキシングサービスに提出する。ミキシングサービスは、フィードバックrjの暗号化及び1つ以上の他の資格のある他の参加ノードからの少なくとも1つの暗号化フィードバック提出に基づいて、混合ブロックチェーントランザクションを生成するように構成される。フィードバックrjの暗号化は、フィードバックが意図されているエンティティに一定量のトークンを転送するトランザクションに含められてよく、2つ以上のこのようなトランザクション(BDSPに参加している少なくとも1名の他のレビュアーからの暗号化されたフィードバック提出を含む)は、単一の協働トランザクションに結合されてよい。例えば、転送トランザクションは、CoinJoinのようなトークンミキシングソリューションを使用して結合され得る。CoinJoinでは、参加者の集合がそれぞれ協働トランザクションのインプットのうちの1つに貢献し、協働トランザクションのアウトプットのために1つのアウトプットアドレスを提供する。CoinShuffle、CoinShuffle++、及びCircle  Shuffleなどのトークン「シャッフリング」ソリューションが、BFSPで実装され、トランザクションのインプットに関与する参加者から協働トランザクションのアウトプットアドレスを切り離すことができる。このような「シャッフリング」技術は、暗号化されたフィードバックデータを送信するために依然としてブロックチェーントランザクションを使用しながら、提出されたフィードバックとそれらのソース(すなわち、レビュアー)との間の接続を不明瞭にすることを助け得る。協働トランザクションは、ある量のトークンを指定されたエンティティに転送する。転送されるトークンの総量は、トランザクションにインプットとして含められる(暗号化された)フィードバック提出の数に依存する。
【００７２】
BDSPでは、参加ノードから関連エンティティへの転送トランザクションに関連するスクリプト内のデータ要素として、暗号化されたフィードバック提出を含めることができる。Bitcoinプロトコルのコンテキストでは、暗号化されたフィードバック提出は、40バイトまでのデータの格納を可能にするオペコードOP_RETURN<data>を使用して、スクリプト内のデータとして格納されてもよいし、代替として、m-of-nマルチ署名方式のアウトプットスクリプト内のメタデータとして格納されてもよい。例えば、公開鍵用に予約された3つのデータ要素のうち、2-of-3のマルチ署名スクリプトでは、公開鍵用に2つ、暗号化されたフィードバック提出を格納するために1つを使用することができる：
【数４】
2020530956.tif 000006
ここで、
【数５】
2020530956.tif 000007
は、レビュアーがトランザクションに格納したいと望む、暗号化されたフィードバック提出に対応するメタデータを表す。
【００７３】
暗号化されたフィードバックとトークンを関連エンティティに伝達するためにBDSPで使用されるブロックチェーントランザクションは、コミットメントチャネルを使用して構築することができる。より具体的には、暗号化されたフィードバック提出物及びトークンを、レビュアーUiから指定されたエンティティCiに送信することは、3つのトランザクション、すなわち、コミットメントトランザクションTC、返却トランザクションTr,i、及び転送トランザクションTtのセットによって実施されてよい。トランザクションTCは、フィードバック提出プロトコルのコミットメントコンポーネントを表す。レビュアーUiは、UiとエンティティCiの署名を必要とする2-of-3マルチ署名スクリプト、又は(復号された)フィードバックrjとCiの署名の知識、のいずれかによって制御されるアウトプットに転送される、特定量のトークンxをコミットする。フィードバックrjの暗号化は、マルチ署名スクリプト内のメタデータとして提出される。コミットメントトランザクションは、参加ノードのセットとBDSP内の1つ以上のエンティティノードとの間の混合(協働)ブロックチェーントランザクションに、レビュアーUiにより提供されるインプットとみなすことができる。
【００７４】
BDSPにおいて、トランザクションTr,iの2つの可能なバリエーションを提案した。第１のバージョンTr,1では、トランザクションTCのコミットされたトークンxは、レビュアーUiにより予め定められた返却アドレスに返される。トークンの移動の追跡可能性を防止するために、返却アドレスは、レビュアーUiに関連するインプットアドレスとは異なるアドレスに選択される。トークンの返却は、提出されたフィードバック提出が、所定の期間内にブロックチェーン上で正しくブロードキャストされない場合に実行され得る。このようなシナリオは、提出側のレビュアーが悪意を持っており、フィードバックにアクセスする資格を持っていなかったために、エンティティがフィードバック提出を復号化することができなかった場合、又はエンティティ(又はレビュー検証者)が単にフィードバックをブロードキャストせず、トークンの転送を受け取ることを決定した場合に、生じ得る。
【００７５】
返却トランザクションのもう１つのバージョンTr,2では、BDSPに参加するレビュアーの数をnとすると、トークンの数量x/nは、指定された期間が経過した後に、参加するすべてのレビュアーに転送される。この手順は、不備のあるフィードバック(例えば、いずれのエンティティによっても解読できないレビュー又は資格のあるレビュアーによって伝達されたものではないレビュー)を提出するレビュアーを罰すると考えることができる。
【００７６】
トランザクションTtは、レビュアーUiからエンティティCiへのx個のトークンの転送である。このトランザクションの実行に成功するためには、(復号された)フィードバックrjとエンティティCiの署名の知識が必要である。転送トランザクションは、参加ノードとBDSP内の1つ以上のエンティティノードとの間で形成される協働トランザクションのアウトプットとみなすことができる。
【００７７】
一部の実装では、レビュアーは、彼らのフィードバックを、フィードバックの対象となる関連エンティティから独立した第三者機関に提出してもよい。特に、レビュアーは、特定のエンティティが提出されたフィードバックに影響を与えることなく又はそれらをを公表するかどうかを決定することなく、特定のエンティティによって提供された製品、サービス等に関する彼らの意見を提供することを望むかもしれない。例えば、レビューは、BDSP内の混合ブロックチェーントランザクションによって、レビューされるエンティティから独立した第三者レビュープラットフォーム(オンラインフォーラム、メディアアウトレット、業界規制団体など)の運営者に提出することができ、提出されたレビューは、肯定的であるか否定的であるかを問わず、レビューの対象(又は評価対象)の影響や介入なしにブロックチェーンを通じてブロードキャストされる。
【００７８】
次に、図5を参照すると、エンティティに対するフィードバックのようなデータをブロックチェーンに提出するための別の例の方法500が示される。方法500は、図1のネットワーク100のようなブロックチェーンネットワーク内の(参加)ノードによって実装される。場合によっては、方法500は、製造業者及び／又はサービスプロバイダによって提供される製品及びサービスをレビューするためのシステム／プラットフォームに適してよい。例えば、方法500は、オンライン市場向けのフィードバック提出プラットフォームに組み込むことができる。製品／サービスを提供するエンティティは、少なくとも部分的には方法500の動作に基づき、ブロックチェーンに記録されたトランザクションを使用して、従前のクライアントに対して、彼らのレビューを公にかつ匿名で提出することを許可することができる。
【００７９】
方法500の動作502、506、及び510は、各々、図3に関して説明した方法300の動作302、306、及び310と同様であり、詳細には説明しない。参加ノードは、動作502において、BDSPの一部として実装されるフィードバック提出プロセスに参加する。動作504では、ノードは第1鍵を取得し、第1鍵は、エンティティに対するフィードバックを提出する資格のあるノードに配布される固定鍵セットの中の1つの鍵である。第1鍵は、秘密鍵kの第1鍵シェアkiであってよい。特に、エンティティ(又はエンティティの代理)は、フィードバック暗号化及び検証に使用するために、その製品／サービスを受け取ったユーザに鍵シェアk1,….,knを配布することができる。鍵シェアkiは、例えば、トランザクションの受信(例えば、トークンの転送)や、エンティティによりレビュアー／ユーザ／クライアントに提供されるサービスに対する支払(例えば、鍵シェアは、ユーザ／クライアントの公開鍵で暗号化されてよい)に応じて、レビュアー(すなわち、ユーザ／クライアント)に解放されてよい。あるいは、エンティティは、彼らの公開鍵と個々の鍵シェアをユーザ／クライアントに配布する代わりに、資格のある又は推薦された各レビュアー毎に１つ、公開鍵と秘密鍵のペアのセットを生成することができる。すなわち、エンティティCiは、保証されたユーザ／クライアントの集合に対して、以下の通りノード固有鍵の集合を生成してよく：
【数６】
2020530956.tif 000008
秘密裏に公開鍵Pkcijを各レビュアーに送信する。
【００８０】
動作506では、ノードは、ブロックチェーンへの提出のためにエンティティのフィードバックrjを生成する。フィードバックrjのフォーマットは、方法300の動作306に関して説明したものと同様であってよい。方法500の特定のコンテキストでは、フィードバックrjは、エンティティによって提供されユーザ／クライアントによってレビューされる製品／サービスを識別する文字列を追加的に含んでもよい。例示的なフィードバックrjは、以下の形式であってもよい：
review=rj=useful000062727hj9#productID
【００８１】
動作508では、フィードバックrjは、フィードバックが意図されているエンティティに送信される前に、暗号化される。上述の暗号化方式(A)は、動作408に適用されてもよい。すなわち、レビュアーはフィードバックrjの暗号化：
【数７】
2020530956.tif 000009
を(オフチェーンで)計算してよい。ここで、記号（○の中に＋）は、2つの文字列間のXORを表す。あるいは、エンティティが資格のあるレビュアーのためにノード固有公開鍵−秘密鍵ペアを生成した場合、フィードバックrjは、単にエンティティのためのノード固有／ユーザ固有の公開鍵Pkcijを使用することによって暗号化されてもよい。暗号化されたフィードバックは、レビュアーによりオフチェーンで計算されてもよい。それによって、エンティティは対応する復号鍵を保持し、エンティティがフィードバックを得ることを可能にする。
【００８２】
動作510では、ブロックチェーンに記録される協働トランザクションを生成するために、暗号化されたフィードバックがミキシングサービスに提出される。上述のように、レビューされるエンティティは、フィードバックが資格のある／承認されたレビュアーによって提出されたかどうかをチェックする(例えば、レビュアーが承認されたグループのグループ秘密鍵の有効な鍵シェアを保有していることを検証する)ことによって、フィードバック提出の妥当性を検証することができる。エンティティは、フィードバックの暗号化を解読し、その後、ブロックチェーン上にフィードバックをブロードキャストすることができる。従って、提出されたフィードバックの検証及びブロードキャストは、フィードバック提出トランザクションの一部として、レビュアーによって転送されたトークンを受け取るための、エンティティにとっての前提条件である。
【００８３】
ここで図6を参照すると、ブロック図の形式で、ノード600の簡略化された例を示しており、ノード600は、本開示の文脈では、参加ノード及び／又はエンティティノードであってもよい。ノード600は、1つ以上のマイクロプロセッサ、特定用途向け集積チップ(ASIC)、マイクロコントローラ、又は類似のコンピュータ処理デバイスを含んでもよいプロセッサ602を含む。ノード600はさらに、値、変数、及びいくつかの場合にはプロセッサ実行可能なプログラム命令を格納するために、永続的及び非永続的メモリを含んでもよいメモリ604と、有線ネットワーク又は無線ネットワークを介してネットワーク接続を提供するために、ネットワークインターフェース606とを含む。
【００８４】
ノード600は、実行されるとプロセッサ602に本明細書に記載の機能又は動作のうちの1つ以上を実行させるプロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーンアプリケーション608を含む。
【００８５】
本明細書に記載された装置及びプロセス、ならびにブロックチェーンノードを構成するために記載された方法／プロセスを実装する任意のモジュール、ルーチン、プロセス、スレッド、アプリケーション、又は他のソフトウェアコンポーネントは、標準的なコンピュータプログラミング技術及び言語を用いて実現され得ることが理解されよう。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング規則、データ構造、又は他のこのような実装の詳細に限定されない。
【００８６】
上述の実施形態は、本発明を限定するものではなく、本発明を例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替実施形態を設計することができることに留意されたい。請求項においては、括弧内に付した参照符号は、請求項を限定するものと解釈してはならない。「含む」及び「有する」等の語は、いずれかの請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外しない。本明細書において、「含む」とは、「含む、又はからなる」ことを意味し、「有する」とは、「有する、又はからなる」ことを意味する。要素の単数形参照は、そのような要素の複数形参照を除外するものではなく、その逆もまた同様である。本発明は、いくつかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施することができる。幾つかの手段を列挙する装置の請求項においては、これらの手段の幾つかは、一つの同一のハードウェアアイテムによって具体化することができる。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組み合わせが有利に利用できないことを示すものではない。
【図１】
2020530956.tif 000010
【図２】
2020530956.tif 000011
【図３】
2020530956.tif 000012
【図４】
2020530956.tif 000013
【図５】
2020530956.tif 000014
【図６】
2020530956.tif 000015
【国際調査報告】
2020530956.tif 000016
2020530956.tif 000017