JP2021524186A - ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法 - Google Patents

ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法 Download PDF

Info

Publication number
JP2021524186A
JP2021524186A JP2020562187A JP2020562187A JP2021524186A JP 2021524186 A JP2021524186 A JP 2021524186A JP 2020562187 A JP2020562187 A JP 2020562187A JP 2020562187 A JP2020562187 A JP 2020562187A JP 2021524186 A JP2021524186 A JP 2021524186A
Authority
JP
Japan
Prior art keywords
user
secret
public key
secret value
node
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
JP2020562187A
Other languages
English (en)
Other versions
JP7372938B2 (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.)
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
Priority claimed from GBGB1807807.1A external-priority patent/GB201807807D0/en
Priority claimed from GBGB1807811.3A external-priority patent/GB201807811D0/en
Priority claimed from GBGB1807813.9A external-priority patent/GB201807813D0/en
Priority claimed from GBGB1807816.2A external-priority patent/GB201807816D0/en
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2021524186A publication Critical patent/JP2021524186A/ja
Priority to JP2023181196A priority Critical patent/JP2023179761A/ja
Application granted granted Critical
Publication of JP7372938B2 publication Critical patent/JP7372938B2/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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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
    • 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/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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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)
    • 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/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/321Cryptographic 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 a third party or a trusted authority
    • H04L9/3213Cryptographic 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 a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • 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

Abstract

コンピュータ実装されるセキュリティ方法が提供される。本方法は、ビットコイン・キャッシュ・ブロックチェーンのような一つまたは複数のブロックチェーンに対して実行されてもよい。本方法は:第1のユーザーにとってアクセス可能な第1の秘密値(S2)を第1の派生公開鍵(P2)に変換し、第1の派生公開鍵を第2のユーザーに送信する段階と;第2のユーザーにとってアクセス可能な第2の秘密値(S1)を第2の派生公開鍵(P1)に変換し、第2の派生公開鍵を第1のユーザーに送信する段階と;少なくとも部分的には第1の派生公開鍵に基づいて第3の派生公開鍵(P_AE)を計算する段階と;少なくとも部分的には第2の派生公開鍵に基づいて第4の派生公開鍵(P_BE)を計算する前記と;第1の秘密値および第2の秘密値のそれぞれに一方向性関数を適用して、それぞれの第1のベールに包まれた秘密値および第2のベールに包まれた秘密値(H(S2),H(S1))を生成する段階と;第1のユーザーから第2のユーザーに第1のベールに包まれた秘密値(H(A0))を、第2のユーザーから第1のユーザーに第2のベールに包まれた秘密値(H(B0))を通信する段階と;それぞれ前記第1のベールに包まれた秘密値および前記第2のベールに包まれた秘密値を含む第1のブロックチェーン・トランザクションおよび第2のブロックチェーン・トランザクション(tx1,tx2)を構築する段階とを含む。それらのトランザクションは、第1の秘密値および第2の秘密値の両方がそれぞれのブロックチェーン・トランザクションに提供されると、それぞれの第1または第2の資源の制御を移転するためにロック解除可能となるように構成される。第1のブロックチェーン・トランザクションのロック解除によって第1の秘密値が第2のユーザーに明かされ、第2のブロックチェーン・トランザクションのロック解除によって第2の秘密値が第1のユーザーに明かされ、前記第1の秘密値を前記第2のユーザーに明かすことによって、前記第2のユーザーは前記第3の派生公開鍵に対応する第2の秘密鍵を計算できるようになり、前記第2の秘密値を前記第1のユーザーに明かすことによって、前記第1のユーザーは前記第4の派生公開鍵に対応する第1の秘密鍵を計算できるようになる。

Description

本発明は、概括的には、コンピュータで実装されるセキュリティ方法および暗号技法に関する。より詳細には、本発明は、資源の制御を原子的に交換するための方法に関する。本発明は、限定されるものではないが、一つまたは複数のブロックチェーンおよび関連するプロトコル上での使用に特に適している。
本稿では、「ブロックチェーン」という用語を、電子的、コンピュータベース、分散型のあらゆる形態の台帳を含むものとして使う。これらは、コンセンサスに基づくブロックチェーンおよびトランザクションチェーン技術、許可式および非許可式の台帳、共有される台帳、およびそれらの変形を含む。ブロックチェーン技術の最も広く知られている応用はビットコイン台帳であるが、他のブロックチェーン実装が提案され、開発されている。本明細書では、便宜上、説明のためにビットコインに言及することがあるが、本発明は、ビットコイン・ブロックチェーンと一緒に使用することに限定されず、代替的なブロックチェーン実装およびプロトコルが、本発明の範囲内にはいることに注意しておくべきである。用語「ユーザー」は、本明細書中では、人間またはプロセッサ・ベースの資源を指しうる。また、用語「ビットコイン」は、本明細書中では、ビットコイン・プロトコル/プラットフォームから派生するまたはそれに基づくプロトコル/プラットフォームのすべてのバージョンおよび変形を含むものとして使用される。
ブロックチェーンは、ピアツーピアの電子台帳であり、これは、ブロックから構成される、コンピュータベースの脱中心化された分散型のシステムとして実装され、ブロックはトランザクションから構成される。各トランザクションは、ブロックチェーン・システムにおける参加者間のデジタル資産または資源の制御〔コントロール〕の移転をエンコードするデータ構造であり、少なくとも1つの入力および少なくとも1つの出力を含む。各ブロックは、前のブロックのハッシュを含み、それにより諸ブロックがチェーン化されて、ブロックチェーンの端緒以来、そのブロックチェーンに書き込まれたすべてのトランザクションの永続的で変更不可能なレコードを作成する。トランザクションは、その入力および出力に埋め込まれた、スクリプトとして知られる小さなプログラムを含んでおり、それが、トランザクションの出力に誰がどのようにアクセスできるかを指定する。ビットコイン・プラットフォームでは、これらのスクリプトはスタック・ベースのスクリプト言語を使用して書かれる。
トランザクションがブロックチェーンに書き込まれるためには、トランザクションは「有効確認」される必要がある。ネットワーク・ノード(採鉱者)が、各トランザクションが有効であることを保証するために作業を実行し、無効なトランザクションはネットワークから拒否される。ノードにインストールされているソフトウェア・クライアントが、そのロック・スクリプトおよびアンロック・スクリプトを実行することによって、未使用トランザクション(unspent transaction、UTXO)に対してこの有効確認(validation)作業を実行する。ロックおよびアンロック・スクリプトの実行が真と評価される場合、そのトランザクションは有効であり、そのトランザクションはブロックチェーンに書き込まれる。このように、トランザクションがブロックチェーンに書き込まれるためには、トランザクションは、i)そのトランザクションを受け取る最初のノードによって有効確認されなければならない。もし、トランザクションが有効確認されれば、ノードはそれをネットワーク内の他のノードに中継する。トランザクションは、ii)採鉱者によって構築された新しいブロックに追加され、iii)採掘されなければならない。すなわち、過去のトランザクションの公開台帳に追加される。
ブロックチェーン技術は、暗号通貨実装の使用について最も広く知られているが、デジタル起業家は、ビットコインのベースとなる暗号セキュリティ・システムと、ブロックチェーンに格納できるデータの両方を使用して、新しいシステムを実装することを検討し始めている。ブロックチェーンが、暗号通貨の領域に限定されない自動化されたタスクおよびプロセスに使用できれば、非常に有利であろう。そのような解決策は、応用がより多様でありながら、ブロックチェーンの恩恵(たとえば、事象の恒久的な、改竄不能な記録、分散処理など)を利用することができるであろう。
原子的スワップ〔アトミック・スワップ〕の概念は、以前から暗号通貨コミュニティで議論されてきた。当事者間の交換は、すべての参加者が所望の資源(たとえば、暗号通貨のトークンまたはコイン)を受け取るか、または誰も受け取らないという意味で「原子的」である。執筆時点で、ウィキペディアは、原子的スワップを「信頼できる第三者を必要とせずに、ある暗号通貨を別の暗号通貨と交換することを可能にする、暗号通貨における提案された機能」と説明している。伝統的な暗号通貨では、当事者が対価として通貨を受け取ることなく通貨を送ってしまうことを防止するためには、暗号通貨のスワップを実行するために暗号通貨交換所のような信頼できる第三者が必要になる。
原子的スワップ・システムは、ハッシュ時間ロック・スマート・コントラクトを使用して、当事者はスワップされる通貨を指定された時間内に引き渡さなければならず、さもなければトランザクションはキャンセルされる。これは、スワップが行なわれるか、または通貨が全くスワップされないかのいずれかである」という意味で「原子性」を保存する。
https://en.wikipedia.org/wiki/Atomic_swap
しかしながら、提案された原子的スワップ解決策は、ただ1つの秘密の使用を含み、スワップは非同期的に実行される。これは、あるトランザクションが消費された後になってはじめて、他のトランザクションが消費できるという欠点を生み出す。
このように、ブロックチェーン技術によって提供される信頼不要性および不変性を有する資源または資産を原子的に交換し、ブロックチェーン実装ネットワークを通じて実施される移転に関するセキュリティを向上させる、暗号学的に実施される資源交換方法を提供することが望ましい。
そのような改善された解決策が今、考案された。
本発明の第一の側面によれば、コンピュータ実装された交換、取り換え、または移転方法が提供される。追加的または代替的な定義によれば、本第一の側面は、資源が送信者から受信者にネットワークを横断していつ伝送されてもよく、またはいつ伝送されなくてもよいかを制御するセキュリティ方法を提供する。追加的または代替的に、本発明は、ブロックチェーンを介した値の原子的交換または原子的伝送を実行するように構成された方法および対応するシステムを提供する。
本方法は、以下のステップを含んでいてもよい:
(i)第1のユーザーにとってアクセス可能な第1の秘密値を第1の派生公開鍵に変換し、第1の派生公開鍵を第2のユーザーに送信すること;
(ii)第2のユーザーにとってアクセス可能な第2の秘密値を第2の派生公開鍵に変換し、第2の派生公開鍵を第1のユーザーに送信すること;
(iii)少なくとも部分的には第1の派生公開鍵に基づいて第3の派生公開鍵を計算すること;
(iv)少なくとも部分的には第2の派生公開鍵に基づいて第4の派生公開鍵を計算すること;
(v)第1の秘密値および第2の秘密値のそれぞれに一方向性関数を適用して、それぞれの第1のベールに包まれた秘密値および第2のベールに包まれた秘密値を生成すること;
(vi)第1のユーザーから第2のユーザーに第1のベールに包まれた秘密値を、第2のユーザーから第1のユーザーに第2のベールに包まれた秘密値を通信すること;および
(vii)それぞれ前記第1のベールに包まれた秘密値および前記第2のベールに包まれた秘密値を含む第1のブロックチェーン・トランザクションおよび第2のブロックチェーン・トランザクションを構築することであって、それらのトランザクションは、第1の秘密値および第2の秘密値の両方がそれぞれのトランザクションに提供されると、それぞれの第1または第2の資源の制御を移転するためにロック解除可能(unlockable)であるように構成されること、
ここで、前記第1のブロックチェーン・トランザクションのロック解除によって前記第1の秘密値が前記第2のユーザーに明かされ、前記第2のブロックチェーン・トランザクションのロック解除によって前記第2の秘密値が前記第1のユーザーに明かされ、
第1の秘密値を第2のユーザーに明かすことによって、第2のユーザーは第3の派生公開鍵に対応する第2の秘密鍵を計算できるようになり、第2の秘密値を第1のユーザーに明かすことによって、第1のユーザーは第4の派生公開鍵に対応する第1の秘密鍵を計算できるようになる。
本方法は、少なくとも2つのトランザクション(Tx1およびTx2)を含み、各トランザクションは、それぞれの出力に関連する複数のパズルまたはスクリプトへの要求される基準が提供される際にのみロック解除されることができる少なくとも1つの未使用出力(unspent output、UTXO)を有する、ことによって、原子的な交換機構を提供しうる。言い換えると、第1のトランザクションにおける未使用出力についてのロックおよびアンロック基準は、他方のまたはある別のトランザクションにおける未使用出力についてのロックの基準と同じであってもよく、それによってミラーされてもよい。
第1のトランザクションにおける未使用出力への要求されるロック解除基準の提供は、他方のまたはある別のトランザクションにおける未使用出力をロック解除するために要求される一つまたは複数の秘密値を明かしてもよい、または、該秘密値をアクセス可能にしてもよい。
秘密値を含むロック解除スクリプトは、第1のトランザクションまたは第2のトランザクションにおける出力を消費するその後のトランザクションの入力において提供されてもよい。ひとたび後続トランザクションのロック解除スクリプトが、第1または第2のトランザクションのロック・スクリプトと一緒に実行されると、後続トランザクションは、有効確認され、その後、ブロックチェーン上で公表されうる。これにより、後続トランザクションの入力において提供される一つまたは複数の秘密値は、ブロックチェーンからアクセス可能または読み取り可能となる。
この方法は、秘密鍵が信頼のない環境で原子的に交換されることを確実にする安全な仕方を提供し、この方法のどのユーザーも、他のユーザーよりもこの方法に対してより大きな制御をもつことはない。
ベールに包まれた秘密値から秘密値を決定するのは現実的に可能ではないが、秘密値からベールに包まれた秘密値を決定するのは現実的に可能であるという仕方で、秘密値は、対応するベールに包まれた秘密値に関係する。この関係の例として、ハッシュやモジュロ算術のような一方向性関数を秘密値に適用することで、ベールに包まれた秘密値が得られる。このように、1つの定義によれば、ベールに包まれた(秘密の)値は、もとの(秘密の)値から導出できる、または導出されたが、もとの(秘密の)値を決定するために使用することはできない値でありうる。もとの値を提供するためにリバース・エンジニアリングすることは現実的に可能ではないかもしれない。
語句「トランザクションのロック解除」は、トランザクションにおいて提供される少なくとも1つの未使用出力(UTXO)をロック解除するまたは消費することの意味を含みうる。これは、未使用出力に関連するロック・スクリプトを満たすために、要求されるデータ/ロック解除スクリプトを提供することによって達成されうる。
第1のトランザクションおよび第2のトランザクションの少なくとも1つは、それぞれの第1の秘密鍵および第2の秘密鍵の適用または提供の際にのみ、償還可能(支出可能)であるように構成されてもよい。これは、秘密鍵によって示される意図された受信者のみがトランザクションをロック解除できるという利点を提供する。
本方法は:(a)少なくとも部分的には前記第1のユーザーの第1の公開鍵に基づく第1の派生公開鍵および(b)少なくとも部分的には前記第2のユーザーの第2の公開鍵に基づく第2の派生公開鍵のうちの少なくとも一方を計算するステップをさらに含んでいてもよい。前記第1の派生公開鍵は、前記第1の秘密鍵を含む暗号鍵ペアの一部であり、前記第2の派生公開鍵は、前記第2の秘密鍵を含む暗号鍵ペアの一部である。
これにより、資産または資源を、公知なアドレスではなく派生したアドレスに格納することができ、本方法のユーザーに追加的なプライバシーおよびセキュリティを提供する。「資産」および「資源」という用語は、本明細書において交換可能に使用されうることに注意しておくべきである。「資産」という用語は、財務上の文脈または用途を有するもののみとして解釈されるべきではない。資産は、たとえば、ブロックチェーン上またはブロックチェーン外の何らかの他のエンティティを表わすトークンでありうる。
(a)少なくとも部分的には前記第1のユーザーの第1の公開鍵に基づく第1の派生公開鍵および(b)少なくとも部分的には前記第2のユーザーの第2の公開鍵に基づく第2の派生公開鍵のうちの少なくとも一方を計算するステップはさらに、第1および第2のベールに包まれた秘密値の組み合わせを含んでいてもよい。
これは、トランザクションと実行される原子的スワップとの間の、記録された、消去できないリンクを提供するという利点を提供する。
第1および第2のベールに包まれた秘密値の組み合わせは、第1のベールに包まれた秘密値と第2のベールに包まれた秘密値との連結、および少なくとも1つのベールに包まれた秘密値の、ランダムまたは擬似ランダム値との連結の少なくとも一方を含んでいてもよい。
これは、追加的な決定論的な難読化を介して、トランザクションのセキュリティをさらに高めるという利点を提供する。
本方法は、さらに、第1のトランザクションが償還されない第1の時間期間の経過に応答して、第1の資源の制御を第1のユーザーに返すように構成された第3のブロックチェーン・トランザクション;および第2のトランザクションが償還されない第2の時間期間の経過に応答して、第2の資源の制御を第2のユーザーに返すように構成された第4のブロックチェーン・トランザクション、のうちの少なくとも一方を構築するステップを含んでいてもよい。
これにより、別のユーザーが交換に完全には参加しない場合に、本方法の少なくとも一のユーザーが、それぞれの資源の制御を返してもらうことが可能となり、それにより、本方法の汎用性が増す。
第1のベールに包まれた秘密値および第2のベールに包まれた秘密値の少なくとも一方は、第1の秘密値および第2の秘密値のうち少なくとも一方と、第1のユーザーおよび第2のユーザーの両方によってアクセス可能な共有秘密値との組み合わせを含んでいてもよい。
これは、本方法によって提供されるプライバシーおよびセキュリティを増すという利点を提供する。
共有秘密値は、ステップ(i)の前に、共通の秘密として確立されてもよい。
これは、本方法のセキュリティをさらに高めるという利点を提供する。
本方法は、以下のステップをさらに含んでいてもよい:
(viii)第1の秘密値および第2の秘密値のうち少なくとも一方から始まるベールに包まれた秘密値の少なくとも1つのシーケンスを生成すること;
(ix)第1の秘密値および第2の秘密値のうち少なくとも一方を使用して、先行する請求項のいずれかの方法を実行すること;
(x)少なくとも1つのブロックチェーン・トランザクションを償還して、第1の秘密値および第2の秘密値のうち少なくとも一方を明かし、それにより、前記シーケンスの少なくとも1つのベールに包まれた秘密値を明かすこと。
これは、秘密を格納するために必要とされるストレージ・スペースが少なくなるので、本方法の単純な繰り返しよりも高い効率で、一連の安全な原子的交換を実行することを可能にする。さらに、通信のラウンド数が少なくなる。これにより時間が節約され、セキュリティが改善される。
本方法の少なくともステップ(vii)を実行するステップは、本方法のステップ(x)で開示された少なくとも1つのベールに包まれた秘密値を使用してもよい。
これは、本方法の効率をさらに向上させるという利点を提供する。
本発明のこれらおよび他の側面は、本明細書に記載される実施形態から明白となり、それを参照して解明される。
ここで、添付の図面を参照して、本発明の実施形態を、限定的意味ではなく単に例として、説明する。
本発明を具現する方法において取られるステップを示すフローチャートを示す。 機密性の高い情報を安全に伝送するために本発明に従って使用されうる、第1のノードおよび第2のノードについての共通の秘密を決定するための例示的なシステムの概略図である。 機密性の高い情報を安全に伝送するために本発明に従って使用されうる、共通の秘密を決定するためのコンピュータ実装される方法のフローチャートである。 第1および第2のノードを登録するためのコンピュータ実装される方法のフローチャートである。 機密性の高い情報を安全に伝送するために本発明に従って使用されうる、共通の秘密を決定するためのコンピュータ実装される方法の別のフローチャートである。
ブロックチェーン上の原子的トランザクション交換は、第1のユーザー、アリスから第2のユーザー、ボブへの1つのトランザクションとボブからアリスへの別のトランザクションとの2つのトランザクションについて、両方のトランザクションが完了するか、さもなければどちらも完了しないことを意味する。
図1を参照するに、本発明は、アリスおよびボブがそれぞれ、それぞれA0およびB0と記される秘密を生成(30)できるようにすることを含む。もしアリスとボブが信頼できるなら、本ブロックチェーン・プロトコルの一部ではない通信チャネルを使って、これらの秘密を含む情報を交換できる。二人は、小見出し「共通の秘密の決定」の下に後述される安全な秘密交換を使用してもよい。
一方の当事者が信頼できず、自分の秘密を共有しないとする。本発明により、この当事者が自分の資金を消費する唯一の方法は、ブロックチェーン上で自分の秘密を明かし、それにより秘密を公知にし、他のユーザーが利用できるようにすることである。これは、交換において使用されるトランザクションの構成によるものである。したがって、本方法は、いずれの当事者にも、相手方当事者を信頼することを要求しない。
本発明のある実施形態では、2つの秘密がある:1つはアリスによって生成され、アリスにとってアクセス可能であり、もう1つはボブによって生成され、ボブにとってアクセス可能である。これらはブロックチェーン外のチャネルを通じて通信される。
単一の原子的スワップ
PA0が対応する秘密鍵SA0をもつアリスの楕円曲線デジタル署名アルゴリズム(elliptic curve digital signature algorithm、ECDSA)公開鍵を示し、PB0が秘密鍵SB0をもつボブの公開鍵を示すとする。
1.30において、アリスは自分だけが知っている秘密
Figure 2021524186
を選び、ボブは自分だけが知っている秘密
Figure 2021524186
を選ぶ。(これらの秘密は、アリスおよびボブの公開鍵または秘密鍵とは関係していない。)ここで、nは楕円曲線生成点Gの位数である。秘密は、SHA256(mod n)アルゴリズムを通された一般的なデータ構造の形であってもよい。
2.アリスとボブが、両者間の通信チャネルを開く。これは、下記の小見出し「共通の秘密の決定」の下で後述される方法を使って生成される安全な通信チャネルであってもよい。次いで二人は、それぞれの秘密をハッシュし(ステップ34)、公開鍵とそれぞれの秘密のハッシュとを共有する(ステップ36)。A0およびB0のハッシュ値はH(A0)およびH(B0)と記され、ここで、SHA-256のような標準的なハッシュ関数が使用されてもよい。値H(A0)およびH(B0)は、公にも共有されうる。アリスとボブは、二人とも、
PA0、PB0、H(A0)、H(B0)
を知っている。
3.38で、アリスとボブは決定論的鍵
H(A0)|H(B0)
(ここで、"|"はOP_CAT演算を示す)または代替的には
H(H(A0)|H(B0))
のような派生ハッシュを計算する。
4.40で、アリスとボブはここで派生公開鍵
Figure 2021524186
を生成する。これらは次の対応する秘密鍵をもつ。
Figure 2021524186
アリスとボブは派生公開鍵PA1、PB1を使って原子的スワップを実行する。原理的には、二人はもとの公開鍵PA0、PB0を使うことができるのだが、派生公開鍵は、原子的スワップに結びつけられており、アリスとボブが簡単に計算できるが、(H(A0)およびH(B0)が公開されない限り)他の誰にとっても簡単に計算できないという利点がある。
H(A0)|H(B0)|Z
のように決定論的な疑似ランダムに見える値も組み込まれれば、追加的なプライバシーが達成されうる。ここで、Zは、共有された開始値に基づいて、事前に合意されたゼータ関数のように、両方の当事者が計算できるものである。
5.42で、アリスとボブは次のロック・スクリプトを構築する。ここではスクリプトは概略的に記述され、ビットコイン・スクリプトにおける例示的な実装は後に示す。
Figure 2021524186
プロセスCheckSigH(PA1)は、公開鍵/秘密鍵ペアPA1、SA1のための標準的なECDSA署名有効確認演算である。その代わりに、公開鍵/秘密鍵ペアPA0、SA0のための標準的なECDSA署名有効確認であるCheckSigH(PA0)が使われてもよい。プロセスSolveH(A0)は、解A0をもつハッシュ・パズルである。つまり、ロック解除スクリプトは、ハッシュされたときにロック・スクリプトにおいて与えられているH(A0)と等しい有効な値A0を含まなければならない。ロック解除スクリプトは、次のように与えられる。
Figure 2021524186
ここでわかるように、もしアリスかボブのどちらかが自分の資金をロック解除すれば、必然的に値A0およびB0をブロックチェーン上で曝露することになる。
6.42では、アリスはロック・スクリプトLockingScript(B)を用いてPB1へのトランザクションtx1を生成し、ボブはロック・スクリプトLockingScript(A)を用いてPA1へのトランザクションtx2を作成する。この段階では、アリスもボブもPA1およびPB1における資金を使うことはできない。なぜなら、どちらの当事者もA0およびB0の両方は知らないからである。これらのトランザクションはネットワークに送信され、その後ブロックチェーン上に現われる。
7.46Cでは、アリスはボブに秘密A0を送り、ボブはアリスに秘密B0を送る。これは、上記で確立されたアリスとボブ間の通信チャネルを使って実行される。アリスとボブは、これらのハッシュ値がH(A0)およびH(B0)に等しいことを確認することによって、これらが正しい値であることを検査しうる。
8.アリスとボブがどちらも正直であり、正しい秘密を共有しているとすると、両方の当事者は両方の秘密を知り(ステップ48C)、どちらもPA1およびPB1においてロックされた資金を消費でき(ステップ50C)、原子的スワップは完了する。
9.たとえば、ボブが自分の正しい秘密B0をアリスに送らなかったとしよう。つまり、アリスだけが自分の秘密を送り、ステップ46Cではなく46Bが生起する。ロック・スクリプトLockingScript(B)の形のため、ボブがPB1でロックされた資金を使うためには、ボブはロック解除スクリプトにおいて自分の秘密B0を公開しなければならない。結果として、ボブが資金を使うとすぐに、アリスはボブの秘密を知り(ステップ48B)、よってPA1における自分の資金を使うことができるようになる(ステップ50B)。これにより、アリスとボブのどちらも自分の資金を使うことができるか、どちらも資金を使うことができないかのどちらかであることが保証される。
下記は、ビットコイン・ブロックチェーンと互換性がある、上記のステップ4におけるアリスについての例示的なロックおよびアンロック・スクリプトである。
アリスについてのロック・スクリプト:
OP_DUP OP_HASH160<Hash160 PA1>OP_EQUALVERIFY OP_CHECKSIG OP_HASH256<Hash256 A0>OP_EQUALVERIFY OP_HASH256<Hash256 B0>OP_EQUALVERIFY
アリスについてのロック解除スクリプト:
<B0> <A0> <SigPA1> <PA1>
公開鍵ハッシュへの支払い(Pay To Public Key Hash、P2PKH)アドレスおよびスクリプト・ハッシュへの支払い(Pay To Script Hash、P2SH)アドレスへのトランザクションはどちらも、上記のタイプのロック・スクリプトおよびロック解除スクリプトを許容することを注意しておく。P2SHアドレスについては、ロック・スクリプトは、同じ情報を含む償還スクリプトのハッシュとして提示される。
上記の方法は、ビットコイン・ブロックチェーンで使用されるECSDAに類似した公開/秘密鍵暗号化システムを使用するブロックチェーンを参照して記述されている。しかしながら、本方法は、ロック解除スクリプトにおいて一般的な形の秘密(これは任意のデータ構造でありうる)が開示されることを要求する、一般的な暗号化機構に一般化できる。必要とされるのは、ロック・スクリプト、トランザクション、およびブロックチェーンであり、これは安全で検証可能な通信チャネルである。
時間ロック還付トランザクション
もしボブがアリスに自分の正しい秘密B0を与えることを拒否し、アドレスPB1に格納されている資金をロック解除することもしない場合、ボブの秘密はアリスに明かされず、アリスはPA1に格納されている資金をロック解除することはできない。さらに、アリスはボブに送った、PB1に格納されている資金を回収することもできない。
この問題は、資金が使われていない場合は、一定時間後に資金を送り返すように構成された、ボブからアリスへの新しいトランザクションを導入することで解決できる。これは、LockingScript(A)およびLockingScript(B)を若干修正することをも必要とし、この修正は後述する。
この新しいトランザクションは、ある事前に指定された時間が経過した後にのみ、トランザクションがブロックによって受け入れられることを許容する、ロック・スクリプトにおける時間依存動作を利用する。たとえば、ビットコイン・スクリプトでは、これは、指定された値以来の相対的な時間についてはチェック・シーケンス検証(Check Sequence Verify、CSV) 動作、または固定した時間値についてはチェック・ロック時間検証(Check Lock Time Verify、CLTV)動作であってもよい。
上記のステップ4のロック・スクリプトは、アリスとボブの両方が署名することに同意する場合に消費するオプションを含むように、次のように修正される:
Figure 2021524186
44では、上記の方法のステップ4の後、ステップ5の前に、2つの新規トランザクションが生成される。アリスは、ボブの資金全部を返す、PA1からボブへのトランザクションtx4を生成する。このトランザクションは、一定の時間(たとえば、24時間)後にのみブロック内で受け入れられるよう時間ロック〔タイムロック〕される。ボブはPB1からアリスへの同様のトランザクションtx3を生成する。トランザクションtx3およびtx4はそれぞれのロック・スクリプト
Figure 2021524186
をもつ。
アリスはtx4に署名し、それをボブに送信し、ボブは署名してネットワークに送信する。同様に、ボブtx3は署名し、それをアリスに送信し、アリスは署名してネットワークに送る。
この段階で、いずれの当事者も従わない場合は、プロセスは中止され、資金は移転されない。両方の当事者が従っている場合は、上記の方法のステップ5が実行される(42)。ここで、どちらの当事者も原子的スワップ(46A)において交換された資金を使わなければ、資金は24時間後にもとの所有者に返還される(48A、50A)。
ここで、24時間というCSVの相対時間が例として使用されたが、将来の任意の相対時間、または将来の任意の特定の時間を(たとえば、CLTV演算子を使用して)使用することが可能であろう。
ビットコイン・ブロックチェーンを使用して24時間後にアリスに資金を返却するロック・スクリプトの例は次のとおり。
"24h" OP_CHECKSEQUENCEVERIFY OP_DROP OP_DUP OP_HASH160<Hash160 PA1>OP_EQUALVERIFY OP_CHECKSIG
対応するアンロック・スクリプトは、<Sig PA1> <PA1>によって与えられる。
秘密値のマスキング
さらなる代替的な実施形態は、値A0およびB0がアリスおよびボブのみに知られ、決して公開されないように、マスキング・ステップ32を含む。
最初、アリスとボブの両名は、二人だけが知っている共有される秘密SCについて合意する。これは、後述する「共通の秘密の決定」という小見出しで述べられる方法を用いた、秘密の安全な交換を通じて達成できる。
次いで、アリスとボブは新しい秘密を定義する。
A'0=A0+SC
B'0=B0+SC
次いで、二人は上記で概説した方法のように進めるが、もとの秘密ではなく、マスクされた秘密A'0、B'0を用いる。原子的スワップの間は、マスクされた秘密だけがブロックチェーン上で一般に公開される。
これは、秘密値A0およびB0が、のちに記載されるさらなる実施形態のような他のコンテキストにおいても使用される場合に有用である。
さらなる代替的な実施形態は、アリスとボブが一連のn回の原子的スワップを行なうことができるようにする。各当事者はランダムな秘密をもって開始し、アクセス・チェーンと呼ばれるこの秘密のハッシュ値のシーケンスを作成する。原子的スワップが実行されると、次の原子的スワップで使用される次の秘密のハッシュ値が開示される。このプロセスは、最大n回まで逐次反復可能に繰り返される。
この方法では、アリスとボブは一度に1つの秘密を格納するだけでよいので、秘密のための要求される格納スペースがより少なくなるという点で、個別のスワップの系列に比べ、効率が節約される。前の秘密をハッシュすることから次の秘密を計算することができる。秘密のハッシュを毎回通信する必要がないため、相互間の通信ラウンドが少なくてすむ。これは時間を節約し、セキュリティを改善する。
本方法は、以下の通りである:
アリスとボブが、反復交換の数nについて合意する。二人は、それぞれランダムな値AnおよびBnを生成する。アリスは次のアクセス・チェーンを計算する:
Figure 2021524186
ボブは、Bnから開始して等価なチェーンを計算する。これらのチェーンは、一連のスワップにおいて使用される秘密値に対応する。可能なスワップの数は、シーケンス{0,1,…,n}内にある。すなわち、両当事者は、新しいチェーンを再初期化することが必要になる前に、0ないしn回のトランザクションのスワップのためにこれらの値を使用することができる。
これらのスワップの実施方法を下記で概説する。ボブが等価なプロセスをたどることを理解しておくべきである。
1.アリスは、自分のチェーンA0,A1,…,An、ボブの公開鍵PB0、ボブの秘密のハッシュH(B0)から始める。これまでと同様に、H(B0)はボブによって公に共有されてもよい。
2.アリスが派生公開鍵
Figure 2021524186
を、次いでロック・スクリプト
Figure 2021524186
を計算する。
先の実施形態で述べた時間依存の返金は、論理に実質的な変更を加えることなく、上記のロック・スクリプトに含めることができることを注意しておく。
3.アリスとボブが最初のスワップを実行する。前述したように、これはアリスとボブの間のA0とB0の交換に関わる。これは、スワップ後にアリスがH(B1)=B0を知っていることを意味する。
4.アリスは、この方法のステップ2を繰り返すが、チェーン内のボブの第2の秘密のハッシュH(B1)を用いる。明示的には、アリスは派生公開鍵
Figure 2021524186
およびロック・スクリプト
Figure 2021524186
を計算する。
5.ひとたび第2のスワップが完了すると、アリスはH(B2)=B1を知っている。アリスは、ボブの第3の秘密のハッシュH(B2)を使って再びステップ2を繰り返す。
6.このプロセスは、スワップが完了しないか、またはn回のスワップの最大数に達するまで逐次反復可能に繰り返される。
先の実施形態で述べたように、疑似ランダム値Ziを演算H(Ai)|H(Bi)|Ziに導入することによって、さらなるセキュリティを組み込むことができる。この場合、関数は、たとえば、ハッシュ関数Zi-1=H(Zi)を使用することによって、逐次反復毎に変換すべきである。
上記で概説した原子的スワップは、ビットコイン・ブロックチェーンに制約されない。上述の原子的スワップ方法における重要な構成要素は、一方の当事者がステップ7で資金を使うとき、ブロックチェーン上で自分の秘密を明かすということである。このことは、上記の方法は、ステップ4で与えられた形のロック・スクリプトおよびロック解除スクリプトを許容する任意のブロックチェーンに対して、原子的スワップを実行するために用いられうることを意味する。
さらに、原子的スワップ方法は、暗号通貨を交換するために使用されうる。たとえば、アリスがビットコイン(Bitcoin)・ブロックチェーン上でボブにビットコインを送信し、ボブがイーサリアム(Ethereum)・ブロックチェーン上でアリスにイーサリアムを送信するために使用されてもよい。
Figure 2021524186
2つの異なるブロックチェーン間の原子的スワップに関する唯一の制約は、それらのブロックチェーンが、ロック・スクリプトにおけるハッシュ・パズルにおいて同じハッシュ関数の使用を許容するということ(またはそれと等価なこと)である。その理由は次のとおり:アリスのブロックチェーンがSHA-256ハッシュ・アルゴリズムの使用を許容するのみであり、ボブのブロックチェーンがSHA-384アルゴリズムを許可するのみであるとする。ボブは、ある秘密のSHA-256ハッシュをアリスに送信するが、ボブのロック・スクリプトでは、異なる秘密のためにSHA-384ハッシュ・パズルを設定する。ボブが資金を使うとき、ロック解除スクリプトはアリスには役に立たない秘密を明かすことになり、ボブが資金を使い果たしてしまうまで、アリスにはこれを知るすべはない。
さらなる実施形態によれば、二当事者がそれぞれ公開鍵を生成できるようにする方法であって、該公開鍵について、対応する秘密鍵は、両方の当事者にとってアクセス可能にされるか、どちらの当事者にとってもアクセス可能にされないかのどちらかのみである、方法が提供される。この方法は、両当事者間で2つの秘密の値を交換するために上記の原子的スワップ方法を利用する。これらの秘密値は、秘密鍵を計算するために使用される。
この方法の1つの応用は、二当事者が、単一の公開鍵/秘密鍵ペアによって制御される複数のタイプの暗号通貨を交換することを許容することである。この方法は、アリスとボブがそれぞれ公開鍵を生成できるようにし、該公開鍵についての秘密鍵は、原子的スワップが行なわれるまで知られない。原子的スワップは、アリスとボブのどちらも対応する秘密鍵を計算することができるか、どちらも秘密鍵を計算できないかのどちらかであることを保証する。
この方法は、たとえばビットコイン、イーサリアム、ダッシュ(Dash)で使用されるようなECSDAの秘密鍵と公開鍵のペアを使用して以下に記述される。しかしながら、この方法はECDSAプロトコルに決定的には依存せず、既存の秘密鍵と公知の決定論的鍵から新しい安全な公開鍵を決定論的に生成できる任意の公開鍵/秘密鍵ベースの暗号システムに容易に適応させることができる。
この方法は、新しい秘密鍵に関する部分的な情報が、オープンな台帳である一つまたは複数のブロックチェーンに保存されるという意味で、仮名的である。しかしながら、プロセスに関与する当事者だけがこの情報を復号することができ、セキュリティは決して損なわれない。
1.アリスは、対応する公開鍵PA=SA・Gをもつ秘密鍵SAと、自分だけが知っている秘密S2から始める。ボブは、対応する公開鍵PB=SB・Gをもつ秘密鍵SBと、自分だけが知っている秘密S1から始める。
2.アリスはボブにP2=S2・Gを送信し、ボブはアリスにP1=S1・Gを送信する。それらの秘密は楕円曲線の基底点を乗算されるので、このプロセスでは開示されず、P2およびP1は公知であってもよい。
3.アリスは、ビットコイン・トランザクション(またはアルトコインについての同様のもの)を受信するためのアドレスとして使用されうる新しい公開鍵PAE=PA+P1を作成する。ボブは新しい公開鍵PBE=PB+P2を作成する。
楕円曲線暗号の特性によれば、PAEに対応する秘密鍵はSAE=SA+S1であり、つまりPAE=SAE・Gである。PBEに対応する秘密鍵はSBE=SB+S2である。
この段階では、アリスはS1を知らず、よってPAEについての秘密鍵を知らない。ボブはS1を知っているが、SAを知らず、よってPAEについての秘密鍵を知らない。同じ論理により、アリスもボブもPBEについての秘密鍵を知らない。
4.アリスはボブのアドレスPBEへのトランザクションを行ない、ボブはアリスのアドレスPAEへのトランザクションを行なう。これらのトランザクションは、公開鍵/秘密鍵システムを使用する何らかの暗号通貨の交換であってもよく、あるいはトークンまたはさらには物理的な資産を公開鍵PAEおよびPBEの所有に移してもよい。上記の組み合わせであってもよい。
5.アリスとボブは今や、S2およびS1をそれぞれの秘密として、任意のブロックチェーンを使って、上述したように原子的スワップを初期化する。
6.アリスとボブが秘密を交換する。つまり、
Figure 2021524186
アリスとボブは、公式P1=S1・G、P2=S2・Gを用いて正しい秘密を受け取ったことを検査してもよい。正しい値を交換しなければ、その原子的スワップの出力を消費することはできない。
7.今やアリスはS1を保持しており、PAEに対応する秘密鍵を計算することができる。アリス以外にはアリスの秘密鍵SAを知らないので、たとえS1が公知であっても、他の誰もPAEに対応する秘密鍵を計算することはできない。同様に、今やボブは秘密S2を保持しており、PBEに対応する秘密鍵を計算することができるが、ボブ以外には誰もこれを行なうことはできない。
アリスもボブも、その原子的スワップの自分のトランザクション出力を使わなければ、アリスの秘密S2はボブに開示されず、ボブの秘密S1はアリスに開示されない。この場合、アリスもボブもPAEおよびPBEに対応する秘密鍵を計算することはできない。
ブロックチェーンは、トランザクションに署名し、トランザクション出力の所有権を証明するために、公開鍵/秘密鍵暗号化システムを使用する。これは、上記の実施形態の方法を使用して、同時にいくつかの暗号通貨において、PAEおよびPBEにトランザクションを送ることを可能にする。たとえば、上記のステップ3においてPAEおよびPBEを確立した後、
アリスは、BCHおよびETHの資金をPBEに移動し、
ボブは、BCHおよびDASHの資金をPAEに移す。
ひとたび原子的スワップが実行されたら、PBEおよびPAEへの秘密鍵はロック解除される。これらは、アリスが保有するビットコインおよびイーサリアム公開鍵ならびにボブが保有するビットコインおよびダッシュ公開鍵における資金をロック解除する。よって、アリスからボブへの次のトランザクションが安全に完了されることができる。
Figure 2021524186
これらのブロックチェーンは、ロック・スクリプトにおいて同じハッシュ関数を許容する必要がないことを注意しておく。
上記では、二当事者が原子的スワップを使用した秘密の交換を通じて公開鍵をロック解除する一般的な方法を与えている。これは、暗号通貨の交換を超えた用途をもち、ECDSAと同様の公開鍵/秘密鍵暗号方式を使用する任意のシステムに関連する。たとえば、他の使用事例は、以下を含むが、これらに限定されない:
1.分散ハッシュテーブル(Distributed Hash Table、DHT)へのアクセスの提供;
2.暗号化された計算;
3.プライベート電子メール・クライアント;
4.物流データおよび交換へのアクセス;
5.商品およびサービスのスワップ;
6.私的な価値交換;
7.鍵の階層。
共通の秘密の決定
適切な場合には、以下に述べるような公開鍵/秘密鍵システムを使用して、2者間の情報交換の安全な方法を使用することにより、セキュリティを向上させることができる。
共通の秘密(common secret、CS)が2者間で確立され、次いで、シェアのうち一つまたは複数のシェアの伝送のための安全な暗号化鍵を生成するために使用されることができる。共通の秘密(CS)は、何らかの秘密(SA,B,1,2)、たとえば秘密の値、鍵、またはそのシェアの安全な交換を可能にするために生成され、使用される。
以下、便宜上、アリスおよびボブは第1のノード(C)、第2のノード(S)と称される。目的は、両方のノードが知っている共通の秘密(CS)を生成することであるが、その共通の秘密は、通信チャネルを介して送信されたものではないとする。こうして、その不正な発見の可能性が排除される。
安全な伝送技法は、独立した仕方で伝送の各端で生成されるCSに関わる。よって、両ノードはCSを知っているが、CSは潜在的に安全でない通信チャネルを通じて移動する必要はなかった。ひとたびCSが両端で確立されると、CSは、両ノードがその後通信のために使用できる安全な暗号化鍵を生成するために使用できる。
図2は、通信ネットワーク5を通じて第2のノード7と通信する第1のノード3を含むシステム1を示す。第1のノード3は、関連する第1の処理装置23を有し、第2のノード5は、関連する第2の処理装置27を有する。第1および第2のノード3、7は、コンピュータ、電話、タブレットコンピュータ、移動通信装置、コンピュータサーバー等の電子装置を含みうる。一例では、第1のノード3はクライアント(ユーザー)装置であってよく、第2のノード7はサーバーであってもよい。サーバーは、デジタル・ウォレット・プロバイダーのサーバーであってもよい。
第1のノード3は、第1のノードのマスター秘密鍵(V1C)および第1のノードのマスター公開鍵(P1C)を有する第1の非対称暗号ペアと関連付けられている。第2のノード(7)は、第2のノードのマスター秘密鍵(V1S)および第2のノードのマスター公開鍵(P1S)を有する第2の非対称暗号ペアと関連付けられている。言い換えると、第1および第2のノードはそれぞれ、それぞれ、公開鍵‐秘密鍵のペアを保持している。
それぞれの第1および第2のノード3、7についての第1および第2の非対称暗号ペアは、財布のための登録のような登録プロセスの間に生成されてもよい。各ノードについての公開鍵は、通信ネットワーク5を通じて公に共有されてもよい。
第1のノード3および第2のノード7の両方における共通の秘密(CS)を決定するために、ノード3、7は、通信ネットワーク5を通じて秘密鍵を通信することなく、それぞれの方法300、400のステップを実行する。
第1のノード3によって実行される方法300は、少なくとも第1のノードのマスター秘密鍵(V1C)および生成子値(Generator Value、GV)に基づいて、第1のノードの第2の秘密鍵(V2C)を決定すること(330)を含む。生成子値は、第1のノードと第2のノードとの間で共有されるメッセージ(M)に基づいてもよく、これは、のちにさらに詳細に説明するように、通信ネットワーク5を通じてメッセージを共有することを含んでいてもよい。方法300はまた、少なくとも第2のノードのマスター公開鍵(P1S)および生成子値(GV)に基づいて第2のノードの第2公開鍵(P2S)を決定すること(370)を含む。方法300は、第1のノードの第2の秘密鍵(V2C)および第2のノードの第2の公開鍵(P2S)に基づいて、共通の秘密(CS)を決定すること(380)を含む。
同じ共通の秘密(CS)は、方法400によって第2のノード7においても決定できる。方法400は、第1のノードのマスター公開鍵(P1C)および生成子値(GV)に基づいて、第1のノードの第2の公開鍵(P2C)を決定すること(430)を含む。方法400は、さらに、第2のノードのマスター秘密鍵(V1S)および生成子値(GV)に基づいて第2のノードの第2の秘密鍵(V2S)を決定すること(470)を含む。方法400は、第2のノードの第2の秘密鍵(V2S)および第1のノードの第2の公開鍵(P2C)に基づいて、共通の秘密(CS)を決定すること(480)を含む。
通信ネットワーク5は、ローカルエリアネットワーク、ワイドエリアネットワーク、セルラーネットワーク、無線通信ネットワーク、インターネットなどを含んでいてもよい。データが電気ワイヤ、光ファイバーのような通信媒体を介して、または無線で伝送されうるこれらのネットワークは、盗聴者11などによる盗聴を受けることがありうる。方法300、400は、通信ネットワーク5を通じて共通の秘密を伝送することなく、第1のノード3と第2のノード7の両方が独立して共通の秘密を決定することを許容しうる。
このように、1つの利点は、共通の秘密(CS)が、潜在的に安全でない通信ネットワーク5を通じて秘密鍵を伝送する必要なしに、各ノードによって安全かつ独立に決定されうることである。次に、共通の秘密は、通信ネットワーク5を通じた第1のノード3と第2のノード7との間の暗号化された通信のための秘密鍵として(または秘密鍵の基礎として)使用されてもよい。
方法300、400は、追加的なステップを含んでいてもよい。方法300は、第1のノード3において、メッセージ(M)および第1のノードの第2の秘密鍵(V2C)に基づいて、署名されたメッセージ(SM1)を生成することを含んでいてもよい。方法300は、さらに、通信ネットワークを通じて、第1の署名されたメッセージ(SM1)を第2のノード7に送信すること(360)を含む。次に、第2のノード7は、第1の署名されたメッセージ(SM1)を受信するステップ440を実行してもよい。方法400はまた、第1のノードの第2の公開鍵(P2C)を用いて第1の署名されたメッセージ(SM2)を有効確認するステップ450と、第1の署名されたメッセージ(SM1)を有効確認した結果に基づいて第1のノード3を認証するステップ460とを含む。有利には、これは、第2のノード7が、標榜される第1のノード(第1の署名されたメッセージが生成されたところ)が第1のノード3であることを認証することを許容する。これは、第1のノード3のみが第1のノードのマスター秘密鍵(V1C)にアクセスでき、よって、第1のノード3のみが、第1の署名されたメッセージ(SM1)を生成するための第1のノードの第2の秘密鍵(V2C)を決定することができるという想定に基づいている。同様に、第2の署名されたメッセージ(SM2)が第2のノード7において生成され、第1のノード3に送信されることができ、それにより第1のノード3がピアツーピア・シナリオにおけるように第2のノード7を認証できることが理解される。
第1のノードと第2のノードの間でメッセージ(M)を共有することは、多様な仕方で達成されうる。一例では、メッセージは、第1のノード3において生成され、次いで、通信ネットワーク5を通じて第2のノード7に送られる。あるいはまた、メッセージは、第2のノード7において生成され、次いで通信ネットワーク5を通じて第2のノード7に送信されてもよい。さらに別の例では、メッセージは第3のノード9において生成され、メッセージは第1のノード3および第2のノード7の両方に送信されてもよい。さらに別の代替では、ユーザーがユーザー・インターフェース15を通じてメッセージを入力し、それが第1および第2のノード3、7によって受信されてもよい。さらに別の例では、メッセージ(M)はデータストア19から取り出され、第1および第2のノード3、7に送られてもよい。いくつかの例では、メッセージ(M)は公開であってもよく、よって、安全でないネットワーク5を通じて伝送されてもよい。
さらなる例では、一つまたは複数のメッセージ(M)がデータストア13、17、19に記憶されてもよく、ここで、メッセージは、デジタル・ウォレットなどの何らかのエンティティ、または第1のノード3と第2のノード7との間に確立された通信セッションと関連付けられてもよい。このように、メッセージ(M)は、それぞれの第1および第2のノード3、7において、その財布またはセッションに関連付けられた共通の秘密(CS)を再生成するために、取り出され、使用されてもよい。
有利には、共通の秘密(CS)の再生成を許容する記録は、記録自体が秘匿的に保存されるか、または安全に伝送される必要なしに、保持されうる。これは、多数のトランザクションが第1および第2のノード3、7において実行され、すべてのメッセージ(M)をノード自体に記憶することが実用的でない場合に有利でありうる。
登録方法100、200の例を、図4を参照して説明する。図4では、方法100は第1のノード3によって実行され、方法200は第2のノード7によって実行される。これは、第1および第2の非対称暗号ペアをそれぞれの第1および第2のノード3、7について確立することを含む。
非対称暗号ペアは、公開鍵暗号化で使用されるような、関連する秘密鍵と公開鍵を含む。この例では、楕円曲線暗号(ECC)と楕円曲線演算の特性を用いて、非対称暗号ペアが生成される。
ECCについての標準は、効率的暗号標準グループ(Standards for Efficient Cryptography Group)(www.sceg.org)によって記述されるような既知の標準を含んでいてもよい。楕円曲線暗号はまた、US5,600,725、US5,761,305、US5,889,865、US5,896,455、US5,933,504、US6,122,736、US6,141,420、US6,618,483、US6,704,870、US6,785,813、US6,078,667、US6,792,530にも記述されている。
方法100、200では、これは、第1および第2のノードが共通のECCシステムについて合意し、基底点(G)を使用することを含む。(注:基底点は共通生成子(Common Generator)と称することができるが、生成子値GVとの混同を避けるために基底点(base point)という用語が用いられる。)一例において、共通のECCシステムは、ビットコインによって使用されるECCシステムであるsecp256K1に基づいていてもよい。基底点(G)は、選択される、ランダムに生成される、または割り当てられることができる。
ここで第1のノード3に目を転じると、方法100は、共通のECCシステムおよび基底点(G)を決めること110を含む。これは、第2のノード7または第3のノード9から共通のECCシステムおよび基底点を受信することを含んでいてもよい。あるいはまた、ユーザー・インターフェース15が第1のノード3に付随していて、それによりユーザーが、共通のECCシステムおよび/または基底点(G)を選択的に提供してもよい。さらに別の代替では、共通のECCシステムおよび/または基底点(G)の一方または両方が、第1のノード3によってランダムに選択されてもよい。第1のノード3は、通信ネットワーク5を通じて、基底点(G)とともに共通のECCシステムを使用することを示す通知を、第2のノード7に送信してもよい。次いで、第2のノード7は、共通のECCシステムおよび基底点(G)を使用することへの確認応答を示す通知を送信することによって、決着してもよい(210)。
方法100は、第1のノード3が第1のノードのマスター秘密鍵(V1C)および第1のノードのマスター公開鍵(P1C)を含む第1の非対称暗号ペアを生成120することをも含む。これは、少なくとも部分的には、共通のECCシステムにおいて指定された許容可能な範囲内のランダムな整数に基づいて第1のマスター秘密鍵(V1C)を生成することを含む。これはまた、第1のノードのマスター秘密鍵(P1C)と基底点(G)の公式:
P1C=V1C×G (式1)
に従った楕円曲線点乗算に基づいて、第1のノードのマスター公開鍵(P1C)を決定することを含む。
このように、第1の非対称暗号ペアは次を含む:
V1C:第1のノードによって秘密に保持される、第1のノードのマスター秘密鍵、
P1C:公知にされている第1のノードのマスター公開鍵。
第1のノード3は、第1のノードのマスター秘密鍵(V1C)および第1のノードのマスター公開鍵(P1C)を、第1のノード3に関連付けられた第1のデータストア13に格納してもよい。セキュリティのために、第1のノードのマスター秘密鍵(V1C)は、鍵が秘匿されたままであることを保証するために、第1のデータストア13の安全な部分に格納されてもよい。
方法100は、さらに、通信ネットワーク5を通じて、第1のノードのマスター公開鍵(P1C)を第2のノード7に送信すること130を含む。第2のノード7は、第1のノードのマスター公開鍵(P1C)を受信220すると、第1のノードのマスター公開鍵(P1C)を第2のノード7に関連付けられた第2のデータストア17に格納230してもよい。
第1のノード3と同様に、第2のノード7の方法200は、第2のノードのマスター秘密鍵(V1S)および第2のノードのマスター公開鍵(P1S)を含む第2の非対称暗号ペアを生成240することを含む。第2のノードのマスター秘密鍵(V1S)も、前記許容可能な範囲内のランダムな整数である。次に、第2のノードのマスター公開鍵(P1S)は、次の公式によって決定される:
P1S=V1S×G (式2)
このように、第2の非対称暗号ペアは、次を含む:
V1S:第2のノードによって秘密に保持されている第2のノードのマスター秘密鍵、
P1S:公知にされている第2のノードのマスター公開鍵。
第2のノード7は、第2の非対称暗号ペアを第2のデータストア17に格納してもよい。方法200は、さらに、第1のノード3に第2のノードのマスター公開鍵(P1S)を送信すること250を含む。次に、第1のノード3は、第2のノードのマスター公開鍵(P1S)を受信140し、格納150してもよい。
いくつかの代替において、それぞれの公開マスター鍵は、第3のノード9(たとえば、信頼される第三者)に付随する第3のデータストア19において受信され、格納されてもよいことが理解される。これは、認証局などの公開ディレクトリとして機能する第三者を含みうる。このように、いくつかの例において、第1のノードのマスター公開鍵(P1C)は、共通の秘密(CS)が必要とされるときにのみ、第2のノード7によって要求され、受信されうる(逆も同様)。
登録ステップは、たとえば、デジタル・ウォレットの初期セットアップとして一度だけ必要とされる場合がある。
次に、共通の秘密(CS)を決定する例が図5を参照して記述される。共通の秘密(CS)は、第1のノード3と第2のノード7との間の特定のセッション、時間、トランザクション、または他の目的のために使用されてもよく、同じ共通の秘密(CS)を使用することは望ましくない、または安全でないことがありうる。このように、共通の秘密(CS)は、異なるセッション、時間、トランザクションなどの間で変更されることがある。
下記は、上述した安全な伝送技法を説明するために与えられる。
この例では、第1のノード3によって実行される方法300は、メッセージ(M)を生成310することを含む。メッセージ(M)は、ランダム、疑似ランダム、またはユーザー定義であってもよい。一例では、メッセージ(M)はユニックス時間およびナンス(および任意の値)に基づいている。たとえば、メッセージ(M)は、次のように与えられてもよい。
メッセージ(M)=ユニックス時間+ナンス (式3)
いくつかの例では、メッセージ(M)は任意(arbitrary)である。しかしながら、メッセージ(M)は、いくつかのアプリケーションにおいて有用でありうる選択的な値(たとえば、ユニックス時間など)を有しうることが理解される。
方法300は、通信ネットワーク3を通じて、メッセージ(M)を第2のノード7に送信315することを含む。メッセージ(M)は秘密鍵に関する情報を含まないので、メッセージ(M)は安全でないネットワークを通じて送信されてもよい。
方法300は、メッセージ(M)に基づいて生成子値(GV)を決定するステップ320をさらに含む。この例では、これはメッセージの暗号学的ハッシュを決定することを含む。暗号学的ハッシュ・アルゴリズムの例は、256ビットの生成子値(GV)を生成するSHA-256を含む。すなわち、
GV=SHA-256(M) (式4)
他のハッシュ・アルゴリズムが使用されてもよいことが理解される。これは、セキュアハッシュアルゴリズム(SHA)ファミリーの他のアルゴリズムを含みうる。いくつかの具体例は、SHA3-224、SHA3-256、SHA3-384、SHA3-512、SHAKE128、SHAKE256を含むSHA-3サブセット内のインスタンスを含む。他のハッシュ・アルゴリズムには、RACE完全性プリミティブ評価メッセージダイジェスト(RACE Integrity Primitives Evaluation Message Digest、RIPEMD)ファミリーのものを含みうる。具体例は、RIPEMD-160を含みうる。他のハッシュ関数は、ゼモール‐ティリック(Zemor-Tillich)ハッシュ関数およびナップザック・ベースのハッシュ関数に基づくファミリーを含みうる。
次いで、方法300は、第2のノードのマスター秘密鍵(V1C)および生成子値(GV)に基づいて第1のノードの第2の秘密鍵(V2C)を決定するステップ330を含む。これは、次の公式による、第1のノードのマスター秘密鍵(V1C)と生成子値(GV)とのスカラー加算に基づくことができる:
V2C=V1C+GV (式5)
このように、第1のノードの第2の秘密鍵(V2C)はランダムな値ではなく、第1のノードのマスター秘密鍵から決定論的に導出される。暗号ペアにおける対応する公開鍵、すなわち、第1のノードの第2の公開鍵(P2C)は、次の関係をもつ:
P2C=V2C×G (式6)
式5からのV2Cを式6に代入すると、次式が得られる:
P2C=(V1C+GV)×G (式7)
ここで'+'演算子は楕円曲線点加算を指す。
楕円曲線暗号代数が分配則を満たすことに注意すると、式7は次のように表わせる:
P2C=V1C×G+GV×G (式8)
最後に、式1を式7に代入して、次式を与えることができる:
P2C=P1C+GV×G (式9.1)
P2C=P1C+SHA-256(M)×G (式9.2)
このように、対応する第1のノードの第2の公開鍵(P2C)は、第1のノードのマスター公開鍵(P1C)およびメッセージ(M)の知識が与えられれば導出可能である。第2のノード7は、第1のノードの第2の公開鍵(P2C)を独立して決定するためのそのような知識を有してもよく、このことは、方法400に関して以下でさらに詳細に議論される。
方法300は、さらに、メッセージ(M)および決定された第1のノードの第2の秘密鍵(V2C)に基づいて、第1の署名されたメッセージ(SM1)を生成350することを含む。署名されたメッセージを生成することは、デジタル署名アルゴリズムを適用して、メッセージ(M)にデジタル的に署名することを含む。一例では、これは、楕円曲線デジタル署名アルゴリズム(Elliptic Curve Digital Signature Algorithm、ECDSA)においてメッセージに第1のノードの第2の秘密鍵(V2C)を適用して、第一の署名されたメッセージ(SM1)を得ることを含む。
ECDSAの例は、secp256k1、secp256r1、secp384r1、sec3cp521r1を用いたECCシステムに基づくものを含む。
第1の署名されたメッセージ(SM1)は、第2のノード7における対応する第1のノードの第2の公開鍵(P2C)を用いて検証されることができる。第1の署名されたメッセージ(SM1)のこの検証は、第1のノード3を認証するために第2のノード7によって使用されてもよく、これについては下記の方法400において論じられる。
次いで、第1のノード3は、第2のノードの第2の公開鍵(P2S)を決定370してもよい。上記で論じたように、第2のノードの第2の公開鍵(P2S)は、少なくとも第2のノードのマスター公開鍵(P1S)および生成子値(GV)に基づいていてもよい。この例では、公開鍵は、秘密鍵を基底点(G)と楕円曲線点乗算したものとして決定370'されるので、第2のノードの第2の公開鍵(P2S)は、式6と同様の仕方で、次のように表わせる:
P2S=V2S×G (式10.1)
P2S=P1S+GV×G (式10.2)
式10.2の数学的証明は、第1のノードの第2の公開鍵(P2C)について式9.1を導出するために上述したものと同じである。第1のノード3は、第2のノード7とは独立して、第2のノードの第2の公開鍵を決定370することができることが理解される。
次いで、第1のノード3は、決定された第1のノードの第2の秘密鍵(V2C)および決定された第2のノードの第2の公開鍵(P2S)に基づいて、共通の秘密(CS)を決定380してもよい。共通の秘密(CS)は、第1のノード3によって次の式によって決定されうる:
S=V2C×P2S (式11)
第2のノード7において実行される方法400
ここで、第2のノード7で実行される対応する方法400について述べる。これらのステップのいくつかは、第1のノード3によって実行された上記のステップと同様であることが理解される。
方法400は、第1のノード3から、通信ネットワーク5を通じてメッセージ(M)を受信すること410を含む。これは、ステップ315において第1のノード3によって送信されたメッセージ(M)を含みうる。次いで、第2のノード7は、メッセージ(M)に基づいて、生成子値(GV)を決定420する。第2のノード7によって生成子値(GV)を決定するステップ420は、上述の第1のノードによって実行されるステップ320と同様である。この例では、第2のノード7は、第1のノード3から独立して、この決定ステップ420を実行する。
次のステップは、第1のノードのマスター公開鍵(P1C)および生成子値(GV)に基づいて、第1のノードの第2の公開鍵(P2C)を決定するステップを含む。この例では、公開鍵は、秘密鍵を基底点(G)と楕円曲線点乗算したものとして決定430'されるので、第1のノードの第2の公開鍵(P2C)は、式9と同様の仕方で、次のように表わすことができる:
P2C=V2C×G (式12.1)
P2C=P1C+GV×G (式12.2)
式12.1および12.2の数学的証明は、式10.1および10.2について上記で論じたものと同じである。
方法400は、主張される第1のノード3が第1のノード3であることを認証するために、第2のノード7によって実行されるステップを含んでいてもよい。上記で論じたように、これは、第1のノード3から第1の署名されたメッセージ(SM1)を受信すること440を含む。次いで、第2のノード7は、ステップ430において決定された第1のノードの第2の公開鍵(P2C)を用いて、第1の署名されたメッセージ(SM1)上の署名を有効確認450してもよい。
デジタル署名の検証は、上記で論じた楕円曲線デジタル署名アルゴリズム(ECDSA)に従ってなされてもよい。重要なことに、第1のノードの第2の秘密鍵(V2C)を用いて署名された第1の署名されたメッセージ(SM1)は、V2CとP2Cが暗号ペアを形成するので、対応する第1のノードの第2の公開鍵(P2C)を用いたときにのみ正しく検証されるべきである。これらの鍵は、第1のノード3の登録時に生成された第1のノードのマスター秘密鍵(V1C)および第1のノードのマスター公開鍵(P1C)をもとに決定論的であるため、第1の署名されたメッセージ(SM1)を検証することは、第1の署名されたメッセージ(SM1)を送信する主張された第1のノードが、登録の際の同じ第1のノード3であることを認証する基礎として使用できる。このように、第2のノード7は、第1の署名されたメッセージを有効確認(450)した結果に基づいて、第1のノード3を認証(460)するステップをさらに実行してもよい。
上記の認証は、2つのノードのうち一方が信頼されるノードであり、それらのノードのうちの1つだけが認証される必要があるシナリオに好適でありうる。たとえば、第1のノード3はクライアントであってもよく、第2のノード7は、財布プロバイダーのようなクライアントによって信頼されるサーバーであってもよい。このように、サーバー(第2のノード7)は、クライアントがサーバー・システムにアクセスすることを許容するために、クライアント(第1のノード3)のクレデンシャルを認証する必要があることがありうる。サーバーがクライアントに対するサーバーのクレデンシャルを認証することは必要はないことがありうる。しかしながら、いくつかのシナリオでは、ピアツーピア・シナリオのように、両方のノードが互いに対して認証されることが望ましいことがある。
方法400は、さらに、第2のノード7が、第2のノードのマスター秘密鍵(V1S)および生成子値(GV)に基づいて第2のノードの第2の秘密鍵(V2S)を決定すること470を含んでいてもよい。第1のノード3によって実行されるステップ330と同様に、第2のノードの第2の秘密鍵(V2S)は、次の公式に従って、第2のノードのマスター秘密鍵(V1S)および生成子値(GV)のスカラー加算に基づくことができる:
V2S=V1S+GV (式13.1)
V2S=V1S+SHA-256(M) (式13.2)
次いで、第2のノード7は、第1のノード3とは独立に、第2のノードの第2の秘密鍵(V2S)および第1のノードの第2の公開鍵(P2C)に基づいて、次の式に基づいて、共通の秘密(CS)を決定480してもよい:
S=V2S×P2C (式14)
第1のノード3によって決定された共通の秘密(CS)は、第2のノード7において決定された共通の秘密(CS)と同じである。ここで、式11と式14が同じ共通の秘密(CS)を与えることの数学的証明を述べる。
第1のノード3によって決定された共通の秘密(CS)を見ると、式10.1を式11に代入して、次のようになる:
S=V2C×P2S (式11)
S=V2C×(V2S×G)
S=(V2C×V2S)×G (式15)
第2のノード7によって決定された共通の秘密(CS)を見ると、式12.1を式14に代入して、次のようになる:
S=V2S×P2C (式14)
S=V2S×(V2C×G)
S=(V2S×V2C)×G (式16)
ECC代数は可換なので、式15と式16は等価である。なぜなら:
S=(V2C×V2S)×G=(V2S×V2C)×G (式17)
今や共通の秘密(CS)は、秘密鍵として、または、第1のノード3と第2のノード7との間の安全な通信のための対称鍵アルゴリズムにおける秘密鍵の基礎として使用されうる。この通信は、秘密鍵の一部、秘密鍵の表現もしくは秘密鍵のための識別子、または秘密鍵についてのニーモニックを伝達するために使用されてもよい。よって、ひとたび本発明が、たとえば、デジタル・ウォレットまたは他の制御された資源のセットアップの際に使用されたら、その後は両当事者間の安全な通信が実行できる。
共通の秘密(CS)は、楕円曲線点(xS,yS)の形であってもよい。これは、ノード3、7によって合意された標準的な公知の操作を使用して、標準的な鍵フォーマットに変換されてもよい。たとえば、xS値は、AES256暗号化のための鍵として使用できる256ビットの整数であってもよい。また、RIPEMD160を使用して、160ビットの整数に変換されてもよい。この長さ鍵を必要とする任意の用途のためである。
必要に応じて共通の秘密(CS)が決定されてもよい。重要なことに、第1のノード3は、共通の秘密(CS)を格納する必要がない。これはメッセージ(M)に基づいて再度決定できるからである。いくつかの例では、使用されるメッセージ(M)は、マスター秘密鍵に必要とされるのと同じレベルのセキュリティなしに、データストア13、17、19(または他のデータストア)に格納されてもよい。いくつかの例では、メッセージ(M)は公に利用可能であってもよい。
しかしながら、何らかの用途によっては、共通の秘密(CS)が第1のノードのマスター秘密鍵(V1C)と同じくらい安全に保たれていれば、共通の秘密(CS)を第1のノードに付随する第1のデータストア(X)に格納することができる。
上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替実施形態を設計することができるであろうことに注意しておくべきである。特許請求の範囲においては、括弧内に付した参照符号があったとしても、請求項を限定するものと解釈してはならない。「含む」および「有する」等の語は、いずれかの請求項または明細書全体に列挙されたもの以外の要素またはステップの存在を除外するものではない。本明細書において、「含む」は「…を含むまたは…からなる」ことを意味し、「有する」は「…を含むまたは…からなる」を意味する。要素の単数形での言及は、そのような要素の複数形での言及を除外するものではなく、その逆もまた同様である。本発明は、いくつかの別個の要素を有するハードウェアによって、および好適にプログラムされたコンピュータによって実装されうる。いくつかの手段を列挙する装置請求項においては、これらの手段のいくつかは、同一のハードウェア項目によって具現されてもよい。ある種の措置が相互に異なる従属請求項に記載されているというだけの事実が、これらの措置の組み合わせが有利に利用できないことを示すものではない。

Claims (10)

  1. コンピュータ実装されるセキュリティ方法であって、当該方法は:
    (i)第1のユーザーにとってアクセス可能な第1の秘密値を第1の派生公開鍵に変換し、前記第1の
    派生公開鍵を第2のユーザーに送信する段階と;
    (ii)前記第2のユーザーにとってアクセス可能な第2の秘密値を第2の派生公開鍵に変換し、前記第2の派生公開鍵を前記第1のユーザーに送信する段階と;
    (iii)少なくとも部分的には前記第1の派生公開鍵に基づいて第3の派生公開鍵を計算する段階と;
    (iv)少なくとも部分的には前記第2の派生公開鍵に基づいて第4の派生公開鍵を計算する前記と;
    (v)前記第1の秘密値および前記第2の秘密値のそれぞれに一方向性関数を適用(34)して、それぞれの第1のベールに包まれた秘密値および第2のベールに包まれた秘密値を生成する段階と;
    (vi)前記第1のユーザーから前記第2のユーザーに前記第1のベールに包まれた秘密値を、前記第2のユーザーから前記第1のユーザーに前記第2のベールに包まれた秘密値を通信する段階(36)と;
    (vii)それぞれ前記第1のベールに包まれた秘密値および前記第2のベールに包まれた秘密値を含む第1のブロックチェーン・トランザクションおよび第2のブロックチェーン・トランザクションを構築する段階(42)であって、それらのトランザクションは、前記第1の秘密値および前記第2の秘密値の両方がそれぞれのトランザクションに提供されると、それぞれの第1または第2の資源の制御を移転するためにロック解除可能となるように構成される、段階とを含み、
    前記第1のブロックチェーン・トランザクションのロック解除によって前記第1の秘密値が前記第2のユーザーに明かされ、前記第2のブロックチェーン・トランザクションのロック解除(48B)によって前記第2の秘密値が前記第1のユーザーに明かされ、
    前記第1の秘密値を前記第2のユーザーに明かすことによって、前記第2のユーザーは前記第3の派生公開鍵に対応する第2の秘密鍵を計算できるようになり、前記第2の秘密値を前記第1のユーザーに明かすことによって、前記第1のユーザーは前記第4の派生公開鍵に対応する第1の秘密鍵を計算できるようになる、
    方法。
  2. 前記第1のトランザクションおよび前記第2のトランザクションの少なくとも一方は、それぞれの第1の秘密鍵および第2の秘密鍵の適用の際にのみ、償還可能であるように構成される、請求項1に記載の方法。
  3. (a)少なくとも部分的には前記第1のユーザーの第1の公開鍵に基づく第1の派生公開鍵および(b)少なくとも部分的には前記第2のユーザーの第2の公開鍵に基づく第2の派生公開鍵のうちの少なくとも一方を計算する段階(40)をさらに含み、前記第1の派生公開鍵は、前記第1の秘密鍵を含む暗号鍵ペアの一部であり、前記第2の派生公開鍵は、前記第2の秘密鍵を含む暗号鍵ペアの一部である、請求項2に記載の方法。
  4. (a)少なくとも部分的には前記第1のユーザーの前記第1の公開鍵に基づく前記第1の派生公開鍵および(b)少なくとも部分的には前記第2のユーザーの前記第2の公開鍵に基づく前記第2の派生公開鍵のうちの少なくとも一方を計算する段階はさらに、前記第1および第2のベールに包まれた秘密値の組み合わせ(38)を含む、請求項3に記載の方法。
  5. 前記第1および第2のベールに包まれた秘密値の組み合わせは、前記第1のベールに包まれた秘密値と前記第2のベールに包まれた秘密値との連結、および少なくとも1つのベールに包まれた秘密値の、ランダムまたは擬似ランダム値との連結の少なくとも一方を含む、請求項4に記載の方法。
  6. 前記第1のトランザクションが償還されない第1の時間期間の経過に応答して、前記第1の資源の制御を前記第1のユーザーに返すように構成された第3のブロックチェーン・トランザクション;および前記第2のトランザクションが償還されない第2の時間期間の経過に応答して、前記第2の資源の制御を前記第2のユーザーに返すように構成された第4のブロックチェーン・トランザクション、のうちの少なくとも一方を構築する段階(44)をさらに含む、請求項1ないし5のうちいずれか一項に記載の方法。
  7. 前記第1のベールに包まれた秘密値および前記第2のベールに包まれた秘密値の少なくとも一方は、前記第1の秘密値および前記第2の秘密値のうち少なくとも一方と、前記第1のユーザーおよび前記第2のユーザーの両方によってアクセス可能な共有秘密値との組み合わせ(32)を含む、請求項1ないし6のうちいずれか一項に記載の方法。
  8. 前記共有秘密値は、段階(i)の前に、共通の秘密(CS)として確立される、請求項7に記載の方法。
  9. (viii)前記第1の秘密値および前記第2の秘密値のうち少なくとも一方から始まるベールに包まれた秘密値の少なくとも1つのシーケンスを生成する段階と;
    (ix)前記第1の秘密値および前記第2の秘密値のうち少なくとも一方を使用して、請求項1ないし8のうちいずれか一項に記載の方法を実行する段階と;
    (x)少なくとも1つのブロックチェーン・トランザクションを償還して、前記第1の秘密値および前記第2の秘密値のうち少なくとも一方を明かし、それにより、前記シーケンスの少なくとも1つのベールに包まれた秘密値を明かす段階とをさらに含む、
    請求項1ないし8のうちいずれか一項に記載の方法。
  10. 請求項1ないし9のうちいずれか一項に記載の方法の少なくとも段階(vii)を、段階(x)で明かされた少なくとも1つのベールに包まれた秘密値を使って実行する段階をさらに含む、請求項9に記載の方法。
JP2020562187A 2018-05-14 2019-05-08 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法 Active JP7372938B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023181196A JP2023179761A (ja) 2018-05-14 2023-10-20 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法

Applications Claiming Priority (17)

Application Number Priority Date Filing Date Title
IB2018053349 2018-05-14
GB1807816.2 2018-05-14
GBGB1807807.1A GB201807807D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GBGB1807811.3A GB201807811D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GBGB1807813.9A GB201807813D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
GB1807811.3 2018-05-14
IB2018053347 2018-05-14
IBPCT/IB2018/053349 2018-05-14
IB2018053350 2018-05-14
GB1807807.1 2018-05-14
IBPCT/IB2018/053347 2018-05-14
IBPCT/IB2018/053350 2018-05-14
IB2018053346 2018-05-14
GBGB1807816.2A GB201807816D0 (en) 2018-05-14 2018-05-14 Computer-implemented system and method
IBPCT/IB2018/053346 2018-05-14
GB1807813.9 2018-05-14
PCT/IB2019/053772 WO2019220271A1 (en) 2018-05-14 2019-05-08 Computer-implemented systems and methods for using a blockchain to perform an atomic swap

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023181196A Division JP2023179761A (ja) 2018-05-14 2023-10-20 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法

Publications (2)

Publication Number Publication Date
JP2021524186A true JP2021524186A (ja) 2021-09-09
JP7372938B2 JP7372938B2 (ja) 2023-11-01

Family

ID=66530378

Family Applications (7)

Application Number Title Priority Date Filing Date
JP2020562187A Active JP7372938B2 (ja) 2018-05-14 2019-05-08 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
JP2020562171A Active JP7371015B2 (ja) 2018-05-14 2019-05-08 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
JP2020562172A Active JP7414734B2 (ja) 2018-05-14 2019-05-13 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法
JP2020562184A Pending JP2021524185A (ja) 2018-05-14 2019-05-13 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法
JP2023179223A Pending JP2023179729A (ja) 2018-05-14 2023-10-18 コンピュータ実装されるシステムおよび方法
JP2023181196A Pending JP2023179761A (ja) 2018-05-14 2023-10-20 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
JP2023222093A Pending JP2024019716A (ja) 2018-05-14 2023-12-28 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法

Family Applications After (6)

Application Number Title Priority Date Filing Date
JP2020562171A Active JP7371015B2 (ja) 2018-05-14 2019-05-08 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
JP2020562172A Active JP7414734B2 (ja) 2018-05-14 2019-05-13 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法
JP2020562184A Pending JP2021524185A (ja) 2018-05-14 2019-05-13 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法
JP2023179223A Pending JP2023179729A (ja) 2018-05-14 2023-10-18 コンピュータ実装されるシステムおよび方法
JP2023181196A Pending JP2023179761A (ja) 2018-05-14 2023-10-20 ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
JP2023222093A Pending JP2024019716A (ja) 2018-05-14 2023-12-28 資源へのアクセスを制御するために使用されるトークンの格納、生成および検証のための改善されたシステムおよび方法

Country Status (7)

Country Link
US (6) US20210226787A1 (ja)
EP (4) EP3794765A1 (ja)
JP (7) JP7372938B2 (ja)
KR (1) KR20210008516A (ja)
CN (4) CN112154626A (ja)
SG (1) SG11202010346TA (ja)
WO (4) WO2019220270A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201711867D0 (en) * 2017-07-24 2017-09-06 Nchain Holdings Ltd Computer-implemented system and method
GB201805633D0 (en) * 2018-04-05 2018-05-23 Nchain Holdings Ltd Computer implemented method and system
JP7372938B2 (ja) 2018-05-14 2023-11-01 エヌチェーン ライセンシング アーゲー ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
GB202002285D0 (en) * 2020-02-19 2020-04-01 Nchain Holdings Ltd Computer-implemented system and method
JP7040815B2 (ja) * 2019-12-25 2022-03-23 株式会社アクセル 取引システム、取引装置、取引方法及び取引プログラム
SG10202000134RA (en) * 2020-01-07 2021-08-30 Alipay Labs Singapore Pte Ltd Methods and devices for providing atomic transaction on blockchain
WO2021163668A1 (en) * 2020-02-13 2021-08-19 Hashquin Llc Systems and methods for marking and authenticating scarce items
CN111464538B (zh) * 2020-03-31 2022-02-01 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质、资产交易后台
CN111464636B (zh) * 2020-03-31 2021-12-07 中国联合网络通信集团有限公司 资产交易方法和系统、存储介质
US11544787B2 (en) 2020-06-29 2023-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Apparatus and method for providing protocol for digital asset trading
JP7371927B2 (ja) 2020-12-04 2023-10-31 株式会社アクセル 処理システム、処理装置、処理方法及び処理プログラム
US11403629B2 (en) * 2020-12-07 2022-08-02 II Thomas T. Meredith Systems and methods thereof for exchanging different digital currencies on different blockchains
CN112968772B (zh) * 2021-01-29 2022-10-14 上海分布信息科技有限公司 一种区块链数据的跨链解耦方法、系统
US11689355B2 (en) * 2021-03-04 2023-06-27 Mastercard International Incorporated Method and system for the atomic exchange of blockchain assets using transient key pairs
GB202111189D0 (en) * 2021-08-03 2021-09-15 Nchain Licensing Ag A computer implemented method and system
GB2614077A (en) * 2021-12-21 2023-06-28 Nchain Licensing Ag Signature-based atomic swap
GB2620401A (en) * 2022-07-05 2024-01-10 Elas Holdings PTY LTD Computer implemented systems and methods

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE187588T1 (de) 1993-08-17 1999-12-15 R3 Security Engineering Ag Verfahren zur digitalen unterschrift und verfahren zur schlüsselübereinkunft
WO1996004602A1 (en) 1994-07-29 1996-02-15 Certicom Corp. Elliptic curve encryption systems
AU5266596A (en) 1995-04-21 1996-11-07 Certicom Corp. Method for signature and session key generation
US5761305A (en) 1995-04-21 1998-06-02 Certicom Corporation Key agreement and transport protocol with implicit signatures
US6785813B1 (en) 1997-11-07 2004-08-31 Certicom Corp. Key agreement and transport protocol with implicit signatures
CA2176972C (en) 1995-05-17 2008-11-25 Scott A. Vanstone Key agreement and transport protocol with implicit signatures
GB9510035D0 (en) 1995-05-18 1995-08-02 Cryptech Systems Inc Strengthened public key protocols
US5999626A (en) 1996-04-16 1999-12-07 Certicom Corp. Digital signatures on a smartcard
US6078667A (en) 1996-10-10 2000-06-20 Certicom Corp. Generating unique and unpredictable values
JP4563577B2 (ja) 1997-09-22 2010-10-13 プルーフスペース インコーポレイテッド トランジエント鍵ディジタルスタンプ方法およびシステム
GB9802152D0 (en) 1998-01-30 1998-04-01 Certicom Corp Secure one way authentication communication system
CA2235359C (en) 1998-03-23 2012-04-10 Certicom Corp. Implicit certificate scheme with ca chaining
US6834272B1 (en) 1999-08-10 2004-12-21 Yeda Research And Development Company Ltd. Privacy preserving negotiation and computation
FI109864B (fi) 2000-03-30 2002-10-15 Nokia Corp Tilaajan autentikaatio
JP2002207427A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および情報処理装置、情報記録媒体、並びにプログラム記憶媒体
JP2002297548A (ja) 2001-03-30 2002-10-11 Matsushita Electric Ind Co Ltd 端末登録システムとそれを構成する装置及び方法
JP2004005643A (ja) * 2002-05-30 2004-01-08 Internatl Business Mach Corp <Ibm> 定義されたパーティにより検証可能な匿名支払方法
KR100940202B1 (ko) 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
US7184551B2 (en) * 2002-09-30 2007-02-27 Micron Technology, Inc. Public key cryptography using matrices
ATE444617T1 (de) 2003-01-07 2009-10-15 Qualcomm Inc System, vorrichtung und verfahren zum auswechseln eines kryptographischen schlüssels
CN1788453B (zh) 2003-03-11 2012-03-28 松下电器产业株式会社 内容记录/再现系统、配送设备、再现设备以及记录设备
JPWO2004084483A1 (ja) * 2003-03-20 2006-06-29 株式会社日本医療データセンター 情報管理システム
US7551737B2 (en) 2003-03-31 2009-06-23 International Business Machines Corporation Cryptographic keys using random numbers instead of random primes
KR100529594B1 (ko) 2003-06-13 2006-01-09 학교법인 성균관대학 서로 다른 인증 도메인에서 공개키를 검증하기 위한 방법
JP2005033640A (ja) 2003-07-09 2005-02-03 Canon Inc コンテンツ流通方法またはコンテンツ改ざん検出方法
DE10341096A1 (de) 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
JP4139382B2 (ja) 2004-12-28 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 製品/サービスに係る所有権限を認証する装置、製品/サービスに係る所有権限を認証する方法、及び製品/サービスに係る所有権限を認証するプログラム
US8190895B2 (en) 2005-08-18 2012-05-29 Microsoft Corporation Authenticated key exchange with derived ephemeral keys
US9137012B2 (en) * 2006-02-03 2015-09-15 Emc Corporation Wireless authentication methods and apparatus
DE602006006454D1 (de) 2006-10-10 2009-06-04 Ntt Docomo Inc Verfahren und Vorrichtung zur Authentifizierung
DE602007000729D1 (de) * 2007-06-15 2009-04-30 Ntt Docomo Inc Verfahren und Vorrichtung zur Authentifizierung
JP2010240896A (ja) 2009-04-02 2010-10-28 Sharp Corp 画像形成装置、画像処理端末及びそれらにより構成される画像形成システム
US9159046B2 (en) * 2009-06-29 2015-10-13 Sap Se Systems and methods for implementing supply chain visibility policies
JP2011023854A (ja) 2009-07-14 2011-02-03 Sony Corp 情報処理装置、情報処理方法およびプログラム
JP5735485B2 (ja) 2010-08-06 2015-06-17 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 匿名化情報共有装置および匿名化情報共有方法
US9344453B2 (en) * 2011-06-10 2016-05-17 Koninklijke Philips N.V. Secure protocol execution in a network
US9858401B2 (en) * 2011-08-09 2018-01-02 Biogy, Inc. Securing transactions against cyberattacks
US9330245B2 (en) * 2011-12-01 2016-05-03 Dashlane SAS Cloud-based data backup and sync with secure local storage of access keys
JP2014052588A (ja) * 2012-09-10 2014-03-20 Sony Corp 情報処理装置、情報処理方法及びコンピュータプログラム
US9967352B2 (en) * 2014-01-15 2018-05-08 Telenav, Inc. Communication system with location based services mechanism and method of operation thereof
US20150213433A1 (en) 2014-01-28 2015-07-30 Apple Inc. Secure provisioning of credentials on an electronic device using elliptic curve cryptography
US20160162897A1 (en) * 2014-12-03 2016-06-09 The Filing Cabinet, LLC System and method for user authentication using crypto-currency transactions as access tokens
US9374373B1 (en) * 2015-02-03 2016-06-21 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Encryption techniques for improved sharing and distribution of encrypted content
US9813392B2 (en) * 2015-03-06 2017-11-07 Qualcomm Incorporated Apparatus and method for providing a public key for authenticating an integrated circuit
US20160283920A1 (en) * 2015-03-28 2016-09-29 Justin Fisher Authentication and verification of digital data utilizing blockchain technology
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US9735958B2 (en) 2015-05-19 2017-08-15 Coinbase, Inc. Key ceremony of a security system forming part of a host computer for cryptographic transactions
GB2539430A (en) 2015-06-16 2016-12-21 The Provost Fellows Found Scholars & The Other Members Of Board Of The College Of The Holy & Unidv T Digital token exchange system
US10097356B2 (en) * 2015-07-02 2018-10-09 Nasdaq, Inc. Systems and methods of secure provenance for distributed transaction databases
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
WO2017079652A1 (en) 2015-11-05 2017-05-11 Pulsifer Allen Cryptographic transactions system
US10915874B2 (en) 2015-11-10 2021-02-09 Loyyal Corporation System and process for tokenization of digital media
TWI593267B (zh) 2015-12-17 2017-07-21 國立清華大學 具有時戳驗證的免憑證公開金鑰管理方法
US20170193464A1 (en) * 2015-12-18 2017-07-06 Justin SHER Protocol utilizing bitcoin blockchain for maintaining independently proposed and approved set contents
US20180204423A1 (en) * 2015-12-25 2018-07-19 Hitachi-Omron Terminal Solutions, Corp. Automatic transaction system
US10103885B2 (en) * 2016-01-20 2018-10-16 Mastercard International Incorporated Method and system for distributed cryptographic key provisioning and storage via elliptic curve cryptography
CN108292402B (zh) 2016-02-23 2022-10-04 恩链控股有限公司 用于信息的安全交换的公共秘密的确定和层级确定性密钥
EP4087178A1 (en) * 2016-02-23 2022-11-09 nChain Licensing AG A method and system for the secure transfer of entities on a blockchain
CA3014752A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited System and method for controlling asset-related actions via a blockchain
CN108885741B (zh) * 2016-02-23 2023-05-16 区块链控股有限公司 一种实现区块链上交换的令牌化方法及系统
BR112018016234A2 (pt) * 2016-02-23 2019-01-02 Nchain Holdings Ltd método implementado por computador para controlar o acesso a um recurso, sistemas baseados em computador e método para controle de acesso a uma carteira digital
GB2561726A (en) 2016-02-23 2018-10-24 Nchain Holdings Ltd Method and system for efficient transfer of cryptocurrency associated with a payroll on a blockchain that leads to an automated payroll method and system
SG11201806709PA (en) * 2016-02-23 2018-09-27 Nchain Holdings Ltd Universal tokenisation system for blockchain-based cryptocurrencies
WO2017152150A1 (en) 2016-03-04 2017-09-08 ShoCard, Inc. Method and system for authenticated login using static or dynamic codes
KR102636102B1 (ko) 2016-04-11 2024-02-14 엔체인 홀딩스 리미티드 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템
WO2017180382A1 (en) 2016-04-12 2017-10-19 Pcms Holdings, Inc. System and method for data validation in a decentralized sensor network
US10643203B2 (en) * 2016-04-12 2020-05-05 Digicash Pty Ltd. Secure transaction controller for value token exchange systems
DE102016206916B4 (de) 2016-04-22 2023-07-06 Bundesdruckerei Gmbh Elektronisches Verfahren zur kryptographisch gesicherten Überweisung eines Betrags einer Kryptowährung
EP3449452B1 (en) 2016-04-29 2022-06-29 Nchain Holdings Limited Implementing logic gate functionality using a blockchain
WO2017191472A1 (en) 2016-05-05 2017-11-09 Invasec Ltd. A verification system and method
GB2559908A (en) * 2016-05-13 2018-08-22 Nchain Holdings Ltd A method and system for verifying ownership of a digital asset using a distributed hash table and a peer-to-peer distributed ledger
US11720688B2 (en) * 2016-06-13 2023-08-08 CloudMode, LLC Secure initiation and transfer of a cryptographic database and/or a cryptographic unit
CN106100847B (zh) * 2016-06-14 2021-10-26 惠众商务顾问(北京)有限公司 非对称加密区块链身份信息验证方法及装置
GB201611698D0 (en) * 2016-07-05 2016-08-17 Eitc Holdings Ltd Blockchain-implemented control method and system
KR102464299B1 (ko) 2016-07-29 2022-11-07 엔체인 홀딩스 리미티드 블록체인 구현 방법 및 시스템
US10025941B1 (en) 2016-08-23 2018-07-17 Wells Fargo Bank, N.A. Data element tokenization management
US20180089669A1 (en) 2016-09-23 2018-03-29 American Express Travel Related Services Company. Inc. Systems and Methods for an Electronic Payment System
CN106452785B (zh) * 2016-09-29 2019-05-17 财付通支付科技有限公司 区块链网络、分支节点及区块链网络应用方法
US10218511B2 (en) 2016-12-23 2019-02-26 Amazon Technologies, Inc. Signature delegation
AU2018101669A4 (en) * 2017-01-08 2018-12-13 Rene F. Bernard A method for checking and/ or updating information relating to assets
EP3800827A1 (en) * 2017-01-13 2021-04-07 Visa International Service Association Techniques for secure blockchain management and secure data transfers between at least three users
US10754970B2 (en) * 2017-01-27 2020-08-25 International Business Machines Corporation Data masking
US20180276626A1 (en) * 2017-03-21 2018-09-27 Dappsters, LLC Blockchain systems and methods
KR102432356B1 (ko) 2017-03-23 2022-08-16 삼성에스디에스 주식회사 키 생성 장치 및 방법, 암호화 장치 및 방법
GB201706132D0 (en) * 2017-04-18 2017-05-31 Nchain Holdings Ltd Computer-implemented system and method
EP3396608A1 (en) * 2017-04-24 2018-10-31 BlockSettle AB Method and system for settling a blockchain transaction
CN107169764A (zh) * 2017-05-10 2017-09-15 山东大学 基于区块链的公平数据交易方法
GB201707788D0 (en) 2017-05-15 2017-06-28 Nchain Holdings Ltd Computer-implemented system and method
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US10567369B2 (en) * 2017-07-10 2020-02-18 Intuit Inc. Secure token passing via hash chains
US11416832B2 (en) * 2017-07-18 2022-08-16 nChain Holdings Limited Systems and methods for blockchain-dependent operation sets
CN107592292B (zh) * 2017-07-26 2019-08-09 阿里巴巴集团控股有限公司 一种区块链节点间通信方法及装置
EP3439233B1 (en) 2017-07-31 2020-12-30 Koninklijke Philips N.V. Distributing a computation output
CN107919954B (zh) * 2017-10-20 2019-05-14 浙江大学 一种基于sgx软件防护扩展指令的区块链用户密钥保护方法和装置
KR101857223B1 (ko) * 2017-11-13 2018-05-11 주식회사 온더 블록체인 토큰 기반의 사용자 식별 방법 및 시스템
CN108009441B (zh) * 2017-11-23 2023-05-30 创新先进技术有限公司 资源转移和资金转移的方法和装置
CN107888384B (zh) * 2017-11-30 2020-11-27 中链科技有限公司 一种身份数据管理方法、系统和计算机可读存储介质
CN108009830A (zh) 2017-12-14 2018-05-08 上海密尔克卫化工储存有限公司 基于区块链的产品流通跟踪方法与系统
KR20200099149A (ko) 2017-12-15 2020-08-21 엔체인 홀딩스 리미티드 낮은 엔트로피 패스워드로 블록체인 트랜잭션을 승인하기 위한 컴퓨터 구현 시스템 및 방법
US11315110B2 (en) * 2017-12-27 2022-04-26 International Business Machines Corporation Private resource discovery and subgroup formation on a blockchain
US20190303623A1 (en) * 2018-04-02 2019-10-03 Ca, Inc. Promotion smart contracts for software development processes
CN108664221B (zh) 2018-05-11 2022-04-01 北京奇虎科技有限公司 一种数据持有证明方法、装置及可读存储介质
JP7372938B2 (ja) * 2018-05-14 2023-11-01 エヌチェーン ライセンシング アーゲー ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
GB201913704D0 (en) 2019-09-23 2019-11-06 Nchain Holdings Ltd Computer implemented method and system for storing certified data on a blockchain
GB2589349A (en) * 2019-11-27 2021-06-02 Nchain Holdings Ltd Povably fair games using a blockchain

Also Published As

Publication number Publication date
US11917051B2 (en) 2024-02-27
US20210218552A1 (en) 2021-07-15
WO2019220318A1 (en) 2019-11-21
CN112154626A (zh) 2020-12-29
CN112119610A (zh) 2020-12-22
EP3794767A1 (en) 2021-03-24
JP7372938B2 (ja) 2023-11-01
US11764947B2 (en) 2023-09-19
JP2023179761A (ja) 2023-12-19
WO2019220271A1 (en) 2019-11-21
KR20210008516A (ko) 2021-01-22
EP3794766A1 (en) 2021-03-24
EP3794768A1 (en) 2021-03-24
US20230137104A1 (en) 2023-05-04
US20210218575A1 (en) 2021-07-15
JP2023179729A (ja) 2023-12-19
US20210203481A1 (en) 2021-07-01
TW201947482A (zh) 2019-12-16
JP7414734B2 (ja) 2024-01-16
JP2021524185A (ja) 2021-09-09
JP2021523610A (ja) 2021-09-02
US20210226787A1 (en) 2021-07-22
US11431477B2 (en) 2022-08-30
US20230421355A1 (en) 2023-12-28
WO2019220270A1 (en) 2019-11-21
WO2019220317A1 (en) 2019-11-21
SG11202010346TA (en) 2020-11-27
CN112166578A (zh) 2021-01-01
JP2021523609A (ja) 2021-09-02
US11838407B2 (en) 2023-12-05
JP7371015B2 (ja) 2023-10-30
CN112119611A (zh) 2020-12-22
JP2024019716A (ja) 2024-02-09
EP3794765A1 (en) 2021-03-24

Similar Documents

Publication Publication Date Title
JP7372938B2 (ja) ブロックチェーンを使って原子的スワップを実行するためのコンピュータ実装されるシステムおよび方法
CN108885741B (zh) 一种实现区块链上交换的令牌化方法及系统
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
CN110959163B (zh) 能够在多个存储节点上安全存储大型区块链的计算机实现的系统和方法
CN116911836A (zh) 区块链实现的方法和系统
US10887104B1 (en) Methods and systems for cryptographically secured decentralized testing
US10846372B1 (en) Systems and methods for trustless proof of possession and transmission of secured data
JP2023504535A (ja) アイデンティティ(id)ベース公開鍵生成プロトコル
WO2019093478A1 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
US20210234690A1 (en) Method and apparatus for authentication and encryption service employing unbreakable encryption
US20090313475A1 (en) Security in Computing Networks
JP2023539432A (ja) しきい値署名
Tiwari et al. ACDAS: Authenticated controlled data access and sharing scheme for cloud storage
Resende et al. PUF-based mutual multifactor entity and transaction authentication for secure banking
Mir et al. Decentralized, privacy-preserving, single sign-on
Sui et al. Monet: A fast payment channel network for scriptless cryptocurrency monero
GB2594312A (en) Digital Signatures
Gervais et al. Certificateless authenticated key agreement for decentralized WBANs
JP2019102959A (ja) サーバ装置、通信装置、鍵共有システム、鍵共有方法、及びプログラム
EP1949591A2 (en) Security in computing networks
Tezcan Cryptographic Foundations of Blockchain Technology
Scott The design and analysis of real-world cryptographic protocols.
CN117528516A (zh) 一种跨链身份管理方法及系统
Jahan et al. A Divisible Transferable E-Cash in Wireless Distributed Environment
Garcia Formal and Computational Cryptography: Protocols, Hashes and Commitments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220411

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230627

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20231010

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231020

R150 Certificate of patent or registration of utility model

Ref document number: 7372938

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150