(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023135627
(43)【公開日】2023-09-28
(54)【発明の名称】サプライチェーンのデータの保護方法、装置及び記憶媒体
(51)【国際特許分類】
H04L 9/32 20060101AFI20230921BHJP
G06F 21/64 20130101ALI20230921BHJP
【FI】
H04L9/32 200C
G06F21/64
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023035149
(22)【出願日】2023-03-08
(31)【優先権主張番号】202210252443.4
(32)【優先日】2022-03-15
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100107515
【弁理士】
【氏名又は名称】廣田 浩一
(72)【発明者】
【氏名】ホア・ソォン
(72)【発明者】
【氏名】ピ・ビンフォン
(72)【発明者】
【氏名】孫 俊
(57)【要約】
【課題】サプライチェーンのデータの保護方法、装置及び記憶媒体を提供する。
【解決手段】サプライチェーンにおける各ノードはそれぞれ保護すべきデータを有する。該方法は、サプライチェーンの1番目及び2番目のレベルの各ノードが、それぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、保護すべきデータをサプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信するステップと、サプライチェーンの3番目乃至N番目のレベルの各ノードが、上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明をブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信するステップと、を含み、Nは3以上の整数である。
【選択図】
図2
【特許請求の範囲】
【請求項1】
サプライチェーンのデータを保護する方法であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記方法は、
前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードが、それぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信するステップと、
前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードが、上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信するステップであって、Nは3以上の整数である、ステップと、を含む、方法。
【請求項2】
前記更新比率は、前記ゼロ知識証明を作成すると同時に計算される、請求項1に記載の方法。
【請求項3】
前記ゼロ知識証明を作成すると同時に前記更新比率を計算することは、
前記3番目のレベル乃至前記N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密入力とすることと、
前記ブロックチェーンから取得された、前記特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値を公開入力とすることと、
前記上位のレベルのノードから受信された保護すべきデータ間の更新比率を第1の制約とし、前記更新比率と前記初期比率値との比に前記特定乱数及び前記特定ノード自体の初期比率値を乗算した積を第2の制約として、前記特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算することと、を含む、請求項2に記載の方法。
【請求項4】
前記特定ノードが前記共通出力、前記公開入力及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む、請求項3に記載の方法。
【請求項5】
前記特定ノードが前記共通出力、前記公開入力における初期比率のインデックス、及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む、請求項3に記載の方法。
【請求項6】
制御メカニズムにより、重み及び前記サプライチェーンの各ノード間の依存関係に基づいて、前記サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替えるステップ、をさらに含む、請求項1乃至5の何れかに記載の方法。
【請求項7】
前記重みは、前記更新比率を計算する必要のあるノードの出次数、ゼロ知識証明回路の複雑度、及び該ノードの下位のレベルのノードの優先度に基づくものである、請求項6に記載の方法。
【請求項8】
前記ゼロ知識証明回路の複雑度は、該ゼロ知識証明回路の制約の数、並びに入力及び出力の数に正比例する、請求項7に記載の方法。
【請求項9】
サプライチェーンのデータを保護する装置であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記装置は、
前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードのそれぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信する第1の手段と、
前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードにより上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信する第2の手段であって、Nは3以上の整数である、第2の手段と、を含む、装置。
【請求項10】
プログラム命令が記憶されたコンピュータ読み取り可能な記憶媒体であって、前記プログラム命令がコンピュータにより実行される際に、前記コンピュータに請求項1乃至5の何れかに記載の方法を実行させる、記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サプライチェーンの分野に関し、具体的には、サプライチェーンのデータ保護に関する。
【背景技術】
【0002】
サプライチェーン分野の幾つかのシナリオでは、サプライチェーンの参加者が製品の環境価値を共同で計算する必要がある。環境価値は、様々な意味を含んでもよい。例えば、炭素排出量の価値は、製品に含まれる炭素排出量を表す。
【0003】
通常、実際のサプライチェーンは、依存関係に応じて複数の事業体を含み、製品の全体的な炭素排出量の価値を正確に取得するために、全ての関係者が共同してオンラインで協力する必要があるため、幾つかのブロックチェーンベースの炭素排出量の価値の計算スキームでは、通常、依存関係に従ってオフチェーンで炭素排出量の価値を順次計算する。一方、プライバシーを保護するために、炭素排出量の価値をオフチェーンに配置すると共に、炭素排出量の価値に対応する暗号学的コミットメントをオンチェーンに配置してもよい。コミットメントの正確性を確保するために、ゼロ知識証明(ZKP:Zero-Knowledge Proof)などの方法を使用してもよい。
【0004】
しかし、暗号学的コミットメントを利用したスキームには問題があり、後続の環境価値の使用シナリオにとって非常に不便になる場合がある。特に、オンチェーンにコミットメントのみが保存され、元の炭素排出値がないため、これらのシナリオで目標を達成するために複雑な操作が必要である。例えば、監査では、炭素排出量の価値を監査する必要がある場合、サプライチェーンの全てのノードは、データの正確性を検証するために、コミットメントに対応する証明をオンラインで提出する必要がある。報酬分配では、プライバシーを保護するために、サプライチェーンの全てのノードの炭素排出情報を保存しているノードがなく、且つ下流のノードのみがその直接の上流ノードの炭素排出情報を把握しているため、炭素排出に基づく報酬分配のシナリオでは、並列的な操作ができなく、最下流のノードから最上流のノードへの反復的な分配しかできない。
【0005】
従って、環境価値を利用する必要がある応用シナリオでは、サプライチェーンの全てのノードがオンラインで協力して全体のデータを確認する必要があり、非常に非効率的である。
【発明の概要】
【発明が解決しようとする課題】
【0006】
以下は、本開示の態様を基本的に理解させるために、本開示の簡単な概要を説明する。なお、この簡単な概要は、本開示を網羅的な概要ではなく、本開示のポイント又は重要な部分を意図的に特定するものではなく、本開示の範囲を意図的に限定するものではなく、後述するより詳細的な説明の前文として、単なる概念を簡単な形で説明することを目的とする。
【0007】
本開示は、サプライチェーンのデータの保護方法、装置及び記憶媒体を提供する。
【課題を解決するための手段】
【0008】
本発明の1つの態様では、サプライチェーンのデータを保護する方法であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記方法は、前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードが、それぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信するステップと、前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードが、上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信するステップであって、Nは3以上の整数である、ステップと、を含む、方法を提供する。
【0009】
好ましくは、前記更新比率は、前記ゼロ知識証明を作成すると同時に計算される。
【0010】
好ましくは、前記ゼロ知識証明を作成すると同時に前記更新比率を計算することは、前記3番目のレベル乃至前記N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密入力とすることと、前記ブロックチェーンから取得された、前記特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値を公開入力とすることと、前記上位のレベルのノードから受信された保護すべきデータ間の更新比率を第1の制約とし、前記更新比率と前記初期比率値との比に前記特定乱数及び前記特定ノード自体の初期比率値を乗算した積を第2の制約として、前記特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算することと、を含む。
【0011】
好ましくは、前記特定ノードが前記共通出力、前記公開入力及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む。
【0012】
好ましくは、前記特定ノードが前記共通出力、前記公開入力における初期比率のインデックス、及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む。
【0013】
好ましくは、制御メカニズムにより、重み及び前記サプライチェーンの各ノード間の依存関係に基づいて、前記サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替えるステップ、をさらに含む。
【0014】
好ましくは、前記重みは、前記更新比率を計算する必要のあるノードの出次数、ゼロ知識証明回路の複雑度、及び該ノードの下位のレベルのノードの優先度に基づくものである。
【0015】
好ましくは、前記ゼロ知識証明回路の複雑度は、該ゼロ知識証明回路の制約の数、並びに入力及び出力の数に正比例する。
【0016】
好ましくは、下位のレベルのノードの優先度は、該下位のレベルのノードの重みに正比例する。
【0017】
好ましくは、サプライチェーンにおける各ノードは、その保護すべきデータの比率をブロックチェーンにアップロードすると同時に、該保護すべきデータに対するコミットメントをアップロードする。
【0018】
好ましくは、サプライチェーンの1番目のレベルのノードは、サプライチェーンの最上流のノードである。
【0019】
好ましくは、サプライチェーンは、製品の部品のサプライチェーンであり、サプライチェーンの各ノードは、製品の1つの部品の炭素排出値を提供する。
【0020】
本発明のもう1つの態様では、サプライチェーンのデータを保護する装置であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記装置は、前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードのそれぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信する第1の手段と、前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードにより上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信する第2の手段であって、Nは3以上の整数である、第2の手段と、を含む、装置を提供する。
【0021】
本発明の他の態様では、対応するコンピュータプログラムコード、コンピュータ読み取り可能な記憶媒体、及びコンピュータプログラムプロダクトをさらに提供する。
【0022】
本発明に係るサプライチェーンのデータの保護方法及び装置によれば、オンチェーンにプライバシーを保護すると共に、後続の応用シナリオの効率を向上させることができる。
【0023】
以下は図面を参照しながら本発明の好ましい実施形態を詳細に説明することにより、本発明の上記及び他の利点はより明確になる。
【図面の簡単な説明】
【0024】
本開示の上記及び他の利点及び特徴を理解させるために、以下は図面を参照しながら本開示の具体的な実施形態を詳細に説明する。図面及び以下の詳細な説明は本明細書に含まれ、本明細書の一部を構成する。同一の機能及び構造を有する素子は同一の符号で示される。なお、これらの図面は単なる本開示の典型的な例を説明するためのものであり、本開示の範囲を限定するものではない。
【
図1】本発明のスキームの全体的なアーキテクチャーを示す概略図である。
【
図2】本発明の実施形態に係るサプライチェーンのデータの保護方法のフローチャートである。
【
図3A】ブロックチェーン及びZKPに基づく混同比率の公開を示す概略図である。
【
図3B】直接の上流ノードが1つしかない状況を示す概略図である。
【
図3C】直接の上流ノードが複数ある状況を示す概略図である。
【
図4】
図2の方法の更新比率の計算の1つの実施形態を示す図である。
【
図5】比率情報を更新するためのZKP回路の設計原理を示す概略図である。
【
図6】サプライチェーンのトポロジ構造を示す概略図である。
【
図7】ZKP生成の並び替えの最適化を示す概略図である。
【
図8】本発明の実施形態に係るサプライチェーンのデータの保護装置のブロック図である。
【
図9】本発明の実施形態に係る方法及び/又は装置を実現可能な汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
【発明を実施するための形態】
【0025】
以下、図面を参照しながら本開示の例示的な実施例を詳細に説明する。説明の便宜上、明細書には実際の実施形態の全ての特徴が示されていない。なお、実際に実施する際に、開発者の具体的な目標を実現するために、特定の実施形態を変更してもよい、例えばシステム及び業務に関する制限条件に応じて実施形態を変更してもよい。また、開発作業が非常に複雑であり、且つ時間がかかるが、本公開の当業者にとって、この開発作業は単なる例の作業である。
【0026】
なお、本開示を明確にするために、図面には本開示に密に関連する装置の構成要件及び/又は処理のステップのみが示され、本開示と関係のない細部が省略されている。
【0027】
図1は、本発明のスキームの全体的なアーキテクチャーを示す概略図である。本発明は2つのポイントを含む。1つ目は、ブロックチェーン及びZKPの環境価値の比率の公開であり、2つ目は、ZKPの生成効率を最適化することである。
【0028】
図1に示すように、ブロックチェーン101は、ブロック10~13を含む。サプライチェーン100は、サプライヤノードA、B、C、D、E、F、G、H、I及びJを含み、ここで、サプライヤA、B、C、及びDは、サプライチェーン100全体の最上流のノードであり、サプライヤJは、最下流のノードである。外部にZKP生成を委託するためのクラウドシステム102は、サプライヤノードA~Jの計算を1から10まで並び替えている。
【0029】
なお、サプライチェーンの上流ノードは、下流ノードの炭素排出値などの環境価値を把握していないが、下流ノードは、直接の上流ノードの環境価値を把握している。従って、1つ目のポイントとして、サプライヤノードE~Jは、乱数を使用して、生成された環境価値を混同して比率情報を取得し、該比率情報、該比率情報の正確性を証明するためのZKP、及び対応するコミットメントをブロックチェーンにアップロードする。これによって、ブロック10~13は比率情報のみを含み、元の環境価値はサプライチェーン100内に依然として保留されているため、真のデータの漏洩を防止することができる。
【0030】
また、ZKPの生成は、通常のアプリケーションプログラムよりも複雑であり、時間がかかり、コンピュータのより高い計算能力が必要になるため、通常、ZKPは、計算を統合するために外部のクラウドコンピューティングプラットフォームに委託される。さらに、サプライチェーンの各ノードには前後の依存関係があるため、即ち、下流ノードは計算を開始する前に全ての上流ノードの環境価値を受信する必要があるため、2番目のポイントとして、全体の計算効率を向上させるために、全体の計算プロセスにおいてサプライチェーンのノードA~Jの計算を1から10まで並び替えてもよい。
【0031】
以下は、
図2~
図7を参照しながら、本発明の実施形態に係るサプライチェーンのデータの保護方法200を説明する。
【0032】
まず、ステップ201において、サプライチェーンの1番目のレベル及び2番目のレベルの各ノードは、それぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、保護すべきデータをサプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信する。
【0033】
上述したように、後続の応用シナリオの利便性の問題を解決するために、環境価値の比率情報のみをブロックチェーンにアップロードする。また、比率情報による真の値の漏洩を防止するために、乱数を使用して該比率情報を混同した後、混同された比率情報をブロックチェーンにアップロードする。これによって、他の人がブロックチェーンにおける混同された比率情報から元の環境価値を逆に推定することを防止することができる。また、ZKPを使用して、チェーンに保存されている混同された比率情報が正確であることを証明する。混同方法は、例えば以下の式1で実現されてもよい。
【0034】
R1:R2:R3…Rn=(E1:E2:E3…En)×Rand (1)
ここで、R1:R2:R3…Rnは、混同後の比率情報を表し、E1:E2:E3…Enは、対応するノードが有する環境価値の比を表し、Randは、乱数を表す。言い換えれば、対応するノードが有する環境価値に同時に1つの乱数を乗算して混同後の比率情報を取得する。該混同後の比率情報R1~Rnは、対応するノードによりブロックチェーンにアップロードされる。
【0035】
なお、サプライチェーンのシナリオでは、計算プロセスは、サプライチェーンの最上流、即ち1番目のレベルのノード、例えば
図3Aにおけるノード1、2及び4から開始する。1番目のレベルのノードは、自身により生成された環境価値を計算し、該環境価値に任意の乱数を乗算して、対応するコミットメントと共にブロックチェーンにアップロードし、安全かつ機密の方式で環境価値を下流のノード、例えば
図3Aにおけるノード3及び5に送信する。該1番目のレベルのノードの全ての下流ノードは、該1番目のレベルのノードの環境値を受信した後、受信されたメッセージが改ざんされていないことを確認するように、該環境値とチェーン上のコミットメントとを検証してもよい。
【0036】
2番目のレベルのノード、例えば
図3Aにおけるノード3及び5は、上流ノードの環境価値を受信した後、自分で生成された環境価値を計算し、上記の式1に従って自身と全ての上流ノードの環境価値を混同した比率情報を計算すると共に、対応するZKPを生成し、最後に混同後の比率情報、ZKP及びコミットメントをブロックチェーンにアップロードする。例えば、2番目のレベルのノード3は、R1:R2:R3、ZKP及びコミットメントをブロック6にアップロードし、2番目のレベルのノード5は、R4:R5、ZKP及びコミットメントをブロック6にアップロードする。ブロックチェーンは、まずZKPを検証し、ZKPが正しい場合、該混同後の比率情報をチェーンに保存する。また、2番目のレベルのノードは、所有する環境値を下流ノード、例えば
図3Aにおけるノード6に安全かつ機密の方式で送信してもよい。
【0037】
次に、ステップ202において、サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードは、上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明をブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信する。
【0038】
具体的には、この実施形態では、3番目のレベルのノード、例えば
図3Aにおけるノード6、及び3番目のレベル以降のノード(図示せず)も、それら自身の環境価値を計算し、それら自身の環境価値及び所有する全ての上流ノード(直接の上流ノードと非直接の上流ノードを含む)の環境価値の混同比率情報を更新し、ブロックチェーンにアップロードする。例えば、ノード6は、ノード1~6の更新された混同比率情報R1’~R6’をブロックチェーンにアップロードする必要がある。
【0039】
実際には、3番目のレベルより上のノードについて、2つの状況を区別する必要がある。
【0040】
1番目の状況は、3番目のレベルより上のノードは、直接の上流ノードが1つしかない場合である。
図3Bに示すように、3番目のレベルのノード4は、直接の上流ノード3が1つしかない。ノード4の全ての直接又は間接の上流ノードの混同比率情報は既にチェーンに存在し、ノード4について直接の上流ノード3が1つしかないため、ノード4は自身の比率情報を更新するだけで済む。例えば、ノード4について、チェーン上の現在の混同比率情報はR1、R2、R3であり、それぞれ環境価値E1、E2、E3に対応する。ノード4は、正しいR4を計算により取得する際に、自身の環境価値E4を計算するだけでよい。これは、ノード4について、E3、R3、E4、及びR4:R3=E4:E3の関係が既知であるため、R4=R3×E4/E3を得ることができるためである。計算が完了すると、ノード4は、R4、ZKP及びコミットメントをブロックチェーンにアップロードする。
【0041】
2番目の状況は、
図3Cに示すように、3番目のレベルより上のノードは、複数の直接の上流ノードがある場合である。この場合、各直接の上流ノードに対応する比率情報が一致しないという問題が生じる。
【0042】
具体的には、
図3Cにおいて、3番目のレベルのノード6は、1~n個の直接の上流ノードを有する。チェーン上の比率情報は、ノード6の全ての直接及び間接の上流ノードの混同比率情報R1~Rn及びRnmであり、ここで、nは直接の上流ノードの番号であり、mはn番目の直接の上流ノードの上流ノード番号であり、即ち、ノード6の間接の上流ノードである。ノード1について、R1A:R1B:R1=E1A:E1B:E1となり、ノード2について、R2A:R2=E2A:E2となる。しかし、ノード1とノード2の2つの異なる式の値は比例しておらず、即ち、R1A:R2A≠E1A:E2Aとなる。これは、比率情報を計算する際に、ノード1とノード2がそれぞれ選択された異なる乱数を使用するためである。他の直接の上流ノードについても同様である。
【0043】
従って、ノード6は、全ての直接又は間接の上流ノードの環境価値を受信した後、これらの環境価値に対応するチェーン上の混同比率情報を更新する必要があり、即ち、計算により、新しい混同比率情報、及び全ての環境価値を満たす正確な比率のセットを取得し、新しい混同比率情報とZKP及びコミットメントをブロックチェーンにアップロードする必要がある。
【0044】
更新された混同比率情報を計算するプロセスは、ZKP回路の計算プロセスでもある。以下は、
図4及び
図5を参照しながら、1つの実施形態に係る更新された混同比率情報の算出プロセスを説明する。
【0045】
図4のステップ2021において、3番目のレベル乃至N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密(プライベート)入力とする。
【0046】
具体的には、この実施形態では、特定ノードは、例えば
図3Cにおけるノード6である。
図5におけるZKP回路の秘密入力は、ノード6の直接の上流ノード1~nの環境価値E1~En、及びノード6により選択された乱数である。
【0047】
次に、
図4のステップ2022において、ブロックチェーンから取得された、特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値及び環境価値のコミットメントを公開(パブリック)入力とする。
【0048】
具体的には、
図3Cを一例にすると、
図5におけるZKP回路の公開入力は、ノード6の全ての直接及び間接の上流ノードのオンチェーンの混同比率情報R1A、R1B~Rn、及びE1~Enのコミットメントである。
【0049】
次に、
図4のステップ2023において、上位のレベルのノードから受信された保護すべきデータ間の更新比率を第1の制約とし、更新比率と初期比率値との比に特定乱数及び特定ノード自体の初期比率値を乗算した積を第2の制約として、特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算する。
【0050】
具体的には、
図3Cを一例にすると、
図5におけるZKP回路の共通出力は、更新後の混同比率情報R’である。ZKP回路の2つの制約は、秘密入力における全ての環境価値とオンチェーンのコミットメントとが合致すること、及び更新された混同比率情報が正しいアルゴリズムにより計算されたものであることを含む。
【0051】
具体的な回路制約における比率情報の計算方法は、以下のようになる。
【0052】
R1’:R2’:…:Rn’=E1:E2:…:Enという制約を計算して設定し、
c1=R1’/R1、c2=R2’/R2…cn=Rn’/Rnという制約を計算して設定し、
c1’=c1×Rand、c2’=c2×Rand、…cn’=cn×Randという制約を計算して設定し、
Rnm’=cn’×Rnm、例えば、R1A’=c1’×R1A、R2A’=c2’×R2Aという制約を計算して設定する。
【0053】
ここで、Rは初期比率データを表し、R’(Rnm’及びRn’)は更新された比率データを表し、Randは乱数を表し、Rnmは現在のノードのn番目の直接の上流ノードのm番目の上流ノードを表す。
【0054】
例えば、以下の証明プロセスにより、上記の計算方法が正しいことを確保してもよい。
【0055】
R1’=c1×R1、R2’=c2×R2、R1’:R2’=E1:E2、R1:R2=E1:E2、R1A:R1=E1A:E1は既知であり、以下の式を取得できる。
【0056】
【数1】
上記の式(2)により、上記の計算方法が正しいことを証明することができる。
【0057】
最後に、ステップ2024において、特定ノードは、共通出力、公開入力及び作成されたZKPをブロックチェーンにアップロードし、受信された保護すべきデータを該特定ノードの下位のレベルにおける対応するノードに送信する。
【0058】
具体的には、
図3Cを一例にすると、ノード6は、更新後の全ての混同比率情報R1A’、R1B’~Rnm
’(共通出力)、E1~Enのコミットメント(公開入力)、ZKP及びコミットメントをブロックチェーンにアップロードし、所有する全ての環境価値EA~ED及びE1~Enをノード6の下流ノードに送信する。
【0059】
必要に応じて、ノード6は、その全ての上流ノードのオンチェーンの混同比率情報のインデックスを公開入力としてブロックチェーンにアップロードしてもよい。
【0060】
下流ノードについて、ノード6と同様な方法で動作させてもよい。最後のノードが最終製品の関連情報をチェーンにアップロードして更新することで、現在の製品の環境価値の比率情報をチェーンに正常に保存することができる。監査、報酬分配などの後続の応用シナリオでは、チェーン上の混同比率情報により、各参加ノードの環境価値を取得することができる。
【0061】
図2に戻り、好ましくは、保護方法200は、ステップ201’をさらに含む。ステップ201’において、サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替える。以下は、
図6及び
図7を参照しながら、ノードの計算の並び替え(ソート)を詳細に説明する。
【0062】
一般に、ZKPの生成プロセスは通常のアプリケーションプログラムよりも遥かに複雑であるため、ZKPの生成に時間がかかる。また、ZKPの生成には、コンピュータのより高い計算能力が必要である。従って、ZKPの生成は、通常、
図1のクラウドシステム102などの外部のクラウドコンピューティングプラットフォームに委託する。
【0063】
サプライチェーンには前後の依存関係があるため、即ち、下流のノードは、計算を開始する前に、全ての上流ノードの環境価値を受信する必要があるため、全体的な計算効率を向上させように、計算プロセス全体において各ノードの計算順序を最適化してもよい。
【0064】
図6は、サプライチェーンのトポロジ構造を示す概略図である。ここで、各ノードは、ZKPの計算タスクを表し、下流ノードは、計算を開始するために全ての上流ノードの計算が完了するまで待つ必要がある。
【0065】
効率を向上させるために、一部のノード、例えばノード3に、より高い計算優先度を与えてもよい。ノード3は3つの下流ノードを有するため、ノード3の計算が完了した後、より多くのノードの計算を開始することができる。従って、ノード3に、ノード1及びノード2よりも高い優先度を与えてもよい。
【0066】
以下は、本発明の1つの実施形態に係るノード重み計算スキームを説明する。ノードの重みは、主に以下の要因、即ちノードの出次数、ノードのZKPの複雑度(ノードに応じて、ZKP回路の複雑度は異なる。入力及び出力の数、並びに証明される内容は複雑度に影響を及ぼし、ZKP回路の複雑度は計算時間及びエネルギー消費に影響を及ぼす)、及びノードの直接の下流ノードの重み(下流ノードの重みが高いと、それに応じて、現在のノードの重みも高くなる)に関連する。
【0067】
なお、ZKP回路の複雑度は、該ZKP回路の制約の数、並びに入力及び出力の数に正比例する。
【0068】
例えば、各ノードの重みWは、以下の計算式により取得されてもよい。
【0069】
Wノード=数出次数×数制約×数入力&出力×W下流ノード (3)
ノードの重みが計算された後、ノードの並び替えの最適化を行ってもよい。
【0070】
図7は、並び替えの最適化の全体的なプロセスを示している。まず、サプライチェーンのトポロジ構造に基づいて、全てのZKP計算タスクをトポロジ順序に従って並べ替える。ここで、前後の依存関係を有するノードについて、前置ノードを後置ノードの前に配列する。次に、式(2)に従って各ノードの重みを計算した後、トポロジ並び替え結果に基づいて全体の順序を調整する。即ち、トポロジ順序の依存関係を満たすという前提の下で、重みの高いノードを重みの低いノードの前に配列してそのZKPを優先して計算する。
【0071】
なお、制御メカニズム(図示せず)により、重み及びサプライチェーンの各ノード間の依存関係に基づいて、各ノードの計算を並び替えてもよい。
【0072】
最後に、並び替えが最適化された計算タスクをクラウドコンピューティングプラットフォーム102に入力し、従来の方法を使用して並行コンピューティングを実行することで、コンピューティングプロセス全体の効率を向上させるという目的を達成する。
【0073】
以上は、
図1~
図7を参照しながら、本発明の実施形態に係るサプライチェーンのデータの保護方法を詳細に説明した。上述したように、各実施形態の方法によれば、オンチェーンにプライバシーを保護すると共に、後続の応用シナリオの効率を向上させることができる。
【0074】
上記の方法は、コンピュータ実行可能なプログラムにより完全に実現されてもよいし、ハードウェア及び/又はファームウェアを用いて部分的又は完全に実現されてもよい。ハードウェア及び/又はファームウェアにより実現される場合、又はコンピュータ実行可能なプログラムがプログラムを実行可能なハードウェア装置にロードされる場合、後述するニューラルネットワークの訓練装置が実現される。以下は、上述した詳細な内容を省略し、これらの装置の概要を説明する。なお、これらの装置は上記の方法を実行することができるが、上記方法は後述する装置の構成部を採用し、或いは構成部により実行されるものに限定されない。
【0075】
図8は、本発明の実施形態に係るサプライチェーンのデータの保護装置800のブロック図である。該装置は、第1の手段801及び第2の手段802を含む。第1の手段801は、サプライチェーンの1番目のレベル及び2番目のレベルの各ノードのそれぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信する。第2の手段802は、サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードにより上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明をブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信する。ここで、Nは3以上の整数である。
【0076】
好ましくは、第2の手段802は、ゼロ知識証明を作成すると同時に更新比率を計算する。具体的には、第2の手段802は、3番目のレベル乃至N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密入力とし、ブロックチェーンから取得された、特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値を公開入力とし、上位のレベルのノードから受信された保護すべきデータの更新比率間を第1の制約とし、更新比率と初期比率値との比に特定乱数及び特定ノード自体の初期比率値を乗算した積を第2の制約として、特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算する。
【0077】
好ましくは、第2の手段802は、特定ノードにより共通出力、公開入力における初期比率のインデックス、及び作成されたゼロ知識証明をブロックチェーンにアップロードする。
【0078】
好ましくは、制御メカニズムにより、重み及びサプライチェーンの各ノード間の依存関係に基づいて、サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替える。重みは、更新比率を計算する必要のあるノードの出次数、ゼロ知識証明回路の複雑度、及び該ノードの下位のレベルのノードの優先度に基づくものである。ZKP回路の複雑度は、該ZKP回路の制約の数、並びに入力及び出力の数に正比例する。
【0079】
図8に示すサプライチェーンのデータの保護装置800は
図2に示すサプライチェーンのデータの保護方法200に対応する。このため、サプライチェーンのデータの保護装置800における各部の詳細は、
図2のサプライチェーンのデータの保護方法200について説明において既に詳細に説明され、ここでその説明を省略する。
【0080】
上記処理及び装置はソフトウェア及び/又はファームウェアにより実現されてもよい。ソフトウェア及び/又はファームウェアにより実施されている場合、記憶媒体又はネットワークから専用のハードウェア構成を有するコンピュータ(例えば
図9示されている汎用パーソナルコンピュータ900)に上記方法を実施するためのソフトウェアを構成するプログラムをインストールしてもよく、該コンピュータは各種のプログラムがインストールされている場合は各種の機能などを実行できる。
【0081】
図9は、本発明の実施形態に係る方法及び/又は装置を実現可能な汎用パーソナルコンピュータの例示的な構成を示すブロック図である。
図9に示すように、中央処理部(CPU)901は、読み出し専用メモリ(ROM)902に記憶されているプログラム、又は記憶部908からランダムアクセスメモリ(RAM)903にロードされたプログラムにより各種の処理を実行する。RAM903には、必要に応じて、CPU901が各種の処理を実行するに必要なデータが記憶されている。CPU901、ROM902、及びRAM903は、バス904を介して互いに接続されている。入力/出力インターフェース905もバス904に接続されている。
【0082】
入力部906(キーボード、マウスなどを含む)、出力部907(ディスプレイ、例えばブラウン管(CRT)、液晶ディスプレイ(LCD)など、及びスピーカなどを含む)、記憶部908(例えばハードディスクなどを含む)、通信部909(例えばネットワークのインタフェースカード、例えばLANカード、モデムなどを含む)は、入力/出力インターフェース905に接続されている。通信部909は、ネットワーク、例えばインターネットを介して通信処理を実行する。必要に応じて、ドライバ910は、入力/出力インターフェース905に接続されてもよい。取り外し可能な媒体911は、例えば磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどであり、必要に応じてドライバ910にセットアップされて、その中から読みだされたコンピュータプログラムは必要に応じて記憶部908にインストールされている。
【0083】
ソフトウェアにより上記処理を実施する場合、ネットワーク、例えばインターネット、又は記憶媒体、例えば取り外し可能な媒体911を介してソフトウェアを構成するプログラムをインストールする。
【0084】
なお、これらの記憶媒体は、
図9に示されている、プログラムを記憶し、機器と分離してユーザへプログラムを提供する取り外し可能な媒体911に限定されない。取り外し可能な媒体911は、例えば磁気ディスク(フロッピーディスク(登録商標)を含む)、光ディスク(光ディスク-読み出し専用メモリ(CD-ROM)、及びデジタル多目的ディスク(DVD)を含む)、光磁気ディスク(ミニディスク(MD)(登録商標))及び半導体メモリを含む。或いは、記憶媒体は、ROM902、記憶部908に含まれるハードディスクなどであってもよく、プログラムを記憶し、それらを含む機器と共にユーザへ提供される。
【0085】
本発明は、対応するコンピュータプログラムコード、機器が読み取り可能な命令コードが記憶されているコンピュータプログラムプロダクトをさらに提供する。該命令コードは、機器により読み取られ、実行される際に、上記の本発明の実施形態に係る方法を実行することができる。
【0086】
それに応じて、本発明は、機器が読み取り可能な命令コードを含むプログラムプロダクトが記録されている記憶媒体をさらに含む。該記憶媒体は、フロッピーディスク、光ディスク、光磁気ディスク、メモリカード、メモリスティック等を含むが、これらに限定されない。
【0087】
また、上述の各実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
サプライチェーンのデータを保護する方法であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記方法は、
前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードが、それぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信するステップと、
前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードが、上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信するステップであって、Nは3以上の整数である、ステップと、を含む、方法。
(付記2)
前記更新比率は、前記ゼロ知識証明を作成すると同時に計算される、付記1に記載の方法。
(付記3)
前記ゼロ知識証明を作成すると同時に前記更新比率を計算することは、
前記3番目のレベル乃至前記N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密入力とすることと、
前記ブロックチェーンから取得された、前記特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値を公開入力とすることと、
前記上位のレベルのノードから受信された保護すべきデータ間の更新比率を第1の制約とし、前記更新比率と前記初期比率値との比に前記特定乱数及び前記特定ノード自体の初期比率値を乗算した積を第2の制約として、前記特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算することと、を含む、付記2に記載の方法。
(付記4)
前記特定ノードが前記共通出力、前記公開入力及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む、付記3に記載の方法。
(付記5)
前記特定ノードが前記共通出力、前記公開入力における初期比率のインデックス、及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードするステップ、をさらに含む、付記3に記載の方法。
(付記6)
制御メカニズムにより、重み及び前記サプライチェーンの各ノード間の依存関係に基づいて、前記サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替えるステップ、をさらに含む、付記1乃至5の何れかに記載の方法。
(付記7)
前記重みは、前記更新比率を計算する必要のあるノードの出次数、ゼロ知識証明回路の複雑度、及び該ノードの下位のレベルのノードの優先度に基づくものである、付記6に記載の方法。
(付記8)
前記ゼロ知識証明回路の複雑度は、該ゼロ知識証明回路の制約の数、並びに入力及び出力の数に正比例する、付記7に記載の方法。
(付記9)
下位のレベルのノードの優先度は、該下位のレベルのノードの重みに正比例する、付記7に記載の方法。
(付記10)
サプライチェーンにおける各ノードは、その保護すべきデータの比率をブロックチェーンにアップロードすると同時に、該保護すべきデータに対するコミットメントをアップロードする、付記1乃至5の何れかに記載の方法。
(付記11)
サプライチェーンの1番目のレベルのノードは、サプライチェーンの最上流のノードである、付記1乃至5の何れかに記載の方法。
(付記12)
サプライチェーンは、製品の部品のサプライチェーンであり、
サプライチェーンの各ノードは、製品の1つの部品の炭素排出値を提供する、付記11に記載の方法。
(付記13)
サプライチェーンのデータを保護する装置であって、前記サプライチェーンにおける各ノードは、それぞれ保護すべきデータを有し、前記装置は、
前記サプライチェーンの1番目のレベル及び2番目のレベルの各ノードのそれぞれの保護すべきデータ間の初期比率に任意の乱数を乗算して初期比率値としてブロックチェーンにアップロードし、前記保護すべきデータを前記サプライチェーンにおける下位のレベルの対応するノードにそれぞれ送信する第1の手段と、
前記サプライチェーンの3番目のレベル乃至N番目のレベルの各ノードにより上位のレベルの対応するノードから受信された保護すべきデータ間の更新比率を計算し、前記更新比率に任意の乱数を乗算したもの、及び該更新比率の正確性を証明するためのゼロ知識証明を前記ブロックチェーンにアップロードし、受信された保護すべきデータを下位のレベルの対応するノードに送信する第2の手段であって、Nは3以上の整数である、第2の手段と、を含む、装置。
(付記14)
前記第2の手段は、前記ゼロ知識証明を作成すると同時に更新比率を計算する、付記13に記載の装置。
(付記15)
前記第2の手段は、
前記3番目のレベル乃至前記N番目のレベルの特定ノードによりその上位のレベルのノードから受信された保護すべきデータ及び特定乱数を秘密入力とし、
前記ブロックチェーンから取得された、前記特定ノードの全ての上位のレベルのノードによりアップロードされた初期比率値を公開入力とし、
前記上位のレベルのノードから受信された保護すべきデータ間の更新比率を第1の制約とし、前記更新比率と前記初期比率値との比に前記特定乱数及び前記特定ノード自体の初期比率値を乗算した積を第2の制約として、前記特定ノードの全ての上位レベルのノードの保護すべきデータの更新比率を共通出力として計算する、付記14に記載の装置。
(付記16)
前記第2の手段は、特定ノードにより前記共通出力、前記公開入力における初期比率のインデックス、及び作成されたゼロ知識証明を前記ブロックチェーンにアップロードする、付記15に記載の装置。
(付記17)
制御メカニズムにより、重み及び前記サプライチェーンの各ノード間の依存関係に基づいて、前記サプライチェーンにおける更新比率を計算する必要のあるノードの計算を並び替える、付記13乃至16の何れかに記載の装置。
(付記18)
前記重みは、前記更新比率を計算する必要のあるノードの出次数、ゼロ知識証明回路の複雑度、及び該ノードの下位のレベルのノードの優先度に基づくものである、付記17に記載の装置。
(付記19)
前記ゼロ知識証明回路の複雑度は、該ゼロ知識証明回路の制約の数、並びに入力及び出力の数に正比例する、付記18に記載の装置。
(付記20)
プログラム命令が記憶されたコンピュータ読み取り可能な記憶媒体であって、前記プログラム命令がコンピュータにより実行される際に、前記コンピュータに付記1乃至12の何れかに記載の方法を実行させる、記憶媒体。
【0088】
なお、用語「含む」、「有する」又は他の任意の変形は、排他的に含むことに限定されず、一連の要素を含むプロセス、方法、物又は装置は、これらの要素を含むことだけではなく、明示的に列挙されていない他の要素、又はこのプロセス、方法、物若しくは装置の固有の要素を含む。また、さらなる制限がない限り、用語「1つの…を含む」より限定された要素は、該要素を含むプロセス、方法、物又は装置に他の同一の要素が存在することを排除しない。
【0089】
以上は図面を参照しながら本発明の好ましい実施例を説明しているが、上記実施例及び例は例示的なものであり、制限的なものではない。当業者は、特許請求の範囲の主旨及び範囲内で本発明に対して各種の修正、改良、均等的なものに変更してもよい。これらの修正、改良又は均等的なものに変更することは本発明の保護範囲に含まれるものである。