JP7177575B2 - ランダム・シーケンスを生成および検証するための分散型台帳 - Google Patents

ランダム・シーケンスを生成および検証するための分散型台帳 Download PDF

Info

Publication number
JP7177575B2
JP7177575B2 JP2020543964A JP2020543964A JP7177575B2 JP 7177575 B2 JP7177575 B2 JP 7177575B2 JP 2020543964 A JP2020543964 A JP 2020543964A JP 2020543964 A JP2020543964 A JP 2020543964A JP 7177575 B2 JP7177575 B2 JP 7177575B2
Authority
JP
Japan
Prior art keywords
distributed ledger
node
nodes
permission bits
random sequence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020543964A
Other languages
English (en)
Other versions
JP2021516004A (ja
Inventor
ルー、ジン
タン、シャオ、ヤン
リウ、タオ
チャン、ジュン
ビン ファン、シー
カミンスキー、デイヴィット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2021516004A publication Critical patent/JP2021516004A/ja
Application granted granted Critical
Publication of JP7177575B2 publication Critical patent/JP7177575B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/34Bits, or blocks of bits, of the telegraphic message being interchanged in time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Description

本出願は、一般に、ブロックチェーン・システムなどの分散型台帳に関連し、より詳細には、中央集権的なホストではなく分散型台帳ノードの非中央集権的な分散型ネットワークを介して抽選番号を生成および検証する抽選分散型台帳ネットワークに関連する。
分散型台帳は、典型的には他のブロックに関する暗号学的ハッシュの格納などの暗号技法を適用する、継続的に増大するレコードのリストである。ブロックチェーンは、分散型台帳の1つの一般的な実例である。金融取引に使用されることが多いが、ブロックチェーンなどの分散型台帳は、商品およびサービス(すなわち、製品、パッケージ、ステータスなど)に関連する情報などの他の様々なタイプの情報を格納することができる。非中央集権的な方式は、非中央集権的なネットワークに権限および信用を提供し、そのノードがそれらのトランザクションを継続的かつ順次にパブリック「ブロック」上に記録できるようにし、分散型台帳と呼ばれる一意の「チェーン」を作り出す。暗号法は、トランザクション・ソースの認証を保護するためにハッシュ・コードを用いて使用され、中央の仲介を排除する。分散型台帳に格納されたレコードは、その変更不可能という特性により、改ざんおよび改訂から保護され得る。各ブロックは、タイム・スタンプおよび前のブロックへのリンクを含む。分散型台帳は、情報を保持、追跡、転送、および検証するために使用され得る。台帳は分散システムであるため、トランザクションを分散型台帳に追加する前に、ピア(対等者,peers)は合意状態に至る必要がある。
抽選システムは、一般に、(いくつかの管轄区域における)ナンバー・プレートの特権などの特権をユーザに付与するために使用される。別の例として、抽選システムは、当選者を決定するためなどに使用される。現在、抽選システムのホスト組織は、抽選結果を生成して発表し、結果の妥当性確認(validation)を保証するために第三者の監督を頼りにしている。従来の抽選プロセスは、組織によって集中的に運営されており、第三者の監督に対してのみ責任追跡(accountability)の対象となる。このため、抽選結果の公平性は、組織の信頼性および第三者の監督に依存する。しかしながら、監視が行き届かない場合、不正および他の悪質な行為につながる可能性がある。したがって、抽選の責任追跡を1つまたは2つのエンティティに任せることなく、より安全で規制された抽選システムが必要である。
したがって、当技術分野において前述の問題に対処する必要がある。
第1の態様によれば、本発明は、分散型台帳のための主催側ノード(organizing node)・システムを提供し、システムは、初期シードを生成し、分散型台帳の複数のブロックのそれぞれに初期シードの1つまたは複数の許可ビット(authorized bit)を割り当て、初期シード、および分散型台帳の複数のブロックの中の各ブロックに初期シードのどの許可ビットが割り当てられているかの識別を格納するように構成された、プロセッサと、複数のノードのそれぞれのノードによって更新されたそれぞれのブロックの許可ビットに基づいて分散型台帳にアクセスするように構成された前記複数のノードのそれぞれによって部分的に生成された最終シード値を受け取るように構成された、ネットワーク・インターフェースとを含み、プロセッサは、最終シード値に基づいてランダム・シーケンスを生成し、ランダム・シーケンスを分散型台帳のブロックに格納するようにさらに構成される。
さらなる態様によれば、本発明は、分散型台帳のためのネットワーク・ノード・システムを提供し、システムは、複数のノードによってアクセスされる分散型台帳に格納されたブロックに一意に割り当てられている初期シードの許可ビットを識別し、初期シードの識別された許可ビットを変更し、変更された許可ビットをノードの暗号化キーを使用して暗号化し、暗号化された許可ビットを、少なくとも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のプロセスと第2のプロセスに同じ分散型台帳が使用されてもよく、または異なる台帳が使用されてもよい。本明細書のいくつかの例において、初期シードを生成するためにシード・ブロックチェーンが使用され、抽選結果を検証するために検証ブロックチェーンが使用されるが、実施形態はこれに限定されない。分散型台帳のコピーは、各ノードによって抽選ネットワークに格納され得る。各ネットワーク・ノードは、ネットワークに登録し、リモート・プロシージャ・コール(例えば、RPC、gRPC)などのピア・ツー・ピア・プロトコルに基づいて他のノードと対話してよい。ノード間の通信プロトコルは、システムによって実装されてよい。
以下に示すいくつかの例において、分散型台帳はブロックチェーンである。しかしながら、ブロックチェーンが使用される以下の例は、ブロックチェーンを、暗号特性を有する分散型台帳などの任意の分散型台帳に置き換えることができることを理解されたい。すなわち、分散型台帳はブロックチェーンではなく、既知の、または既知になる別のタイプの分散型台帳とすることができる。これらの例において、異なるブロックチェーン・システムは、Hyperledger、Ethereum、Rippleなどの異なる通信プロトコルに基づいてよい。基礎となる分散型台帳システムは、各ノードが、分散型台帳に含まれるブロックまたは他のストレージ手段のすべての情報の完全なコピーを有することを保証することができる。
図1は、例示的な実施形態による抽選分散型台帳ネットワーク・システム100を示す。この例では、抽選分散型台帳ネットワーク・システム100内のノードは、スター状ネットワーク・トポロジを介して接続されている。図1を参照すると、システム100は、主催側ノード120、および、要求側ノードとも呼ばれる複数のネットワーク・ノード110を含む。一例として、主催側ノード120は、抽選の開催者とすることができ、ネットワーク・ノード110は、抽選に当選することを望む参加者とすることができる。この例では、数百人の抽選参加者(例えば、200人の参加者など)がいる場合がある。主催側ノード120およびネットワーク・ノード110のそれぞれには、抽選番号のランダム・シーケンスを生成するためのソフトウェアがインストールされている。ソフトウェアの主な入力はシード値である。したがって、抽選番号生成プロセスの最初のステップは、シード値を生成することである。
様々な態様によれば、主催側ノード120は、初期シード値を生成する。初期シードは、数十、数百、数千などのビットの文字列である。初期シード値内で、各ネットワーク・ノード110には、許可ビットと呼ばれるビットのフラグメントまたは小さなサブセクションが割り当てられる。各ネットワーク・ノード110の許可ビットは一意であるか、または他のネットワーク・ノード110の許可ビットと相互に排他的であってよい。初期シード値は、ネットワーク・ノード110に送信されてもよく、またはネットワーク・ノード110によってアクセスされる分散型台帳(例えば、分散型台帳130)を介して主催側ノード120によって格納されてよい。主催側ノード120はまた、初期シードからの部分ビット値(許可ビット)を各ブロックに事前に割り当てる。初期シードの許可ビット(位置)は、各ブロックに対して一意であり、初期シード値のどの許可ビットが、それぞれのブロックに関連付けられたネットワーク・ノード110によって更新されるべきかを識別する。各ネットワーク・ノード110は、それらそれぞれのブロックに関連付けられた許可ビットを更新し、許可ビットの更新されたバージョンをブロックとして分散型台帳130に格納する。更新されたビット値を安全に保つために、各ネットワーク・ノード110は、それぞれのネットワーク・ノード110の秘密鍵を用いてビット値を暗号化してよい。
すべてのノードがそれぞれの許可ビットを更新し、それらを分散型台帳130のブロックに格納したとき、タイミング・イベントが期限切れになったとき、または他の何らかの条件のとき、ネットワーク・ノード110は、公開鍵を互いにかつ主催側ノード120と共有し、それにより、すべてのノードは、暗号化された更新された許可ビットを復号し、分散型台帳130上に格納されたすべてのブロックから最終シード値を組み立てることができる。主催側ノード120とネットワーク・ノード110の両方を含む分散プロセスを介して最終シードを生成することによって、最終シード値は、ネットワーク100内のすべてのノードにとって責任追跡が可能になる。次に、主催側ノードとも呼ばれる主催側ノード120は、擬似乱数生成器ソフトウェア、およびネットワーク・ノード110によって生成されたシードを用いて、抽選番号のリスト(パブリック・リストまたはランダム・シーケンスとも呼ばれる)を生成してよい。加えて、各ネットワーク・ノード110は、擬似乱数発生器ソフトウェアを用いて抽選番号のリスト(プライベート・リストとも呼ばれる)を生成してよい。ネットワーク・ノード110は、主催側ノード120によって生成されるパブリック・リストと、ノード自体によって生成されるプライベート・リストとを比較してよい。それらが同じである場合、リストが確証される。次に、抽選番号は、主催側ノード120またはネットワーク・ノード110のいずれかによって出力されてよい。
抽選ネットワーク・システム100の目的は、不正を防止することである。従来の中央集権的な抽選では、抽選の主催者は、抽選番号自体を生成し、場合によっては第三者の監督者以外に対して責任追跡ができない。したがって、不正の可能性がある。本明細書に記載の様々な実施形態による抽選ネットワーク・システム100では、各参加者(主催側ノード120とネットワーク・ノード110の両方)が、抽選番号を生成するエンドツーエンド・プロセスに関与するので、参加者は、結果を制御および操作することができない。例えば、各参加者は、ブロックチェーンなどの分散型台帳、または暗号特性を有する他の分散型台帳を格納し、それにアクセスすることができる。台帳を通じて、安全なシード値が生成され得、シード値に基づいて安全な抽選番号が生成され得る。
分散型台帳ネットワークは、相互に通信する複数のノードで構成される分散システムである。ブロックチェーン・ノードは、チェーンコード(例えば、スマート・コントラクトなど)と呼ばれるプログラムを実行し、状態および台帳のデータを保持し、トランザクションを実行する。トランザクションは、チェーンコード上で呼び出される動作である。トランザクションは通常、「裏書き」(endorse)されなければならず、裏書きされたトランザクションのみがコミットされ、ブロックチェーンの状態に影響を与えることができる。管理機能およびパラメータのための1つまたは複数の特殊なチェーンコードが存在することがあり、それらは、システム・チェーンコードと総称される。
ノードは、ブロックチェーン・システムの通信エンティティである。「ノード」は、異なるタイプの複数のノードが同じ物理サーバ上で実行できるという意味での論理機能である。ノードは、信用できるドメイン内でグループ化され、様々な方法でそれらのノードを制御する論理エンティティに関連付けられる。ノードは、トランザクション呼出し(transaction-invocation)を裏書者(例えば、ピア)にサブミットし、トランザクション提案(transaction-proposal)を順序付けサービス(例えば、順序付けノード(ordering node))にブロードキャストするクライアントまたはサブミット・クライアント・ノードなどの様々なタイプを含んでよい。別のタイプのノードは、クライアントがサブミットしたトランザクションを受け取り、トランザクションをコミットし、台帳の状態およびコピーを維持することができるピア・ノードである。ピアは、裏書者の役割を有することもできるが、これは必須要件ではない。順序付けサービス・ノードまたは順序付け者は、すべてのノードのための通信サービスを実行するノードであり、トランザクションをコミットしワールド・ステートを変更するときの、システム内の各ピア・ノードへのアトミック(Atomic)・ブロードキャストまたは全順序(total order)ブロードキャストなどの、配信保証を実施する。
分散型台帳は、ノードのネットワークのすべての状態遷移の順序付けられた耐改ざん性のレコードである。状態遷移は、参加している当事者(例えば、クライアント・ノード、順序付けノード、裏書者ノード、ピア・ノードなど)によってサブミットされたチェーンコード呼出し(すなわち、トランザクション)の結果である。トランザクションにより、作成、更新、削除などとして台帳にコミットされている1組のアセットのキー値ペアが生成され得る。分散型台帳は、ブロックチェーン(チェーンとも呼ばれる)を含んでよく、変更不可能な順序付けされたレコードをブロックに格納してよい。分散型台帳は、分散型台帳の現在の状態を維持する状態データベースを含んでもよい。典型的には、各チャネルに関連付けられた1つの分散型台帳がある。各ピア・ノードは、それらのピア・ノードがメンバーになっているチャネルごとに分散型台帳のコピーを維持する。
チェーンは、ハッシュ・リンク・ブロックとして構造化されたトランザクション・ログであり、各ブロックは、N個のトランザクションのシーケンスを含み、ここで、Nは1以上である。ブロック・ヘッダーは、ブロックのトランザクションのハッシュ、および前のブロックのヘッダーのハッシュを含む。このようにして、分散型台帳上のすべてのトランザクションが順序付けられ、暗号によって互いにリンクされてよい。したがって、ハッシュ・リンクを壊さずに分散型台帳のデータを改ざんすることはできない。直近に追加されたブロックのハッシュは、その前に発生したチェーン上のあらゆるトランザクションを表し、すべてのピア・ノードが一貫性のある信頼できる状態にあることを保証できるようにする。チェーンは、分散型台帳ネットワークのワークロードの追記のみという性質を効率的にサポートするピア・ノードのファイル・システム(ローカル、取り付けられたストレージ、クラウドなど)に格納されてよい。
分散型台帳の現在の状態は、チェーンのトランザクション・ログに含まれるすべてのキーの最新の値を表す。現在の状態は、チャネルに知られている最新のキー値を表すので、ワールド・ステートと呼ばれることがある。チェーンコード呼出しは、分散型台帳の現在の状態のデータに対してトランザクションを実行する。これらのチェーンコードの相互作用を効率的にするために、キーの最新の値は、状態データベースに格納されてよい。状態データベースは、単にチェーンのトランザクション・ログに対するインデックス付きビューとすることができ、したがって、いつでもチェーンから再生成され得る。状態データベースは、ピア・ノードの起動時、およびトランザクションが受け入れられる前に、自動的に回復(または必要に応じて生成)されてよい。
図2は、例示的な実施形態による、ブロックチェーン・システムアーキテクチャの構成200Aを示す。図2を参照すると、ブロックチェーン・アーキテクチャ200Aは、特定のブロックチェーン要素、例えば、ブロックチェーン・トランザクションの追加および妥当性確認プロセス(合意)に参加するブロックチェーン・ノード281~284のグループ280を含んでよい。ブロックチェーン・ノード281~284のうちの1つまたは複数は、トランザクションに裏書きしてよく、1つまたは複数のブロックチェーン・ノード281~284は、アーキテクチャ200A内のすべてのブロックチェーン・ノードに順序付けサービスを提供してよい。ブロックチェーン・ノードは、ブロックチェーン認証を開始し、ブロックチェーン層220に格納されているブロックチェーン台帳に書き込もうとしてよく、この書込みのコピーが、基礎となる物理インフラストラクチャ210にも格納されてよい。ブロックチェーンの構成は、格納されたプログラム/アプリケーション・コード250(例えば、チェーンコード、スマート・コントラクトなど)にアクセスして実行するためにアプリケーション・プログラミング・インターフェース(API)260にリンクされた1つまたは複数のアプリケーション270を含んでよく、プログラム/アプリケーション・コード250は、参加者が求めるカスタマイズされた構成に従って作成することができ、それら自体の状態を維持し、それら自体のアセットを管理し、外部情報を受け取ることができる。これは、トランザクションとしてデプロイされ、ブロックチェーン台帳に追加することによって、すべてのブロックチェーン・ノード281~284にインストールされ得る。
ブロックチェーン基盤またはブロックチェーン・プラットフォーム205は、ブロックチェーン・データの様々な層と、サービス(暗号信用サービス、仮想実行環境など)と、新しいトランザクションを受信および格納し、データ・エントリにアクセスしようとしている監査者にアクセスを提供するために使用され得る基礎となる物理コンピュータ・インフラストラクチャとを含んでよい。ブロックチェーン層220は、プログラム・コードを処理し、物理インフラストラクチャ210に関与するために必要な仮想実行環境へのアクセスを提供するインターフェースを公開する。暗号信用サービス230は、アセット交換トランザクションなどのトランザクションを検証し、情報をプライベートに保つために使用されてよい。
図2のブロックチェーン・アーキテクチャの構成は、ブロックチェーン・プラットフォーム205によって公開された1つまたは複数のインターフェースおよび提供されたサービスを介して、プログラム/アプリケーション・コード250を処理および実行してよい。コード250は、ブロックチェーンアセットを制御してよい。例えば、コード250は、データを格納および転送することができ、スマート・コントラクトおよび条件と関連するチェーンコードまたはその実行の対象になる他のコード要素の形態で、ノード281~284によって実行されてよい。非限定的な例として、リマインダ、更新、または変更、更新の対象になる他の通知あるいはその組合せなどを実行するために、スマート・コントラクトが作成されてよい。スマート・コントラクト自体は、ブロックチェーン台帳の権限付与およびアクセスの要件ならびに使用に関連するルールを識別するために使用され得る。例えば、クライアント・デバイスから受け取ったハッシュされた識別子情報252は、ブロックチェーン層220に含まれる1つまたは複数の処理エンティティ(例えば、仮想マシン)によって処理されてよい。結果は、ブロックチェーン・コンピューティング環境から第三者アプリケーションに付与されるアクセス254を含んでよい。この例では、以前に知られているユーザ識別子またはデータ・テンプレート情報が、ブロックチェーン・プラットフォーム205に格納されてよい。物理マシン210は、ユーザ・デバイス・テンプレートを取得するためにアクセスされてよく、その情報は、検証目的で、次に来るユーザ識別子と照合するために使用され得る。
チェーンコード内では、スマート・コントラクトは、高レベルのアプリケーションおよびプログラミング言語によって作成され、次いでブロックチェーン内のブロックに書き込まれてよい。スマート・コントラクトは、ブロックチェーン(例えば、ブロックチェーン・ピアの非中央集権的ネットワーク)内で登録、格納、または複製あるいはその組合せが行われる実行可能コードを含んでよい。トランザクションは、スマート・コントラクトに関連する条件が満たされていることに応答して実行され得るスマート・コントラクト・コードの実行である。スマート・コントラクトの実行は、ブロックチェーン台帳の状態に対する信頼できる変更をトリガしてよい。スマート・コントラクトの実行によって引き起こされたブロックチェーン台帳に対する変更は、1つまたは複数の合意プロトコルを介して、ブロックチェーン・ピアの分散型ネットワーク全体に自動的に複製され得る。
スマート・コントラクトは、キー値ペアの形式でデータをブロックチェーンに書き込んでよい。さらに、スマート・コントラクト・コードは、ブロックチェーンに格納された値を読み取り、それらをアプリケーションの動作で使用することができる。スマート・コントラクト・コードは、様々な論理演算の出力をブロックチェーンに書き込むことができる。コードは、仮想マシンまたは他のコンピューティング・プラットフォームの中で一時データ構造を作成するために使用されてよい。ブロックチェーンに書き込まれたデータは、パブリックとするか、または暗号化してプライベートとして維持するか、あるいはその組合せとすることができる。スマート・コントラクトによって使用/生成された一時データは、提供された実行環境によってメモリ内に保持され、その後ブロックチェーンに必要なデータが識別されると削除される。
チェーンコードは、追加機能と共に、スマート・コントラクトのコード解釈を含んでよい。本明細書に記載のように、チェーンコードは、コンピューティング・ネットワーク上にデプロイされるプログラム・コードとすることができ、プログラム・コードは、合意プロセス中にチェーン・バリデータによって共に実行され、妥当性を確認される。チェーンコードは、ハッシュを受け取り、以前に格納された特徴抽出器の使用によって作成されたデータ・テンプレートに関連付けられたハッシュをブロックチェーンから取得する。ハッシュ識別子のハッシュと、格納された識別子テンプレート・データから作成されたハッシュが一致する場合、チェーンコードは、要求されたサービスに権限付与キーを送る。チェーンコードは、暗号の詳細に関連付けられたデータをブロックチェーンに書き込んでよい。図2のこの例では、アセットサービスを提供するエンティティの仕様に従って、スマート・コントラクト情報の公開および取得が更新222されてよい。1つの機能は、要求側エンティティ、この例ではエンティティ#2が、正しい資格情報を有し、かつ有効期限がまだ満了しておらず、依然として有効または保留の状態(すなわち、満期日前)である場合、エンティティ#2にアセットへのアクセス224を提供することであり得る。正しい資格情報が必要であり、アセットアクセス情報を公開する前に、スマート・コントラクトの条件が満たされなければならない。
図3は、例示的な実施形態による、ブロックチェーンのノード間のトランザクションのフロー200Bの例を示す。図3を参照すると、トランザクションのフローは、アプリケーション・クライアント・ノード201によって裏書ピア・ノード281に送信されるトランザクション提案を含んでよい。裏書ピア281は、クライアントの署名を検証し、チェーンコード関数を実行してトランザクションをシミュレートしてよい。出力は、チェーンコードの結果、チェーンコードに読み取られたキー/値のバージョンのセット(読取りセット)、およびチェーンコードに書き込まれたキー/値のセット(書込みセット)である。提案応答は、裏書署名と共にクライアント201に返送される。クライアントは、裏書きをトランザクションのペイロードにまとめ、それを順序付けサービス・ノード284にブロードキャストする。次いで、順序付けサービス・ノード284は、順序付けられたトランザクションをブロックとしてチャネル上のすべてのピア281~283に配信する。コミットの前に、各ピア281~283がトランザクションの妥当性を確認してよい。例えば、それらのピアは、指定されたピアの正しい割当てが結果に署名していることを保証するために裏書ポリシーを確認し、トランザクションのペイロードに対する署名を認証してよい。
図3を参照すると、ステップ291において、クライアント・ノード201は、要求を構築し、裏書者であるピア・ノード281に送ることによって、トランザクションを開始する。クライアント201は、Node、Java(登録商標)、Pythonなどのサポートされているソフトウェア開発キット(SDK:software development kit)を活用するアプリケーションを含むことができ、利用可能なAPIを利用してトランザクション提案を生成する。Java(登録商標)およびすべてのJava(登録商標)ベースの商標およびロゴは、Oracleまたはその関連会社あるいはその両方の商標または登録商標である。提案は、データがブロックチェーン台帳に対して読取りまたは書込み(すなわち、アセットの新しいキー値ペアを書き込むこと)あるいはその組合せをされ得るように、チェーンコード関数を呼び出すことを求める要求である。SDKは、トランザクション提案を適切に設計された形式(例えば、gRPCを経由するプロトコル・バッファ)にパッケージ化するためのシムとして機能し、クライアントの暗号資格情報を受け取り、このトランザクション提案のための一意の署名を生成する。
それに応じて、裏書ピア・ノード281は、(a)トランザクション提案が適切に形成されていること、(b)トランザクションが過去にすでにサブミットされていないこと(リプレイアタック保護)、(c)署名が有効であること、および(d)サブミッター(例ではクライアント201)に、そのチャネルで提案された動作を実行するための権限が適切に付与されていることを検証してよい。裏書ピア・ノード281は、トランザクション提案の入力を、呼び出されるチェーンコード関数への引数として受け取ってよい。次いで、チェーンコードが現在の状態のデータベースに対して実行されて、応答値、読取りセット、書込みセットを含むトランザクション結果を生成する。しかしながら、この時点ではブロックチェーン台帳に対する更新は行われない。ステップ292において、これらの値のセットは、裏書ピア・ノード281の署名と共に、クライアント201のSDKへの提案応答として渡され、このSDKが、アプリケーションが消費するペイロードを構文解析する。
それに応じて、クライアント201のアプリケーションは、裏書ピアの署名を検査/検証し、提案応答を比較して、提案応答が同じかどうかを判定する。チェーンコードがブロックチェーン台帳に照会しただけの場合、アプリケーションは照会応答を検査し、通常はトランザクションを順序付けサービス284にサブミットしない。クライアント・アプリケーションが、ブロックチェーン台帳を更新するためにトランザクションを順序付けサービス284にサブミットしようとしている場合、アプリケーションは、サブミットする前に、指定された裏書ポリシーが満たされているかどうか(すなわち、トランザクションに必要なピア・ノードが両方裏書きしたかどうか)を判定する。ここで、クライアントは、トランザクションの複数の当事者のうちの1つのみを含んでよい。この場合、各クライアントは、それ自体の裏書ノードを有してもよく、各裏書ノードは、トランザクションに裏書きする必要がある。アーキテクチャは、アプリケーションが応答を検査しないことを選択するか、あるいは裏書きされていないトランザクションを転送する場合でも、裏書ポリシーがピアによって引き続き実施され、コミット妥当性確認フェーズで維持されるようにする。
検査が成功した後、ステップ293において、クライアント201は、裏書きをトランザクションにまとめ、順序付けノード284へのトランザクション・メッセージ内でトランザクションの提案および応答をブロードキャストする。トランザクションは、読取り/書込みセット、裏書ピアの署名、およびチャネルIDを含んでよい。順序付けノード284は、その動作を実行するためにトランザクションの内容全体を検査する必要はなく、単に、ネットワーク内のすべてのチャネルからトランザクションを受け取り、それらをチャネル別に時系列に順序付けをし、チャネルごとにトランザクションのブロックを作成してよい。
ステップ294において、トランザクションのブロックは、順序付けノード284からチャネル上のすべてのピア・ノード281~283に配信される。裏書ポリシーが満たされていることを保証するため、およびトランザクションの実行によって読取りセットが生成されて以来、読取りセットの変数に関して台帳の状態に変更がないことを保証するために、ブロック内のトランザクションは、妥当性が確認される。ブロック内のトランザクションは、有効または無効であるとしてタグ付けされる。さらに、ステップ295において、各ピア・ノード281~283は、ブロックをチャネルのチェーン(または他の分散型台帳)に追加し、有効なトランザクションごとに書込みセットが現在の状態のデータベースにコミットされる。トランザクション(呼出し)が変更不可能なようにチェーンに追加されたことをクライアント・アプリケーションに通知するため、およびトランザクションが有効にされたか、または無効にされたかを通知するために、イベントが発行される。
図4は、許可型ブロックチェーン・ネットワーク300の例を示しており、許可型ブロックチェーン・ネットワーク300は、分散型の非中央集権的なピアツーピア・アーキテクチャ、ならびにユーザの役割および権限を管理する認証局318を特徴とする。この例では、ブロックチェーン・ユーザ302は、トランザクションを許可型ブロックチェーン・ネットワーク310にサブミットしてよい。トランザクションは、デプロイ、呼出し、または照会とすることができ、SDKを利用するクライアント側アプリケーションを通じて、REST APIを介して直接的に、または同様の方法によって、発行されてよい。信頼できるビジネス・ネットワークは、監査者(例えば、米国の株式市場における証券取引委員会)などの規制者システム310にアクセスを提供してよい。一方、ブロックチェーン・ネットワーク運用者システム312は、規制者システム310を「監査者」として登録し、ブロックチェーン・ユーザ302を「クライアント」として登録するなど、メンバーの権限を管理する。監査者を、ブロックチェーン台帳への照会のみに制限することができ、一方、クライアントに、特定のタイプのチェーンコードのデプロイ、呼出し、照会を行うための権限を与えることができる。
ブロックチェーン開発者システム316は、チェーンコードおよびクライアント側アプリケーションを記述する。ブロックチェーン開発者システム316は、RESTインターフェースを介してチェーンコードをネットワークに直接デプロイすることができる。従来のデータ・ソース330からの資格情報をチェーンコードに含めるために、開発者システム316は、アウトオブバンド接続を使用してデータにアクセスすることができる。この例では、ブロックチェーン・ユーザ302は、ピア・ノード312を介してネットワークに接続する。ノード312は、任意のトランザクションを進める前に、認証局318からユーザの登録およびトランザクション証明書を取得する。場合によっては、ブロックチェーン・ユーザは、許可型ブロックチェーン・ネットワーク310上でトランザクションを実行するために、それらのデジタル証明書を所有しなければならない。一方、チェーンコードを動作させようとするユーザは、従来のデータ・ソース330でその資格情報を検証することが必要になることがある。ユーザの権限付与を確証するために、チェーンコードは、従来の処理プラットフォーム320を介して、このデータへのアウトオブバンド接続を使用することができる。
様々な実施形態によれば、抽選分散型台帳ネットワークは、シード値を生成するために使用されるシード・ブロックチェーン、および、シード値を介して生成される抽選シーケンスを検証するために使用される検証ブロックチェーンなどの複数の分散型台帳を含み、格納することができる。各分散型台帳は、いくつかの違いはあるが同様の情報を格納してよい。図5は、シード値を生成するための分散型台帳400の例を示し、図6は、抽選番号シーケンスを検証するための分散型台帳500の例を示す。
例示的な実施形態によれば、分散型台帳400は、抽選番号生成プログラム用のシード値を生成するために、ノードによって使用されてよい。図5はまた、分散型台帳400内に格納され得るブロック410の例も示す。分散型台帳400は、抽選番号のシーケンスまたはランダム・シーケンスを生成するために使用されることになる最終シード値を生成するために、図1に示す抽選分散型台帳ネットワーク100のノードによって使用されてよい。例において、RIDは、抽選分散型台帳システム内のノードを表す一意のIDである要求IDである。シードは、抽選番号のランダム・シーケンスを生成するためのソフトウェア・プログラムへの唯一の入力である。公開鍵(Kpu)および秘密鍵(Kpri)は、ノードに割り当てられ得る非対称鍵のペアである。各秘密鍵はノードによって維持され、公開鍵は他のノードと共有されて、他のノードが分散型台帳400に格納されたノードのデータを復号できるようにする。
図5において、分散型台帳400上のブロックのシーケンスに格納された例示的なデータ・ブロック410は、ブロックを識別する情報ID、ブロック410を更新することになるネットワーク・ノードを識別する要求ID411、初期シード値の更新された許可ビットを表す更新されたシード値412、シードの前の値を表す前のシード情報ID413、および要求ID411に対応するネットワーク・ノードの秘密鍵を使用して暗号化された暗号化RIDを含む。更新されたシード値412は、要求ID411に対応するそれぞれのネットワーク・ノードが更新することを許可されている、データ・ブロック410に割り当てられた初期シード値のビット(許可ビット415)である。許可ビット415は、初期シードが生成され、すべてのネットワーク・ノードに提供されるとき、主催側ノードによってデータ・ブロック410に割り当てられてよい。図5に示すように、許可ビット415は、下線で表されている。認可ビットは、分散型台帳400上の複数のブロックの間でブロックごとに異なる。また、各ブロックに割り当てられる許可ビット量は、異なっていてもよく、または同じでもよい。図5において、各ブロック(したがって、各ネットワーク・ノード)には、3つの許可ビットが割り当てられている。各ブロックに割り当てられる許可ビット量は、初期シードの合計サイズおよびネットワーク・ノード数に基づいて決定されてよい。
最終シード値を生成する前に、分散型台帳400上のデータ・ブロックのマップおよび対応するシードが、すべてのネットワーク・ノードに配布されてよい。最終シード値の生成は、複数のステップに従って実行されてよい。例えば、主催側ノードは初期シード値を生成し、初期シード情報を分散型台帳ネットワークにサブミットしてよい。ネットワーク・ノードが初期シードを更新しようとするとき、ネットワーク・ノードは、初期シードのどの許可ビットが、ネットワーク・ノードに関連付けられたそれぞれのブロックに割り当てられているかを識別する。次いで、ネットワーク・ノードは、(例えば、タイム・スタンプを取得することによって)許可ビットS(RID)値としてランダムな数値を生成してよい。ネットワーク・ノードは、RID、更新されたシード値、および前のシード情報IDをブロックに配置することによって、シード情報を構築してよい。次いで、シード情報内にRIDを添付し、Kpri(RID)を使用して暗号化された暗号化シード情報を分散型台帳にサブミットする。ある時点で、すべてのネットワーク・ノードは、対応するKpu(RID)を分散型台帳にサブミットして、他のネットワーク・ノードが該他のネットワーク・ノードによって提供される暗号化された許可ビットを復号できるようにしてよい。次いで、あらゆるノードが、ブロック内の変更されたビット値を復号して、最終的なシード値を取得することができる。
許可ビットは、そのブロックの許可されたネットワーク・ノードによってのみ更新され得る、初期シードのビットの一部分または一部である。主催側ノードは、以下のこと、すなわち、Nビット長のシード値の場合、それらのiビットは許可ビットであること、可能なすべての許可ビットは、s[0]、s[1]...s[K](K=C -1)で表されるC であることに基づいて、許可ビットをブロックに割り当ててよく、許可ビット・シーケンスは、初期シード値と共に分散型台帳にサブミットされる。それに対応して、各ネットワーク・ノードは、擬似ランダム生成器(PRNG:pseudo-random generator)を使用して、ブロック番号に従ってランダムなインデックス値Xを生成してよい。許可ビットs[X]が決定される。ネットワーク・ノードが、ネットワーク・ノードに関連付けられたブロックに割り当てられた許可ビットの識別を受け取ると、ネットワーク・ノードは、シードのそれぞれの許可ビットを更新し、更新されたシードを新しいブロックとして分散型台帳400にポストすることができる。ここで、許可されたノードは、その許可ビットのみを更新することができ、シード値の最終結果を操作して予測することはできない。
図6は、例示的な実施形態による、生成された抽選番号シーケンスを検証するための分散型台帳500を示す。図6はまた、分散型台帳500内に格納され得るブロック510の例も示す。この例では、ブロック510は、分散型台帳500内のレコードを識別するレコードID、ノードのRID511、レコードのカウント512、前のレコードIDおよび情報513、ならびにRID511に対応するノードの秘密鍵で暗号化された暗号化RID情報514を含んでよい。
検証段階の前に、ランダム・シーケンスを生成するためのソフトウェア・プログラムが、すべてのネットワーク・ノードに配布されるべきである。抽選番号シーケンスを生成するとき、シードは、プログラムの唯一の入力とすることができる。最初に、主催側ノードは、分散型台帳500を介して生成された最終シード値に基づいてランダム・シーケンスを生成する。ランダム・シーケンスは、すべてのネットワーク・ノードに分散されてよく、番号のパブリック・リストと呼ばれることがある。次いで、各ネットワーク・ノードは、ソフトウェア・プログラムを使用して同じ最終シード値を処理して、主催側ノードによって生成されたランダム・シーケンスが正しいかどうかを判定することによって、主催側ノードによって生成されたランダム・シーケンスを検証してよい。ネットワーク・ノードがランダム・シーケンスを検証する場合、ネットワーク・ノードは、主催側ノードに通知を送信してよい。主催側ノードは、検証の合意(例えば、50%を超える)を受け取ると、ランダム・シーケンスが承認されたと判断する。したがって、ランダム・シーケンスは、主催側ノードまたはネットワーク・ノードあるいはその両方のいずれかによって抽選番号として出力され得る。
例えば、各ネットワーク・ノードは、分散型台帳ネットワークからランダム・シーケンスを受け取るか、あるいは取り出すことによって、最終シード値が正しいかどうかを検証してよい。ノードは、Kpu(RID)でRIDを復号することによって分散型台帳上の各要求者ノードを検証し、RIDが主催者のRIDであるかどうかを確認してよい。ノードは、変更されたシード・ビットが分散型台帳で許可されているかどうかを検証してよい。ノードは、擬似ランダム生成器(PRNG)を使用して、ブロック番号に従ってランダムなインデックス値Xを生成してよい。許可ビットs[X]が決定される。ブロック内の変更されたビットが許可ビットs[X]に準拠しているかどうかを確認する。
別の例として、各ネットワーク・ノードは、最終シードを使用して主催側ノードによって生成されたランダム・シーケンスを検証してよい。例えば、ノードは、生成された最終シードを用いてプログラムを実行することによって、ランダム・シーケンスを生成してよい。ノードは、(例えば、分散型台帳ネットワークからのランダム・シーケンスのハッシュ値を、生成されたランダム・シーケンスのハッシュ値と比較することによって)分散型台帳ネットワークからのランダム・シーケンスを、生成されたランダム・シーケンスを用いて検証してよい。上記の検証がすべて成功した場合、ネットワーク・ノードは、最新の有効な検証レコードから検証レコードのカウント数を取得してよい。次に、ノードは、カウント数を1増やし、検証レコードのカウント数、RID、前の検証レコードId、およびKpri(RID)で暗号化されたRIDを配置することによって検証レコードを構築し、構築した検証レコードを分散型台帳ネットワークにサブミットしてよい。検証レコードを含むブロックが生成されると、分散型台帳システムは、暗号化されたRIDを復号して確認することによって検証レコードの要求者を検証し、カウント数の増分が1であるかどうかを確認することによって、検証レコードのカウント数が受け入れ可能かどうかを確認してよい。上記の検証が成功したとき、検証レコードがブロック内に記録されてよく、検証レコードIdが生成されてよい。最後に、分散型台帳ネットワーク内の最新の有効な検証レコードは、検証レコードの総カウント数を含む。カウント数が抽選システムの要求者の50%より大きい場合、要求者リストの検証は成功する。
図7は、例示的な実施形態による動作の方法のうちの1つまたは複数に従って、ブロックチェーンに対して様々な動作を実行するように構成される物理インフラストラクチャを示す。図7を参照すると、構成600Aは、ブロックチェーン620およびスマート・コントラクト640を有する物理インフラストラクチャ610を含み、例示的な実施形態のいずれかに含まれる動作ステップ612のいずれかを実行することができる。ステップ/動作612は、1つまたは複数のフロー図または論理図あるいはその両方において説明または図示されるステップのうちの1つまたは複数を含んでよい。ステップは、コンピュータ・システム構成の物理インフラストラクチャ610上にある1つまたは複数のスマート・コントラクト640またはブロックチェーン620あるいはその両方に書き込まれるか、またはこれらから読み取られる、出力されたか、または書き込まれた情報を表すことがある。実行されたスマート・コントラクト640またはブロックチェーン620あるいはその両方から、データが出力され得る。物理インフラストラクチャ610は、1つまたは複数のコンピュータ、サーバ、プロセッサ、メモリ、またはワイヤレス通信デバイス、あるいはその組合せを含んでよい。
図8は、例示的な実施形態による、ブロックチェーン上でスマート・コントラクト条項を実施するように構成された契約当事者と仲介サーバの間の例示的なスマート・コントラクトの構成を示す。図8を参照すると、構成600Bは、通信セッション、アセット移転セッション、あるいは1つまたは複数のユーザ・デバイス652、もしくは656、またはその両方を明確に識別するスマート・コントラクト640によって動かされる処理または手続きを表し得る。スマート・コントラクト実行に関する実行、動作、および結果は、サーバ654によって管理されてよい。スマート・コントラクト640の内容は、スマート・コントラクトのトランザクションの当事者であるエンティティ652および656の1つまたは複数によるデジタル署名を要求することができる。スマート・コントラクト実行の結果は、ブロックチェーン・トランザクションとしてブロックチェーンに書かれてよい。
上記の実施形態は、ハードウェアに、プロセッサによって実行されるコンピュータ・プログラムに、ファームウェアに、または上記の組合せの中に実装されてよい。コンピュータ・プログラムは、記憶媒体などのコンピュータ可読媒体上で具体化されてよい。例えば、コンピュータ・プログラムは、ランダム・アクセス・メモリ(「RAM」)、フラッシュ・メモリ、リード・オンリ・メモリ(「ROM」)、消去可能プログラマブル・リード・オンリ・メモリ(「EPROM」)、電気的消去可能プログラマブル・リード・オンリ・メモリ(「EEPROM」)、レジスタ、ハード・ディスク、リムーバブル・ディスク、コンパクト・ディスク・リード・オンリ・メモリ(「CD-ROM」)、または当技術分野で知られた記憶媒体の他の任意の形式の中にあってよい。
例示的な記憶媒体は、プロセッサが記憶媒体に対して情報を読み書きできるように、プロセッサに結合されてよい。代替として、記憶媒体は、プロセッサに結合されてよい。プロセッサおよび記憶媒体は、特定用途向け集積回路(「ASIC:application specific integrated circuit」)の中にあってよい。代替として、プロセッサおよび記憶媒体は、個別の構成要素として存在してよい。例えば、図9は、例示的なコンピュータ・システム・アーキテクチャ700を示し、これは、上述のコンポーネントなどのいずれかを表すか、またはこれらに統合されてよい。
図9は、本明細書に記載の本出願の実施形態の使用または機能の範囲について、何らかの限定を示唆することを意図するものではない。いずれにせよ、コンピューティング・ノード700は、上述した機能のいずれかを実装すること、または実行すること、あるいはその両方を行うことができる。例えば、コンピューティング・ノード700は、主催側ノード、要求側ノード、ネットワーク・ノード、ノードの組合せ(例えば、主催側ノードとネットワーク・ノード)などとすることができる。
コンピューティング・ノード700には、多数の他の汎用または専用のコンピューティング・システム環境または構成で動作可能なコンピュータ・システム/サーバ702がある。コンピュータ・システム/サーバ702と共に使用するのに適したよく知られているコンピューティング・システム、環境、または構成あるいはその組合せの例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、セット・トップ・ボックス、プログラム可能なコンシューマ・エレクトロにクス、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるが、これらに限定されない。
コンピュータ・システム/サーバ702は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システムが実行可能な命令の一般的な背景で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含んでよい。コンピュータ・システム/サーバ702は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境の中で実践されてよい。分散型クラウド・コンピューティング環境において、プログラム・モジュールは、メモリ記憶デバイスを含むローカルとリモートの両方のコンピュータ・システム記憶媒体の中に配置されてよい。
図9に示すように、クラウド・コンピューティング・ノード700内のコンピュータ・システム/サーバ702は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ702の構成要素には、1つまたは複数のプロセッサまたは処理ユニット704、システム・メモリ706、およびシステム・メモリ706を含む様々なシステム構成要素をプロセッサ704に結合するバスが含まれ得るが、これらに限定されない。
バスは、メモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、および任意の様々なバス・アーキテクチャを使用するプロセッサまたはローカル・バスを含む、1つまたは複数の任意のタイプのバス構造を表す。限定ではなく例として、そのようなアーキテクチャには、インダストリ・スタンダード・アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ・エレクトロニクス規格協会(VESA)ローカル・バス、およびペリフェラル・コンポーネント・インターコネクト(PCI)バスが含まれる。
コンピュータ・システム/サーバ702は、典型的には、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ702によってアクセスできる任意の利用可能な媒体とすることができ、揮発性媒体と不揮発性媒体の両方、取り外し可能な媒体と取り外し不可の媒体の両方を含む。一実施形態において、システム・メモリ706は、他の図のフロー図を実装する。システム・メモリ706は、ランダム・アクセス・メモリ(RAM)710またはキャッシュ・メモリ712あるいはその両方などの、揮発性メモリの形のコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ702は、他の取り外し可能/取り外し不可、揮発性/不揮発性のコンピュータ・システム記憶媒体をさらに含んでよい。単に例としてのみ、ストレージ・システム714は、取り外し不可、不揮発性の磁気媒体(図示せず、通常「ハード・ドライブ」と呼ばれる)に対する読み取りと書き込みを行うために提供される場合がある。図示しないが、取り外し可能、不揮発性の磁気ディスク(例えば「フロッピー(R)・ディスク」)に対する読み取りと書き込みを行うための磁気ディスク・ドライブ、およびCD-ROM、DVD-ROM、または他の光媒体などの取り外し可能、不揮発性の光ディスクに対する読み取りと書き込みを行うための光ディスク・ドライブが提供され得る。そのような例において、それぞれは、1つまたは複数のデータ媒体インターフェースによってバスに接続され得る。以下でさらに詳細に示され、説明されるように、メモリ706は、本出願の様々な実施形態の機能を実行するように構成された一連の(例えば、少なくとも1つの)プログラム・モジュールを有する少なくとも1つのプログラム製品を含んでよい。
プログラム/ユーティリティ716は、プログラム・モジュール718のセット(少なくとも1つ)を有し、限定ではなく例として、メモリ706、ならびにオペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データも格納されてよい。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データ、またはこれらの何らかの組合せは、それぞれネットワーキング環境の実装を含んでよい。プログラム・モジュール718は一般に、本明細書に記載されるような本出願の様々な実施形態の機能または方法あるいはその両方を実行する。
当業者によって理解されるように、本出願の態様は、システム、方法、またはコンピュータ・プログラム製品として具体化されてよい。したがって、本出願の態様は、全面的にハードウェアの実施形態、全面的にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはソフトウェアとハードウェアの態様を組み合わせた実施形態の形をとることができ、これらはすべて、本明細書では、概して「回路」、「モジュール」、または「システム」と呼ばれることがある。さらに、本出願の態様は、コンピュータ可読プログラム・コードがその上で具体化された1つまたは複数のコンピュータ可読媒体の中で具体化されるコンピュータ・プログラム製品の形をとることができる。
コンピュータ・システム/サーバ702は、キーボード、ポインティング・デバイス、ディスプレイ722などの1つまたは複数の外部デバイス720、ユーザがコンピュータ・システム/サーバ702と対話できるようにする1つまたは複数のデバイス、またはコンピュータ・システム/サーバ702が1つまたは複数の他のコンピューティング・デバイスと通信できるようにする任意のデバイス(例えば、ネットワーク・カード、モデムなど)、あるいはその組合せと通信してもよい。このような通信は、I/Oインターフェース724を介して行うことができる。さらに、コンピュータ・システム/サーバ702は、ローカル・エリア・ネットワーク(LAN)、一般的な広域ネットワーク(WAN)、またはパブリック・ネットワーク(例えば、インターネット)、あるいはその組合せなどの1つまたは複数のネットワークと、ネットワーク・アダプタ726を介して通信することができる。図示されるように、ネットワーク・アダプタ726(例えば、ネットワーク・インターフェースなど)は、バスを介してコンピュータ・システム/サーバ702の他の構成要素と通信する。図示されていないが、他のハードウェア構成要素またはソフトウェア構成要素あるいはその両方がコンピュータ・システム/サーバ702と共に使用され得ることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
様々な実施形態によれば、プロセッサ704は、初期シードを生成し、初期シードの1つまたは複数の許可ビットを、分散型台帳(例えば、シード・ブロックチェーン)内の複数のブロックの中から各ブロックに割り当てることができる。プロセッサ704は、初期シード、および初期シードのどの許可ビットが分散型台帳の各ブロックに割り当てられているかの識別を格納してよい。許可ビット・シーケンスは、ブロックに格納されるか、あるいはブロードキャスト送信などを通じてネットワーク・ノードに提供されてよい。分散型台帳は、メモリ706内に格納され、抽選分散型台帳内のすべてのノードにわたって複製されてよい。ネットワーク・インターフェース726は、各ネットワーク・ノードに割り当てられ、かつ各ネットワーク・ノードによって更新された許可ビットに基づいて、分散型台帳を介して複数のネットワーク・ノードのそれぞれによって部分的に生成された最終シード値を受け取ってよい。この例では、プロセッサ704は、最終シード値に基づいてランダム・シーケンスを生成し、そのランダム・シーケンスを検証分散型台帳のブロックに格納することができる。ここで、受け取ることは、ネットワーク・ノードによって暗号化されたシード分散型台帳データ(例えば、許可ビット)を受け取ることと、シード分散型台帳データを復号することと、復号されたデータに基づいて最終シードを決定することとを含み得る。
他の様々な実施形態によれば、ネットワーク・インターフェース724は、複数の分散型台帳ノードを含む分散型台帳ネットワークの主催側ノードによって生成された初期シードを受け取ることができる。例えば、初期シードは、分散型台帳ネットワーク内のノードから受け取った分散型台帳などから取得されてよい。プロセッサ704は、複数のネットワーク・ノードの中からネットワーク・ノードに関連付けられた分散型台帳のブロックに一意に割り当てられている初期シードの許可ビットを識別し、初期シードの識別された許可ビットを変更し、変更された許可ビットをネットワーク・ノードの暗号化キーを使用して暗号化し、暗号化された許可ビットを、複数のネットワーク・ノードのそれぞれの許可ビットのブロックを含む分散型台帳のブロックに格納してよい。この例では、プロセッサ704は、分散型台帳に格納されている、ネットワーク・ノードによって変更された許可ビット、および複数のネットワーク・ノードによって変更された他の許可ビットを使用して、最終シードを生成するかあるいは組み立てることが可能であり、ネットワーク・インターフェースは、最終シードを主催側ノードに送信するようにさらに構成される。
図10および図11は、例示的な実施形態による、抽選分散型台帳ネットワーク内の主催側ノードの方法800Aおよび方法800Bを示す。例えば、主催側ノードは、分散型台帳ピアとすることができ、サーバ、データベース、クラウド・プラットフォーム、ユーザ・デバイス、キオスクなどを含み得る。図10を参照すると、方法800Aは、810において、初期シードを生成すること、および820において、初期シードの1つまたは複数の許可ビットを分散型台帳(例えば、シード・ブロックチェーンなど)上の複数のブロックに割り当てることを含む。ここで、初期シードは、ランダムに生成され複数のビットを含む数値とすることができる。
許可ビットは、ブロックに割り当てられ、かつネットワーク・ノードに関連付けられている、初期シード(またはビット位置)内のビットとすることができる。各ブロックは、初期シードの異なる許可ビット(例えば、相互に排他的なビット)を割り当てられてよい。したがって、各ネットワーク・ノードは、分散型台帳にアクセスし、ブロックへのアクセス権を受け取ることができ、各ネットワーク・ノードが分散型台帳に相互作用するときに、そのそれぞれのブロックに関連付けられた許可ビットを変更する責任を負う場合がある。ノードは、分散型台帳の同じブロックを介して、ブロックの更新された許可ビットを格納してよい。いくつかの実施形態において、割り当てることは、初期シードからの同量の許可ビットを複数のネットワーク・ノードに対応する複数のブロックの中から各ブロックに割り当てることを含み得る。いくつかの実施形態において、各ブロックに割り当てられる許可ビットの量は、初期シード内のビット数および複数のネットワーク・ノードに含まれるノード数に基づいて決定されてよい。
830において、方法は、初期シード、および分散型台帳の複数のブロック内の各ブロックに初期シードのどの許可ビットが割り当てられているかの識別を格納することを含む。例えば、ブロックは、ブロックに関連付けられたネットワーク・ノード(例えば、要求側ノード)のID、初期シード値、初期シード値のどのビットがそのIDのネットワーク・ノードに対応するそれぞれのブロックに割り当てられているかの識別などを含んでよい。すべてのネットワーク・ノードが初期シードのそのそれぞれの許可ビットを更新するとき、ネットワーク・ノードは、更新された値を暗号化された形式でシード分散型台帳に格納してよい。
840において、方法は、複数のネットワーク・ノードの中のそれぞれのノードによって更新された許可ビットに基づいて分散型台帳にアクセスするように構成された複数のノードのそれぞれによって部分的に生成された最終シード値を受け取ることを含む。例えば、最終シードを受け取ることは、複数のノードのそれぞれの暗号化キーを受け取ることと、シード分散型台帳に格納されたそれぞれのノードによって更新された暗号化された許可ビットを、それぞれのノードのそれぞれの暗号化キーに基づいて復号することとを含んでよい。この例では、方法は、複数のネットワーク・ノードの中からそれぞれのノードによって更新された暗号化された許可ビットに基づいて最終シードを組み立てることをさらに含んでよい。
850において、方法は、最終シード値に基づいてランダム・シーケンス値を生成することと、ランダム・シーケンス値を分散型台帳のブロックに格納することとを含む。ランダム・シーケンスは、抽選券、抽選ボール、抽選番号などに対応するランダムに生成された番号のシーケンスとすることができる。いくつかの実施形態において、各ネットワーク・ノードは、対応するランダム・シーケンスを生成し、ネットワーク・ノードが(同じランダム・シーケンスを生成することによって)主催側ノードによって生成された乱数シーケンスを検証したかどうかを示す通知を主催側ノードに送信してよい。この例では、図11を参照すると、方法800Bは、852において、複数のネットワーク・ノードの合意からランダム・シーケンスの検証を受け取ることと、854において、合意に基づいてランダム・シーケンスが有効であると判定することと、856において、検証済みのランダム・シーケンスを抽選システムに出力することとを含み得る。
図12および図13は、例示的な実施形態による、抽選分散型台帳ネットワークにおけるネットワーク・ノードの方法900Aおよび方法900Bを示す。例えば、ネットワーク・ノードは、分散型台帳ピア・ノードとすることができ、サーバ、データベース、クラウド・プラットフォーム、ユーザ・デバイス、キオスクなどを含み得る。場合によっては、ネットワーク・ノードは、要求側ノード、主催側ノード、またはそれらの組合せとすることができる。図12を参照すると、910において、方法900Aは、複数のネットワーク・ノードの中からネットワーク・ノードに関連付けられた分散型台帳(例えば、シード・ブロックチェーン)上のブロックに一意に割り当てられている初期シードの許可ビットを識別することを含む。ここで、初期シードは、分散型台帳に格納されてよく、暗号化を介してネットワーク・ノードによって取得されてよい。各ネットワーク・ノードは、ネットワーク・ノードの更新あるいは変更が許可された初期シードからのビットの一意のセットを有してよい。その結果、各ネットワーク・ノードは、最終シード値を部分的に生成することができる。
920において、方法は、初期シードの識別された許可ビットを変更することと、変更された許可ビットをネットワーク・ノードの暗号化キーを使用して暗号化することとを含む。例えば、許可ビットは、許可ビットに対する乱数または乱数のシーケンスを生成するためのランダム・シーケンス生成器を使用して更新されてよい。930において、方法は、暗号化された許可ビットを、複数のネットワーク・ノードの中からの少なくとも1つの他のノードによって変更された許可ビットを含む分散型台帳のブロックに格納することを含む。例えば、ネットワーク・ノードは、変更/更新された許可ビットを秘密鍵で暗号化し、暗号化されたビットを分散型台帳のブロックに格納してよい。いくつかの実施形態において、方法は、シード分散型台帳に格納されたネットワーク・ノードの許可ビットを復号するために、ネットワーク・ノードの暗号化キーを複数のネットワーク・ノードに送信することをさらに含んでよい。
さらに、940において、方法は、分散型台帳のブロックに格納されている、ネットワーク・ノードによって変更された初期シードの許可ビット、および少なくとも1つの他のノードによって変更された初期シードの他の許可ビットを使用して、最終シードを組み立てることを含んでよい。この例では、方法は、生成された最終シードを主催側ノードに送信することをさらに含んでよい。例えば、図13において、方法900Bは、952において、複数のネットワーク・ノードによって抽選分散型台帳システムのノードに発行されている複数のネットワーク・ノードのそれぞれの暗号化キーを受け取ることを含んでよい。方法900Bは、954において、分散型台帳に格納された複数のネットワーク・ノードのそれぞれによって変更された暗号化された許可ビットを、受け取った暗号化キーに基づいて復号することと、956において、各ネットワーク・ノードの復号された許可ビットに基づいて、最終シードを生成することとをさらに含んでよく、復号された許可ビットは、それぞれのネットワーク・ノードによって更新された異なるビット・セグメント(許可ビット)に基づいて完全なシード値を生成するように結合される。その結果、抽選分散型台帳システム内のネットワーク・ノードのそれぞれによって、最終シード値が部分的に生成され得る。
いくつかの実施形態において、方法900は、最終シード値に基づいてランダム・シーケンス値を生成することと、生成されたランダム・シーケンス値を分散型台帳のブロックに格納することとをさらに含んでよい。いくつかの実施形態において、方法900は、主催側ノードからランダム・シーケンス値を受け取ることと、主催側ノードによって生成されたランダム・シーケンス値を、生成されたランダム・シーケンス値に基づいて検証することと、検証の結果を主催側ノードに送信することとをさらに含んでよい。
システム、方法、および非一過性コンピュータ可読媒体のうちの少なくとも1つの例示的な実施形態が、添付図面に示され、前述の詳細な説明において説明されているが、本出願が、開示された実施形態に限定されず、以下の特許請求の範囲によって示され、定義されているように、多数の再構成、変更、および置換が可能であることが理解されよう。例えば、様々な図のシステムの機能は、本明細書に記載のモジュールまたは構成要素のうちの1つまたは複数によって、あるいは分散型アーキテクチャにおいて実行することができ、送信機、受信機、またはその両方のペアを含んでよい。例えば、個々のモジュールによって実行される機能の全部または一部は、それらのモジュールのうちの1つまたは複数によって実行されてよい。さらに、本明細書に記載の機能は、様々な時間に、様々なイベントに関して、モジュールまたは構成要素の内部または外部で、実行されてよい。また、様々なモジュール間で送信される情報は、データ・ネットワーク、インターネット、音声ネットワーク、インターネット・プロトコル・ネットワーク、ワイヤレス・デバイス、有線デバイスのうちの少なくとも1つを介して、または複数のプロトコルを介して、あるいはその組合せを介して、モジュール間で送信され得る。また、モジュールのいずれかによって送信または受信されるメッセージは、直接的に、またはその他のモジュールのうちの1つまたは複数を介して、あるいはその両方で、送信または受信されてよい。
当業者は、「システム」が、パーソナル・コンピュータ、サーバ、コンソール、携帯情報端末(PDA:personal digital assistant)、携帯電話、タブレット・コンピューティング・デバイス、スマートフォン、もしくは他の任意の適切なコンピューティング・デバイス、またはデバイスの組合せとして具体化され得ることを理解するであろう。「システム」によって実行されているような上述の機能を提示することは、本出願の範囲を何らかの形で限定することを意図するものではなく、多くの実施形態の一例を示すことを意図するものである。実際には、本明細書に開示されている方法、システム、および装置は、コンピューティング技術と整合する局所化および分散された形態で実装されてよい。
本明細書に記載のシステムの特徴のいくつかは、それらの実装形態の独立性をより具体的に強調するためにモジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタム超大規模集積(VLSI:very large scale integration)回路もしくはゲート・アレイ、ロジック・チップなどの既製の半導体、トランジスタ、または他の個別の構成要素を備えるハードウェア回路として実装されてよい。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ・ロジック、プログラマブル・ロジック・デバイス、グラフィックス処理ユニットなどのプログラマブル・ハードウェア・デバイスに実装されてよい。
モジュールは、様々なタイプのプロセッサによって実行するために、ソフトウェアに少なくとも部分的に実装されてもよい。例えば、実行可能コードの特定のユニットは、例えばオブジェクト、プロシージャ、または関数として編成可能なコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含んでよい。それでもやはり、特定のモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に一緒に結合されるとき、モジュールを含み、かつモジュールの定められた目的を実現する、異なる場所に格納された異種の命令を含んでよい。さらに、モジュールは、コンピュータ可読媒体に格納されてよく、媒体は、例えば、ハード・ディスク・ドライブ、フラッシュ・デバイス、ランダム・アクセス・メモリ(RAM)、テープ、またはデータを格納するために使用される他のこのような任意の媒体とすることができる。
実際には、実行可能コードのモジュールは、単一の命令、または多くの命令であってよく、いくつかの異なるコード・セグメント上、異なるプログラム間、およびいくつかのメモリ・デバイスにわたって分散されてよい。同様に、動作上のデータは、本明細書ではモジュール内に識別され、図示される場合があり、任意の適切な形で具体化されてもよく、任意の適切なタイプのデータ構造内で編成されてよい。動作上のデータは、単一のデータ・セットとして収集されてもよく、または異なる記憶デバイスを含む様々な場所にわたって分散されてもよく、少なくとも一部が単にシステムまたはネットワーク上の電子信号として存在してよい。
本出願の構成要素は、本明細書において全体的に説明され図示されるように、多種多様な異なる構成で配置および設計され得ることが容易に理解されよう。したがって、実施形態の詳細な説明は、特許請求される本出願の範囲を限定するよう意図したものではなく、本出願の選択された実施形態を表すにすぎない。
当業者は、上記が異なる順序のステップで、または開示されたものとは異なる構成のハードウェア要素で、あるいはその両方で実施され得ることを容易に理解するであろう。したがって、本出願をこれらの好ましい実施形態に基づいて説明したが、一定の変更形態、変形形態、および代替の構成が明白であることが当業者には明らかであろう。
本出願の好ましい実施形態を説明したが、説明した実施形態は例示にすぎず、本出願の範囲は、あらゆる範囲のその均等物および変更形態(例えば、プロトコル、ハードウェア・デバイス、ソフトウェア・プラットフォームなど)を考慮するとき、添付の特許請求の範囲によってのみ定義されるべきであることを理解されたい。

Claims (26)

  1. 分散型台帳のための主催側ノード・システムであって、
    初期シードを生成し、分散型台帳の複数のブロックのそれぞれに前記初期シードの1つまたは複数の許可ビットを割り当て、前記初期シード、および、前記分散型台帳の前記複数のブロックの中の各ブロックに前記初期シードのどの許可ビットが割り当てられているかの識別を格納するように構成された、プロセッサと、
    複数のノードのそれぞれのノードによって更新されたそれぞれのブロックの許可ビットに基づいて前記分散型台帳にアクセスするように構成された前記複数のノードのそれぞれによって部分的に生成された最終シード値を受け取るように構成された、ネットワーク・インターフェースと
    を含み、前記プロセッサが、前記最終シード値に基づいてランダム・シーケンスを生成し、前記ランダム・シーケンスを前記分散型台帳のブロックに格納するようにさらに構成される、主催側ノード・システム。
  2. 前記ネットワーク・インターフェースが、前記複数のノードの合意から前記ランダム・シーケンスの検証を受け取るようにさらに構成され、前記プロセッサが、前記合意に基づいて前記ランダム・シーケンスが有効であると判定し、前記検証がされたランダム・シーケンスを抽選システムに出力するようにさらに構成される、請求項1に記載の主催側ノード・システム。
  3. 前記プロセッサが、前記初期シードからの同量の許可ビットを、前記複数のノードに関連付けられた前記複数のブロックの中からの前記分散型台帳上の各ブロックに割り当てるように構成される、請求項1または2に記載の主催側ノード・システム。
  4. 各ブロックに割り当てられる許可ビットの量が、前記初期シードのビット数および前記複数のノードに含まれるノードの数に基づいて決定される、請求項1ないし3のいずれかに記載の主催側ノード・システム。
  5. 前記ネットワーク・インターフェースが、前記複数のノードそれぞれの暗号化キーを受け取るようにさらに構成され、前記プロセッサが、前記分散型台帳に格納された、それぞれのノードの暗号化された許可ビットを、それぞれのノードの暗号化キーに基づいて復号するようにさらに構成される、請求項1ないし4のいずれかに記載の主催側ノード・システム。
  6. 前記プロセッサが、前記複数のノードの中からのそれぞれのノードによって更新された前記暗号化された許可ビットに基づいて前記最終シード値を組み立てるようにさらに構成される、請求項5に記載の主催側ノード・システム。
  7. 分散型台帳のためのネットワーク・ノード・システムであって、
    複数のノードによってアクセスされる分散型台帳に格納されたブロックに一意に割り当てられている初期シードの許可ビットを識別し、前記初期シードの識別された前記許可ビットを変更し、変更された前記許可ビットを当該ノードの暗号化キーを使用して暗号化し、暗号化された前記許可ビットを、少なくとも1つの他のノードによって更新された許可ビットのブロックを含む前記分散型台帳のブロックに格納するように構成された、プロセッサ
    を含み、前記分散型台帳に格納された、当該ノードによって変更された許可ビットおよび前記複数のノードのうちの少なくとも1つによって変更された他の許可ビットを使用して最終シード値が組み立てられ得る、ネットワーク・ノード・システム。
  8. 前記プロセッサが、前記初期シードの許可ビットを変更し、かつ変更された前記許可ビットを前記分散型台帳に格納した複数のノードのそれぞれの暗号化キーを受け取り、前記分散型台帳に格納された前記複数のノードのそれぞれによって変更された暗号化された許可ビットを、前記暗号化キーの受取りに基づいて復号し、復号された前記許可ビットに基づいて前記最終シード値を生成するように構成される、請求項7に記載のネットワーク・ノード・システム。
  9. 前記プロセッサが、前記分散型台帳に格納された前記許可ビットを復号するために、当該ノードの前記暗号化キーを、前記複数のノードに送信するようにさらに構成される、請求項7または8に記載のネットワーク・ノード・システム。
  10. 前記プロセッサが、前記最終シード値に基づいてランダム・シーケンス値を生成し、生成された前記ランダム・シーケンス値を前記分散型台帳のブロックに格納するようにさらに構成される、請求項7ないし9のいずれかに記載のネットワーク・ノード・システム。
  11. 前記プロセッサが、主催側ノードからランダム・シーケンス値を受け取り、前記主催側ノードによって生成された前記ランダム・シーケンス値を、生成された前記ランダム・シーケンス値に基づいて検証し、前記検証の結果を前記主催側ノードに送信するようにさらに構成される、請求項7ないし10のいずれかに記載のネットワーク・ノード・システム。
  12. 分散型台帳のための主催側ノードの方法であって、前記主催側ノードが、
    初期シードを生成するステップと、
    分散型台帳内の複数のブロックのそれぞれに前記初期シードの1つまたは複数の許可ビットを割り当てるステップと、
    前記初期シードおよび前記分散型台帳の前記複数のブロックの中の各ブロックに前記初期シードのどの許可ビットが割り当てられているかの識別を格納するステップと、
    複数のノードのそれぞれのネットワーク・ノードによって更新されたそれぞれのブロックの許可ビットに基づいて前記分散型台帳にアクセスするように構成された前記複数のノードのそれぞれによって部分的に生成された最終シード値を受け取るステップと、
    前記最終シード値に基づいてランダム・シーケンス値を生成し、前記ランダム・シーケンス値を前記分散型台帳のブロックに格納するステップと
    を実行する、方法。
  13. 前記主催側ノードが、
    前記複数のノードの合意からランダム・シーケンスの検証を受け取るステップと、
    前記合意に基づいて前記ランダム・シーケンスが有効であると判定するステップと、
    前記検証がされたランダム・シーケンスを抽選システムに出力するステップと
    をさらに実行する、請求項12に記載の方法。
  14. 前記割り当てるステップが、前記複数のノードに関連付けられた前記複数のブロックの中からの前記分散型台帳の各ブロックに前記初期シードからの同量の許可ビットを割り当てるステップをさらに含む、請求項12または13に記載の方法。
  15. 各ブロックに割り当てられる前記許可ビットの量が、前記初期シード内のビット数および前記複数のノードに含まれるノード数に基づいて決定される、請求項12ないし14のいずれかに記載の方法。
  16. 前記最終シード値を前記受け取るステップが、前記複数のノードそれぞれの暗号化キーを受け取るステップと、前記分散型台帳に格納されたそれぞれのノードの暗号化された許可ビットをそれぞれのノードの暗号化キーに基づいて復号するステップとを含む、請求項12ないし15のいずれかに記載の方法。
  17. 前記最終シード値を前記受け取るステップが、前記複数のノードの中からのそれぞれのノードによって更新された前記暗号化された許可ビットに基づいて前記最終シード値を組み立てるステップをさらに含む、請求項16に記載の方法。
  18. 分散型台帳のためのネットワーク・ノードの方法であって、前記ネットワーク・ノードが、
    複数のノードによってアクセスされる分散型台帳に格納されたブロックに一意に割り当てられている初期シードの許可ビットを識別するステップと、
    前記初期シードの識別された前記許可ビットを変更し、変更された前記許可ビットを前記ネットワーク・ノードの暗号化キーを使用して暗号化し、暗号化された前記許可ビットを、少なくとも1つの他のノードによって更新された許可ビットのブロックを含む前記分散型台帳のブロックに格納するステップと
    を実行し、前記分散型台帳に格納された、当該ノードによって変更された前記許可ビットおよび少なくとも1つの他のノードによって変更された他の許可ビットを使用して最終シード値が組み立てられ得る、方法。
  19. 前記ネットワーク・ノードが、
    前記初期シードの許可ビットを変更し、かつ変更された前記許可ビットを前記分散型台帳に格納した複数のノードのそれぞれの暗号化キーを受け取るステップと、
    前記分散型台帳に格納された前記複数のノードのそれぞれによって変更された暗号化された許可ビットを、受け取った前記暗号化キーに基づいて復号するステップと、
    復号された前記許可ビットに基づいて前記最終シード値を生成するステップと
    をさらに実行する、請求項18に記載の方法。
  20. 前記ネットワーク・ノードが、
    前記分散型台帳に格納された前記ノードによって変更された前記許可ビットを復号化するために、前記ノードの前記暗号化キーを前記複数のノードに送信するステップ
    をさらに実行する、請求項18または19に記載の方法。
  21. 前記ネットワーク・ノードが、
    最終シード値に基づいてランダム・シーケンス値を生成するステップと、
    生成された前記ランダム・シーケンス値を前記分散型台帳のブロックに格納するステップと
    をさらに実行する、請求項18ないし20のいずれかに記載の方法。
  22. 前記ネットワーク・ノードが、
    主催側ノードからランダム・シーケンス値を受け取るステップと、
    前記主催側ノードによって生成された前記ランダム・シーケンス値を、生成された前記ランダム・シーケンス値に基づいて検証するステップと、
    前記検証の結果を前記主催側ノードに送信するステップと
    をさらに実行する、請求項18ないし21のいずれかに記載の方法。
  23. コンピュータ可読記録媒体であって、
    処理回路によって読み取り可能であり、請求項12ないし17のいずれかによる方法の各ステップを実行するためのプログラムを格納するコンピュータ可読記憶媒体。
  24. コンピュータ可読記録媒体であって、
    処理回路によって読み取り可能であり、請求項18ないし22のいずれかによる方法の各ステップを実行するためのプログラムを格納するコンピュータ可読記憶媒体。
  25. コンピュータ・プログラムであって、コンピュータに、請求項12ないし17のいずれかの方法の各ステップを実行させるためのコンピュータ・プログラム。
  26. コンピュータ・プログラムであって、コンピュータに、請求項18ないし22のいずれかの方法の各ステップを実行させるためのコンピュータ・プログラム。
JP2020543964A 2018-03-02 2019-02-27 ランダム・シーケンスを生成および検証するための分散型台帳 Active JP7177575B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/910,975 US10938557B2 (en) 2018-03-02 2018-03-02 Distributed ledger for generating and verifying random sequence
US15/910,975 2018-03-02
PCT/EP2019/054806 WO2019166466A1 (en) 2018-03-02 2019-02-27 Distributed ledger for generating and verifying random sequence

Publications (2)

Publication Number Publication Date
JP2021516004A JP2021516004A (ja) 2021-06-24
JP7177575B2 true JP7177575B2 (ja) 2022-11-24

Family

ID=65598658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020543964A Active JP7177575B2 (ja) 2018-03-02 2019-02-27 ランダム・シーケンスを生成および検証するための分散型台帳

Country Status (4)

Country Link
US (2) US10938557B2 (ja)
EP (1) EP3759585A1 (ja)
JP (1) JP7177575B2 (ja)
WO (1) WO2019166466A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11539748B2 (en) 2018-01-23 2022-12-27 Zeronorth, Inc. Monitoring and reporting enterprise level cybersecurity remediation
US11121872B2 (en) * 2018-01-23 2021-09-14 Zeronorth, Inc. Trusted verification of cybersecurity remediation
CN117610062A (zh) * 2018-03-06 2024-02-27 阿梅里科普投资有限责任公司 用于生成区块链存储数据的定制视图的***、方法和介质
US10951626B2 (en) 2018-03-06 2021-03-16 Americorp Investments Llc Blockchain-based commercial inventory systems and methods
US11700265B2 (en) 2018-03-06 2023-07-11 Americorp Investments Llc Customized view of restricted information recorded into a blockchain
TWI662428B (zh) * 2018-03-16 2019-06-11 艾維克科技股份有限公司 可對於產品評鑑的去中心化資訊建立系統及其方式
GB2572340A (en) * 2018-03-26 2019-10-02 Fetch Ai Ltd Data processing system using directed acyclic graph and method of use thereof
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
WO2019072262A2 (en) 2018-11-07 2019-04-18 Alibaba Group Holding Limited RECOVERING CHILLED TRANSACTION INFORMATION IN CONFIDENTIAL BLOCK CHAIN TRANSACTIONS
CN110383311A (zh) 2018-11-07 2019-10-25 阿里巴巴集团控股有限公司 监管区块链机密交易
US11720545B2 (en) * 2018-12-19 2023-08-08 International Business Machines Corporation Optimization of chaincode statements
US20210185091A1 (en) * 2018-12-28 2021-06-17 Mox-SpeedChain, LLC Advanced Security System for Implementation in an Internet of Things (IOT) Blockchain Network
US20220123947A1 (en) * 2019-01-18 2022-04-21 Zeu Technologies, Inc. A Method for Generating Random Numbers in Blockchain Smart Contracts
US20200242595A1 (en) * 2019-01-30 2020-07-30 Salesforce.Com, Inc. Systems, methods, and apparatuses utilizing a blended blockchain ledger in a cloud service to address local storage
US10809992B1 (en) * 2019-04-26 2020-10-20 Hitachi, Ltd. Method and apparatus for continuous delivery of permissioned blockchain application
EP4010818A4 (en) * 2019-08-06 2023-08-23 ZeU Technologies, Inc. DISTRIBUTED BLOCKCHAIN TRANSACTION SYSTEM
US11588631B2 (en) * 2019-10-09 2023-02-21 Arizona Board Of Regents On Behalf Of Arizona State University Systems and methods for blockchain-based automatic key generation
CN110955407B (zh) * 2019-11-21 2022-04-01 杭州趣链科技有限公司 一种基于区块链的随机数取号方法
CN111061456B (zh) * 2019-12-10 2022-02-11 重庆锐云科技有限公司 一种基于分布式架构的伪随机数智能产生方法
CN111105190B (zh) * 2019-12-12 2024-01-23 北京旷视机器人技术有限公司 站点访问顺序的确定方法、装置及电子设备
CN111522800B (zh) 2020-07-03 2020-10-30 支付宝(杭州)信息技术有限公司 蜜獾拜占庭容错共识机制的区块链共识方法、节点及***
GB2597955A (en) * 2020-08-11 2022-02-16 Nchain Holdings Ltd Pseudo-ramdom selection on the blockchain
US11075747B1 (en) * 2021-02-16 2021-07-27 block.one Storing time-sensitive secrets in a blockchain network
US11606205B2 (en) * 2021-05-28 2023-03-14 International Business Machines Corporation Causal total order broadcast protocols using trusted execution environments
US11665067B2 (en) 2021-05-28 2023-05-30 International Business Machines Corporation Managing reconfigurations of distributed computing systems
US11706320B2 (en) 2021-05-28 2023-07-18 International Business Machines Corporation Scalable leader-based total order broadcast protocol for distributed computing systems
EP4135258A1 (en) * 2021-08-10 2023-02-15 adesso SE Electronic drawing via blockchain system and method
CN114564536A (zh) * 2021-10-26 2022-05-31 杭州宇链科技有限公司 危化安全生产数字化区块链监管平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000322322A (ja) 1999-05-14 2000-11-24 Namco Ltd プログラム・プロテクション・システムおよびセキュリティ・チップ
US20010053714A1 (en) 1997-01-27 2001-12-20 Kazue Sako Electronic lottery system and its operating method and computer- readable recording medium in which the electronic lottery program code is stored
JP2009237911A (ja) 2008-03-27 2009-10-15 Toshiba Corp 擬似乱数生成装置及び擬似乱数生成方法
US20100002877A1 (en) 2008-07-07 2010-01-07 General Instrument Corporation Adaptive generation of a pseudo random number generator seed
JP2017157910A (ja) 2016-02-29 2017-09-07 日本電気株式会社 電子抽選システム及び電子抽選方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU767018B2 (en) 1998-09-14 2003-10-30 Igt Random number generator seeding method and apparatus
US7421462B2 (en) * 2003-11-12 2008-09-02 Hewlett-Packard Development Company, L.P. Method and apparatus for generating a random bit stream
US9552191B2 (en) * 2008-11-12 2017-01-24 Igt Canada Solutions Ulc Secure random number generation
US8359456B2 (en) 2010-02-22 2013-01-22 International Business Machines Corporation Generating random addresses for verification of distributed computerized devices
US8752156B1 (en) * 2012-03-30 2014-06-10 Emc Corporation Detecting soft token copies
US9270455B1 (en) * 2014-02-14 2016-02-23 Google Inc. CPU assisted seeding of a random number generator in an externally provable fashion
US10735137B2 (en) * 2016-03-15 2020-08-04 ClineHair Commercial Endeavors Distributed storage system data management and security
US10484168B2 (en) * 2015-03-02 2019-11-19 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
SG11201708000PA (en) * 2015-03-31 2017-10-30 Nasdaq Inc Systems and methods of blockchain transaction recordation
US9876768B2 (en) 2015-06-09 2018-01-23 Intel Corporation System, apparatus and method for secure coordination of a rendezvous point for distributed devices using entropy multiplexing
US20160379212A1 (en) * 2015-06-26 2016-12-29 Intel Corporation System, apparatus and method for performing cryptographic operations in a trusted execution environment
US10402792B2 (en) * 2015-08-13 2019-09-03 The Toronto-Dominion Bank Systems and method for tracking enterprise events using hybrid public-private blockchain ledgers
US10013573B2 (en) * 2015-12-16 2018-07-03 International Business Machines Corporation Personal ledger blockchain
US10382208B2 (en) * 2016-04-29 2019-08-13 Olympus Sky Technologies, S.A. Secure communications using organically derived synchronized processes
US10097344B2 (en) * 2016-07-15 2018-10-09 Mastercard International Incorporated Method and system for partitioned blockchains and enhanced privacy for permissioned blockchains
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
US11258582B2 (en) * 2017-05-01 2022-02-22 Qbrics, Inc. Distributed system and method for encryption of blockchain payloads
EP3632037A1 (en) * 2017-05-22 2020-04-08 Visa International Service Association Network for improved verification speed with tamper resistant data
US10373158B1 (en) * 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010053714A1 (en) 1997-01-27 2001-12-20 Kazue Sako Electronic lottery system and its operating method and computer- readable recording medium in which the electronic lottery program code is stored
JP2000322322A (ja) 1999-05-14 2000-11-24 Namco Ltd プログラム・プロテクション・システムおよびセキュリティ・チップ
JP2009237911A (ja) 2008-03-27 2009-10-15 Toshiba Corp 擬似乱数生成装置及び擬似乱数生成方法
US20100002877A1 (en) 2008-07-07 2010-01-07 General Instrument Corporation Adaptive generation of a pseudo random number generator seed
JP2017157910A (ja) 2016-02-29 2017-09-07 日本電気株式会社 電子抽選システム及び電子抽選方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐古 和恵 ほか,ブロックチェーンを用いたオンラインゲーム用公平性を検証可能な乱数発生,2017年 暗号と情報セキュリティシンポジウム概要集,日本,一般社団法人電子情報通信学会,2017年01月24日,pp.1-4

Also Published As

Publication number Publication date
US20210152352A1 (en) 2021-05-20
US20190273610A1 (en) 2019-09-05
WO2019166466A1 (en) 2019-09-06
EP3759585A1 (en) 2021-01-06
US10938557B2 (en) 2021-03-02
US11689362B2 (en) 2023-06-27
JP2021516004A (ja) 2021-06-24

Similar Documents

Publication Publication Date Title
JP7177575B2 (ja) ランダム・シーケンスを生成および検証するための分散型台帳
US11157833B2 (en) Learning service blockchain
CN111800268B (zh) 用于区块链背书的零知识证明
CN110380858B (zh) 用于处理区块链的游戏共识协议的方法和***
CN111144881B (zh) 对资产转移数据的选择性访问
US10834095B2 (en) Post-commit validation in a distributed ledger
US11244059B2 (en) Blockchain for managing access to medical data
JP7510234B2 (ja) プライベート・ブロックチェーンからの更新のチェーン外通知
JP7161273B2 (ja) ブロックチェーン上のスマート・コントラクト・グループに対する自動データ投影
US11569996B2 (en) Anonymous rating structure for database
US11734259B2 (en) Anonymous database rating update
JP2021525931A (ja) ブロックチェーンのための効率的な検証
US11556925B2 (en) Ensuring information fairness and input privacy using a blockchain in a competitive scenario governed by a smart contract
US20200081998A1 (en) Performing bilateral negotiations on a blockchain
CN111753002A (zh) 基于同意的数据管理
US20200082391A1 (en) Performing bilateral negotiations on a blockchain
US20230360042A1 (en) Method, system, and computer-readable medium for secured multi-lateral data exchange over a computer network
CN111698198B (zh) 秘密生成和份额分发
CN112052474A (zh) 蓝光拷贝服务
JP2023098847A (ja) 装置、方法、コンピュータプログラム(プライバシー保護ブロックチェーンの選択的監査プロセス)
JP2023551458A (ja) Oprfを介したブロックチェーンネットワークにおける鍵再生
US20230421543A1 (en) Method, apparatus, and computer-readable medium for secured data transfer over a decentrlaized computer network
US20220182237A1 (en) Entangled token structure for blockchain networks
US11310311B2 (en) Media obfuscation
JP2023087665A (ja) システム、方法、およびコンピュータプログラム製品(許可型ブロックチェーンのためのマルチ発行者匿名クレデンシャル)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201001

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20200923

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210721

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220928

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221101

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20221102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221109

R150 Certificate of patent or registration of utility model

Ref document number: 7177575

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150