(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-04
(45)【発行日】2022-08-15
(54)【発明の名称】鍵データの処理方法および装置、ならびにサーバ
(51)【国際特許分類】
H04L 9/08 20060101AFI20220805BHJP
H04L 9/14 20060101ALI20220805BHJP
H04L 9/32 20060101ALI20220805BHJP
【FI】
H04L9/08 A
H04L9/08 F
H04L9/14
H04L9/32 200Z
(21)【出願番号】P 2019553388
(86)(22)【出願日】2018-08-28
(86)【国際出願番号】 US2018048370
(87)【国際公開番号】W WO2019046317
(87)【国際公開日】2019-03-07
【審査請求日】2019-11-25
(31)【優先権主張番号】201710747807.5
(32)【優先日】2017-08-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520015461
【氏名又は名称】アドバンスド ニュー テクノロジーズ カンパニー リミテッド
(74)【代理人】
【識別番号】100188558
【氏名又は名称】飯田 雅人
(74)【代理人】
【識別番号】100205785
【氏名又は名称】▲高▼橋 史生
(72)【発明者】
【氏名】ハオ・ウ
【審査官】行田 悦資
(56)【参考文献】
【文献】米国特許出願公開第2016/0212109(US,A1)
【文献】特開2004-032307(JP,A)
【文献】国際公開第2010/147215(WO,A1)
【文献】特開2004-171148(JP,A)
【文献】特開2001-236259(JP,A)
【文献】中国特許出願公開第1697372(CN,A)
【文献】ANTONOPOULOS, A. M.,ビットコインとブロックチェーン,第1版,日本,NTT出版株式会社,2016年07月21日,p.250
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
H04L 9/14
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
鍵データを処理するための方法であって、
ブロックチェーン内の共有オブジェクトの元の鍵を取得するステップであって、前記元の鍵が、実行されるべき前記共有オブジェクトに対する操作を可能にする暗号鍵である、ステップと、
前記元の鍵を共有する当事者の数を決定するステップであって、前記数の当事者は前記共有オブジェクトを共有する、ステップと、
前記元の鍵を共有する当事者の前記数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって前記元の鍵を処理するステップであって、前記子鍵のすべてが取得されたときに前記元の鍵を復元することができるように、前記同じ数の子鍵が生成される、ステップと
対応するオブジェクト共有当事者に前記子鍵を送信するステップと、
前記元の鍵を削除するステップと
を備
え、
前記あらかじめ定められたアルゴリズムが、
(N+1)の共有当事者がいる場合、N個の乱数Riを生成するステップであって、Riがi番目の乱数であり、i∈[1, N]である、ステップと、
素数Pを決定するステップであって、前記素数Pが、少なくとも前記元の鍵の値Sと前記乱数Riのいずれかより大きく、Riの範囲が[0, P-1]である、ステップと、
(N+1)個の子鍵を取得するために、1からN+1までのXの値についてモジュロ演算CX=P modulo (S+R
1
X+R
2
X
2
+R
3
X
3
+…+R
N
X
N
)を実行するステップであって、N≧1であり、XおよびNが整数である、ステップと
を備える、方法。
【請求項2】
前記共有オブジェクトが、前記ブロックチェーン内の資産を含む、請求項1に記載の方法。
【請求項3】
前記あらかじめ定められたアルゴリズムが、
前記元の鍵を共有している当事者の前記数と同じ数の子鍵を生成するために、ランダムに生成された文字列を使用することによって前記元の鍵に対して動作を実行するステップを備える、請求項1または2のいずれか一項に記載の方法。
【請求項4】
前記ランダムに生成された文字列のうちの1つまたは複数の文字が、前記子鍵を生成するためにシーケンスで前記元の鍵に個別に挿入される、請求項3に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2017年8月28日に出願された中国特許出願第201710747807.5号の優先権を主張し、その全体が参照により本明細書に組み込まれる。
【0002】
本明細書の実装形態は、ブロックチェーンデータ処理技術の分野に関し、具体的には、鍵データの処理方法および装置、ならびにサーバに関する。
【背景技術】
【0003】
ブロックチェーンは分散データベースである。これは、データブロックを時系列で組み合わせることによって得られる連鎖データ構造である。データを改ざんまたは偽造することができないことを保証するために、暗号化方法が使用される。ブロックチェーンはデータの信頼性を効果的に保証できるため、より多くの分野に適用される。
【発明の概要】
【発明が解決しようとする課題】
【0004】
通常、ブロックチェーン内のデータは、非対称暗号化方式を使用することによって署名および検証される。ブロックチェーン内のトランザクションイニシエータは秘密鍵を使用することによってトランザクションに署名することができ、マイナー(コンピューティングノード)はイニシエータの公開鍵を使用することによってトランザクションを検証することができる。トランザクションの検証が成功すると、トランザクションに使用される資金が通常の資産所有者に属していることを示すことができ、トランザクションに関する情報がブロックチェーンの新しいブロックに配置される。ブロックチェーンの資産トランザクションプロセスでは、通常、秘密鍵は単一の当事者(Party)によって所有されており、たとえば、個人のモバイル電話またはコンピュータに記憶されている。したがって、資産の所有権と制御権は、秘密鍵を所有する当事者に属すると考えることができる。しかしながら、実際には、いくつかの資産、たとえば、カップルによって共同所有される不動産、またはジョイントベンチャー投資は複数の人によって共有されている。複数の当事者によって資産が共有される必要がある場合、当事者は同じ秘密鍵を共有する必要がある。秘密鍵を使用することによって、各共有当事者は資産を制御および取引することができ、他の人が知らないうちに資産を譲渡することができる。その結果、比較的高いトランザクションリスクがある。したがって、ブロックチェーン内の共有資産のセキュリティを保証するための、より安全で信頼性の高い方法が緊急に必要である。
【課題を解決するための手段】
【0005】
本明細書の実装形態は、鍵データの処理方法および装置、ならびにサーバを提供することが意図される。そのため、資産共有当事者の数に基づいて同じ数の子鍵(Child Key)を自動的に生成することができ、トランザクション中に子鍵を使用することによって元の鍵(Original Key)を復元することができるため、ブロックチェーン内の資産共有のセキュリティを効果的に保証する。
【0006】
本明細書の実装形態において提供される鍵データの処理方法および装置、ならびにサーバは、以下の方法で実装される。
【0007】
鍵データの処理方法は、ブロックチェーン内の共有オブジェクトの元の鍵を取得するステップと、元の鍵を共有する当事者の数を決定するステップと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理するステップであって、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される、ステップとを含む。
【0008】
鍵データ処理装置は、ブロックチェーン内の共有オブジェクトの元の鍵を取得し、元の鍵を共有する当事者の数を決定するように構成された元の鍵情報取得モジュールと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理するように構成された子鍵生成モジュールであって、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される、子鍵生成モジュールとを含む。
【0009】
プロセッサと、プロセッサによって実行可能な命令を記憶するように構成されたメモリとを含む鍵データ処理装置であって、命令を実行すると、プロセッサは、ブロックチェーン内の共有オブジェクトの元の鍵を取得することと、元の鍵を共有する当事者の数を決定することと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理することであって、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される、こととの動作を実装する。
【0010】
少なくとも1つのプロセッサと、プロセッサによって実行可能な命令を記憶するように構成されたメモリとを含むサーバであって、命令を実行すると、プロセッサは、ブロックチェーン内の共有オブジェクトの元の鍵を取得することと、元の鍵を共有する当事者の数を決定することと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理することであって、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される、こととの動作を実装する。
【0011】
本明細書の1つまたは複数の実装形態において提供される鍵データの処理方法および装置、ならびにサーバによれば、元の鍵は、資産またはデータなどの共有オブジェクトの元の鍵を共有する当事者の数に基づいて複数の子鍵に分割することができ、生成された子鍵は対応する資産共有当事者に表示することができる。共有オブジェクトを操作する必要がある場合、各資産共有当事者は子鍵を提供することができる。次いで、子鍵を使用することによって元の鍵を復元することができ、署名や資産トランザクションなどの対応する動作を実行することができる。そのため、本明細書の実装形態では、ブロックチェーン内の資産が複数の人によって共有されている場合、ブロックチェーン内の共有資産トランザクションのセキュリティを保証するために、他人が知らないうちに誰もが資産を操作することを効果的に防止することができる。
【0012】
本明細書の実装形態または既存の技術における技術的解決策をより明確に説明するために、以下では、実装形態または既存の技術を説明するための添付の図面を簡単に紹介する。明らかに、以下の説明における添付の図面は本明細書のいくつかの実装形態を示しているにすぎず、当業者は創造的な努力なしにこれらの添付の図面からさらに他の図面を導き出すことができる。
【図面の簡単な説明】
【0013】
【
図1】本明細書による、鍵データ処理のための例示的な方法を示す流れ図である。
【
図2】本明細書の別の実装形態による、例示的な方法を示す流れ図である。
【
図3】本明細書の実装形態による、子鍵を生成するプロセスを示す流れ図である。
【
図4】本明細書の別の実装形態による、例示的な方法を示す流れ図である。
【
図5】本明細書による、あらかじめ定められたアルゴリズムに基づいて子鍵を生成する別のプロセスを示す概略図である。
【
図6】本明細書の実装形態による、鍵データ処理装置のモジュールを示す概略構造図である。
【
図7】本明細書の別の実装形態による、鍵データ処理装置のモジュールを示す概略構造図である。
【
図8】本明細書の実装形態による、装置内の子鍵生成モジュールを示す概略構造図である。
【
図9】本明細書の別の実装形態による、鍵データ処理装置を示す概略構造図である。
【
図10】本明細書の別の実装形態による、装置内の子鍵生成モジュールを示す概略構造図である。
【
図11】本明細書の実装形態による、本明細書の一実施形態による、ウォレットアプリケーションを使用するモジュールを示す概略構造図である。
【
図12】本明細書の実装形態による、方法または装置を実装するためのサーバを示す概略構造図である。
【
図13】本開示の実装形態による、ブロックチェーンネットワークにおいて共有所有権を管理するためのコンピュータ実装方法の例を示すフローチャートである。
【発明を実施するための形態】
【0014】
当業者が本明細書における技術的解決策をより良く理解するために、以下は、本明細書の1つまたは複数の実装形態における添付の図面を参照して、本明細書の1つまたは複数の実装形態における技術的解決策を明確かつ包括的に説明する。明らかに、説明された実装形態は、本明細書の実装形態の一部にすぎず、すべてではない。創造的な努力なしに本明細書の1つまたは複数の実装形態に基づいて当業者によって得られる他のすべての実装形態は、本明細書の実装形態の保護範囲内にあるものとする。
【0015】
本明細書は、以下の実装形態または添付の図面に示される方法動作ステップまたは装置構造を提供するが、方法または装置は、方法または装置における従来のまたは非創造的な努力に基づいて、より多数またはより少数の動作ステップまたはモジュールユニットを含むことができる。必要な因果関係が論理的に存在しないステップまたは構造においては、これらのステップを実行するシーケンスまたは装置のモジュール構造は、本明細書の実装形態または添付の図面に示される実行シーケンスまたはモジュール構造に限定されない。実際の装置、サーバ、または端末製品アプリケーションでは、実装形態または添付の図面に示される方法またはモジュール構造(たとえば、並列プロセッサまたはマルチスレッド処理環境、あるいは分散処理およびサーバクラスタリングを含む実装環境など)に基づいて、方法またはモジュール構造を順次または並列に実行することができる。
【0016】
通常、ブロックチェーンは複数のブロックを含む。ブロックは論理データ構造であり、ブロックチェーンデータを記憶するために使用することができる。ブロックチェーンデータは、ブロックチェーン内の資金の流れおよび変動、ならびに資金の流れ、資産変動などの操作によって生成されたデータ情報を含むことができる。ブロックチェーンでは、資金の流れ、または資産の変動は、通常、トランザクションと呼ばれる。本明細書のいくつかの実装形態において説明されるブロックチェーン内の資産は、電子データの形でブロックチェーン内に記憶される貨幣、有価証券、および貴金属を含むことができる。たとえば、一部のアプリケーションによって提供されるウォレット機能は金銭資産を記憶することができ、ウォレット内の資産は製品の購入または譲渡に使用することができる。
【0017】
ブロックチェーン内のデータは、非対称暗号化を通じてトランザクションの有効性を検証することができる。通常、非対称暗号化は公開鍵と秘密鍵を含み、公開鍵は公開することができ、秘密鍵は公開されない。非対称暗号化は、ブロックチェーン資産トランザクションにおけるトランザクション検証の主要ツールのうちの1つである。トランザクション当事者は秘密鍵を使用することによってトランザクションに署名することができ、検証者はトランザクション当事者の公開鍵を使用することによって署名を検証することができる。検証が成功した場合、トランザクションが公開鍵に対応する秘密鍵の実際の所有者からのものであり、トランザクションが有効であることを示すことができる。トランザクションは、ブロックチェーンの新しいブロックに配置することができる。前のプロセスから、秘密鍵がブロックチェーン資産トランザクションにおいて非常に重要な役割を果たすことがわかる。資産が複数の人によって共有される場合、資産は複数の人の利益を含む。資産共有当事者が共同で資産トランザクションに参加する必要がある場合、本明細書の1つまたは複数の実装形態は、ブロックチェーン内の共有資産の操作セキュリティを効果的に保証することができる。
【0018】
具体的には、ウォレットアプリケーションのブロックチェーントランザクションを実装形態シナリオとして使用することによって、本明細書において本解決策の実装形態プロセスを説明する。ウォレットはクライアント側またはサーバ側のアプリケーションを含むことができ、ブロックチェーン資産トランザクションを実装するために、通常、公開鍵アドレスを計算するための対称鍵を生成することができる。新しい資産が確認されるか、資産共有当事者が変更されると、ウォレットは資産共有当事者の数に基づいて自動的に子鍵を計算および生成することができる。生成される子鍵の数は、資産共有当事者の数と同じである。これらの子鍵は対応する資産共有当事者に送信できるため、各資産共有当事者は1つの子鍵を所有する。資産トランザクションに元の秘密鍵が必要な場合、これらの子鍵を使用することによって元の秘密鍵を復元することができ、復元された秘密鍵を使用して署名によってトランザクションが開始される。
【0019】
確かに、本明細書の実装形態では、共有オブジェクトは、必ずしも以前の電子マネー資産に限定されず、元の鍵は非対称暗号化の秘密鍵に限定されない。共有オブジェクトはまた、別の実装形態シナリオにおける対応する種類のサービスデータ、たとえば請求データ、ユーザデータ、公開情報などを含み得る。元の鍵はまた、データ暗号化のための他のデータ情報、たとえば、文字列、または画像、音声、および指紋などの鍵データをも含み得る。以下の実装形態では、元の鍵に基づいて複数の子鍵を生成し、受信した子鍵を使用することによって元の鍵を復元するプロセスもまた、計算を通じてブロックチェーン内のマイナーによって完了することができる。マイナーは通常、十分なコンピューティング機能を備えたノードである。マイナーは、収集された複数のトランザクションレコードをまとめて、マイナーの鍵を使用することによって暗号化のための様々なパディングビットを試行し、ブロックをネットワーク全体にブロードキャストして、他のノードがブロックチェーン内で新しいブロックが生成されたことを学習できるようにすることができる。
【0020】
具体的には、実装形態が
図1に示される。本明細書で提供される鍵データの処理方法の実装形態では、本方法は以下のステップを含むことができる。
【0021】
S0.ブロックチェーン内の共有オブジェクトの元の鍵を取得し、元の鍵を共有する当事者の数を決定する。
【0022】
S2.元の鍵を共有する当事者と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理し、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される。
【0023】
本実装形態では、計算装置は、資産に対応する元の鍵に関する情報、および資産を共有する当事者の数に関する情報を取得することができる。次いで、資産を共有する当事者の数と同じ数の子鍵を生成するために、事前に選択または設計されたあらかじめ定められたアルゴリズムを使用することによって元の鍵を計算および処理することができる。本実装形態の実装形態シナリオで説明されている共有オブジェクトは、ウォレットに資産を含むことができる。元の鍵は、ローカルのウォレット(サーバ)によって生成されてもよく、別のウォレット(サーバ)によって送信された受信された元の鍵であってもよい。本実装形態では、元の鍵に基づいて生成された複数の子鍵の各々を使用することによって、トランザクション検証を独立して実行できないか、検証が成功しない。同じ元の鍵に基づいて生成されたすべての子鍵が一緒に収集されると、元の鍵を復元することができる。子鍵が存在しないか、いずれかの子鍵が正しくない場合、元の鍵を復元することができないか、復元された元の鍵が正しくない。
【0024】
たとえば、本実装形態のアプリケーションシナリオでは、ブロックチェーンネットワークは複数のノードを含むことができ、各ノードは公開鍵と秘密鍵を有することができる。ノード内にウォレットアプリケーションがあり、ウォレットが本実装形態における共有オブジェクトであり、ウォレットの秘密鍵が元の鍵であると仮定する。ウォレットの秘密鍵の名前はSであり、ウォレット共有者の数は2である。2つの子鍵:S1とS2は、事前に選択または設計されたアルゴリズムを使用して、秘密鍵Sに基づいて生成することができる。ウォレット内の子鍵S1はトランザクションに署名できないか、署名を正常に検証することができない。同様に、ウォレット内の子鍵S2はトランザクションに署名できないか、署名を正常に検証することができない。しかしながら、元の秘密鍵Sは、子鍵S1と子鍵S2に基づいて復元することができる。元の秘密鍵Sを復元するために、対応する計算を実行することができる。計算は、子鍵を生成するために使用されるあらかじめ定められたアルゴリズム、たとえば、子鍵を生成するためのあらかじめ定められたアルゴリズムとは逆の逆アルゴリズムに基づく。確かに、計算は補間や子鍵相関などの他のアルゴリズムに基づくことができる。元の鍵は、サードパーティの補助データを参照して復元することもできる。
【0025】
さらに、本明細書で提供される方法の別の実装形態では、資産共有当事者の数と同じ数の子鍵が生成された後、対応する資産共有当事者に子鍵を表示することができ、したがって各資産共有当事者が独自の子鍵を取得することができる。次いで、元の鍵を削除することができる。たとえば、元の秘密鍵はウォレット(または、元の秘密鍵を記憶するストレージユニット)から完全に削除することができる。したがって、鍵データのセキュリティをさらに保証し、資産共有当事者が資産トランザクションのために秘密鍵を個人的に使用することを防ぐために、子鍵を有するどの資産共有当事者も元の鍵を記憶しない。具体的には、本明細書における方法の別の実装形態が
図2に示されており、本方法はさらに以下のステップを含むことができる。
【0026】
S4.子鍵を対応するオブジェクト共有当事者に送信する。
【0027】
S6.元の鍵を削除する。
【0028】
図2は、本明細書の別の実装形態による、例示的な方法を示す流れ図である。本実装形態では、公開鍵と秘密鍵を生成した後、ウォレットは、秘密鍵に基づいて共有者の数と同じ数の子鍵を生成することと、子鍵を資産共有当事者に表示することと、秘密鍵を削除することとを行うことができる。特定の実装形態プロセスでは、1つの子鍵が1つの資産共有当事者に送信されるように設定することができる。確かに、この開示は、1つの資産共有当事者が2つ以上の子鍵を持っている状況を除外しない。たとえば、相互に信頼できる資産共有当事者は、互いの子鍵を記憶することができる。
【0029】
ある実装形態では、ウォレットによって子鍵をオブジェクト共有当事者に送信することができる。別の実装形態では、子鍵を生成した後、ウォレットは生成された複数の子鍵を出力し、次いで、別の処理当事者(たとえば、専用の子鍵割振り装置)が子鍵をオブジェクト共有当事者に送信する。生成された子鍵はランダムに選択して送信することもでき、特定のルールに基づいて指定した子鍵を選択して、対応するオブジェクト共有当事者に送信することもできる。
【0030】
以前の実装形態で子鍵を生成するためのあらかじめ定められたアルゴリズムは、複数の実装形態で実装することができる。本明細書の実装形態は、元の鍵を使用して子鍵を生成するためのあらかじめ定められたアルゴリズムを提供する。子鍵を生成するために、ランダムな文字列を使用することによって元の鍵を参照して動作を実行することができる。具体的には、本明細書における方法の実装形態において、あらかじめ定められたアルゴリズムは以下のステップを含むことができる。
【0031】
S20.元の鍵を共有している当事者の数と同じ数の子鍵を生成するために、ランダムに生成された文字列を使用することによって元の鍵に対して動作を実行する。
【0032】
文字列は、数字、文字、記号などを含むことができる。ウォレットは、後で元の鍵を復元するために、これらのランダムに生成された文字列を記憶することができる。ランダムに生成された文字列を使用することによって元の鍵を操作するための特定の方法は、あらかじめ決定することができる。たとえば、固定長の文字列がランダムに生成され、子鍵を生成するために文字列の1つまたは複数の文字が特定のシーケンスで元の鍵に個別に挿入される。文字列の対応するビットの値を元の鍵に追加することもできる。本実装形態では、生成された子鍵のセキュリティをさらに保証し、元の鍵のセキュリティを改善するために、ランダムな文字列を使用することによって元の鍵の子鍵が生成される。
【0033】
本明細書の方法の別の実装形態では、子鍵は、乱数、素数、およびモジュロ演算を使用することによって生成される。詳細は
図3に示されている。
図3は、本明細書の実装形態による、子鍵を生成するプロセスを示す流れ図である。あらかじめ定められたアルゴリズムは、以下のステップを含むことができる。
【0034】
S200.(N+1)の共有当事者がいる場合、N個の乱数Riを生成し、Riはi番目の乱数であり、i∈[1, N]である。
【0035】
S202.素数Pを決定し、素数Pは、少なくとも元の鍵の値Sと乱数Riのいずれかより大きく、Riの範囲は[0, P-1]である。
【0036】
S204.(N+1)個の子鍵を取得するために、(S+R1X+R2X2+R3X3+…+RNXN)が計算された後にPにモジュロ演算を実行し、[1, N+1]からXの値を選択し、N≧1であり、XおよびNは整数である。
【0037】
一般に、ブロックチェーン内で使用される非対称鍵アルゴリズムにおいて生成される秘密鍵の長さは、通常1024ビットまたは2048ビットである。したがって、実装形態シナリオの特定の実装形態プロセスでは、ウォレットは1024ビットまたは2048ビットよりも大きい、知られている素数をあらかじめ記憶することができる。本実装形態では、ウォレットが子鍵を生成するときに、あらかじめ記憶された素数をデータストレージとして使用することができる。秘密鍵の名前がSであると仮定すると、ウォレットは共有者の数に基づいて乱数Riを選択することができる。子鍵の計算条件を満たすために、秘密鍵Sまたは乱数Riの長さよりも大きい長さを有する素数Pを選択することができる。さらに、子鍵を生成するために、(S+R1X+R2X2+R3X3+…+RNXN)を使用することによってPにモジュロ演算を実行することができる。特定の例を以下のように表示することができる。
【0038】
(1)2人が資産を共有する場合、生成される子鍵はそれぞれ次のようになる。子鍵1:(S+R)を使用することによってPにモジュロ演算を実行することによって生成され、子鍵2:(S+2R)を使用することによってPにモジュロ演算を実行することによって生成される。
【0039】
(2)3人が資産を共有する場合、生成される子鍵はそれぞれ次のようになる。(S+R1+R2)を使用することによってPにモジュロ演算を実行することによって生成される子鍵1、(S+2R1+4R2)を使用することによってPにモジュロ演算を実行することによって生成される子鍵2、および(S+3R1+9R2)を使用することによってPにモジュロ演算を実行することによって生成される子鍵3。
【0040】
同様に、(N+1)人が資産を共有する場合、(N+1)個の子鍵が生成される必要があり、(S+R1X+R2X2+R3X3+…+RNXN)を使用することによってPにモジュロ演算を実行することができる。子鍵は、[1, N+1]からXの値を選択することによって、計算を通じて取得することができる。別の例では、4人が資産を共有する場合に前述の方法を使用することによって4つの子鍵を生成するプロセスは次のようになる。(S+R1+R2+R3)を使用することによってPにモジュロ演算を実行することによって生成される子鍵1、(S+2R1+4R2+8R3)を使用することによってPにモジュロ演算を実行することによって生成される子鍵2、(S+3R1+9R2+27R3)を使用することによってPにモジュロ演算を実行することによって生成される子鍵3、および(S+4R1+16R2+64R3)を使用することによってPにモジュロ演算を実行することによって生成される子鍵4。
【0041】
本実装形態で提供される子鍵を計算するためのあらかじめ定められたアルゴリズムによれば、乱数、素数、およびモジュロ演算を組み合わせるあらかじめ定められた方法を使用することによって、元の鍵を共有する当事者の数に基づいて、元の鍵を共有する当事者の数と同じ数の子鍵を自動的に生成することができる。子鍵の生成方法が使用されるため、生成された子鍵の機密性が高まり、子鍵がクラックされるリスクが軽減され、トランザクションがより安全になる。
【0042】
本明細書で提供される方法の別の実装形態では、共有オブジェクトの元の鍵に基づいて複数の対応する子鍵を生成することができ、受信した子鍵に基づいて元の鍵をさらに復元することができる。具体的には、本明細書で提供される方法の別の実装形態では、本方法は以下のステップをさらに含むことができる。
【0043】
S80.入力された子鍵を受信する。
【0044】
S82.子鍵の数が、対応する元の鍵を共有している当事者の数と同じであると決定された場合、対応する元の鍵を取得するために、計算を通じて、あらかじめ定められたアルゴリズムを使用することによって子鍵に基づいて元の鍵を復元する。
【0045】
確かに、本方法は以下のステップをさらに含むことができる。
【0046】
S84:計算を通じた復元後に取得した元の鍵を使用することによって、共有オブジェクトを操作する。
【0047】
図4は、本明細書の別の実装形態による、例示的な方法を示す流れ図である。資産操作に元の鍵が必要な場合、元の鍵の各資産共有当事者は独自の子鍵を入力することができる。子鍵は複数の資産共有当事者に分散されるため、本実装形態では、元の鍵を共有する当事者の数と同じ数の子鍵が受信されると、元の鍵が復元される。たとえば、ウォレットの秘密鍵は、3人のウォレット共有者によってそれぞれ記憶される3つの子鍵を生成する。ウォレットの資金操作が実行される必要がある場合、各ウォレット共有者は独自の子鍵を入力する。現状では、3つの子鍵を受信すると、ウォレットは3つの子鍵を使用することによってウォレットの秘密鍵を復元することができる。ウォレットが1つまたは2つの子鍵のみを受信する場合、または3つを超える子鍵を受信する場合、子鍵の数がウォレット共有者の数とは異なり、元の鍵を復元することができないことを示すことができる。
【0048】
元の鍵は、子鍵を生成するためのアルゴリズムに対応するアルゴリズムを参照するか、特定の方法を使用することによって子鍵の特性を参照して、子鍵に基づいて復元することができる。たとえば、乱数、素数、およびモジュロ演算を使用することによって子鍵を生成するための実装形態では、本明細書の元の鍵を復元する1つまたは複数のプロセスにおいて、ラグランジュ方程式を使用することによって元の秘密鍵Sを復元することができる。
【0049】
復元された元の鍵が取得された後、鍵を使用することによって対応する共有オブジェクトを操作することができる。たとえば、ウォレットによって承認されたユーザによってトランザクションが生成されたことを確認するために、トランザクションに署名することができる。さらに、ウォレットは、署名されたトランザクションに関する情報をブロックチェーンネットワークにブロードキャストし、その情報を新しいブロックに記憶することができる。
【0050】
以前の実装形態は、ランダムな文字列または乱数、素数などを使用することによって、子鍵を生成するためのあらかじめ定められたアルゴリズムを提供している。本明細書の別の実装形態は、元の鍵に基づいて対応する数の子鍵を生成する別の実装形態を提供する。本実装形態では、元の鍵と、任意の時間に生成される乱数の各々に対して、排他的OR計算を実行することができ、乱数は同じ長さを有する。排他的OR計算の後に取得された値とこれらの乱数は、子鍵として使用される。具体的には、本明細書で提供される方法の別の実装形態では、あらかじめ定められたアルゴリズムは以下のステップを含むことができる。
【0051】
S210.(N-1)個の乱数を生成し、乱数のバイナリ長は元の鍵のバイナリ長と同じであり、Nは元の鍵を共有する当事者の数である。
【0052】
S212.排他的OR子鍵を取得するために、元の鍵と(N-1)個の乱数の各々に対してビット単位の排他的OR演算を実行する。
【0053】
S214.排他的OR子鍵と(N-1) 個の乱数とをN個の出力された子鍵として使用する。
【0054】
本実装形態では、共有オブジェクトが事前に(N-1)個の乱数を生成できる場合、乱数の長さは元の鍵の長さと同じ、たとえば、1024ビットまたは2048ビットの2進数であり得る。値を取得するために、元の鍵と(N-1)個の乱数の各々に対して排他的OR計算を実行することができる。値と以前に生成された(N-1)個の乱数が子鍵として使用され、1つの子鍵が各オブジェクト共有当事者に割り振られる。
【0055】
元の鍵と乱数の各々に対してビット単位の排他的OR演算を実行するための処理方法の具体例が
図5に示される。
図5は、本明細書による、あらかじめ定められたアルゴリズムに基づいて子鍵を生成する別のプロセスを示す概略図である。元の鍵Sの長さがバイナリシステムで1024ビットであり、元の鍵を共有する当事者の数が4であると仮定する。したがって、1024ビットの3つのランダムな2進数を最初に生成することができる。次いで、R1を取得するために元の鍵Sと第1の乱数に対して排他的OR演算を実行することができ、次いで、R2を取得するためにR1と2番目の乱数に対して排他的OR演算が実行される。最終的に、R3を取得するためにR2と第3の乱数に対して排他的OR演算が実行され、R3は、本実装形態では排他的OR子鍵である。R3と1024ビットの3つのランダムな2進数が、計算を通じて取得された4つの子鍵として使用される。元の鍵が復元される必要がある場合、本実装形態で排他的OR演算を実行することによって取得された子鍵に対して逆の排他的OR演算を実行することができる。暗号化中に排他的OR演算が使用され、復号化中に排他的OR演算の逆演算が実行される。そのため、元の鍵を取得することができる。本実装形態で提供される排他的OR演算方法は、復号化中にすべての正しい子鍵が収集される必要があることを保証するために使用され、子鍵に対して排他的OR演算を実行することによって元の鍵を迅速に取得することができる。そのため、鍵の復元が簡単になり、資産トランザクションのセキュリティを保証しながら、復号化中に元の鍵を復元する処理速度が改善する。
【0056】
本明細書の実装形態は漸進的な方法で説明されており、実装形態の同じまたは同様の部分については、これらの実装形態を参照することができ、各実装形態は他の実装形態との違いに焦点を当てている。詳細については、以前の関連処理および関連実装形態の説明を参照することができる。詳細はここでは説明しない。
【0057】
本明細書の特定の実装形態は上述されている。他の実装形態は、添付の特許請求の範囲内に含まれる。状況によっては、特許請求の範囲に記録されたアクションまたはステップは、本実装形態とは異なるシーケンスで実行することができ、依然として望ましい結果を達成することができる。さらに、添付の図面に描かれているプロセスは、所望の結果を達成するために特定のシーケンスまたは連続したシーケンスを必ずしも必要としない。いくつかの実装形態では、マルチタスク処理と並列処理が実行可能または有利になる場合がある。
【0058】
本明細書の1つまたは複数の実装形態において提供される鍵データの処理方法によれば、元の鍵は、資産またはデータなどの共有オブジェクトの元の鍵を共有する当事者の数に基づいて複数の子鍵に分割することができ、生成された子鍵は対応する資産共有当事者に表示することができる。共有オブジェクトを操作する必要がある場合、各資産共有当事者は子鍵を提供することができる。次いで、子鍵を使用することによって元の鍵を復元することができ、署名や資産トランザクションなどの対応する操作を実行することができる。そのため、本明細書の実装形態では、ブロックチェーン内の資産が複数の人によって共有されている場合、ブロックチェーン内の共有資産トランザクションのセキュリティを保証するために、他人が知らないうちに誰かが資産を操作することを効果的に防止することができる。
【0059】
前述のユーザの鍵データの処理方法に基づいて、本明細書の1つまたは複数の実装形態は、鍵データ処理装置をさらに提供する。本装置は、必要な実装ハードウェアを備え、本明細書の実装形態における方法のシステム(分散システムを含む)、ソフトウェア(アプリケーション)、モジュール、コンポーネント、サーバ、クライアントなどを使用する装置を含むことができる。同じ革新的な概念に基づいて、本明細書の1つまたは複数の実装形態において提供される装置を以下の実装形態において説明する。本装置の問題解決実装形態解決策は、本方法の問題解決実装形態解決策と同様であるため、本明細書の実装形態における装置の特定の実装形態については、以前の方法の実装形態を参照することができる。説明の繰り返しはない。以下の実装形態において使用される「ユニット」または「モジュール」という用語は、あらかじめ定められた機能のソフトウェアおよび/またはハードウェアの組合せを実装することができる。以下の実装形態において説明される装置は、ソフトウェアによって実装されることが好ましいが、ハードウェアまたはソフトウェアとハードウェアの組合せの実装形態が考えられる。具体的には、
図6は、本明細書の実装形態による、鍵データ処理装置のモジュールを示す概略構造図である。
図6に示されるように、本装置は、元の鍵情報取得モジュール101と、子鍵生成モジュール102とを含むことができる。元の鍵情報取得モジュール101は、ブロックチェーン内の共有オブジェクトの元の鍵を取得し、元の鍵を共有する当事者の数を決定するように構成される。子鍵生成モジュール102は、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理するように構成され、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される。
【0060】
本装施形態において提供される鍵データ処理装置によれば、元の鍵は、資産またはデータなどの共有オブジェクトの元の鍵を共有する当事者の数に基づいて複数の子鍵に分割することができる。各共有者は1つの子鍵を所有するため、資産が複数の人によって共有される場合、資産トランザクションには複数の人が共同で参加する必要がある。そのため、資産トランザクションのセキュリティを保証するために、資産共有者がブロックチェーン内のトランザクションデータを個人的に操作することを効果的に防ぐことができる。
【0061】
図7は、本明細書の別の実装による、鍵データ処理装置のモジュールを示す概略構造図である。本装置の別の実装形態では、本装置は、子鍵を対応するオブジェクト共有当事者に送信するように構成された子鍵出力モジュール103と、元の鍵を削除するように構成された元の鍵削除モジュール104とをさらに含むことができる。
【0062】
本実装形態では、元の鍵に基づいて生成された複数の子鍵の各々を使用することによって、トランザクション検証を独立して実行できないか、検証が成功しない。同じ元の鍵によって生成されたすべての子鍵が一緒に収集されると、元の鍵を復元することができる。
【0063】
資産共有当事者の数と同じ数の子鍵が生成された後、対応する資産共有当事者に子鍵を表示することができ、したがって各資産共有当事者が子鍵を取得することができる。次いで、元の鍵を削除することができる。たとえば、元の秘密鍵はウォレットから完全に削除される。したがって、鍵データのセキュリティをさらに保証し、資産共有当事者が資産トランザクションのために秘密鍵を個人的に使用することを防ぐために、子鍵を有するどの資産共有当事者も元の鍵を記憶しない。
【0064】
本装置の別の実装形態では、子鍵生成モジュール102において使用されるあらかじめ定められたアルゴリズムは、元の鍵を共有している当事者の数と同じ数の子鍵を生成するために、ランダムに生成された文字列を使用することによって元の鍵に対して動作を実行するステップを含むことができる。
【0065】
本明細書の装置の別の実装形態は、乱数、素数、およびモジュロ演算を使用することによって子鍵を生成する実装形態を提供する。
図8は、本明細書の実装形態による、装置内の子鍵生成モジュールを示す概略構造図である。
図8に示されるように、子鍵生成モジュール102は、乱数生成ユニット1021と、素数選択ユニット1022と、子鍵計算ユニット1023とを含むことができる。乱数生成ユニット1021は、(N+1)の共有当事者がいる場合、N個の乱数Riを生成するように構成され、Riはi番目の乱数であり、i∈[1, N]である。素数選択ユニット1022は、素数Pを決定するように構成され、素数Pは、少なくとも元の鍵の値Sと乱数Riのいずれかより大きく、Riの範囲は[0, P-1]である。子鍵計算ユニット1023は、(N+1)個の子鍵を取得するために、(S+R
1X+R
2X
2+R
3X
3+…+R
NX
N)が計算された後にPにモジュロ演算を実行し、[1, N+1]からXの値を選択するように構成され、N≧1であり、XおよびNは整数である。
【0066】
本実装形態で提供される子鍵を計算するためのあらかじめ定められたアルゴリズムと、元の鍵を共有する当事者の数に基づいて、乱数、素数、およびモジュロ演算を組み合わせるあらかじめ定められた方法を使用することによって、元の鍵を共有する当事者の数と同じ数の子鍵を自動的に生成することができる。上述の子鍵の生成方法を使用するため、子鍵をより安全に生成することができ、子鍵がクラックされるリスクが軽減され、トランザクションがより安全になる。
【0067】
本明細書で提供される装置の別の実装形態では、共有オブジェクトの元の鍵に基づいて複数の対応する子鍵を生成することができ、受信した子鍵に基づいて元の鍵をさらに復元することができる。
図9は、本明細書の別の実装形態による、鍵データ処理装置を示す概略構造図である。
図9に示されるように、本装置は、受信モジュール1051と、元の鍵復元モジュール1052とをさらに含むことができる。受信モジュール1051は、入力された子鍵を受信するように構成される。元の鍵復元モジュール1052は、子鍵の数が、対応する元の鍵を共有している当事者の数と同じであると決定された場合、対応する元の鍵を取得するために、計算を通じて、あらかじめ定められたアルゴリズムを使用することによって子鍵に基づいて元の鍵を復元するように構成される。
【0068】
図10は、本明細書の別の実装形態による、装置内の子鍵生成モジュールを示す概略構造図である。
図10に示されるように、子鍵生成モジュール102は、乱数生成ユニット20と、排他的OR計算ユニット21と、子鍵決定ユニット22とを含むことができる。乱数生成ユニット20は、(N-1) 個の乱数を生成するように構成され、乱数のバイナリ長は元の鍵のバイナリ長と同じであり、Nは元の鍵を共有する当事者の数である。排他的OR計算ユニット21は、排他的OR子鍵を取得するために、元の鍵と(N-1)個の乱数の各々に対してビット単位の排他的OR演算を実行するように構成される。子鍵決定ユニット22は、排他的OR子鍵と(N-1) 個の乱数をN個の出力された子鍵として使用するように構成される。
【0069】
本実装形態では、値を取得するために、元の鍵と、任意の時間に生成された同じ長さの乱数の各々とに対して排他的OR計算を実行することができ、次いで、排他的OR計算の後に取得された値とこれらの乱数とが子鍵として使用される。
【0070】
本実装形態で提供される排他的OR演算方法は、復号化中にすべての正しい子鍵が収集される必要があることを保証するために使用され、子鍵に対して排他的OR演算を実行することによって元の鍵を迅速に取得することができる。そのため、鍵の復元が簡単になり、資産トランザクションのセキュリティを保証しながら、復号化中に元の鍵を復元する処理速度が大幅に改善する。
【0071】
以前の装置は、方法の実装形態の説明に基づいて別の実装形態をさらに含むことができることに留意する価値がある。特定の実装形態については、関連する方法実装形態における説明を参照することができ、詳細はここでは説明しない。
【0072】
以前の装置の実装形態では、実際の製品アプリケーションでは、実装環境またはデータ処理要件に基づいて、各モジュールまたはサブモジュールを結合または分割することができる。本明細書の1つまたは複数の実装形態が実装される場合、各モジュールの機能を1つまたは複数のソフトウェアおよび/またはハードウェアにおいて実装することもでき、同じ機能を実装するモジュールを、複数のサブモジュールまたはサブユニットの組合せによって実装することもできる。説明された装置の実装形態は単なる例である。たとえば、ユニット分割は単なる論理的な機能分割であり、実際の実装形態においては他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントを組み合わせたり、別のシステムに統合したり、一部の機能を無視したり実行しないことができる。
【0073】
図11は、本明細書の実装形態による、本明細書の一実施形態による、ウォレットアプリケーションを使用するモジュールを示す概略構造図である。
図11に示されるように、ウォレットの公開鍵および秘密鍵生成コンポーネントは、ウォレットの公開鍵および秘密鍵を生成することができる。素数記憶コンポーネントは、長さが秘密鍵の長さより大きい複数の素数を事前に記憶する。乱数生成コンポーネントは、子鍵が生成される必要があるときに、対応する数の乱数を生成することができる。子鍵計算ユニットは、秘密鍵に対応する複数の子鍵を生成し、子鍵を出力することができる。出力された子鍵は、対応するウォレット共有当事者に割り振ることができる。資産トランザクションがウォレットで実行されると、各共有当事者は子鍵を入力し、秘密鍵復元計算コンポーネントは、元の鍵を復元するための対応するアルゴリズムに基づいて元の鍵を計算し、元の鍵を使用することによってトランザクション上で署名、検証などを実行することができる。トランザクションが生成された後、トランザクションはブロックチェーンネットワーク全体にブロードキャストすることができる。
【0074】
本明細書の1つまたは複数の実装形態において提供される鍵データ処理装置によれば、元の鍵は、資産またはデータなどの共有オブジェクトの元の鍵を共有する当事者の数に基づいて複数の子鍵に分割することができ、生成された子鍵は対応する資産共有当事者に表示することができる。共有オブジェクトを操作する必要がある場合、各資産共有当事者は子鍵を提供することができる。次いで、子鍵を使用することによって元の鍵を復元することができ、署名や資産トランザクションなどの対応する操作を実行することができる。そのため、本明細書の実装形態では、ブロックチェーン内の資産が複数の人によって共有されている場合、ブロックチェーン内の共有資産トランザクションのセキュリティを保証するために、他人が知らないうちに誰かが資産を操作することを効果的に防止することができる。
【0075】
本明細書の以前の実装形態における方法または装置は、コンピュータプログラムを使用することによって、サービスロジックを実装し、ストレージ媒体にサービスロジックを記録することができ、ストレージ媒体は、本明細書の本実装形態で説明されている解決策の効果を実装するために、コンピュータによって読み取られ、実行することができる。ストレージ媒体は、情報を記憶するための物理的装置を含むことができ、これは一般にデジタル化され、次いで、電気、磁気、または光学などの媒体に記憶される。ストレージ媒体は、電気エネルギー方式で情報を記憶するための装置、たとえば、RAMまたはROMなどのストレージデバイス、ハードディスク、フロッピーディスク、磁気テープ、磁気コアメモリ、磁気バブルメモリ、またはUSBフラッシュドライブなどの磁気エネルギー方式で情報を記憶するための装置、およびCDまたはDVDなどの光学的方式で情報を記憶するための装置を含むことができる。確かに、量子メモリやグラフェンメモリなどの、別の形式の可読ストレージ媒体がある。
【0076】
本明細書の実装形態で提供されるユーザの鍵データの処理方法または装置は、たとえば、Windowsオペレーティングシステムのc++言語を使用することによってサーバ上で実装される、対応するプログラム命令を実行することによって、コンピュータにおけるプロセッサによって、Linux(登録商標)システムに基づくサーバ上で、またはAndroid、iOSシステムプログラミング言語を使用することによってサーバシステム端末上で実装することもでき、量子コンピュータに基づく処理ロジックを使用することによって実装することもできる。プログラム命令は、ストレージ媒体に記憶することができる。本明細書で提供される鍵データ処理装置の別の実装形態では、プロセッサと、プロセッサによって実行可能な命令を記憶するように構成されたメモリとを含むことができ、命令を実行すると、プロセッサは、ブロックチェーン内の共有オブジェクトの元の鍵を取得することと、元の鍵を共有する当事者の数を決定することと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理することであって、子鍵は、同じ数の子鍵が取得されたときに元の鍵を復元するために使用される、処理することとの動作を実装する。
【0077】
以前の装置は、方法の実装形態の説明に基づいて別の実装形態をさらに含むことができることに留意する価値がある。たとえば、プロセッサは元の鍵のデータを削除し、乱数、素数、およびモジュロ演算を使用することによって子鍵を生成し、ラグランジュ方程式を使用することによって元の鍵を復元し、排他的OR演算を実行することによって子鍵を生成し、逆の動作を実行することによって元の鍵を復元する。特定の実装形態については、関連する方法実装形態の説明を参照することができ、詳細はここでは説明しない。
【0078】
前述の方法または装置は、鍵データ処理のための複数のサーバ、たとえば、ウォレットのデーモンサーバ、ブロックチェーン内のマイナーノードのサーバ、およびブロックチェーン内のノードのサービスサーバにおいて使用することができる。サーバは、別のサーバを含むこともでき、分散システム内のサーバまたはサーバクラスタのアーキテクチャパターンを含むこともできる。具体的には、本明細書は、
図12に示されるようなサーバを提供し、サーバは、少なくとも1つのプロセッサと、プロセッサによって実行可能な命令を記憶するように構成されたメモリとを含むことができる。命令を実行すると、プロセッサは、ブロックチェーン内の共有オブジェクトの元の鍵を取得することと、元の鍵を共有する当事者の数を決定することと、元の鍵を共有する当事者の数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって元の鍵を処理すること、との動作を実装する。取得した子鍵の数が元の鍵を共有している当事者の数と同じである場合、元の鍵を復元するために子鍵を使用することができる。
【0079】
以前のサーバは、方法または装置の実装形態の説明に基づいて別の実装形態をさらに含むことができることに留意する価値がある。たとえば、プロセッサは元の鍵のデータを削除し、乱数、素数、およびモジュロ演算を使用することによって子鍵を生成し、ラグランジュ式を使用することによって元の鍵を復元し、排他的OR演算を実行することによって子鍵を生成し、逆の動作を実行することによって元の鍵を復元する。特定の実装形態については、関連する方法実装形態または装置実装形態の説明を参照することができ、詳細はここでは説明しない。
【0080】
本明細書の実装形態はすべて漸進的な方法で説明されており、実装形態の同じまたは同様の部分については、これらの実装形態を参照することができ、各実装形態は他の実装形態との違いに焦点を当てている。特に、ハードウェアとプログラムの実装形態は基本的に方法の実装形態と似ているため、簡単に説明され、関連する部分については、方法の実装形態の部分的な説明を参照することができる。
【0081】
本明細書の特定の実装形態は上述されている。他の実装形態は、添付の特許請求の範囲内に含まれる。状況によっては、特許請求の範囲に記録されたアクションまたはステップは、本実装形態とは異なるシーケンスで実行することができ、依然として望ましい結果を達成することができる。さらに、添付の図面に描かれているプロセスは、所望の結果を達成するために特定のシーケンスまたは連続したシーケンスを必ずしも必要としない。いくつかの実装形態では、マルチタスク処理と並列処理が実行可能または有利になる場合がある。
【0082】
本明細書の1つまたは複数の実装形態において提供される鍵データの処理方法および装置、ならびにサーバによれば、元の鍵は、資産またはデータなどの共有オブジェクトの元の鍵を共有する当事者の数に基づいて複数の子鍵に分割することができ、生成された子鍵は対応する資産共有当事者に表示することができる。共有オブジェクトを操作する必要がある場合、各資産共有当事者は子鍵を提供することができる。次いで、子鍵を使用することによって元の鍵を復元することができ、署名や資産トランザクションなどの対応する操作を実行することができる。そのため、本明細書の実装形態では、ブロックチェーン内の資産が複数の人によって共有されている場合、ブロックチェーン内の共有資産トランザクションのセキュリティを保証するために、他人が知らないうちに誰かが資産を操作することを効果的に防止することができる。
【0083】
本明細書の実装形態の内容は、たとえば、乱数、素数、およびモジュロ演算を使用することによって子鍵を生成し、排他的OR演算を使用することによって子鍵を生成し、ラグランジュ方程式を使用することによって元の鍵を復元し、子鍵の割振り後に元の秘密鍵を削除する、データの生成、定義、取得、相互作用、計算、決定などを説明する。しかしながら、本明細書の実装形態は、業界通信標準、ブロックチェーンデータルール、標準的なコンピューターデータ処理およびストレージルール、または本明細書の1つまたは複数の実装形態で説明されている状況を満たすことに限定されない。いくつかの業界標準を使用することによって、または自己定義の方法で、あるいは説明された実装形態に基づいて取得されるわずかに修正された実装形態解決策は、説明された実装形態と同じ、同等、または類似の実装効果、あるいは変換後に取得される期待される実装効果も実装することができる。修正または変形されたデータの取得、記憶、決定、処理などの実装形態は、依然として本明細書の実装形態のオプションの実装形態解決策の範囲内に収まることができる。
【0084】
本明細書の特定の実装形態は上述されている。他の実装形態は、添付の特許請求の範囲内に含まれる。状況によっては、特許請求の範囲に記録されたアクションまたはステップは、本実装形態とは異なるシーケンスで実行することができ、依然として望ましい結果を達成することができる。さらに、添付の図面に描かれているプロセスは、所望の結果を達成するために特定のシーケンスまたは連続したシーケンスを必ずしも必要としない。いくつかの実装形態では、マルチタスク処理と並列処理が実行可能または有利になる場合がある。
【0085】
1990年代には、技術の改善がハードウェアの改善(たとえば、ダイオード、トランジスタ、スイッチなどの回路構造の改善)なのか、ソフトウェアの改善(方法手順の改善)なのかを明確に区別することができる。しかしながら、技術の発展に伴い、現在の多くの方法手順の改善は、ハードウェア回路構造の直接的な改善とみなすことができる。設計者は通常、対応するハードウェア回路構造を取得するために、改善された方法手順をハードウェア回路にプログラムする。したがって、ハードウェアエンティティモジュールは方法手順を改善することができる。たとえば、プログラマブルロジックデバイス(PLD)(たとえば、フィールドプログラマブルゲートアレイ(FPGA))はそのような集積回路であり、プログラマブルロジックデバイスの論理機能はデバイスプログラミングを通じてユーザによって決定される。設計者は、チップメーカーに特定用途向け集積回路チップの設計と製造を依頼することなしに、デジタルシステムをPLDに「統合」するためにプログラミングを実行する。さらに、プログラミングは主に、集積回路チップを手動で作成する代わりに「ロジックコンパイラ」ソフトウェアを修正することによって実装される。これは、プログラムを開発および構成するために使用されるソフトウェアコンパイラに似ている。しかしながら、コンパイル前に取得された元のコードもまた、特定のプログラミング言語で記述されており、ハードウェア記述言語(HDL)と呼ばれる。しかしながら、高度なブール表現言語(ABEL)、アルテラハードウェア記述言語(AHDL)、Confluence、コーネル大学プログラミング言語(CUPL)、HDCal、Java(登録商標)ハードウェア記述言語(JHDL)、Lava、Lola、MyHDL、PALASM、およびRubyハードウェア記述言語(RHDL)などの、様々なHDLがある。現在、非常に高速な集積回路ハードウェア記述言語(VHDL)およびVerilogが最も一般的である。また、当業者は、説明された、いくつかのハードウェア記述言語を使用することによって、方法手順で実行される必要があるのは論理プログラミングのみであり、論理方法の手順を実装するハードウェア回路を簡単に取得できるように、いくつかのハードウェア記述言語が集積回路にプログラムされることを理解するべきであ
る。
【0086】
コントローラは、任意の適切な方法で実装することができる。コントローラは、たとえば、マイクロプロセッサまたはプロセッサを使用することができ、コンピュータ可読媒体、論理ゲート、スイッチ、特定用途向け集積回路(ASIC)、プログラマブル論理コントローラ、および(マイクロ)プロセッサによって実行することができるコンピュータ可読プログラムコード(たとえば、ソフトウェアまたはハードウェア)の組込みマイクロコントローラの形態を記憶することができる。コントローラは、ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20、Silicon Labs C8051F320などのマイクロコントローラを含むが、これらに限定されない。メモリコントローラは、メモリの制御ロジックの一部として実装することもできる。当業者はまた、コントローラを純粋なコンピュータ可読プログラムコードの方法で実装することに加えて、コントローラは、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、および組込みマイクロコントローラなどの形で同じ機能を実装するため、方法ステップを使用することによって論理プログラミングを完全に実行できることがわかる。したがって、コントローラはハードウェアコンポーネントとみなすことができ、コントローラ内の様々な機能を実装するための装置もハードウェアコンポーネント内の構造とみなすことができる。あるいは、様々な機能を実装するように構成された装置は、方法を実装することができるソフトウェアモジュールまたはハードウェアコンポーネント内の構造とみなすことができる。
【0087】
説明された実装形態において説明されたシステム、装置、モジュール、またはユニットは、コンピュータチップまたはエンティティによって具体的に実装するか、機能を備えた製品によって実装することができる。典型的な実装デバイスはコンピュータである。具体的には、コンピュータは、たとえば、パーソナルコンピュータ、ラップトップコンピュータ、セルラー電話、カメラ付き携帯電話、スマートフォン、携帯情報端末、メディアプレーヤ、ナビゲーションデバイス、電子メールデバイス、ゲーム機、タブレットコンピュータ、またはウェアラブルデバイス、あるいはこれらのデバイスの組合せであり得る。
【0088】
本明細書の1つまたは複数の実装形態は、実装形態またはフローチャートに従って方法の動作ステップを提供するが、従来のまたは非創造的な手段は、より多数またはより少数の動作ステップを含むことができる。本実装形態において列挙されるステップのシーケンスは、複数のステップ実行シーケンスのうちの1つにすぎず、一意の実行シーケンスを表すものではない。装置または端末製品の実際の実行では、実行は、実装形態または添付の図面に示される方法シーケンスに基づいて実行するか、並列に実行することができる(たとえば、並列プロセッサまたはマルチスレッド処理環境、あるいは分散データ処理環境において)。「含む(include)」、「含む(contain)」という用語、またはそれらの任意の他の変形は、非排他的な包含を網羅することを意図しているため、一連の要素を含むプロセス、方法、物品、またはデバイスは、これらの要素だけではなく、明示的にリストされていない他の要素も含み、あるいはそのようなプロセス、方法、物品、またはデバイスに固有の要素もさらに含む。「...を含む(「includes a...」)」が前にある要素は、それ以上の制約がなければ、その要素を含むプロセス、方法、物品、またはデバイスに追加の同一の要素が存在することを排除しない。
【0089】
説明を簡単にするために、説明された装置は、機能を様々なユニットに分割することによって説明される。確かに、本明細書の1つまたは複数の実装形態が実装される場合、各モジュールの機能を1つまたは複数のソフトウェアおよび/またはハードウェアにおいて実装することもでき、同じ機能を実装するモジュールを、複数のサブモジュールまたはサブユニットの組合せによって実装することもできる。説明された装置の実装形態は単なる例である。たとえば、ユニット分割は単なる論理的な機能分割であり、実際の実装形態においては他の分割であってもよい。たとえば、複数のユニットまたはコンポーネントを組み合わせたり、別のシステムに統合したり、一部の機能を無視したり実行しないことができる。さらに、表示または説明された相互結合または直接結合、あるいは通信接続は、いくつかのインターフェースを使用することによって実装することができる。装置間またはユニット間の間接的な結合または通信接続は、電子的、機械的、または他の形式で実装することができる。
【0090】
当業者はまた、コントローラを純粋なコンピュータ可読プログラムコードの方法で実装することに加えて、コントローラは、論理ゲート、スイッチ、特定用途向け集積回路、プログラマブル論理コントローラ、および組込みマイクロコントローラなどの形で同じ機能を実装するため、方法ステップを使用することによって論理プログラミングを完全に実行できることがわかる。したがって、コントローラはハードウェアコンポーネントとみなすことができ、コントローラ内の様々な機能を実装するための装置もハードウェアコンポーネント内の構造とみなすことができる。あるいは、様々な機能を実装するように構成された装置は、方法を実装することができるソフトウェアモジュールまたはハードウェアコンポーネント内の構造とみなすことができる。
【0091】
本開示は、本開示の実装形態による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。フローチャートおよび/またはブロック図内の各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図内のプロセスおよび/またはブロックの組合せを実装するために、コンピュータプログラム命令を使用することができることを理解されたい。これらのコンピュータプログラム命令は、コンピュータまたは任意の他のプログラムマブルデータ処理デバイスのプロセッサによって実行される命令が、フローチャート内の1つまたは複数のプロセスにおいて、あるいはブロック図内の1つまたは複数のブロックにおいて、特定の機能を実装するための装置を生成するように、汎用コンピュータ、専用コンピュータ、組込みプロセッサ、または機械を生成するための任意の他のプログラマブルデータ処理デバイスのプロセッサに提供される。
【0092】
これらのコンピュータプログラムの命令は、コンピュータ可読メモリに記憶された命令が、命令装置を含むアーティファクトを生成するように、コンピュータまたは任意の他のプログラマブルデータ処理デバイスに特定の方法で動作するように指示することができるコンピュータ可読メモリに記憶することができる。命令装置は、フローチャート内の1つまたは複数のプロセスにおいて、および/またはブロック図内の1つまたは複数のブロックにおいて、特定の機能を実装する。
【0093】
コンピュータまたは別のプログラムマブルデバイス上で一連の動作およびステップを実行し、それによってコンピュータ実装処理を生成するように、これらのコンピュータプログラム命令をコンピュータまたは別のプログラマブルデータ処理装置にロードすることができる。したがって、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート内の1つまたは複数のプロセスにおいて、あるいはブロック図内の1つまたは複数のブロックにおいて特定の機能を実装するためのステップを提供する。
【0094】
典型的な構成では、コンピューティングデバイスは1つまたは複数のプロセッサ(CPU)、入力/出力インターフェース、ネットワークインターフェース、およびメモリを含む。
【0095】
メモリは、揮発性メモリ、ランダムアクセスメモリ(RAM)、および/あるいは読取り専用メモリ(ROM)またはフラッシュメモリ(フラッシュRAM)などのコンピュータ可読媒体内の不揮発性メモリなどの形態を含むことができる。メモリは、コンピュータ可読媒体の一例である。
【0096】
コンピュータ可読媒体は、揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体を含み、任意の方法または技術を使用することによって情報を記憶することができる。情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータである。コンピュータストレージ媒体は、これらに限定されないが、相変化ランダムアクセスメモリ(PRAM)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別の種類のランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的に消去可能なプログラマブル読取り専用メモリ(EEPROM)、フラッシュメモリまたは別のメモリ技術、コンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)または別の光学ストレージ、磁気テープ、磁気ディスクストレージ、別の磁気ストレージデバイス、あるいは任意の他の非伝送媒体を含む。コンピュータストレージ媒体は、コンピューティングデバイスによってアクセスすることができる情報を記憶するために使用することができる。本明細書に記載されるように、コンピュータ可読媒体は、たとえば、変調されたデータ信号および搬送波などの一時的な媒体を含まない。
【0097】
当業者は、本明細書の1つまたは複数の実装形態が、方法、システム、またはコンピュータプログラム製品として提供され得ることを理解するべきである。したがって、本明細書の1つまたは複数の実装形態は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、またはソフトウェアとハードウェアの組合せによる実装形態の形式を使用することができる。さらに、本明細書の1つまたは複数の実装形態は、コンピュータ使用可能プログラムコードを含む、1つまたは複数のコンピュータ使用可能ストレージ媒体(ディスクメモリ、CD-ROM、光学メモリを含むが、これらに限定されない)に実装されるコンピュータプログラム製品の形式を使用することができる。
【0098】
本明細書の1つまたは複数の実装形態は、プログラムモジュールなどのコンピュータによって実行されるコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、プログラムモジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。本明細書の1つまたは複数の実装形態はまた、分散コンピューティング環境において実施することができる。これらの分散コンピューティング環境において、タスクは通信ネットワークを使用することによって接続されたリモート処理デバイスによって実行される。分散コンピューティング環境において、プログラムモジュールは、ストレージデバイスを含むローカルおよびリモートのコンピュータストレージ媒体に配置することができる。
【0099】
本明細書の実装形態はすべて漸進的な方法で説明されており、実装形態の同じまたは同様の部分については、これらの実装形態を参照することができ、各実装形態は他の実装形態との違いに焦点を当てている。特に、システムの実装形態は基本的に方法の実装形態と似ているため、簡単に説明され、関連する部分については、方法の実装形態の部分的な説明を参照することができる。本明細書の説明において、「実装形態」、「いくつかの実装形態」、「例」、「特定の例」、および「いくつかの例」などの参照用語に関する説明は、実装形態または例を参照して説明した特定の機能、構造、材料、または特性が、本明細書の少なくとも1つの実装形態または例に含まれることを意味する。本明細書において、用語の前の例の表現は、必ずしも同じ実装形態または例に関するものではない。さらに、説明された特定の機能、構造、材料、または特性を、実装形態または例のうちの任意の1つまたは複数において適切な方法で組み合わせることができる。さらに、当業者は、互いに矛盾しない限り、本明細書に記載される異なる実装形態または例の、異なる実装形態または例および特性を統合または組み合わせることができる。
【0100】
前述の説明は、本明細書の1つまたは複数の実装形態の単なる実装形態であり、本明細書の1つまたは複数の実装形態を制限することが意図されるものではない。当業者にとって、本明細書の1つまたは複数の実装形態は、様々な修正および変更を有することができる。本出願の趣旨および原理内で行われたあらゆる修正、同等の置換、改善などは、特許請求の範囲の保護範囲内にあるものとする。
【0101】
図13は、本開示の実装形態による、ブロックチェーンネットワークにおいて共有所有権を管理するためのコンピュータ実装方法1300の例を示すフローチャートである。提示を明確にするために、以下の説明では、この説明における他の図面の文脈において方法1300を一般的に説明する。しかしながら、方法1300は、たとえば、必要に応じて、任意のシステム、環境、ソフトウェア、およびハードウェア、またはシステム、環境、ソフトウェア、およびハードウェアの組合せによって実行できることが理解されるであろう。いくつかの実装形態では、方法1300の様々なステップを、並行して、組み合わせて、ループで、または任意の順序で実行することができる。
【0102】
ブロックチェーンネットワークでは、ブロックチェーンオブジェクトは、ブロックチェーンによって追跡または記録されるべき様々な資産またはデータを表すことができる。通常、ブロックチェーンオブジェクトの所有権は公開鍵と秘密鍵のペアに関連付けられ、当事者が公開鍵と秘密鍵のペアの秘密鍵を所有していることを確認することは、ブロックチェーンオブジェクトの所有権を示すために使用される。たとえば、ブロックチェーンオブジェクトの所有者は、秘密鍵を使用してブロックチェーンオブジェクトのハッシュを暗号化することができ、他の当事者は、所有者がブロックチェーンオブジェクトに関連付けられる公開鍵と秘密鍵のペアの秘密鍵を所有し、したがってオブジェクトの所有者であることを確認するために、ブロックチェーンオブジェクトに関連付けられる公開鍵を使用して復号化することができる。
【0103】
一般に、資産は2人以上の当事者によって共同所有され得る。たとえば、家、車、または銀行口座は、2人以上の当事者によって共同所され得る。そのため、ブロックチェーンオブジェクトを共同で所有する機能が所望される。しかしながら、一般的なブロックチェーンネットワークでは、単一の公開鍵と秘密鍵のペアのみをブロックチェーンオブジェクトに関連付けることができ、複数の公開鍵と秘密鍵のペアをオブジェクトに関連付けることを可能にするためにブロックチェーンネットワークアーキテクチャを修正することは不可能な場合がある。そのため、既存のブロックチェーンネットワーク内のブロックチェーンオブジェクトの共有所有権を管理する必要がある。そのような共有所有権は、ブロックチェーンオブジェクトに関連付けられる公開鍵と秘密鍵のペアの秘密鍵(「親暗号鍵」)から複数の子暗号鍵を生成し、子暗号鍵をオブジェクトの共同所有者に配布することを通じて実装され得る。
【0104】
個々の子暗号鍵は親暗号鍵とは異なるため、ブロックチェーンオブジェクトの所有権を確立するために使用することはできない。しかしながら、各共同所有者がそれぞれの子暗号鍵を提供し、子暗号鍵の完全なセットが取得されると、親暗号鍵を子暗号鍵から再構築でき、これは、ブロックチェーンオブジェクトの共同所有権を証明し、すべての共同所有者の同意に従ってブロックチェーンオブジェクトを破棄するために使用することができる。したがって、ブロックチェーンオブジェクトの共同制御が確立され、この場合、すべての共同所有者がそれらの子暗号鍵を提供することによって同意を与えた場合にのみ、ブロックチェーンオブジェクトを制御することができる。
【0105】
1302において、ブロックチェーンオブジェクトに関連付けられる親暗号鍵が取得される。このステップは、
図1のステップS0と同様であってもよい。ブロックチェーンオブジェクトは単一の公開鍵と秘密鍵のペアに関連付けられているため、ブロックチェーンオブジェクトは、オブジェクトの作成時に最初に単一の所有者によって所有され得る。当事者のグループが、作成されたブロックチェーンオブジェクトを共同で所有したい、またはブロックチェーンオブジェクトの所有権を単独の所有権から共有または共同所有権に変更したい場合、ブロックチェーンオブジェクトに関連付けられる公開鍵と秘密鍵のペアの秘密鍵が取得される。秘密鍵は、たとえば、ブロックチェーンオブジェクトの作成時にブロックチェーンネットワークから取得されてもよく、ブロックチェーンオブジェクトの現在の所有者によって提供されてもよい。いくつかの実装形態では、子暗号鍵が生成されるまでブロックチェーンオブジェクトの所有権の完全性を保護するために、ブローカーまたはエージェントなどの仲介者が、当事者一同に代わって親暗号鍵を取得し得る。
【0106】
公開鍵と秘密鍵のペアの秘密鍵は、親暗号鍵の例である。通常、親暗号鍵は、たとえば特定の暗号化標準または技術に依存する、あらかじめ定められた長さの一連のビットである。たとえば、親暗号鍵は、128、256、384、1024、2048、3072ビット、またはそれ以上のビット長を有することができる。
【0107】
1302から、方法1300は1304に進む。
【0108】
1304において、ブロックチェーンオブジェクトの制御を共有する当事者(N)の数が取得される。Nは2以上の整数である。子暗号鍵を生成する前に、生成されるべき鍵の数が最初に取得される。たとえば、共同所有権を確立する当事者は、ブロックチェーンネットワーク、ブロックチェーンオブジェクトの現在の所有者、または仲介者に、当事者Nの数を提供し得る。通常、この鍵の数は、ブロックチェーンの制御を共有する当事者の数である。ブロックチェーンの制御を共有する当事者は、ブロックチェーンオブジェクトの共同所有者または共有所有者である場合があり得る。いくつかの実装形態では、制御を共有する当事者は、ブロックチェーンオブジェクトの共有所有者または共同所有者以外の能力を有することができる。たとえば、当事者は、ブロックチェーンオブジェクトを所有していないが、ブロックチェーンオブジェクトの廃棄方法を制御できる不動産または遺言の受託者であり得る。
【0109】
1304から、方法1300は1306に進む。
【0110】
1306において、親暗号鍵にあらかじめ定められたアルゴリズムを適用することによって、親暗号鍵に基づいてN個の子暗号鍵が生成される。N個の子暗号鍵は、親暗号鍵を再構築するために集合的に動作可能である。このステップは、
図1のステップS2と同様であってもよい。一般に、子暗号鍵は2つの基準を満たす必要がある。第1に、個々の子暗号鍵は親暗号鍵とは異なる必要があるため、所有権を確立するために個々の子鍵を使用することはできない。さらに、生成された子暗号鍵は、親暗号鍵のセキュリティレベルを実質的に低下させない方法で親暗号鍵と異なることが有利である。第2に、子暗号鍵の完全なセットは、親暗号鍵の決定論的な再構築(たとえば、ブルートフォースではない)を可能にする必要がある。
【0111】
親暗号鍵と当事者数Nが取得されると、親暗号鍵からN個の子暗号鍵を様々な方法で生成することができる。いくつかの実装形態では、N個の子暗号鍵は、N-1個の乱数R
iを生成することであって、iが1からN-1の間の整数であり、R
iが非負の整数である、ことと、乱数R
iよりも大きい素数Pを決定することであって、素数Pが、親暗号鍵または乱数Riの値Sの少なくとも1つよりも大きく、乱数R
iよりも大きい、ことと、N個の子暗号鍵C
Xを決定することであって、C
X=P modulo (S+R
1X+R
2X
2+R
3X
3+…+R
N-1X
N-1)およびXが1とNとの間の整数である、こととを備える、あらかじめ定められたアルゴリズムを親暗号鍵に適用することによって生成される。子暗号鍵C
Xを決定するための式は、数学的に等価な式において
【数1】
として書き換えられ得る。
【0112】
いくつかの実装形態では、N個の子暗号鍵は、親暗号鍵のビット長に等しいビット長を有するN-1個の乱数を生成することと、親暗号鍵とN-1個の乱数のうちの1つとの間でXOR演算を実行すること、および前のXOR演算の出力と残りの乱数のうちの1つとの間でXOR演算を順次実行することを備える、一連のビットごとのXOR演算を実行することによって、排他的OR(XOR)子暗号鍵を生成する、こととを備える、あらかじめ定められたアルゴリズムを親暗号鍵に適用することによって生成される。N-1個の乱数と、XOR演算によって生成されたXOR子暗号鍵とは、N個の子暗号鍵として使用することができる。
【0113】
いくつかの実装形態では、N個の子暗号鍵は、ランダムに生成された文字列に基づいて親暗号鍵を修正することを備える、あらかじめ定められたアルゴリズムを親暗号鍵に適用することによって生成される。このステップは、前述のステップS20と同様であってもよい。様々な子暗号鍵を生成するために様々な方法で親暗号鍵を修正するために、ランダムに生成された文字列の一部を使用することができる。たとえば、子暗号鍵を生成するために、親暗号鍵の特定の部分をランダムに生成された文字列の特定の部分に置換することができる。複数の子暗号鍵を生成するために、親暗号鍵の異なる部分をランダムに生成された文字列の異なる部分に置換することができる。親暗号鍵内の置換された部分の位置と長さ、およびランダムに生成された文字列の対応する位置と長さは、あらかじめ設定されたアルゴリズムに従って決定され得る。あらかじめ設定されたアルゴリズムは、生成された子暗号鍵の堅牢性を改善するために、置換された部分の位置と長さをランダムに変化させ得る。置換された部分の位置と長さは、子暗号鍵から親暗号鍵を再構築する間に使用するために、子暗号鍵を保持する当事者間で共有され得る。いくつかの実装形態では、親暗号鍵の異なる部分をランダムに生成された文字列の部分で置換することに加えて、置換の結果得られるビット列は、堅牢性をさらに改善するためにあらかじめ設定されたアルゴリズムに従ってスクランブルすることができる。
【0114】
1306の後、方法1300は停止する。
【0115】
方法1300のいくつかの実装形態では、本方法は、N個の子暗号鍵を対応する当事者に送信するステップと、親暗号鍵を削除するステップとをさらに含む。親暗号鍵を削除することによって、子暗号鍵の完全なセットから親暗号鍵を再構築せずに単一の当事者が親暗号鍵を取得するあらゆる可能性が本質的に排除され、子暗号鍵を通じて確立された共有所有権の堅牢性を改善する。さらに、仲介者が子暗号鍵の生成に関与している場合、仲介者が所有する親暗号鍵を削除すると、仲介者によるブロックチェーンオブジェクトに対する潜在的な不正制御を防ぐことができる。いくつかの実装形態では、本方法は、送信された子暗号鍵が対応する当事者によって受信されたことを確認するステップをさらに含み、すべての当事者が子暗号鍵の受信を確認したときに親暗号鍵を削除することができる。
【0116】
子暗号鍵が生成されて当事者に送信され、親暗号鍵が削除されると、親暗号鍵に関連付けられるブロックチェーンオブジェクトは、どの単一の当事者によっても制御できなくなる。ブロックチェーンオブジェクトのすべての共有所有者または共同所有者がブロックチェーンオブジェクトを販売または別の方法で制御することに同意する場合、親暗号鍵が再構築される必要がある。再構築アルゴリズムに基づいて、子暗号鍵の完全なセットから親暗号鍵を再構築することができる。したがって、方法1300のいくつかの実装形態では、本方法は、複数の暗号鍵を受信するステップと、受信した複数の暗号鍵の数が、ブロックチェーンオブジェクトの制御を共有している当事者の数に等しいと決定するステップと、ブロックチェーンオブジェクトの制御を共有している当事者の数に等しいと決定するステップに応答して、再構築アルゴリズムを受信した複数の暗号鍵に適用することによって、親暗号鍵を再構築するステップとをさらに含む。このステップは、
図4のステップS82と同様であってもよい。
【0117】
再構築アルゴリズムは一般に、子暗号鍵を生成するためのあらかじめ定められたアルゴリズムに基づいて異なる。たとえば、親暗号鍵を再構築するために、モジュロ演算を使用して生成された子暗号鍵にラグランジュの定理またはラグランジュ多項式を適用することができる。別の例として、XORベースのアルゴリズムを使用して生成された子暗号鍵の場合、一連のXOR演算を使用して親暗号鍵を再構築することができる。具体的には、親暗号鍵を再構築するために、XOR子暗号鍵と乱数との間でXOR演算を逆の順序で実行することができる。XOR演算の可換および結合性により、XOR子暗号鍵と乱数との間で任意の順序で一連のXOR演算を実行することによって再構築を実行することもできる。したがって、方法1300のいくつかの実装形態では、本方法は、XOR子暗号鍵およびN-1個の乱数を備える複数の暗号鍵を受信するステップと、受信した複数の暗号鍵の数がブロックチェーンオブジェクトの制御を共有している当事者の数に等しいと決定するステップと、受信した複数の暗号鍵の数がブロックチェーンオブジェクトの制御を共有している当事者の数に等しいと決定するステップに応答して、一連のビットごとのXOR演算を実行することによって親暗号鍵を再構築するステップであって、XOR子暗号鍵とN-1個の乱数のうちの1つとの間でXOR演算を実行するステップ、および前のXOR演算の出力と残りの乱数のうちの1つとの間でXOR演算を順次実行するステップを備える、ステップとをさらに含む。
【0118】
本明細書で開示される方法および装置は、複数の当事者によるブロックチェーンオブジェクトの共有制御または共同制御を可能にすることによって、ブロックチェーンネットワークを改善することができる。そのような共同制御または所有権により、ブロックチェーンネットワークは、従来の台帳および記録管理手法における資産所有権パラダイムをサポートすることが可能になる。単一の親暗号鍵から子暗号鍵を生成し、子暗号鍵から親暗号鍵を再構築することによって、ブロックチェーンアーキテクチャを修正せずに、既存のブロックチェーンネットワークにおいてブロックチェーンオブジェクトの共有所有権を確立することができる。さらに、子暗号鍵を生成するためにモジュロベースまたはXORベースの手法を使用して親暗号鍵を修正することによって、子暗号鍵は親暗号鍵の重要な部分を含まなくなる。そのような子暗号鍵は、たとえば、親暗号鍵が単に部分に分割され、共有所有者に渡される手法に比べて、共有所有権または共同所有権のセキュリティを改善する。そのような分割ベースの手法は、共有所有者のグループが親暗号鍵の大部分を所有しているため、共有所有者の全体ではなく、大多数によるブルートフォース攻撃を受けやすく、これにより、ブルートフォース攻撃に関連付けられる計算負荷が大幅に削減され、ブロックチェーンオブジェクトの共有制御が損なわれる。
【0119】
本明細書で説明される実施形態および動作は、デジタル電子回路、あるいは本明細書で開示される構造を含むコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。動作は、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されたデータ、または他のソースから受信したデータに対して、データ処理装置によって実行される動作として実装することができる。データ処理装置、コンピュータ、またはコンピューティングデバイスは、例として、プログラマブルプロセッサ、コンピュータ、チップ上のシステム、または前述のものの複数のもの、あるいは組合せを含む、データを処理するための装置、デバイス、および機械を包含し得る。本装置は、たとえば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)または特定用途向け集積回路(ASIC)などの専用論理回路を含むことができる。本装置は、問題のコンピュータプログラム用の実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム(たとえば、オペレーティングシステムまたはオペレーティングシステムの組合せ)、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードも含むことができる。本装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0120】
コンピュータプログラム(たとえば、プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアモジュール、ソフトウェアユニット、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言言語型または手続き型言語を含む、あらゆる形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはコンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、オブジェクト、または他のユニットとして、任意の形式で展開することができる。プログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)、問題のプログラム専用の単一のファイル、または複数の調整されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトにある複数のコンピュータ、または複数のサイトに分散して通信ネットワークによって相互接続される複数のコンピュータで実行することができる。
【0121】
コンピュータプログラムを実行するためのプロセッサは、例として、汎用および専用の両方のマイクロプロセッサ、ならびにあらゆる種類のデジタルコンピュータの任意の1つまたは複数のプロセッサを含む。通常、プロセッサは、読取り専用メモリまたはランダムアクセスメモリ、あるいはその両方から命令とデータを受信する。コンピュータの必須要素は、命令に従ってアクションを実行するためのプロセッサと、命令とデータを記憶するための1つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための1つまたは複数の大容量記憶装置を含むか、またはそこからデータを受信またはそこにデータを転送するために、あるいはその両方のために動作可能に結合される。コンピュータは、別のデバイス、たとえばモバイルデバイス、携帯情報端末(PDA)、ゲーム機、全地球測位システム(GPS)受信機、またはポータブルストレージデバイスに組み込むことができる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、不揮発性メモリ、媒体、およびメモリデバイスを含み、例として、半導体メモリデバイス、磁気ディスク、および光磁気ディスクを含む。プロセッサとメモリは、専用のロジック回路によって補完することもでき、またはそれに組み込むこともできる。
【0122】
モバイルデバイスは、ハンドセット、ユーザ機器(UE)、モバイル電話(たとえば、スマートフォン)、タブレット、ウェアラブルデバイス(たとえば、スマートウォッチおよびスマートメガネ)、人体に埋め込まれたデバイス(たとえば、バイオセンサ、人工内耳など)または他の種類のモバイルデバイスを含むことができる。モバイルデバイスは、(たとえば、無線周波数(RF)信号を使用して)様々な通信ネットワークとワイヤレスで通信することができる(後述)。モバイルデバイスは、モバイルデバイスの現在の環境の特性を決定するためのセンサを含むことができる。センサは、カメラ、マイク、近接センサ、GPSセンサ、モーションセンサ、加速度計、環境光センサ、湿度センサ、ジャイロスコープ、コンパス、気圧計、指紋センサ、顔認識システム、RFセンサ(たとえば、Wi-Fiおよびセルラー電話)、熱センサ、または他の種類のセンサを含む。たとえば、カメラは、可動レンズまたは固定レンズ、フラッシュ、画像センサ、および画像プロセッサを備えた前方カメラまたは後方カメラを含むことができる。カメラは、顔認識および/または虹彩認識の詳細をキャプチャすることができるメガピクセルのカメラであり得る。カメラは、データプロセッサと、メモリに記憶された、または遠隔でアクセスされた認証情報とともに、顔認識システムを形成することができる。顔認識システムまたは1つまたは複数のセンサ、たとえば、マイク、モーションセンサ、加速度計、GPSセンサ、RFセンサをユーザ認証のために使用することができる。
【0123】
ユーザとの対話を提供するために、実施形態は、ディスプレイデバイスおよび入力デバイス、たとえば、ユーザに情報を表示するための液晶ディスプレイ(LCD)または有機発光ダイオード(OLED)/仮想現実(VR)/拡張現実(AR)ディスプレイ、ならびにユーザがコンピュータに入力を提供することができるタッチスクリーン、キーボード、ポインティングデバイスを有するコンピュータ上で実装され得る。ユーザとの対話を提供するために他の種類のデバイスを使用することもでき、たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバック、または触覚フィードバックなどのあらゆる形態の感覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受信することができる。さらに、コンピュータは、ユーザによって使用されるデバイスとの間で文書を送受信することによって、たとえばウェブブラウザから受信した要求に応じて、ユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話することができる。
【0124】
実施形態は、任意の形態または媒体のワイヤラインまたはワイヤレスデジタルデータ通信(またはそれらの組合せ)、たとえば通信ネットワークによって相互接続されたコンピューティングデバイスを使用して実装することができる。相互接続されたデバイスの例としては、一般に通信ネットワークを通じて相互作用する、一般的に相互に遠隔のクライアントとサーバがある。クライアント、たとえばモバイルデバイスは、サーバとのトランザクション自体を実行することもでき、サーバを通じて買い、売り、支払い、贈与、送信、またはローントランザクション、またはそれらの承認を実行することもできる。そのようなトランザクションは、アクションと応答が時間的に近接するようにリアルタイムであり得、たとえば、個人がアクションと応答が実質的に同時に発生することを認識し、個人のアクションに続く応答の時間差が1ミリ秒(ms)未満または1秒(s)未満であるか、応答は、システムの処理制限を考慮した意図的な遅延なしである。
【0125】
通信ネットワークの例は、ローカルエリアネットワーク(LAN)、無線アクセスネットワーク(RAN)、メトロポリタンエリアネットワーク(MAN)、およびワイドエリアネットワーク(WAN)を含む。通信ネットワークは、インターネットのすべてまたは一部、別の通信ネットワーク、あるいは通信ネットワークの組合せを含むことができる。情報は、ロングタームエボリューション(LTE)、5G、IEEE 802、インターネットプロトコル(IP)、あるいは他のプロトコルまたはプロトコルの組合せを含む様々なプロトコルおよび標準に従って、通信ネットワーク上で送信することができる。通信ネットワークは、接続されたコンピューティングデバイス間で音声、ビデオ、生体認証、認証データ、または他の情報を送信することができる。
【0126】
個別の実装形態として説明される機能は単一の実装形態において組み合わせて実装され得、単一の実装形態として説明される機能は、複数の実装形態において個別に、または任意の適切なサブコンビネーションにおいて実装され得る。特定の順序で説明および特許請求された動作は、特定の順序を要求するもの、およびすべての図示された動作が実行されなければならないものと理解されるべきではない(一部の動作はオプションである)。必要に応じて、マルチタスクまたは並列処理(または、マルチタスクと並列処理の組合せ)を実行することができる。
【符号の説明】
【0127】
20 乱数生成ユニット
21 排他的OR計算ユニット
22 子鍵決定ユニット
101 元の鍵情報取得モジュール
102 子鍵生成モジュール
103 子鍵出力モジュール
104 元の鍵削除モジュール
1021 乱数生成ユニット
1022 素数選択ユニット
1023 子鍵計算ユニット
1051 受信モジュール
1052 元の鍵復元モジュール
1300 方法