(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024138257
(43)【公開日】2024-10-08
(54)【発明の名称】分散データレコード
(51)【国際特許分類】
G06F 21/64 20130101AFI20241001BHJP
H04L 9/32 20060101ALI20241001BHJP
【FI】
G06F21/64
H04L9/32 200B
H04L9/32 200E
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024094889
(22)【出願日】2024-06-12
(62)【分割の表示】P 2020540614の分割
【原出願日】2019-08-02
(31)【優先権主張番号】16/448,299
(32)【優先日】2019-06-21
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVASCRIPT
(71)【出願人】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】デ・マトス,ルシオ・ドラジオ・ペドロ
(57)【要約】 (修正有)
【課題】資産を表す分散されたデジタルレコードを作成および照合する方法、照合システム及びコンピュータ読取可能媒体を提供する。
【解決手段】方法は、デジタルレコードの作成者に対応する第1の秘密鍵および第1の公開鍵を取得し、デジタルレコードについての1つ以上のパラメータを生成する。パラメータのうちの第1のパラメータは、デジタルレコードのトランザクションに関係している。方法はまた、デジタルレコードについての1つ以上のルールを生成し、ルールのうちの第1のルールで、第1のパラメータに対応するとともにトランザクションを制約し、第1の秘密鍵を使用して、第1の公開鍵、パラメータおよびルールのすべての第1のデジタル署名を計算し、第1の公開鍵、パラメータ、ルールおよび第1のデジタル署名を含む第1のデジタルレコードを作成する。
【選択図】
図3A
【特許請求の範囲】
【請求項1】
資産を表すデジタルレコードを作成および照合する方法であって、
前記デジタルレコードの作成者に対応する第1の秘密鍵および第1の公開鍵を取得することと、
前記デジタルレコードについての1つ以上のパラメータを生成することとを含み、前記パラメータのうちの第1のパラメータは、前記デジタルレコードのトランザクションに関係しており、
前記方法はさらに、
前記デジタルレコードについての1つ以上のルールを生成することを含み、前記ルールのうちの第1のルールは、前記第1のパラメータに対応するとともに前記トランザクションを制約し、
前記方法はさらに、
前記第1の秘密鍵を使用して、前記第1の公開鍵、前記パラメータおよび前記ルールのすべての第1のデジタル署名を計算することと、
前記第1の公開鍵、前記パラメータ、前記ルールおよび前記第1のデジタル署名を含む第1のデジタルレコードを作成することと、
前記第1のデジタルレコードのチェックサムハッシュを作成することと、
前記チェックサムハッシュをオンラインリポジトリに送信することとを含み、前記オンラインリポジトリは、前記チェックサムハッシュを使用して任意の以前のデジタルレコードを作成する前に、前記第1の秘密鍵が使用されていないことを照合するように構成される、方法。
【請求項2】
前記方法は、
前記資産の所有権を前記作成者から第2の所有者に移転する第1のトランザクションに応答して、前記第1のトランザクションを前記第1のデジタルレコードに追加することをさらに含み、前記第1のトランザクションは、前記第1の公開鍵と、前記第2の所有者に対応する第2の公開鍵とを含み、
前記方法はさらに、
前記第1の秘密鍵を使用して、前記第1のデジタルレコードおよび前記第1のトランザクションのすべての第2のデジタル署名を計算することと、
前記第1のデジタルレコード、前記第1のトランザクションおよび前記第2のデジタル署名を含む第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含む、請求項1に記載の方法。
【請求項3】
前記第1のパラメータは、ある数のトランザクションを含み、前記第1のルールは、最大数のトランザクションを含む、請求項1に記載の方法。
【請求項4】
前記方法は、
前記資産の所有権を前記作成者から第2の所有者に移転する第1のトランザクションに応答して、前記第1のトランザクションを前記第1のデジタルレコードに追加することをさらに含み、前記第1のトランザクションは、前記第1の公開鍵と、前記第2の所有者に対応する第2の公開鍵から導出される第2のハッシュ値とを含み、
前記方法はさらに、
前記第1の秘密鍵を使用して、前記第1のデジタルレコードおよび前記第1のトランザクションのすべての第2のデジタル署名を計算することと、
前記第1のデジタルレコード、前記第1のトランザクションおよび前記第2のデジタル署名を含む第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含む、請求項1に
記載の方法。
【請求項5】
前記パラメータのうちの第2のパラメータをさらに含み、前記第2のパラメータは、前記資産の所有権が複数の異なる所有者に割り当て可能であるように、複数の部分に分割可能である、請求項1に記載の方法。
【請求項6】
前記第2の所有者において、前記第1のトランザクションを照合することをさらに含み、
前記第2の所有者において、前記第1のトランザクションを照合することは、
前記第2のデジタルレコードから前記第2のデジタル署名および前記第2の公開鍵を抽出することと、
オリジナルトランザクションメッセージを生成するよう、前記第2のデジタル署名と、前記第1のトランザクションの後に行われた任意の付加的なトランザクションとを前記第2のデジタルレコードから除去することと、
前記第2のデジタル署名が前記第1の秘密鍵により生成されたことを確認するよう、前記第2のデジタル署名、前記第2の公開鍵、および、前記オリジナルトランザクションメッセージを照合機能への入力として使用することとを含む、請求項2に記載の方法。
【請求項7】
前記オンラインリポジトリは、前記チェックサムハッシュが前記オンラインリポジトリによって格納されることを決定することによって、前記第1のデジタルレコードの少なくとも1つのトランザクションが有効であることに応答して生成される受信された第2のデジタルレコードが、前記オンラインリポジトリによって格納されることを照合するために、前記チェックサムハッシュを使用するように構成される、請求項1に記載の方法。
【請求項8】
格納された命令を有するコンピュータ読取可能媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、資産を表すデジタルレコードを作成および照合させ、
前記作成および照合することは、
前記デジタルレコードの作成者に対応する第1の秘密鍵および第1の公開鍵を取得することと、
前記デジタルレコードについての1つ以上のパラメータを生成することとを含み、前記パラメータのうちの第1のパラメータは、前記デジタルレコードのトランザクションに関係しており、
前記作成および照合することはさらに、
前記デジタルレコードについての1つ以上のルールを生成することを含み、前記ルールのうちの第1のルールは、前記第1のパラメータに対応するとともに前記トランザクションを制約し、
前記作成および照合することはさらに、
前記第1の秘密鍵を使用して、前記第1の公開鍵、前記パラメータおよび前記ルールのすべての第1のデジタル署名を計算することと、
前記第1の公開鍵、前記パラメータ、前記ルールおよび前記第1のデジタル署名を含む第1のデジタルレコードを作成することと、
前記第1のデジタルレコードのチェックサムハッシュを作成することと、
前記チェックサムハッシュをオンラインリポジトリに送信することとを含み、前記オンラインリポジトリは、前記チェックサムハッシュを使用して任意の以前のデジタルレコードを作成する前に、前記第1の秘密鍵が使用されていないことを照合するように構成される、コンピュータ読取可能媒体。
【請求項9】
前記作成および照合することは、
前記資産の所有権を前記作成者から第2の所有者に移転する第1のトランザクションに
応答して、前記第1のトランザクションを前記第1のデジタルレコードに追加することをさらに含み、前記第1のトランザクションは、前記第1の公開鍵と、前記第2の所有者に対応する第2の公開鍵とを含み、
前記作成および照合することはさらに、
前記第1の秘密鍵を使用して、前記第1のデジタルレコードおよび前記第1のトランザクションのすべての第2のデジタル署名を計算することと、
前記第1のデジタルレコード、前記第1のトランザクションおよび前記第2のデジタル署名を含む第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含む、請求項8に記載のコンピュータ読取可能媒体。
【請求項10】
前記第1のパラメータは、ある数のトランザクションを含み、前記第1のルールは、最大数のトランザクションを含む、請求項8に記載のコンピュータ読取可能媒体。
【請求項11】
前記作成および照合することは、
前記資産の所有権を前記作成者から第2の所有者に移転する第1のトランザクションに応答して、前記第1のトランザクションを前記第1のデジタルレコードに追加することをさらに含み、前記第1のトランザクションは、前記第1の公開鍵と、前記第2の所有者に対応する第2の公開鍵から導出される第2のハッシュ値とを含み、
前記作成および照合することはさらに、
前記第1の秘密鍵を使用して、前記第1のデジタルレコードおよび前記第1のトランザクションのすべての第2のデジタル署名を計算することと、
前記第1のデジタルレコード、前記第1のトランザクションおよび前記第2のデジタル署名を含む第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含む、請求項8に記載のコンピュータ読取可能媒体。
【請求項12】
前記作成および照合することは、前記パラメータのうちの第2のパラメータをさらに含み、前記第2のパラメータは、前記資産の所有権が複数の異なる所有者に割り当て可能であるように、複数の部分に分割可能である、請求項8に記載のコンピュータ読取可能媒体。
【請求項13】
前記作成および照合することは、
前記第2の所有者において、前記第1のトランザクションを照合することをさらに含み、
前記第2の所有者において、前記第1のトランザクションを照合することは、
前記第2のデジタルレコードから前記第2のデジタル署名および前記第2の公開鍵を抽出することと、
オリジナルトランザクションメッセージを生成するよう、前記第2のデジタル署名と、前記第1のトランザクションの後に行われた任意の付加的なトランザクションとを前記第2のデジタルレコードから除去することと、
前記第2のデジタル署名が前記第1の秘密鍵により生成されたことを確認するよう、前記第2のデジタル署名、前記第2の公開鍵、および、前記オリジナルトランザクションメッセージを照合機能への入力として使用することとを含む、請求項9に記載のコンピュータ読取可能媒体。
【請求項14】
前記オンラインリポジトリは、前記チェックサムハッシュが前記オンラインリポジトリによって格納されることを決定することによって、前記第1のデジタルレコードの少なくとも1つのトランザクションが有効であることに応答して生成される受信された第2のデジタルレコードが、前記オンラインリポジトリによって格納されることを照合するために
、前記チェックサムハッシュを使用するように構成される、請求項8に記載のコンピュータ読取可能媒体。
【請求項15】
デジタルレコード作成および照合システムであって、
前記システムは、
資産を表すデジタルレコードの作成者に対応する第1の秘密鍵および第1の公開鍵と、
ストレージデバイスとを含み、前記ストレージデバイスは、前記デジタルレコードについての1つ以上のパラメータを格納し、前記パラメータのうちの第1のパラメータは、前記デジタルレコードのトランザクションに関係しており、前記ストレージデバイスは、前記デジタルレコードについての1つ以上のルールを格納し、前記ルールのうちの第1のルールは、前記第1のパラメータに対応するとともに前記トランザクションを制約し、
前記システムはさらに、
前記第1の秘密鍵を使用して、前記第1の公開鍵、前記パラメータおよび前記ルールのすべての第1のデジタル署名を計算することと、前記第1の公開鍵、前記パラメータ、前記ルールおよび前記第1のデジタル署名を含む第1のデジタルレコードを作成することと、前記第1のデジタルレコードのチェックサムハッシュを作成することと、前記チェックサムハッシュをオンラインリポジトリに送信することとを行うよう命令を実行するように適合されるプロセッサを含み、
前記オンラインリポジトリは、前記チェックサムハッシュを使用して任意の以前のデジタルレコードを作成する前に、前記第1の秘密鍵が使用されていないことを照合するように構成される、システム。
【請求項16】
前記プロセッサは、
前記資産の所有権を前記作成者から第2の所有者に移転する第1のトランザクションに応答して、前記第1のトランザクションを前記第1のデジタルレコードに追加することを行うようにさらに適合され、前記第1のトランザクションは、前記第1の公開鍵と、前記第2の所有者に対応する第2の公開鍵とを含み、
前記プロセッサはさらに、
前記第1の秘密鍵を使用して、前記第1のデジタルレコードおよび前記第1のトランザクションのすべての第2のデジタル署名を計算することと、
前記第1のデジタルレコード、前記第1のトランザクションおよび前記第2のデジタル署名を含む第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することと
を行うように適合される、請求項15に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
分野
一実施形態は一般に、データレコードに関し、特に、分散されたデータレコードおよび電子台帳に関する。
【背景技術】
【0002】
背景技術
従来、電子レコードまたは契約の経過を追うために、中央集中型データベースは、すべての資産、所有者、トランザクションなどの経過を追う。1つのパーティによって制御されない信頼されるプラットフォームを使用して、人々が所有権の資産移転を直接的に交渉することを可能にするよう、電子消耗品、トークン、ポイント、通貨、タイトル、イベントチケット、バウチャ、クーポンといったデジタル資産またはデータレコードはしばしば、ピアツーピアの態様で移転可能である必要がある。分散および公開台帳を含むブロックチェーンは、1つのソリューションを提供するが、多くのノードが完全なトランザクション履歴を格納しなければならないので、高い計算コストおよびストレージの制限といった特定の課題を有する。したがって、大規模なストレージを必要とするプロジェクトは、中央集中化を必要とすることになり、パブリックブロックチェーンは完全に好適でなくなる。
【発明の概要】
【0003】
発明の概要
実施形態は、資産を表すデジタルレコードを作成および照合する。実施形態は、デジタルレコードの作成者に対応する第1の秘密鍵および第1の公開鍵を取得し、デジタルレコードについての1つ以上のパラメータを生成する。パラメータのうちの第1のパラメータは、デジタルレコードのトランザクションに関係している。実施形態は、デジタルレコードについての1つ以上のルールを生成し、ルールのうちの第1のルールは、第1のパラメータに対応するとともにトランザクションを制約する。実施形態は、第1の秘密鍵を使用して、第1の公開鍵、パラメータおよびルールのすべての第1のデジタル署名を計算し、第1の公開鍵、パラメータ、ルールおよび第1のデジタル署名を含む第1のデジタルレコードを作成する。
【図面の簡単な説明】
【0004】
【
図1】本発明の実施形態を実現し得る要素の全体図である。
【
図2】本発明の実施形態に従ったコンピュータサーバ/システムのブロック図である。
【
図3A】一実施形態に従った、新しい電子レコード/デジタル証明書を作成する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図3B】一実施形態に従った、電子レコードによりトランザクションを実行する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図4】一実施形態に従った、電子レコードを照合する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図5】一実施形態に従った、トランザクションルールにより電子レコードを照合する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図6】一実施形態に従った、サードパーティバリデータ(third party validator)によってレコードを照合する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図7】一実施形態に従った、付加的なセキュリティを有するサードパーティバリデータに晒される新しいレコードを作成する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図8】一実施形態に従った、パラメータを複数の子レコードに分割する際の
図2の分散データレコードモジュールの機能のフロー図である。
【
図9】一実施形態に従った、分割されたトランザクションをバリデータリポジトリに記録する際の
図2の分散データレコードモジュールの機能のフロー図である。
【発明を実施するための形態】
【0005】
詳細な説明
実施形態は、中央データベースではなくスタンドアロンファイルにより構成される台帳データベースに関する。実施形態は、情報が中央集中型データベースインスタンスに保持されないが別個のデバイス上に個別に維持され、かつ、各ユーザが自身のレコードを管理することに責任を負うデータレコードまたは証明書のシステムを提供する。ユーザは、自身が所有する個々のレコードの管理人であり、すべての参加者によって信頼され得る態様で、自身のレコードに対するデータ更新を実行可能であり得る。
【0006】
いくつかの実施形態では、データレコードは、それぞれのデバイスにおいて、当該データの個々の所有者/ユーザの各々によって維持される。データレコードの各所有者に対応するとともにデータレコードを格納するために使用されるデバイスはたとえば、コンピュータデバイス、スマートフォン、ユニバーサルシリアルバス(USB: Universal Serial
Bus)ストレージスティック、電子メールもしくはオンラインストレージ、または、紙に印刷されるかもしくは2次元のクイックレスポンス(QR: Quick Response)コード画像として保存されるデータレコードを含み得る。実施形態における各データレコードは、以下に詳細に開示されるように、従来の中央集中型データベースインスタンスによって提供される同じ特徴のうちのいくつかを送達するのに十分な情報を自身の中に含む。たとえば、当該データレコードは、(1)レコードの起源が真であることを保証し、(2)どの更新が許可され、どの更新が許可されないかを強制し、(3)レコードの現在の状態(すなわち、レコードの現在の所有者を含む各レコードパラメータの現在の値)を確証し、(4)現在の状態がどのようにして現在のようになったかを証明するようにトランザクションの履歴を維持し、(5)認証されていないユーザによってレコードの変更が行われないようにセキュリティを提供するのに十分な情報を自身の中に含む。
【0007】
各ノードで複製される一般的なデータベースのようなレコードストレージのコストのかかるシステム(すなわち、既知のブロックチェーンシステム)を使用する代わりに、実施形態では、各資産が自身の経過を追う。たとえばブロックチェーンにより、すべてのレコード情報およびトランザクション履歴を管理するデータベースノードの代わりに、実施形態では、データレコードが自由に世界を循環し、それらの所有権およびステータスを管理する。
【0008】
たとえば、実施形態において、アリスがデジタル「コイン」(すなわち、デジタル署名されたコンピュータファイル)をボブに送る場合、そのコイン(またはファイル)は、署名された履歴を自身の中に保持し、その真正な起源および所有権を証明する。当該デジタル資産が、コイン、トークン、タイトル、チケット、バウチャ、クーポンなどの合計であるか否かにかかわらず、各個々の資産は、マスターデータベースにトランザクションの詳細をログ記録する必要なしに、デジタル資産/レコードがそれ自身を表す態様で、自身の履歴を自身の中に有し、デジタル署名される。資産の所在は、公には完全に未知である。現在誰がどの資産を所有しているかは、公には未知であり得る。その代わりに、その所有者によって保持される可能性が高いファイルが、資産の経過を追うものである。しかしながら、実施形態では、暗号化により、「不正行為」することが極めて困難である。実施形態によると、ユーザは、自身の台帳の管理人であるが、それを調整(temper)することが
できないか、または、許可されない態様でその値を修正することができない。
【0009】
実施形態は、楕円曲線デジタル署名アルゴリズム(「ECDSA: Elliptic Curve Digital Signature Algorithm」)のようなデジタル署名を使用して実現される。ECDSAでは、レコード作成およびトランザクションは、シークレットな秘密鍵によって署名され、関係する公開鍵によって照合される。レコードは、その作成者の秘密鍵によって作成および署名され、署名を照合するのに使用され得る署名文字列が残される。次のトランザクションまたはレコード更新が、再び署名され、これにより、署名されたコンテンツの部分として以前の署名を含むレコードの署名が生成される。レコードは、更新されるたびに、すべての以前の署名を含むレコードの署名を再び生成し、署名の上に署名のチェーンを作成する。そのため、履歴の任意の部分が調整される場合、署名は、照合中に予測される値とマッチしない。さらに、レコードは、どの更新が許可、禁止または必要とされるかを記述するメタデータも含む。メタデータに記述されるこれらのルールも、署名によって保護される(すなわち、ルールテキストが変更されると、署名は照合にパスしない)。レコードの照合が、署名の照合と、任意のあらかじめ定義されたトランザクションルールへの準拠の照合との両方をともに必要とするので、実施形態は部分的に新規である。レコードは、両方の照合にパスした場合にのみ真である。
【0010】
図1は、本発明の実施形態を実現し得る要素の全体図である。実施形態は、ネットワーク110を介して、連続的または断続的に互いに通信し得る個々のデバイス101~108に関する。各デバイス101~108は、命令を実行するためのプロセッサ/コントローラ(またはハードウェア実現例)と、ファイルを格納するためのストレージデバイスと、他のデバイスと通信するための通信デバイスとを含む任意のタイプのデバイスである。デバイス101~108は、デスクトップまたはラップトップコンピュータ、サーバ、スマートフォン、タブレット、ウォッチなどを含み得る。ネットワーク110は、インターネットまたはローカルネットワークのような任意のタイプの通信メカニズムであり得るか、または、異なるネットワークの組み合わせであり得る。サードパーティバリデータを使用する以下に開示される実施形態では、
図1のデバイスのうちの1つがバリデータとして機能する。
【0011】
図2は、本発明の実施形態に従ったコンピュータサーバ/システム10のブロック図である。単一のシステムとして示されているが、システム10の機能は分散システムとして実現され得る。さらに、本明細書において開示される機能は、ネットワークを介してともに結合され得る別個のサーバまたはデバイス上で実現され得る。さらに、システム10の1つ以上の構成要素は含まれなくてもよい。複数のシステム10は、
図1の要素のすべてのために機能を提供し得る。
【0012】
システム10は、情報を通信するためのバス12または他の通信メカニズムと、情報を処理するための、バス12に結合されるプロセッサ22とを含む。プロセッサ22は、任意のタイプの汎用または特定目的のプロセッサであってもよい。システム10はさらに、情報と、プロセッサ22によって実行されるべき命令とを格納するためのメモリ14を含む。メモリ14は、ランダムアクセスメモリ(「RAM」: random access memory)、リードオンリーメモリ(「ROM」: read only memory)、磁気ディスクもしくは光ディスクのようなスタティックストレージ、または、任意の他のタイプのコンピュータ読取可能媒体の任意の組み合わせにより構成され得る。システム10はさらに、ネットワークへのアクセスを提供するために、ネットワークインターフェイスカードのような通信デバイス20を含む。したがって、ユーザは、システム10と直接的に、ネットワークを介してリモートに、または、任意の他の方法で、インターフェイスにより接続し得る。
【0013】
コンピュータ読取可能媒体は、プロセッサ22によってアクセスされ得る任意の利用可
能な媒体であり得、揮発性および不揮発性媒体の両方と、取り外しできるおよび取り外しできない媒体と、通信媒体とを含む。通信媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、または、搬送波もしくは他のトランスポートメカニズムのような変調されたデータ信号における他のデータを含み得、かつ、任意の情報送達媒体を含む。
【0014】
プロセッサ22はさらに、バス12を介して、液晶ディスプレイ(「LCD: Liquid Crystal Display」)のようなディスプレイ24に結合される。キーボード26およびコンピュータマウスのようなカーソル制御デバイス28はさらに、ユーザがシステム10とインターフェイスにより接続することを可能にするよう、バス12に結合される。
【0015】
一実施形態では、メモリ14は、プロセッサ22によって実行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、システム10のためのオペレーティングシステム機能を提供するオペレーティングシステム15を含む。モジュールはさらに、それぞれのデバイスのための分散データレコード機能と、本明細書において開示されるすべての他の機能とを提供する分散データレコードモジュール16を含む。システム10は、より大きなシステムの部分であり得る。したがって、システム10は、付加的な機能を含むよう、トランザクションベースのシステム、デジタルウォレット、または、デジタル資産を利用する任意の他のタイプのアプリといった1つ以上の付加的な機能モジュール18を含み得る。ファイルストレージデバイスまたはデータベース17は、バス12に結合され、これにより、モジュール16および18と、データレコードファイルと、デジタル署名のような任意の他の必要なデータとのための中央集中型ストレージデバイスを提供する。一実施形態では、データベース17は、格納されたデータを管理するためにストラクチャードクエリランゲージ(「SQL: Structured Query Language」)を使用し得る
リレーショナルデータベース管理システム(RDBMS: relational database management system)である。
【0016】
一実施形態では、特に単一のデバイスにおいて多数の分散ファイルが存在する場合、データベース17は、インメモリデータベース(「IMDB: in-memory database」)として実現される。IMDBは、主にコンピュータデータストレージのためのメインメモリに依拠するデータベース管理システムである。これは、ディスクストレージメカニズムを使用するデータベース管理システムと対照をなす。メインメモリデータベースは、ディスクが最適化されたデータベースよりも高速である。その理由は、ディスクアクセスは、メモリアクセスよりも遅く、内部最適化アルゴリズムは、よりシンプルであるとともにより少ないCPU命令を実行するからである。メモリ内のデータにアクセスすることにより、データをクエリ送信する際のシーク時間が解消され、これにより、ディスクよりも高速かつ予測可能なパフォーマンスが提供される。
【0017】
一実施形態では、データベース17は、IMDBとして実現される場合、分散データグリッドに基づいて実現される。分散データグリッドは、コンピュータサーバの集合が1つ以上のクラスタで一緒に動作して、分散またはクラスタリングされた環境内において、情報および計算のような関係する動作を管理するシステムである。分散データグリッドは、サーバにわたって共有されるアプリケーションオブジェクトおよびデータを管理するよう使用され得る。分散データグリッドは、低応答時間、高スループット、予測可能なスケーラビリティ、連続的な可用性、および、情報の信頼性を提供する。特定の例では、たとえばオラクル社の「Oracle Coherence」データグリッドのような分散データグリッドは、より高いパフォーマンスを達成するために情報をインメモリに格納し、かつ、複数のサーバにわたって同期されるその情報のコピーを保持することにおいて冗長性を利用しており、これにより、システムの復元力と、サーバの障害時にデータの継続的な可用性とが保証される。
【0018】
一実施形態では、システム10は、企業組織のためのアプリケーションまたは分散されたアプリケーションの集合を含むコンピューティング/データ処理システムであり、ロジスティクス管理機能、製造管理機能、および、在庫管理機能も実現し得る。アプリケーションおよびコンピューティングシステム10は、クラウドベースのネットワーキングシステム、ソフトウェア・アズ・ア・サービス(SaaS: software-as-a-service)アーキ
テクチャ、もしくは、他のタイプのコンピューティングソリューションにより動作するように構成されてもよいし、または、クラウドベースのネットワーキングシステム、ソフトウェア・アズ・ア・サービス(SaaS: software-as-a-service)アーキテクチャ、も
しくは、他のタイプのコンピューティングソリューションとして実現されてもよい。
【0019】
開示されるように、実施形態は、各分散された資産が自身を表し、どのタイプのトランザクションが許可されるかを制御するメタデータを担持する分散された資産/レコードを提供する。これは、(ただ1つの資産ではなく)資産のすべての完全な台帳として機能するとともに各ユーザによって格納される共有された台帳に依拠するブロックチェーンシステムとは対照的である。いくつかの実施形態では、デジタル資産が分散データレコードとして機能し、サードパーティバリデータが照合のために使用される。
【0020】
分散デジタルデータレコード
デジタルレコード、デジタル資産、または、「証明書ファイル」は、誰が何を所有しているかを証明する。本発明の実施形態の文脈では、証明書ファイルは、チケット、コイン、データ、バウチャ、デジタルアート、電子デバイス、有形の対象物、または、サービスといった資産を表す。証明書ファイルは、所有者アドレスを含む。所有者アドレスは、そのアドレスについて署名可能なシークレットな秘密鍵に関連付けられる。資産は、デジタル署名のチェーンとして表される。トランザクションは、その所有者が、以前のトランザクションのハッシュと、次の状態のパラメータとにデジタル署名し、公開鍵を付加し、照合可能なチェーンを作成することによって記録される。ブロックチェーンベースの台帳では、この署名チェーンはブロックチェーンサーバ上に記録される。対照的に、実施形態によれば、ユーザのデバイス上において、各証明書が自身内にこの署名チェーンを担持する。
【0021】
例として、アリスは、自身が作製した100個のカスタムギターの購入者に与えられることになる100個の真正性証明書のセットを開始し得る。ボブは、200,000個の「ボブコイン」のプールを開始し得る。キャロルは、フェアのための食べ物および飲料のチケットのプールを開始し得る。これらの資産は、証明書ファイルとしてピアツーピアでトレードされる。ウォレットアプリおよびQRコード(登録商標)を使用して、これらのアイテムは取得、使用、贈呈、または、販売され得、それらの証明書は、新しいアドレスに移転され得、他のアドレスの間で分割または統合され得、連続する証明書ファイルに起源を与える。各その後の証明書ファイルは、その由来(pedigree)の照合可能な署名履歴を含む。
【0022】
したがって、デイブが分散データレコードファイルによって経過を追われる資産を所有する場合、デイブは、そのファイルを、自身が望む任意の場所に格納し得る。デイブがそのレコードを移転または履行すると決定すると、デイブのウォレットアプリは、新しいレコードファイルのパラメータを認証するデジタル署名を提供する。実施形態によれば、デイブがそのトランザクションを行うと、デイブの古いレコードファイルは無効にならなければならない。これは、相対的に少量のオンラインデジタル情報により達成されることになり、デイブは、もはや古いレコードファイルを再び使用できないようになる。古いファイルがもはや受け入れられないことを全世界が知らなければならないからである。そうでなければ、デイブは、二重支払い(double-spend)することが可能になる。
【0023】
サードパーティバリデータリポジトリ
実施形態において、デジタルレコード/資産/証明書は、スタンドアロンのデジタルファイルである。しかしながら、いくつかの実施形態では、それらの完全性の証明(proof of integrity)は、相対的に少量のデジタル情報が、オンラインであることを必要とし、かつ、現在有効な証明書の各々の暗号チェックサムの形態でネットワーク(たとえば、バ
リデータサーバ)を介して利用可能であることを必要とし得る。証明書は、そのチェック
サムダイジェスト(checksum digest)がリポジトリに存在する場合、有効である。署名
されたトランザクションがポストされると、新しい子証明書のチェックサムダイジェストが挿入されるので、実施形態は、親証明書のチェックサムダイジェストがリポジトリから除去されることを保証することによって、二重支払いを防止する。
【0024】
実施形態は、分散コンセンサスアルゴリズム(distributed consensus algorithm)を
提供しない。プライベート台帳または共同台帳の場合、バリデータ(またはチェックサムダイジェストリポジトリ)はプライベートな分散データベースであり得る。分散台帳の場合、このリポジトリは、ブロックチェーンスマートコントラクトまたはハッシュグラフなどといった分散型アルゴリズム上で動作すべきである。それにもかかわらず、照合リポジトリを運用するエンティティは、資産、アドレス、もしくは鍵に対する制御を有さないので、偽造の証明書を発行することができない。リポジトリは、解しがたい(obscure)なチ
ェックサムハッシュ値を管理するだけであるので、造幣局(mint authority)ではない。その唯一の目的は二重支払いを止めることであり、デジタル資産がバイト単位でどれほど大きくても、そのために必要なストレージは非常に少ない。リポジトリ内のチェックサムハッシュダイジェストのリストが如何なる有用な情報も提供できないので、プライバシーは非常に高い。
【0025】
電子データレコード/資産の作成および照合
図3Aは、一実施形態に従った、新しい電子レコード/デジタル証明書を作成する際の
図2の分散データレコードモジュール16の機能のフロー図である。一実施形態では、
図3A(および以下の
図3Bおよび
図4~
図9)のフロー図の機能がメモリまたは他のコンピュータ読取可能もしくは有形媒体に格納されるソフトウェアによって実現され、プロセッサによって実行される。他の実施形態では、当該機能は、ハードウェアによって(たとえば、特定用途向け集積回路(「ASIC: application specific integrated circuit
」)、プログラマブルゲートアレイ(「PGA: programmable gate array」)、フィー
ルドプログラマブルゲートアレイ(「FPGA: field programmable gate array」)な
どの使用を通じて)、または、ハードウェアおよびソフトウェアの任意の組み合せによって実行され得る。
【0026】
302において、レコード作成者の秘密鍵/公開鍵の対(たとえば、楕円曲線デジタル署名鍵の対)が取得される。304において、以下により詳細に記載される少なくとも1つのパラメータを含む新しい電子レコードが書き込まれる。306において、レコード作成者の秘密鍵および全レコード情報を、作成者の公開鍵を含むメッセージテキストとして使用して、デジタル署名が計算され、これにより署名ハッシュ値が得られることになる。308において、デジタル署名値がレコードに追加される。
【0027】
図3Aの機能の例として、デジタルレコードは以下の通りである。
【0028】
【0029】
上記のデジタルレコードの例および本明細書における他のすべての例は、読みやすさのためにJavaScript Object Notation(「JSON」)で記述されている。しかしながら、レコードは、特殊文字で区切られたフィールド(たとえばカンマで区切られたファイルもしくはタブで区切られたファイル)、タグで区切られたフィールド(Extensible Markup Language(「XML」)など)、または、固定幅で区切られたフィールド、または、行番号で区切られたフィールドを有するデータレコードを含む任意のフォーマットであり得る。レコードは、人間が読むことが可能なテキストであり得るか、または、バイナリフォーマットもしくは圧縮フォーマットといった人間が読むことが不可能であり得る。レコードは、リードアクセスメモリ(「RAM: Read Access Memory」)における情報であり得るか、または、データベースのコンテンツのようなより大きなデータセットのセグメントとして格納される情報であり得るので、コンピュータファイルとして表される必要はない。本明細書に開示される例では、JSONが使用されるので、JSONは定義上ソートされないことが言及される。JSONレコードは、異なる順序でパラメータを有し得るが、それでも等しいと考えられ得る。実施形態はデジタル署名およびチェックサムハッシュの使用を採用するので、レコードは、すべてのクライアントによって、プロセスのすべての部分において一貫して同じでなければならない。これは、JSONフォーマット(または任意のソートされないフォーマット)を使用する場合、署名、チェックサム、および、照合が決定論的であることを保証するために、すべての参加者は、同一の順序およびフォーマット(インデンテーション、改行など)でパラメータを扱わなければならず、これにより常に同じ結果が達成されることを意味する。
【0030】
上記デジタルレコードは、「Hello word!」という値を有する「メッセージ(message)」というパラメータを有する。レコードは、「作成者(creator)」の公開鍵と、作成者
のシークレットな秘密鍵を使用して計算されたデジタル署名とを示す。
【0031】
以下の第2の例では、レコードは、さらに多くのパラメータを含む。作成中、作成者は既にレコードの所有権を別の鍵の対に割り当てており、次いで、以下のようにそれに署名する。
【0032】
【0033】
デジタル署名は、署名するべきメッセージとして、秘密鍵およびレコードの全コンテンツを使用して計算される。トランザクションパラメータ「to」は、デジタル署名されるべきメッセージの部分である。
【0034】
【0035】
という署名は、レコードに追加される。その後、当該レコードは保存されるか、または、その意図される宛先に送られる。
【0036】
図3Bは、一実施形態に従った、電子レコードによりトランザクションを実行する際の
図2の分散データレコードモジュール16の機能のフロー図である。
【0037】
310において、関連するレコードが取得される(すなわち、ストレージから抽出される)。312において、所有権の移転および/または1つ以上のパラメータの値への変更といった新しいトランザクションが、レコードに追加される。314において、修正されたレコードは、入力メッセージとして、レコード上のすべての情報を使用してデジタル署名され、すべての以前のトランザクションおよび署名を含み、現在のトランザクションに関する詳細を含む。最低でも、署名される情報(すなわち、署名アルゴリズムへの入力メ
ッセージ)は少なくとも、最も最近の以前の署名を含まなければならない。なぜならば、
最も最近の以前の署名は、以前に発生したすべてと、修正されたパラメータ値またはレコード所有権の変更といった現在のトランザクションに関する詳細とを既に証明しているからである。しかしながら、いくつかの実施形態では、すべての以前のトランザクションおよび署名、または、レコードのパラメータ値が、署名されるメッセージの部分としてさらに含まれ得る。現在のレコード所有者の秘密鍵は、デジタル署名を計算するために使用される。316において、デジタル署名値は、現在のトランザクションの部分として、レコードに追加される。
【0038】
図3Bの機能の例として、1つの署名されたトランザクションを含むレコードが既に受け取られたと仮定する。第2のトランザクションおよび第3のトランザクションにデジタル署名を追加した後、レコードは以下のようになる。
【0039】
【0040】
上記の例では、レコードは、既に1つのトランザクションを有しており、当該1つのトランザクションは所有権の移転であった。第2のトランザクションがレコードに追加され、「タイトル(title)」パラメータの更新が行われ、次いで、第3のトランザクションが
追加され、所有権の別の変更が行われた。
【0041】
その後のトランザクションは、上記のステップを繰り返すことによって何度も実行され得、レコードは、順次記録される署名されたトランザクションにより増加する。最も最近の署名の値は、入力の部分として、すべての以前の署名を含む計算の積である。誰かが当該ファイル内のどこかにおいて何かを修正しようとした場合、最後のデジタル署名は照合不能または無効になる。
【0042】
上記の例では、レコードは、所有権の複数の移転を有していた。この場合、レコードの現在の所有者は、最新の移転の「to」フィールド内の公開鍵に関連付けられる秘密鍵を制御する任意のものである。この例では、現在レコードを制御するのは公開鍵/秘密鍵の対である。
【0043】
いくつかの実施形態は、複数の所有者が同時にレコードを所有することを可能にする。そのような場合、レコードの所有者は、複数のアドレスによって、または、導出されたアドレスを使用しない場合は公開鍵によって、識別され得る。たとえば、所有者は、カンマで分離されたアドレス文字列のアレイによって表され得る。この場合、レコードは、所有者のいずれか、いくつか、または、すべてがトランザクションに署名することを必要とし得る。複数の所有者を伴うトランザクションを達成するために、一所有者がトランザクションに署名し、デジタル署名を生成し、それをレコードに追加し、次いで、結果得られたレコードを次の所有者に渡し、同じトランザクションに署名し、当該署名も同様に追加する。トランザクションは、すべての要求された所有者がそれに署名した後、確定されたと考えられる。そのような実施形態では、トランザクションを照合することは、複数の所有者によって署名された複数のトランザクションの各々を照合することをそれぞれ必要とする。
【0044】
図4は、一実施形態に従った、電子レコードを照合する際の
図2の分散データレコードモジュール16の機能のフロー図である。
【0045】
402において、照合すべき電子レコードが取得される。404において、照合すべき第1の(または次の)トランザクションが選択される。レコードが複数のトランザクションを含む場合、プロセスは、特定の順序が必要とされないので、任意のものから開始し得
る。406において、署名ハッシュ値および公開鍵文字列は、レコードの署名されたトランザクションから抽出される。これら2つの値は、署名が有効か否かを照合する関数において入力として使用されることになる。署名を照合するために、実施形態は、署名時に使用されたものと同一の入力メッセージを取得しなければならない。これを行うために、署名文字列は、署名時にまだ存在していなかったので、除去され、この時点で照合されたものの後に行われたすべてのトランザクションが除去される。404および406の機能は、任意の順序で行なわれ得る。
【0046】
410において、3つの重要な情報が取得されているので、署名照合アルゴリズムが呼び出され/実行され、デジタル署名が有効か否かを照合する。論じられたように、当該3つの情報は、(1)署名時のレコードの状態であった、署名されたオリジナルメッセージのコピーと、(2)署名したものの入力メッセージに署名するために使われるシークレットな秘密鍵に対応する公開鍵(対)と、(3)トランザクション上に記録された署名ハッシュ値とである。これら3つの要素により、公開鍵に対応するシークレットな秘密鍵により署名が実際に生成されたか否かを確認する関数が実行され得る。したがって、実施形態は、レコードの作成者または任意のその後のトランザクションの作成者の秘密鍵を知る必要性を回避している。一実施形態では、使用される関数が楕円曲線デジタル署名アルゴリズムであるが、他のアルゴリズムが使用され得る。署名アルゴリズムは、すべての参加者によって既知であると仮定される。たとえば、レコードが楕円曲線デジタル署名アルゴリズムを使用して署名および照合される場合、曲線がファイル中に指定されていないので、当該曲線は、当該ファイルを照合するプログラムによって既知であると仮定される。
【0047】
410において、まったく同じメッセージを使用して、公開鍵に対応する秘密鍵により署名が実際に生成されたことを関数が確認した場合、412において、関数は414に進む。当該照合が失敗した場合、418において、関数は、失敗(すなわち、レコードは有効ではないこと)を返した後に終了する。
【0048】
414において、照合すべき付加的なトランザクションが存在する場合、機能は404において継続する。そうでなければ、416において、レコードが有効であること(すなわち、照合成功)が返され、機能が終了する。
【0049】
図4の機能の例として、2つのトランザクション(両方とも一方のレコード所有者から別のレコード所有者への移転)を有する以下のサンプルレコードを仮定する。
【0050】
【0051】
上記のレコードを照合するために、
図4の機能は、1つの署名されたトランザクションをチェックすることによって開始する。どちらのトランザクションでもよい(特に順序は必要ない)が、この例では、機能は第1のトランザクションから開始する。
【0052】
1)第1のトランザクション上の公開鍵は、以下のとおりである。
【0053】
【0054】
2)第1のトランザクション上の署名ハッシュ値は、以下のとおりである。
【0055】
【0056】
3)第1のトランザクションにおいて署名されたオリジナルメッセージ入力は、以下のとおりである。
【0057】
【0058】
これら3つの情報は、署名が実際に秘密鍵を使用して生成されたか否かを照合するために使用される。当該テストにパスした場合、他のすべてのトランザクションについて同じことが行われる。しかしながら、トランザクションは、すべてのその後のトランザクションを除外するがすべての以前のトランザクションを含む入力メッセージを使用して照合される。したがって、第2のトランザクションをテストする場合、第1のトランザクションに関する詳細は、署名された入力メッセージの部分になる。
【0059】
第2のトランザクションを照合する入力メッセージの抽出されたコピーは、一例において(署名なしで)次のように表される。
【0060】
【0061】
アドレスの使用
実施形態において、アドレスは、公開鍵から導出されるハッシュ値、または、鍵の対の公開部分である。たとえば、レコードが「アドレス(address)」に移転される所有権を
有する場合、受信者の公開鍵は、いくつかの実施形態では、将来の署名が行われるまでシークレットのままであり得る。この随意のセキュリティ対策が必要とされ得るのは、使用されるデジタル署名アルゴリズムに依存して、使用されるまで公開鍵をシークレットにしておくことが最善であり得るからである。クライアントアプリケーションの読みやすさのために、レコードは、作成者のアドレスおよび現在の所有者のアドレスについてのトップレベルのパラメータも含み得るので、クライアントアプリケーションは、トランザクション履歴からその情報を抽出する必要はない。
【0062】
このセキュリティ対策を使用する実施形態では、当該機能は、レコードを制御する鍵の対が、公開鍵自体ではなく公開鍵のハッシュによって識別されることを除いて、
図3A、
図3B、および
図4の機能と同様である。
【0063】
トランザクションルール
いくつかの実施形態では、電子レコードは、許可されたパラメータ値変更、禁止されたパラメータ値変更、または、必要とされるパラメータ値変更を命令するメタデータを含み得る。たとえば、数値パラメータは、1つ以上の数学的比較を常に満たす必要がある。その例としては、1つ以上のあらかじめ定義された値、別のパラメータもしくは関数の値に等しいこと、および/または、それよりも小さいこと、および/または、それよりも大きいこと、および/または、それとは異なることが挙げられる。テキストパラメータは、1つ以上のフォーマットまたは値の比較を満たす必要があり得る。その例としては、フォーマットマスクもしくは正規表現を満たす必要があること、または、別のフィールドからの値もしくは許可された値のあらかじめ定義されたリストからの値にマッチする必要があることが挙げられる。日時パラメータは、特定の日時もしくは日時の範囲、または、別の日時パラメータの値と等しいか、それより大きいか、それより小さいか、または、それとは異なる値を有する必要があり得る。
【0064】
パラメータ値の更新は、ルールによって必要とされ得る。レコードは、あるイベントに応答して、1つ以上のパラメータが更新されることを命令するメタデータを含み得る。たとえば、レコードは、レコード所有権の変更がトランザクションによって行われるたびに、あらかじめ定義された係数1だけ「transfer_counter」という数値パラメータがインクリメントされることを必要とし得、パラメータは許可される移転の最大数に制限を課すために使用される。
【0065】
パラメータ制約を有するレコードを作成するための機能は、
図3Aに示すように、1つ以上のパラメータが任意の条件を満たす値を有さなければならないか否かを説明する付加的なメタデータをレコード自体が含むことを除いて、「基本」レコードを作成する機能と同じである。
【0066】
パラメータ制約を有する例示的なレコードは、以下のとおりである。
【0067】
【0068】
上記のレコードでは、各パラメータは、特定されるいくつかのルールを有する。「スピ
ード(Speed)」および「アビリティ(Ability)」というパラメータは、読み取り専用であり、修正され得ない。
【0069】
「ステータス(Status)」というパラメータは、修正され得るが、テキスト値のあらかじめ定義されたリストとマッチしなければならない。
【0070】
「移転(Transfers)」というパラメータは、読み取り専用であり、ユーザによって意
図的に修正され得ないが、トランザクションが所有者を変更するたびに係数1だけインクリメントする必要があり、10の最大値を有する。したがって、レコードは、10回移転された後、もはや新しい所有者に移転され得ないか、そうでなければ、照合中に条件が満たされないことになる。
【0071】
パラメータ値によって実現されるこれらのルールは、レコードにおいてドキュメント化され、それらのテキストは、レコード作成者によって署名される。したがって、別のユーザは、作成者の署名を無効にすることになるので、ルール定義を修正し得ない。ルールは、作成者の署名によって保護される。
【0072】
パラメータ制約を含むレコードを照合するために、当該機能は、パラメータなしであって1つの付加的なタスクを有する場合と同様である。すなわち、トランザクションを照合する際、すべてのルール要件がトランザクションによって満たされているか否かをチェックし、任意のトランザクションによって、レコード作成者によって定義されたルールを満たさないパラメータ値が得られた場合には無効を返すよう、あらかじめ定義されたトランザクションルールを有する各レコードパラメータが比較されなければならない。
【0073】
照合機能は、任意の順序で実行され得る。その例としては、(1)最初にすべてのトランザクションについてすべての署名を照合し、次いで、すべてのトランザクションについてすべてのルールを照合すること、(2)最初にすべてのトランザクションについてすべてのルールを照合し、次いで、すべての署名を照合すること、(3)各トランザクションについて、すなわち、一度に1つのトランザクションについてルールコンプライアンスおよび署名を照合すること、または、(4)各トランザクションについて、すなわち、一度に1つのトランザクションについて署名およびルールコンプライアンスを照合することが挙げられる。すべての署名およびすべてのルールが照合される限り、順序は重要でない。
【0074】
図5は、一実施形態に従った、トランザクションルールにより電子レコードを照合する際の
図2の分散データレコードモジュール16の機能のフロー図である。
【0075】
図5の機能は、
図4の同じ機能を含むが、以下が追加される。502において、メタデータが、チェックすべき任意の(または次の)ルールについてチェックされる。たとえば、許可される最大値を有するパラメータであり得る。504において、ルール要件がトランザクション値の変更と比較される。たとえば、許可される最大トランザクション値が10であることをルールが特定する場合、トランザクションは、11に更新される値を有する。506において、ルールに違反した場合、418においてレコードは無効である。そうでなければ、508において、機能は502において継続する。
【0076】
サードパーティバリデータ
実施形態では、電子レコードが更新されると、レコードの以前のバージョンが古くなり、もはや有効でなくなることがしばしば必要とされる。たとえば、レコードが所有権を変更する場合、以前の所有者が有する古いバージョンは無効になるべきである。レコードのシステムは、競合状態または「二重支払い」を回避するために、時系列的な状態である必要があり得る。これは、サードパーティバリデータを使用することによって解決され得る
。レコードの作成、トランザクション、および、照合は、レコードが古いかまたは現在のものであるかを識別し得るサードパーティサービスに送信され得る。オンラインバリデータは、現在有効なレコードのリストを維持することによって、レコードが現在のものかまたは古いものかを確認し得る。そのリポジトリ(ファイル、ディレクトリ、データベース、または、データ構造であり得る)は、各レコードの全コピーを維持する必要はない。その理由は、各現在有効なレコードのチェックサムのみを必要とするからである。チェックサムは非常に短い文字列であり得る。任意のサイズのレコードは、レコードのチェックサムがバリデータリポジトリに存在する場合、有効であると確認され得る。
【0077】
サードパーティバリデータに晒される新しいレコードを作成するために、
図3Aの新しい署名されたレコードを作成するための機能が実現される。次いで、レコードがデジタル署名を含んだ後(すなわち、308の後)、md5、keccakまたはSHAのようなハッシュアルゴリズムを使用して、レコードのチェックサムハッシュを計算するよう、入力メッセージとしてレコードが使用される。次いで、チェックサムは、オンラインリポジトリまたはデータベースに挿入され、このことは、クレデンシャルおよび作成特権を必要とし得る。バリデータリポジトリにおけるチェックサムは、レコードが正当であることを示すことになる。
【0078】
図6は、一実施形態に従った、サードパーティバリデータによってレコードを照合する際の
図2の分散データレコードモジュール16の機能のフロー図である。
図6の機能は、602において、サードパーティバリデータチェックサムを含む更新されたレコードをサードパーティにおいて受け取った後に実現される。
【0079】
604において、更新を受け取る古いレコードが実際に有効であるか否かをチェックする必要がある。これは、古いレコードのチェックサムがリポジトリに存在するか否かをチェックすることによって行われる。これを行うために、レコードの古いバージョン(つまり、トランザクションの前のもの)を取得するために、最新のトランザクションがレコードから除去される。
【0080】
606において、レコードの古いバージョンのチェックサムハッシュが計算される。608において、古いレコードのチェックサムがリポジトリに存在する場合、当該古いレコードは有効である。608において「NO」の場合、古いレコードは無効であり、照合は失敗する。たとえば、古いレコードは、最初にポストされた別のトランザクションによって既に古くなっている場合がある。
【0081】
608においてYESの場合、610において、新しい更新されたレコードが
図4および
図5の機能を使用して照合される。これは、トランザクション署名が実際にレコードの現在の所有者の秘密鍵により署名されているか否かをチェックすることと、任意の潜在的なルール違反についてチェックすることとを意味する。古いレコードのチェックサムは既に照合されているので、すべてのトランザクション履歴を再度照合する必要はない。新しいトランザクションのみが照合される必要がある。
【0082】
612において、新しい(更新された)レコードが有効な場合は、614に進む。しかしながら、新しいトランザクション署名が無効であるか、または、ルールに違反している場合、当該照合は失敗する。
【0083】
古いレコードおよび新しいレコードが照合されたので、614において古いファイルのチェックサムを除去し、616において新しいファイルのチェックサムを挿入することが安全である。使用されるデータリポジトリのタイプに依存して、614および616は、「除去および挿入」ではなく、1つの「更新」に統合され得る。除去/挿入のメソッドを
使用する場合、使用されるデータベース管理システムは、アトミックな変更(atomic change)を保証する機能を提供し得、これは、削除および挿入の両方が成功するか、または
、両方が失敗することを意味する。
【0084】
図6の機能を使用して、要求者は、(1)レコードのチェックサムハッシュを計算するステップと、(2)チェックサムが有効である(存在する)か、または、無効である(発見されない)かを確認するようサードパーティバリデータに要求するステップという2つのシンプルなステップを実行することによって、サードパーティバリデータを使用して、レコードが有効か否かを照合し得る。
【0085】
一実施形態では、具体的には、オンラインバリデータリポジトリが、たとえばプライベートシステム、または、評判のよい分散アルゴリズム(たとえば、評判のよい分散システム上のオープンソーススマートコントラクト)において完全に信頼されている場合、署名チェーンはレコードからオミットされ得る。すべてのトランザクションが、リポジトリの更新前にオンラインバリデータによって照合されるため、署名チェーンは暗黙的であり得る。換言すると、チェックサムダイジェストがオンラインリポジトリに存在する場合、すべての以前のトランザクションが信用可能(honorable)でなければならない。そうでな
ければ、チェックサムはリポジトリにおいて発見されない。この実施形態は、レコードの完全なトランザクション履歴を維持するための、レコードについての必要性を除去する。このモデルを採用するシステムは、レコードの部分としてトランザクション履歴を除外するレコードを作成および更新するよう、最初から設計および開発されなければならない。これにより、レコードファイルサイズが大きくなりすぎることが防止される。さらに、レコードの以前の所有者が未知であるので、所望の場合、究極的なプライバシーが提供される。しかしながら、これは、リポジトリ(オンラインバリデータ)が完全に信頼され得る場合にのみ有益であり、いつもそうであるとは限らない。さらに、いくつかのユースケースでは、トランザクション履歴は、他の理由のために依然として必要とされ得る。その例としては、レコードが、予測される所有権を通過したことを照合することが挙げられる。
【0086】
いくつかの実施形態では、レコードの記載されたシステムは、特定のソフトウェアと、単一のオンラインバリデータと、既知の作成者鍵と、既知の署名アルゴリズムと、既知のチェックサムアルゴリズムとにより動作し得る。しかしながら、他の実施形態では、一般的なレコードのシステムが、多くの異なるソフトウェア(たとえば、異なるスマートフォンウォレット)と、多くのレコード作成者と、多くの使用されるアルゴリズムと、多くのバリデータサービスとを使用して作成され、トランザクションされ、かつ、照合される。したがって、実施形態では、電子レコードは、ユニバーサルなフレームワークを促進するよう、以下の付加的なパラメータを含み得る。
【0087】
(A)ユーザおよびクライアントアプリケーションが作成者のアドレスを照合することを可能にする、作成者のハイパーテキスト転送プロトコル(「HTTP: Hyper Text Transfer Protocol」)ユニフォームリソースロケータ(「URL: Uniform Resource Locator」)についてのパラメータ。たとえば、ACME.COMという会社が、レコードを作成する場合、ACME.COMドメイン上にページをポストし得、これにより、ユーザおよびアプリケーションが自身の公式なアドレスまたは公開鍵を取得することが可能になる。ウォレットアプリは、検査されているレコードが、その公開部分がACME.COMによって提供される鍵を使用して署名されているとユーザに通知し得る。
【0088】
(B)バリデータサービスのHTTP URLについてのパラメータ(すなわち、レコ
ードを照合する場所をクライアントアプリケーションに指示すること)。
【0089】
(C)使用される署名アルゴリズムについてのパラメータ。たとえば、楕円曲線を使用
する場合、他のアプリケーションがファイルを照合することができるように、どの曲線が使用されるかを示すパラメータ。
【0090】
いくつかの実施形態は、作成者の鍵が一度のみ使用され得ることを保証するようセキュリティオプションを提供する。これは、作成者のシークレットな秘密鍵が損なわれた場合に望ましく、または、作成者が同じの鍵を使用して付加的なレコードを作成する能力を有することがなく、これにより、供給が制限されることをユーザが確信したい場合に望ましい。これを達成するために、サードパーティオンラインバリデータは、作成者の公開鍵(またはアドレスを使用している場合はアドレス)を、以前に使用された鍵(またはアドレス)のリストに付加し得る。任意の新しいレコードの作成が完了する前に、サードパーティバリデータは、作成者の鍵が、過去のレコードを作成するために以前に使用されたか否かをチェックし得る。
【0091】
図7は、一実施形態に従った、付加的なセキュリティを有するサードパーティバリデータに晒される新しいレコードを作成する際の
図2の分散データレコードモジュール16の機能のフロー図である。
図7の機能は、サードパーティバリデータに晒される新しいレコードを作成するための上で開示された機能に追加される。
【0092】
702において新しいレコードを挿入する要求を受け取った後、704において、新しく作成されたレコードは正しく署名されていると照合され(すなわち、署名が、作成者の公開鍵に対して照合され)、706において、以前に使用された鍵またはアドレスの経過を追うリスト、ディレクトリ、または、データベースに対してクエリ送信することによって、作成者の鍵が以前に使用されていないと照合される。704および706は、任意の順序で実行され得る。
【0093】
708において、作成者の鍵(またはアドレス)が、以前に使用された鍵またはアドレスの経過を追うリスト、ディレクトリ、または、データベースに挿入される。710において、新しいレコードのチェックサムが作成される。712において、チェックサムは、有効なレコードのリスト、ディレクトリまたはデータベースに挿入される。
【0094】
レコード分割
実施形態において、レコードは、分割可能な数値パラメータを有し得る。たとえば、アカウントを表すレコードは、ポイント、通貨、株式、または、分割可能な任意の数値の残高を有し得、当該残高は、部分的に他の所有者に割り当てられ得る。
【0095】
たとえば、アリスは、「10」の値を有する「ポイント」パラメータを有するレコードを制御し得る。アリスは、3「ポイント」をボブ(彼のアドレス)に割り当て、2「ポイント」をキャロル(彼女のアドレス)に割り当てるトランザクションを実行し得る。このトランザクションにより、ボブの秘密鍵が3「ポイント」を制御することを可能にするレコードが得られる一方、キャロルの秘密鍵は、2「ポイント」を制御し、アリスの秘密鍵は、5「ポイント」に対する制御を保持する。その時点から、彼らは、レコードの単一のコピーを維持する必要はない。彼らは各々、自身のコピーを取得し、所望のことを、他の2人がそれを知ることなく、行い得る。
【0096】
レコード分割トランザクションは、トランザクションの詳細がたとえば以下のように部分の割り当てに関する詳細を含むことを除いて、以下に開示されるトランザクションと同様である。
【0097】
【0098】
上記の例では、作成者(5XA5AH...)が、分割可能であるとともに、異なる所有者に割
り当てられる部分を有し得る数値パラメータである10「キュードス(Kudos)」を有す
るレコードを作成した。作成者は、アリス(CIDK3...)にレコードの所有権を移転するトランザクションを記録した。
【0099】
第2のトランザクション上において、アリスは、当該キュードスパラメータを分割し、ボブ(SDJF8...)に3「キュードス」を与える。この時点から、7キュードスまたはそれ以下でアリスが何かを行うことによって署名されたトランザクションをこのレコードが受け取る場合、当該レコードは有効である。ボブが3キュードスまたはそれ以下で何かを行うことによって署名されたトランザクションをレコードが受け取る場合、当該レコードも有効である。したがって、アリスおよびボブは両方とも、異なる経路上でこのレコードに継続性を与え得、これにより、最終的に、互いに異なるがそれでも有効である複数のファイルが得られる。
【0100】
上で開示される分割機能は、二重支払いが懸念されない場合、および、レコードのシステムがサードパーティバリデータを必要としない場合に、有用である。他の実施形態では、二重支払いに抵抗性がある分割が実行され、かつ、サードパーティリポジトリによって照合される。これらの実施形態では、分割によって、異なるチェックサムハッシュ値が得られるのに十分なだけ互いに異なる複数の子レコードが得られるはずである。たとえば、レコードAが2つの部分に分割される場合、2つの新しいレコードBおよびCが得られるはずであり、A、BおよびCは、リポジトリのために別個のチェックサム値を生成する。分割がリポジトリに記録された後、レコードAのチェックサムは除去されることになり、レコードBおよびCのチェックサムはリポジトリに発見されることになる。レコードを2つより多い部分に分割することも可能である。
【0101】
図8は、一実施形態に従った、パラメータを複数の子レコードに分割する際の
図2の分散データレコードモジュール16の機能のフロー図である。
図8の機能の例として、レコードパラメータが10の初期供給を含み、当該初期供給が被減数(minuend)となると仮
定する。所有者であるアリスが3ユニットをボブに与え、2ユニットをキャロルに与え、5ユニットは彼女自身がキープする場合、当該供給は、以下のように何も残さずに分割される。
【0102】
【0103】
図8の機能の場合、元々の量から差し引かれる各部分は、減数(subtrahend)と称される。各減数により、一意の子レコードが得られる。オリジナルレコード(開始点)は、各子レコードについての開始コピーとして再使用されることになる。
【0104】
802においてオリジナルレコードを取得した後、804において、各減数(元々の量から差し引かれる部分)について、オリジナルレコードのコピーが開始点として作成され
る。806において、トランザクションが、子レコードに追加され、公開鍵または導出されたアドレスの制御に減数を割り当てる。たとえば、アリスがボブに3ユニットを与える場合、3ユニットがボブの公開鍵(またはアドレス)に割り当てられたことを示すよう、トランザクションが子レコードに追加される。
【0105】
808において、806からのトランザクションは、レコードを制御するシークレットな秘密鍵によりデジタル署名される。810において、デジタル署名がトランザクションに追加され、子レコードが完成する。
【0106】
812において、このトランザクションにおいてさらなる減数が存在するか否かが決定される。換言すると、依然として子レコードとして記録される必要がある、分割される元々の量のさらなる部分が存在するか否かが決定される。812において「NO」の場合、機能は804において継続する。812においてYESの場合、複数の一意の子レコードのバッチを返すことで機能が終了する。
【0107】
実施形態では、トランザクションがレコードを複数の子レコードに分割する場合、それらをバリデータリポジトリに記録することは、1つの古いチェックサムハッシュが除去されることになることと、多くの新しいチェックサムハッシュが付加されることとを意味する。
図9は、一実施形態に従った、バリデータリポジトリにおいて分割トランザクションを記録する際の
図2の分散データレコードモジュール16の機能のフロー図である。
【0108】
902において、レコードのバッチが受け取られる。904において、バッチ内の次のレコードが選択される。906において、選択された子レコードからの最後のトランザクションが除去される。これは、(分割されたトランザクションの前の)オリジナルドキュメントが、開始するのが良いか否かがチェックされ得るように、オリジナルドキュメントを識別するために行われる。
【0109】
908において、オリジナルレコードのチェックサムハッシュが計算され、後のために保存される。910において、子レコードは、
図4または
図5の機能を使用して照合される。子レコードは、署名の照合が失敗した場合、または、トランザクションルールに違反した場合、無効になる。912において、子レコードが無効である場合、記録は失敗する。そうでなければ、914において、新しい子レコードのチェックサムハッシュが計算され、後のために保存される。古いオリジナルレコードのチェックサムはすでに保存されているが、新しいレコードのチェックサムも必要とされる。
【0110】
916において、バッチ内においてさらに子レコードが存在する場合、機能は904にて継続する。そうでなければ、918において、バッチ内のすべての子レコードは、同じオリジナルレコードの一意の連続性であるはずである。実施形態は、すべての子レコードが同じ正確な起源を有すること、または、換言すると、オリジナルレコード部分がそれらのすべてにおいて同一であることを確実にする必要がある。これを行う複数の方法が存在する。1つは、最後のトランザクションなしで、それらのテキストを比較して、それらがすべて同じ同一のオリジナル部分を有することを確実にすることである。別の方法は、
図9の実施形態で使用される方法であって、ステップ3において生成されたすべてのチェックサムを取得し、それらがすべてマッチすることを確実にすることである。各子レコードについて、908において、それらのオリジナルレコードのチェックサムが作成された。それらのすべてが同じチェックサムを生成した場合、それらはすべて開始点とまったく同じオリジナルレコードを有し、プロセスは継続し得る。少なくとも1つの子レコードがその中にミスマッチする「オリジナルレコード」を有する場合、プロセスは失敗することになる。
【0111】
920において、すべての子レコードについて同一であると現在既知である、908において生成されたチェックサムは、有効なレコードとしてリポジトリ内に存在するか否かが決定される。920において「NO」の場合、プロセスは失敗する。オリジナルレコードは、リポジトリにチェックサムを有さない場合は、有効ではない。920においてYESの場合、922において、リポジトリからオリジナルレコードのチェックサムが除去される。924において、各子レコードのチェックサムがリポジトリに挿入される。
【0112】
908、910、912および914は、異なる順序であり得る。たとえば、チェックサムは、ファイルを照合した後に決定され得る。918および920は、任意の順序であり得る。922および924は、アトミックであるべきである、すなわち、「オールオアナッシングの態様」であるべきである。すべての挿入および削除が成功しなければならず、そうでなければ、すべてが初期状態にロールバックしなければならない。
【0113】
実施形態では、すべての子レコードは一意でなければならない。たとえば、アリスがボブに2ユニットを割り当て、ボブにさらに2ユニットを割り当て、ボブにさらに2ユニットを割り当てる場合、3つの減数によって、同じチェックサムを有する3つの同一レコードが得られることになる。これは、リポジトリにおいて一意のチェックサムが得られるようにすべての子レコードが少なくとも1つの文字によって一意であることを保証するために、各子レコードが、各トランザクションについての一意の部分ID番号のような十分な情報を有することを保証するよう考慮されるべきである。
【0114】
さらに、実施形態において、オリジナルドキュメントがトランザクションの記録(tally)を保持するように、1つずつ記録される分割トランザクションについてのオプション
が含められ得る。たとえば、アリスが数量の部分をボブに与え、次いで別の部分をキャロルに与え、次いで別の部分をデイブに与える場合、アリスは、すべての3つの異なる分割トランザクションのトレースを含むレコードにおける残りを記録として有し得る。これは、アリスがボブのアドレスに支払いをしたことをボブに証明する必要がある場合に有用である。当該証明は、アリスの現在有効なファイルがボブのアドレスへの支払いのトランザクションを示すことである。これにより、レコードは、自身において、支払い履歴の維持台帳(running ledger)となる。
【0115】
例として、レコードは、3つの子レコードのバッチに分割され得る。この例では、作成者(5XA5A...)が10「キュードス」の供給を有するレコードを作成し、それをアリス(CIDK3...)に割り当てる。アリスは次いで、10キュードスを分割し、3のキュードスをボブ(SDJF8...)に割り当て、2個のキュードスをキャロル(S98DF...)に割り当て、残りの5キュードスを自身自身に戻すよう割り当てる。3つの子レコードのバッチは、以下のように3つの入れ子型のJSONドキュメントのアレイとしてJSONフォーマットで表される。
【0116】
【0117】
開示されるように、実施形態は、スタンドアロンファイルから構成される台帳データベースを作成する。たとえば、アリスの銀行口座は、彼女のパーソナルラップトップ上のファイルである。ボブの銀行口座は、彼のスマートフォン上のファイルである。彼らは、自身の台帳履歴の管理者であるが、現代の暗号によって、彼らが不正行為をすることが不可能である。このモデルは、データの大部分がコンシューマ自身のデバイスにオフロードされるので、ストレージを実質的に無制限にする。実施形態における制御データベースは、すべてを格納する必要はなく、各スタンドアロンファイルの小さいチェックサムのみを格納する必要がある。したがって、数バイトのデータベースストレージは、コンシューマ自身のデバイスにオフロードされるギガバイトのアプリケーションデータを表わし得、かつ、照合し得る。
【0118】
実施形態は、以下の例示的なユースケースを可能にする。
1.コンサート、スポーツイベントまたはフェリーなどのチケット。チケット所有者は、「署名された」QRコード画像をスキャナに提示することで入ることが許可される。チケットは2回使用され得ない。チケットは偽造され得ない。チケットの盗難は、秘密鍵なしでは無駄である。
【0119】
2.紙の連なりのチケット(たとえば、「一名様有効」と示している赤いクーポン)のデジタル代替品としての、パブリックフェアでの食べ物、飲料および活動のためのチケット。正当でないチケットを持ってくる人々からの損失を防ぐ。人々は、クレジットカード、ペイパルなどを使用してチケットクレジットを自身の電話アプリにロードし得るので、現金を交換する必要がなくなる。
【0120】
3.ラッフルチケット。上記と同じ。人々は、ラッフルチケットを購入し、偽造することが不可能なデジタル証明書を取得し、真の所有者のみがそれを引き換え得る。
【0121】
4.カジノ、リゾートまたはクルーズ船でのゲストクレジット。プラスチックカードに
クレジットを投入する代わりに、ゲストは自身の電話にクレジットを投入し得る。
【0122】
5.サプライチェーンの完全性。製薬会社は、小売業者または病院に薬剤を出荷し得、すべての計画された移転(たとえば、トラック、倉庫など)の署名チェーンを示す証明書を使用することによって、当該薬剤が真正であることを証明し得る。販売/消費された後、その証明書はもはや、コピーされたシリアル番号を有する別のボトルを表すよう使用され得ない。
【0123】
6.ゲームマップの所有権、または、スポーツビデオゲームにおける有名なアスリートのカードといったビデオゲーム消耗品。
【0124】
7.デジタル証券取引。分散された自律的な会社が、分散データレコードの形態で自社の株式を発行する。議決および移転は、秘密鍵により署名し得る者によって行われる。データベースにおけるデータまたはトークン供給といったデジタル資産、オンライン組織の制御、または、オープンソースプロジェクトは、米国証券取引委員会によって規制されていない分割可能な資産の例である。
【0125】
8.収集品または記念品と共に発行される真正性および所有権の権原の証明書。
9.投票システム。各投票者は、一意の証明書をデジタル投票用紙として受け取り、署名された最終投票を投票カウンタに送る。家からの投票。
【0126】
10.人ではなく鍵保有者によって署名されるべき任意の契約書。
実施形態は、従来のデータベースまたはブロックチェーンにデータを格納することに対して以下の利点を有する。
【0127】
1.完全なプライバシー。レコードの現在の状態またはトランザクション履歴を分析するように科学捜査的に調査され得るデータベースインスタンスまたはノードは存在しない。その理由は、当該情報が、世界を通じて、データベースインスタンスではなく、おそらくユーザのパーソナルデバイスに保存されている分離され独立したレコードファイルに保持されているからである。データセットに対してレポートクエリを実行することはできない。この制限は、いくつかのプライバシー指向のユースケースにおいて望ましい機能である。
【0128】
2.ポータビリティ。コミュニティは、バックエンドデータベースソリューションを開発する必要なく、または、バックエンドデータベースソリューションに資金投入する必要なく、その場でレコードのシステムを作製し得る。レコードを発行し、当該レコードによりトランザクションを実行するのに必要なのは、スマートフォンまたはコンピュータのみである。データベースのコストなしでトランザクションシステムを構築することは、自由なオープンソースの取り組みを可能にする。たとえば、あるコミュニティが、オープンソースビデオゲームを開発し得、アイテムをトレードするためのバックエンドシステムを開発する必要なく、または、バックエンドシステムに資金投入する必要なく、プレーヤは、ゲーム内の消耗品を交換することができる。
【0129】
3.スケーラビリティ。情報はデータベースノードに格納されないので、ストレージのアロケーションは困難ではない。
【0130】
4.可用性。従来のデータベースモデルでは、データベースが使用不能または到達不能な場合、トランザクションは行われ得ない。対照的に、実施形態では、トランザクションはユーザ自身のデバイス上で行われ、結果得られる更新されたレコード(新しいトランザクション履歴および状態を有する)が別のユーザに直接的に送信され得る。
【0131】
5.照合可能性。いくつかの実施形態によると、誰かが、レコードの制御を有していると主張し、売り出しまたは使用のためにレコードをプライベートにまたはパブリックにリストする場合、他の者は、当該レコードの完全性および正当性を迅速に照合し得る。たとえば、チケット、ビデオゲーム消耗品、または、タイトルのようなレコードを販売していることを誰かがウェブサイトにポストする場合、潜在的な買い手は、販売のためにリストされたレコードが真正であり、かつ、売り手が実際にそれを制御しているか、または換言すると、それが偽物ではないかを照合することができることになる。トランザクションは、シークレットな秘密鍵によってデジタル署名されなければならないので、レコード所有者は、レコードの公開検査を安全に可能にし、それでもレコードの完全な制御を維持し得る。レコードを公に公開することは、レコードが盗まれるリスクにレコードを晒すことではない。これは、大きな利点である。その理由は、人々がインターネット上で販売のためにデジタルアイテム(ビデオゲーム消耗品またはイベントチケットなど)をリストする多くの場合、それらは偽物または詐欺であるからである。
【0132】
6.保証された価値。ユーザ(または技術的にはユーザの鍵の対およびアドレス)は、そのようなエンティティの経過を追うインスタンスが存在しないので、システムから禁止され得ない。さらに、レコードは、管理者の権限に晒されるまたは影響を受けるインスタンスが存在しないので、その価値を増加または減少するように管理者によって変更され得ない。これらの制限は、究極的な信頼を必要とするいくつかのユースケースにおいて望ましい保護であり得る。随意では、すべての参加者(サービスプロバイダおよびコンシューマ)が有限の供給制限が実施される(換言すると、新しい付加的な供給アイテムが発行されることがない)ことを確信し得るように、レコードの有限の供給を保証することも容易である。この保証は可能かつ随意であり、腐敗を防止するために有用であり得、かつ、サプライチェーンへの偽造品の導入を防止するために有用であり得る。ユーザがレコードまたは当該レコードを制御する秘密鍵を失わない限り、価値は保証される。
【0133】
いくつかの実施形態が、本明細書において具体的に説明および/または記載される。しかしながら、開示された実施形態の修正例および変形例は、本発明の精神および意図される範囲から逸脱することがなければ、上記の教示によって、および、添付の請求の範囲の範囲内でカバーされることが理解されるであろう。
【手続補正書】
【提出日】2024-07-11
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デジタル資産の作成者との第1のトランザクションに応答して前記デジタル資産の第1の所有者によって前記デジタル資産を照合する、少なくとも1つ以上のハードウェアプロセッサを使用するコンピュータにより実現される方法であって、前記第1の所有者は、対応する第1の所有者秘密鍵および第1の所有者公開鍵を有し、前記方法は、
前記デジタル資産に対応する第1のデジタルレコードを受信することを含み、前記第1のデジタルレコードは、
1つ以上の初期パラメータおよび前記作成者の作成者公開鍵と、前記1つ以上の初期パラメータ、前記作成者公開鍵、および前記作成者の作成者秘密鍵を使用して計算される追加初期デジタル署名と、を含む初期部分と、
1つ以上の第1のパラメータを含む第1の部分とを含み、第1のパラメータは、前記デジタル資産の所有権を前記作成者から前記第1の所有者に割り当てる前記第1のトランザクションを含み、前記第1のパラメータは、前記第1の所有者公開鍵および前記作成者公開鍵を特定する第1のフィールドと、前記初期部分、前記追加初期デジタル署名、前記第1の部分、および前記作成者秘密鍵を使用して計算される追加第1のデジタル署名とを含み、前記方法はさらに、
前記第1のデジタルレコードから前記作成者公開鍵を抽出することと、
前記第1のデジタルレコードから前記第1のデジタル署名を抽出することと、
前記第1のデジタルレコードから、前記初期部分、前記初期デジタル署名、および前記第1の部分を抽出することと、
照合機能、ならびに、抽出された前記作成者公開鍵、前記第1のデジタル署名、および前記初期部分を使用して、前記第1のデジタル署名が前記作成者秘密鍵を使用して計算されたことを確認することとを含む、方法。
【請求項2】
前記第1のデジタル署名は、署名ハッシュ値を含む、請求項1に記載の方法。
【請求項3】
第2の所有者秘密鍵および第2の所有者公開鍵を有する第2の所有者と、前記デジタル資産についての第2のトランザクションを実行することをさらに含み、前記実行することは、
前記第1の所有者から前記第2の所有者に前記デジタル資産の所有権を割り当てる前記第2のトランザクションを含み、かつ、前記第2の所有者公開鍵を特定する第2のフィールドを含む第2のパラメータを含む第2の部分を前記第1のデジタルレコードに加えることと、
前記第1の所有者秘密鍵、前記第1のデジタルレコード、および前記第2の部分を使用して第2のデジタル署名を計算することと、
前記第1のデジタルレコードおよび前記第2の部分上に前記第2のデジタル署名を追加することによって第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含み、前記第2のデジタルレコードは前記デジタル資産を表す、請求項1または請求項2に記載の方法。
【請求項4】
前記第1のデジタルレコードは、複数のトランザクションを含み、各トランザクションは、現在所有者秘密鍵を使用して計算される新しいデジタル署名を含み、前記方法はさらに、各トランザクションの前記新しいデジタル署名を確認するために前記照合機能を使用することを含む、請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第1のフィールドは、前記第1の所有者公開鍵から導出される第1のハッシュ値を含む、請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記パラメータのうちの少なくとも1つはルールによって必要とされる、請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記パラメータのうちの1つは、前記デジタル資産が所有権を変更するたびにインクリメントされるカウンタである、請求項6に記載の方法。
【請求項8】
前記初期部分および前記初期デジタル署名の格納チェックサムハッシュは、サードパーティバリデータによって格納され、前記照合することはさらに、前記初期部分および前記初期デジタル署名の新しいチェックサムハッシュを計算することと、前記新しいチェックサムハッシュを前記格納チェックサムハッシュと比較することとを含む、請求項1~7のいずれか1項に記載の方法。
【請求項9】
命令を格納しているコンピュータ可読プログラムであって、前記命令は、プロセッサによって実行されると、デジタル資産の作成者との第1のトランザクションに応答して前記デジタル資産の第1の所有者によって前記デジタル資産を照合することを前記プロセッサに行わせ、前記第1の所有者は、対応する第1の所有者秘密鍵および第1の所有者公開鍵を有し、前記照合することは、
前記デジタル資産に対応する第1のデジタルレコードを受信することを含み、前記第1のデジタルレコードは、
1つ以上の初期パラメータおよび前記作成者の作成者公開鍵と、前記1つ以上の初期パラメータ、前記作成者公開鍵、および前記作成者の作成者秘密鍵を使用して計算される追加初期デジタル署名と、を含む初期部分と、
1つ以上の第1のパラメータを含む第1の部分とを含み、第1のパラメータは、前記デジタル資産の所有権を前記作成者から前記第1の所有者に割り当てる前記第1のトランザクションを含み、前記第1のパラメータは、前記第1の所有者公開鍵および前記作成者公開鍵を特定する第1のフィールドと、前記初期部分、前記追加初期デジタル署名、前記第1の部分、および前記作成者秘密鍵を使用して計算される追加第1のデジタル署名と、を含み、前記照合することはさらに、
前記第1のデジタルレコードから前記作成者公開鍵を抽出することと、
前記第1のデジタルレコードから前記第1のデジタル署名を抽出することと、
前記第1のデジタルレコードから、前記初期部分、前記初期デジタル署名、および前記第1の部分を抽出することと、
照合機能、ならびに、抽出された前記作成者公開鍵、前記第1のデジタル署名、および前記初期部分を使用して、前記第1のデジタル署名が前記作成者秘密鍵を使用して計算されたことを確認することとを含む、コンピュータ可読プログラム。
【請求項10】
前記第1のデジタル署名は、署名ハッシュ値を含む、請求項9に記載のコンピュータ可読プログラム。
【請求項11】
第2の所有者秘密鍵および第2の所有者公開鍵を有する第2の所有者との前記デジタル資産についての第2のトランザクションを実行することをさらに含み、前記実行することは、
前記第1の所有者から前記第2の所有者に前記デジタル資産の所有権を割り当てる前記第2のトランザクションを含み、かつ、前記第2の所有者公開鍵を特定する第2のフィールドを含む第2のパラメータを含む第2の部分を前記第1のデジタルレコードに加えることと、
前記第1の所有者秘密鍵、前記第1のデジタルレコード、および前記第2の部分を使用して第2のデジタル署名を計算することと、
前記第1のデジタルレコードおよび前記第2の部分上に前記第2のデジタル署名を追加することによって第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含み、前記第2のデジタルレコードは前記デジタル資産を表す、請求項9または請求項10に記載のコンピュータ可読プログラム。
【請求項12】
前記第1のデジタルレコードは、複数のトランザクションを含み、各トランザクションは、現在所有者秘密鍵を使用して計算される新しいデジタル署名を含み、前記照合することはさらに、各トランザクションの前記新しいデジタル署名を確認するために前記照合機能を使用することを含む、請求項9~11のいずれか1項に記載のコンピュータ可読プログラム。
【請求項13】
前記第1のフィールドは、前記第1の所有者公開鍵から導出される第1のハッシュ値を含む、請求項9~12のいずれか1項に記載のコンピュータ可読プログラム。
【請求項14】
前記1つ以上の初期パラメータのうちの少なくとも1つはルールによって必要とされる、請求項9~13のいずれか1項に記載のコンピュータ可読プログラム。
【請求項15】
前記1つ以上の初期パラメータのうちの1つは、前記デジタル資産が所有権を変更するたびにインクリメントされるカウンタである、請求項14に記載のコンピュータ可読プログラム。
【請求項16】
前記初期部分および前記初期デジタル署名の格納チェックサムハッシュは、サードパーティバリデータによって格納され、前記照合することはさらに、前記初期部分および前記初期デジタル署名の新しいチェックサムハッシュを計算することと、前記新しいチェックサムハッシュを前記格納チェックサムハッシュと比較することと、を含む、請求項9~15のいずれか1項に記載のコンピュータ可読プログラム。
【請求項17】
デジタル資産トランザクション照合システムであって、
デジタル資産の作成者との第1のトランザクションに応答して前記デジタル資産の第1の所有者について前記デジタル資産を照合するために、格納された命令を実行する1つ以上のハードウェアプロセッサを含み、前記第1の所有者は、対応する第1の所有者秘密鍵および第1の所有者公開鍵を有し、前記照合することは、
前記デジタル資産に対応する第1のデジタルレコードを受信することを含み、前記第1のデジタルレコードは、
1つ以上の初期パラメータおよび前記作成者の作成者公開鍵と、前記1つ以上の初期パラメータ、前記作成者公開鍵、および前記作成者の作成者秘密鍵を使用して計算される追加初期デジタル署名とを含む初期部分と、
1つ以上の第1のパラメータを含む第1の部分とを含み、第1のパラメータは、前記デジタル資産の所有権を前記作成者から前記第1の所有者に割り当てる前記第1のトランザクションを含み、前記第1のパラメータは、前記第1の所有者公開鍵および前記作成者公開鍵を特定する第1のフィールドと、前記初期部分、前記追加初期デジタル署名、前記第1の部分、および前記作成者秘密鍵を使用して計算される追加第1のデジタル署名と、を含み、前記照合することはさらに、
前記第1のデジタルレコードから前記作成者公開鍵を抽出することと、
前記第1のデジタルレコードから前記第1のデジタル署名を抽出することと、
前記第1のデジタルレコードから、前記初期部分、前記初期デジタル署名、および前記第1の部分を抽出することと、
照合機能、ならびに、抽出された前記作成者公開鍵、前記第1のデジタル署名、および前記初期部分を使用して、前記第1のデジタル署名が前記作成者秘密鍵を使用して計算されたことを確認することと、を含む、デジタル資産トランザクション照合システム。
【請求項18】
前記第1のデジタル署名は、署名ハッシュ値を含む、請求項17に記載のシステム。
【請求項19】
前記照合することは、第2の所有者秘密鍵および第2の所有者公開鍵を有する第2の所有者との前記デジタル資産についての第2のトランザクションを実行することをさらに含み、前記実行することは、
前記第1の所有者から前記第2の所有者に前記デジタル資産の所有権を割り当てる前記第2のトランザクションを含む第2のパラメータを含み、かつ、前記第2の所有者公開鍵を特定する第2のフィールドを含む第2の部分を前記第1のデジタルレコードに加えることと、
前記第1の所有者秘密鍵、前記第1のデジタルレコード、および前記第2の部分を使用して第2のデジタル署名を計算することと、
前記第2のデジタル署名を前記第1のデジタルレコードおよび前記第2の部分上に追加することによって第2のデジタルレコードを作成することと、
前記第2のデジタルレコードを前記第2の所有者に送信することとを含み、前記第2のデジタルレコードは前記デジタル資産を表す、請求項17に記載のシステム。
【請求項20】
前記第1のデジタルレコードは、複数のトランザクションを含み、各トランザクションは、現在所有者秘密鍵を使用して計算される新しいデジタル署名を含み、前記照合することはさらに、各トランザクションの前記新しいデジタル署名を確認するために前記照合機能を使用することを含む、請求項17に記載のシステム。
【外国語明細書】