(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-26
(45)【発行日】2024-08-05
(54)【発明の名称】統合ブロックチェーンに基づくデータ転送制御方法及びシステム
(51)【国際特許分類】
H04L 9/32 20060101AFI20240729BHJP
H04L 9/08 20060101ALI20240729BHJP
【FI】
H04L9/32 200Z
H04L9/08 F
【外国語出願】
(21)【出願番号】P 2023067710
(22)【出願日】2023-04-18
(62)【分割の表示】P 2021103094の分割
【原出願日】2017-02-21
【審査請求日】2023-04-18
(32)【優先日】2016-02-23
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2016-03-16
(33)【優先権主張国・地域又は機関】GB
(32)【優先日】2016-11-15
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】318001991
【氏名又は名称】エヌチェーン ライセンシング アーゲー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ライト,クレイグ スティーヴン
(72)【発明者】
【氏名】サヴァナ,ステファヌ
【審査官】松平 英
(56)【参考文献】
【文献】特開2008-146601(JP,A)
【文献】特開2010-219912(JP,A)
【文献】特表2015-536617(JP,A)
【文献】米国特許出願公開第2015/0244690(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/14
21/00-21/88
G09C 1/00-5/00
H04K 1/00-3/00
H04L 9/00-9/40
(57)【特許請求の範囲】
【請求項1】
第1分類種類に基づき公開アドレスを分類するために、前記公開アドレスを少なくとも1つの識別子に論理的にリンクする又は関連付けることにより、複数のエンティティの前記公開アドレスを前記第1分類種類の1又は複数の識別子に関連付けるステップと、
通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第1識別子を受信するステップと、
前記第1識別子に関連付けられた第1公開アドレスセットを決定するステップであって、前記第1公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第1識別子に関連付けられた前記第1公開アドレスセットに基づき、ブロックチェーン内の第1トランザクションセットを識別するステップと、
を含む、コンピュータにより実施される方法。
【請求項2】
前記方法は、前記第1トランザクションセットから少なくとも一部のデータを抽出又はコピーし、及び/又は前記抽出したデータをブロックチェーンプラットフォーム又はネットワークの部分ではないコンピューティングリソースへ送信するステップ、を更に含む請求項1に記載の方法。
【請求項3】
前記公開アドレスは、暗号鍵から又はそれに基づき導出される、請求項1又は2に記載の方法。
【請求項4】
前記暗号鍵は決定キーである、請求項3に記載の方法。
【請求項5】
前記通信ネットワークから、前記第1識別子に関連付けられた第1データアイテムを受信するステップと、
前記第1データアイテム及び前記第1トランザクションセットに基づき、第1データアウトプットを生成するステップと、
を更に含む、請求項1に記載のコンピュータにより実施される方法。
【請求項6】
通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第2識別子に関連付けられた第2データアイテムを受信するステップと、
前記第2識別子に関連付けられた第2公開アドレスセットを決定するステップであって、前記第2公開アドレスセットは、前記公開アドレスのサブセットである、ステップと、
前記第2識別子に関連付けられた前記第2公開アドレスセットに基づき、前記ブロックチェーン内の第2トランザクションセットを決定するステップであって、前記第2トランザクションセットはトランザクションのサブセットである、ステップと、
前記第2データアイテム及び前記第2トランザクションセットに基づき、第2データアウトプットを生成するステップと、
前記第1データアウトプットの第1アウトプットハッシュ表現を生成するために、前記第1データアウトプットに対して第1ハッシュ演算を実行するステップと、
前記第2データアウトプットの第2アウトプットハッシュ表現を生成するために、前記第2データアウトプットに対して第2ハッシュ演算を実行するステップと、
前記第1アウトプットハッシュ表現と前記第2アウトプットハッシュ表現を結合するステップと、
前記結合された第1アウトプットハッシュ表現及び第2アウトプットハッシュ表現の第3ハッシュ表現を生成するために、前記結合された第1アウトプットハッシュ表現及び第2アウトプットハッシュ表現に対して第3ハッシュ演算を実行するステップと、
を更に含む、請求項5に記載のコンピュータにより実施される方法。
【請求項7】
前記第1データアウトプット及び前記第2データアウトプットを結合するステップと、
前記結合された第1データアウトプット及び第2データアウトプットのハッシュ表現を生成するために、前記結合された第1データアウトプット及び第2データアウトプットに対してハッシュ演算を実行するステップと、
を更に含む、請求項6に記載のコンピュータにより実施される方法。
【請求項8】
第2分類種類に基づき前記公開アドレスを分類するために、前記エンティティの前記公開アドレスを前記第2分類種類の1又は複数の識別子に関連付けるステップと、
前記通信ネットワークから、前記第2分類種類の前記1又は複数の識別子のうちの第3識別子を受信するステップと、
前記第3識別子及び前記第1識別子に関連付けられた第3公開アドレスセットを決定するステップであって、前記第3公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第3識別子及び前記第1識別子に関連付けられた前記第3公開アドレスセットに基づき、前記ブロックチェーン内の第3トランザクションセットを決定するステップであって、前記第3トランザクションセットはトランザクションのサブセットである、ステップと、
を更に含む、請求項1~7のいずれか一項に記載のコンピュータにより実施される方法。
【請求項9】
前記第1分類種類は前記エンティティの識別情報により前記公開アドレスの分類を表す、請求項1~8のいずれか一項に記載のコンピュータにより実施される方法。
【請求項10】
前記第1分類種類の前記1又は複数の識別子は、
前記エンティティの名称、
前記名称の16進コード、
前記エンティティのAustralian Business Number、
ネットワークアドレス、又は、
前記エンティティのAustralian Company Number、
のうちの1又は複数を含む、請求項1~9のいずれか一項に記載のコンピュータにより実施される方法。
【請求項11】
前記第2分類種類は前記エンティティの会計種類により前記公開アドレスの分類を表す、請求項8に記載のコンピュータにより実施される方法。
【請求項12】
前記エンティティの前記公開アドレスを前記第1分類種類の前記1又は複数の識別子に関連付けるステップは、
ルックアップテーブルのエントリに、前記第1分類種類の前記1又は複数の識別子を前記エンティティの前記公開アドレスに関連付けて格納するステップであって、前記ルックアップテーブルの各エントリは、前記第1分類種類の前記1又は複数の識別子のうちの1つ及び前記公開アドレスのうちの1つを含む、ステップ、を含む、
請求項1~11のいずれか一項に記載のコンピュータにより実施される方法。
【請求項13】
前記エンティティの前記公開アドレスを前記第1分類種類の前記1又は複数の識別子に関連付けるステップは、
スクリプトを用いて、前記第1分類種類の前記1又は複数の識別子を前記ブロックチェーン内の前記公開アドレスに関連付けるステップ、を含む、
請求項1~10のいずれか一項に記載のコンピュータにより実施される方法。
【請求項14】
前記第1分類種類は前記エンティティをリンクする木構造により前記公開アドレスの分類を表す、請求項1に記載のコンピュータにより実施される方法。
【請求項15】
前記第1分類種類の前記1又は複数の識別子は、前記エンティティに関連付けられた決定キーを含み、前記決定キーは前記木構造に基づき生成される、請求項14に記載のコンピュータにより実施される方法。
【請求項16】
前記エンティティは、前記木構造の中の親エンティティ及び前記親エンティティに関連付けられた子エンティティを有し、
前記親エンティティは、決定キーのうちの第1決定キーに関連付けられ、前記子エンティティは、前記決定キーのうちの第2決定キーに関連付けられ、
前記第1決定キーは、前記親エンティティに関連付けられた親指示に基づき決定され、前記第2決定キーは、前記第1決定キー及び前記子エンティティに関連付けられた子指示に基づき決定される、
請求項14又は15に記載のコンピュータにより実施される方法。
【請求項17】
前記通信ネットワークから前記親指示を受信するステップと、
前記親指示に基づき前記第1決定キーを決定するステップと、
前記第1決定キー及び前記子指示に基づき前記第2決定キーを決定するステップと、
前記第2決定キーに関連付けられた第4公開アドレスセットを決定するステップであって、前記第4公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第2決定キーに関連付けられた前記第4公開アドレスセットに基づき、前記ブロックチェーン内の第4トランザクションセットを決定するステップであって、前記第4トランザクションセットはトランザクションのサブセットである、ステップと、
前記第4トランザクションセットに基づき第3データアウトプットを生成するステップと、
を更に含む、請求項16に記載のコンピュータにより実施される方法。
【請求項18】
前記公開アドレスは、非対称暗号対の公開鍵を有し、前記非対称暗号対の各々は、前記公開鍵のうちの1つ及び前記公開鍵のうちの前記1つに対応する秘密鍵を有する、請求項1~17のいずれか一項に記載のコンピュータにより実施される方法。
【請求項19】
前記ブロックチェーンは、ビットコインプロトコルに従い生成される、請求項1~18のいずれか一項に記載のコンピュータにより実施される方法。
【請求項20】
前記公開アドレスは、前記ビットコインプロトコルで使用される前記エンティティのビットコインアドレスを有する、請求項19に記載のコンピュータにより実施される方法。
【請求項21】
コンピュータシステムであって、
少なくとも1つのプロセッサであって、
第1分類種類に基づき公開アドレスを分類するために、前記公開アドレスを少なくとも1つの識別子に論理的にリンクする又は関連付けることにより、複数のエンティティの前記公開アドレスを前記第1分類種類の1又は複数の識別子に関連付け、
通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第1識別子を受信し、
前記第1識別子に関連付けられた第1公開アドレスセットを決定し、前記第1公開アドレスセットは前記公開アドレスのサブセットであり、
前記第1識別子に関連付けられた前記第1公開アドレスセットに基づき、ブロックチェーン内の第1トランザクションセットを識別する、
よう構成される少なくとも1つのプロセッサを含むコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、ビットコインブロックチェーンのようなピアツーピア分散技術に関する。本発明は、また、ブロックチェーン上のトランザクションのセキュア且つ効率的決定及び/又は識別のための暗号技術の使用に関し、結果として、非常に汎用的且つブロックチェーン基盤に関連して動作し及びそれと相互作用するプロセスを制御するために使用可能な技術的ソリューションを生じる。本発明は、別のコンピュータに基づく宛先にコピーする及び/又はそれへ送信するために、どのブロックチェーントランザクションセット(又はそれからのデータ)が選択されるかを決定するために使用できる。
【背景技術】
【0002】
ブロックチェーンは、ブロックにより構成される、コンピュータに基づく非集中型の分散型システムとして実装されるピアツーピア電子台帳である。また、ブロックはトランザクションにより構成される。各トランザクションは、ブロックチェーンシステム内で参加者間のデジタル資産の制御の転送を符号化するデータ構造であり、少なくとも1つのインプット及び少なくとも1つのアウトプットを含む。各ブロックは前のブロックのハッシュを含み、ブロックは共にチェーンになって、その発端からブロックチェーンに書き込まれている全てのトランザクションの永久的な変更不可能なレコードを生成する。トランザクションは、そのインプット及びアウトプットに埋め込まれたスクリプトとして知られる小さなプログラムを含む。スクリプトは、トランザクションのアウトプットがどのように及び誰によりアクセス可能かを指定する。ビットコインプラットフォーム上で、これらのスクリプトは、スタックに基づくスクリプト言語を用いて記述される。
【0003】
トランザクションがブロックチェーンに書き込まれるために、「検証され」なければならない。ネットワークノード(マイナー)は、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、自身のロック及びアンロックスクリプトを実行することにより、この検証作業を未使用トランザクション(UTXO)に対して実行する。ロック及びアンロックスクリプトの実行が真と評価した場合、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。したがって、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)トランザクションを受信した第1ノードにより検証され、トランザクションが検証された場合に、ノードは該トランザクションをネットワーク内の他のノードに中継し、ii)マイナーにより構築された新しいブロックに追加し、iii)マインされ、つまり過去のトランザクションの公開台帳に追加されなければならない。
【0004】
ブロックチェーンは様々な利益を提供するので、多くの組織(エンティティ)が、この技術を彼らのコンピューティングインフラに組み込むことのできる方法を調査し始めている。エンティティは、彼らのデータの記憶及び/又は処理のための複雑な内部コンピューティングシステムを実装し得る。例えば、これらのシステムは、組織の活動により生成され及び/又はキャプチャされた大容量データを処理するために必要な大規模データベース構造に基づくことがある。例えば、金融システムは、生成され及びキャプチャされたデータが正確に処理され又は通信され得るように、種々のデータベースの管理及び同期を必要とする場合がある。しかしながら、ブロックチェーンは耐タンパー性及び永久記録のような利点を提供するので、データ及びイベントを記録するためにブロックチェーン技術を使用することが望ましいが、異なるコンピューティングアーキテクチャ及びプラットフォームが互いに関連して使用される必要のあるときに、技術的困難が生じる。ブロックチェーンプラットフォームは、エンティティの内部システムとインタフェースしない場合がある。したがって、異なるハードウェア及びソフトウェアシステムが使用されることから生じる統合及び通信問題が存在する。異なるシステム(例えばDBMS)へ送信できるように、あるシステム(例えばブロックチェーン)からデータを識別し抽出することの困難は、些細な問題ではない。さらに、いずれの基本プラットフォームにも変更を必要としない方法で、このプラットフォームに跨る統合を達成することが望ましい。さらに、ブロックチェーンは、ブロックに構築されるトランザクション(Txs)にデータを格納する。ブロックチェーンから関連データを識別し及びアクセスすることは、困難なタスクであり、時間及び計算量の両方の観点でセキュア且つ効率的でもある方法で実行される必要がある。本発明は、少なくともこれらの技術的関心事を解決する。
【0005】
本願明細書を通じて、用語「含む、有する(comprise)」又は「comprises」若しくは「comprising」のような変形は、記述される要素、整数若しくはステップ、又は要素、整数若しくはステップのグループ、の包含を意味すると理解されるが、任意の他の要素、整数若しくはステップ、又は要素、整数若しくはステップのグループを除外しない。
【0006】
本願明細書で、用語「ブロックチェーン」は、あらゆる形式の電子的な、コンピュータに基づく、分散台帳を含むよう使用される。これらは、総意に基づくブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、共有台帳、及びそれらの変形を含む。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され開発されている。ビットコインは便宜上及び説明を目的として本願明細書において言及されるが、本発明はビットコインのブロックチェーンと共に使用することに限定されず、代替のブロックチェーンの実装及びプロトコルが本発明の範囲に含まれることに留意すべきである。
【0007】
本開示に含まれる文書、動作、材料、装置、製品、等の議論は、これらの項目のうちのいずれか又は全部が従来基盤の部分を形成すること、又は本願の各請求項の優先日前に存在していたような本開示の関連分野における共通の一般知識であったとの承認として解釈されるべきではない。
【発明の概要】
【0008】
本発明による方法及びシステムは添付の請求項において定められる。本発明は、暗号方法及び対応するシステムを提供し得る。本発明は、ブロックチェーンにより実施される方法/システムを提供し得る。本発明は、データのセキュアな識別、抽出、送信、処理、及び/又は更新のための制御システムを提供し得る。このデータは、ブロックチェーンから引き出され、アクセスされ、又はコピーされて良い。本発明は、暗号キーを用いてブロックチェーンを、データ記憶/処理リソースのような非ブロックチェーンにより実施されるコンピューティングリソースに統合する方法/システムを提供し得る。本発明は、暗号キーを用いて、ブロックチェーンからデータを識別し及び/又は抽出する方法/システムを提供し得る。本発明は、ブロックチェーンにより供給されるデータを非ブロックチェーンにより実施される記憶リソースに統合する方法/システムを提供し得る。エンティティは、組織、システム、又はネットワークとして参照されて良い。エンティティは、論理エンティティ、仮想、コンピュータに基づく又は物理エンティティであって良い。エンティティは、自然人を有して良い。
【0009】
1又は複数のエンティティによるブロックチェーントランザクション(Txs)の効率的な識別、関連付け、又は決定のためのコンピュータにより実施される方法が提供され得る。ブロックチェーントランザクションは、ピアツーピア分散台帳(ブロックチェーン)に記録されて良い。
【0010】
方法は、
第1分類種類に基づき公開アドレスを分類するために、エンティティの前記公開アドレスを前記第1分類種類の1又は複数の識別子に関連付けるステップであって、これは前記公開アドレスの少なくとも1つの識別子との論理的リンク又は関連付けを含んで良く、前記識別子は分類種類に属する、ステップと、
通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第1識別子を受信するステップと、
前記第1識別子に関連付けられた第1公開アドレスセットを決定するステップであって、前記第1公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第1識別子に関連付けられた前記第1公開アドレスセットに基づき、ブロックチェーン内の第1トランザクションセットを識別するステップと、
を含む。前記第1トランザクションセットは、前記ブロックチェーン上の前記トランザクションのサブセットであって良い。
【0011】
方法は、第1ブロックチェーントランザクションセットから少なくともデータ部分(「トランザクションデータ」と呼ばれることがある)を抽出する又はコピーするステップ、及び/又は、抽出したトランザクションデータを、ブロックチェーンプラットフォーム又はネットワークの部分ではない計算リソースへ送信するステップ、を更に有して良い、
公開アドレスは、暗号鍵から導出され又はそれに基づき導出されて良い。これは、決定キーであって良い。
【0012】
追加又は代替として、本発明は、リンクされた又は関連付けられたエンティティ構造の公開鍵を生成する方法を提供し得る。公開鍵を生成するために決定キーに関数が適用され、前記決定キーは、親決定キーを生成するために親エンティティ識別子に、又は子決定キーを生成するために前記親決定キーと子エンティティ識別子との和に、ハッシュ関数を適用することにより生成される。
【0013】
鍵は、公開/秘密鍵ペアの部分を形成して良い。「マスタ」又は「ルート」鍵/ペアとして指定される1つの鍵又は鍵ペアが存在して良い。ティティの中のサブエンティティ、ユニット又は要素は、ルートから導出されるサブキー又はペアに関連付けられて良い。サブキーは、決定論的方法で生成されて良い。サブキーは、実質的に以下に提供される例に記載されるように生成され又は決定されて良い。サブキーは、別の(先行する)キーに基づき生成され、導出され、又は決定されて良い。サブキーの生成は、ECC技術の使用を含んで良い。サブキーは、メッセージ(M)又は識別子の暗号ハッシュに基づく決定キー(deterministic key:DK)を用いて生成され、導出され、又は決定されて良い。メッセージ又は識別子は、ランダム、疑似ランダム、予め定められ又は選択されて良い。好適な実施形態では、メッセージ/識別子は、例えばアカウント番号、患者ID、ネットワークノード識別子、会社識別子、等のような意義のある値に対応するよう、選択され、構成され、又は生成される。メッセージ又は識別子は、エンティティ又はサブエンティティ/要素に関連する何らかの意味を有して良い。メッセージは、エンティティ又は要素へのリンク、関連付け、又は参照を提供して良い。サブキーは、関連する公開親キー及び決定キーと生成器(G)とのスカラ乗算のスカラ和に基づき決定されて良い。メッセージ/識別子は、ブロックチェーントランザクション(Tx)内のメタデータの中に格納されて良い。メッセージ/識別子は、更なるサブキーを提供するために、再ハッシュされて良い。
【0014】
本発明の幾つかの実施形態では、方法は、第1分類種類に基づき公開アドレスを分類するために、公開アドレスを第1分類種類の1又は複数の識別子に関連付けるステップを有して良い。このように、方法は、分類された公開アドレスに基づき、ピアツーピア分散台帳(ブロックチェーン)に記録されているトランザクション(Txs)を効率的に決定できる。その結果、本開示で開示される方法は、ブロックチェーンに送信されているトランザクションからデータが識別され及び/又は抽出される必要のある任意の種類のシステムにとって特に有用である。有用なアプリケーションの例は、ブロックチェーンに記録されたトランザクション上の会計及び報告を含み得るが、本発明はこの使用、適用、又は文脈に関して限定されないことに留意することが重要である。
【0015】
方法は、
前記通信ネットワークから、前記第1識別子に関連付けられた第1データアイテムを受信するステップと、
前記第1会計項目及び前記第1トランザクションセットに基づき、第1データアウトプットを生成するステップと、を更に含んで良い。
【0016】
便宜上及び簡単のために、非限定的方法で、データアイテムは、「会計項目」として参照されることがあり、データアウトプットは「会計報告」として参照されることがある。
【0017】
方法は、通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第2識別子に関連付けられた第2会計項目を受信するステップと、
前記第2識別子に関連付けられた第2公開アドレスセットを決定するステップであって、前記第2公開アドレスセットは、前記公開アドレスのサブセットである、ステップと、
前記第2識別子に関連付けられた前記第2公開アドレスセットに基づき、前記ピアツーピア分散台帳の第2トランザクションセットを決定するステップであって、前記第2トランザクションセットは前記トランザクションのサブセットである、ステップと、
前記第2会計項目及び前記第2トランザクションセットに基づき、第2会計報告を生成するステップと、
前記第1会計報告の第1報告ハッシュ表現を生成するために、前記第1会計報告に対して第1ハッシュ演算を実行するステップと、
前記第2会計報告の第2報告ハッシュ表現を生成するために、前記第2会計報告に対して第2ハッシュ演算を実行するステップと、
前記第1報告ハッシュ表現と前記第2報告ハッシュ表現を結合するステップと、
前記結合された第1報告ハッシュ表現及び第2報告ハッシュ表現の第3ハッシュ表現を生成するために、前記結合された第1報告ハッシュ表現及び第2報告ハッシュ表現に対して第3ハッシュ演算を実行するステップと、を更に含んで良い。
【0018】
方法は、前記第3報告ハッシュ表現を記憶装置に格納するステップ、を更に含んで良い。
【0019】
方法は、
前記第1会計報告及び前記第2会計報告を結合するステップと、
前記結合した第1会計報告及び第2会計報告に対してハッシュ演算を実行して、前記結合した第1会計報告及び第2会計報告のハッシュ表現を生成するステップと、を更に含んで良い。
【0020】
方法は、
第2分類種類に基づき前記公開アドレスを分類するために、前記エンティティの前記公開アドレスを前記第2分類種類の1又は複数の識別子に関連付けるステップと、
前記通信ネットワークから、前記第2分類種類の前記1又は複数の識別子のうちの第3識別子を受信するステップと、
前記第3識別子及び前記第1識別子に関連付けられた第3公開アドレスセットを決定するステップであって、前記第3公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第3識別子及び前記第1識別子に関連付けられた前記第3公開アドレスセットに基づき、前記ピアツーピア分散台帳内の第3トランザクションセットを決定するステップであって、前記第3トランザクションセットは前記トランザクションのサブセットである、ステップと、を更に含んで良い。
【0021】
第1分類種類は、前記エンティティの識別情報により前記公開アドレスの分類を表して良い。
【0022】
前記第1分類種類の前記1又は複数の識別子は、
前記エンティティの名称、
前記名称の16進コード、
ネットワークノード識別子、
前記エンティティのAustralian Business Number、及び/又は、
前記エンティティのAustralian Company Number、
のうちの1又は複数を含んで良い。
【0023】
前記第2分類種類は、前記エンティティの会計種類により前記公開アドレスの分類を表して良い。
【0024】
前記第2分類種類の前記1又は複数の識別子は、
貸し方会計、
借り方会計、
受取会計、
受取会計、
給与会計、及び、
利息会計、
のうちの1又は複数を有して良い。
【0025】
前記エンティティの前記公開アドレスを前記第1分類種類の前記1又は複数の識別子に関連付けるステップは、
ルックアップテーブルのエントリに、前記第1分類種類の前記1又は複数の識別子を前記エンティティの前記公開アドレスに関連付けて格納するステップであって、前記ルックアップテーブルの各エントリは、前記第1分類種類の前記1又は複数の識別子のうちの1つ及び前記公開アドレスのうちの1つを含む、ステップ、を含んで良い。
【0026】
前記エンティティの前記公開アドレスを前記第1分類種類の前記1又は複数の識別子に関連付けるステップは、
スクリプトを用いて、前記第1分類種類の前記1又は複数の識別子を前記ピアツーピア分散台帳内の前記公開アドレスに関連付けるステップ、を含んで良い。
【0027】
第1分類種類は、前記エンティティをリンクする木構造により前記公開アドレスの分類を表して良い。
【0028】
前記第1分類種類の前記1又は複数の識別子は、前記エンティティに関連付けられた決定キーを含んで良く、前記決定キーは前記木構造に基づき生成される。
【0029】
前記エンティティは、前記木構造の中の親エンティティ及び前記親エンティティに関連付けられた子エンティティを有して良く、
前記親エンティティは、前記決定キーのうちの第1決定キーに関連付けられ、前記子エンティティは、前記決定キーのうちの第2決定キーに関連付けられ、
前記第1決定キーは、前記親エンティティに関連付けられた親指示に基づき決定され、前記第2決定キーは、前記第1決定キー及び前記子エンティティに関連付けられた子指示に基づき決定される。
【0030】
前記方法は、
前記通信ネットワークから前記親指示を受信するステップと、
前記親指示に基づき前記第1決定キーを決定するステップと、
前記第1決定キー及び前記子指示に基づき前記第2決定キーを決定するステップと、
前記第2決定キーに関連付けられた第4公開アドレスセットを決定するステップであって、前記第4公開アドレスセットは前記公開アドレスのサブセットである、ステップと、
前記第2決定キーに関連付けられた前記第4公開アドレスセットに基づき、前記ピアツーピア分散台帳内の第4トランザクションセットを決定するステップであって、前記第4トランザクションセットは前記トランザクションのサブセットである、ステップと、
前記第4トランザクションセットに基づき第3会計報告を生成するステップと、を更に含んで良い。
【0031】
前記第4公開アドレスセットを決定するステップは、前記第2決定キーに基づき前記第4公開アドレスセットを決定するステップ、を更に含んで良い。
【0032】
公開アドレスは、非対称暗号対の公開鍵を有し、非対称暗号対の各々は、公開鍵のうちの1つ及び公開鍵のうちの1つに対応する秘密鍵を有して良い。
【0033】
ピアツーピア分散台帳は、ビットコインプロトコルに従い生成されたブロックチェーンであって良い。
【0034】
公開アドレスは、ビットコインプロトコルで使用されるエンティティのビットコインアドレスを有して良い。
【0035】
コンピュータソフトウェアプログラムであって、プロセッサにより実行されると該プロセッサに上述の方法のうちのいずれか1つを実行させる機械実行可能命令を有する、コンピュータソフトウェアプログラムが提供される。
【0036】
エンティティによるトランザクションの効率的決定のためのコンピュータシステムが提供され、前記トランザクションはピアツーピア分散台帳に記録され、前記コンピュータシステムは、
プロセッサであって、
第1分類種類に基づき公開アドレスを分類するために、エンティティの前記公開アドレスを前記第1分類種類の1又は複数の識別子に関連付け、
通信ネットワークから、前記第1分類種類の前記1又は複数の識別子のうちの第1識別子を受信し、
前記第1識別子に関連付けられた第1公開アドレスセットを決定し、前記第1公開アドレスセットは前記公開アドレスのサブセットであり、
前記第1識別子に関連付けられた前記第1公開アドレスセットに基づき、前記ピアツーピア分散台帳内の第1トランザクションセットを決定し、前記第1トランザクションセットは前記トランザクションのサブセットである、よう構成される。
【0037】
本発明は、リンクされた又は関連付けられたエンティティ構造の公開鍵を生成する方法を提供し得る。方法は、
公開鍵を生成するために決定キーに関数を適用するステップであって、前記決定キーは、親決定キーを生成するために親エンティティ識別子に、又は子決定キーを生成するために前記親決定キーと子エンティティ識別子との和に、ハッシュ関数を適用することにより生成される、ステップ、を含んで良い。方法は、上述のいずれかの特徴を更に有して良い。
【0038】
本発明の方法に関する上述のいずれかの特徴は、対応するシステムに適用可能であって良く、逆も同様である。
【図面の簡単な説明】
【0039】
本開示の特徴は、非限定的な例を用いて説明される。類似する番号は類似する要素を示す。
【
図1】本開示による会計サーバを含む暗号通貨システムを示す。
【
図2】本開示によるピアツーピア分散台帳上のトランザクションの効率的決定のためのコンピュータにより実施される方法を示す。
【
図3A】本開示による、エンティティの公開アドレスを分類種類の識別子に関連付ける一例を示す。
【
図3B】本開示による、エンティティの公開アドレスを1より多くの分類種類の識別子に関連付ける一例を示す。
【
図4A】木構造に構成されたエンティティネットワークへの本開示の例示的適用を示す。
【
図4B】木構造に構成されたエンティティネットワークへの本開示の例示的適用を示す。
【
図5】本開示に記載の方法を実施するために使用されるコンピュータシステムの例示的な概略図を示す。
【発明を実施するための形態】
【0040】
図1は、本開示によるサーバ111を含む暗号通貨システム100を示す。本例では、サーバは会計サーバであるが、他の実施形態では、サーバは他の種類の目的又は機能のために配置されて良い。
【0041】
暗号通貨システム100は、暗号通貨を送信し及び受信するために、エンティティ103、105-1~105-7にプラットフォームを提供する。エンティティ103、105-1~105-7は、通信ネットワーク101により互いに接続される。本開示の暗号通貨システム100は、暗号通貨システム100を介して実施されるトランザクション(Txs)を記録するために、ピアツーピア分散台帳(つまりブロックチェーン)109を使用する。公開共有データベース(つまりブロックチェーン)109のコピーは、通貨処理端末107に格納される。1つの通貨処理端末107のみが
図1に示されるが、本開示の範囲から逸脱することなく、1つより多くの通貨処理端末107が暗号通貨システム100内に存在して良い。
【0042】
本開示の暗号通貨システム100は、説明の目的のためにブロックチェーンを使用するビットコインシステム100として記載される。別の例では、暗号通貨システム100は、他の暗号通貨プラットフォーム、例えばイーサリアム(Ethereum)であり得る。さらに、暗号通貨システム100及び本開示の方法はピアツーピア分散台帳(つまりブロックチェーン)109に記録されたトランザクションを会計し及び報告する文脈で記載されるが、暗号通貨システム100及びこれらの方法は異なる方法で使用できる。本発明は会計目的の使用に限定されない。
【0043】
ビットコインシステム100では、1又は複数のトランザクション(Txs)は、エンティティ103とエンティティ105-1~105-7との間で行われて良い。例えば、特定数のビットコイン(BTC)がエンティティ103からエンティティ105-1へ転送される。トランザクションは、ビットコインプロトコルに従い定められ処理される。例示的なビットコイントランザクション(Tx)は以下の表1に示される。
【0044】
[表1]例示的なビットコイントランザクション
【0045】
【表1】
表1の上述のトランザクションは、ブロックチェーンプロトコルに従い構成されるデータ構造であり、複数のフィールド及びスクリプトを含む。これらのフィールド及びスクリプトは、ビットコイントランザクション(Tx)を実施するために、通貨処理端末107により使用される情報及びコマンドを含む。留意すべきことに、トランザクションは、異なる目的のために異なるフィールド及びスクリプトを有して良い。
【0046】
トランザクション(Tx)は、標準的に、例えばトランザクションのハッシュ値、ビットコインプロトコルのバージョン番号、インプット数、アウトプット数、トランザクションのサイズ、等を含むトランザクションの簡単な説明を含む。
【0047】
「インプット(Input)」フィールド(「In」)は、ビットコインが受信される前のトランザクション(「prev_out」)への参照を含む。また、「アウトプット(Output)」フィールド(「Out」)は、エンティティにより使用される公開アドレス又はビットコインアドレスへ送信されるべきビットコイン数(「値(value)」)、及びビットコインの送信されるべき公開アドレス又はビットコインアドレス(「scriptPubKey」に含まれる)を含む。表1に示す例では、前のトランザクション「0437cd7f8525ceed2324359c2d0ba26006d92d856a9c20fa0241106ee5a597c9」から受信したビットコインは、2つの公開アドレスへ送信される。
【0048】
上述のトランザクションは、通貨処理端末107へ転送される。通貨処理端末107は、ビットコインプロトコルでは「マイナー」としても参照されることがある。通貨処理端末107は、過去に起こった特定数のトランザクション(つまり、ブロック)をグループ化し、プルーフオブワーク(proof of work)メカニズムを用いてこれらのトランザクションを検証する。
【0049】
ブロックが検証されると、検証されたブロックは、前に検証された他のブロックと結合される。これらのブロックは、ビットコイン又はイーサリアムプロトコルにおいて「ブロックチェーン」として参照されるピアツーピア分散台帳109を構成する。ブロックチェーン109のコピーは、通貨処理端末107に格納され、公衆によりアクセス可能である。ビットコインシステムのブロックチェーンに記録されるトランザクションは、例えばhttps://blockchain.infoにおいて見付けることができる。
【0050】
ビットコインプロトコルに関連して知られているように、アドレスは暗号公開鍵のハッシュされたバージョンである。公開鍵は、公開/秘密鍵ペアの部分を形成する。したがって、全てのアドレスは、エンティティ(人間に、論理的、仮想的、又はコンピュータに基づくエンティティ)により所有される又はそれに関連付けられる秘密鍵にリンクされる。
【0051】
留意すべきことに、ブロックチェーンの使用されるビットコインプロトコルに従い動作する暗号通貨システム100において、ビットコインを受信するエンティティ105-1~105-7は、エンティティ103からビットコインを受信するために、複数の公開アドレス又はビットコインアドレスを有して良い。他方で、エンティティ103は、エンティティ105-1~105-7からビットコインを受信するために、複数の公開アドレス又はビットコインアドレスを有して良い。したがって、特定の分類に関連付けられたトランザクションを識別することは困難である。例えば、ブロックチェーンにアクセスすることにより、特定のエンティティに関連付けられたトランザクションを識別することは困難である。さらに、特定の会計種類(例えば、借り方会計、貸し方会計、等)に関連付けられたトランザクションを識別することも困難である。この結果、オフブロック目的でブロックチェーンに格納されたデータを使用する際に困難を生じる。例えば、組織がブロックチェーンにより実施される技術により提供される利益を役立てるために、通貨転送目的でブロックチェーンプラットフォームを利用したい場合、彼らは、更なる記憶及び/又は処理のために、関連データを、ブロックチェーンから、サーバ上のデータベースのような内部システムへインポートする必要がある場合がある。上述のように関連するブロックチェーントランザクション(Tx)を識別する際の問題により、このデータ抽出処理は難しい技術的タスクになる。例えば、ブロックチェーン109に記録されているトランザクション上で、例えば会計、通信、処理、又は報告のためにデータを使用することは困難になる。
【0052】
本例では、簡単のために、私達は、会計報告のために本発明の実施形態を使用することを議論する。会計報告は、ブロックチェーンに記録されているトランザクション上で報告するために、本開示において使用される。会計報告は、1又は複数の会計項目を含む。会計項目は、異なる形式を取り得る。基本的に、会計項目は、回答されるべき質問を表す。例えば、会計項目は、「何個のトランザクションがエンティティ105-1と行われたか?」という質問を表して良い。この質問に対する回答は、エンティティ105-1とのトランザクション数を表す値である。
【0053】
会計報告に含まれるべき会計項目は、選択するために、エンティティに関連付けられたユーザのためにユーザインタフェース上に提示されて良い。例えば、会計項目は、ユーザの使用しているコンピュータのコンピュータ画面上に提示される。ユーザは、コンピュータに関連付けられた入力装置(例えば、キーボード、ポインティングデバイス、又はタッチスクリーン)を用いて、会計報告に含まれるべき会計項目のうちの1又は複数を選択する。会計項目がユーザにより選択されると、これらの会計項目は、通信ネットワーク101を介して会計サーバ111へ送信される。続いて、以下に記載される方法が、会計サーバ111上で実行され、会計項目のうちの選択された1又は複数に対応する値を計算する。
【0054】
会計サーバ111は、さらに、会計項目のうちの選択された1又は複数及び対応する値を電子ファイルに組み込むことにより、会計報告を生成する。部分的に、会計報告は、会計項目のうちの選択された1又は複数及び対応する値を含む電子集計表であり得る。生成された会計報告は、記憶装置に格納され、又はユーザの使用しているコンピュータ若しくは事前にユーザの指定した別のコンピュータへ送信されて良い。
【0055】
エンティティ103に関連付けられたユーザにより選択され得る例示的な会計項目は、表2に示される。これらの会計項目は、エンティティ103がトランザクションを行うエンティティ105-1(「Ducks Myth Electronics」)に関連する会計項目1~5を含む。
【0056】
[表2]例示的な会計項目
【0057】
【表2】
図2は、本開示による、エンティティとのトランザクションの効率的決定のためのコンピュータにより実施される方法200を示す。トランザクションは、暗号通貨システム100により行われ、ブロックチェーン109に記録される。
【0058】
本例では、方法200は、エンティティ103に関連付けられるトランザクション上で会計するために会計サーバ111で実施される。
【0059】
具体的に、方法200は、第1分類種類に基づき公開アドレスを分類するために、エンティティ105-1~105-7の公開アドレスを、第1分類種類の1又は複数の識別子に関連付ける210。
【0060】
第1分類種類は、特定の方法で公開アドレスの分類を表す。本例の第1分類種類は、エンティティ103、105-1~105-7の識別情報により公開アドレスの分類を表す。したがって、第1分類種類の1又は複数の識別子は、エンティティ103、105-1~105-7の固有の識別子を示す。本開示のエンティティの識別情報は、エンティティの名称、又はエンティティの名称から変換された名称の16進コードにより表されて良い。
図1に示すように、例えば、エンティティ103の名称は「アリス(Alice)」であり、エンティティ105-1の名称は「Ducks Myth Electronics」である。他の例では、エンティティの識別情報は、ABN(Australian Business Number)、ACN(Australian Company Number)、又は「ABC14114800389」のような内部の英数字クライアント識別子によっても表すことができる。
【0061】
他の例では、公開アドレスは、異なる方法で分類されて良い。例えば、公開アドレスは、エンティティの会計種類により分類できる。したがって、第1分類種類の1又は複数の識別子は、以下の会計:貸し方会計、借り方会計、受取会計、支払会計、給与会計、及び利息会計のうちの任意の1又は複数を含む、公開アドレスに関連付けられた特定の会計種類を示す。本開示の範囲から逸脱することなく、識別子は他の種類の会計を示して良い。
【0062】
一例として、エンティティ103は、エンティティ105-1とトランザクションを行い、エンティティ105-1の名称は「Ducks Myth Electronics」である。方法200は、エンティティ105-1の名称をこのトランザクションに関連付ける。
【0063】
関連付けが確立されると、方法200は、トランザクション上で会計するために関連付けを使用する。例えば、エンティティ103に関連付けられたユーザは、彼又は彼女のコンピュータに関連付けられた入力装置を用いて、第1識別子(例えば「Ducks Myth Electronics」)に関連付けられた会計項目1(例えば「エンティティ105-1とのトランザクションの数」)を選択する。選択された会計項目1は、通信ネットワーク101を介して会計サーバ111へ送信される。
【0064】
会計サーバ111で、方法200は通信ネットワーク101から第1識別子(「Ducks Myth Electronics」)を受信する220。特に、方法200は、通信ネットワーク101から、第1識別子(「Ducks Myth Electronics」)に関連付けられた会計項目1を受信する。
【0065】
方法200は、ステップ210で確立された関連付けから、第1識別子(「Ducks Myth Electronics」)に関連付けられた第1公開アドレスセットを決定する230。ここで、第1公開アドレスセットは公開アドレスのサブセットである。具体的に、方法200は、第1識別子(「Ducks Myth Electronics」)に関連付けられた第1公開アドレスセットを決定するために、第1識別子(「Ducks Myth Electronics」)により関連付けを検索する。結果として、「Ducks Myth Electronics」により使用される第1公開アドレスセットが決定される。
【0066】
方法200は、第1識別子(「Ducks Myth Electronics」)に関連付けられた第1公開アドレスセットに基づき、ピアツーピア分散台帳109(特に、本例ではブロックチェーン109)内の第1トランザクションセットを更に決定する240。ここで、第1トランザクションセットは、ブロックチェーン109に記録されたトランザクションのサブセットである。例えば、方法200は、通貨処理端末107からブロックチェーン109をダウンロードし、「Ducks Myth Electronics」により使用される第1公開アドレスセットのうちの任意の1つの公開アドレスを有するトランザクションについてブロックチェーン109を検索する。結果として、「Ducks Myth Electronics」により行われる全てのトランザクションが決定される。
【0067】
会計項目1(「エンティティ105-1とのトランザクションの数」)及び上述の決定された第1トランザクションセットに基づき、方法200は第1会計報告を生成する。例えば、方法200は、第1トランザクションセットの中のトランザクションの数を計数することにより、エンティティ105-1(「Ducks Myth Electronics」)とのトランザクションの数を示す対応する値を決定する。さらに、方法200は、会計項目1(「エンティティ105-1とのトランザクションの数」)及びそれらの対応する値を含む電子集計表を作成することにより、第1会計報告を生成する。
【0068】
ユーザは、複数の会計項目を選択して良い。この場合、方法200は、ステップ210~240を繰り返し、これらの会計項目及び対応する値を含む会計報告を生成する。例示的な会計報告は以下の表3に示される。
【0069】
[表3]例示的な会計報告
【0070】
【表3】
以上から分かるように、異なる会計項目に基づき、方法200は、貸借対照表、損益計算書、棚卸し報告書、受け渡し報告書、カスタムレポート、課金及び支払報告書を含む会計目的の異なる会計報告、並びに、本開示の範囲から逸脱することなく会計目的以外の目的の他の報告書を生成できる。例示的な貸借対照表、及び例示的な損益計算書は、それぞれ表4及び表5に示される。
【0071】
[表4]例示的な貸借対照表
【0072】
【0073】
【表5】
図3Aは、本開示による、エンティティの公開アドレスを分類種類の識別子に関連付ける一例を示す。
【0074】
図3Aに示す例では、ルックアップテーブル310は、エンティティの公開アドレスを分類種類の識別子に関連付けるために使用される。ルックアップテーブル310の各エントリは、2つのフィールド、つまり「公開アドレス」フィールド311及び「クライアントID」フィールド313を含む。エントリの「公開アドレス」フィールド311の値は、トランザクションで使用される特定の公開アドレスを示す。エントリの「クライアントID」フィールド313の値は、公開アドレスに関連付けられたエンティティの固有識別情報を示す。留意すべきことに、別の例では、「クライアントID」フィールド313は、公開アドレスに関連付けられた会計種類により公開アドレスを分類するために、異なる分類種類、例えば会計種類により置き換えられて良い。
【0075】
エンティティ103に関連するトランザクションは、ルックアップテーブル310に格納されていない公開アドレスを用いるエンティティにより生じ、方法200はエントリをルックアップテーブル310に追加する。例えば、支払が、エンティティ103から、ルックアップテーブル310に格納されていないエンティティ105-1(「Ducks Myth Electronics」)により使用される公開アドレスへ行われ、方法200は、ルックアップテーブル310の第1エントリ及び第3エントリに示されるように、ルックアップテーブル310にエントリを追加し、エンティティ105-1(「Ducks Myth Electronics」)により使用される公開アドレスに関連付けて、ルックアップテーブル310のエントリにエンティティ105-1(「Ducks Myth Electronics」)の識別子を格納する。結果として、ルックアップテーブル310の各エントリは、特定の分類種類の識別子のうちの1つと公開アドレスのうちの1つとを、それらをエントリに含めることにより、関連付ける。
【0076】
エンティティ105-1(「Ducks Myth Electronics」)と関連付けられた会計項目がユーザにより選択され、該会計項目が通信ネットワーク101を介して会計サーバ111へ送信される場合、方法200は、「Ducks Myth Electronics」(つまりエンティティ105-1)により使用される第1公開アドレスセットを決定するために、「クライアントID」フィールド313内に「Ducks Myth Electronics」を有するエントリについてルックアップテーブル310を検索する。本例では、本例で決定された第1公開アドレスセットは、ルックアップテーブル310の第1エントリ及び第3エントリに含まれる公開アドレスを含む。
【0077】
さらに、方法200は、ステップ240を参照して上述したように、エンティティ105-1(「Ducks Myth Electronics」)に関連付けられた第1公開アドレスセットに基づき、ピアツーピア分散台帳109(特に、ブロックチェーン109)内の第1トランザクションセットを決定する。したがって、「Ducks Myth Electronics」により行われる全てのトランザクションが決定される。方法200は、さらに、上述のように、第1トランザクションセットに基づき、第1会計報告を生成して良い。第1会計報告は、会計サーバ111から、ユーザの使用しているコンピュータ又は事前にユーザの指定したコンピュータへ送信され、ユーザ又は第三者の閲覧のためにコンピュータの画面に表示される。
【0078】
別の例では、ユーザは、第1分類種類の第2識別子(「iVision Pty Ltd」、つまりエンティティ105-3)に関連付けられた第2会計項目(例えば「エンティティ105-3とのトランザクションの数」)を更に選択する。ユーザは、第2会計項目を、通信ネットワーク101を介して会計サーバ111へ送信する。
【0079】
方法200は、通信ネットワーク101から、第2識別子(「iVision Pty Ltd」)に関連付けられた第2会計項目を受信する。方法200は、第2識別子(「iVision Pty Ltd」)に関連付けられた第2公開アドレスセットを更に決定する。ここで、第2公開アドレスセットは、公開アドレスのサブセットである。特に、方法200は、「iVision Pty Ltd」(つまりエンティティ105-3)により使用される第2公開アドレスセットを決定するために、「クライアントID」フィールド313内に「iVision Pty Ltd」を有するエントリについて、ルックアップテーブル310を検索する。本例で決定された第2公開アドレスセットは、ルックアップテーブル310の第2エントリに含まれる公開アドレスを含む。
【0080】
方法200は、次に、第2識別子(「iVision Pty Ltd」)に関連付けられた第2公開アドレスセットに基づき、ブロックチェーン109内の第2トランザクションセットを決定する。ここで、第2トランザクションセットは、ブロックチェーン109内のトランザクションのサブセットである。
【0081】
方法200は、さらに、上述のように、第2会計項目及び第2トランザクションセットに基づき、第2会計報告を生成する。
【0082】
方法200は、さらに、上記の生成された第1会計報告に対して第1ハッシュ演算を実行して、第1会計報告のための第1報告ハッシュ表現を生成し、並びに、第2会計報告に対して第2ハッシュ演算を実行して、第2会計報告の第2報告ハッシュ表現を生成する。方法200は、第1報告ハッシュ表現及び第2報告ハッシュ表現を結合する。方法は、さらに、結合した第1報告ハッシュ表現及び第2報告ハッシュ表現に対して第3ハッシュ演算を実行して、結合した第1報告ハッシュ表現及び第2報告ハッシュ表現の第3ハッシュ表現を生成する。このように、第1報告ハッシュ表現及び第2報告ハッシュ表現は、単一のハッシュ表現に統合される。
【0083】
別の例では、方法200は、第1会計報告及び第2会計報告を結合し、結合した第1会計報告及び第2会計報告に対してハッシュ演算を実行して、結合した第1会計報告及び第2会計報告のハッシュ表現を生成する。
【0084】
ルックアップテーブル310は、2つの分類種類によりエンティティの公開アドレスを分類するために、追加フィールド(以後、第2分類種類として参照される)を含んで良い。このように、エンティティに関連付けられた公開アドレスは、エンティティの識別情報及び公開アドレスに関連付けられた会計種類の両方により分類される。さらに、本開示の範囲から逸脱することなく、公開アドレスは、更に多くの分類種類により分類されて良い。
【0085】
図3Bは、本開示による、エンティティの公開アドレスを1より多くの分類種類の識別子に関連付ける一例を示す。
【0086】
図3Bに示す例では、ルックアップテーブル320の各エントリは、公開アドレスに関連付けられた会計種類に基づき公開アドレスを更に分類するために、「公開アドレス」フィールド311及び「クライアントID」フィールド313(つまり上述の第1分類種類)に加えて、更なる「会計種類」フィールド315(つまり第2分類種類)を含む。会計種類の識別子は、貸し方会計、借り方会計、受取会計、支払会計、給与会計、及び利息会計のうちの1又は複数を含む特定会計種類を表す。本開示の範囲から逸脱することなく、識別子は他の種類の会計を示して良い。
【0087】
この場合、支払が、エンティティ103から、エンティティ105-1(「Ducks Myth Electronics」)により使用される公開アドレスへと行われる場合、
図3Aを参照して上述したように、エンティティ105-1(「Ducks Myth Electronics」)により使用される公開アドレスに関連付けられたルックアップテーブル320の新しいエントリに、エンティティ105-1(「Ducks Myth Electronics」)の識別情報である識別子を格納することに加えて、方法200は、さらに、会計種類により公開アドレスを分類するために、公開アドレスを、公開アドレスに関連付けられた特定会計種類に関連付ける。ルックアップテーブル320の第1エントリに示すように、第1エントリの中の公開アドレスは「借り方会計」に更に関連付けられ、第3エントリの中の公開アドレスは「貸し方会計」に更に関連付けられる。
【0088】
ユーザは、第1分類種類(つまり、エンティティの識別情報)の第1識別子(「Ducks Myth Electronics」、つまりエンティティ105-1)及び第2分類種類(つまり、公開アドレスに関連付けられた会計種類)の第3識別子(「貸し方会計」)に関連付けられた第3会計項目(例えば、「エンティティ105-1との貸し方会計でのトランザクションの数」)を選択する。ユーザは、第3会計項目を、通信ネットワーク101を介して会計サーバ111へ送信する。
【0089】
方法200は、通信ネットワーク101から、第1分類種類の第1識別子(「Ducks Myth Electronics」)及び第2分類種類の第3識別子(「貸し方会計」)に関連付けられた第3会計項目を受信する。方法200は、第3識別子(「貸し方会計」)及び第1識別子(「Ducks Myth Electronics」)に関連付けられた第3公開アドレスセットを更に決定する。ここで、第3公開アドレスセットは、公開アドレスのサブセットである。
図3Bに示す例では、方法200は、貸し方会計において「Ducks Myth Electronics」(つまり、エンティティ105-1)により使用される第3公開アドレスセットを決定するために、「クライアントID」フィールド313の中に「Ducks Myth Electronics」、及び「会計種類」フィールド315の中に「貸し方会計」の両方を有するエントリについてルックアップテーブル320を検索する。
図3Bに示すように、本例で決定された第3公開アドレスセットは、ルックアップテーブル320の第3エントリに含まれる公開アドレスだけを含む。
【0090】
方法200は、更に、第3公開アドレスセットに基づき、ピアツーピア分散台帳109(特に、ブロックチェーン109)の中の第3トランザクションセットを決定する。ここで、第3トランザクションセットは、トランザクションのサブセットである。方法200は、さらに、第3トランザクションセットに基づき更なる会計報告を生成し、上述のように更なる会計報告を記憶装置に格納して良い。
【0091】
留意すべきことに、ルックアップテーブル310又は320に示されるエントリは、エンティティ103に関連して行われるトランザクションの部分を表して良く、ルックアップテーブル310又は320は他の例ではより多くのエントリを含んで良い。
【0092】
本開示による、エンティティの公開アドレスを分類種類の識別子に関連付ける一例を以下に記載する。
【0093】
本例では、支払が、エンティティ103から、エンティティ105-1(「Ducks Myth Electronics」)により使用される公開アドレスに行われる場合、方法200は、エンティティ105-1により使用される公開アドレスを、トランザクション自体の中でエンティティ105-1の識別情報である識別子(「Ducks Myth Electronics」)に関連付ける。例えば、方法200は、トランザクション内のスクリプトを使用して、エンティティ105-1により使用される公開アドレスを、ブロックチェーン109の中のエンティティ105-1の識別情報である識別子(「Ducks Myth Electronics」)に関連付ける。
【0094】
この場合、エンティティ105-1(「Ducks Myth Electronics」)に関連付けられた会計項目がユーザにより選択され、該会計項目が通信ネットワーク101を介して会計サーバ111へ送信される場合、方法200は、「Ducks Myth Electronics」により行われるブロックチェーン109内のトランザクションを決定するために、「Ducks Myth Electronics」により使用される公開アドレスに一致するトランザクションについて、ブロックチェーン109を検索する。方法200は、更に、上述の決定されたトランザクションに基づき会計報告を生成して良い。方法200は、更に、記憶装置に会計報告を格納して良い。
【0095】
図4A及び4Bは、木構造に構成されたエンティティネットワークへの本開示の例示的適用を示す。
【0096】
図4Aに示される例示的な適用では、エンティティネットワーク400は、木構造に構成される複数のエンティティ401~413を含む。エンティティネットワーク400は、伝統的に木構造に構造化された小売店ネットワークを表すために
図4Aに示されるが、エンティティネットワーク400は、本開示の範囲から逸脱することなく、他のエンティティネットワークを表して良い。
【0097】
図4Aに示す木構造に構成されたチェックアウト端末407~413に関連付けられた公開アドレスを分類するために、
図4Bのルックアップテーブル420内の「決定キー」フィールド413として示される、「決定キー」と称される分類種類が本例において導入される。したがって、この分類種類の識別子は、木構造によりリンクされたエンティティ401~413の各々に関連付けられた特定決定キーを表す。
【0098】
図4Aに示すように、小売店ネットワーク400の中のストア及びチェックアウト端末401~413は、木構造に構成される。具体的に、エンティティ又はストア401は、木の最上部にあり、2つの子エンティティ又はストア403及び405を有する。子エンティティ又はストア403は、ストア403にインストールされた又はストア403に関連付けられたチェックアウト端末である子エンティティ407及び409の親エンティティでもある。同様に、子エンティティ又はストア405は、ストア405にインストールされた又はストア405に関連付けられたチェックアウト端末である子エンティティ411及び413の親エンティティでもある。ストア401~405の各々は、関連する小売商指示(merchant indication:MID)(例えば、ストアの名称)を有し、各チェックアウト端末407~413は、関連する端末指示(terminal indication:TID)(例えば、チェックアウト端末に割り当てられた製造者識別番号)を有する。トランザクションは、チェックアウト端末407~413において、チェックアウト端末407~413に関連付けられた公開アドレスを用いて行われる。
【0099】
エンティティ401~413に関連付けられた決定キーは、決定キーがエンティティ401~413に決定論的にマッピングされるように、決定される。具体的に、ルートエンティティ又はストア401に関連付けられた決定キーは、ルートエンティティ又はストア401に関連付けられたMIDに基づく。例えば、ルートエンティティ又はストア401に関連付けられた決定キーは、ルートエンティティ401に関連付けられたMIDに基づき暗号関数セットを実行することにより、決定され得る。ルートエンティティ401に関連付けられたMID(「MID401」)に基づく暗号ハッシュアルゴリズムSHA-256を用いることにより、ルートエンティティ401に関連付けられた生成器値(GV401)を生成する一例が以下に示される。
【0100】
GV401=SHA-256(MID401) (式-1)
子エンティティ又はストア403及び405について、子エンティティ又はストア403及び405の各々に関連付けられた決定キー(例えば、ストア403では「GV403」、又はストア405では「GV405」)は、親エンティティ401(本例では、ルートエンティティ401)に関連付けられた決定キー(つまり「GV401」)及びそれ自身のMID(例えば、ストア403では「MID403」、又はストア405では「MID405」)に基づき決定される。例えば。
【0101】
GV403=SHA-256(GV401+MID403) (式2)
GV405=SHA-256(GV401+MID405) (式3)
チェックアウト端末407及び409について、チェックアウト端末407及び409の各々に関連付けられた決定キー(例えば、チェックアウト端末407では「GV407」又はチェックアウト端末409では「GV409」)は、その親エンティティ403に関連付けられた決定キー(つまり「GV403」)及びそれ自身のTID(例えば、チェックアウト端末407では「TID407」又はチェックアウト端末409では「TID409」)に基づき決定される。同様に、チェックアウト端末411及び413について、チェックアウト端末411及び413の各々に関連付けられた決定キー(例えば、チェックアウト端末411では「GV411」又はチェックアウト端末413では「GV413」)は、その親エンティティ405に関連付けられた決定キー(つまり「GV405」)及びそれ自身のTID(例えば、チェックアウト端末411では「TID411」又はチェックアウト端末413では「TID413」)に基づき決定される。例えば、
GV407=SHA-256(GV403+TID407) (式4)
GV409=SHA-256(GV403+TID409) (式5)
GV411=SHA-256(GV405+TID411) (式6)
GV413=SHA-256(GV405+TID413) (式7)
さらに、これらの決定キーは、ストア401~405及びチェックアウト端末407~413により使用されるそれぞれの公開アドレスを導出するために使用される。例えば。
【0102】
公開アドレス=F(決定キー) (式8)
ここで、F()は、決定キーに基づき公開アドレスを生成する関数である。
【0103】
チェックアウト端末(例えば、チェックアウト端末407)に関連するトランザクションが生じ、方法200は、ルックアップテーブル420にエントリを追加して良い。例えば、支払が、顧客から、チェックアウト407に関連付けられた決定キーから導出されるチェックアウト端末407により使用される公開アドレスへ、行われる。チェックアウト端末407により使用される公開アドレスがルックアップテーブル420に格納されていない場合、ルックアップテーブル420の第1エントリ及び第3エントリに示されるように、方法200は、新しいエントリをルックアップテーブル420に追加し、チェックアウト端末407に関連付けられた決定キー(つまり「GV407」)を、ルックアップテーブル420の新しいエントリに、チェックアウト端末407により使用される公開アドレスに関連付けて、格納する。他の例では、チェックアウト端末407に関連付けられた決定キーは、トランザクションが生じる前に、ルックアップテーブル420のエントリに既に格納されている。この場合、方法200は、公開アドレスを決定キーに関連付けるために、チェックアウト端末407により使用される公開アドレスを、決定キーの格納されたエントリに格納する。結果として、ルックアップテーブル420の各エントリは、チェックアウト端末407~413のうちの1つに関連付けられた決定キー及びチェックアウト端末407~413のうちの1つにより使用される公開アドレスのうちの1つを含む。
【0104】
営業日の終わりに、ストア403のストアマネジャは、ストア403の会計報告を得たいと望む場合がある。ストアマネジャは、例えばストア403に関連付けられたMIDを入力することにより、ストア403に関連付けられた会計項目(例えば、「ストア403とのトランザクションの数」)を選択する。本例では、ストア403に関連付けられた会計項目及びMIDは、通信ネットワーク101を介して会計サーバ111へ送信される。
【0105】
方法200は、通信ネットワーク101から、ストア403に関連付けられたMID及び会計項目を受信する。方法200は、ストア403がルートストアである場合、ストア403に関連付けられた第1決定キー及びストア403に関連付けられたMIDを決定する。ストア403がルートストアではない場合、第1決定キーは、親ストア401に関連付けられた決定キー及びストア403に関連付けられたMIDに基づき決定されて良い。方法200は、更に、第1決定キー及びチェックアウト端末407及び409のそれぞれのTIDに基づき、ストア403の子エンティティ又はチェックアウト端末407及び409に関連付けられた決定キー(例えば「GV407」、「GV409」)を決定する。
【0106】
「決定キー」フィールド413の中にチェックアウト端末407及び409に関連付けられた決定キー「GV407」及び「GV409」のうちのいずれか1つを有するエントリについて、ルックアップテーブル420を検索することにより、方法200は、決定キー「GV407」及び「GV409」に関連付けられた第4公開アドレスセットを決定する。ここで、第4公開アドレスセットは、公開アドレスのサブセットである。
図4Bに示すように、上述の決定された第4公開アドレスセットは、ルックアップテーブル420の最初の3個のエントリの「公開アドレス」フィールド411に含まれる公開アドレスを含む。
【0107】
方法200は、更に、上述の第4公開アドレスセットに基づき、ブロックチェーン109内の第4トランザクションセットを決定する。ここで、第4トランザクションセットは、トランザクションのサブセットである。方法200は、更に、上述のように、第4トランザクションセットに基づき、第3会計報告を生成する。方法200は、更に、記憶装置に会計報告を格納して良い。
【0108】
ストア401~405及びチェックアウト端末407~413により使用される公開アドレスは、それら個々の決定キーから導出されるので、方法200は、チェックアウト端末407~413に関連付けられた決定キーを(式8)に適用することにより、ルックアップテーブル420を検索することなく、第4公開アドレスセットを決定できる。
【0109】
留意すべきことに、本開示では、公開アドレスは、非対称暗号対の公開鍵を有し、非対称暗号対の各々は、公開鍵のうちの1つ及び公開鍵のうちの1つに対応する秘密鍵を有する。非対称暗号対の各々は、楕円曲線暗号(Elliptic Curve Cryptography:ECC)アルゴリズムに基づき生成されて良い。
【0110】
さらに、ビットコインシステムでは、公開アドレスは、ビットコインプロトコルで使用されるエンティティのビットコインアドレスである。
【0111】
図5は、記載の方法を実施するために使用されるコンピュータシステム500の例示的な概略図を示す。コンピュータシステム500は、会計サーバ111の一例であり得る。
【0112】
コンピュータシステム500は、プロセッサ510、メモリ装置520、バス530、及び通信インタフェース540を含む。プロセッサ510、メモリ装置520、及び通信インタフェース540は、互いに通信するためにバス530により接続される。コンピュータシステム500の通信インタフェース540は、
図1に示すように、コンピュータシステム500を通信ネットワーク101に接続するために使用される。通信インタフェース540は、インターネットインタフェース、WLANインタフェース、セルラ電信電話ネットワークインタフェース、公衆交換電話ネットワーク(Public Switch Telephone Network:PSTN)インタフェース、及び光通信ネットワークインタフェース、又は任意の他の適切な通信インタフェースであって良い。
【0113】
プロセッサ510は、メモリ520に格納された機械実行可能命令を実行して、
図1~
図4Bを参照して上述した例示的な方法を実施する。機械実行可能命令は、コンピュータソフトウェアプログラムに含まれる。コンピュータソフトウェアプログラムは、本例ではメモリ装置520内に存在する。他の例では、コンピュータソフトウェアプログラムは、コンピュータシステム500の部分ではないコンピュータ可読媒体に格納され、コンピュータ可読媒体からメモリ装置520に読み込まれる。具体的に、プロセッサ510は、
第1分類種類に基づき公開アドレスを分類するために、エンティティの公開アドレスを第1分類種類の1又は複数の識別子に関連付け、
通信ネットワークから、第1分類種類の1又は複数の識別子のうちの第1識別子を受信し、
第1識別子に関連付けられた第1公開アドレスセットを決定し、第1公開アドレスセットは公開アドレスのサブセットであり、
第1識別子に関連付けられた第1公開アドレスセットに基づき、ピアツーピア分散台帳内の第1トランザクションセットを識別する、よう構成される。
【0114】
理解されるべきことに、本開示の例示的な方法は、種々の技術を用いて実施され得る。例えば、本願明細書に記載の方法は、適切なコンピュータ可読媒体上に存在する一連の機械実行可能命令により実装されて良い。適切なコンピュータ可読媒体は、揮発性(例えば、RAM)及び/又は不揮発性(例えば、ROM、ディスク)メモリ、搬送波、及び伝送媒体を含み得る。例示的な搬送波は、ローカルネットワーク又はインターネットのような公衆にアクセス可能なネットワークに沿ってデジタルデータストリームを伝達する電気、電磁気、又は光信号の形式を取って良い。
【0115】
理解されるべきことに、特に断りのない限り、以下の議論から明らかなように、以下の説明を通じて、「決定する」、「取得する」、「受信する」又は「送信する」又は「生成する」等の語を用いた議論は、コンピュータシステム又は同様の電子コンピューティング装置の動作及び処理を表す。コンピュータシステム又は同様の電子コンピューティング装置は、コンピュータシステムのレジスタ及びメモリ内にある物理(電子)量として表されたデータを操作し、コンピュータシステムのメモリ若しくはレジスタ又は情報記憶、送信又は表示装置等の中の物理量として同様に表される他のデータに変換する。
【符号の説明】
【0116】
101 通信ネットワーク
103 エンティティ
105 エンティティ
107 通貨処理端末
109 公開共有データベース
111 会計サーバ