IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌチェーン ホールディングス リミテッドの特許一覧

特開2024-99697スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム
<>
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図1
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図2
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図3
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図4
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図5
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図6
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図7
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図8
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図9
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図10
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図11
  • 特開-スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024099697
(43)【公開日】2024-07-25
(54)【発明の名称】スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム
(51)【国際特許分類】
   H04L 9/32 20060101AFI20240718BHJP
   G06Q 20/38 20120101ALI20240718BHJP
【FI】
H04L9/32 200A
H04L9/32 200E
G06Q20/38 316
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024070180
(22)【出願日】2024-04-24
(62)【分割の表示】P 2022089453の分割
【原出願日】2017-02-16
(31)【優先権主張番号】1603117.1
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1603125.4
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1604495.0
(32)【優先日】2016-03-16
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1619301.3
(32)【優先日】2016-11-15
(33)【優先権主張国・地域又は機関】GB
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.UNIX
(71)【出願人】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】サヴァナ,ステファヌ
【テーマコード(参考)】
5L020
【Fターム(参考)】
5L020AA75
(57)【要約】
【課題】 コンピュータにより実施される、第1転送を検証する方法を提供する。
【解決手段】 前記方法は処理リソースにより実施され、前記第1転送を確認するための要求を受信するステップと、第1暗号通貨額の前記第1転送に対応する第1データアウトプットを決定するステップと、通信ネットワークを介して、ピアツーピア分散台帳から、前記第1データアウトプットの少なくとも部分を受信するステップと、前記第1データアウトプットから、前記第1転送の指示を決定するステップと、前記第1転送の前記指示が前記要求の中の前記第1転送に対応することを検証するステップと、前記検証の結果を示すアウトプットを送信するステップと、を含む方法。
【選択図】 図1
【特許請求の範囲】
【請求項1】
給与支払及び第2ユーザに関連する第1アウトプットスクリプト又は情報を第1ノードと第2ノードとの間で対称鍵アルゴリズムにより安全に送信する方法であって、前記方法は、
共通シークレットに基づき対称鍵を決定するステップであって、第1ノード第2秘密鍵と第2ノード第2公開鍵に基づき共通シークレットを決定するために生成元の値が使用され、前記第2ノードは第1ノード第2公開鍵と第2ノード第2秘密鍵に基づき同じ共通シークレットを有する、ステップと、
前記給与支払及び前記第2ノードに関連する前記第1アウトプットスクリプト又は情報の少なくとも部分を前記対称鍵アルゴリズムにより暗号化して、前記給与支払及び前記第2ノードに関連する暗号化第1アウトプットスクリプト又は暗号化情報にするステップと、
通信ネットワークを介して、前記給与支払及び前記第2ノードに関連する前記暗号化第1アウトプットスクリプト又は暗号化情報を、前記第1ノードから前記第2ノードへ送信するステップと、
を含む方法。
【請求項2】
前記第1ノードは第1ノードマスタ公開鍵に関連付けられ、前記第1ノードマスタ公開鍵は第1ノードマスタ秘密鍵と暗号ペアを形成する、請求項1に記載の方法。
【請求項3】
第1ノード第2公開鍵は少なくとも前記第1ノードマスタ公開鍵と前記生成元の値に基づき決定され、前記第1ノード第2公開鍵は第1ノード第2秘密鍵と暗号ペアを形成する、請求項2に記載の方法。
【請求項4】
前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、前記第2ノードの源泉徴収税に関連付けられる、請求項2又は3に記載の方法。
【請求項5】
前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、前記第2ノードの源泉徴収税に関連付けられる、請求項2に記載の方法。
【請求項6】
前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、前記第2ノードの老齢退職手当に関連付けられる、請求項2に記載の方法。
【請求項7】
前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、前記第2ノードの老齢退職手当に関連付けられる、請求項2に記載の方法。
【請求項8】
前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、住宅担保貸付支払に関連付けられる、請求項2に記載の方法。
【請求項9】
前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、住宅担保貸付支払に関連付けられる、請求項2に記載の方法。
【請求項10】
前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、大学進学資金に関連付けられる、請求項2に記載の方法。
【請求項11】
前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、大学進学資金に関連付けられる、請求項2に記載の方法。
【請求項12】
前記生成元の値は、前記第1ノードに関連付けられた文字列に基づく、請求項1に記載の方法。
【請求項13】
前記生成元の値は、Unix時間及びノンスに基づく、請求項1に記載の方法。
【請求項14】
前記生成元の値は支払期間に基づき変化する、請求項1に記載の方法。
【請求項15】
前記生成元の値はデータストアから検索される、請求項1に記載の方法。
【請求項16】
前記生成元の値は第3者から受信される、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ブロックチェーン技術、暗号法及び暗号通貨に関する。特に、本発明は、限定ではないが給与支払システムのようなコンピュータに基づくシステムに関連付けられた複数のノード間での転送の安全且つ改良された方法に関する。転送は、暗号通貨額の転送であって良い。
【背景技術】
【0002】
多くのコンピュータに基づくシステムは、個人のような複数のエンティティに関するデータを格納し及び処理する。このデータは、安全且つ効率的な方法で格納され、処理され、及び送信されなければならない。多くの例において、データの記録及びそれに対して行われる任意の変更は、将来の参照のために不変且つ永久的に格納されなければならない。例えば、エンティティの給与支払は、標準的に、エンティティの従業員及び従業員に割り当てられた賃金の記録を含む。源泉徴収税及び老齢退職のような他の出資金に関連する情報が、給与支払に含まれる場合がある。従業員の離職の権利又は利益に関する詳細事項も、給与支払に含まれることがある。
【0003】
ブロックチェーン技術は、不変且つ永久的方法でデータを格納するために使用できる。ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装される総意に基づく電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタル資産の制御の転送を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【0004】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【0005】
ブロックチェーン技術は、暗号通貨実装の使用で最も広く知られているが、デジタル起業家が、新しいシステムを実装するために、ビットコインの基づく暗号通貨セキュリティシステム、及びブロックチェーンに格納可能なデータの両方の使用を探索し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動タスク及び処理のために使用できれば、非常に有利である。このようなソリューションは、それらの用途において一層多様でありながら、ブロックチェーンの利点(例えば、永久的、イベントの耐タンパレコード、分散処理、等)を利用できる。
【0006】
現在の研究の一分野は、「スマートコントラクト(smart contracts)」の実装のためのブロックチェーンの使用である。これらは、機械可読取引又は合意の条件の実行を自動化するために設計されたコンピュータプログラムである。自然言語で記述され得る従来の取引と異なり、スマートコントラクトは、結果を生成するためにインプットを処理できるルールを含み、該結果に依存して動作を実行させることのできる、機械実行可能プログラムである。
【0007】
ブロックチェーンに関連する関心の他の分野は、ブロックチェーンを介する現実世界のエンティティの制御又は所有権を表し転送するための「トークン」(又は「カラードコイン」)の使用である。潜在的に機密な又は秘密のアイテムは、識別可能な意味又は値を有しないトークンにより表現できる。したがって、トークンは、現実世界のアイテムをブロックチェーンから参照できるようにする識別子として機能する。
【0008】
本願明細書に含まれる文書、動作、材料、装置、製品、等の議論は、これらの項目のうちのいずれか又は全部が従来基盤の部分を形成すること、又は本願の各請求項の優先日前に存在していたような本開示の関連分野における共通の一般知識であったとの承認として解釈されるべきではない。
【0009】
本願明細書を通じて、用語「含む、有する(comprise)」又は「comprises」若しくは「comprising」のような変形は、記述される要素、整数若しくはステップ、又は要素、整数若しくはステップのグループ、の包含を意味すると理解されるが、任意の他の要素、整数若しくはステップ、又は要素、整数若しくはステップのグループを除外しない。
【0010】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、限定ではないが、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【発明の概要】
【0011】
本発明は、添付の請求項において定められる。
【0012】
本発明の実施形態及び態様は、暗号通貨又は他のデジタル資産の効率的及び/又は安全な転送のためのコンピュータにより実施される方法を提供し得る。追加又は代替として、本発明は、トークン化方法、セキュリティ方法、及び/又はブロックチェーン上の交換若しくは転送を制御する方法として記載される場合がある。交換又は転送は、例えば暗号通貨額のようなデジタル資産、又はエンティティを表す又はそれに関連付けられたトークンに関連して良い。トークン化されたエンティティは、ブロックチェーン上又は外に格納されて良い。本発明は、本発明の方法の実施のための1又は複数のシステムを提供し得る。
【0013】
本発明は、1又は複数のユーザ装置並びにブロックチェーン関連ソフトウェア及びプロトコルを実行するよう構成されるコンピュータノードを含む分散コンピュータシステム(ブロックチェーン)のような、様々な個別の及び別個のコンピュータに基づくリソースの相互作用及び相互通信を必要する場合がある。本発明は、本願明細書に記載の方法のうちの1又は複数を実施し又は実行するよう構成されるコンピュータにより実施されるシステムを含み得る。
【0014】
暗号通貨は、ピアツーピア分散台帳(ブロックチェーン)上の、給与支払のようなデータ処理及び/又は記憶リソースに関連付けられて良い。転送は、第1ノードから第2ノードへの第1転送を含む、複数のノード間であって良い。
【0015】
方法は、
前記第1ノードから前記第2ノードへの前記第1転送に関連付けられた第1暗号通貨額を転送するための第1要求を受信するステップと、
前記第2ノードに関連付けられた第2ノードマスタ公開鍵を決定するステップであって、前記第2ノードマスタ公開鍵は、第2ノードマスタ秘密鍵と暗号対を形成する、ステップと、
生成元を決定するステップと、
少なくとも前記第2ノードマスタ公開鍵及び前記生成元に基づき、第2ノード第2公開鍵を決定するステップと、
第1アウトプットスクリプトを決定するステップであって、前記第1アウトプットスクリプトは、
前記第1転送に関連付けられた情報を含む少なくとも第1メタデータ、及び、
前記第2ノード第2公開鍵、
に基づく、ステップと、
通信ネットワークを介して、
前記第1ノードから前記第2ノードへの前記第1転送の指示、及び、
前記第1暗号通貨額に関連付けられる前記第1アウトプットスクリプト、
に基づき、第1データアウトプットをピアツーピア分散台帳へ送信するステップと、を含んで良い。
【0016】
本開示は、ビットコインブロックチェーンのような公開ピアツーピア分散台帳を、雇用者エンティティの給与支払情報に関連する口座のレポジトリとして、使用可能にし得る。
【0017】
前記第1メタデータは、前記第1要求の中の、前記第1ノードにより提供される情報に基づいて良い。ここで、前記メタデータは、前記給与支払及び前記第2ノードに関連付けられた情報を有する。前記第1メタデータは、前記給与支払及び前記第2ノードに関連付けられた前記情報のハッシュを含んで良い。
【0018】
方法は、前記第1ノードに関連付けられた第1ノードマスタ公開鍵を更に有して良く、前記第1ノードマスタ公開鍵は、第1ノードマスタ秘密鍵と暗号対を形成する。
【0019】
方法は、それぞれ少なくとも前記第1ノードマスタ公開鍵及び前記生成元、又は前記第2ノードマスタ公開鍵及び前記生成元に基づき決定される、少なくとも1つの第1ノード追加公開鍵又は少なくとも1つの第2ノード追加公開鍵を更に有して良い。第1ノード第2公開鍵は、少なくとも前記第1ノードマスタ公開鍵及び前記生成元に基づき決定されて良く、前記第1ノード第2公開鍵は、第1ノード第2秘密鍵と暗号対を形成する。
【0020】
前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、前記第2ノードの源泉徴収税に関連付けられて良い。前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、前記第2ノードの源泉徴収税に関連付けられて良い。前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、前記第2ノードの老齢退職手当に関連付けられて良い。前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、前記第2ノードの老齢退職手当に関連付けられて良い。前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、住宅担保貸付支払に関連付けられて良い。前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、住宅担保貸付支払に関連付けられて良い。前記第1ノード第2公開鍵又は第1ノード追加公開鍵は、大学進学資金に関連付けられて良い。前記第2ノード第2公開鍵又は第2ノード追加公開鍵は、大学進学資金に関連付けられて良い。
【0021】
前記生成元は、前記第1ノード3に関連付けられた文字列に基づいて良い。代替として、前記生成元は、Unix時間及びノンスに基づいて良い。更に別の代替として、前記生成元は、支払期間に基づき変化して良い。
【0022】
前記生成元は、データストア17から検索されて良い。代替として、前記生成元は、第三者から受信されて良い。
【0023】
前記生成元は、前記第2ノード第2秘密鍵及び前記第1ノード第2公開鍵に基づき共通シークレットを決定するために使用されて良く、前記第2ノードは、前記第1ノード第2公開鍵及び前記第2ノード第2秘密鍵に基づく同じ共通シークレットを有する。
【0024】
対称鍵アルゴリズムにより前記第1ノードと前記第2ノードとの間で前記第1メタデータの少なくとも部分を安全に送信する方法であって、前記方法は、
上述の方法に従い決定された前記共通シークレットに基づき、対称鍵を決定するステップと、
前記対称鍵で、前記第1メタデータの少なくとも部分を前記第1メタデータの暗号化された少なくとも部分に暗号化するステップと、
前記通信ネットワークを介して、前記第1ノードから前記第2ノードへ前記第1メタデータの前記暗号化された少なくとも部分を送信するステップと、を含む方法。
【0025】
対称鍵アルゴリズムにより第1ノードと第2ノードとの間で給与支払及び第2ノードに関連付けられた第1アウトプットスクリプト又は情報を安全に送信する方法であって、
上述の方法に従い決定された前記共通シークレットに基づき対称鍵を決定するステップと、
前記対称鍵により、前記給与支払及び前記第2ノードに関連付けられた前記第1アウトプットスクリプト又は情報の少なくとも部分を、前記給与支払及び前記第2ノードに関連付けられた暗号化第1アウトプットスクリプト又は暗号化情報に暗号化するステップと、
前記通信ネットワークを介して、前記第1ノードから前記第2ノードへ、前記給与支払及び前記第2ノードに関連付けられた前記暗号化第1アウトプットスクリプト又は暗号化情報を送信するステップと、を含む方法。
【0026】
上述の前記第1転送を検証する方法であって、前記方法は、
前記第1転送を確認するための要求を受信するステップと、
前記第1暗号通貨額の前記第1転送に対応する前記第1データアウトプットを決定するステップと、
前記通信ネットワークを介して、前記ピアツーピア分散台帳から、前記第1データアウトプットの少なくとも部分を受信するステップと、
前記第1データアウトプットから、前記第1転送の前記指示を決定するステップと、
前記第1転送の前記指示が前記要求の中の前記第1転送に対応することを検証するステップと、
前記検証の結果を示すアウトプットを送信するステップと、を含む方法。
【0027】
方法は、前記第1暗号通貨額に関連付けられた第1トークンを更に有して良い。前記第1トークンは、前記第1ノード又は第2ノードの雇用権利及び利益に関連付けられた情報を含んで良い。前記第1トークンは、前記第1ノードから前記第2ノードへ転送されて良い。
【0028】
コンピュータプログラムであって、処理装置に上述の方法のうちのいずれか1つを実施させる機械可読命令を含むコンピュータプログラム。
【0029】
装置であって、上述の方法のうちのいずれか1つに従う方法を実行する処理装置を含む装置。
【0030】
第1ノードから第2ノードへの第1転送を含む、複数ノード間のピアツーピア分散台帳上の給与支払に関連付けられた暗号通貨の効率的な転送のためのシステムであって、前記システムは、
第1処理装置であって、
前記第1ノードから、前記第1ノードから前記第2ノードへの前記第1転送に関連付けられた第1暗号通貨額を転送するための第1要求を受信し、
前記第2ノードに関連付けられた第2ノードマスタ公開鍵を決定し、前記第2ノードマスタ公開鍵は、第2ノードマスタ秘密鍵と暗号対を形成し、
生成元を決定し、
少なくとも前記第2ノードマスタ公開鍵及び前記生成元に基づき、第2ノード第2公開鍵を決定し、
第1アウトプットスクリプトを決定し、前記第1アウトプットスクリプトは、
前記第1転送に関連付けられた情報を含む少なくとも第1メタデータ、及び、
前記第2ノード第2公開鍵、
に基づき、
通信ネットワークを介して、
前記第1ノードから前記第2ノードへの前記第1転送の指示、及び、
前記第1暗号通貨額に関連付けられる前記第1アウトプットスクリプト、
に基づき、第1データアウトプットをピアツーピア分散台帳へ送信する、
よう構成される第1処理装置を含むシステム。
本発明の一実施形態又は態様に関して説明された任意の機能は、本発明の1又は複数の他の態様に適用されても良い。
【図面の簡単な説明】
【0031】
本開示の例は、以下の図面を参照して記載される。
【0032】
図1】給与支払に関連付けられた複数のノード間で暗号通貨を転送するための例示的なシステムの概略図である。
【0033】
図2】給与支払に関連付けられた複数のノードにおけるユーザの概略図である。
【0034】
図3】給与支払に関連付けられた複数のノード間で暗号通貨を転送する、コンピュータにより実施される方法のフローチャートである。
【0035】
図4】共通シークレットを決定する、コンピュータにより実施される方法のフローチャートである。
【0036】
図5】給与支払に関連付けられた従業員の口座の概略図である。
【0037】
図6】共通シークレットを決定する、コンピュータにより実施される方法の別のフローチャートである。
【0038】
図7】第1ノードと第2ノードとの間のセキュア通信の、コンピュータにより実施される方法のフローチャートである。
【0039】
図8】鍵の階層的チェーン構造の一例である。
【0040】
図9】異なる目的のための異なる鍵の木構造の一例である。
【0041】
図10】マスタキー鍵スポーニング方法を用いる木構造の一例である。
【0042】
図11】暗号通貨の転送を検証する、コンピュータにより実施される方法のフローチャートである。
【0043】
図12】例示的な処理装置の概略示す。
【発明を実施するための形態】
【0044】
本開示は、概して、例えば給与支払のようなデータ記憶及び処理システムに関連付けられた複数のノード間で暗号通貨の転送を可能にする、ビットコインブロックチェーンのようなピアツーピア(P2P)分散台帳を利用する方法及び機器に関する。
【0045】
以下に記載する実施形態は、具体的にビットコインブロックチェーン(以後ブロックチェーンとして参照される)上で生じるトランザクションを参照する場合があるが、本発明は他のP2P分散台帳を用いて実施されて良いことが理解される。ブロックチェーンの高度な標準化及び大量の関連する公開された文書のために、単に単純さを目的として、本発明の態様を記載するために以下でブロックチェーンが使用される。
【0046】
<ビットコイン及びブロックチェーン>
上述のように及び従来よく知られているように、ブロックチェーンは、ビットコインプロトコルに基づくシステムに参加するネットワーク接続されたノード間で分散されるトランザクション台帳又はデータベースである。各ビットコイントランザクションはネットワークにブロードキャストされ、トランザクションが確認され、次にブロックに集約される。ブロックは、次に、ブロックチェーンに含まれる。
【0047】
暗号通貨のP2P分散台帳の完全なコピーは、暗号通貨においてこれまでに実行された全てのトランザクションを含む。したがって、トランザクションデータレコードの絶えず増大するリストが提供される。ブロックチェーンに入った各トランザクションは暗号によって実施されるので、ブロックチェーンは、例えデータストアノードのオペレータによるものでも、タンパリング及び改訂に対して強健である。
【0048】
ブロックチェーンの透過性により、各トランザクションについてトランザクション履歴が公衆に利用可能である。ブロックチェーンの更なる利点は、トランザクション及びトランザクションのレコードが同じであることである。つまり、トランザクションのレコードはトランザクションの中に埋め込まれる。
【0049】
このように、トランザクションに関連する情報は実際のトランザクションの中にキャプチャされる。このレコードは、永久的且つ不変である。したがって、ビットコインを用いて行われる各トランザクションは、ブロックチェーンにより実現されるだけでなく、ブロックチェーンに普遍的に記録もされる。これは、したがって、永久的且つ不変であり、したがって、トランザクションレコードを別個のデータベースに保持するための第三者に対する要件を削除する。
【0050】
<Pay-to-script-hash及びマルチシグネチャ>
実施形態は具体的にビットコインプロトコルのP2SH(pay-to-script-hash)方法を使用するトランザクションを参照する場合があるが、本発明はpay-to-key-hash方法のようなビットコインプロトコル(又は代替プロトコル)の別の方法を用いて実施されて良いことが理解される。
【0051】
ブロックチェーン上の各トランザクションレコードは、トランザクション及び公開鍵の数を示す情報を含むスクリプトを有する。これらの公開鍵は、暗号通貨の送信側及び受信側を示し又はそれに関連付けられて良い。スクリプトは、ユーザがどのようにトランザクションレコード内で指定された暗号通貨へのアクセスを得ることができるかを記述するブロックチェーン上の各トランザクションレコードと共に記録された命令リストとして考えられる。
【0052】
背景として、ビットコインプロトコルの標準的なP2SH方法では、アウトプットスクリプト又はRedeemスクリプトは、以下の形式を取り得る。
<NumSigs PubK1 PubK2 ... PubK15 NumKeys OP_CHECKMULTISIG>
ここで、NumSigsは、トランザクションを解除するためにRedeemスクリプトを満たすために必要な有効署名の数「m」である。PubK1、PubK2、...、PubK15は、トランザクションを解除する署名に対応する公開鍵である(最大15個の公開鍵まで)。NumKeysは公開鍵の数「n」である。
【0053】
上述のRedeemスクリプトを償還(redeem)するために、少なくとも、公開鍵に対応する「m」個の署名が必要である。幾つかの例では、公開鍵の順序が重要であり、「n」人のうちの「m」人の署名する署名者が順次行われなければならない。例えば、「m」が2であり、「n」が15である場合を考える。使用可能な2つの署名、Sig1(PubK1に対応する)及びSig15(PubK15に対応する)がある場合、Redeemスクリプトは、先ずSig1により署名され、続いてSig15により署名されなければならない。
【0054】
以下の例示的な実施形態は、公開台帳としてビットコインブロックチェーンを参照するが、本開示は暗号通貨を利用する任意の公開台帳にも適用されることが理解されるべきである。
【0055】
<システム概要>
給与支払に関連付けられた複数のノード間で暗号通貨を転送する方法、装置、及びシステムが以下に記載される。
【0056】
図1は、通信ネットワーク5を介して第2ノード7と通信する第1ノード3を含むシステム1を示す。第1ノード3は関連する第1処理装置21を有し、及び第2ノード5は関連する第2処理装置27を有する。第1及び第2ノード3、7は、コンピュータ、タブレットコンピュータ、モバイル通信装置、コンピュータサーバ、等のような電子装置を含んで良い。
【0057】
トランザクションを記録するP2P分散台帳13も図1に示される。P2P分散台帳は、トランザクションを受信し及び記録するために、1又は複数の処理装置19に関連付けられて良い。上述のように、P2P分散台帳の一例は、ビットコインブロックチェーンである。したがって、ブロックチェーンの文脈では、P2P分散台帳に関連付けられた処理装置19は、「マイナー」として使用される処理装置であって良い。
【0058】
第1ノード3は第1ユーザ23に関連付けられ、第2ノード7は第2ユーザ24に関連付けられる。第1ノード3は、第1ユーザ23から、第1暗号通貨額を転送するための第1要求を受信して良い。一例では、第1ユーザ23は雇用者であり、第2ユーザ24は雇用者23の従業員であり、第1暗号通貨額の転送は報酬(つまり、給料又は賃金)である。更なる例では、第2ユーザ24は、オーストラリア税務署又は老齢退職手当基金のような政府機関であって良い。
【0059】
別の例では、第1ノード3からの第1要求は、第3ノードで受信される。第3ノード9は、第1及び第2ノード3、7の発行者又はサービスプロバイダ25を表して良い。第3ノード9は、暗号通貨の転送を実現する際に関与して良い。
【0060】
図2は、第2ノード7及び更なるノードにいる2人の例示的な従業員を示し、これらの従業員は第1ノード3にいる雇用者23に関連付けられる。
【0061】
以下の例示的な実施形態は、第1ノード3を方法を実行するとして参照するが、本開示は、他のノードにより実行されるよう適応され又は変更されても良いことが理解される。
【0062】
図3に示す方法100は、第1ノード3から第2ノード7への第1転送に関連付けられた第1暗号通貨額を転送するための、第1ノード3からの第1要求を受信するステップ110を含む。第1暗号通貨額は、第1ノード3の給与支払に関連付けられて良い。例えば、第1暗号通貨額は、第1ユーザ23(雇用者)から第2ユーザ24(従業員)への支払を表して良い。
【0063】
方法100は、第2ノード7に関連付けられた第2ノードマスタ公開鍵を決定するステップ120も含む。第2ノードマスタ公開鍵は、第2ノードマスタ秘密鍵と暗号対を形成する。方法100は、生成元(generator value:GV)を決定するステップ130も含む。生成元は、第1ノードと第2ノードとの間で共有されるメッセージ(M)に基づいて良い。これは、通信ネットワーク5を介してメッセージを共有するステップを含んで良い。方法100は、少なくとも第2ノードマスタ公開鍵及び生成元(GV)に基づき、第2ノード第2公開鍵を決定するステップ140も含む。
【0064】
方法100は、少なくとも第1転送に関連付けられた情報を含む第1メタデータ及び第2ユーザ第2公開鍵に基づき、第1アウトプットスクリプトを決定するステップ150も含む。一例では、第1アウトプットスクリプトは、ビットコインプロトコルのP2SH方法を用いる第1Redeemスクリプトであって良い。別の例では、第1アウトプットスクリプトは、ビットコインプロトコルのpay-to-public-key-hash方法を用いる第1アウトプットスクリプトであって良い。
【0065】
方法100は、通信ネットワーク5を介して、第1ノード3から第2ノード7への第1転送の指示、及び第1アウトプットスクリプトに基づき、P2P分散台帳13へ第1データアウトプットを送信するステップ160も含む。第1転送の指示は、基礎にある第1暗号通貨額が第2ノード7へ転送されたことを記録する。第1データアウトプットは、第1アウトプットスクリプト又は第1アウトプットスクリプトのハッシュも有して良い。
【0066】
方法の詳細な例が以下に記載される。
【0067】
<要求を受信する110>
上述のように、方法100は、第1ノード3から第2ノード7への第1転送に関連付けられた第1暗号通貨額を転送するための第1要求を受信するステップ110を含む。一例では、第3ノード9又は発行者/サービスプロバイダ25は、第1ノード3にいる雇用者23から要求を受信する。例えば、第1ノード3に関連付けられた人事部からの職員は、第3ノード9又は発行者/サービスプロバイダ25へ要求を送信して良い。
【0068】
別の例では、第1ノード3に関連付けられた人事部からの職員は、第1ノード3に関連付けられた給料課へ要求を送信して良い。
【0069】
要求は、第1暗号通貨額に関連付けられた詳細事項、例えば第1暗号通貨額の正確な額を含んで良い。要求は、第1暗号通貨額の受信者の詳細事項、例えば従業員の詳細事項を更に含んで良い。従業員の詳細事項は、雇用者における従業員の地位、支払期間、及び賃金に関する情報を含んで良い。
【0070】
<第2ノードマスタ公開鍵を決定する120>
上述のように、方法100は、第2ノードに関連付けられた第2ノードマスタ公開鍵(例えば、従業員の公開鍵)を決定するステップ120を更に含む。ここで、第2ノードマスタ公開鍵は、第2ノードマスタ秘密鍵と暗号対を形成する。一例では、第2ノードマスタ公開鍵は、通信ネットワーク5を介して第2ノード7から受信される。別の例では、第2ノードマスタ公開鍵は、データストア17から検索される。更に別の例では、第2ノードマスタ公開鍵は、第3ノード9又は発行者/サービスプロバイダ25から受信される。
【0071】
<生成元を決定する130>
上述のように、方法100は、生成元を決定するステップ130を含み、第2ノードマスタ公開鍵及び生成元(GV)により第2ノード第2公開鍵を決定するステップ140を更に含む。本開示は、第1ノードマスタ公開鍵及び生成元(GV)に基づき、第1ノード第2公開鍵を決定しても良い。
【0072】
生成元(GV)を決定するために、ノード3、7は、それぞれ図4に示すような方法300、400のステップを実行して良い。
【0073】
生成元(GV)は、ランダム、疑似ランダム、又はユーザ定義であって良い。一例では、生成元(GV)は、第1ノード3に関連付けられた文字列に基づく。例えば、文字列は、第2ユーザ24の識別番号(例えば、従業員識別番号)であって良い。更なる例では、生成元(GV)は、上述のような文字列と1又は複数の値との連結であって良い。例えば、値は、第1要求が受信された日付であって良い。
【0074】
値の更なる例は、鍵の導出される目的を示す文字列であって良い。例えば、鍵が第2ユーザ24の源泉徴収税に関連付けられた暗号通貨を転送するために使用される場合、値は、単語「tax(税)」を含む文字列を有して良い。
【0075】
更に別の例では、生成元(GV)は、Unix時間及びノンスに基づく。更なる例では、生成元(GV)は、第1ノード及び第2ノードに関連付けられた支払期間に基づき変化する。例えば、支払期間が2週間毎である場合、生成元(GV)は2週間毎に変化して良い。
【0076】
図5は、第2ノード7に位置する従業員Aに関連付けられた2つの口座を示す。第1口座は、1月の月のためであり、指定された生成元GV-Januaryを有する。第2口座は、2月の月のためであり、指定された生成元GV-Februaryを有する。
【0077】
幾つかの例では、生成元(GV)は任意であって良い。しかしながら、理解されるべきことに、生成元は、幾つかのアプリケーションで有用であり得る(Unix時間、等のような)選択的値を有して良い。
【0078】
生成元は、データストア17から検索されて良い。別の例では、生成元は、第三者から受信される。
【0079】
<メッセージ(M)を生成する>
ステップ130で決定された生成元は、メッセージ(M)に基づいて良い。図6に示すように、第1ノード3により実行される方法300は、メッセージ(M)を生成するステップ310を含む。メッセージ(M)は、生成元に関して上述したように、ランダム、疑似ランダム、又はユーザ定義であって良い。
【0080】
一例では、メッセージ(M)は、Unix時間及びノンス(任意の値)に基づく。例えば、メッセージ(M)は次のように与えられ得る。
メッセージ(M)=Unix時間+ノンス (式1)
【0081】
方法300は、メッセージ(M)を通信ネットワーク5を介して第2ノード7へ送信するステップ315を含む。メッセージ(M)は秘密鍵についての情報を含まないので、メッセージ(M)は、セキュアでないネットワークを介して送信されて良い。
【0082】
<メッセージ(M)から生成元(GV)を決定する>
図6に示される方法300は、メッセージ(M)に基づき生成元(GV)を決定するステップ320を更に含む。本例では、これは、メッセージの暗号ハッシュを決定するステップを含む。暗号ハッシュアルゴリズムの一例は、256ビット発生元(GV)を生成するためにSHA-256を含む。つまり、
GV=SHA-256(M) (式2)
【0083】
理解されるべきことに、他のハッシュアルゴリズムが使用されて良い。これは、セキュアなハッシュアルゴリズム(Secure Hash Algorithm:SHA)ファミリの中の他のハッシュアルゴリズムを含んで良い。幾つかの特定の例は、SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256を含むSHA-3サブセットの中のインスタンスを含む。他のハッシュアルゴリズムは、RIPEMD(RACE Integrity Primitives Evaluation Message Digest)ファミリの中のアルゴリズムを含んで良い。特定の例は、RIPEMD-160を含んで良い。他のハッシュ関数は、Zemor-Tillichハッシュ関数及びナップサック・ハッシュ関数に基づくファミリを含んで良い。
【0084】
<第2ノード第2公開鍵を決定する140>
方法100は、少なくとも第2ノードマスタ公開鍵及び生成元に基づき、第2ノード第2公開鍵を決定するステップ140を更に含む。
【0085】
上述のように、第2ノードマスタ公開鍵及び第2ノードマスタ秘密鍵は、暗号対を形成する。この暗号対は、基点(base point:G)を有する共通楕円曲線暗号(elliptic curve cryptography:ECC)システムを用いて生成されて良い。
【0086】
つまり、第2ノードマスタ公開鍵及び第2ノードマスタ秘密鍵を生成するステップは、共通ECCシステムにおいて指定された許容範囲内のランダム整数に基づき第2ノードマスタ秘密鍵(V1E)を生成するステップと、次式に従い、第1ノードマスタ秘密鍵(V1C)と基点(G)との楕円曲線点乗算に基づき、第1ノードマスタ秘密鍵(P1C)を決定するステップと、を含んで良い。
P1P=V1P×G (式3)
【0087】
本例では、公開鍵(つまり、第2ノードマスタ公開鍵P1E)は、生成器(G)との楕円曲線点乗算により秘密鍵として決定されるので370’、第2ノード第2公開鍵(P2E)は次のように表せる。
P2E=P1E+GV×G (式4)
【0088】
したがって、第2ノード第2公開鍵(P2E)は、ランダム値ではないが、代わりに第1ノードマスタ公開鍵が分かると、確定的に導出される。
【0089】
<第1アウトプットスクリプトを決定する150>
方法100は、少なくとも第1転送に関連付けられた情報を含む第1メタデータに基づき、第1アウトプットスクリプトを決定するステップ150を更に含む。ビットコインプロトコルのP2SH方法では、メタデータは、以下に記載する方法を用いてアウトプットスクリプトに含められて良い。
【0090】
<メタデータ>
メタデータは、P2SHマルチシグネチャRedeemスクリプトの中の公開鍵のために利用可能な15個の場所のうちの1又は複数に、Redeemスクリプト内に埋め込まれて良い。例えば、Redeemスクリプトは次の形式を取って良い。
<NumSigs Metadata1 Metadata2 ... PubK1 PubK2 … NumKeys OP_CHECKMULTISIG>
ここで、Metadata1及びMetadata2は、それぞれ、Redeemスクリプトの中の公開鍵に取って代わるメタデータを含み、PubK1及びPubK2は公開鍵である。
【0091】
暗号通貨の転送に関連付けられたメタデータ、例えば給与支払及び第2ノード7に関連付けられた情報を挿入することにより、トランザクション(Tx)がブロックチェーンに書き込まれるとき、該情報のハッシュが台帳に含まれる。
【0092】
したがって、本開示の実施形態におけるマルチシグネチャP2SHビットコイントランザクションの使用は、メタデータペイロードを運ぶ、給与支払に関連付けられた暗号通貨の転送を可能にするという利点を提供する。
【0093】
メタデータは、暗号通貨の転送に関連付けられた条件を記述する記述又はキーワードを含んで良い。例えば、転送の日付、氏名、誕生日、住所、詳細な連作先、又は第1ノード3若しくは第2ノード7にいるそれぞれ第1ユーザ23若しくは第2ユーザ24の他の詳細事項が、含まれて良い。更なる例では、暗号通貨額に関連付けられた情報が含まれて良い。
【0094】
第1ノード3に関連付けられた第1ユーザ23が雇用者であり、第2ノード7に関連付けられた第2ユーザ24が従業員である例では、メタデータの中の情報は、伝統的な給料明細の中の情報と同様であって良い。メタデータは、雇用者及び従業員の名称、支払期間、支払日、従業員への総支払額及び準支払額、従業員の賃金、任意の源泉徴収税又は老齢退職手当、ボーナス、及び雇用者の正式企業番号(例えば、Australian Business Number)を含んで良い。
【0095】
更なる例では、メタデータは、一連の文字の識別番号のような、雇用者又は従業員に関連付けられた文字列を有して良い。
【0096】
Redeemスクリプト内のメタデータは、多くの方法で情報を含むことができる。一例では、情報の内容が含まれて良い。更なる例では、情報の暗号ハッシュが含まれて良い。情報のハッシュは、情報の256ビット表現を生成するために、SHA-256アルゴリズムを用いて決定されて良い。理解されるべきことに、SHA(Secure Hash Algorithm)ファミリの中の他のアルゴリズムを含む他のハッシュアルゴリズムが使用されて良い。幾つかの特定の例は、SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256を含むSHA-3サブセットの中のインスタンスを含む。他のハッシュアルゴリズムは、RIPEMD(RACE Integrity Primitives Evaluation Message Digest)ファミリの中のアルゴリズムを含んで良い。特定の例は、RIPEMD-160を含んで良い。他のハッシュ関数は、Zemor-Tillichハッシュ関数及びナップサック・ハッシュ関数に基づくファミリを含んで良い。
【0097】
更なる例では、メタデータは、ポインタ、アドレス、又は位置、例えば情報を含むファイルへの他の参照を含んで良い。例えば、メタデータは、第1ノード及び第2ノードに関連付けられた給料明細へのポインタを含んで良い。このポインタは、実際のファイル位置のIPv6アドレスを有して良い。
【0098】
本開示の更なる実施形態では、上述の1又は複数を含む組み合わせがメタデータに含まれて良い。メタデータはブロックチェーンのようなP2P分散台帳により公開され、又は非セキュアネットワークを介して送信され得るので、メタデータの特定の詳細事項は、プライバシを理由に秘密にされ又は隠されることが望ましい場合がある。
【0099】
<P2P分散台帳へ第1データアウトプットを送信する160>
方法100は、通信ネットワーク5を介して、第1ノード3から第2ノード7への第1転送の台帳上の記録を提供する第1データアウトプットを、P2P分散台帳へ送信するステップ160を更に含む。言い換えると、トランザクション(Tx)は、検証及び後に台帳上のブロックに含まれるために、ブロックチェーンネットワークへ送信される。
【0100】
第1データアウトプットは、ブロックチェーンに格納されたトランザクションレコードであって良い。ブロックチェーン上の各トランザクションレコードは、少なくとも第1ノード3に関連付けられた第1ノード公開鍵及び第2ノード7に関連付けられた第2ノード公開鍵を有する。第1ノード公開鍵は、第1ノードマスタ公開鍵、第1ノード第2公開鍵、又は第1ノード追加公開鍵を有して良い。第2ノード公開鍵は、第2ノードマスタ公開鍵、第2ノード第2公開鍵、又は第2ノード追加公開鍵を有して良い。本開示において後述するように、方法300及び400は、第1ノード追加公開鍵及び第2ノード追加公開鍵を生成するために繰り返されて良い。これは、第1ノード3及び第2ノード7がブロックチェーン上に格納されるトランザクションに関与することを識別する。
【0101】
さらに、ブロックチェーン上の各トランザクションは、少なくとも第1ノード3から第2ノード7への第1暗号通貨額の第1転送の指示を含む。
【0102】
トランザクションの例は、暗号通貨トランザクション、フィアット通貨トランザクション、又は以下に更に詳述するトークンを有して良い。
【0103】
<変形>
<データを安全に送信するために共通シークレットを決定する>
第1ノード3及び第2ノード7の両者において生成元及び共通シークレット(common secret:SC)を決定するために、ノード3、7は、通信ネットワーク5を介して秘密鍵を通信することなく、それぞれ方法300、400のステップを実行する。生成元及び共通シークレットを決定するステップ、第1ノード第2公開鍵及び秘密鍵、並びに第2ノード第2公開鍵及び秘密鍵を生成するステップ、の処理の説明は以下の通りである。方法300及び400の要約が図を参照して以下に提供される。
【0104】
図4に示すように、第1ノード3により実行される方法300は、上述のように、少なくとも第1ノードマスタ秘密鍵(V1P)及び生成元(GV)に基づき、第1ノード第2秘密鍵(V2P)を決定するステップ330を含む。生成元(GV)は、幾つかの例では、第1ノード3と第2ノード7との間で共有されるメッセージ(M)に基づいて良い。これは、以下に詳述するように、通信ネットワーク5を介してメッセージを共有するステップを含んで良い。方法300は、少なくとも第2ノードマスタ公開鍵(P1E)及び生成元(GV)に基づき、第2ノード第2公開鍵(P2E)を決定するステップ370を更に含む。方法300は、第1ノード第2秘密鍵(V2P)及び第2ノード第2公開鍵(P2E)に基づき、共通シークレット(CS)を決定するステップ380を含む。
【0105】
重要なことに、同じ共通シークレット(CS)が、方法400により第2ノード7においても決定できる。方法400は、第1ノードマスタ公開鍵(P1P)及び生成元(GV)に基づき、第1ノード第2公開鍵(P2P)を決定するステップ430を含む。方法400は、第2ノードマスタ秘密鍵(V1E)及び生成元(GV)に基づき、第2ノード第2秘密鍵(V2E)を決定するステップ470を更に含む。方法400は、第2ノード第2秘密鍵(V2E)及び第1ノード第2公開鍵(P2P)に基づき、共通シークレット(CS)を決定するステップ480を含む。方法300、400は、後述するように、第1ノード追加公開鍵又は第2ノード追加公開鍵を生成するために繰り返されて良い。
【0106】
通信ネットワーク5は、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラネットワーク、無線通信ネットワーク、インターネット、等を含んで良い。これらのネットワークでは、データは電気線、光ファイバ、又は無線のような通信媒体を介して送信されて良く、盗聴者11による様な盗聴を受けやすい場合がある。方法300、400は、通信ネットワーク5を介して共通シークレットを送信することなく、第1ノード3及び第2ノード7が共通シークレットを両方とも独立して決定できるようにする。したがって、1つの利点は、安全でない可能性のある通信ネットワーク5を介して秘密鍵を送信する必要を有しないで、共通シークレット(CS)が各ノードにより安全に決定できることである。また、共通シークレットは、通信ネットワーク5を介する第1ノード3と第2ノード7との間の暗号化通信のために、シークレットキーとして(又はシークレットキーの基礎として)使用されて良い。
【0107】
<第1ノード3及び第2ノード7において共通シークレットを決定する380>
共通シークレット(CS)を決定する一例は、図6を参照してここに記載される。共通シークレット(CS)は、第1ノード3と第2ノード7との間の特定のセッション、時間、トランザクション、又は他の目的のために使用されて良く、同じ共通シークレット(CS)を使用することが望ましい又はセキュアでなくて良い。したがって、共通シークレット(CS)は、異なるセッション、時間、トランザクション、等の間で変更されて良い。
【0108】
第1ノード3は、次に、第1ノード第2秘密鍵(V2P)及び決定した第2ノード第2公開鍵(P2E)に基づき、共通シークレット(CS)を決定して良い380。共通シークレット(CS)は、第1ノード3により次式により決定されて良い。
CS=V2P×P2E (式5)
【0109】
第2ノード7は、さらに、次式に基づき、第2ノード秘密鍵(V2E)及び第1ノード第2公開鍵(P2P)に基づき、共通シークレット(CS)を決定して良い470。
【0110】
CS=V2E×P2P (式6)
【0111】
<情報を安全に送信する>
上述のようなメタデータは、秘密保持又は機密性の情報を有し得る。第1ノード3又は第2ノード7は、少なくともメタデータの部分、又はメタデータに含まれる情報の安全な送信を要求し得る。これは、アンロック(Redeem)スクリプトの中に格納された情報をハッシュするだけで達成できる。更なる例では、第1アウトプットスクリプトは、安全に送信される必要がある場合がある。更なる例では、給与支払及び第2ユーザ24に関連付けられたメッセージ又は情報(例えば、給料明細の詳細事項)は、第1ノード3から第2ノード7への安全な送信を要求し得る。
【0112】
本開示は、セキュアな通信を実現するために使用でき、特に、潜在的に非セキュアな通信ネットワーク5を介して、第1ノード3と第2ノード7との間で通信メッセージを送信し及び受信する。これは、対称鍵の基礎として第1ノード及び第2ノードにより別個に決定された共通シークレット(CS)を使用することにより達成できる。理解されるべき事に、本発明で使用可能な共通シークレットを生成する種々の方法が存在し得る。しかしながら、本願明細書に開示のような、共通シークレット(CS)を決定し及び通信メッセージの暗号化及び復号化のために対称鍵を使用する方法は、知られている公開鍵暗号化方法に比べてより計算効率が高い。
【0113】
第1ノード3と第2ノード7との間のセキュアな通信の方法500、600は、図7を参照して以下に記載される。第1ノード3は、上述の方法で決定された共通シークレット(CS)に基づき対称鍵を決定する510。これは、共通シークレット(CS)を標準的な鍵フォーマットに変換するステップを含んで良い。同様に、第2ノード7も、共通シークレット(CS)に基づき対称鍵を決定できる610。
【0114】
第1ノード3から通信ネットワーク5を介して第2ノード7へ第1通信メッセージをセキュアに送信するために、第1通信メッセージは暗号化される必要がある。したがって、対称鍵は、第1通信メッセージを暗号化して暗号化第1通信メッセージにするために520、第1ノードにより使用される。暗号化第1通信メッセージは、次に、通信ネットワーク5を介して第2ノード7へ送信される530。第2ノード7は、一方で、暗号化第1通信メッセージを受信し620、対称鍵で暗号化第1通信メッセージを復号化して第1通信メッセージにする630。
【0115】
同様に、第2ノード7は、対称鍵で第2通信メッセージを暗号化して暗号化第2メッセージにして良い640。暗号化第2メッセージは、次に、第1ノード3へ送信される650。第1ノード3は、次に、暗号化第2通信メッセージを受信し540、それを復号化して第2通信メッセージにする550。
【0116】
<口座の階層構造-チェーン構造>
上述の方法300、400から分かるように、第2ノード第2公開鍵(P2E)は、第2ノードマスタ公開鍵(P1E)から確定的に導出される。同様に、第1ノード第2公開鍵も、第1ノードマスタ公開鍵(P1P)から確定的に導出できる。方法300、400を繰り返し実行することにより、第1ノード追加公開鍵及び第2ノード追加公開鍵も、確定的に導出できる。
【0117】
つまり、上述の方法300、400は、一連の連続する生成元を決定するために使用されて良い。ここで、各々の連続する生成元は、先行する生成元に基づき決定されて良い。代替として、連続する鍵が、マスタ鍵に直接基づき決定されて良い。代替として、連続する鍵は、上述の方法の組み合わせにより決定されて良い。
【0118】
例えば、連続する単一目的の鍵を生成するために方法300のステップ310~370’を繰り返す代わりに、ノード3、7間の事前合意により、生成元の階層構造を確立するために、生成元(GV)について前に使用されたメッセージが、両方のパーティにより繰り返し再ハッシュされ得る。実際に、メッセージ(M)のハッシュに基づく生成元は、次世代の生成元(GV-2)のための次世代メッセージ(M’)になり得る。これを行うことは、計算されるべき共有シークレットの連続生成を可能にし、更なるプロトコルにより確立される送信、特に共通シークレットを生成する毎に複数のメッセージの送信の必要がない。次世代共通シークレット(CS’)は、以下のように計算できる。
【0119】
先ず、第1ノード3及び第2ノード7の両者が、次世代の生成元(GV-2)を独立して決定する。これは、ステップ320及び420と同様であるが、次式により適応される。
M’=SHA-256(M) (式7)
GV-2=SHA-256(M’) (式8)
GV-3=SHA-256(SHA-256(M)) (式9)
【0120】
第1ノード3は、次に、上述のステップ370及び330と同様に、次世代の第2ノード第2公開鍵(P3E)及び第1ノード第2秘密鍵(V3P)を決定して良い。本例では、次世代は第3世代である。つまり、第2ノード第3公開鍵及び第2ノード第3秘密鍵が決定される。第2ノード7は、次に、上述のステップ430及び470と同様に、次世代の(第3世代)第1ノード第2公開鍵(P3P)及び第2ノード第2秘密鍵(V3E)を決定して良い。
【0121】
第1ノード3及び第2ノード7は、次に、それぞれ、次世代共通シークレット(CS’)を決定して良い。
【0122】
特に、第1ノード3は、次式により次世代共通シークレット(CS’)を決定する。
CS’=V3P×P3E (式10)
【0123】
第2ノード7は、次式により次世代共通シークレット(CS’)を決定する。
CS’=V3E×P3P (式11)
【0124】
更なる世代(CS’’、CS’’’、等)は、チェーン階層構造を生成するために同じ方法で計算できる。この技術は、第1ノード3及び第2ノード7の両者が元のメッセージ(M)又は最初に計算された生成元(GV)、及びそれがどのノードに関連するか、を見失わないことを要求する。これは公に知られた情報なので、この情報の保有に関してセキュリティ問題は存在しない。したがって、この情報は、(ハッシュ値を公開鍵にリンクする)「ハッシュテーブル」に保持され、(例えばTorrentを用いて)ネットワーク5に渡り自由に配布されて良い。さらに、階層構造内の任意の個々の共通シークレット(CS)が今までに解決されていない場合、これは、秘密鍵V1P、V1Eがセキュアなままであるならば、階層構造の中の任意の他の共通シークレットのセキュリティに影響しない。
【0125】
図8は鍵の階層的チェーン構造の一例を示す。この構造では、生成元GV-2及びGV-3は、式7~9で上述したように計算されて良い。しかしながら、生成元は代替方法で計算されて良いことが理解されるべきである。
【0126】
異なる鍵は、異なる支払目的のために使用されて良く、第1ノード3又は第2ノード7に関連付けられた口座を表して良い。例えば、P2Pは口座を表して良く、該口座から、暗号通貨、例えば第1ノードに関連付けられた雇用者の給与支払基金が転送される。P2Eは、第1ノード3から転送された暗号通貨を受信する第2ノード7にある対応する口座を表して良い。
【0127】
更なる例では、P3Pは、第1ノード3に関連付けられた雇用者により源泉徴収された税を表して良く、これはP3Eにより表される口座に転送されて良い。本例では、P3Eにより表される口座は、源泉徴収税に関連付けられて良く、又は暗号通貨を受信するための一般口座であって良い。更に別の例では、P4P(又は任意の後の次世代公開鍵)は、第2ノードの老齢退職手当を表して良く、P4E(又は任意の後の次世代公開鍵)に転送されて良い。本例では、P4Eにより表される口座は、老齢退職手当に関連付けられて良く、又は暗号通貨を受信するための一般口座であって良い。
【0128】
第1ノード3が源泉徴収税に関連付けられた第2暗号通貨額を第2ノード7へ転送する例では、第2ノード7は、受信した第2暗号通貨額に関連付けられた第2転送を要求して良い。これは、第2ノード7から、関連税務署、例えばオーストラリア税務署を表す更なるノードへの転送を有して良い。
【0129】
更なる例では、第1ノード3が老齢退職手当に関連付けられた第3暗号通貨額を第2ノード7へ転送する例では、第2ノード7は、受信した第3暗号通貨額に関連付けられた第3転送を要求して良い。これは、第2ノード7から、関連老齢退職基金を表す更なるノードへの転送を有して良い。
【0130】
別の例では、第1ノード3は、第2暗号通貨額を関連税務署に更に転送して良い。別の例では、第1ノードは、第3暗号通貨額を関連老齢退職基金へ更に転送して良い。
【0131】
更に別の例では、第1ノード3は、第2ノード7に関連付けられた口座に、複数の口座への支払を含む支払を定期的に行って良い。複数の口座は、銀行ローン、住宅担保貸付支払、大学進学資金口座、又は休暇金庫を表して良い。本例では、第1ノード又は第2ノードの次世代公開鍵は、銀行ローン、住宅担保貸付支払、大学進学資金、又は休暇金庫を表して良い。
【0132】
別の例では、生成元を生成するためのメッセージは、連続鍵の生成と共に変化して良い。これは、例えば、連続する公開鍵の間で共有される共通シークレット(CS)に対する要件が存在するとき、必要であって良い。これらの共通シークレットは、例えば、連続する公開鍵に関連する情報の暗号化のために使用されて良い。
【0133】
<アカウントの階層構造-木構造>
別の例では、木構造の形式の階層構造が生成され得る。
【0134】
木構造によると、認証鍵、暗号鍵、署名鍵、支払鍵、等のような異なる目的の様々な鍵が決定されて良い。それにより、これらの鍵は、全て単一のセキュアに維持されるマスタキーにリンクされる。これは、種々の異なる鍵を有する木構造901を示す図9に図示される。これらの各々は、別のパーティと共有されるシークレットを生成するために使用できる。
【0135】
枝分かれする木は、幾つかの方法で達成でき、それらのうちの3つが以下に記載される。
【0136】
(i)マスタキー・スポーニング
チェーン階層構造では、乗算した再ハッシュしたメッセージを元のマスタキーに加算することにより、各々の新しい「リンク」(公開/秘密鍵ペア)が生成される。例えば(明確性のため、第1ノード3の秘密鍵のみを示す)、
V2P=V1P+SHA-256(M) (式12)
V2P’=V1P+SHA-256(SHA-256(M)) (式13)
V2P’’=V1P+SHA-256(SHA-256(SHA-256(M))) (式14)
等である。
【0137】
枝を生成するために、任意の鍵がサブマスタキーとして使用できる。例えば、V2P’は、正規のマスタキーに対して行われるように、ハッシュを加算することにより、サブマスタキー(V3P)として使用できる。
V3P=V2P’+SHA-256(M) (式15)
【0138】
サブマスタキー(V3P)は、それ自体が、次世代鍵(V3P’)を有して良い。例えば次式の通りである。
V3P’=V2P’+SHA-256(SHA-256(M)) (式16)
【0139】
これは、図10に示すマスタキー・スポーニング(spawning)方法を用いて、木構造903を提供する。
【0140】
(ii)論理的関連付け
この方法では、木の中の全てのノード(公開/秘密鍵ペア)は、チェーンとして(又は任意の他の方法で)生成され、木の中のノード間の論理的関係は、ポインタを用いて木の中の各ノードが木の中の自身の親ノードに単純に関連付けられるテーブルにより維持される。したがって、ポインタは、セッションの共通シークレットキー(CS)を決定するために、関連する公開/秘密鍵ペアを決定するために使用できる。
【0141】
(iii)メッセージ多様性
新しい公開/秘密鍵ペアは、チェーン又は木の任意のポイントに新しいメッセージを導入することにより、生成できる。メッセージ自体は、任意であって良く、又は何らかの意味若しくは関数を伝達して良い(例えば、それは、「現実の」銀行口座番号に関連して良い、等である)。新しい公開/秘密鍵ペアを形成するためのこのような新しいメッセージがセキュアに保持されることが望ましい場合がある。
【0142】
<第1転送を検証する>
第1ノード3又は第2ノード7について、第1暗号通貨額の第1転送を検証することが望ましい又は必要であって良い。幾つかの状況では、第1転送を検証するために、第3ノード9又は発行者/サービスプロバイダ25のような更なるノードが必要であって良い。例えば、第2ノードに関連付けられた従業員は、給与支払基金に関連付けられた暗号通貨額が正しいことを確認したいと望む場合がある。
【0143】
図11は、第1ノード3から第2ノード7への暗号通貨の第1転送を検証する方法600を示す。方法600は、第1転送を確認するための要求を受信するステップ610を含む。要求は、第1ノード3、又は第3ノード9が暗号通貨の転送を促進する場合には第3ノード9のような更なるノードで、受信されて良い。方法600は、第1暗号通貨額の第1転送に対応する第1データアウトプットを決定するステップ620を含む。第1データアウトプットを決定するステップは、第1ノード3又は第2ノード7から第1データアウトプットを受信するステップを含んで良い。別の例では、第3ノード9のような更なるノードから第1データアウトプットを受信するステップを含んで良い。更に別の例では、データストア17から第1データアウトプットを受信するステップを含んで良い。
【0144】
方法600は、次に、通信ネットワークを介して、P2P分散台帳から、第1データアウトプットの少なくとも部分を受信するステップ630を含む。これは、台帳に格納されたトランザクションレコードの部分を受信するステップを含んで良い。
【0145】
方法600は、第1データアウトプットから第1転送の指示を決定するステップ640、及び第1転送の指示が要求の中の第1転送に対応することを検証するステップ650を更に含む。これは、例えば、ステップ630で受信したトランザクションレコードの中の公開鍵が第1ノード3及び第2ノード7の公開鍵に対応することを確認するステップに加えて、第1転送に関連付けられた第1暗号通貨額を確認するステップを含んで良い。
【0146】
方法600は、検証の結果を示すアウトプットを送信するステップ660を更に含む。アウトプットは、要求を送信したノード、例えば第1ノード3、第2ノード7、又は第3ノード9へ、送信されて良い。更なる例では、アウトプットは、1より多くのノードへ送信されて良い。
【0147】
<トークン>
理解されるべきことに、本方法において上述された第1暗号通貨額、第2暗号通貨額、又は第3暗号通貨額は、暗号通貨のトークン量に関連して良い。トークンは、フィアット通貨、商品、又はサービスと交換されるべきホルダーに特定権利を与える転送可能な取引(コントラクト、contract)を表して良い。取引は、従来知られている機械実行可能なスマートコントラクトであって良い。
【0148】
したがって、本発明は、あるパーティから別のパーティへデジタルトークンを交換する又は転送するトークン化技術又は方法を組み入れて良い。1つのこのような方法は、上述のように、
暗号通貨額に関連するアウトプット(TxO)を有するブロックチェーントランザクション(Tx)と、Redeemスクリプトのハッシュと、を生成するステップ、を有する。Redeemスクリプトは、
トークン化されたエンティティを表す又はそれへの参照であるトークンを含むメタデータと、
少なくとも1つの(望ましくは2個以上の)公開暗号鍵と、を有する。
暗号通貨額は、ビットコインであって良いが、本発明はこれに関して限定されない。Redeemスクリプトは、トランザクションアウトプットTxOに関連付けられたロックスクリプトの中で提供されて良い。メタデータは、暗号鍵の位置としてブロックチェーンの基礎プロトコルで指定される位置に、Redeemスクリプトの中で提供されて良い。
方法は、トランザクションTxをブロックチェーンへ提出するステップを更に含んで良い。実際には、暗号通貨は、したがって、トークンに関連付けられてブロックチェーン上にロックされて良い。暗号通貨額は、アウトプットTxOについてロックスクリプトの要件を満たすアンロックスクリプトが与えられたときだけ、使用(交換、redeem)できる。特に、Redeemスクリプトは、ハッシュされると、TxOのロックスクリプトの中で提供されるハッシュに一致するものでなければならない。アウトプットTxOに対するロックスクリプトが、(メタデータの中に)トークンを含むRedeemスクリプトのハッシュを有するとき、暗号通貨はトークンに関連付けられる。正しいアンロック(Redeem)スクリプトが提示されると、暗号通貨の所有権は、交換側パーティ又はユーザへ転送されて良い。つまり、使用される。
【0149】
纏めると、トークンは、取引又はエンティティの何らかの他の種類を表すために使用可能な交換可能なエンティティである。取引は、幾つかの形式のうちの1つを取って良い。取引は、コンピュータ実行可能なスマートコントラクトであって良い。例えば、取引は、保持者に権利を与え、又は財産の所有権を示して良い。トークンの値は、契約によって指定されて良く、「ペギングレート」によりアウトプット(TxO)の基礎ビットコイン量にリンクされる。トークンは、ビットコインプロトコルのような暗号通貨プロトコルを用いる新規な種類のトランザクションを介して交換可能である。トランザクションアウトプット(TxO)上のビットコイン値は、デジタル形式の権利取引を表すトークンとして作用する。取引自体は、トランザクションに、又はブロックチェーン上のどこかに、又はブロックチェーン外に、格納されて良く、或いは、公衆アクセス可能な位置に保持されて良く、又は特定の実施形態に依存して、パーティにより秘密に取引に保持されて良い。取引がトランザクション上に又はその中に格納されない場合、トランザクションは、取引へのユニークなポインタ又は参照を格納して良い。
【0150】
トークンは分割可能であって良い。分割可能トークンは、トランザクションアウトプット上の値が、複数の新しいトークンに渡り割り当て可能なより小さな量に細分化され得るものである。分割可能トークンの例は、フィアット通貨の又は競走馬における持分のトークンを含む。分割可能取引は、非ゼロペギングレートを指定する取引として定められる。言い換えると、トークン値は、基礎ビットコイン値に結び付けられる。代替として、トークンは非分割可能であって良い。非分割可能トークンは、固定値の観点で保持者の権利を指定する取引、例えば住宅又はAU$1000を交換する取引である。非分割可能トークンは、したがって、基礎ビットコインの値にリンクされない。
【0151】
幾つかの例では、トークンは、トークン発行者によりデジタル署名されて有効にされなければならない。発行者は、例えば、権限の登録官の行うような当局であって良い。発行者は、支払の見返りに、ユーザにトークンを発行して良い。このトークンは、次に、取引がフィアット通貨又は実行されるべきサービスを交換する権利を表すかに拘わらず、該トークンにリンクされた取引を実行する権利をユーザに与えて良い。
【0152】
トークンの例は以下を含む。
・取引の発行者により、トランザクションアウトプットのBTC値にペッグされたフィアット通貨トークン。例えば、「当該トークン(ビットコイントランザクション)の使用者は、当該トークンの任意の部分を、1000サトシ毎に1シェア(share、持分)(10セント)のレートで豪ドルと交換する資格がある」、
・コピー機のような物品における部分所有権、
・年次休暇又は個人休暇のような従業員休暇権利、
・代わりの時間、超過勤務手当、又はボーナスのような更なる従業員手当、
・従業員福利厚生給付、
・サービスを実行させる権利のための取引。これは、実際のサービス自体と同じではないが、彼らのためにサービスを実行させる単なる権利であることに留意する。この権利は売買可能である。例えば、シドニー都市域内の最大3時間の刈り取りのためのマイケルの刈り取りからのバウチャー。このバウチャー(取引)の保持者は、該バウチャーを実際のサービスと交換できる。
【0153】
トークンは、シェアの値を指定しなければならない。例えば、1シェア=10セントCAD、1シェア=1ルピア、1シェア=1日の年次休暇、又は1シェア=物品(コピー機、コンピュータ、等)の1%の所有権。
【0154】
上述の方法の一実施形態では、方法は、暗号通貨に加えて又はその代わりに、トークン化された利益を含むために使用されて良い。例えば、第2ノード7に関連付けられた第2ユーザ24(従業員)は、第1ノード3に関連付けられた第1ユーザ23(雇用者)における毎月の雇用について1時間の年次休暇のトークン化された利益を受信して良い。
【0155】
トークン化された利益に関連付けられた詳細事項は、P2SHトランザクションのRedeemスクリプト内に置かれて良い。例えば、詳細事項は、上述の方法に従い、Redeemスクリプトのメタデータフィールドに含まれて良い。
【0156】
本例では、第1ノード3は、トークンの発行者として作用し、利益を提示するためにトークンを生成する。トークンは、次に、第1ノード3から第2ノード7へ、例えば第2ノード7の主な給与支払口座へ又は別の導出された口座へ、転送できる。
【0157】
別の例では、第3ノード9が発行者として作用して良い。別の例では、発行者/サービスプロバイダ25が発行者として作用して良い。
【0158】
第2ノード7により受信されたトークンは、別のノードへ転送されて良い。例えば、トークンは、第1ノード3に関連付けられた雇用者の別の従業員へ転送されて良い。事実上、上述の転送可能なトークンは、第1ノード(雇用者)又は第2ノード(従業員)の取引可能な従業員の権利及び利益を表して良い。これらのトークン化された権利及び利益は、同じ雇用者の異なる従業員の間で取引されて良い。
【0159】
<処理装置>
上述のように、第1ノード3及び第2ノード7は、コンピュータ、電話機、タブレットコンピュータ、モバイル通信装置、コンピュータサーバ、等のような電子装置であって良い。電子装置は、処理装置21、27、データストア17、及びユーザインタフェース15を含んで良い。
【0160】
図12は、処理装置21、27の一例を示す。処理装置21、27は、第1ノード3、第2ノード7、又は他のノード9若しくは25において使用されて良い。処理装置21、27は、バス1530を介して互いに通信する、プロセッサ1510、メモリ1520、及びインタフェース装置1540を含む。メモリ1520は、上述の方法100、200、300、400を実施するための命令及びデータを格納し、プロセッサ1510は、メモリ1520からの該命令を実行して、方法100、200、300、400を実施する。インタフェース装置1540は、通信ネットワーク5、及び幾つかの例ではユーザインタフェース15及びデータストア17のような周辺機器との通信を実現する通信モジュールを含んで良い。留意すべきことに、処理装置1501は独立名ネットワーク要素であって良いが、処理装置501は別のネットワーク要素の部分であっても良い。さらに、処理装置1501により実行される幾つかの機能は、複数のネットワーク要素の間で分散されて良い。例えば、第1ノード3は、第1ノード3に関連付けられたセキュアローカルエリアネットワークにおいて方法100、300を実行するために複数の処理装置21を有して良い。
【0161】
本開示はユーザ、従業員、発行人、商人、プロバイダ、又は他のエンティティが特定の動作(署名、発行、決定、計算、送信、受信、生成、等を含む)を実行することを記載したが、この用語は提示の明確化のために使用される。理解されるべきことに、これらの動作は、これらのエンティティにより操作されるコンピューティング装置により実行される。
【0162】
別のエンティティと共にアカウントを有するユーザは、ユーザに関する情報、例えば電子メールアドレス、氏名、及び場合によっては公開鍵、を格納するエンティティを有して良い。例えば、エンティティは、SQL、OrientDB、MongoDB等のようなデータベースを維持して良い。幾つかの例では、エンティティは、ユーザの秘密鍵のうちの1又は複数も格納して良い。
【0163】
本開示の広範な一般的範囲から逸脱せずに、多数の変形及び/又は変更が上述の実施形態に対して行われることが、当業者により理解される。本発明の実施形態は、したがって、あらゆる面で、単に説明であり限定的でないと考えられる。
【符号の説明】
【0164】
1 システム
3 第1ノード
5 通信ネットワーク
7 第2ノード
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【外国語明細書】