JP2022069474A - ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム - Google Patents

ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム Download PDF

Info

Publication number
JP2022069474A
JP2022069474A JP2022023355A JP2022023355A JP2022069474A JP 2022069474 A JP2022069474 A JP 2022069474A JP 2022023355 A JP2022023355 A JP 2022023355A JP 2022023355 A JP2022023355 A JP 2022023355A JP 2022069474 A JP2022069474 A JP 2022069474A
Authority
JP
Japan
Prior art keywords
group
transaction
blockchain
nodes
share
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.)
Granted
Application number
JP2022023355A
Other languages
English (en)
Other versions
JP7320092B2 (ja
Inventor
スーウェル,マーティン
Sewell Martin
ジョーゼフ,ダニエル
Joseph Daniel
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.)
Nchain Holdings Ltd
Original Assignee
Nchain Holdings Ltd
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 Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2022069474A publication Critical patent/JP2022069474A/ja
Priority to JP2023112027A priority Critical patent/JP2023118955A/ja
Application granted granted Critical
Publication of JP7320092B2 publication Critical patent/JP7320092B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic 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/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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3026Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 データレコード配信プロセスのセキュリティを高めること。【解決手段】本方法において、各グループは秘密/公開キーのペアを有しているが、ノードはそれぞれの秘密キーのキーシェアのみを有しており、ノードは完全な秘密キーを有していない。しきい値署名方式、シークレット・シェア参加、及びステルスアドレスを使用して、入力ノードからのデータレコードが、それら公開キー、シェア・シークレット、及びステルスアドレスの協調的な決定が必要である入力ノードの協調動作によって決定されるステルスアドレスにプールされる。公開キーはトランザクションにコピーされる。出力ノードは、トランザクションを見つけて公開キーを抽出し、その真正性を共同して検証し、シェア・シークレットを協力して決定する。そうすると、出力ノードは、集合的に、データレコードをステルスアドレスから出力アドレスに配信するための第2のトランザクションに署名できる。【選択図】図1

Description

本発明は、概して、ブロックチェーン・トランザクションに関し、より具体的には、入力を出力から切り離してセキュリティを高めるデータレコード配信(distribution)プロセスを生成及び実行するための方法及び装置に関する。
この文書では、あらゆる形態の電子的なコンピュータベースの分散型台帳を含めるために「ブロックチェーン」という用語を使用している。これらの形態には、ブロックチェーン及びトランザクションチェーン技術、アクセス許可された台帳とアクセス許可されていない台帳、共有台帳、及びそれらのバリエーションが含まれるが、これらに限定されるものではない。ブロックチェーン技術の最も広く知られている用途はビットコイン台帳であるが、他のブロックチェーン実施態様が提案され開発されている。本明細書では、便宜上及び例示の目的でビットコインについて参照しているが、本発明はビットコイン・ブロックチェーンでの使用に限定されるものではなく、代替のブロックチェーン実施態様及びプロトコルが本発明の範囲内にあることに留意されたい。
ブロックチェーンはコンセンサスベースの電子台帳であり、この台帳はブロックで構成されるコンピュータベースの非中央型の分散システムとして実施され、ブロックはトランザクションで構成される。各トランザクションは、ブロックチェーンシステムの参加者同士の間でのデジタル資産の制御の移転をエンコードするデータ構造であり、少なくとも1つの入力と少なくとも1つの出力とを含む。各ブロックには以前のブロックのハッシュが含まれているため、これらブロックは、一緒にチェーンで繋がれており、その開始からブロックチェーンに書き込まれた全てのトランザクションの永続的な変更不可能なレコードを作成する。トランザクションには、それらの入力及び出力に埋め込まれたスクリプトとして知られている小さなプログラムが含まれており、スクリプトは、トランザクションの出力に誰がどの様にアクセスできるかを指定する。ビットコイン・プラットフォームでは、これらのスクリプトはスタックベースのスクリプト言語を使用して記述される。
トランザクションをブロックチェーンに書き込むためには、「検証」する必要がある。ネットワークノード(マイナー(採掘者):miners)は、各トランザクションが有効であることを確認する作業を行い、無効なトランザクションはネットワークから拒否される。ノードにインストールされたソフトウェアクライアントは、そのロック及びロック解除スクリプトを実行することにより、未使用(unspent)トランザクション(UTXO)でこの検証作業を行う。ロック及びロック解除スクリプトの実行がTRUEと評価された場合に、トランザクションは有効であり、トランザクションはブロックチェーンに書き込まれる。こうして、トランザクションをブロックチェーンに書き込むためには、そのトランザクションは、i)トランザクションを受信する第1のノードで検証する(トランザクションが検証されると、ノードはその検証したトランザクションをネットワーク内の他のノードに中継する);ii)マイナーによって構築された新しいブロックに追加する;iii)採掘する、すなわち過去のトランザクションの公的な台帳に追加する必要がある。
ブロックチェーン技術は暗号通貨の実施態様の使用で最も広く知られているが、デジタル起業家は、ビットコインがベースとする暗号セキュリティシステムと、ブロックチェーンに保存して新しいシステムを実施できるデータとの両方の使用を模索し始めている。暗号通貨の領域に限定されない自動化されたタスク及びプロセスにブロックチェーンを使用できれば、非常に有利であろう。このようなソリューションは、ブロックチェーンの利点(例えば、イベントの永続的な改ざん防止記録、分散処理等)を活用しながら、アプリケーションの用途を広げることができる。従って、本願は、ブロックチェーンに関して記録される「データレコード」を参照し得る。データレコードには、例えば、文書、処理能力又は時間の測定値、暗号通貨の量、資産の所有権を示すセキュリティ又は他のトークン、又は暗号資料を所有しているエンティティによって制御され得る(そのエンティティがそのデータレコードを使用又は移動できるようにする)他のそのようなものが含まれ得る。
ビットコイン等のブロックチェーン技術で認められている利点の1つは、その匿名性とセキュリティである。つまり、ビットコイン台帳には、トランザクションに参加している人に関する個人情報は含まれていない。その台帳には、パブリックアドレス情報のみが含まれる。ただし、外部データ及び解析を使用すると、特定のトランザクション及びアドレスを個人に首尾よく関連付けることができる。
ビットコインのような暗号通貨の匿名性及び追跡不可能性(fungibility)を改善するために、コインミキシング・トランザクションが使用される場合がある。CoinJoin等のコインミキシング・トランザクションは、入力のセットをプールし、値を出力のセットに移す。ただし、CoinJoinには、依然として別の参加者の入力/出力関係を知っている参加者が少なくとも1人含まれているので、単に部分的に匿名になるため、トランザクションの安全性が低下し、暗号化ソリューションが不十分になる。
ブロックチェーン内のレコードの潜在的なトレーサビリティは、特定のアプリケーションを損なう可能性のある実施態様の欠陥を明らかにしている。アプリケーションの例には、採点のための試験や書類の提出、匿名の犯罪報告書の提出、匿名の調査又は統計調査の報告書の提出、又は提出後にデータの変更ができない状況下で、参加者ノードのグループがデータレコードを1つ又は複数の他のノードに安全且つ機密に転送する必要があるそのような他のアプリケーションが含まれる。
こうして、効率的でコンパクトなデータレコード配信プロセスを生じさせながら、入力から出力への追跡不可能性及びリンク不能性を向上させるにより、高められたセキュリティ及びより堅牢な暗号化を提供する改善された方法及び装置を提供することが望ましい。
このような改善されたソリューションがここで考案されている。
こうして、本発明によれば、添付の特許請求の範囲に規定されるような方法及び装置が提供される。
本発明は、コンピュータで実施される方法及び対応するシステムを提供し得る。この方法/システムは、ブロックチェーンで実施される方法/システムとして説明され得る。本発明は、セキュリティ方法又は暗号化方法/システムとして説明され得る。本発明は、暗号通貨の一部又は量等の、デジタル資産又はデータレコードの安全な移転を提供することができる。追加的又は代替的に、本発明は、暗号通貨の一部又は量等のデジタル資産の移転を制御するための制御メカニズムを提供することができる。
データレコードがプールされる、共同して決定されたステルスアドレスの使用、及びデータレコードをプールされたステルスアドレスから指定された出力アドレスに配信する際に共同的且つ協調的な出力ノードの参加の要件により、データ配信プロセスはより安全で堅牢になり得る。
追加的又は代替的に、本願は、ブロックチェーンを使用してデータレコード配信プロセスに参加するためのコンピュータで実施される方法を説明することができ、データレコード配信には複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスはそれぞれの入力ノード又は出力ノードによって制御(又は、所有)される。入力ノードのうちの1つで実施されるこの方法は、
出力ノードに関連付けられた第1の公開キーを取得するステップと;
入力ノードに関連付けられた第2の秘密キーのキーシェアを取得するステップであって、第2の秘密キーはどの入力ノードにも知られていない、取得するステップと;
シークレット・シェア参加を使用して、第2の秘密キーに対応する第2の公開キーを導出する際に協力するステップと;
第1の公開キー、キーシェア、及びシークレット・シェア参加を使用してシェア・シークレットを導出する際に協力するステップと;
複数の入力アドレスからデータレコードを受け取り、且つ出力アドレスとしてステルスアドレスを有する第1のブロックチェーン・トランザクションを生成するステップであって、ステルスアドレスは、第1の公開キー及びシェア・シークレットに基づく、生成するステップと;を含む。
いくつかの実施態様では、第1のブロックチェーン・トランザクションには、非トランザクション・コード及び第2の公開キーのコピーが含まれる。場合によっては、非トランザクション・コードは、OP_RETURN又は機能的に同等なコードであり、第2の公開キーのコピーは、第1のブロックチェーン・トランザクションにおいてOP_RETURNの後に続く。
いくつかの実施態様では、第2の公開キーを導出する際に協力するステップは、キーシェアを含む、第1のラグランジュ多項式補間の項を計算するステップと、この項を、他の入力ノードによって提供される第1のラグランジュ多項式の項と合計するステップとを含む。
いくつかの実施態様では、第1のブロックチェーン・トランザクションを生成するステップは、ステルスアドレスを、第1の公開キーと、対応する秘密キーとしてシェア・シークレットを有するシークレット公開キーとの合計として決定するステップを含む。
本願は、ブロックチェーンを使用したデータレコード配信プロセスに参加するためのコンピュータで実施される方法をさらに説明しており、データレコード配信プロセスには、複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスはそれぞれの入力ノード又は出力ノードによって制御(又は、所有)される。出力ノードのうちの1つで実施される方法は、
出力ノードに関連付けられた第1の秘密キーのキーシェアを取得するステップであって、第1の秘密キーはどの出力ノードにも知られておらず、第1の秘密キーは第1の公開キーに関連付けられる、取得するステップと;
入力ノードに関連付けられた第2の公開キーを含む第1のブロックチェーン・トランザクションに関するブロックチェーンを検索するステップであって、第1のブロックチェーン・トランザクションは、複数の入力アドレスを特定し、出力アドレスとしてステルスアドレスを有する、検索するステップと;
第1のブロックチェーン・トランザクションから抽出された第2の公開キー、キーシェア、及びシークレット・シェア参加を使用して、シェア・シークレットを導出する際に協力するステップと;
第1の公開キー及びシェア・シークレットを使用してステルスアドレスを決定し、決定したステルスアドレスを第1のブロックチェーン・トランザクションの出力アドレスと比較して、それらアドレスが一致することを確認するステップと;
ステルスアドレスに関連してプールされたデータレコードを複数の出力アドレスに配信するために、第2のブロックチェーン・トランザクションに署名する際に協力するステップであって、署名には、シェア・シークレット及びキーシェアを使用する楕円曲線デジタル署名アルゴリズムの使用が含まれる、協力するステップと;を含む。
いくつかの実施態様では、ブロックチェーンを検索するステップは、非トランザクション・コードを含むトランザクションを特定するステップを含む。場合によっては、非トランザクション・コードは、ブロックチェーン・トランザクションを無効としてマークするために使用できるコマンド又は命令である。これは、例えば、ビットコインプロトコルで知られているOP_RETURN命令コード、又は異なるブロックチェーン・プロトコルに関連付けられた機能的に同等のコマンドである。第2の公開キーは、第1のブロックチェーン・トランザクションにおいてOP_RETURNの後に続く(つまり、後に配置される)場合がある。
いくつかの実施態様では、方法は、シークレット・シェア参加を使用して、第1の秘密キーに対応する第1の公開キーを導出する際に協力するステップをさらに含み得る。場合によっては、第1の公開キーを導出する際に協力するステップは、キーシェアを含む、第1のラグランジュ多項式補間の項を計算するステップと、この項を、他の出力ノードによって提供される第1のラグランジュ多項式の項と合計するステップと、を含む。
いくつかの実施態様では、シェア・シークレットを導出する際に協力するステップは、キーシェア及び第2の公開キーを含む、第2のラグランジュ多項式補間の項を計算するステップと、この項を、他の出力ノードからの第2のラグランジュ多項式の項と合計するステップと、を含む。
いくつかの実施態様では、ステルスアドレスを決定するステップは、ステルスアドレスを、第1の公開キーと、対応する秘密キーとしてシェア・シークレットを有するシークレット公開キーとの合計として決定するステップを含み得る。
いくつかの実施態様では、楕円曲線デジタル署名アルゴリズムを使用することは、しきい値署名方式で安全な逆数及び安全な乗算を使用することを含むことができ、ステルスアドレスに対応する秘密キーは、第1の秘密キーをシェア・シークレットに加えたキーとして共同して決定される。
いくつかの実施態様では、データレコード配信(distribution)を値の混合(value mixing)と呼ぶ場合がある。
本願は、記載した方法を実行するためのコンピュータ装置をさらに説明しており、コンピュータ装置は、少なくとも1つのプロセッサと、メモリと、ネットワークインターフェイスと、実行されるとプロセッサに本明細書に記載の方法の1つ又は複数の動作を実行させるプロセッサ実行可能命令を含むブロックチェーン・アプリケーションとを含む。
本願は、複数の参加ノードの間でブロックチェーンを使用してデータレコード配信プロセスに参加するためのプロセッサ実行可能命令を格納する非一時的なプロセッサ可読媒体をさらに説明しており、プロセッサ実行可能命令は、参加ノードのうちの1つのノードのプロセッサによって実行されると、プロセッサに、本明細書で記載の方法の1つ又は複数の動作を実行させる。
本発明の一態様又は実施形態に関連して説明したあらゆる特徴は、1つ又は複数の他の態様/実施形態に関しても使用され得る。本発明のこれら及び他の態様は、本明細書に記載される実施形態を参照して説明され、この実施形態から明らかになろう。ここで、本発明の実施形態を、単なる一例として、添付の図面を参照して説明する。
ノードの例示的なブロックチェーン・ネットワークを示す図である。 データレコード配信プロセスの一実施形態を概略的に示す図である。 ブロックチェーン・トランザクションでのデータレコード配信の例示的なプロセスをフローチャート形式で示す図である。 本願の実施形態による、データレコード配信動作に入力ノードとして参加するための例示的なプロセスをフローチャート形式で示す図である。 本願の実施形態による、データレコード配信動作に入力ノードとして参加するための例示的なプロセスをフローチャート形式で示す図である。 簡略化された参加ノードのブロック図である。
本願において、「及び/又は」という用語は、必ずしも追加の要素を排除せず、列挙された要素の全ての可能な組合せ及びサブコンビネーション(列挙された要素のいずれか1つのみ、任意のサブコンビネーション、又は全ての要素を含む)を網羅することを意図している。
本願において、「~の少なくとも1つ」という語句は、必ずしも追加の要素を排除せず、必ずしも全ての要素を必要としない、列挙された要素のいずれか1つ又は複数(列挙された要素のいずれか1つのみ、任意のサブコンビネーション、又は全ての要素を含む)を網羅することを意図している。
最初に図1を参照すると、この図は、ブロックチェーンに関連付けられた例示的なブロックチェーン・ネットワーク100をブロック図形式で示す。ブロックチェーン・ネットワークは、招待や他のメンバーの同意なしに、誰でも参加できるピアツーピアのオープンメンバーシップネットワークである。ブロックチェーン・ネットワーク100が動作するブロックチェーン・プロトコルのインスタンスを実行する分散型電子装置は、ブロックチェーン・ネットワーク100に参加できる。そのような分散型電子装置は、ノード102と呼ばれ得る。ブロックチェーン・プロトコルは、例えば、ビットコインプロトコル、又は他の暗号通貨であってもよい。
ブロックチェーン・プロトコルを実行し、且つブロックチェーン・ネットワーク100のノード102を形成する電子装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォン等の携帯装置、スマートウォッチ等のウェアラブルコンピュータ、又は他の電子装置等を含む様々なタイプの装置であってもよい。
ブロックチェーン・ネットワーク100のノード102は、有線及び無線通信技術を含み得る適切な通信技術を使用して互いに結合される。多くの場合に、ブロックチェーン・ネットワーク100は少なくとも部分的にインターネット上で実施され、個々のノード102のいくつかは地理的に分散した場所に位置してもよい。
ノード102は、ブロックチェーンの全てのトランザクションのグローバル台帳を維持する。グローバル台帳は分散型台帳であり、各ノード102は、グローバル台帳の完全なコピー又は部分的なコピーを保存することができる。あるノード102によるグローバル台帳に影響を与えるトランザクションは、他のノード102によって検証され、それによってグローバル台帳の有効性が維持される。ビットコインプロトコルを使用するようなブロックチェーン・ネットワークの実施態様及び動作の詳細は、当業者には理解されるであろう。
通常、各トランザクションには1つ又は複数の入力と1つ又は複数の出力が含まれる。入力及び出力に埋め込まれたスクリプトは、誰がどの様にトランザクションの出力にアクセスできるかを指定する。トランザクションの出力は、トランザクションの結果として値が転送されるアドレスであり得る。次に、その値は、未使用のトランザクション出力としてその出力アドレスに関連付けられる。その後のトランザクションは、その値を使用又は分散するために、そのアドレスを入力として参照できる。
トランザクションは、ブロックチェーン台帳のトランザクションに個人情報が含まれていないという点で擬似匿名であるが、トランザクションのチェーン内の値の転送を追跡し、場合によっては、外部データを使用して値を個人にリンク付けすることができる。匿名性を高めるために、コインミキシング・トランザクションを使用して、様々なソースからの入力をプールし、次にプールした値を分割して出力に割り当てることができる。全ての入力及び出力が同じサイズである場合に、特定の入力を特定の出力に関連付けることは困難である。ただし、このようなトランザクションでは、少なくとも1つの参加ノードが、別の参加ノードによって指定された入力アドレスと出力アドレスとの間のリンクを認識している。ビットコインプロトコルでのCoinJoin動作等の、このようなコインミキシング・トランザクションでは、複数の入力及び複数の出力を有する単一のトランザクションを使用して値を混合する。
リング署名やステルスアドレス等、様々な有効性を有する入力と出力との間のリンクを明らかにしないようにするために、他のいくつかの匿名化手法が使用される。ステルスアドレスは、特定のユーザーから資金が送信される出力アドレスのリンクを解除しようとする。リング署名は、可能な署名者のグループの誰かが特定のトランザクションに署名/許可された者である可能性を同等にすることにより、ソースを追跡不能にしようとする。残念ながら、リング署名の概念と互換性のある署名の構造がビットコインの署名要件と互換性がないため、リング署名は、ビットコイン等の一部のプロトコルで実施するのに問題があることが判明している。Monero等の他のいくつかの暗号通貨は、リング署名を有効にするように特別に設計されている。
上記のように、多くのアプリケーションでは(暗号通貨値の混合に加えて)、入力ノードを特定の出力ノードにおける特定の文書にリンク付けするのを防ぐ方法で入力ノードが文書を出力ノードに供給する、安全で不変の文書又はデータレコード配信システムを提供することが有利となろう。このようなアプリケーションには、とりわけ、試験や書類の提出、犯罪報告書の提出、又は調査や統計調査の回答の提出等が含まれる。
本願によれば、特定の署名者からの入力を効果的にリンク付け解除し、特定の受信者からの出力を効果的にリンク付解除し、それにより追跡不可能性及びリンク不能性を提供する方法でデータレコード配信を容易にする方法及び装置が説明される。ブロックチェーン・プロトコルの構造内でこれを行うと、そのセキュリティを提供し、部分的な障害や部分的な配信を伴わない効率的且つ効果的な配信の完了を確保する上で、技術的な実装上の大きな課題が生じる。以下の説明は、これらの技術的実装上の課題に対する解決策の少なくとも1つの例示的な実施形態を提供する。
本明細書の説明では、「入力ノード」、「出力ノード」、「参加ノード」、「入力アドレス」、及び「出力アドレス」という用語を使用することがある。ノードの「アドレス」への参照は、物理ノードのネットワークアドレスへの参照を意味するものではない。代わりに、「アドレス」は、物理ノードが、トランザクション上の署名に対応するキーを所有又は制御することにより、所有権を主張できる未使用の値を有する、ブロックチェーン上のトランザクションで指定されるアドレスである。この意味で、「出力アドレス」は、参加ノードのアドレスではなく、参加している出力ノードによって所有される又はその出力ノードに関連付けられたブロックチェーン・トランザクションの出力アドレスである。同様に、「入力アドレス」は、参加している入力ノードによって所有される又はその入力ノードに関連付けられた未使用トランザクション出力(UXTO)のアドレスである。
楕円曲線デジタル署名
ビットコインのようないくつかのブロックチェーン技術は、デジタル署名のための数学的スキームとして楕円曲線デジタル署名アルゴリズム(ECDSA)を使用する。ECDSAは、UXTOに関連付けられた値を正当な所有者のみが使うことができるように保証するために使用される暗号化デジタル署名である。ECDSA署名に必要なパラメーターには、
E-楕円曲線関数
G-位数n(n×G=0)を含む楕円曲線上のベースポイント
n-大きな素数
q-サブグループの位数が含まれる。
キーペアは、乱数x(ここで、0<x<n)から生成される。乱数xは秘密キー(private key)として機能し、公開キー(public key)PはP=x×Gとして生成される。
メッセージm、乱数k、及び秘密キーxが与えられると、ペア(r,s)の署名が生成される。乱数kは、0<k<qとなるように選択される。次に、r=k×Gが計算され、s=k-1(m+xr) mod nが計算され、ここで、k-1は、k mod nの逆数(multiplicative inverse)(k-1k≡1 mod n)である。これにより、署名(r,s)が得られる。
署名(r,s)、メッセージm、及び公開キーPが与えられると、署名を検証することができる。署名を検証するために、v=s-1m×G+s-1r×yが計算される。この式では、s-1は、s-1s≡1 mod nになるようなs mod qの逆数である。v=rの場合に、署名は有効である。Gは位数nを有しているため、ECポイントにGを乗算すると、s-1のmod n部分はなくなることを思い出されたい。
しきい値署名方式
「しきい値署名分散(threshold signature sharing)」と呼ばれる手法が開発され、シークレットキー(secret key)をシェア(shares)に分割し、それらのシェアを参加者のセットに配信できるようになった。この手法では、参加者のセットの任意のサブセットは、このサブセットの基数が指定された値t以上である限り、シークレットを再構築できる。サブセットの基数がt未満の場合に、シークレットに関する情報は明らかにされない。これは、シェア・シークレット(shared secret)を使用して署名するために、少なくともt人の参加者が協力する必要があることを意味する。参加者の間でのキーシェアの配信は、キーシェアを割り当てる中央ディーラーを使用して、又はディーラーなしの配信システムによって行われ得る。各ソリューションには長所と短所があり、配信方法を選択する際に実装するシステムの要件を慎重に検討する必要がある。
少なくとも1つの実施形態では、技術は、シークレットを次数tの多項式に埋め込むことができる。n人の参加者にはそれぞれ、未知の多項式上の点が割り当てられ、その結果、t+1人の参加者がラグランジュ多項式補間を使用して多項式を正確に再構築できる。
しきい値署名方式と呼ばれるバリエーションが開発され、これにより、個々のキーシェアを所有するn人の参加者のうちm人が、シークレットキーを再構築せずに/個々の参加者のいずれにも公開せずに、2t+1人の参加者が関与して暗号ベースの計算を実行するように協力して、署名を生成することができる。
しきい値署名方式は、ラグランジュ多項式補間に大きく依存している。ラグランジュ多項式補間は、次数tの関数f(x)がt+1点P={(x,f(x)),(x、f(x)),・・・,(xt+1,f(xt+1))}で再構築できることを示している。
Figure 2022069474000002
ここで、ラングラージ(langrage)係数
Figure 2022069474000003
であり、
i,p(x)=1、及びbi,p(x)=0に留意されたい。
しきい値署名計算の1つの要素は、xがシークレットキーでGが楕円曲線上の点であるx×Gの決定である。キーシェアがn人の参加者の間で「分割」されるシークレットキーxが与えられた場合に、
任意のシークレットxは、多項式f(x)上の点f(0)であり、
(キーxの)シェアx,x,・・・,xは、f(x),f(x),・・・,f(x)に対応し、
f(x)がt次多項式の場合に、シークレットxは、
Figure 2022069474000004
によって補間でき、ここで、πはシェアx,x,・・・,x,xt+1のt+1サブセットサイズであり、bは、ラグランジュ多項式補間に関連して上述したように、ラングラージ(langrage)係数である。
πは、個々のxシェアを明らかにせずに、x×Gを計算するために協力するt+1人の参加者のグループであり、xは、t次多項式のx=0点である。
・各参加者iは、部分bi,π×Gを計算する。
・πの全ての参加者は、それぞれの部分を一緒に追加し(ラグランジュ補間を介してシークレットxを再構築し)、
a,π×G+bb,π×G+・・・+bt+1,πt+1×G=x×Gを与える。
このプロセスは、「シークレット・シェア参加(Secret Share Joining)」と呼ばれる場合がある。
しきい値署名を生成する別の態様は、xy mod nを生成する2つのシークレットキーを乗算する機能である。2つのt次多項式が乗算される場合に、結果は2t次多項式になる。結果として、2t+1人の参加者が、それらのシェアを明らかにせずに積を出力するために協力する必要がある。従って、この例では、πは2t+1人の参加者のグループである。
各参加者は既にシェアx及びシェアyを有している。x及びyはt次多項式のx=0点であるため、xyは、補間するために2t+1点を必要がある2t次多項式上のx=0点であることに留意されたい。xyを決定するための補間では、シェアxがxに置き換えられ、ラングラージ(langrage)係数bi,p(x)について、セットpには2t+1人のメンバーが含まれることに留意されたい。
・各参加者iは、部分bi,π mod nを計算する。
・πの全ての参加者は、それぞれの部分を一緒に追加し、
((ba,π mod n)+(bb,π mod n)+・・・+(b2t+1,π2t+12t+1 mod n)) mod n=xy mod
nを与える。
このプロセスは、「安全な乗算(Secure Multiplication)」と呼ばれる場合がある。
ECDSA署名を共同して作成するには、k-1k≡1 mod nになるように、k mod nの逆数k-1の共同した決定が必要である。メッセージm、乱数k、及び秘密キーxが与えられると、ECDSA署名はペア(r,s)で構成され、ここで、kは0<k<qであり、qはサブグループの位数であることを思い出されたい。
r=k×G
s=k-1(m+xr) mod nに留意されたい。
グループπは、シェアkを明らかにせずに且つkを再構築することなく、k-1 mod nのシェアを計算するために協力する2t+1人のプレーヤで構成される。例示的な一実施形態では、逆数の共同した生成は、以下のステップを含むことができる。
・グループは、ディーラーなしのシークレット配信を使用して、乱数であるシェアcを計算する。
・各参加者iは、部分bi,π mod nを計算する。
・πの全ての参加者は、それぞれの部分を一緒に追加し、
((ba,π mod n)+(bb,π mod n)+・・・+(b2t+1,π2t+12t+1 mod n)) mod n=kc mod nを与える。
全ての参加者が、逆数(kc mod n)-1 mod n=k-1-1 mod nを計算する。
・各参加者iは、第2の部分k-1-1×c mod nを計算する。これは、k-1でのシェアである。
・π’は、k-1でのシェアの多項式がt次のみである場合に、t+1人のプレーヤのグループである。
・cは、t次多項式のシークレットであり、再構築するためにt+1個のシェアが必要である。そして、今示したように、k-1 mod nの計算にはcの再構築のみが必要である。
・((k-1-1×ba,π’ mod n)+(k-1-1×bb,π’ mod n)+・・・+(k-1-1×bt+1,π’t+1 mod n))
mod n=k-1-1×c mod n=k-1 mod n
・シークレットcは決して明らかにされないことに留意されたい。
このプロセスは「安全な逆数(Secure Inverse)」と呼ばれる場合がある。
「安全なシェア参加(Secure Share Joining)」及び「Secure Inverse」プロセスを適用して、秘密キーを再構築せずに、ECDSA署名を集合的に且つ共同的に生成できる。このプロセスでは、πは2t+1人の参加者のグループである。各参加者には、秘密キーxのシェアxがある。次のプロセスでは第2のシークレットkの使用が含まれるが、シークレットxが再利用されない限り、いくつかの実施態様では、第2のシークレットkの必要性を排除できることに留意されたい。例えば、暗号通貨の設定では、しきい値の署名がアカウントの残高全体を新しいアドレスに転送することを許可する限りである。一例では、メッセージmのハッシュにkを設定できる。これにより、安全なECDSA手順が簡素化され、署名のしきい値に関する状況(それは、2t+1である)が明確になる。ただし、この例では、第2のシークレットkが使用される。
・グループπは、ディーラーなしのシークレット配信を使用して、参加者毎にシェアkを計算する。グループπには、少なくとも2t+1人の参加者がいる。
・t人の参加者のサブグループπ’が協力して、Secure Share Joiningを使用してr=k×Gを生成する。この値はグループ全体にブロードキャストされる。
・グループは、Secure Inverseを使用して、k-1 mod nのシェアを計算する。このシェアは、ここではk -1と呼ばれる。
・各参加者iは、部分bi,π -1(m+xr) mod nを計算し、ここで、mは、署名されるメッセージ(トランザクション)である。
・グループは、それぞれの部分を追加するために協力し、
((ba,π -1(m+xr) mod n)+(bb,π -1(m+xr) mod n)+・・・+(b2t+1,π2t+1 -1(m+x2t+1r) mod n)) mod n=k-1(m+xr) mod nを与える。
・これは、k-1とm+xr(xは、シークレットである)との安全な乗算に相当し、2t+1シェアが必要である。
・グループは、秘密キーを明らかにすることなく且つ個々のメンバーがそれぞれの秘密キーシェアを明らかにすることなく、署名を首尾よく計算した。
r=k×G
s=k-1(m+xr) mod n
ステルスアドレスグループのしきい値交換
上述したように、本願は、入力のセットから出力のセットへの安全なデータレコード配信のための方法及び装置を提案する。つまり、第1のグループであるグループAの参加者はそれぞれ入力データレコードを供給し、第2のグループであるグループBの参加者はそれぞれ出力データレコードを受け取る。これらの方法及び装置は、外部の関係者がどの入力アドレスがどのデータレコードをどの出力アドレスに転送したかを特定するのを困難にするように動作する。グループAのメンバーはグループBのメンバーでもないことが想定され得る。
特に、本願は、グループAの参加者が第1のトランザクションを使用してデータレコードをステルスアドレスに転送し、グループBが第2のトランザクションを使用してデータレコードをステルスアドレスから出力アドレスに転送するプロセスを提案する。ステルスアドレスとは、入力データレコードがプールされるグループBによって集合的に制御されるアドレスである。説明しているプロセスでは、2つのグループが使用する秘密キーは、それぞれのグループの個々のメンバーによって実際に知られることはなく、プロセスは共同ベースで実行される。本明細書で説明する例示的な実施形態は、一部のアルトコイン(altcoin)プロトコルの追跡不可能性及びリンク不能特性をエミュレートするが、例えばビットコイン等のいくつかのECDSAベースのブロックチェーン・プロトコルによって課される技術的制約内でそのようにする。
次に、データレコード配信(配布)プロセス200の一実施形態を概略的に示す図2を参照する。複数のノードは、グループAのノードセットのメンバーである。ノードは、ノード1、2、3、・・・、nとして示され、合計n個のノードである。「ノード」は、本明細書ではメンバー又は参加者又は参加ノードと呼ばれ得る。いくつかの実施態様では、各ノードは、ウォレット(wallet)又は他のそのようなブロックチェーン・エンティティである。別の複数のノードは、グループBのノードセットのメンバーであり、1、2、3、・・・、nとして示され、合計でn個のノードである。殆どの実施態様では、n=nと想定される。いくつかの実施態様では、グループAのメンバーはグループBのメンバーでもない。ただし、場合によっては、ウォレット又は他のそのようなノードが、データレコードをデータレコード配信トランザクションに置いて、対応するがリンク解除された出力アドレス(トランザクションの後に同じデータレコードが表示される)を所有する場合等に、グループAの少なくとも1つのノードがグループBのノードでもある。いくつかの実施態様では、データレコードは暗号通貨の量である。
ここで、図2と併せて図3も参照する。図3は、ブロックチェーン・トランザクションにおけるデータレコード配信のための例示的なプロセス300をフローチャート形式で示す。動作302に示されるように、グループAとグループBとが形成される。ノードは、ディーラーなしの方法で広告又は公開されたデータレコード配信トランザクションの機会に参加できる。以下で説明するように、ディーラーなしのキーシェアの配信が発生し得る。いくつかの実施態様では、より集中化されたトランザクション参加及びキーシェア配信アーキテクチャが必要になる場合もある。
グループAのノードはそれぞれ、自身の公開/秘密キーのペアを有しており、それぞれの入力に署名し、それぞれのUTXOの所有権を証明できるようにする。また、グループAのノードは、公開/秘密キーのペアP|eを集合的に共有するが、各ノードは秘密キーeのそれぞれのシェアeのみを有しており、実際の秘密キーeを知っているノードはない。同様に、グループBのノードは、公開/秘密キーのペアQ|dを集合的に有しているが、各ノードは秘密キーdのそれぞれのシェアdのみを有しており、実際の秘密キーdを知っているノードはない。グループBの公開キーQは、グループAのノードと共有される。
グループAの秘密キーシェアe及びSecret Share Joiningを使用して、動作304で示されるように、n個ノードのうちの少なくともmがステルスアドレスApoolを共同して決定する。ステルスアドレスは、グループBの公開キーQ及びグループAの秘密キーの少なくともm個のシェアに部分的に基づく。そのステルスアドレスは、グループBには知られておらず、且つ特定のノードが対応する秘密キーを所有することによってステルスアドレスを制御するという意味で「所有」していない。
動作306において、グループAのノードは第1のトランザクション202を形成し、各ノードは入力データレコードを提供する。入力データレコードは、それぞれのノードが所有又は制御するデータレコードを指定することにより提供される。暗号通貨に関係する1つの例では、データレコードは、それぞれのノードによって制御されるUTXOである。多くの実施態様では、データレコードの配信動作の匿名性を高めるために、入力データレコードは、見た目では見分けがつかない。例えば、暗号通貨の場合に、入力データレコードは同じ量の暗号通貨であり得る。第1のトランザクション202の出力は、ステルスアドレスApoolにプールされた出力データレコードの集まりである。
第1のトランザクション202には、グループAの公開キーPのコピーも含まれる。この値は、トランザクションに悪影響を与えない何らかのタイプのデータフィールドに配置することができる。データフィールドは、コメント、テキスト、又はトランザクションに関係のないそのようなデータのための指定フィールドであってもよい。場合によっては、特定のコード又は信号によってデータフィールドをマーク又は指定して、フィールドに非トランザクションデータが含まれていることを示すことができる。例えば、ビットコインプロトコルでは、OP_RETURNコードは無効なトランザクション出力をマークするために使用されるスクリプト命令コード(opcode)である。OP_RETURNコードの後に配置されたデータはビットコイン支払いの処理で無視されるため、そのOP_RETURNコードの後に配置されたデータは、トランザクション内のメッセージ又はデータ格納フィールドとして効果的に機能できる。従って、ビットコインプロトコルに基づく一実施態様では、第1のトランザクション202は、グループAの公開キーPが後に続くOP_RETURNコードを伴う出力を含む。一般的な用語では、非トランザクションデータ又は情報がトランザクションに含まれていることを示すコードを、本明細書では、「非トランザクション・コード」と呼ぶ場合がある。
グループAのメンバーは各自の入力に署名し、動作308によって示されるように、第1のトランザクション202は、検証及び確認のためにブロックチェーン・ネットワークに送信される。第1のトランザクション202は最終的にブロックに組み込まれ、ブロックチェーン204に追加される。
動作310において、グループBのノード又はそれらのサブセットは、ブロックチェーンを検索して、OP_RETURNコード(又は、使用されているブロックチェーン・プロトコルに応じて同様のデータフィールド又はコード)を含むトランザクションを特定する。グループBのノードは、グループAの公開キーPを知らず、且つ値がプールされるステルスアドレスApoolを知らないことに留意されたい。各トランザクションにOP_RETURNコードが含まれていることが検出されると、グループBのノードは、そのOP_RETURNコードが検索対象のデータレコード配信トランザクションに対応するかどうかを評価する。グループBのノードは、この評価を、OP_RETURNコードの後に続く値を、Secret Share Joiningを使用したそれ自体の秘密キーシェアをさらに含む数学演算でテストすることにより行い、Apoolステルスアドレスを生成する際にグループAのノードによって使用されたシェア・シークレットを生成する。以下に例を示す数学演算により、トランザクションの出力アドレスと一致するステルスアドレスが確認されると、グループBのノードは、そのトランザクションが第1のトランザクション202であると判定する。ステルスアドレスの確認は、評価の一部として秘密キーシェアdを使用するSecret Share Joining手順でのグループBのノードの協力に依存し、グループBのノードのいずれもグループBの秘密キーdを知らないことに留意されたい。
グループBのノードが集合的にやり繰りして(manage to)第1のトランザクション202を特定すると、グループBのノードのいずれもその秘密キーを独立して生成することはできないが、その秘密キーはグループBの秘密キーdに部分的に基づいているので、グループBのノードは、アドレスApoolの秘密キーを共同して生成することもできる。
次に、グループBのノードは、動作312において、入力がステルスアドレスApoolであり、出力がグループBのメンバーによって指定されたそれぞれの出力アドレスである第2のトランザクション206に参加する。場合によっては、1つ又は複数の出力は、データレコード配信プロセスの基礎となる同意(agreement)の一部として、グループAの1人又は複数のメンバーによって指定され得、一部の例では、個別の安全な通信でグループBに各メンバーに指定され得る。第2のトランザクション206は、動作314において、しきい値署名方式を用いてグループBのメンバーによって署名され、入力ステルスアドレスに関連付けられた秘密キーは、グループBの共有秘密キーdに部分的に基づく。上述したように、グループBのノードの少なくとも2t+1は、第2のトランザクション206に署名する際に協力し、ここで、tは、ラグランジュ多項式補間に含まれるシークレット多項式の次数である。
第2のトランザクション206が署名されると、その第2のトランザクション206は、動作316における検証及び確認のためにブロックチェーン・ネットワークに送信される。プールされたデータレコードは、それぞれの出力アドレスに配信される。
データレコード配信プロセスのより詳細な実装例を以下に示す。この例は、ECDSAが署名メカニズムであるビットコインプロトコルの使用に基づいている。以下の例では、Gは楕円曲線の生成元である。それぞれのグループ、グループA及びグループBが形成され、参加ノードの間でそれぞれのキーシェアが配布される。プロセスの第1の段階では、ステルスアドレスにデータレコードをプールし、グループBのメンバーがやり繰りしてトランザクションを特定し、ステルスアドレスの秘密キーを(協力して)導出する。
・受信グループ、グループBは、公開キーQ=d×Gを作成し、ここで、dは、グループの個々のメンバーが知らない秘密キーである。ただし、グループBのn人のメンバーのそれぞれは、秘密キーdのキーシェアdを有しているため、グループBのm人のメンバーはQを計算するために協力する必要がある。これはSecret Share Joiningを使用して計算される。得られた公開キーQは、利害関係者、特にグループAが利用できるようにされる。
・送信グループ、グループAはまた、グループのnメンバーのうちのm人の間でSecret Share Joiningを使用して、公開キーP=e×Gを生成し、ここで、グループの各メンバーがキーシェアeを有している。
・両方のグループの間で共有されるシークレットは、c=H(e×Q)=H(d×P)になり、ここで、Hは暗号化ハッシュ関数である。グループAは、グループのnメンバーのうちのm人の間でSecret Share Joiningを使用してe×Qを決定し、最終的にc=H(e×Q)を計算する。
・この時点で、受信グループ、グループBは、グループAの公開キー値Pが未だグループに通信されていないため、シークレット値cを認識しておらず、この値cを決定できないことに留意されたい。
・グループAのメンバーは、式Q+(c×G)から導出したステルスアドレスApoolに個々のデータレコードを送信する第1のトランザクションを作成する。つまり、ステルスアドレスは、シェア・シークレットc及びグループBの公開キーQに基づいている。このステルスアドレスの導出例では、アドレスは、公開キーQと、(c×G)によって与えられるシークレット公開キーとの追加に基づいており、ここで、シェア・シークレットcはシークレット公開キーに対応する秘密キーである。
・トランザクションには、値Pが配置されるOP_RETURN出力も含まれる。
・受信グループ、グループBは、OP_RETURNコードを含むトランザクションに関するブロックチェーンを検索する。
・グループBは、これらのトランザクションの各OP_RETURN出力に含まれるデータがPであると想定し、その値を使用してc=H(d×P)(シェア・シークレット)を計算する。この計算は、d×Pの計算でm参加者のキーシェアdを使用する、さらに別の共同的なSecret Share Joining手順である。値が実際にPである場合に、適切なシェア・シークレットcが生成され、グループBは、出力がQ+(c×G)で与えられたステルスアドレスかどうかを評価することにより、そのシェア・シークレットcをテストできる。
・ステルスアドレスが確認された(つまり、適切なシェア・シークレットcが決定された)場合に、そのアドレスApoolの秘密キーはd+cである。Q=d×G、従ってQ+(c×G)=(d×G)+(c×G)=(d+c)×Gであることに留意されたい。
この第1の段階の後に、受信グループBのノードは、アドレスQ+(c×G)のデータレコードを最終的な出力アドレスに配信できるようになるが、これも、グループの個々のメンバーには秘密キーdの知見がなく且つトランザクションに署名できないため、共同で行う必要がある。
トランザクションの第2段階では、グループBの少なくとも2t+1人の参加者が、ステルスアドレスQ+(c×G)に格納されたデータレコードのトランザクションに共同して署名する必要があり、ここで、tはシークレット多項式の次数である。
この例では、署名する必要があるアドレスの秘密キーはd+cであり、ここで、cはグループA及びグループBに跨るシェア・シークレット値であり、dはQ=d×Gのようなものである。上記のECDSA署名(r,s)の議論から以下のことを思い出されたい:
r=k×G
s=k-1(m+xr) mod n
ここで、kは、0<k<qとなるような乱数であり、qはサブグループの位数である。
従って、
s=k-1(m+(d+c)r) mod n
s=k-1(m+dr+cr) mod n
グループBのノードは、個々のグループメンバーの部分(パート)を作成及び追加するプロセスで、Secure Inverse及びSecure Multiplicationを使用して協力して、
((ba,π -1(m+dr+cr) mod n)+(bb,π -1(m+d+cr) mod n)+・・・+(b2t+1,π2t+1 -1(m+d2t+1r+cr) mod n)) mod n=k-1(m+dr+cr) mod nを与える。
この方法で共同して署名を生成すると、プールされたデータレコードを配信するトランザクションが署名され、ブロックチェーンに送信される。
前述した例は、当業者によって理解されるシステムのいくつかの実施態様の詳細(例として、暗号通貨取引における潜在的な「変更」の処理、又はブロックチェーンの使用に必要な取引手数料等)を省略していることが理解されよう。
また、キーシェアの配布は、ディーラーなしの方法で、又は中央当局を介して行われ得ることも理解されよう。そのような実施態様では、利害関係者は各アプローチの不利点と利点とを評価し、セキュリティ、信頼性、及び効率性のニーズを最適に満たす又はバランスをとる方法を決定する。
ここで図4を参照すると、この図は、本願の一実施形態によるデータレコード配信動作に入力ノードとして参加するための例示的なプロセス400をフローチャート形式で示す。この例の入力ノードは、入力データレコードを配信動作に提供するグループAのノードセットの参加ノードである。プロセス400は、動作402において、入力ノードがデータレコード配信プロセスに参加することから始まる。参加プロセスは、本明細書では詳述しておらず、分散方式で、又は入力ノード及び出力ノードベースの適切なグループを組み合せる(おそらく、等しい入力値及び/又は出力値(通貨ミキシングの場合)、共通のデータレコードタイプ、及び/又は各グループの十分な数を確保することについて)中央機関を通じて実施してもよい。
動作404において、入力ノードは、グループBの出力ノードに関連付けられた第1の公開キーQを受信する。動作406において、入力ノードは、グループAの入力ノードに関連付けられた第2の秘密キーeのキーシェアeを受信する。動作404及び406は、いくつかの実施態様では異なる順序で又は同時に発生する場合がある。第2の秘密キーeは対応する公開キーPを有することが理解されよう。動作408において、入力ノードはグループAの他の入力ノードと協力して、Secret Share Joiningを使用して第2の公開キーPを導出する。この共同には、グループAのn個のノードのうちの少なくともm個が含まれる。各ノードはキーのそれぞれのシェアeしか有していないため、完全な第2の秘密キーeは、グループAの入力ノードのどのノードも知らないことに留意されたい。
少なくとも1つの実施態様では、第2の公開キーPは、トランザクションのPに値が格納されていないので、Secret Share Joining及びキーシェアeに依存するのではなく、単一のノードによって計算され得る。ただし、これは、単一ノードが秘密キーeを有していることを意味する。これは、第2の公開キーPがロケーション(location)として使用される、つまり、払戻しや変更等の場合にデータレコードや値を保存するためにロケーションを得る場合に懸念されることがある。従って、第2の公開キーPの決定の際に、Secret Share Joining及びキーシェアを採用することが好ましい。
上記のように、データレコードを格納するステルスアドレスの決定は、グループAのノードとグループBのノードとの両方によって決定されるシェア・シークレットcに基づいており、ノードはグループ内で共同して作業する。この例では、シェア・シークレットはc=H(e×Q)=H(d×P)によって与えられ、両方のグループが独立してそのシェア・シークレットを決定できるようにする。
動作410において、入力ノードは、Secure Share Joiningを使用してシェア・シークレットcを決定する際に協力する。上記のように、これには、入力ノードがラグランジュ多項式補間でその項、つまりbi,π×Qを計算することが含まれる。この項は、シェア・シークレットcを見つけるために合計され、ハッシュされる。いくつかの実施態様では、グループAの参加しているノードの1つが、項を累積し、それら項を合計し、その合計をハッシュしてシェア・シークレットcを見つけるための「マスター」ノードとして機能する場合がある。いくつかの他の実施態様では、グループAのノードのうちの2つ以上、又は全てが、シェア・シークレットcを見つけるために同じ計算を行ってもよい。グループBのノードはグループAの公開キーPを有していないため、グループBのノードは未だシェア・シークレットcを認識していないことを理解されたい。グループAは、後述するように、トランザクション以外では公開キーPを共有していない。
動作412において、入力ノードは、(例えば、値が格納されるUTXOによって指定されるように)その入力データレコードを提供することにより、第1のトランザクションへの参加又はその生成に参加する。第1のトランザクションは、グループBの出力ノードのシェア・シークレットc及び公開キーQから導出されたステルスアドレスApoolに全ての入力データレコードをプールする。特定の例では、Apool=Q+(c×G)であるが、他の式を用いて、ステルスアドレスを第2の公開キーQ及びシェア・シークレットcから導出してもよい。この式では、項(c×G)はシェア・シークレットcを秘密キーとして有するシークレット公開キーである。
第1のトランザクションには、第2の公開キーが含まれる。いくつかの実施態様では、第2の公開キーが非トランザクション・データフィールドに挿入されるため、その第2の公開キーはトランザクションには影響しないが、その第2の公開キーがブロックチェーン上にあれば、その第2の公開キーは確認されたトランザクションで公開される。いくつかの実施態様では、非トランザクション・データフィールドは、ビットコインプロトコルのOP_RETURN等の非トランザクション・コードを使用して通知される。
第1のトランザクションは、ブロックチェーン・ネットワークによる検証及び確認のために送信され、最終的にブロックチェーン上のブロックに組み込まれる。
ここで図5を参照すると、この図は、本願の一実施形態によるデータレコード配信プロセスにおいて出力ノードとして参加するための例示的なプロセス500をフローチャート形式で示す。プロセス500は、動作502に示されるように、最初にデータレコード配信プロセスに参加する出力ノードを含む。前述したように、参加には、特定の実施態様に応じて、分散型参加プロセス又は適切なグループを組み合せる集中管理プロセスが含まれ得る。
動作504において、出力ノードは、出力ノードに関連付けられた第1の秘密キーdのキーシェアを取得する。完全な秘密キーdは、どの出力ノードにも知られていない。秘密キーdには対応する公開キーQがあるが、これも最初は出力ノードに知られていない。ただし、出力ノードは、動作505に示されるように、第1の秘密キーのキーシェアd及びSecure Share Joiningを使用して、第1の公開キーQを共同して決定する際に集まる。こうして、公開キーQは、出力ノードとグループBの出力ノードセットの他のノードに知られる。公開キーQは、グループAの入力ノードセットがシェア・シークレットcを生成する際に第1の公開キーQを使用するため、グループAの入力ノードセットで利用可能になるように配布される又は利用可能にされる。
動作506において、出力ノードはブロックチェーンを検索して、第1のトランザクションを特定する。検索は、潜在的に第2の公開キーPである可能性がある非トランザクションデータの存在を示す特定の信号又はコードを含むトランザクションの特定に基づいてもよい。一実施態様では、検出される信号は、ビットコインプロトコルのOP_RETURNのような非トランザクション・コードであり、これは、コードの後に続くデータが非トランザクションであることを示す。
動作506の検索は、グループBの出力ノードの1つ、いくつか、又は全てによって実行され得ることが理解されよう。いくつかの実施態様では、その検索は、集中管理されたデータレコード配信プロセスの場合に、中央サーバ又はグループBの一部ではないノードによって実行され得る。つまり、幹事(organizer)ノードが、グループBのノードに代わって検索を実行し、且つ以下に説明するように、グループBのノードによる後続のテストのために見つかった適格なトランザクションをそれらグループBのノードに提供する。
動作508において、出力ノードは、第1のトランザクションで見出された第2の公開キーP及びSecure Share Joiningを使用してシェア・シークレットcを共同で導出するための試みに参加する。上記のように、この例のシェア・シークレットは、c=H(e×Q)=H(d×P)で表される。グループBの出力ノードは、特定されたトランザクションから抽出されたデータが第2の公開キーPであると想定し、これに基づいて、H(d×P)からcと推定されるものを共同して計算する。これには、出力ノードがラグランジュ多項式補間のそれぞれの項、つまりbi,π×Pを計算することが含まれる。項は、合計され、ハッシュされて、シェア・シークレットcであると推定されるものが見出され、これは、抽出されたデータが実際に第2の公開キーPである場合になる。ノードのうちの1つが、項を合計し、それら項をハッシュしてシェア・シークレットcを見つけるための「マスター」ノードとして機能する場合がある。いくつかの実施態様では、グループAの全てのノードがシェア・シークレットcを計算するように、各ノードが同じ計算を行う場合がある。
特定されたトランザクションからシェア・シークレットを正しく計算したと仮定すると、出力ノードはそのシェア・シークレットを使用して、特定されたトランザクションで指定された出力アドレスと一致するステルスアドレスを決定できるかどうかを確認することにより、そのシェア・シークレットをテストする。動作510において、出力ノードは、グループBの第1の公開キーQ及び計算されたシェア・シークレットcを使用して、ステルスアドレスApoolの検証に参加する。ステルスアドレスはQ+(c×G)で与えられることを思い出されたい。繰り返すが、いくつかの実施態様では、グループBのノードのうちの1つがこの検証テストを行い得る。いくつかの他の実施態様では、グループBのノードのうちの2つ以上、又は全てが同じ検証テストを行って、正しいトランザクションを特定したことを確認する。計算したApoolがトランザクションの出力アドレスと一致する場合に、出力ノードは、正しいトランザクションがあることを確認し、第2の公開キーPを適切に抽出する。さらに、出力ノードは、Apoolからのデータレコードを配信できるようにする、Apoolに対応する秘密キー(d+c)をここで(集合的に)生成することができる。
動作512において、出力ノードは、少なくとも2t個の他の出力ノードと協力して、データレコードをApoolからそれぞれの出力アドレスに配信する第2のブロックチェーン・トランザクションに署名することに参加する。第2のブロックチェーン・トランザクションに署名するには、出力ノードは秘密キーd+cに基づいて署名を生成する必要がある。どの出力ノードも完全な第1の秘密キーdを有していないため、出力ノードは、正しい署名を生成するためにしきい値署名方式で協力する。いくつかの実施態様では、ビットコインプロトコルのように、これには、シェア・シークレットc及びキーシェアdを使用する楕円曲線デジタル署名アルゴリズムが含まれ、Secure Inverse及びSecure Multiplicationの使用に依存する。特に、この例では、出力ノードは、ラグランジュ多項式補間のそれぞれの項を決定することにより協力する。この例では、出力ノードによって計算される項は、(bi,π -1(m+d+cr) mod n)で表され、ここで、kは、サブグループの位数未満の乱数であり、mは署名されているメッセージ(通常、トランザクションの短縮されたハッシュ)、nは大きな素数であり、bはラグランジュ多項式補間のラングラージ(langrage)係数であり、dは第1の秘密キーのキーシェアであり、cはシェア・シークレットであり、rはk×Gである。
トランザクションが署名されると、そのトランザクションは、検証及び確認のために送信され、最終的にブロックチェーンのブロックに含められる。
上記の例示的な実施形態で説明した動作のいくつかは、プロセスに実質的に影響を与えることなく、いくつかの実施態様で同時に又は異なる順序で発生し得ることが理解されよう。本願は、それらの変形及び修正を包含する。
次に図6を参照すると、この図は参加ノード600の簡略化した例をブロック図形式で示す。ノード600は、入力ノード又は出力ノードであってもよい。ノード600は、プロセッサ602を含み、プロセッサ602には、1つ又は複数のマイクロプロセッサ、特定用途向け集積チップ(ASIC)、マイクロコントローラ、又は同様のコンピュータ処理装置が含まれ得る。ノード600は、値、変数、場合によってはプロセッサ実行可能プログラム命令を格納する永続的及び非永続的メモリを含み得るメモリ604と、有線又は無線ネットワークを介してネットワーク接続を提供するネットワークインターフェイス606とをさらに含む。
ノード600は、実行されると、プロセッサ602に本明細書に記載の機能又は動作の1つ又は複数を実行させるプロセッサ実行可能命令を含むプロセッサ実行可能ブロックチェーン・アプリケーション608を含む。
本明細書に記載の装置及びプロセス、並びにビデオ機能抽出器を構成するための記載の方法/プロセスを実施するモジュール、ルーチン、プロセス、スレッド、アプリケーション、又は他のソフトウェアコンポーネントは、標準的なコンピュータプログラミング技術及び言語を使用して実現できることが理解されよう。本願は、特定のプロセッサ、コンピュータ言語、コンピュータプログラミング規約、データ構造、他のそのような実施態様の詳細に限定されるものではない。
上述した実施形態は、本発明を限定するのではなく例示するものであり、当業者は、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、多くの代替実施形態を設計できることに留意されたい。特許請求の範囲において、括弧内に置かれた参照符号は、特許請求の範囲を限定するものとして解釈すべきではない。「備える、有する、含む(comprising, comprises)」等の語は、請求項又は明細書全体に列挙されているもの以外の要素又はステップの存在を排除するものではない。本明細書において、「備える、有する、含む(comprises, comprising)」は「含む、有する(includes, including)」、又は「から構成される(consists of, consisting of)」を意味する。要素の単数形の参照は、そのような要素の複数形の参照を除外するものではなく、その逆も同様である。本発明は、いくつかの別個の要素を含むハードウェアによって、及び適切にプログラムされたコンピュータによって実施され得る。いくつかの手段を列挙する装置クレームでは、これらの手段のいくつかは、ハードウェアの同一のアイテムによって具現化される。特定の手段が互いに異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せが有利に使用できないことを示すものではない。
以下に、出願当初の特許請求の範囲の内容を実施例として記載しておく。
[実施例1]
ブロックチェーンを使用したデータレコード配信プロセスに参加するためのコンピュータで実施される方法であって、前記データレコード配信プロセスには、複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスはそれぞれの入力ノード又は出力ノードによって制御され、前記入力ノードのうちの1つで実施される当該方法は、
前記出力ノードに関連付けられた第1の公開キーを取得するステップと、
前記入力ノードに関連付けられた第2の秘密キーのキーシェアを取得するステップであって、前記第2の秘密キーはどの前記入力ノードにも知られていない、取得するステップと、
シークレット・シェア参加を使用して、前記第2の秘密キーに対応する第2の公開キーを導出する際に協力するステップと、
前記第1の公開キー、前記キーシェア、及びシークレット・シェア参加を使用して、シェア・シークレットを導出する際に協力するステップと、
前記複数の入力アドレスからデータレコードを受け取り、且つ出力アドレスとしてステルスアドレスを有する第1のブロックチェーン・トランザクションを生成するステップであって、前記ステルスアドレスは、前記第1の公開キー及び前記シェア・シークレットに基づく、生成するステップと、を含む、
方法。
[実施例2]
前記第1のブロックチェーン・トランザクションには、非トランザクション・コード及び前記第2の公開キーのコピーが含まれる、実施例1に記載の方法。
[実施例3]
前記非トランザクション・コードは、OP_RETURN又は機能的に同等のコードであり、前記第2の公開キーの前記コピーは、前記第1のブロックチェーン・トランザクションにおいて前記OP_RETURNの後に続く、実施例2に記載の方法。
[実施例4]
前記第2の公開キーを導出する際に協力するステップは、前記キーシェアを含む、第1のラグランジュ多項式補間の項を計算するステップと、該項を、他の入力ノードによって提供される前記第1のラグランジュ多項式の項と合計するステップとを含む、実施例1乃至3のいずれか一項に記載の方法。
[実施例5]
前記シェア・シークレットを導出する際に協力するステップは、前記キーシェア及び前記第1の公開キーを含む、第2のラグランジュ多項式補間の項を計算するステップと、該項を、他の入力ノードからの前記第2のラグランジュ多項式の項と合計するステップとを含む、実施例1乃至3のいずれか一項に記載の方法。
[実施例6]
前記第1のブロックチェーン・トランザクションを生成するステップは、前記ステルスアドレスを、前記第1の公開キーと、対応する秘密キーとして前記シェア・シークレットを有するシークレット公開キーとの合計として決定するステップを含む、実施例1乃至5のいずれか一項に記載の方法。
[実施例7]
ブロックチェーンを使用したデータレコード配信プロセスに参加するためのコンピュータで実施される方法であって、前記データレコード配信プロセスには、複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスはそれぞれの入力ノード又は出力ノードによって制御され、前記出力ノードのうちの1つで実施される当該方法は、
前記出力ノードに関連付けられた第1の秘密キーのキーシェアを取得するステップであって、前記第1の秘密キーはどの前記出力ノードにも知られておらず、前記第1の秘密キーは第1の公開キーに関連付けられる、取得するステップと、
前記入力ノードに関連付けられた第2の公開キーを含む第1のブロックチェーン・トランザクションに関するブロックチェーンを検索するステップであって、前記第1のブロックチェーン・トランザクションは、前記複数の入力アドレスを特定し、且つ出力アドレスとしてステルスアドレスを有する、検索するステップと、
第1のブロックチェーン・トランザクションから抽出された前記第2の公開キー、前記キーシェア、及びシークレット・シェア参加を使用して、シェア・シークレットを導出する際に協力するステップと、
前記第1の公開キー及び前記シェア・シークレットを使用して前記ステルスアドレスを決定し、該決定したステルスアドレスを前記第1のブロックチェーン・トランザクションの前記出力アドレスと比較して、それらアドレスが一致することを確認するステップと、
前記ステルスアドレスに関連してプールされたデータレコードを前記複数の出力アドレスに配信するために、第2のブロックチェーン・トランザクションに署名する際に協力するステップであって、前記署名には、前記シェア・シークレット及び前記キーシェアを使用する楕円曲線デジタル署名アルゴリズムの使用が含まれる、協力するステップと、を含む、
方法。
[実施例8]
前記ブロックチェーンを検索するステップは、非トランザクション・コードを含むトランザクションを特定するステップを含む、実施例7に記載の方法。
[実施例9]
前記非トランザクション・コードは、OP_RETURNを含み、前記第2の公開キーは、前記第1のブロックチェーン・トランザクションにおいて前記OP_RETURNの後に続く、実施例8に記載の方法。
[実施例10]
シークレット・シェア参加を使用して、前記第1の秘密キーに対応する前記第1の公開キーを導出する際に協力するステップをさらに含む、実施例7乃至9のいずれか一項に記載の方法。
[実施例11]
前記第1の公開キーを導出する際に協力するステップは、前記キーシェアを含む、第1のラグランジュ多項式補間の項を計算するステップと、該項を、他の出力ノードによって提供される前記第1のラグランジュ多項式の項と合計するステップと、を含む、実施例10に記載の方法。
[実施例12]
前記シェア・シークレットを導出する際に協力するステップは、前記キーシェア及び前記第2の公開キーを含む、第2のラグランジュ多項式補間の項を計算するステップと、該項を、他の出力ノードからの前記第2のラグランジュ多項式の項と合計するステップと、を含む、実施例7乃至9のいずれか一項に記載の方法。
[実施例13]
前記ステルスアドレスを決定するステップは、該ステルスアドレスを、前記第1の公開キーと、対応する秘密キーとして前記シェア・シークレットを有するシークレット公開キーとの合計として決定するステップを含む、実施例7乃至12のいずれか一項に記載の方法。
[実施例14]
楕円曲線デジタル署名アルゴリズムを使用することは、しきい値署名方式で安全な逆数及び安全な乗算を使用することを含み、前記ステルスアドレスに対応する秘密キーが、前記第1の秘密キーを前記シェア・シークレットに加えたキーとして共同して決定される、実施例7乃至13のいずれか一項に記載の方法。
[実施例15]
複数の参加ノードの間でブロックチェーンを使用してデータレコード配信プロセスに参加するためのコンピュータ装置であって、当該コンピュータ装置は参加ノードのうちの1つであり、当該コンピュータ装置は、
プロセッサと、
メモリと、
ネットワーク接続を提供するネットワークインターフェイスと、
前記プロセッサによって実行されると、該プロセッサに実施例1乃至14のいずれか一項に記載の方法を実行させるコンピュータ実行可能命令を含むブロックチェーン・アプリケーションと、を含む、
コンピュータ装置。
[実施例16]
複数の参加ノードの間でブロックチェーンを使用してデータレコード配信プロセスに参加するためのプロセッサ実行可能命令を格納する非一時的なプロセッサ可読媒体であって、前記プロセッサ実行可能命令は、前記参加ノードのうちの1つのノードのプロセッサによって実行されると、該プロセッサに実施例1乃至14のいずれか一項に記載の方法を実行させる、非一時的なプロセッサ可読媒体。

Claims (15)

  1. ブロックチェーンを使用したデータレコード配信プロセスに参加するためのコンピュータで実施される方法であって、前記データレコード配信プロセスには、複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスは、入力ノードのグループに属するそれぞれの入力ノード又は出力ノードのグループに属する出力ノードによって制御され、当該方法は、
    前記入力ノードのグループの1つ又は複数のノードによって以下のステップを実行し、該ステップには、
    ステルスアドレスを決定するために協力するステップと、
    前記ステルスアドレスに転送されるデータレコードをプールする第1のトランザクションを形成するステップと、
    検証及び前記ブロックチェーンへの組込みのために、前記第1のトランザクションを前記ブロックチェーンに送信するステップと、が含まれ、
    前記出力ノードのグループの1つ又は複数のノードによって以下のステップを実行し、該ステップには、
    前記ブロックチェーンを検索して前記第1のトランザクションを見つけ、前記ステルスアドレスを特定するステップと、
    プールしたデータレコードを配信する第2のトランザクションを形成するステップと、
    しきい値署名方式を使用して前記第2のトランザクションに署名するために協力するステップと、
    検証及び前記ブロックチェーンへの組込みのために、前記第2のトランザクションを前記ブロックチェーンに送信するステップと、を含む、
    コンピュータで実施される方法。
  2. 各ノードで、前記ノードのグループメンバーシップに関連付けられたグループ秘密キーのキーシェアを取得するステップをさらに含む、請求項1に記載のコンピュータで実施される方法。
  3. 各グループ内のノードが前記関連付けられたグループ秘密キーを知らない、請求項2に記載のコンピュータで実施される方法。
  4. 前記キーシェアは、キーシェアを割り当てる中央ディーラーから取得される、請求項2又は3に記載のコンピュータで実施される方法。
  5. 前記キーシェアは、ディーラーなしのシステムを介して取得される、請求項2又は3に記載のコンピュータで実施される方法。
  6. 前記入力ノードのグループにおいて、前記出力ノードのグループに関連付けられた公開キー、前記入力ノードのグループのキーシェア、及びシークレット・シェア参加(secret share joining)を使用してシェア・シークレットを導出するステップをさらに含み、前記ステルスアドレスは、前記シェア・シークレット及び前記入力ノードのグループのキーシェアに基づいている、請求項2乃至5のいずれか一項に記載のコンピュータで実施される方法。
  7. 前記第1のトランザクションは、複数の入力を含み、各入力は、前記入力ノードのグループのノードによって提供される、請求項1乃至6のいずれか一項に記載のコンピュータで実施される方法。
  8. 前記第2のトランザクションは、複数の出力を含み、各出力は、前記出力ノードのグループのノードによって指定される、請求項1乃至7のいずれか一項に記載のコンピュータで実施される方法。
  9. 前記第1のトランザクションは、非トランザクションコードと、前記入力ノードのグループに関連付けられた公開キーのコピーとを含む、請求項1乃至8のいずれか一項に記載のコンピュータで実施される方法。
  10. 前記非トランザクションコードは、OP_RETURN又は機能的に同等のコードであり、前記入力ノードのグループに関連付けられた前記公開キーの前記コピーは、第1のブロックチェーン・トランザクションにおいて前記OP_RETURNの後に続く、請求項9に記載のコンピュータで実施される方法。
  11. 前記ブロックチェーンを検索し、前記ステルスアドレスを特定するステップは、
    前記非トランザクションコードを含むトランザクションを特定するステップを含む、請求項9又は10に記載のコンピュータで実施される方法。
  12. 前記ブロックチェーンを検索し、前記ステルスアドレスを特定するステップは、
    前記入力ノードのグループに関連付けられた前記公開キー、前記出力ノードのグループに関連付けられた秘密キーシェア、及びシークレット・シェア参加を含む数学演でテストするステップを含む、請求項9乃至11のいずれか一項に記載のコンピュータで実施される方法。
  13. 前記出力ノードのグループにおいて、前記入力ノードのグループに関連付けられた前記公開キー、キーシェア、及びシークレット・シェア参加を使用してシェア・シークレットを導出するステップをさらに含む、請求項9乃至12のいずれか一項に記載のコンピュータで実施される方法。
  14. 前記データレコードは文書である、請求項1乃至13のいずれか一項に記載のコンピュータで実施される方法。
  15. 複数のノードがブロックチェーンを使用してデータレコード配信プロセスに参加できるようにするシステムであって、前記データレコード配信プロセスには、複数の入力アドレスと複数の出力アドレスとが含まれ、各アドレスは、それぞれの入力ノード又は出力ノードによって制御され、当該システムは、
    入力ノードのグループと、
    出力ノードのグループと、を含み、
    1つ又は複数の前記入力ノードは、
    ステルスアドレスを決定する際に協力し、
    前記ステルスアドレスに転送されるデータレコードをプールする第1のトランザクションを形成し、及び
    検証及び前記ブロックチェーンへの組込みのために、前記第1のトランザクションを前記ブロックチェーンに送信する、ように構成され、
    1つ又は複数の前記出力ノードは、
    前記ブロックチェーンを検索して前記第1のトランザクションを見つけ、前記ステルスアドレスを特定し、
    プールしたデータレコードを配信する第2のトランザクションを形成し、
    しきい値署名方式を使用して前記第2のトランザクションに署名するために協力し、及び
    前記出力ノードのグループで、検証及び前記ブロックチェーンへの組込みのために、前記第2のトランザクションを前記ブロックチェーンに送信する、ように構成される、
    システム。
JP2022023355A 2017-04-07 2022-02-18 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム Active JP7320092B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023112027A JP2023118955A (ja) 2017-04-07 2023-07-07 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB1705621.9 2017-04-07
GBGB1705621.9A GB201705621D0 (en) 2017-04-07 2017-04-07 Computer-implemented system and method
JP2019553098A JP7029468B2 (ja) 2017-04-07 2018-04-06 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
PCT/IB2018/052406 WO2018185724A1 (en) 2017-04-07 2018-04-06 Method and system for secure data record distribution using a blockchain

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2019553098A Division JP7029468B2 (ja) 2017-04-07 2018-04-06 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023112027A Division JP2023118955A (ja) 2017-04-07 2023-07-07 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Publications (2)

Publication Number Publication Date
JP2022069474A true JP2022069474A (ja) 2022-05-11
JP7320092B2 JP7320092B2 (ja) 2023-08-02

Family

ID=58744811

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2019553098A Active JP7029468B2 (ja) 2017-04-07 2018-04-06 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
JP2022023355A Active JP7320092B2 (ja) 2017-04-07 2022-02-18 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
JP2023112027A Pending JP2023118955A (ja) 2017-04-07 2023-07-07 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2019553098A Active JP7029468B2 (ja) 2017-04-07 2018-04-06 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023112027A Pending JP2023118955A (ja) 2017-04-07 2023-07-07 ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム

Country Status (9)

Country Link
US (2) US11875340B2 (ja)
EP (2) EP3607516B1 (ja)
JP (3) JP7029468B2 (ja)
KR (1) KR102599183B1 (ja)
CN (1) CN110520881A (ja)
GB (1) GB201705621D0 (ja)
SG (2) SG11201908511PA (ja)
TW (1) TWI751320B (ja)
WO (1) WO2018185724A1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018211675A1 (en) * 2017-05-18 2018-11-22 Nec Corporation Bit decomposition secure computation apparatus, bit combining secure computation apparatus, method and program
SG11201910769WA (en) * 2017-06-20 2020-01-30 Nchain Holdings Ltd System and method of multi-round token distribution using a blockchain network
CN107465505B (zh) * 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
GB201720753D0 (en) * 2017-12-13 2018-01-24 Nchain Holdings Ltd Computer-implemented system and method
US11392940B2 (en) * 2018-01-17 2022-07-19 Tzero Ip, Llc Multi-approval system using M of N keys to perform an action at a customer device
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
US11481761B2 (en) * 2018-06-03 2022-10-25 VVOW Company Limited Peer-to-peer cryptocurrency and crypto asset trading platform
CN109377215B (zh) 2018-08-06 2020-04-21 阿里巴巴集团控股有限公司 区块链交易方法及装置、电子设备
GB201816936D0 (en) 2018-10-17 2018-11-28 Nchain Holdings Ltd Computer-implemented system and method
GB201817507D0 (en) * 2018-10-27 2018-12-12 Nchain Holdings Ltd Computer implemented system and method
JP6756041B2 (ja) * 2018-11-27 2020-09-16 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited 情報保護用のシステム及び方法
EP3545644B8 (en) 2018-11-27 2021-03-10 Advanced New Technologies Co., Ltd. System and method for information protection
US10700850B2 (en) 2018-11-27 2020-06-30 Alibaba Group Holding Limited System and method for information protection
CN109937557B (zh) 2018-11-27 2022-02-22 创新先进技术有限公司 用于信息保护的系统和方法
AU2018347196B2 (en) 2018-11-27 2020-05-14 Advanced New Technologies Co., Ltd. System and method for information protection
JP6841911B2 (ja) 2018-11-27 2021-03-10 アドバンスド ニュー テクノロジーズ カンパニー リミテッド 情報保護用のシステム及び方法
CN110032880B (zh) * 2018-12-13 2021-10-29 创新先进技术有限公司 基于区块链的录屏取证方法、系统和电子设备
CN109685657B (zh) * 2018-12-25 2023-07-21 众安信息技术服务有限公司 在区块链网络中处理交易的方法和节点设备以及存储介质
TWI694349B (zh) * 2019-01-22 2020-05-21 開曼群島商現代財富控股有限公司 防止記憶體傾印的門檻式簽章系統及其方法
TWI689194B (zh) * 2019-01-22 2020-03-21 開曼群島商現代財富控股有限公司 基於無分派者秘密共享的門檻式簽章系統及其方法
AU2019203863B2 (en) * 2019-03-18 2021-01-28 Advanced New Technologies Co., Ltd. Preventing misrepresentation of input data by participants in a secure multi-party computation
CN110011813A (zh) * 2019-04-12 2019-07-12 湘潭大学 一种基于区块链的数据隐蔽传输方法
CN110009499B (zh) * 2019-04-17 2021-05-11 北京八分量信息科技有限公司 一种基于区块链和隐藏地址的交易方法及系统
GB2584154A (en) * 2019-05-24 2020-11-25 Nchain Holdings Ltd Knowledge proof
US10937096B2 (en) 2019-07-15 2021-03-02 Advanced New Technologies Co., Ltd. Transaction processing in a service blockchain
CN110471984B (zh) 2019-07-15 2020-08-25 阿里巴巴集团控股有限公司 基于区块链的业务处理方法及装置、电子设备
CN110555783B (zh) * 2019-07-18 2023-08-29 中国南方电网有限责任公司 一种基于区块链的电力营销数据保护方法及系统
CN110675265B (zh) * 2019-09-29 2022-07-08 四川师范大学 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法
US20210135855A1 (en) * 2019-10-30 2021-05-06 EMC IP Holding Company LLC Threshold-Based Override of Data Privacy Using Distributed Ledgers and Key Shares
WO2021137391A1 (ko) * 2019-12-30 2021-07-08 재단법인 경주스마트미디어센터 비밀 공유를 이용한 블록 체인 생성 방법
CN111047448A (zh) * 2019-12-30 2020-04-21 国家计算机网络与信息安全管理中心 多通道数据融合的分析方法及装置
KR102234542B1 (ko) * 2019-12-30 2021-03-31 재단법인 경주스마트미디어센터 블록 체인 기반 영상 저작물 관리 방법
CN111340494B (zh) * 2020-05-15 2020-08-28 支付宝(杭州)信息技术有限公司 资产类型一致性证据生成、交易、交易验证方法及系统
CN111709740B (zh) * 2020-05-18 2023-06-06 杜晓楠 区块链系统中隐藏交易地址的方法、计算机可读存储介质和区块链系统
CN111598701B (zh) * 2020-05-22 2023-09-19 深圳市迅雷网络技术有限公司 一种信息监控方法、系统、设备及存储介质
CN112199382B (zh) * 2020-05-28 2023-12-15 支付宝(杭州)信息技术有限公司 在联盟链网络中创建节点组、基于节点组的交易方法
CN112070496B (zh) * 2020-08-06 2024-03-19 中国科学院信息工程研究所 一种基于动态标记的区块链隐蔽信息传输方法及系统
CN112260834B (zh) * 2020-10-12 2023-01-20 南京邮电大学 Ad Hoc网络中基于区块链的密钥生成和管理方法
CN112532613B (zh) * 2020-11-25 2024-02-02 山东师范大学 一种基于区块链地址的隐蔽通信方法
KR102531929B1 (ko) * 2020-12-15 2023-05-11 포항공과대학교 산학협력단 개인 정보 보안 강화된 블록체인 기반 의료 정보 제공 방법 및 시스템
CN112636929B (zh) * 2020-12-29 2023-01-17 北京百度网讯科技有限公司 群组业务实现方法、装置、设备和存储介质
CN112910870B (zh) * 2021-01-22 2021-11-09 西安电子科技大学 基于区块链的协同隐私计算数据通信方法
KR102546762B1 (ko) * 2021-04-14 2023-06-23 하이파이브랩 주식회사 블룸 필터를 이용한 블록체인에서의 다중 서명 지갑 시스템
CN113364576B (zh) * 2021-05-28 2022-07-22 湘潭大学 一种基于区块链的数据加密存证与共享方法
CN113067707B (zh) * 2021-06-02 2021-08-31 腾讯科技(深圳)有限公司 基于区块链的数据处理方法、装置、设备及可读存储介质
CN113364769B (zh) * 2021-06-03 2022-04-15 浙江大学 一种区块链网络中的隐蔽信道构造方法
TWI761243B (zh) * 2021-06-29 2022-04-11 中華電信股份有限公司 群組即時通訊的加密系統和加密方法
CN113660088A (zh) * 2021-07-12 2021-11-16 北京理工大学 一种基于动态地址的区块链交易筛选方法
CN113656828B (zh) * 2021-07-20 2023-04-07 北京理工大学 面向金融系统交易的基于格密码的区块链隐私保护方法
CN113726517A (zh) * 2021-08-10 2021-11-30 北京信安世纪科技股份有限公司 一种信息共享方法及装置
CN114095214B (zh) * 2021-10-29 2023-12-12 上海热线信息网络有限公司 一种基于区块链nft技术的加、解密方法及装置、设备及介质
CN114640462B (zh) * 2022-02-17 2024-05-17 北京邮电大学 区块链隐私保护方法、装置、电子设备及存储介质
CN114567433B (zh) * 2022-03-04 2024-03-26 浪潮云信息技术股份公司 一种基于Shamir秘密共享的多方AOS环签名方法及系统
CN115225337B (zh) * 2022-06-24 2023-11-28 北京天融信网络安全技术有限公司 一种基于区块链的隐蔽通信方法、终端、系统及存储介质
CN115021946B (zh) * 2022-08-09 2022-10-21 西南石油大学 一种基于环签名的去中心化混币方法
CN115378616B (zh) * 2022-10-21 2023-01-10 三未信安科技股份有限公司 一种基于Ed25519的门限签名方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166687A (ja) * 1999-09-29 2001-06-22 Hitachi Software Eng Co Ltd グループ署名生成方法及びシステム
US20100037055A1 (en) * 2008-08-11 2010-02-11 International Business Machines Corporation Method For Authenticated Communication In Dynamic Federated Environments
WO2017010455A1 (ja) * 2015-07-13 2017-01-19 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100283376B1 (ko) * 1998-11-23 2001-03-02 정선종 타원 곡선을 이용한 내용 은닉 서명 방법
GB2464125A (en) * 2008-10-04 2010-04-07 Ibm Topology discovery comprising partitioning network nodes into groups and using multiple discovery agents operating concurrently in each group.
US8713329B2 (en) * 2009-02-26 2014-04-29 Red Hat, Inc. Authenticated secret sharing
US9311487B2 (en) * 2011-03-15 2016-04-12 Panasonic Corporation Tampering monitoring system, management device, protection control module, and detection module
US20150120569A1 (en) 2013-10-31 2015-04-30 Bitgo, Inc. Virtual currency address security
KR101673073B1 (ko) 2015-02-25 2016-11-04 이진희 블록체인 구조를 사용하는 암호화화폐 거래방법
US10158480B1 (en) * 2015-03-16 2018-12-18 Winklevoss Ip, Llc Autonomous devices
US20160321435A1 (en) * 2015-05-01 2016-11-03 Monegraph, Inc. Managing digital content via block chain registers
US20160342977A1 (en) * 2015-05-20 2016-11-24 Vennd.io Pty Ltd Device, method and system for virtual asset transactions
JP6636058B2 (ja) 2015-07-02 2020-01-29 ナスダック, インコーポレイテッドNasdaq, Inc. 分散トランザクションデータベースにおける出所保証のシステムおよび方法
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
WO2017145010A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
GB201607476D0 (en) * 2016-04-29 2016-06-15 Eitc Holdings Ltd Operating system for blockchain IOT devices
GB2538022B (en) * 2016-08-20 2018-07-11 PQ Solutions Ltd Multiple secrets in quorum based data processing
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
GB2561256A (en) * 2017-04-05 2018-10-10 Stmicroelectronics Grenoble2 Sas Apparatus for use in a can system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001166687A (ja) * 1999-09-29 2001-06-22 Hitachi Software Eng Co Ltd グループ署名生成方法及びシステム
US20100037055A1 (en) * 2008-08-11 2010-02-11 International Business Machines Corporation Method For Authenticated Communication In Dynamic Federated Environments
WO2017010455A1 (ja) * 2015-07-13 2017-01-19 日本電信電話株式会社 契約合意方法、合意検証方法、契約合意システム、合意検証装置、契約合意装置、契約合意プログラム及び合意検証プログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
COURTOIS, N. T. AND MERCER, R.: "Stealth Address and Key Management Techniques in Blockchain Systems", PROCEEDINGS OF THE 3RD INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS SECURITY AND PRIVACY (ICISSP, JPN6021050751, 2017, pages 559 - 566, XP055479613, ISSN: 0005064754, DOI: 10.5220/0006270005590566 *
NARAYANAN, A., 仮想通貨の教科書, vol. 第1版, JPN6021050752, 9 December 2016 (2016-12-09), pages 255 - 256, ISSN: 0005064756 *
ビットバンク株式会社ほか, ブロックチェーンの衝撃, vol. 第1版, JPN6021050749, 13 June 2016 (2016-06-13), JP, pages 111 - 114, ISSN: 0005064755 *

Also Published As

Publication number Publication date
TWI751320B (zh) 2022-01-01
JP7029468B2 (ja) 2022-03-03
US20210090072A1 (en) 2021-03-25
EP3607516A1 (en) 2020-02-12
SG10202110580RA (en) 2021-11-29
EP3607516B1 (en) 2024-01-03
JP2023118955A (ja) 2023-08-25
SG11201908511PA (en) 2019-10-30
EP4300399A3 (en) 2024-01-17
WO2018185724A1 (en) 2018-10-11
GB201705621D0 (en) 2017-05-24
TW201840159A (zh) 2018-11-01
CN110520881A (zh) 2019-11-29
JP2020516164A (ja) 2020-05-28
EP4300399A2 (en) 2024-01-03
KR20190138645A (ko) 2019-12-13
US11875340B2 (en) 2024-01-16
JP7320092B2 (ja) 2023-08-02
KR102599183B1 (ko) 2023-11-08
US20240152913A1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
JP7029468B2 (ja) ブロックチェーンを使用した安全なデータレコード配信のための方法及びシステム
US11799637B2 (en) Methods and systems for blockchain-implemented event-lock encryption
US11477032B2 (en) System and method for decentralized-identifier creation
US11429956B2 (en) Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords
US11212081B2 (en) Method for signing a new block in a decentralized blockchain consensus network
JP6756041B2 (ja) 情報保護用のシステム及び方法
JP2020502856A (ja) 情報保護のためのシステム及び方法
JP7231630B2 (ja) ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法
WO2020016700A1 (en) Computer-implemented systems and methods for an accumulator-based protocol for the distribution of tasks across a computer network
Veeraragavan et al. Decansec: A decentralized architecture for secure statistical computations on distributed health registry data
Goswami et al. Stub Signature-Based Efficient Public Data Auditing System using Dynamic Procedures in Cloud Computing
Sun et al. An Ownership Verification Mechanism Against Encrypted Forwarding Attacks in Data-Driven Social Computing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220317

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: 20230523

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230721

R150 Certificate of patent or registration of utility model

Ref document number: 7320092

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150