(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-07-13
(54)【発明の名称】申込及び承認によるブロックチェーン・トランザクションのためのシステム及び方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20220706BHJP
G06F 21/33 20130101ALI20220706BHJP
G06Q 20/40 20120101ALI20220706BHJP
【FI】
H04L9/32 200Z
H04L9/32 200F
H04L9/32 200B
G06F21/33
G06Q20/40
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021568339
(86)(22)【出願日】2020-05-15
(85)【翻訳文提出日】2022-01-11
(86)【国際出願番号】 US2020033297
(87)【国際公開番号】W WO2020232417
(87)【国際公開日】2020-11-19
(32)【優先日】2019-05-16
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】521497073
【氏名又は名称】ジーエムオー グローバルサイン、インコーポレイテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】特許業務法人浅村特許事務所
(72)【発明者】
【氏名】ヌーナン、ウィロウ
【テーマコード(参考)】
5L055
【Fターム(参考)】
5L055AA73
(57)【要約】
本発明は、ブロックチェーン・トランザクションにおいて受取人のブロックチェーン・アドレスに専ら頼る個人の身元又は機関の身元の識別を妨げる偽名を用いるブロックチェーン・トランザクションの問題を克服する。トランザクションに対する1又は複数の当事者の身元を明らかにし且つ確かめる一連のブロックチェーン・ビットコイン・トランザクションを使用することによって、オンチェーンのブロックチェーン・ビットコイン・トランザクションにおける移動を検証するシステム及び方法が提供される。
【特許請求の範囲】
【請求項1】
譲受人のある特定の身元情報を検証することによって申込及び承認として動作する一連の検証されたブロックチェーン・トランザクションを実行するためのシステムであって、前記システムは、
(g)第1のコンピューティング・デバイスによって、それぞれのノードがブロックチェーン・アドレスを含む1つ又は複数のノードを有するブロックチェーンを形成することと、
(h)第1のサーバによって、第1のエンティティと関連付けられた認定証明書を提供することによって前記ブロックチェーンにおける信頼のルートを明らかにすることであって、前記認定証明書は、前記ブロックチェーン上に未使用のトランザクション出力(UTXO)があるブロックチェーン・アドレスに対応する公開鍵を含むフィールドを含む、信頼のルートを明らかにすることと、
(c)前記第1のサーバから、前記認定証明書を前記第1のエンティティに発行することと、
(d)第2のサーバによって、前記第1のエンティティと関連付けられた前記認定証明書に対応する前記ブロックチェーン上の未使用のトランザクション出力(UTXO)を使う発行トランザクションを作成することと、
(a)第1のコンピューティング・デバイスによって、前記第1のエンティティの身元トークンの前記公開鍵によって使うことができる移動出力を含有する申込トランザクションを作成することと、
(b)第2のコンピューティング・デバイスによって、前記移動出力を入力として含む承認トランザクションを作成することと
を行うように動作可能であることを特徴とする、システム。
【請求項2】
前記第1のコンピューティング・デバイスによって、申込トランザクションを作成する行為は、
第3の秘密鍵を生成することと、
前記第3の秘密鍵のユーザに対応する身元を明らかにすることと、
前記第3の秘密鍵を使用して移動出力を作成して、前記第1のユーザの身元トークンの前記ブロックチェーン・アドレスによって使うことができる出力によるブロックチェーン・トランザクションを作成することと
を含む、請求項1に記載のシステム。
【請求項3】
前記第1のコンピューティング・デバイスによって、申込トランザクションを作成する行為は、
入力を前記第1のユーザの身元トークン出力に追加することであって、追加される前記入力は、前記第1のユーザからの前記トランザクション上の署名を必要とする、追加すること
を含む、請求項1に記載のシステム。
【請求項4】
前記第1のコンピューティング・デバイスによって、申込トランザクションを作成する行為は、
前記申込トランザクションにおいて、使われる時に、指定された被申込者の承認として動作する出力を含むことであって、前記出力は、対応する身元トークン出力の秘密鍵による署名を必要とする、出力を含むこと
を含む、請求項1に記載のシステム。
【請求項5】
前記第2のコンピューティング・デバイスによって、承認トランザクションを作成する行為は、前記第1のエンティティの前記身元トークンに対応する秘密鍵によって前記移動出力に署名することを含む、請求項1に記載のシステム。
【請求項6】
前記発行トランザクションは、
前記第2のサーバにより、そのルート証明書から前記第1の当事者に発行された認定証明書に対応する前記公開鍵によって使うことができる前記身元トークン、及び
現在の前記ルート出力に取って代わる新たなルート出力
を含む、少なくとも2つの出力を有する、請求項1に記載のシステム。
【請求項7】
前記ブロックチェーン・トランザクションは、ビットコイン・ブロックチェーン・トランザクションを含む、請求項1に記載のシステム。
【請求項8】
前記ブロックチェーン・アドレスは、ビットコイン・アドレスである、請求項7に記載のシステム。
【請求項9】
前記発行トランザクションは、ビットコイン・トランザクションである、請求項4に記載のシステム。
【請求項10】
前記認定証明書は、X.509デジタル証明書である、請求項1に記載のシステム。
【請求項11】
前記第1のサーバは、証明サービスと関連付けられる、請求項1に記載のシステム。
【請求項12】
前記認定証明書は、暗号公開鍵と関連付けられる、請求項1に記載のシステム。
【請求項13】
前記認定証明書に含有される前記ブロックチェーン・アドレスに対応する前記ブロックチェーン・ノードは、前記暗号公開鍵と関連付けられる、請求項1に記載のシステム。
【請求項14】
譲受人のある特定の身元情報を検証することによって申込及び承認として動作する一連の検証されたブロックチェーン・トランザクションを実行するための方法であって、
a)第1のコンピューティング・デバイスによって、それぞれのノードがブロックチェーン・アドレスを有する1つ又は複数のノードを有するブロックチェーンを形成することであって、前記1つ又は複数のノードの第1のノードは、トランザクションと関連付けられた第1のブロックチェーン・アドレスを有する、ブロックチェーンを形成することと、
b)認証サーバによって、第1のエンティティと関連付けられた前記ブロックチェーン上でルート出力を明らかにするために認定証明書を明らかにすることであって、前記認定証明書は、前記ブロックチェーン上に未使用のトランザクション出力(UTXO)があるブロックチェーン・アドレスに対応する公開鍵を指定するルート証明書を含む、認定証明書を明らかにすることと、
c)前記認証サーバから、前記第1のコンピューティング・デバイスと関連付けられた第1のエンティティに、前記認定証明書を発行することと、
d)発行サーバによって、前記第1のエンティティと関連付けられた前記認定証明書に対応する未使用のトランザクション出力(UTXO)を使う発行トランザクションを作成することと、
e)第1のコンピューティング・デバイスと関連付けられた第1のエンティティによって、前記第1のエンティティの身元トークンの前記公開鍵によって使うことができる移動出力を含む申込トランザクションを作成することと、
f)第2のエンティティと関連付けられた第2のコンピューティング・デバイスによって、前記移動出力を入力として含む承認トランザクションを作成することと
を含む、方法。
【請求項15】
前記発行トランザクションは、
前記第2のサーバにより、そのルート証明書から前記第1の当事者に発行された認定証明書に対応する前記公開鍵によって使うことができる身元トークン、及び現在の前記ルート出力に取って代わる新たなルート出力
を含む、少なくとも2つの出力を有する、請求項14に記載の方法。
【請求項16】
前記第2のコンピューティング・デバイスによって、承認トランザクションを作成する行為は、前記発行トランザクションと関連付けられた前記身元トークンに対応する前記秘密鍵によって前記移動出力に署名することを含む、請求項14に記載の方法。
【請求項17】
前記ブロックチェーンは、ビットコイン・ブロックチェーンを含む、請求項14に記載の方法。
【請求項18】
前記ブロックチェーン・アドレスは、ビットコイン・アドレスである、請求項14に記載の方法。
【請求項19】
前記発行トランザクションは、ブロックチェーン・ビットコイン・トランザクションである、請求項14に記載の方法。
【請求項20】
前記認定証明書は、X.509デジタル証明書である、請求項14に記載の方法。
【請求項21】
前記第1のサーバは、証明サービスと関連付けられる、請求項14に記載の方法。
【請求項22】
前記認定証明書は、暗号公開鍵と関連付けられる、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許は、2019年5月16日に出願された米国特許仮出願第62/848,927号の優先権及び利益を主張するものである。本節に引用される全ての文書は、参照により本明細書に組み込まれている。
【0002】
本開示は、一般に、ブロックチェーンに関し、より具体的には、ブロックチェーン・ビットコイン・トランザクションにおいて意図された受取人の身元を検証することによって、申込及び対応する承認の機能を果たすことができる一連の検証されたブロックチェーン・トランザクションを作成することに関する。
【背景技術】
【0003】
ブロックチェーン技術(単にブロックチェーンという時もある)は、デジタル通貨を実装するために使用されている比較的新しい技術である。ブロックチェーン技術は、Satoshi Nakamotoによる「Bitcoin:A Peer-to-Peer Electronic Cash System」という名称の2008年の論文に記載されており、この内容全体は、参照により本明細書に組み込まれている。ブロックチェーンは、トランザクションのリストを記憶するデータ構造であり、送信元識別子と宛先識別子との間のトランザクションを記録する分散型電子台帳と考えられ得る。トランザクションは、ブロックにバンドルされ、(第1のブロック以外の)全てのブロックは、以前のブロックを参照し、又はチェーンにおける以前のブロックにリンクされる。コンピュータ・ノードは、ブロックチェーンを維持し、それぞれの新たなブロック、ひいては対応するブロックに含有されるトランザクションを暗号で検証する。この検証プロセスは、計算的に解決するのが困難であるが、認証することは、簡易な問題を解決することを伴い、「プルーフ・オブ・ワーク」と称される時がある。
【0004】
ブロックチェーン全体の整合性(例えば、以前に記録されたトランザクションは変更されていないという信頼度)は保存され、これは、それぞれのブロックが以前のブロックの暗号ハッシュ値を参照することを意味する。したがって、ブロックが以前のブロックを指す時、ブロックに含有されているデータ(例えば、トランザクション)による変更及び改ざんを行うことは困難になる。これは、データに対する小さな変化さえもブロック全体のハッシュ値に影響するからである。ブロックが追加されるごとに以前のブロックのコンテンツの改ざんの困難さが増大する。したがって、ブロックチェーンのコンテンツが全ての人に可視になる場合でも、事実上変更することは不可能である。
【0005】
ブロックチェーン・トランザクションに使用される識別子は、公開鍵暗号作成方法などの暗号作成方法によって作成される。例えば、ユーザはシークレット鍵に基づいて宛先識別子を作成することができる。秘密鍵と宛先識別子との間の関係は、ユーザが作成されたトランザクションからの出力と関連付けられる「証拠」を提供するために後で使用可能である。換言すれば、ユーザは、以前のトランザクションのコンテンツを「消費する」ように現時点で別のトランザクションを作成することができる。さらに、宛先識別子と対応する秘密鍵との間の関係をユーザのみが知っているため、ユーザが(秘密鍵を通してのみリンクされる)多くの異なる宛先識別子を作成できる場合でも、ユーザは匿名性を有する。それ故に、ユーザと、ブロックチェーンに含まれる複数のトランザクションとの全体的な関連性は、他のユーザから秘密のままにすることができる。トランザクションの詳細は、分散型台帳上で公的に利用可能にすることができるが、これらのトランザクションの潜在的な参加者は秘密のままにすることができるが、これは、識別子が対応する参加者しか知らないシークレット鍵にリンクされるからである。
【0006】
ビットコインを含むパブリック・ブロックチェーンによる課題の1つは、ビットコイン・トランザクションが偽名を用いるため、対応する個人の身元又は機関の身元を検証することはユーザにとって困難になる。偽名を用いる結果として、ビットコインを一当事者から別の当事者に移動するビットコイン・トランザクションは、必ずしも申込及び承認を具現化するとは限らない。例えば、移動側当事者(すなわち、譲渡人)は、受け取り当事者(すなわち、譲受人)のビットコイン・アドレスにビットコインを彼らが知ることなく又は彼らの同意なく移してよい。ビットコインのデジタル領域におけるこういった知識又は同意の欠如は、申込及び承認を必要とする契約法の指針には受け入れ難いものである。
【0007】
ビットコイン・トランザクションにおいて透明性が元々欠如している結果として、ビジネス上の関係ではビットコインを使用するのをためらう場合があるが、これは、このような関係ではこのような身元を疑いのない程度まで容易に検証することができないからである。全てのケースに望ましいわけではないが、このような検証は、規則、例えば、本人検証(KYC:know-your-customer)及び資金洗浄対策(AML:anti-money-laundering)の義務に従うのに有用であり得る。このような義務は、例えば、トランザクション参加に関連する情報の報告又はログインを含むことができる。一部のビジネス上の関係ではビットコインを使用するのをためらう場合があるが、これは、このような関係ではこのような身元を疑いのない程度まで容易に検証することができないからである。これは、従来のビットコイン・トランザクションにおける受取人の身元がトランザクションに埋め込まれていないことで、悪意のある侵入者が自身で、意図された受取人のアドレスをスワッピングしているというリスクが非常に大きくなるからである。ビットコイン・トランザクションは、例えば、受取人を明示するためにビットコイン・アドレスを使用して偽名を用いるものである。その結果、トランザクションにおいて明示された受取人の身元を検証することは困難である。少なくとも、このような身元がトランザクション自体に埋め込まれていないため、悪意のある干渉者が自身で、意図された受取人のアドレスをスワッピングしているという大きなリスクがある。そのように、トランザクションを行うことになる時に無視できない詐欺の可能性がある。ビットコインを一当事者から別の当事者に移動する簡易なビットコイン・トランザクションは、この詐欺の可能性の結果として、必ずしも申込及び承認を具現化するとは限らない。例えば、移動側当事者(すなわち、譲渡人)は、受け取り当事者(すなわち、譲受人)のビットコイン・アドレスに彼らが知ることなく又は彼らの同意なくビットコインを移してよい。ビットコインのデジタル領域におけるこの知識又は同意の欠如は、申込及び承認を必要とする契約法の指針には受け入れ難いものである。すなわち、慣習法では、契約には申込及び承認を必要とする場合がある。申込には、一定の条件下で拘束力のある契約を結ぼうとする意志があり得る。承認は、これらの条件によって結ばれる明白且つ無条件の受諾の表現であり得る。承認なく、申込は法的に実施可能な契約にならない場合がある。
【0008】
それ故に、ブロックチェーン・トランザクション、例えば、トランザクションが申込及び承認として動作するようなビットコイン・ブロックチェーン・トランザクションにおいて、検証された移動を作成するためのシステム及び関連の方法が必要とされている。
【先行技術文献】
【非特許文献】
【0009】
【非特許文献1】Satoshi Nakamotoによる「Bitcoin:A Peer-to-Peer Electronic Cash System」という名称の2008年の論文
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明は、意図された受取人の身元を検証し、且つ、申込及び承認の機能を果たす、一連のブロックチェーン・トランザクションを実行するためのシステム及び関連のコンピュータ実施方法を提供する。検証可能な身元は、詐欺及び窃盗に対処することが非常に重要である又は必要とされる状況において効率を高めることができる。いくつかの実施例では、ブロックチェーン・トランザクションにおいて意図された受取人の身元を検証することは、特定の暗号公開鍵と関連付けられたある特定の識別情報を保証する一般的に信頼されているデジタル証明書と譲受人のアドレスを照合することを含み得る。意図された受取人によって保持される対応する秘密鍵を所有するだけで、譲受人のデジタル・アイデンティティを検証するのに十分であり得る。
【課題を解決するための手段】
【0011】
本発明は独立請求項によって定められる。従属請求項は有利な実施例を定める。
【0012】
第1の態様によると、譲受人のある特定の身元情報を検証することによって申込及び承認として動作する一連のブロックチェーン・トランザクションを実行するためのシステムであって、該システムは、
(a)第1のコンピューティング・デバイスによって、それぞれのノードがブロックチェーン・アドレスを含む1つ又は複数のノードを有するブロックチェーンを形成することと、
(b)第1のサーバによって、第1のエンティティと関連付けられた認定証明書を提供することによってブロックチェーンにおける信頼のルートを明らかにすることであって、認定証明書は、ブロックチェーン上に未使用のトランザクション出力(UTXO:unspent transaction output)があるブロックチェーン・アドレスに対応する公開鍵を含むフィールドを含む、信頼のルートを明らかにすることと、
(c)第1のサーバから認定証明書を第1のエンティティに発行することと、
(d)第2のサーバによって、第1のエンティティと関連付けられた認定証明書に対応するブロックチェーン上の未使用のトランザクション出力(UTXO)を使う発行トランザクションを作成することと、
(e)第1のコンピューティング・デバイスによって、第1のエンティティの身元トークンの公開鍵によって使うことができる移動出力を含有する申込トランザクションを作成することと、
(f)第2のコンピューティング・デバイスによって、移動出力を入力として含む承認トランザクションを作成することと
を行うように動作可能であることを特徴とするシステムが提供される。
【0013】
本発明は、システム及び関連のコンピュータ実施方法が、ブロックチェーン上のスマート・コントラクトを可能にするために使用されてよい契約要素を提供する点で有利である。
【0014】
オプションとして、システムでは、申込者は、使われる時、対応する身元トークン出力の秘密鍵による署名を必要とする指定された被申込者の承認として動作する出力を含む申込トランザクションを作成することができる。
【0015】
オプションとして、システムでは、申込者及び被申込者は、単一の検証された契約トランザクションに対する身元トークン入力を提供し且つこれに署名するように被申込者に要求することによって、申込及び承認両方共を具現化する統合された契約トランザクションを一括して作成することができる。
【0016】
第2の態様によると、申込及び承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを実行するためのシステムを使用する方法であって、該システムは、譲受人の身元情報を明らかにし且つ確かめるように動作可能であり、該方法は、
a)第1のコンピューティング・デバイスによって、それぞれのノードがブロックチェーン・アドレスを有する1つ又は複数のノードを有するブロックチェーンを形成することであって、1つ又は複数のノードの第1のノードは、トランザクションと関連付けられた第1のブロックチェーン・アドレスを有する、ブロックチェーンを形成することと、
b)認証サーバによって、第1のエンティティと関連付けられたブロックチェーン上でルート出力を明らかにするために認定証明書を明らかにすることであって、認定証明書は、ブロックチェーン上に未使用のトランザクション出力(UTXO)があるブロックチェーン・アドレスに対応する公開鍵を指定するルート証明書を含む、認定証明書を明らかにすることと、
c)認証サーバから、第1のコンピューティング・デバイスと関連付けられた第1のエンティティに、認定証明書を発行することと、
d)発行サーバによって、第1のエンティティと関連付けられた認定証明書に対応する未使用のトランザクション出力(UTXO)を使う発行トランザクションを作成することと、
e)第1のコンピューティング・デバイスと関連付けられた第1のエンティティによって、第1のエンティティの身元トークンの公開鍵によって使うことができる移動出力を含む申込トランザクションを作成することと、
f)第2のエンティティと関連付けられた第2のコンピューティング・デバイスによって、移動出力を入力として含む承認トランザクションを作成することと、を含む方法が提供される。
【0017】
オプションとして、方法は、指定された期間内に被申込者によって承認されない場合、申込者が、ブロックチェーン・ビットコイン・トランザクションにおいて作成された移動出力を取り戻すことを含んでよい。このように、申込者は期間限定申込を提供することができる。
【0018】
オプションとして、方法は、被申込者に再割り当てされた、又は不明確さを低減するために申込者にまた再割り当てされた1つ又は複数の出力によるP2PKHブロックチェーン・ビットコイン・トランザクションにおける被申込者の承認を含んでよい。
【0019】
オプションとして、方法は、申込者及び被申込者が単一契約のトランザクションに署名することを含んでよい。
【0020】
いくつかの実施例では、以下の特徴の1つ又は複数が含まれてよい。
a.ブロックチェーンは、ビットコイン・ブロックチェーンであってよい。
b.ブロックチェーン・アドレスは、ビットコイン・アドレスであってよい。
c.認定証明書は、X.509証明書であってよい。
d.アドレス・フィールドは、X.509証明書の拡張フィールドであってよい。
e.サーバは、証明サービスと関連付けられてよい。
f.個人の身元又は機関の身元は、ブロックチェーンと関連付けられてよい。
g.身元確認機能は、ビットコインとは別に維持可能である。
【0021】
いくつかの実施例では、申込者(例えば、譲渡人)は、少なくとも2つの入力:(1)移動されるビットコインに対応する「申込」入力、及び(2)被申込者の身元トークン出力を消費する「承認」入力による「契約」トランザクションを作成することができる。このような一実施例によると、「契約」トランザクションにおいて、「移動」出力は指定されたビットコイン・アドレス、すなわち、意図された受取人(例えば、譲受人/被申込者)のビットコイン・アドレスに割り当て可能である。申込者は、「契約」トランザクションにデジタル署名することによって申込を行うことができる。
【0022】
いくつかの実施例では、意図された受取人(例えば、譲受人/被申込者)は、上述された「契約」トランザクションにデジタル署名することによって該受取人の承認を示すことができる。デジタル署名は、承認として動作すること、及び、意図された受取人(例えば、譲受人/被申込者)の身元を明らかにすることの両方を行うことができる。
【0023】
いくつかの実施例では、上述した「契約」トランザクションは、指定されたビットコイン・アドレス(例えば、譲受人のビットコイン・アドレス)に契約トランザクションの「移動」出力を割り当てることができる。
【0024】
いくつかの実施例では、申込者は「契約」トランザクションにデジタル署名することによって申込を行うことができる。
【0025】
いくつかの実施例では、ブロックチェーン・ビットコイン・トランザクションにおける被申込者の身元を検証するために、申込者は、特定の身元トークンのみが有効な承認トランザクションに署名可能であることを条件として要求することができる。このように、トランザクションにおける被申込者の身元情報は、申込者が、一般的に信頼されているデジタル証明書と被申込者のビットコイン・アドレスを照合するによって検証され得る。デジタル証明書は、さまざまなやり方で被申込者のビットコイン・アドレスを証明している。例えば、デジタル証明書は、拡張子で、被申込者のビットコイン・アドレス又は被申込者の対応する暗号公開鍵を含むことができる。代替的には、証明書の暗号公開鍵は、ビットコイン・アドレスが導出する同じ公開鍵に対応し得る。このように、ブロックチェーンにおける出力は特定のデジタル証明書に、ひいては、CAによって検証された個人の身元又は組織の身元にもリンク可能である。ある特定の事例では、デジタル証明書の秘密鍵の保持者のみ、仮定して証明書のサブジェクトのみが、ブロックチェーン上の出力を使うために必要とされる対応する秘密鍵を保持する。
【0026】
いくつかの実施例では、有効とされる未使用とされるべきブロックチェーン上の特定の出力(すなわち、UTXO)として身元を表すことは有益であり得る。さらに又は代替的には、例えば、CAが対応するデジタル証明書を取り消す場合でも使用可能である共有鍵としてブロックチェーン上に身元を抽象的に表すことは有益であり得る。
【0027】
本発明の1つの実施例では、コンピュータ・プログラムであって、上記のコンピュータ・プログラムがコンピュータ上で実行される時にコンピュータに本明細書に開示されるコンピュータ実施方法のステップを行わせるためのプログラム・コード手段を含むコンピュータ・プログラム、及び、プロセッサによって実行される時、本明細書に開示される方法を実行させるコンピュータ・プログラム製品を記憶する非一時的なコンピュータ可読記録媒体が提供される。
【0028】
当業者には理解されるように、意図された受取人の身元を検証し、且つブロックチェーン・トランザクションにおける申込及び承認の機能を果たす一連の検証されたブロックチェーン・トランザクションを作成するためのシステムは、例えば、コンピュータ・システム、方法、又はコンピュータ・プログラム製品として具現化されてよい。それ故に、さまざまな実施例は、全体的にハードウェア実施例、全体的にソフトウェア実施例、又はソフトウェア態様及びハードウェア態様を組み合わせる一実施例の形を取ってよい。また、いくつかの実施例は、記憶媒体において具現化されるコンピュータ可読命令(例えば、ソフトウェア)を有するコンピュータ可読記憶媒体上に記憶されるコンピュータ・プログラム製品の形を取ってよい。さまざまな実施例は、ウェブ、モバイル、ウェアラブルなコンピュータ実施の、コンピュータ・ソフトウェアの形を取ってよい。例えば、ハード・ディスク、コンパクト・ディスク、DVD、光ストレージ・デバイス、及び/又は磁気ストレージ・デバイスを含む任意の適したコンピュータ可読記憶媒体が利用されてよい。
【0029】
1つの態様によると、被申込者による承認は明白であるべきである。いくつかの実施例では、譲受人が承認を示す1つのやり方は、承認を自身に自己割り当てすることであってよい。代替的には又はさらに、これは、トランザクションにおいて特定のタイプ及び値の出力を含むことによって達成可能である。
【0030】
本発明の好ましい実施例がまた、従属請求項又は上記の実施例と、対応する独立請求項との任意の組み合わせとすることができることは、理解されたい。例えば、身元トークン、承認出力、及び他の「シグナリング」出力は、ゼロの公称値を有する出力及び対応する入力を使用することによって、比較的明白なやり方で実施可能である。このような実装形態では、ゼロ値「トークン」を使用することは可能であるが、これは、ビットコインの合意規則によって、(1)それぞれの入力の公称量がゼロ以上である(すなわち、負ではない)、及び(2)公称出力量の和が公称入力量の和以下であるという条件で、トランザクションが、ゼロの公称値を有するゼロ値出力及びゼロ値入力両方を有することができるからである。
【0031】
本発明のこれらの及び他の態様は、以降に説明される実施例から明らかとなるであろうし、該実施例を参照して明瞭になるであろう。
【0032】
前述の特徴は、図面の以下の説明からさらに詳しく理解され得る。図面は開示された技術の説明及び理解に役立つ。あらゆる可能な実施例を示し且つ説明することは実際的ではない又は不可能であることが多いため、提供される図は1つ又は複数の例示の実施例を示す。それ故に、図は本発明の範囲を限定するように意図されていない。図における同様の番号は同様の要素を示す。
【図面の簡単な説明】
【0033】
【
図1】認証サーバを含むビットコイン・システム動作の様式を表す高水準アーキテクチャの例証の図である。
【
図3A】QRコード(登録商標)を含むシステムの図である。
【
図4】申込及び承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを実行するためのシステムであって、該システムは、トランザクションの相手方(すなわち、譲受人)の身元情報を明らかにし且つ確かめるように動作可能である、システムを使用するためのプロセスの最上位のフローチャートである。
【
図5】申込及び承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを実行するためのシステムであって、該システムは、トランザクションの相手方(すなわち、譲受人)の身元情報を明らかにし且つ確かめるように動作可能である、システムを使用するためのプロセスの
図4のより詳細なフローチャートである。
【
図6】コンピューティング・デバイスのブロック図である。
【発明を実施するための形態】
【0034】
以降、本開示の例示の実施例について、添付の図面を参照しながら詳細に説明する。しかしながら、本開示は多くの異なる形式で具現化されてよく、本明細書に示される実施例に限定されると解釈されるべきではない。もっと正確に言えば、これらの実施例は、本開示が綿密且つ徹底的なものになるように、及び本開示の範囲を当業者に十分伝えるように提供される。図面全体を通して、同じ又は同様の参照番号は同じ又は同様の要素を明示するために使用されるものになる。
【0035】
本明細書に論じられる方法及びシステムの実例は、応用の際、以下の説明に示される又は添付の図面に示される構成の詳細及び構成要素の配置に限定されない。方法及びシステムが他の実施例で実装可能であり、且つさまざまなやり方で実践又は実行可能であることは、当業者には理解されるであろう。具体的な実装形態の実例は、単に例示の目的で本明細書に提供されており、限定することを意図するものではない。また、本明細書で使用される術語及び専門用語は、説明する目的のものであり、限定とみなされるべきではない。単数形で言及される本明細書におけるシステム及び方法の実例、実施例、構成要素、要素、又は行為に対するいずれの言及もまた、複数を含む実施例に及んでいる場合があり、本明細書における任意の実施例、構成要素、要素、又は行為に対する複数形でのいずれの言及もまた、単一のもののみを含む実施例に及んでいる場合がある。単数形又は複数形での言及は、本開示のシステム若しくは方法、これらの構成要素、行為、又は要素を限定するように意図されていない。本明細書における「含む」、「備える」、「有する」、「含有する」、「伴う」、及びこれらの変形の使用は、その後に列挙された項目、これらの均等物、及び追加項目を包含することが意図されている。「又は」への言及は、「又は」を使用して説明されるいずれの用語も説明される用語の1つ、複数、及び全てのいずれかを指示することができるように包括的であると解釈可能である。
【0036】
ブロックチェーンを説明する時、「ブロック」という用語が典型的には、ブロックチェーンにおけるブロックに言及するために使用され、且つ、「ノード」という用語が典型的には、ライトニング・ネットワークにおけるノードに言及するために使用されることを当業者は認識するであろう。しかしながら、本開示では、「ブロック」及び「ノード」という用語は、ブロックチェーンにおけるブロック、ライトニング・ネットワークにおけるノード、又はこの両方に言及するために区別なく使用される。「ブロック」及び「ノード」という用語はまた、本開示の文脈において適切な任意のブロック又はノードを意味するように解釈されてよい。
【0037】
さまざまな実施例について、方法、装置(例えば、システム)、及びコンピュータ・プログラム製品のブロック図及びフローチャート図を参照しながら以下に説明する。ブロック図及びフローチャート図のそれぞれのブロック、及びブロック図及びフローチャート図におけるブロックの組み合わせが、それぞれ、コンピュータ・プログラム命令を実行するコンピュータによって実施可能であることは理解されるべきである。これらのコンピュータ・プログラム命令は、コンピュータ又は他のプログラマブル・データ処理装置上で実行する命令がフローチャートのブロック(単数又は複数)において指定される機能を実施するための手段を作成するように、汎用コンピュータ、専用コンピュータ、又は機械を製造するための他のプログラマブル・データ処理装置上にロードされてよい。
【0038】
これらのコンピュータ・プログラム命令はまた、コンピュータ可読メモリに記憶された命令によってフローチャートのブロック(単数又は複数)において指定される機能を実施するように構成される製品が製造されるような特定のやり方で機能するようにコンピュータ又は他のプログラマブル・データ処理装置に指図することができるコンピュータ可読メモリに記憶されてよい。コンピュータ・プログラム命令はまた、コンピュータ又は他のプログラマブル装置上で実行する命令がフローチャートのブロック(単数又は複数)において指定される機能を実施するためのステップを提供するように、コンピュータ又は他のプログラマブル装置上で行われる一連の動作ステップがコンピュータ実施プロセスを生じさせるようにコンピュータ又は他のプログラマブル・データ処理装置にロードされてよい。コンピュータ・プログラム命令はまた、例えば、ソリッドステート・メモリ、ディスク又はテープなどの磁気メモリ、コンパクト・ディスク又はデジタル多用途ディスクなどの光又は光磁気可読メモリなどにおける、キャリア媒体又はデバイス可読形態において記憶されてよく、処理デバイスは、プログラム又はこの一部を使用してこれを動作のために構成する。コンピュータ・プログラムは、電子信号、無線周波数搬送波、又は光搬送波などの通信媒体において具現化されるリモート・ソースから供給されてよい。このようなキャリア媒体はまた、本開示の態様として想定される。
【0039】
それ故に、ブロック図及びフローチャート図のブロックは、指定された機能を実行するための機構の組み合わせ、指定された機能を実行するためのステップの組み合わせ、及び指定された機能を実行するためのプログラム命令をサポートする。ブロック図及びフローチャート図のそれぞれのブロック、及びブロック図及びフローチャート図のブロックの組み合わせが、指定された機能又はステップを実行する専用ハードウェアベースのコンピュータ・システム、又は、適切なコンピュータ命令を実行する専用ハードウェア及び他のハードウェアの組み合わせによって実装可能であることも理解されるべきである。
【0040】
身元を明らかにし且つ確かめる一連のブロックチェーン・ビットコイン・トランザクションを使用することによって移動を検証することで、一連のブロックチェーン・ビットコイン・トランザクションが申込及び対応する承認として動作するシステム及び方法が提供される。実施例は、トランザクションにおける申込及び対応する承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを介してトランザクションの相手方(すなわち、譲受人)の身元情報を明らかにし且つ確かめるためのシステムを提供する。証明機関(CA:certification authority)は最初に、CAのX.509ルート証明書による秘密鍵を共有するブロックチェーン上の「ルート」出力を明らかにする。その後、CAは、この「ルート」出力を使うことによって「発行」トランザクションを作成する。この「発行」トランザクションの「身元」出力は、CAがユーザに発行するデジタル証明書において指定される公開鍵によって使うことができる。ユーザは、ブロックチェーン上の自身の個人の身元を主張するために自身の対応する秘密鍵によってトランザクションに署名することができ、相手方は検証された移動を完了させるために自身の署名を必要とする可能性がある。検証された移動は、未使用のトランザクション出力(UTXO)のビットコイン・アドレスによる公開鍵及び秘密鍵を共有し、ユーザのビットコイン・アドレスによる秘密鍵を共有するユーザにデジタル証明書を発行し、ユーザの証明書による秘密鍵を共有するビットコイン・アドレスに値を割り当てるルート証明書を含み得る。ユーザは、移動されたビットコインを自身のアドレスに再割り当てすることによって移動を承認することができる。
【0041】
図1を参照すると、コンピューティング・システム100は、ネットワーク106上で通信するコンピューティング・デバイス102及び104を含む。コンピューティング・デバイス102及び104は、限定はされないが、デスクトップ・コンピュータ、ラップトップ・コンピュータ、携帯電話、サーバ、モノのインターネット(IoT)・センサ、埋め込みデバイスなどを含む、ソフトウェア命令を実行することができる任意のタイプのコンピューティング・デバイスであってよい。ネットワーク106は、コンピューティング・デバイスが互いに通信できるようにする、限定はされないが、WAN、LAN、インターネットなどを含む任意のタイプのネットワークであってよい。
【0042】
システム100はまた、ユーザ登録及び証明サービスと関連付けられてよい1つ又は複数のサーバ108を含んでよい。ユーザ登録及び証明サービスは、アドレス、身元、トランザクション、署名などの安全な認証を提供するデジタル証明書を発行する及び/又は提供するサービス(例えば、公開鍵インフラストラクチャ(PKI:public key infrastructure)に対応する証明機関(CA))であってよい。ユーザ登録及び証明サービスはまた、(例えば、デジタル署名又はトランザクションを立証する又は認可することによって)データ又はトランザクションの送信元又はエンティティとの関連性を明らかにするために非対称暗号(例えば、公開鍵/秘密鍵のペアを使用する公開鍵暗号)を使用する認証を提供することができる。
【0043】
システム100はまた、エンティティ112と関連付けられたサーバ110を含んでよい。エンティティ112は、サーバ108によって認証可能である身元を有する企業、個人、又は任意の他の合法的なエンティティであってよい。例えば、CAは、エンティティの名称、郵送先住所、インターネット・ドメイン名、及びビットコイン・アドレスを検証することができる。オプションとして、また、例えば、CAは、ブロックチェーン識別子に対応する秘密鍵の所有権を示すようにエンティティに要求することによって(例えば、ビットコイン・アドレスに対応する秘密鍵を使用して構築されるデジタル署名を提供することによって)ブロックチェーン識別子(例えば、ビットコイン・アドレス)の所有権を明らかにすることができる。
【0044】
システム100は、2つのコンピューティング・デバイス102及び104、ユーザ登録及び証明サービスと関連付けられたサーバ108、及び、ネットワーク106上で通信するエンティティ112と関連付けられたサーバ110を有する比較的最小のシステムとして示される。しかしながら、さらなるデバイスもネットワーク106上で通信してよく、且つシステム100と対話してよい又はシステム100の一部であってよい。これらのデバイスは例証を容易にするために示されていない。
【0045】
図2をまた参照すると、ブロックチェーン200はシステム100と関連付けられ得る。ブロックチェーン200は、コンピューティング・デバイス102及び104によって、及びサーバ110によって、全体的に又は部分的に記憶されてよい。示されない他のデバイスはまた、ブロックチェーン200の全てを記憶し得る、又はブロックチェーン200の一部を記憶し得る。実施例では、ブロックチェーン200はビットコイン・ブロックチェーン、ライトニング・ネットワークなどであってよい(ライトニング・ネットワークは必ずしもブロックチェーンであるわけではないが、本開示に記載されるシステム及び手法がライトニング・ネットワーク上で又はこれと併せて動作可能であることは留意されたい)。ブロックチェーン200は、ビットコイン・ブロックチェーン又はイーサリアム・ブロックチェーンのように、任意のエンティティ又は個人による参加を可能にするパブリック・ブロックチェーンであってよい。他の実施例では、ブロックチェーン200は、ユーザのクローズド・グループ及びプライベート・トランザクションによるプライベート・ブロックチェーン、又は、グループ又はコンソーシアムによって管理され得るハイブリッド・ブロックチェーンであってよい。
【0046】
ブロックチェーン200のタイプに関係なく、さまざまなエンティティはブロックチェーンにおけるトランザクションと関連付けられ得る。例えば、ブロックチェーン200は、1つのエンティティから別のエンティティに資金を移動するブロックチェーン・ビットコイン・トランザクションを含んでよい。オプションとして、トランザクションは、(トランザクションへの入力を認可するエンティティと関連付けられた)1つ又は複数の送信元アドレス及び/又は(トランザクションの出力によって潜在的に権利を行使することが可能であるエンティティと関連付けられた)宛先アドレスと関連付けられてよい。財務(及び他の)トランザクションの安全性のため、トランザクションの当事者がトランザクションの他の当事者の身元を認証できる場合は有益であり得る。例えば、受取人が銀行である場合、適正な銀行と関連付けられるように受取人アドレスを認証することは譲渡人にとって有益であり得る。
【0047】
ブロックチェーン200は、デバイス102及び104などのコンピューティング・デバイスによって、作成、維持、及び拡張され得る。ブロックチェーン200は、元のブロック202のような(本開示ではノードとも称される)一連のブロックを含んでよい。「ブロックチェーン」という用語は、ブロックチェーン200の構造全体を指す場合がある、又は構造内の最長の連続したチェーン(例えば、ブロック204)を指す場合がある。ブロックチェーン200は、主ブロックチェーンから分岐する(ブロック206などの)ノードも含んでよい。
【0048】
それぞれのブロックは、ブロックと関連付けられ及びブロックチェーン・トランザクションを承認し且つ送るために使用されるアドレス210、及びデータ・トランザクションのハッシュ・ツリー212を含有し得る。実施例では、ブロックは特定のエンティティと関連付けられてよい。よって、ブロックのアドレス210はまた、特定のエンティティと関連付けられてよい。例えば、資金がアドレス210に移動される場合、これらの資金はブロック214と関連付けられたエンティティに利用可能になり得る。
【0049】
ライトニング・ネットワークは、基となるブロックチェーン(例えば、ビットコイン)に加えてビルドされたレイヤ2プロトコルである。ユーザのペアは担保によって保障されて誠意を持って交渉するように協定を結ぶ。チャネルと呼ばれるこれらの協定は(例えば、「資金調達」トランザクションのように)ブロックチェーン200において記録可能である。それぞれのペアは、進行中の交渉及び一部署名済みだが未記録の契約(すなわち、「オフチェーン」)を使用して、チャネルの担保の配分を調節し、且つブロックチェーンにおける決済を延期することによって、チャネルを更新する。資金を移動するために、送信者は、別の当事者との未記録の契約を更新し、この別の当事者はさらには、プロセスが受取人に達するまで、別の当事者との契約のうちの1つなどを更新する。この結果は契約更新のチェーンであり得る。
【0050】
当事者は、(過去に取り消された又は更新された契約を拒否することによることを含んで)誠意を持って又はライトニング・ネットワークにおける担保を失うリスクがありながら交渉しなければならない。交渉が決裂し、且つ係争又は違反がない場合、直近の契約更新において合意した配分に従って担保は戻され得る。
【0051】
ブロックチェーンへの記録を延期することによって、ライトニング・ネットワークは、より大きいトランザクション量及びほぼ瞬間的な確定を可能にする。
【0052】
ブロックチェーン自体の速度及び容量の限度は、ライトニング・トランザクションを直接限定することはない。自動的でほぼ瞬間的な交渉及び契約更新は、ブロックチェーンにおいて即座に記録される必要がない場合があり、すなわち、オフチェーンを生じさせ得る。しかしながら、ある特定の事例では、ブロックチェーンは、紛争解決及び処理の速度並びに量を限定する。紛争及び処理が日常的なトランザクションよりもずっとまれであるならば、ライトニング・ネットワークは、非常に高いトランザクション・スケーラビリティを実現可能である。
【0053】
標準的なブロックチェーン・ビットコイン・トランザクションは通常、ブロックチェーンに含まれるまで、すなわち、数個のさらなるブロックがチェーンされたあるブロックに含まれるまで、最終的又は取り消し不能(例えば、確定)として承認されない。トランザクションがブロックに及ぶ前は、まだブロックチェーンの一部ではなく、依然二重使用の影響を受けやすい場合がある。ブロックチェーンのプルーフ・オブ・ワークは、確証のないトランザクションを保護しない。
【0054】
ライトニング・ネットワークでは、ブロックチェーンの決済は延期されるが、信頼を最小化したやり方で延期される。ライトニング・ペイメントが完了する時、これは、ライトニング・ネットワーク・トランザクションに伴う、信頼を最小化した保護を即座に受けてよい。すなわち、相手方が、未記録の契約に違反する場合、該相手方は自身の担保を没収される。その結果、ライトニング・ペイメントは、オフチェーンであり技術的には確定されていないが、効果的に、ほぼ瞬間的に最終的なものになる。
【0055】
ライトニング・ネットワークでは、ビットコインは、それぞれの個々のチャネル内で前後に往復してよい。ライトニング・トランザクションでは、単一のビットコインは、最初の送信者から最後の受信者までずっと、単一のトランザクションでは移動しない場合がある。代わりに、ライトニング・ネットワークは、往復するビットコインの広大なネットワークを形成する場合があり、それぞれの個々のビットコインは単一のチャネル内で前後にのみ動く。
【0056】
交流用の変換器のように、ライトニング・ネットワークにおけるノードは、異なる値のチャネルを維持して他の「高電力」ノードで大きなチャネルを作成し、他のユーザによる小さなチャネルを任意に直接維持する。そうすることで、このようなノードは、非常に高い容量の流れを、日常的な消費者トランザクションによく適している、扱いやすい小さな流れに変換する、変換器の機能を果たすことができる。同様に、このようなノードは、より高い容量のチャネルでのバンドルされた転送に対して同様の方向に進む小さな流れを集約することができる。エンドポイント・ノードが限定されたネットワーク接続性又は計算資源を有する場合、このような高容量ノードはまた、いくつかのルート指定及びチャネル監視タスクを取り扱うことができてよい。例えば、低容量ノードは、ルート決定を、信頼できる認証されたより高い容量の又は良好に接続されたノードに、潜在的に安全にアウトソーシングすることができる。
【0057】
さらに、ライトニング・チャネルが資金調達されなければならないため、ノードは、大量の利用可能な資金を有してよく、且つより多くの(及び高価値の)チャネルを維持してよい。高度に接続されたハブがライトニング・ネットワークに現れると、これらハブは依然信頼を最小化したものになる。チャネルは、ライトニング・ネットワークの規則によって保護され、ノードはチャネルを一方的に閉鎖することができる。
【0058】
ライトニング・ネットワーク上の身元は、大部分は静的且つ公的であるが、トランザクションは相手方のみに知られ得、例えば、いくらかの部分的な情報はトランザクションにおける中間ノードに利用可能であり、いくらかの要約情報はパブリック・ブロックチェーンにおいて利用可能である。ライトニング・ネットワーク上のノードの身元は、オプションとして、公開鍵と関連付け可能である。
【0059】
よって、ライトニング・ネットワークでは、身元及び評判はトランザクションには重要であり得る。例えば、評判は契約及び相手方を探し求める際に重要である。評判によって、潜在的な相手方が、可用性、接続性、及び料金に関する表示を尊重するのかどうかを当事者はより効率的に評価できる。評判は、アップタイム、チャネルの数及び容量、並びに違反及び非相互的な処理の数など、客観的に観測可能なネットワーク・メトリックに基づくことができる。このような情報は、認定証明書によって認証される信頼されたエンティティを使用して広められ得る。
【0060】
公的な身元は非支払人及びマーチャントの認証を可能にする。購入を行う際に、例えば、(例えば、エンティティ及び公開鍵と関連付けられた認定証明書を使用して)認証された身元によって、ユーザは、支払が意図されたマーチャントに対して進められていることを検証でき、且つ請求書及び領収書を確認できる。検証され認証された身元は、とりわけ重要であるが、これは、事前に存在する信用がなく匿名化されたデジタル・コンテキストにおいて防止することが困難である中間者攻撃に対する効率的な保護を提供するからである。
【0061】
効率的な含有される信頼点を提供できる公開鍵インフラストラクチャ(PKI)は、ブロックチェーンの信頼を最小化した性質を損なうことなく、評判及び身元といったこれらの必要性の両方に対処可能である。
【0062】
例えば、ライトニング・ネットワーク上で、ノードはこの公開鍵及びネットワーク識別子(例えば、IPアドレス又は他のエンドポイント識別子)によって表され得る。その公開鍵は、一般的に信頼されているX.509デジタル証明書における公開鍵(又は、別のフィールド、例えば、サブジェクト属性又はX.509拡張における対応する情報)に対応し得る。例えば、再び
図1を参照すると、認定証明書を提供するサーバ108は、(例えば、X.509証明書のような)これらの認定証明書を提供してよい。このデジタル証明書はさらには、証明機関(CA)又は登録認定機関(RA:Registration authority)によって検証又は確定されるような(例えば、企業又はドメイン名によって)ノードの身元を認証するために使用可能である。認証されたライトニング・ノードによって、ユーザは、例えば、支払が意図されたマーチャントに対して実際に進んでいるように徹底することができる。
【0063】
いくつかの実施例では、レイヤ2ブロックチェーン・プロトコル(例えば、ライトニング・ネットワーク)・トランザクションにおける認証のために発行された証明書(例えば、X.509証明書)は、潜在的なトランザクションに関連しているデータ(例えば、宛先、量、時間、相手先又は認証された当事者の署名、又は、1又は複数の参加者の地理的位置)を含有する請求書フィールドを含んでよい。例えば、マーチャントが商品又はサービスの販売に対するトランザクションにおいて顧客からの支払を求めている場合、X.509証明書は、潜在的なトランザクションに関連している情報を含む(例えば、サブジェクト属性として又はX.509拡張における)請求書フィールド(例えば、標準的なライトニング・ネットワークの請求書)を含むことができる。
【0064】
図3を参照すると、エンティティと関連付けられたある特定の身元情報の検証を可能にする認定証明書300は、サーバ108によって発行可能である。オプションとして、認定証明書300は、X.509フォーマットに準拠する場合があり、且つX.509証明書であってよい。オプションとして、認定証明書300はまた、第三者によって認証又は検証され得、例えば、このような証明書のデータのいくつかの部分又は全ては、証明機関(CA)の秘密鍵(例えば、信頼されている或いは認証されたデジタル証明書に対応する秘密鍵)によって署名可能である。実施例では、アドレス210及び/又は公開鍵301は、検証された属性302を含んでよく、該属性302として使用されてよく、又は該属性302を導出するために使用されてよく、オプションとして、例えば、証明機関(CA)によって署名或いは検証された(例えば、認定証明書300の発行中にCAの秘密鍵によって署名された)認定証明書300の一部分内に含まれてよい。認定証明書300に署名するために証明機関によって使用される秘密鍵は、公的な証明サービスと関連付けられ得るサーバ108など、信頼された発行元によって提供されてよい。
【0065】
認定証明書300は、例えば、属性302を含む、属性302として使用される、又は属性302を検証するために使用されるフィールドを含むさまざまなフィールドを含んでよい。例えば、認定証明書300は、検証されたビットコイン・アドレス又はブロックチェーン識別子が導出可能である公開鍵を含むことができる。オプションとして、証明書における1つ又は複数のフィールドは、1つ又は複数の検証されたブロックチェーン・アドレス(例えば、ビットコイン・アドレス)を含有することができる。アドレスは、ブロックチェーンのブロック214において見出される同じアドレス310であってよい。認定証明書300はまた、シリアル番号、発行者名、妥当性、公開鍵、一意のID、及び、限定はされないが、認定証明書300の一部として示されるフィールドに含有される情報など、エンティティを識別する情報を含んでよい。オプションとして、このような情報の一部又は全ては、1つ又は複数の検証された属性を含んでよい、該属性として使用されてよい、又は該属性を導出するために使用されてよい(例えば、公開鍵は、エンティティが対応する秘密鍵の所有を検証するエンティティに対する検証された属性を備えることができる)。よって、認定証明書300は、信頼されたエンティティとのアドレス210及び/又は公開鍵301の関連付け及び認証を行ってよい。
【0066】
認定証明書300に含まれる検証された属性302は、ブロックチェーン・アドレス又は公開鍵に限定されない。例えば、検証された属性は、IPアドレス、別のタイプのネットワーク・アドレス、ブロックチェーン200内のトランザクションと関連付けられた別の一意の識別子、ブロックチェーン200内のトランザクションにおいて移動される量、又は、ブロックチェーン・トランザクション、及び/又はブロックチェーン・トランザクションに関与したエンティティと関連付け可能である任意の他のデータであってよい。実施例では、検証された属性はアドレス参照であってよい。例えば、検証された属性302は、X.509証明書の公開鍵を介してアドレスを間接的に参照してよい。よって、認定証明書300は、認定証明書300にリストされるエンティティが実際に、検証された属性302と関連付けられたブロックチェーン・トランザクションに関与しているエンティティであることを保証することができる。
【0067】
X.509証明書内の別個のフィールドとして示されるが、検証された属性302はX.509証明書内のどこかに記憶されてよい。また、実施例では、検証された属性302はX.509証明書と別に記憶されてよいがX.509証明書と関連付けられてよい。
【0068】
図3Aを参照すると、証明書証明書300はQRコード(登録商標)350に符号化可能である。例として、QRコード(登録商標)は、例えば、DER形式又はPEM形式で証明書を符号化可能である。QRコード(登録商標)350はさらにハードウェア又はソフトウェア・ウォレットを含んでよい352などのコンピューティング・デバイスによって走査されてよい。コンピューティング・デバイスは、トランザクションにおける相手方の身元(例えば、ブロックチェーン・ビットコイン・トランザクションにおける譲受人の身元)を明らかにするために認定証明書を検証することができる。コンピューティング・デバイスは、例えば、証明書が有効であるとの指示と共に認定証明書に含有される身元情報を表示することによって、認定証明書を確認した後ユーザに通知することができる。QRコード(登録商標)における認定証明書は、例えば、暗号通貨若しくはブロックチェーン・アドレス、又はこのようなアドレスに対応する公開鍵を含むことによって、ウォレットに、QRコード(登録商標)と関連付けられたエンティティの検証された身元、又は認定証明書、又は1つ或いは複数の潜在的な又は既存の暗号通貨若しくはブロックチェーン・アドレス、又は、1つ或いは複数の潜在的な又は既存の暗号通貨若しくはブロックチェーン・トランザクション(例えば、ビットコイン・アドレスを参照する又は含むオンチェーンのブロックチェーン・ビットコイン・トランザクション)を提供してよい。
【0069】
オプションとして、ウォレットはさらにまた、認定証明書に基づいて情報の信憑性を検証することができる。また、オプションとして、ウォレットはまた、例えば、サーバ108が、例えば、QRコード(登録商標)に含有される認定証明書を認証することを求めることによって、QRコード(登録商標)における証明書を検証することができる。ウォレットはさらにまた、検証されたエンティティによるトランザクションを実行している信頼できるアドレスによるトランザクションに関わることができる。
【0070】
QRコード(登録商標)350は、例えば、認定証明書及び請求書両方を符号化可能である。ある特定の事例では、請求書は認定証明書内に含有されてよい。さらに又は代替的には、QRコード(登録商標)350は、暗号通貨アドレス又は識別子以外の又はこれに加えて情報を含有する証明書を符号化してよい。例えば、QRコード(登録商標)は、URL、アカウント識別子、ユーザ識別子、又は、回転する若しくは周期的に変化する識別子(例えば、AliPay(商標)、Line(商標)、若しくはWeChat Pay(商標)の支払用URL又はアカウント番号)を含む認定証明書を含有してよい。
【0071】
よって、例えば、エンティティがQRコード(登録商標)を走査する時、エンティティは、QRコード(登録商標)(及びQRコード(登録商標)内の情報)が正確な送信元と関連付けられているという確信を得るために、認定証明書及び該証明書又はQRコード(登録商標)に含有される情報を検証することができる。
【0072】
オプションとして、QRコード(登録商標)は、認定証明書が検索可能であるオンラインの場所(例えば、URL)又はインターフェース(例えば、インターネットでアクセスできるAPI)を符号化することができる。ハードウェア・デバイス又はソフトウェア・プログラム(例えば、ハードウェア・ビットコイン・ウォレット)はさらにまた、認定証明書を(例えば、これを指定されたURLからダウンロードすることによって)検索し、且つ該証明書を確認することができる。例えば、ユーザは、モバイル・デバイス上のビットコイン・ウォレットを使用して、QRコード(登録商標)符号化を走査し或いはURLを参照し、該URLから認定証明書を検索し、例えば、証明書内に含有される又は証明書から導出される身元情報及びビットコイン・アドレスを検証することを含んで、検索された認定証明書を検証することが可能である。
【0073】
オプションとして、QRコード(登録商標)は、証明書が検索可能である場所に加えた情報を含む又は符号化することができる。例えば、QRコード(登録商標)は、認定証明書が検索可能であるURLと共に、宛先ブロックチェーン又は暗号通貨アドレスを含むことができる。オプションとして、証明書を使用して、暗号通貨又はブロックチェーン・アドレスに対応する身元を明らかにし、且つこのような暗号通貨又はブロックチェーン・アドレスがQRコード(登録商標)において符号化される又は含まれるアドレスに適合することを徹底させることができる。オプションとして、検索された証明書を使用して、(例えば、QRコード(登録商標)に含まれるデータが証明書に対応する秘密鍵によって正当に署名されていることをチェックすることによって)QRコード(登録商標)に含有される情報に含まれる、添えられる、或いは関連するデジタル署名をチェックすることができる。
【0074】
本発明は、申込及び承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを実行するためのシステムを使用するための方法であって、システムは、トランザクションの相手方(すなわち、譲受人)の身元情報を明らかにし且つ確かめるように動作可能である、方法を提供する。より一般的には、この一連のブロックチェーン・ビットコイン・トランザクションは、申込及び対応する承認として動作可能である。方法について、
図4に関して最上位で、及び
図5に関してより詳細なレベルで説明する。
【0075】
図4を参照すると、フローチャートでは、申込及び承認として動作する一連のブロックチェーン・ビットコイン・トランザクションを実行するためのシステムを使用するための、最上位で説明される方法400であって、システムは、トランザクションの相手方(すなわち、譲受人)の身元情報を明らかにし且つ確かめるように動作可能であり、該方法は以下を含むことを特徴とする、方法400について説明する。
【0076】
ステップ402では、証明機関(CA)はブロックチェーン上の「ルート」出力を明らかにする。この「ルート」出力は、CAのX.509ルート証明書による秘密鍵を共有することができる。「ルート」出力は、ブロックチェーン上に未使用のトランザクション出力(UTXO)があるビットコイン・アドレスに対応する公開鍵を指定する。
【0077】
ステップ404では、発行機関はデジタル証明書を第1のエンティティ(例えば、被申込者)に発行する。デジタル証明書はX.509デジタル証明書であってよい。デジタル証明書は、さまざまなやり方で、ブロックチェーン上に未使用のトランザクション出力(UTXO)があるビットコイン・アドレスを保証する(すなわち、証明する)ことができる。例えば、デジタル証明書は、ビットコイン・アドレス又は対応する暗号公開鍵をそのサブジェクトにおいて又は拡張子で含むことができる。代替的には、デジタル証明書の暗号公開鍵は、ビットコイン・アドレスが導出する同じ公開鍵に対応することができる。
【0078】
ステップ406では、発行機関は、ステップ402において指定されたビットコイン・アドレス上の(UTXO)を使う「発行」ブロックチェーン・ビットコイン・トランザクションを作成する。一実施例では、ブロックチェーン・ビットコイン・トランザクションは2つの出力を含んでよい。公開鍵によって使うことができる身元トークン出力に対応する第1の出力は、発行機関によって第1のエンティティに発行されたデジタル証明書に対応する。第2の「新たなルート」出力は現在の(例えば、現時点で使われた)ルート出力に取って代わる。
【0079】
ステップ408では、第2のエンティティ(すなわち、「申込者」)は「申込」トランザクションを作成する。「申込」トランザクションは、第1の当事者(すなわち、「被申込者」)の身元トークンの公開鍵によって使うことができる「移動」出力である単一の出力を含む。オプションとして、いくつかの実施例では、「移動」出力を請求することは、新たに生成されたビットコイン・アドレスに対応する第2の署名を必要とする可能性がある。いくつかの実施例では、第2の署名は申込者が請求されない「移動」出力を後で取り消すことができる期間限定のタイムロックを指定することもできる。
【0080】
ステップ410では、第1のエンティティ(例えば、被申込者)は、ステップ408における「申込」トランザクションで作成された「移動」出力を入力として含む「承認」トランザクションを作成する。この「承認」トランザクションを作成するために、被申込者は自身の身元トークンに対応する秘密鍵によって請求された移動出力に署名することで、自身のデジタル・アイデンティティを明らかにしなければならない。被申込者は、ステップ408において作成されるものなど、「申込」トランザクションの「移動」出力を使うことによって、申込者の「検証された移動」を承認することができる。いくつかの実施例では、被申込者の「承認」トランザクションはP2PKHブロックチェーン・ビットコイン・トランザクションとすることができ、これによって、自身(すなわち、被申込者)に再割り当てされた又は申込者にまた再割り当てされた1つ又は複数の出力を含むことによって不明確さを低減することができる。
【0081】
図5を参照すると、フローチャートでは、ビットコイン・ブロックチェーン上の申込及び承認として動作するトランザクションにおいて譲受人のある特定の身元情報を検証するためのより詳細なプロセス500として、図の方法400について説明する。特に、プロセス400及び500は、トランザクションに対する他の当事者の身元の確信を得ることを望むエンティティによって使用されてよい。
【0082】
ステップ502では、証明機関はサーバ108上でブロックチェーンを形成する。ブロックチェーンは、それぞれのノードがブロックチェーン・アドレスを有する1つ又は複数のノードを有し、1つ又は複数のノードの第1のノードはトランザクションと関連付けられた第1のブロックチェーン・アドレスを有する。ブロックチェーンはコンピューティング・デバイス102又は104上に記憶されてよい。
【0083】
発行トランザクションを作成する(ステップ504~524)
ステップ504では、発行機関は、サーバ108上で、secp256k1楕円曲線秘密鍵であってよい第1の秘密鍵を生成する。第1の秘密鍵は、32バイトの単一の符号なしの256ビット整数であり、且つ、生成した人にのみ知られる、基本的にはランダムに生成される「暗証」番号である。有効な秘密鍵の範囲は、ビットコインによって使用される「secp256k1 ECDSA規格」によって管理される。秘密鍵に対応する公開鍵は秘密のままにされる必要はない。
【0084】
ステップ506では、証明機関は、サーバ108上で、第1のエンティティの要求時に、第1の秘密鍵を使用して、公開鍵を指定するルート証明書を生成する。ルート証明書は、ブロックチェーン上に未使用のトランザクション出力(UTXO)があるステップ502において形成されたブロックチェーン上のブロックチェーン・アドレスに対応する公開鍵を含有するフィールドを含む。
【0085】
ステップ508では、第1のエンティティは、コンピューティング・デバイス102上で、ステップ506で生成された第1の秘密鍵を使用して第1のビットコイン・アドレスを生成する。生成された第1のビットコイン・アドレスは、証明機関(CA)の「ルート」ビットコイン・アドレスと同じである。ステップ508はサブステップ510、512を含む。
【0086】
サブステップ510では、第1のエンティティは、コンピューティング・デバイス102上で、ステップ504で生成された第1の秘密鍵を使用してウォレット・インポート・フォーマット(WIF:Wallet Import Format)・ストリングを作成する。
【0087】
サブステップ512では、サブステップ510からのWIFストリングを使用して、第1のエンティティは第1の秘密鍵をブロックチェーン・ビットコイン・トランザクション・システムにインポートする。ビットコイン・トランザクション・システムは、顧客が金融自動機を使用して現場で現金を預金し、且つビットコイン交換所からビットコインを購入する又はビットコイン交換所に自身のビットコインを売るシステムである。さまざまな場所に設置された金融自動機を使用することによって、ビットコインを現金で容易に且つ便利に取引することが可能であり、それによって、ビットコインの使用を促進することが可能になる。
【0088】
ステップ514では、発行機関は、サーバ108上で、CAのルート証明書の公開鍵によって使うことができる出力によってブロックチェーン・ビットコイン・トランザクションを生成する。これはCAの「ルート」出力である。
【0089】
ステップ516では、発行機関はサーバ108上の第2の秘密鍵を生成する。第2の秘密鍵は、32バイトの単一の符号なしの256ビット整数であり、且つ生成した人にのみ知られる、基本的にはランダムに生成される「暗証」番号である。有効な秘密鍵の範囲は、ビットコインによって使用される「secp256k1 ECDSA規格」によって管理される。
【0090】
ステップ518では、発行機関は、サーバ108上で、ステップ512で生成された第2の秘密鍵を使用して第2のビットコイン・アドレスを生成する。これは第1のユーザの「身元トークン」のビットコイン・アドレスである。
【0091】
ステップ520では、証明機関は、サーバ108上で、第1のユーザに対する証明書署名要求(CSR:certificate signing request)を生成する。1つの実施例では、CAは、当事者が登録プロセスの一部としてデジタル証明書を求める時に完全な身元調査及び認証プロセスを行う。しかしながら、この登録プロセスが完了すると、第1の当事者がCSRを提出する時はいつでも、CAはそれに応じてデジタル証明書を自動的に発行する。
【0092】
ステップ522では、発行機関は、サーバ108上で、ステップ516で生成された第1のユーザのCSRから第1のユーザにリーフ証明書を発行する。
【0093】
ステップ524では、発行機関は、サーバ108上で、「発行トランザクション」を作成する。CAのルート・アドレスの第1の秘密鍵を使用して、発行機関は、CAのルート出力を入力として含むブロックチェーン・ビットコイン・トランザクションを作成しこれに署名する。「発行トランザクション」はさらに、第1のユーザの身元トークンのビットコイン・アドレスによって使うことができる出力を含む。いくつかの実施例では、「発行トランザクション」は、pay-to-pubkey-hash(P2PKH)ビットコイン・アドレス(すなわち、通常のビットコイン・アドレス)によって使うことができる「身元トークン」出力による標準的なブロックチェーン・ビットコイン・トランザクションとすることができる。他の実施例では、「発行」トランザクションの「身元トークン」出力を使うことは、1-of-2のマルチシグネチャ償還スクリプトを必要とする可能性がある(すなわち、「マルチシグ」・ウォレットとすることができる)。このような場合、例えば、ユーザの身元トークンは、ユーザの身元トークン出力が未使用である間にのみ有効とすることができる。オプションとして、ユーザの身元トークンを、これを使うこと(例えば、これを消費すること)によって、発行者(例えば、CA)が取り消す又はユーザが無効にすることができる。オプションとして、身元のCAの申込のユーザの承認はまた、恐らく、例えば、自己割り当てされた又は発行側CAに再び割り当てられた1つ又は複数のゼロ値出力を含む、P2PKHビットコイン・トランザクションとすることができる。
【0094】
申込トランザクションを作成する(ステップ526~530)
ステップ526では、第1のエンティティは、コンピューティング・デバイス102上で、第1の当事者の身元トークン出力の公開鍵によって使うことができる「移動」出力を有する「申込」トランザクションを作成する。ステップ522はサブステップ524、526を含む。いくつかの実施例では、「移動」出力は被申込者からの2つの署名を必要とする可能性がある。例えば、2つの必要とされる署名は、(1)新たに生成された受信アドレス、及び(2)被申込者の「身元トークン」に対応する可能性がある。
【0095】
サブステップ528では、第1のエンティティは、コンピューティング・デバイス102上で、第3の秘密鍵を生成する。第3の秘密鍵は、32バイトの単一の符号なしの256ビット整数であり、且つ、生成した人にのみ知られる、基本的にはランダムに生成される「暗証」番号である。有効な秘密鍵の範囲は、ビットコインによって使用される「secp256k1 ECDSA規格」によって管理される。
【0096】
サブステップ530では、第1のエンティティは、コンピューティング・デバイス102上で、第1のユーザの「身元トークン」のビットコイン・アドレスによって使うことができる出力(例えば、「移動」出力)によってブロックチェーン・ビットコイン・トランザクションを作成し且つこれに署名する。いくつかの実施例では、「統合された」契約トランザクションは、第1のエンティティによってブロックチェーン・ビットコイン・トランザクションに署名する代わりに作成されてよい。「統合された」契約トランザクションは、第1のユーザの「身元トークン」出力に対応する、ひいては、第1のユーザからのトランザクション上の署名を必要とする入力を含んでよい。いくつかの実施例では、第1のユーザの秘密鍵は「統合された」契約トランザクションに署名するために使用されてよい。いくつかの実施例では、完全に署名された「契約」トランザクションの公開又は提出は、申込及び承認両方として動作することができる。「統合された」契約トランザクションについて、以下にさらにより詳しく論じる。
【0097】
検証された承認トランザクションの作成
ステップ532では、第2のエンティティは、コンピューティング・デバイス104上で、検証された承認トランザクションを作成する。
【0098】
統合された契約
いくつかの実施例では、「統合された」契約トランザクションは、上記のサブステップ530において論じられるように、第1のエンティティによってブロックチェーン・ビットコイン・トランザクションに署名する代わりに作成されてよい。「統合された」契約が作成される場合、「統合された」契約トランザクションは、第1のユーザの「身元トークン」出力に対応する、ひいては、第1のユーザからのトランザクション上の署名を必要とする入力を含んでよい。いくつかの実施例では、第1のユーザの秘密鍵を使用して「統合された」契約トランザクションに署名してよい。被申込者が、「身元トークン」入力を「統合された」契約トランザクションに署名することによって自身の承認を示す実施例では、署名することは以下のように進めることができる:
a.申込者は初期段階の「契約」トランザクションを構築し、且つ自身の入力に特定のタイプの署名で署名することができる。一実施例では、申込者は、トランザクションの出力に関して、特定の「移動」出力にのみコミットするSIGHASH_SINGLEフラグを指定することができる。例えば、剰余である。
b.被申込者は、承認を示す、ひいては、特別なタイプの署名によって「契約」トランザクションに自身の「身元トークン」入力に署名することによって「契約」トランザクションを完了することができる。例えば、被申込者は、トランザクションの出力に関して、被申込者が承認することを希望する「移動」出力のみにコミットするSIGHASH_SINGLEフラグで署名することによって「検証された移動」を承認する場合がある。
【0099】
被申込者の承認における不明確さの低減
上述された実施例では、被申込者の承認は、「移動」出力を被申込者に再割り当てする出力を含有するトランザクションとして表され得る。被申込者が、とりわけ、任意の暗黙の条件の、実際に承認を示そうとせずに何らかの未知の理由でこのような承認トランザクションを作成可能であることが考えられる。申込及び承認を単一のトランザクションに統合することは、この潜在的な不明確さを大幅に低減する。一実施例では、このような不明確さを解消することは、申込の承認を明確に指示すること、及び、参照により(例えば、ハッシュにより)一定期間の、特に、保障されない、又はブロックチェーンの合意規則によって自動的に実行される任意の期間の申込も組み込むことを両方行うことができるトランザクション・タイプ又はオペコードの使用を必要とする場合がある。例えば、一実施例では、期間限定のタイムロックが使用可能である。タイムロックの期限が切れた後、利用中のパスは無効になり得る。このような機構は、被申込者が、一定時間後の申込の自動取り消しを提供することによって限定時間の申込を提供可能にすることができる。これはまた、例えば、指定周期後の新たなさらなる利用パスを可能にすることによるトランザクション失効を条件として、競合状態をもたらし得る手法から生じ得る不明確さを低減する場合がある。
【0100】
コンピューティング・システム600は、(プロセッサ110と同じ又は同様であり得る)プロセッサ602、ランダム・アクセス・メモリ(RAM:Random Access Memory)604、及び、ハード・ドライブ、CD、DVD、フラッシュ・ドライブ、又は任意の他のタイプの不揮発性メモリであってよいストレージ・デバイス606を含む。ソフトウェア命令は、RAM804及び/又はストレージ・デバイス606に記憶され得る。プロセッサ602は、プロセッサ602がソフトウェア命令を読み取ることができるように、ストレージ・デバイス606及び/又はRAM704に結合されてよい。プロセッサ602がソフトウェア命令を読み取る際、ソフトウェア命令は、プロセッサ602に、上述されるように、磁性ターゲットの位置を計算するための動作を行わせることができる。示されないが、プロセッサ602及び/又はシステム600は、センサ素子からの信号を受信するための入力などの他の入力及び出力、GPIO、電源入力、又はUSB、SATA、及びHDMI(登録商標)などの他のインターフェースを含んでよい。
【0101】
上述されるシステム及び手法は、任意のブロックチェーン・トランザクションに関わるエンティティの検証のためのものとすることができる。例えば、一般的に信頼されているX.509デジタル証明書は、ユーザ(並びにソフトウェア・ウォレット及びハードウェア・ウォレット)が、特定のブロックチェーン・アドレスが実際には、中間者ではなく意図された受取人によって制御されることを検証できるようにすると思われる。ソフトウェア・ウォレット又はハードウェア・ウォレットはまた、受取人の身元を検証するためにX.509デジタル証明書を使用することができる。
【0102】
上述されるシステム、デバイス、及び方法は、理解及び例証の目的で示される例示のシステム、デバイス、及び方法である。これらのシステム、デバイス、及び方法における変形は、本開示の範囲内にある。同等のシステム、デバイス、及び方法も本開示の範囲内にある。図に示され且つ本開示に説明されるフローチャートは、必ずしも、ステップのいずれの特定の順序も必要とするわけではない。また、同じ又は同様の結果を生じさせ、且つ本開示の範囲内にとどまるように、さまざまなステップは要望通りに追加、除去、再配置、及び記録が行われてよい。
【0103】
本特許にはさまざまな実施例が記載されている。しかしながら、本特許の範囲は、説明される実施例に限定されず、むしろ、以下の特許請求項の趣旨及び範囲によってのみ限定されるものとする。本特許に引用された全ての参考文献は、これら全体が参照により組み込まれている。
【国際調査報告】