JP2021507564A - 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 - Google Patents

低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 Download PDF

Info

Publication number
JP2021507564A
JP2021507564A JP2020531067A JP2020531067A JP2021507564A JP 2021507564 A JP2021507564 A JP 2021507564A JP 2020531067 A JP2020531067 A JP 2020531067A JP 2020531067 A JP2020531067 A JP 2020531067A JP 2021507564 A JP2021507564 A JP 2021507564A
Authority
JP
Japan
Prior art keywords
transaction
requester
group
nodes
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
JP2020531067A
Other languages
English (en)
Other versions
JP7289298B2 (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
Application filed by Nchain Holdings Ltd filed Critical Nchain Holdings Ltd
Publication of JP2021507564A publication Critical patent/JP2021507564A/ja
Priority to JP2023088572A priority Critical patent/JP2023109981A/ja
Application granted granted Critical
Publication of JP7289298B2 publication Critical patent/JP7289298B2/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/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
    • 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/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/3823Payment protocols; Details thereof insuring higher security of transaction combining multiple encryption tools for a transaction
    • 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
    • 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
    • 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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Finance (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

要求者及びノードのグループが関与するブロックチェーン実装されたセキュリティ方法が提供され、当該方法は、要求者によって選択されたパスワードと、ノードのグループによって送信された第1の量(ノードのグループの秘密鍵シェアと、楕円曲線上の双線形写像を使用するデジタル署名スキームのジェネレータ関数とから導出される)とに基づいて、要求者の暗号鍵を生成することを含む。要求者のブロックチェーントランザクションのための暗号署名を生成することができ、この署名は、要求者の暗号鍵に対応する。この署名は、パスワードと、ノードのグループによって送信された第2の量(これもグループの秘密鍵シェアから導出される)とに基づくことができる。当該方法は更に、要求者の暗号鍵を使用して、ブロックチェーントランザクションの暗号署名を検証することを含み得る。加えて、あるいは代わりに、当該方法は、ノードのグループが関与して要求者がパスワードでトランザクションを許可することを可能にするコンセンサス機構を採用することができる。当該方法はロジック的に、初期設定フェーズ、資金提供フェーズ、及び支払承認フェーズ(これは、支出前トランザクション及び支出トランザクションを伴う)を含む一連のフェーズに分割され得る。

Description

この発明は、概して分散システムに関し、より具体的には、ブロックチェーン上で維持管理される暗号強制資産(例えばビットコイン(Bitcoin)などの暗号通貨を含む)の安全性、信頼性、及び有用性を向上させるための方法及びシステムに関する。
本文書おいて、我々は、用語‘ブロックチェーン’を、全ての形態の電子的な、コンピュータベースの、分散型台帳を含むように使用する。これらは、以下に限られないが、ブロックチェーン及びトランザクションチェーンの技術、許可された及び許可されていない台帳、共有台帳、並びにこれらの変形を含む。ブロックチェーン技術の最も広く知られている用途はビットコイン台帳であるが、他のブロックチェーン実装も提案及び開発されている。ここでは、便宜及び説明のために、ビットコインを参照することがあるが、留意されたいことには、本発明は、ビットコインブロックチェーンとの使用に限定されず、それに代わるブロックチェーン実装及びプロトコルも本発明の範囲内にある。用語“ビットコイン”は、ここでは、ビットコインプロトコルから派生する任意の全てのプロトコルを指すように使用される。
ブロックチェーンは、トランザクション及び他の情報からなる複数のブロックで構成されるコンピュータベースの非中央集権的な分散システムとして実装されるコンセンサスベースの電子台帳である。ビットコインの場合、各トランザクションは、ブロックチェーンシステムにおける参加者間でのデジタル資産の管理の移転を符号化するデータ構造であり、少なくとも1つのインプットと少なくとも1つのアウトプットとを含む。各ブロックが、そのブロックが一緒にチェーン化される先行ブロックのハッシュを含むことで、その開始以前にそのブロックチェーンに書き込まれた全てのトランザクションの恒久的で変更不可能な記録を作り出す。トランザクションは、それらのインプット及びアウトプットに埋め込まれるスクリプトとして知られた小プログラムを含み、それらが、トランザクションのアウトプットが誰によってどのようにアクセスされ得るかを指定する。ビットコインプラットフォーム上では、これらのスクリプトは、スタックベースのスクリプト言語を使用して書かれる。
トランザクションがブロックチェーンに書き込まれるには、そのトランザクションが“検証済み”でなければならない。幾つかのネットワークノードがマイナー(採掘者)として働いて、各トランザクションが有効であることを保証するための作業を実行し、無効なトランザクションはネットワークから拒絶される。例えば、ノードにインストールされているソフトウェアクライアントが、未使用トランザクションアウトプット(unspent transaction outputs;UTXO)を参照するトランザクションに対してこの検証作業を実行する。検証は、そのロッキング及びアンロックスプリクトを実行することによって実行され得る。ロッキング及びアンロックスプリクトの実行がTRUEに評価され、且つ特定の他の条件が満たされる場合(例えば、十分な採掘手数料を含むことなど)、トランザクションは有効であり、トランザクションがブロックチェーンに書き込まれることができる。従って、トランザクションがブロックチェーンに書き込まれるには、そのトランザクションが、i)そのトランザクションを受け取るノードによって検証され(そのトランザクションが検証された場合に、そのノードがそれをネットワーク内の他のノードに中継する)、ii)マイナーによって構築された新しいブロックに追加され、そして、iii)マイニングされ、すなわち、過去のトランザクションの公開台帳に追加されなければならない。ブロックチェーンに十分な数のブロックが追加されてトランザクションを実質的に不可逆にしたとき、トランザクションは承認されたとみなされる。
例えばブロックチェーン上で維持管理されている暗号通貨を使用することなど、ブロックチェーン上で維持管理されている暗号的に保護された資産へのアクセスを制御するために、秘密鍵が一般的に使用されている。より具体的には、ユーザには典型的に、そのユーザに属する他の暗号資産に関する暗号コイン又はトークンを送信及び受信するために、公開アドレス及び秘密鍵が与えられる。秘密鍵は、そのユーザに属する暗号コイン又は他の暗号資産が消費、引き出し、又はその他で譲渡若しくは担保に供されることを可能にする秘密の番号である。ビットコインでは、秘密鍵は通常256ビットの番号である。公開アドレスは、ユーザの暗号資産が預け入れ及び受領されるところである。公開鍵は、数学的アルゴリズムを通じて秘密鍵から作成される。しかしながら、公開鍵から秘密鍵を生成することによってこのプロセスを逆にすることは事実上不可能である。
典型的に、ユーザの秘密鍵を保管するためにデジタルウォレットが使用される。ユーザに属する暗号資産を消費、引き出し、又はその他で譲渡又は担保に供するためにユーザによってトランザクションが開始されるとき、デジタルウォレットは、そのトランザクションを秘密鍵で処理することによってデジタル署名を作成する。所与のトランザクションに対して有効な署名を生成する唯一の方法は、秘密鍵を用いて、そのトランザクションに対する署名が秘密鍵に対応する公開アドレスに対して検証されるようにすることであるため、これは安全なシステムを支えるものである。署名及び公開アドレスを用いて、トランザクションが(公開アドレスに対応する秘密鍵の所有者である)ユーザから来たものであることが検証されるとともに、セキュリティにとって重要なトランザクションの要素(例えば送られる額、受領者アドレスなど)がブロードキャストされてから変更され得ないことが保証される。これらのトランザクション要素が変更されると、ユーザの署名及び公開アドレスに基づくトランザクションの検証が失敗することになる。
もしユーザが自身の秘密鍵を紛失すると、ユーザはもはや、その秘密鍵に関連付けられたユーザの暗号資産を消費したり、引き出したり、その他で譲渡したり担保に入れたりすることができない。従って、秘密鍵を安全な場所に保存することが必要不可欠である。デジタルウォレットがユーザの秘密鍵を保管し得る方法は幾つも存在する。
一例において、秘密鍵は、トランザクションがユーザの秘密鍵で署名される必要があるときに取り出されることができるように、紙様式又は電子文書にプリントされることができる。例えば、秘密鍵は場合により、トランザクションがユーザの秘密鍵で署名される必要があるときにスキャンされ得るQRコード(登録商標)の形態でプリントされ得る。秘密鍵はまた、コールドストレージ又はハードウェアウォレットを使用して保管されることもでき、これらは典型的に、ユーザの秘密鍵を安全に格納するとともにユーザの秘密鍵を用いてオフラインでトランザクションに署名するスマートカード又はUSBデバイスを使用するものである。他の一例において、秘密鍵は、ホットウォレットを使用して保管されることができ、これは典型的に、オンラインであって何らかの方法でインターネットに接続されたシステムを使用して、秘密鍵を保管し、トランザクションに署名する。
秘密鍵が失われたときの暗号資産の回復は、暗号通貨における有名な未解決問題である。これを達成することができる非中央集権的な機構の欠如は、一般に、暗号通貨の広範な採用に対する最も重大な障壁の1つであると認識されている。例えば、ハードドライブのクラッシュ又は秘密鍵の喪失によって2700を超えるビットコインが実効的に失われたと推定されたことがある。いったん秘密鍵が失われると、何十億ドルもの価値があり得るビットコインが、使用不可能なウォレットに閉じ込められる。
実際、秘密鍵を失うことは一見して、オンラインバンキングのパスワードの喪失に似ているように思われるかもしれない。しかしながら、少なくとも2つの重要な相違がある。第一に、銀行取引システムのトランザクションは追跡可能且つ可逆的であり、不正取引を逆にすることによって、盗まれた資金を回収できる可能性がある。これは、明らかなように、例えばビットコインなどの暗号通貨では可能でない。何故なら、トランザクションが不可逆的であるとともに、不正の発生時に仲裁を行う中央権限が存在しないはないからである。第二に、銀行取引のパスワードは、ユーザが自身の身元を銀行に提供することの見返りとして、復元又は再発行されることができる。対照的に、一部の暗号通貨ウォレットでは、例えばhttps://walletrecoveryservices.com/などのパスワード復元サービスが利用可能である。しかしながら、これらのパスワード復元サービスは、一般的に、低い成功率(典型的に30%くらいであり、ユーザによって提供される情報に依存する)を有するとともに、そのようなパスワード復元サービスに課される料金は一般的に非常に高い(すなわち、パスワード復元が成功した場合に、料金はそのウォレットの価値の20%に至ることがある)。
秘密鍵が失われたときの暗号資産の回復のための他の提案されている一ソリューションは、ブレインウォレットと呼ばれており、ユーザによって直接作り出された十分に長いパスワード又はパスフレーズをハッシュすることによって秘密鍵が生成されるものである。このソリューションは、パスワードがウォレット自体に保管される必要はなく、‘ユーザの脳’に維持され得るので、鍵の保管問題を解決しようとするものである。例えばhttps://brainwallet.io/、https://paper.dash.org/などのオンラインプラットフォームは、パスワード/パスフレーズと、何らかのソルト、すなわち、ハッシュ化一方向関数への追加入力として使われるランダムデータとを所与として、決定論的な暗号通貨秘密鍵を容易に生成することができる。なお、ブレインウォレットのパスワード/パスフレーズは安全であると同時に覚えやすいものでなければならない。この場合、セキュリティが、パスワード/パスフレーズを破るのに攻撃者が要する時間に基づく一方で、覚えやすさは、覚えておかなければならない情報の量に依存する。明らかに、これら2つの側面は負の相関を持ち、選択されたパスワードのエントロピーに依存する。
ブレインウォレットの1つの問題は、秘密鍵を生成するのに使用されたパスワード/パスフレーズ及びソルトを破ろうとする強いインセンティブであり、何故なら、これは、ウォレットそれ自体内にロックされた暗号資産への完全なアクセスを攻撃者に与えることになるからである。攻撃者は、多数の異なるパスワード/パスフレーズ及びソルトを試みるブルートフォース(総当たり)クラッキングアルゴリズムを使用し、生成された秘密鍵が存在し、暗号資産に関連付けられているかをチェックすることができる。現行技術では、チップは毎秒約236回の試行を行うことができる。また、現実世界の攻撃が示したことには、たとえ複雑なパスワードが採用され、より高速な新しいアルゴリズムであったとしても、ブレインウォレットは安全ではない。具体的には、現実世界の攻撃は、各スレッドで毎秒16,250個のパスワードを見つけることができ、18,000を超えるブレインウォレットアドレスを破った。さらに、最近、現実世界で漏れ出た何百万ものパスワードがハッカー達に利用可能となっており、彼らはそのようなパスワードを用いてユーザの習慣を再構成し、ブレインウォレット秘密鍵を生成するために使用されるパスワード/パスフレーズ及びソルトを破るための、より高速なアルゴリズムを設計することができる。考え得る更なる弱さが、同じパスワードから派生した複数のブレインウォレットアドレスがトランザクションスクリプトの一部としてブロックチェーン上に格納されているときに発生し得る。同じシードから複数のアドレスが導き出されていると、パスワードを推測することが容易になる。キー(鍵)ストレッチ技術を用いて、ブレインウォレットアドレスを破ることを困難にすることができる。そのようなキーストレッチ技術は、単純なパスワードから秘密鍵を導出するのに、最適化困難(difficult-to-optimise)なハッシュ関数(例えばSHA256、SHA1など)を複数回使用する。このような技術は、攻撃をより計算量的に高くつくものにするのに役立つが、将来に向けてセキュリティを保証するものではない。実際、高められた計算能力を持つ新しいハードウェアが作り出され、それ故に、計算上の難題を、コスト及び実現可能性の観点でいっそう手頃なものにしてしまい得る。さらに、アカウント内の蓄えの価値の何らかの認識が、ストレッチされた鍵をあまり安全でないものにする。何故なら、それを破った場合の見返りが、それを破るために必要とされる投資のいっそう大きな割合となるからである。パーソナルコンピュータが毎秒約6500回のSHA−1ハッシュを実行できることを考えると、キーストレッチソリューションがすぐに安全でなくなることを簡単に示すことができる。キーストレッチプログラムは、6500ラウンドのハッシュを使用して、ユーザを約1秒間だけ遅延させ得る。攻撃者の視点からは、通常のパスワードテストが典型的に1つのハッシュ演算を必要とするとき、キーストレッチを使用することは自身の作業負荷を216倍に増加させる(追加の16ビットのエントロピーが通常のパスワードに付加されることに等価)。ムーアの法則によれば、スピードの観点でのコンピュータ性能が1.5年ごとに2倍になるとされており、つまり、1.5年ごとにキーストレッチのビットを1つずつ多くすることが容易に決められることになり得る。一定レベルのセキュリティを維持するために、キーストレッチラウンドを1.5年ごとに2倍にすべきであるが、これは、(i)ユーザがキーストレッチを実行するためのいっそう高い計算コスト、(ii)キーストレッチアルゴリズムの設計者がこの側面を考慮に入れてシステムの寿命を決定すべきであること、を必要とすることになる。キーストレッチプロセスの計算タスクを実行するためにブロックチェーンマイナーもまた‘採掘しながら’使用されることができ、それにより、追加コストはほとんど招かず、さらにこれは、ユーザのパスワードをマイナーに見せることなく行われることができる。しかしながら、このような構成はまた、マイナーが‘無料で’ユーザのパスワードを総当たり攻撃しようと試みることを許すことにもなり、それは、キーストレッチの目的全体を無にするものである。
従って、強化されたセキュリティを提供することができるとともに、パスワードをリバースエンジニアリングし、パスワードによって管理された暗号資産を転送しようと試みる攻撃を阻止することができる方法で、ユーザがパスワードでトランザクションを許可することを可能にする改良された方法及び装置を提供することが望ましい。
従って、本発明によれば、添付の請求項に規定される方法が提供される。
故に、本発明によれば、ブロックチェーン実装された方法及び対応するシステムが提供され得る。本発明は、ブロックチェーン実装された(1つ以上の)セキュリティ方法及び対応する(1つ以上の)システムとして説明され得る。
この方法は、要求者及びノードのグループが関与することを有する方法を提供することができ、当該方法は、要求者によって選択されたパスワードと、ノードのグループによって送信された複数の第1の量とに基づいて、要求者の暗号鍵を生成することを含み得る。複数の第1の量は、ノードのグループの秘密鍵シェアと、楕円曲線上の双線形写像を使用するデジタル署名スキームのジェネレータ関数とに基づき得る。当該方法は更に、要求者のブロックチェーントランザクションのための暗号署名を生成することを含むことができ、暗号署名は、デジタル署名スキームの楕円曲線上の双線形写像に基づく要求者の暗号鍵に対応する。暗号署名は、要求者によって選択されたパスワードと、ノードのグループによって送信された複数の第2の量とに基づき得る。複数の第2の量は、ノードのグループの秘密鍵シェアに基づき得る。当該方法は更に、要求者の暗号鍵を使用して、ブロックチェーントランザクションの暗号署名を検証することを含み得る。
加えて、あるいは代わりに、この方法は、ノードのグループが関与して安全な方法でユーザ(要求者)がパスワードでトランザクションを許可することを可能にするコンセンサス機構を採用することができる。パスワードは、この方法のどのフェーズにおいても決して直接的に露呈されない。パスワードのエントロピーは高いものである必要はなく(故に、低くすることができ)、これは、パスワードの覚えやすさを高めることができる。何故なら、パスワードの情報の量はパスワードのエントロピーに比例するからである。
加えて、あるいは代わりに、この方法は、ノードのグループを使用し、各ノードが、該グループへのデジタル資産の転送を通じて該グループに加わり、該グループの各ノードが対応する秘密鍵シェアを保管する。
加えて、あるいは代わりに、この方法は、ノードのグループが、要求者によってブロードキャストされた資金提供トランザクションを受信する資金提供フェーズを含むことができ、資金提供トランザクションは、全て又は一部が要求者によって選択されたパスワードを使用して転送され得るものである要求者の1つ以上のデジタル資産を指定する。
加えて、あるいは代わりに、この方法は、ノードのグループが、資金提供トランザクションにて指定された要求者の1つ以上のデジタル資産の一部を転送する支出トランザクションを受信する支払承認フェーズを含むことができる。支出トランザクションは、要求者の暗号鍵に対応する暗号署名を含む。ノードのグループは、要求者の暗号鍵を使用して、支出トランザクションの署名を検証する。
加えて、あるいは代わりに、この方法は更に、ノードのグループが、要求者によってブロードキャストされた初期設定トランザクションを受信する初期設定フェーズを含むことができ、初期設定トランザクションは、要求者に関連付けられるパスワードを設定したいという願いを指し示す。ノードのグループは、初期設定トランザクションに応答してそれぞれの第1の量を生成し、それぞれの第1の量を含んだそれぞれの第1のメッセージを要求者に送信する。
加えて、あるいは代わりに、支払承認フェーズは、ノードのグループが、要求者によってブロードキャストされた支出前トランザクションを受信することを含むことができ、支出前トランザクションは、取引デポジットを転送するとともに支出トランザクションの少なくとも一部のハッシュを含み、支出トランザクションの少なくとも一部のハッシュは、デジタル署名スキームのハッシュ関数に基づく。ノードのグループは、支出前トランザクションに応答してそれぞれの第2の量を生成し、それぞれの第2の量を含んだそれぞれの第2のメッセージを要求者に送信する。
加えて、あるいは代わりに、初期設定トランザクションは、要求者によってグループに支払われる初期設定手数料を含むことができる。初期設定手数料は、グループに関連付けられた公開グループアドレスに支払われ得る。グループの少なくとも1つのノードが、矛盾する第1の量を要求者に送信した場合に、初期設定手数料は要求者に返還され得る。第1の量の矛盾は好ましくは、検証可能な秘密共有スキームを用いて決定され得る。
加えて、あるいは代わりに、支出前トランザクションの取引デポジットは、ノードのグループに関連付けられた公開グループアドレスの下でロックされることができる。支出前トランザクションは支出手数料を含むことができる。検証することが成功した場合に、グループは選択的に、取引デポジットから支出手数料を差し引いた額を要求者に転送し得る。検証することが失敗した場合に、グループは選択的に、取引デポジットを没収し得る。グループのノードのうちの少なくとも1つのノードが、矛盾する第2の量を要求者に送信した場合に、取引デポジットは要求者に返還され得る。第2の量の矛盾は好ましくは、検証可能な秘密共有スキームを用いて決定され得る。
加えて、あるいは代わりに、支出手数料は、ノードのグループに関連付けられた公開鍵に支払われることができる。グループのノードは、支出手数料が十分であることを検証することができ、支出手数料の十分性は好ましくは、第3のトランザクション及び支出トランザクションを処理するのに必要とされる計算リソースに基づく。支出手数料の十分性の検証に失敗した場合、グループのノードは選択的に、支出前トランザクションの更なる処理をバイパスし得る。ノードのグループは選択的に、支出手数料をグループに分配し得る。
加えて、あるいは代わりに、資金提供トランザクションは、要求者の1つ以上のデジタル資産が要求者の暗号鍵によってロックされており、それ故に、対応する暗号署名によって支出され得ることを規定することができる。この実施形態では、ノードのグループ、及びオプションで、グループに属しない他のノードが、署名された支出トランザクションの暗号署名を、要求者の暗号鍵を用いて検証することができる。
加えて、あるいは代わりに、資金提供トランザクションは、要求者の1つ以上のデジタル資産がグループの公開鍵によってロックされており、それ故にグループの秘密鍵シェアの閾数に基づく署名によって支出され得ることを規定することができる。この実施形態では、ノードのグループのみが、署名された支出トランザクションの署名を、要求者の暗号鍵を用いて検証することができる。署名された支出トランザクションの署名の検証成功を受けて、グループが協働して、グループの秘密鍵シェアの閾数に基づいて署名を生成し、この署名を含む二次支出トランザクションを構築し得る。
実施形態において、第1の量は、グループのそれぞれのノードから要求者に送信されるプライベートメッセージに含められて要求者の公開鍵で暗号化されることができる。グループのノードは、当該ノードの秘密鍵シェアを保管するトラステッド実行環境を有することができ、当該ノードのトラステッド実行環境は、当該ノードの秘密鍵シェアと、署名スキームのジェネレータ関数と、に少なくとも部分的に基づいて第1の量を生成することができる。各プライベートメッセージが、そのノードのトラステッド実行環境の公開鍵と関連付けられ、そのノードのトラステッド実行環境の対応する秘密鍵で署名され得る。
実施形態において、第2の量は、グループのそれぞれのノードから要求者に送信されるプライベートメッセージに含められて要求者の公開鍵で暗号化されることができる。グループのノードは、第3(支出前)トランザクションに含まれる未署名支出トランザクションのハッシュと、ノードの秘密鍵シェアと、に少なくとも部分的に基づいて第2の量を生成する当該ノードのトラステッド実行環境を有することができる。各プライベートメッセージが、ノードのトラステッド実行環境の公開鍵と関連付けられ、そのノードのトラステッド実行環境の対応する秘密鍵で署名され得る。
実施形態において、1つ以上のノードが、資金提供トランザクション及び署名された支出トランザクションを、プルーフ・オブ・ワーク(proof-of-work)ブロックチェーンに格納するためにマイニングし得る。
本発明によれば、プロセッサと、コンピュータメモリと、ネットワークインタフェース装置とを含んだエレクトロニクス装置が提供され得る。メモリは、コンピュータ実行可能命令を格納しており、該コンピュータ実行可能命令は、実行されるときに、ここに記載される方法を実行するようにプロセッサを構成する。
本発明によれば、コンピュータ読み取り可能記憶媒体が提供され得る。このコンピュータ読み取り可能記憶媒体は、コンピュータ実行可能命令を含み、該コンピュータ実行可能命令は、実行されるときに、ここに記載される方法を実行するようにプロセッサを構成する。
本発明のこれら及び他の態様が、ここに記載される実施形態を参照して解明されて明らかになる。以下、本発明の一実施形態が、単なる例として、以下を含む添付の図面を参照して説明される。
ブロックチェーンネットワークの一例のブロック図を示している。 ビットコインブロックチェーン環境に特有のブロックチェーントランザクションの一例を示している。 ブロックチェーンネットワーク内のノードとして機能し得るエレクトロニクス装置の一例のブロック図を示している。 安全な方法でユーザがパスワードでトランザクションを許可することを可能にするために会議を伴うコンセンサス機構を採用する方法の一例のハイレベルフローチャートである。 図3の会議設立フェーズの例示的な詳細を示すフローチャートである。 図5A−5Dは、共同で図3の初期設定フェーズの例示的な詳細を示すフローチャートである。 図5A−5Dは、共同で図3の初期設定フェーズの例示的な詳細を示すフローチャートである。 図5A−5Dは、共同で図3の初期設定フェーズの例示的な詳細を示すフローチャートである。 図5A−5Dは、共同で図3の初期設定フェーズの例示的な詳細を示すフローチャートである。 図3の資金提供フェーズの例示的な詳細を示すフローチャートである。 図7A−7Dは、共同で図3の支払承認フェーズの例示的な詳細を示すフローチャートである。 図7A−7Dは、共同で図3の支払承認フェーズの例示的な詳細を示すフローチャートである。 図7A−7Dは、共同で図3の支払承認フェーズの例示的な詳細を示すフローチャートである。 図7A−7Dは、共同で図3の支払承認フェーズの例示的な詳細を示すフローチャートである。 図8A−8Bは、安全な方法でユーザがパスワードでトランザクションを許可することを可能にするために会議を伴うコンセンサス機構を採用する方法の他の一例のフローチャートである。 図8A−8Bは、安全な方法でユーザがパスワードでトランザクションを許可することを可能にするために会議を伴うコンセンサス機構を採用する方法の他の一例のフローチャートである。
ブロックチェーンネットワーク
先ず、ブロックチェーンに関連するブロックチェーンネットワーク100の一例をブロック図の形態で示すものである図1Aを参照する。このブロックチェーンネットワークは、招待なしで又は他メンバーの同意なしで、誰でも参加し得るピアツーピアオープンメンバーシップネットワークである公開ブロックチェーンネットワークとし得る。その下でブロックチェーンネットワーク100が動作するブロックチェーンプロトコルのインスタンスを走らせている分散エレクトロニクス装置は、ブロックチェーンネットワーク100に参加することができる。そのような分散エレクトロニクス装置は、ノード102として参照され得る。ブロックチェーンプロトコルは、例えば、ビットコインプロトコルとし得る。
ブロックチェーンプロトコルを走らせ、ブロックチェーンネットワーク100のノード102を形成するエレクトロニクス装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバなどのコンピュータ、スマートフォンなどのモバイル装置、スマートウォッチなどのウェアラブルコンピュータ、又は他のエレクトロニクス装置を含め、様々なタイプのものとし得る。
ブロックチェーンネットワーク100のノード102は、有線及び無線通信技術を含み得る好適な通信技術を使用して互いに結合される。例えば、ブロックチェーンがビットコインブロックチェーンである場合、ビットコインプロトコルが使用され得る。
ノード102は、ブロックチェーン上の全てのトランザクションのグローバル台帳を維持している。従って、グローバル台帳は分散台帳である。各ノード102が、グローバル台帳の完全なコピー又は部分的なコピーを保管し得る。プルーフ・オブ・ワークによって保護されるブロックチェーンの場合、グローバル台帳に影響を与えるノード102によるトランザクションが他のノード102によって検証されることで、グローバル台帳の妥当性が維持される。ブロックチェーンがプルーフ・オブ・ワークに基づくブロックチェーンであるとき、ブロックとともに提出されるプルーフ・オブ・ワークをチェックすることによって、ブロックも検証される。
ノード102のうち少なくとも一部が、ブロックチェーンネットワーク100のマイナー104として働く。図1Aのブロックチェーンネットワーク100は、ブロックチェーン上での取引を支援するためにマイナー104が高価な計算を実行するプルーフ・オブ・ワークブロックチェーンである。例えば、プルーフ・オブ・ワークブロックチェーンは、マイナーが暗号問題を解くことを必要とし得る。ビットコインでは、マイナー104は、ブロックヘッダが、SHA−256で、現在の難しさによって定められる数よりも小さい数にハッシュするようなナンスを発見する。プルーフ・オブ・ワークアルゴリズムに必要なハッシュパワーは、トランザクションが、その上にある特定数のブロックがマイニングされた後に、実際的に不可逆的であると考えられることを意味します。暗号問題を解くマイナー104は、そのブロックチェーンに関する新たなブロックを作成し、その新たなブロックを他のノード102にブロードキャストする。他のノード102は、そのブロックがブロックチェーンに追加されるべきであると受け入れる前に、マイナー104が実際に暗号問題を解いて、それ故に十分なプルーフ・オブ・ワークを示していることを検証する。ノード102のコンセンサスによって、そのブロックがブロックチェーンに(すなわち、分散グローバル台帳)に追加される。
マイナー104によって作成されるブロックは、ノード102によってブロックチェーンにブロードキャストされたトランザクションを含む。例えば、ブロックは、ノード102のうちの1つに関連付けられたアドレスからノード102のうちの他の1つに関連付けられたアドレスへのトランザクションを含み得る。斯くして、ブロックは、1つのアドレスから他の1つのアドレスへのトランザクションの記録としての役割を果たす。トランザクションをブロックに含めることを要求した当事者は、自身の公開鍵に対応する秘密鍵を使用してリクエストに署名することによって、自身が転送を開始する(例えば、ビットコインの場合、ビットコインを支出する)権限を与えられていることを証明する。転送は、そのリクエストが正当に署名されている場合にのみ、ブロックに追加され得る。
ビットコインの場合、公開鍵とアドレスとの間に一対一の対応関係が存在する。すなわち、各公開鍵が、単一のアドレスに関連付けられる。従って、ここでの、ある公開鍵へ又はからデジタル資産を転送すること(例えば、その公開鍵に支払いをすること)への言及と、その公開鍵に関連付けられたアドレスへ又はからデジタル資産を転送することへと言及とは、共通の操作に言及するものである。
ノード102のうち一部は、検証ノードとして参加し得るとともに、マイナーとしても働き得る(あるいは、そうしなくてもよい)。検証ノードは、トランザクションの検証を実行し、それは、(1つ以上の)署名をチェックすること、有効なUTXOへの参照を確認すること、等々を含み得る。
図1Aの例は、5つのノード102を含んでおり、そのうちの3つがマイナー104として参加している。実際には、ノード102又はマイナー104の数は異なり得る。多くのブロックチェーンネットワークにおいて、ノード102及びマイナー104の数は、図1Aに示した数よりも遥かに多いとし得る。
図1Bは、ビットコインブロックチェーンにて保管され得るようなトランザクション150の一例を示している。同様の機能を持つ他のバリエーションも可能である。トランザクションのデータ要素又はフィールドは、図1Bに示すようなものであってよく、また、この開示に記載されるものを超える追加のフィールドを含んでもよい。図示のように、トランザクション150のブロックチェーンプロトコルバージョンを指し示す値を持つブロックチェーンバージョンフィールド152が存在する。#vinフィールド154は、そのトランザクション150に幾つのトランザクションインプット(以下で説明する)が存在するかを指し示す。図示していない他のフィールドが存在してもよいが、各トランザクションインプット(ここではVin[y]160を例として示している)に対して、先行トランザクションのトランザクションID(TxID)161、その先行トランザクション(トランザクションインプット160に一致するトランザクションアウトプットを供するトランザクション)のアウトプットのうち1つに対するインデックス162を含む一組のフィールドが存在し、TxID161及びインデックス162が一緒になって先行トランザクションのアウトプットを参照するポインタ163を形成する。ここで使用されるとき、進行中又は現在のトランザクションに対しての文脈で使用されるときの用語‘先行トランザクション’は、進行中又は現在のトランザクションによって参照される(及び“使用される”)トランザクションアウトプットを持った、それより前の特定のトランザクションを指す。例において、進行中又は現在のトランザクションは“使用中トランザクション”として参照されることがある。
一部のブロックチェーン実装では、固有のTxID値を割り当てる中央集権的な機構は存在せず、代わりに、例えばトランザクション自体のコンテンツのハッシュを生成することによってなどで、トランザクションに対して固有のTxIDを生成する非中央集権的な機構が存在する。正当なトランザクションは、他の正当なトランザクションのコンテンツと全く同じコンテンツの全てを持つことができないので、正当なトランザクションは各々そのTxIDに対して固有のハッシュを持つことになる(天文学的に低い確率であるハッシュ衝突を除く)。しかし実装上、ここでは、各トランザクションが固有のトランザクションIDを持つと仮定する。ハッシュの性質により、トランザクションのコンテンツからTxIDが生成されると、そのコンテンツのうちのいずれも変更されることができず、TxIDがそのトランザクションに対して有効なままとなる。
図1Bに示すように、トランザクションインプットVin[y]160用のフィールドのセットはまた、続くアンロックスクリプトの長さを指し示すアンロックスクリプト長(Unlocking_Script_Length)フィールド164と、ポインタ163によって指されるトランザクションアウトプットの対応するロックスクリプトを“アンロック”するVin[y]160のアンロックスクリプト(ビットコインプロトコルでは一般的に“scriptSig”と呼ばれる)を収容するアンロックスクリプト(Unlocking_Script)フィールド165と、トランザクション150を制約するために使用されることがあるシーケンス#フィールド166とを含む。
図1Bは、1つのトランザクションインプット及び1つのトランザクションアウトプットのみを明示的に示しているが、各々で2つ以上も可能である。トランザクションインプットに続いて、そのトランザクション150に幾つのトランザクションアウトプット(以下にて説明する)が存在するかを指し示す#voutフィールド180が存在する。各トランザクションアウトプット(ここでは、Vout[x]180を例として示している)に対して、このトランザクションアウトプットVout[x]180によって提供されるトランザクション値を示すアウトプット値フィールド181と、続くロックスクリプトの長さを指し示すロックスクリプト長(Locking_Script_Length)フィールド182と、このトランザクションアウトプットVout[x]180のロックスクリプト(ビットコインプロトコルでは一般的に“scriptPubKey”と呼ばれる)を収容するロックスクリプト(Locking_Script)フィールド183と、を含む一組のフィールドが存在する。説明するように、このトランザクションアウトプットのトランザクション値は、ブロックチェーンノードがそのアンロックスクリプト及びそのロックスクリプトを使用して検証を実行するときにTRUEとして検証することになるアンロックスクリプトを持つトランザクションインプットを有する支出トランザクションを作成することができ誰かによって“使用される”ことができる。トランザクションアウトプットフィールドには、例えば、トランザクション150が指定された将来の時間よりも前に又は指定された将来のブロックよりも前にアクティブにならないように制約することができるロック時間フィールド190などの、他のフィールドが従い得る。支出トランザクションの各トランザクションインプットが先行トランザクションアウトプットの対応するトランザクションアウトプットを指し、且つ先行トランザクションアウトプットがトランザクション値を含む場合、トランザクションインプットは、そのトランザクション値を指し示すフィールドを含む必要がない。
以下に説明するように、様々なノード102が協働して、ここでは会議110と称するグループを形成し得る。図示した例では、3つのノード102が会議110に参加するように示されている。しかし、会議のメンバーの実際数は遥かに多くなり得る。
会議110は、オープンメンバーシップグループであり、その会議110に関連付けられたプールに対する十分な出資の提出を受けて、任意のノード102によって参加され得る。例えば、ノードは、会議110に関連付けられたアカウントへの、例えばデジタル通貨(ビットコインなど)、トークン、又は他の出資若しくは価値などの、デジタル資産の転送を介して、会議に参加し得る。会議に参加するノード102は、マイニングノード及び非マイニングノードの両方を含め、ブロックチェーンネットワーク内の任意のノードとし得る。会議の少なくとも一部の適用において、会議メンバーの役割を果たしているノードは、それらがブロックチェーン全体をダウンロードする(ただし、必ずしも保持するわけではない)という意味で、ブロックチェーンを監視する。会議110を設立して維持する技術は、2017年4月11日に出願された英国特許出願第1705867.8(代理人整理番号第P510727/CEJ)、及び2017年4月11日に出願された英国特許出願第1705869.4(代理人整理番号第P510728/CEJ)に記載されている。
会議のメンバーは、代わりのチェーンネットワーク120を形成することができる。代わりのチェーンネットワーク120は、代わりのチェーンとして参照されることになる分散台帳を作成して維持管理する。代わりのチェーンネットワーク120は、ブロックチェーンネットワーク100上で生成されるアルゴリズム関連の論争を調停するために展開され得る。そのような論争は、1つのノードのプロセッサ生成された作業成果物の信頼性が他のノードによって異議申立てされた場合に存在し得る。代わりのチェーンネットワーク120はまた、他の目的でも展開され得る。
ブロックチェーンネットワーク100に関連付けられたブロックチェーンがプルーフ・オブ・ワークブロックチェーンである一方で、この代わりのチェーンはプルーフ・オブ・ステークブロックチェーンである。プルーフ・オブ・ステークに基づくこの代わりのチェーンネットワーク120は、コンセンサスを達成するための代わりの機構を提供する。プルーフ・オブ・ステークのこの代わりのチェーンにおいて、ブロックチェーンは、プルーフ・オブ・ワークではなくプルーフ・オブ・ステークによって保護される。プルーフ・オブ・ステークの下で、代わりのチェーンのマイナー125は、デジタル資産のセキュリティデポジットを預託し、ブロックをマイニングするノードとして選択される確率は、預託として提供されるデジタル資産の量に比例する。このようなプルーフ・オブ・ステークブロックチェーンシステムを使用することで、プルーフ・オブ・ワークブロックチェーン上でマイニングするのに典型的に必要とされる計算費用及びエネルギーを回避することができる。
複数のノード102が、代わりのチェーンネットワーク120のマイナー125として機能する。代わりのチェーンネットワーク120のマイナー125のうちの少なくとも一部が、ブロックチェーンネットワーク100のマイナー104として働かなくてもよい。代わりのチェーンネットワーク120は、プルーフ・オブ・ステークブロックチェーンネットワークであるので、マイナー125は、マイナーとして含められるためにデジタル資産を預託する。より具体的には、代わりのチェーンのマイナー125は、代わりのチェーンネットワーク120上でマイニングするための結合された検証者セットを形成する。これらのマイナー125はまた、プルーフ・オブ・ワークブロックチェーンネットワーク100に関連する会議110のメンバーであることもできる。すなわち、プルーフ・オブ・ワークブロックチェーンネットワーク100及び代わりのチェーンネットワーク120の両方の一部であるノード102は、代わりのチェーンネットワーク120のマイナー125として、且つプルーフ・オブ・ワークブロックチェーンネットワーク100上で設立された会議110のメンバーとしての役割を果たす。これらのマイナー125は、会議110に加わり、後述する方法に従って会議110に参画する。それらのデジタル資産の会議プールへの預託は、プルーフ・オブ・ワークブロックチェーン内で行われる。すなわち、会議メンバーは、プルーフ・オブ・ワークブロックチェーンネットワーク100上で自身の“ステーク”を預託して会議メンバーとなり、それにより、結合された検証者セットを形成することによって代わりのチェーン上でマイナー125としての役割を果たすことを許される。
実施形態において、代わりのチェーンネットワーク120の代わりのチェーンは、一時的なプルーフ・オブ・ステークブロックチェーンであるプルーフ・オブ・ステークゴーストチェーンとし得る。伝統的なブロックチェーンとは異なり、プルーフ・オブ・ステークゴーストチェーンは、その目的を達成すると終了するように構成される。すなわち、ゴーストチェーンは、その目的が達成されると存在しなくなる単一目的のブロックチェーンである。プルーフ・オブ・ステークゴーストチェーンは、ジェネシスブロックと呼ばれることがあるものである最初のブロックを含み、これは、プルーフ・オブ・ステークゴーストチェーンがその目的のために展開されるときに作り出されるのみである。プルーフ・オブ・ステークゴーストチェーンネットワークの詳細は、2017年4月11日に出願された英国特許出願第1705869.4(代理人整理番号第P510728/CEJ)に記載されている。
ノードとして動作するエレクトロニクス装置
図2は、ブロックチェーンネットワーク100(図1A)内でノード102(図1A)として機能し得るエレクトロニクス装置200の一例のコンポーネントを例示するブロック図である。このエレクトロニクス装置200の例を、プロセッシング装置として参照することもある。エレクトロニクス装置は、例えば、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、例えばスマートフォンなどのモバイル装置、例えばスマートウォッチなどのウェアラブルコンピュータ、又は他のタイプの形態を含め、様々な形態をとり得る。
エレクトロニクス装置200は、プロセッサ210と、メモリ220と、ネットワーク上でのデータ通信のためのネットワークインタフェースデバイス230とを含んでいる。これらのコンポーネントは、直接的又は間接的に互いに結合されて互いに通信し得る。例えば、プロセッサ210、メモリ220及びネットワークインタフェースデバイス230は、バス240を介して互いに通信し得る。メモリ220は、ここに記載される機能を実行するための機械読み取り可能命令及びデータを有したコンピュータソフトウェアプログラムを格納する。例えば、メモリは、プロセッサ210によって実行されるときにエレクトロニクス装置にここに記載の方法を実行させるプロセッサ実行可能命令を含み得る。プロセッサ実行可能命令は、プロセッサ210によって実行されるときに、エレクトロニクス装置に、ブロックチェーンネットワーク100(図1A)と関連付けられたプロトコルを実装させる命令を含み得る。例えば、それらの命令は、ビットコインプロトコルを実装するための命令を含み得る。
メモリ220は、ブロックチェーンネットワーク100(図1A)又はその一部のグローバル台帳を格納し得る。すなわち、メモリ220は、ブロックチェーンの全てのブロック、又はそれらブロックのうちの一部(例えば、直近の複数のブロック、又は一部のブロック内の情報の一部など)を格納し得る。また、代わりのチェーン(例えば、ゴーストチェーン)が展開されるとき、メモリ220は、代わりのチェーン(例えば、ゴーストチェーン)又はその一部を格納し得る。
メモリ220は、図2では単一のブロックで示されているが、実際には、エレクトロニクス装置200は、複数のメモリコンポーネントを含み得る。メモリコンポーネントは、例えば、RAM、HDD、SSD、フラッシュドライブなどを含む種々のタイプのものとし得る。異なる目的には異なるタイプのメモリが適することがある。また、メモリ220は、プロセッサ210とは別に示されているが、プロセッサ210が内蔵メモリを含んでもよい。
図2に例示するように、プロセッサ210は、トラステッド実行環境(Trusted Execution Environment;TEE)250として参照されるセキュアな領域を含み得る。TEE250は、隔離された実行環境であり、エレクトロニクス装置200に対して、例えば隔離された実行、トラステッドアプリケーションの完全性、及び資産機密性などの、追加のセキュリティを提供する。TEE250は、TEE250内で実行される命令及びデータが、エレクトロニクス装置200の残りの部分からの及び例えばエレクトロニクス装置の所有者などの外部パーティからのアクセス及び操作から保護されるように、少なくとも部分的にハードウェアレベルで実装される。TEE250内のデータ及び計算は、TEE250を含むノード102を動作させるパーティから保護される。TEE250は、TEE250の中にロードされたコンピュータ命令及びデータが機密性及び完全性の点で保護されることを保証する実行空間及びデータストレージを提供することができる。TEE250は、プロセッサ210上で実行するセキュア仮想マシンとして実装されることができる。代わりの実施形態では、TEE250は、プロセッサ210とは別個であり且つ異なる専用のセキュアプロセッサによって実装されてもよい。TEE250は、例えば鍵などの重要なリソースの完全性及び機密性を保護するために使用され得る。TEE250は、TEE250内で実行される命令及びデータが、エレクトロニクス装置200の残りの部分からの及び例えばエレクトロニクス装置の所有者などの外部パーティからのアクセス及び操作から保護されるように、少なくとも部分的にハードウェアレベルで実装される。TEE250内のデータ及び計算は、TEE250を含むノード102を動作させるパーティから保護されることができる。
TEE250は、エンクレーブをインスタンス化し、そして、累積的にハッシュしながら一度に一つずつメモリのページを追加するように動作し得る。期待されるハッシュをリモートマシンが決定及び格納するように、同様の処理がリモートマシン(これは、デベロッパマシン又は他のマシンとし得る)上で実行されてもよい。従って、エンクレーブが承認されたアルゴリズムを実行していることを保証するために、エンクレーブのコンテンツをリモートマシンによって検証することができる。この検証は、ハッシュ同士を比較することによって実行され得る。エンクレーブが完全に構築されると、それがロックダウンされる。TEE250内でコードを実行し、コードに秘密を送ることが可能であるが、コードを変更することはできない。最後のハッシュが、(TEEの内部にある)証明鍵によって署名され、データ所有者に利用可能にされることで、それを、データ所有者が秘密をエンクレーブに送る前に検証し得る。
TEE250は、会議110(図1A)によって使用される会議公開鍵に関連付けられた秘密鍵シェアの機密性及び完全性を保護するために使用され得る。例えば、TEE250は、秘密鍵シェアの生成及び記憶のために使用され得る。TEE250が意図することは、TEE250エンクレーブ内で保持されている秘密鍵シェア、又はメンバー間通信若しくはエンクレーブ間通信からの他の秘密鍵シェアに関する情報を、いずれのメンバーも直接的に取得することができない、ことを保証することである。このプロトコルはまた、エンクレーブの閾値の侵害に対しても堅牢である。また、TEE250が、真正なものであるとともに、会議110によって実装されるプロトコルのための承認されたコンピュータ実行可能命令を実行していること、を他のノード102に証明するために、TEE250は、ノード102(図1A)によって使用され得るリモート証明を可能にし得る。リモート証明は、TEE250によって、特定ピースのコードを実行し、そのエンクレーブの内部で、そのエンクレーブの内部証明鍵によって署名された、そのコードのハッシュを送信することによって提供され得る。
TEE250は、それまでエレクトロニクス装置200上で秘密鍵シェアを用いていた会議110のメンバーが会議を離れることを選択したときに、秘密鍵シェアの削除を保証することを証明するために使用され得る。エレクトロニクス装置200は、削除の照明を、TEE250にて提供されるリモート証明プロトコルを介して、他の会議メンバーに信号伝達し得る。削除の証明は、メンバーが自身のメンバーデポジットを引き出すことを許可される前に必要とされ得る。すなわち、デポジットの返還は、メンバーのエンクレーブ内で保持される秘密鍵シェアの削除に対する証明を条件とし得る。
TEE250は、TEEのエンクレーブの内部にあるセキュアな乱数発生器を備えることができ、それを用いて、秘密鍵、ランダムチャレンジ、又は他のランダムデータを生成し得る。TEE250はまた、外部メモリからデータを読み出すように構成されてもよく、また、外部メモリにデータを書き込むように構成されてもよい。そのようなデータは、エンクレーブの内部のみで保持される秘密鍵で暗号化され得る。
TEE250は、例えばトラステッドプラットフォームモジュール(TPM)又はインテルソフトウェアガードエクステンション(SGX)などの様々なプラットフォームを用いて実装され得る。例えば、SGXは、リモート認証をサポートします。これは、エンクレーブが、クォート(quote)として知られるメンバーの所与のハッシュを用いて特定のエンクレーブを実行しているプロセッサから署名済みステートメントを取得することを可能にするものであるリモート証明をサポートする。それらの署名済みステートメントがSGX仕様に準拠した真正なTEEに由来することを、例えばインテルアテステーションサービス(IAS)などの第三者証明サービスが、証明し得る。
エレクトロニクス装置200は、ブロックチェーンネットワーク100(図1A)のノード102としての役割を果たすとともに、会議110(図1A)に加わる又はその他の方法で参加することができる。会議110は、デジタル資産保有者のグループが、ブロックチェーンネットワーク100(図1A)によってサポートされる例えばデジタル通貨、トークン、又は他のステーク若しくは価値などのデジタル資産をプールするときに形成され、そのデジタル資産のプールは、対応する秘密鍵におけるシェアが、プールに拠出された資産の量に比例して会議メンバーによって(好ましくは、会議メンバーのTEEの内部で)保持されるように、単一の公開鍵(会議公開鍵)の下でロックされる。エレクトロニクス装置200はまた、代わりのチェーンネットワーク120(図1A)のノード102としての役割を果たすこともできる。
会議
会議110は、同意式のグループであってもよいし、非同意式のグループであってもよい。すなわち、会議110には、ブロックチェーンネットワーク100内の任意のノード(図1A)(すなわち、ブロックチェーン内の情報の少なくとも一部を監視及び保管する任意のノード)が加わり得る。会議110に加わるために、ノード102は、会議110に関連付けられたデジタル資産プールに(すなわち、1つ以上のデジタル資産に関連付けられ、ひいては、会議の他のメンバーに関連付けられた公開グループアドレスに)1つ以上のデジタル資産を転送する。このデジタル資産プールは、会議プールとして参照されることもある。例えば、ノード102は、そのようなデジタル資産を、会議プールに関連付けられたアドレスに(すなわち、公開グループアドレスとしても参照されることもある“会議アドレス”に)転送(すなわち、預託)することによって、会議110に加わり得る。デジタル資産は、会議公開鍵と呼ぶ単一の公開鍵を用いるグループ閾値署名の管理下に置かれる。会議メンバーは、分配的に生成された秘密鍵シェアを保有する。特定の会議メンバーが保有するシェアの数は、その特定の会議メンバーがプールに預託した額に比例し得る。
会議アドレスに転送されるデジタル資産を含むものである、会議110によって管理されるデジタル資産は、閾値署名スキームの管理下に置かれることができる。閾値署名スキームの下では、デジタル資産が会議110の管理を離れて転送されることを可能にする有効な署名を生成するために、それらトータルの秘密鍵シェア持分が閾値を超えるメンバーのグループが必要とされる。すなわち、会議110によって管理されるデジタル資産の発信転送に対して有効な署名を生成するために、少なくとも閾数の秘密鍵シェアを使用しなければならない。
会議公開鍵すなわちCPKは、秘密鍵シェアの見返りとして会議110のメンバーによって会議プールに預けられたデジタル資産、及び秘密鍵シェアを取得すること以外の理由で預けられた、会議プールに関連付けられたアドレスに会議110のメンバー又は非メンバーによって預けられた(すなわち、完全に、部分的に、又は条件付きで会議の管理下に置かれた)デジタル資産を背負う。非メンバー又はメンバーは、様々な理由で、会議に関連付けられたアドレスにデジタル資産を預け得る。
同じ会議公開鍵が、メンバーデポジット(すなわち、秘密鍵シェアの見返りとして会議メンバーによって提供されたデジタル資産)と、他の目的でメンバー又は非メンバーによって提供されたデジタル資産との両方を背負うので、会議公開鍵に対する少なくとも一部のデポジットは、デポジットの種類を指し示すように特別にフラグを立てられ得る。例えば、会議公開鍵にデジタル資産を転送するトランザクションは、行われる預託の性質を指し示すフラグ、識別子、又は他の属性を含み得る。例として、会議に加わるため又は会議メンバーのステークを拡大することを目的とするものではない、会議公開鍵にデジタル資産を転送するトランザクションは、その預託が別目的のために行われていることを指し示すための特別な識別子を含み得る。このような識別子は、秘密鍵生成を維持管理するときに、会議110に関連するノード102によって使用され得る。より具体的には、グループに加わる目的でデジタル資産を預託するノード102は、(デジタル資産を預託したことの結果として)会議110に関する秘密鍵シェアを割り当てられる一方で、他の目的でデジタル資産を預託した他のノード102は、会議に関する(すなわち、会議公開鍵に対応する)会議秘密鍵シェアを保持しないとし得る。
会議110は、メンバーデポジットの全て又は一部の没収という脅しを通じて協調的な行動が強制される自治グループとして活動し得る。非協調的な又は悪意あるメンバーは、そのようなデジタル資産を、多数の正直なメンバーによる協調プロトコルへの参加によって没収され得る。また、会議メンバーが会議110を去ることを願いするとき、メンバーデポジットを引き出し得る(すなわち、会議110がメンバーデポジットをその会議メンバーの個人アドレスに転送し戻すことを要求し得る)。しかしながら、資金の引き出しは、その引き出しを承認するために、グループ(すなわち、会議)のメンバーによって、有効なデジタル署名を生成するのに必要な閾値を超える秘密鍵シェア数が使用された場合にのみ実行される。
会議110によって実装される閾値署名スキームは、様々なタイプのものとし得る。例えば、閾値署名スキームは、少なくとも閾数の秘密鍵シェアが、有効な署名を生成することに寄与している限り、nパーティ間での署名権限の共有を可能にすることができる。閾値よりも小さい如何なるサブセットも、有効な署名を生成することができない。閾値署名スキームは楕円曲線デジタル署名アルゴリズム(ECDSA)スキームとし得る。例えば、ECDSAスキームは、“A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme”,2003 EIII 46th Midwest Symposium on Circuits and Systems,1:276-280 (2003)でIbrahimらによって提案されたタイプのものとし得る。この閾値署名スキームは、秘密鍵を再構成するためにn個の鍵保有者のパーティからのt+1個の鍵シェアが必要とされるという楕円曲線暗号ベースのアルゴリズムであるデジタル署名スキームの拡張である。このスキームを用いることで、秘密鍵を再構成する必要なく、また、いずれのパーティも自身の鍵シェアを他パーティに明らかにすることなく、有効な署名を構成し得る。なお、他の好適な署名スキームが、会議110によって実装されてもよい。
ユーザがパスワードでトランザクションを許可することを可能にするために会議が関与するコンセンサス機構を採用する方法例
次に、図3−図8Bを参照して、ユーザ(ここでは“要求者”と称する)が、ユーザがユーザ選択によるパスワードで1つ以上のトランザクションを許可することを可能にするために会議が関与するコンセンサス機構を採用する方法を例示する。図3に示すように、このコンセンサス機構はロジック的に、会議を設立するフェーズ301と、初期設定フェーズ303(初期設定トランザクションを伴う)と、資金提供フェーズ305(資金提供トランザクションを伴う)と、支払承認フェーズ307(支出前トランザクション及び支出トランザクションを伴う)と、を含む一連のフェーズに分割されることができる。パスワードは、この方法のどのフェーズにおいても決して直接的に露呈されない。パスワードのエントロピーは高いものである必要はなく(故に、低くすることができ)、これは、パスワードの覚えやすさを高めることができる。何故なら、パスワードの情報の量はパスワードのエントロピーに比例するからである。支払承認フェーズ307は場合により、資金提供トランザクション内で規定された資金を要求者がパスワードを用いて転送するために、複数回繰り返され得る。また、複数の個々のユーザがユーザ選択によるパスワードを用いて1つ以上のトランザクションを許可することを可能にするために、フェーズ301で会議が設立されると、初期設定フェーズ303、資金提供フェーズ305、及び支払承認フェーズ307の処理を複数のユーザに対して複製することができる。
実施形態において、このコンセンサス機構は、楕円曲線上の双線形写像(バイリニアマップ)を採用するデジタル署名スキームを利用する。このような双線形写像は、マッピングeで2つの暗号グループの要素間のペアリングを第3グループに使用するペアリングベースの暗号の一形態である。どちらの群でも離散対数問題が困難な同一の素数位数qの2つの有限巡回群(G=<P>,・),(G,・)を考える。マッピングe:G1×G1→G2は、次の3つの条件が満たされる場合且つその場合にのみ、双線形写像と呼ばれる:
1.双線形性:∀P,Q∈G,∀a,b∈Z ,e(aP,bQ)=e(P,Q)ab
2.非縮退性:G=<P>=><e(P,P)>=G
3.多項式時間でマッピングeを計算可能である。
楕円曲線上の双線形写像を用いる決定論的署名スキームは、D.Boned,B.Lynn,H.Sachem,“Short Signatures from the Weil Pairing”,International Conference on the Theory and Application of Cryptology and Information Security,ASIACRYPT 2001,pp.514-532にて開示された。このスキームでは、適切に選択されたG,Gを仮定したランダムオラクルモデルの下で安全性が証明される。より具体的には、署名者の秘密鍵をx ∈ とし、対応する公開鍵y=gをG=<g>の要素であるとする。H:{0,1}→Gをハッシュ関数とする。メッセージmを署名及び検証するステップは次のとおりである:
・署名(m):メッセージmの署名σはH(m) (G内)である。
・検証(σ,m):e(g,σ)=e(y,H(m))の場合にのみ受け入れる。
Bone,B.Lynn,及びSachemの署名スキームは、A.Boldyreva,“Efficient Threshold Signature, Multisignature and Blind Signature Schemes Based on the Gap-Diffie-Hellman-Group Signature Scheme”,PKC 2003,LNCS 2139,pp.31-46,Springer-Verlag,2003において、t−out−of−n閾値署名スキームへと一般化された。この場合、n個のグループ内の任意のt個の署名者がメッセージmに署名することができる。i番目の署名者の秘密鍵をx とし、対応する公開鍵y=gxiをG=<g>の要素であるとする。ここで、マスターシークレットx=Σ(x)であり、ただし、Lはラグランジュ係数であり、iのうち利用可能なのがどのt値であるかに依存するものである。マスター公開鍵はy=gであり、個々の公開鍵はy=gxiである。メッセージmを署名及び検証するステップは次のとおりである:
・署名(m):t個の署名者の各々が署名のシェア:σ=H(m)xiを作成する。なお、各σの正当性は、e(g,σ)=e(y,H(m))を確かめることによってチェックされ得る。署名σは、iのt値に対してσ=Пσ Liとして決定され得る。
・検証(m,σ):e(g,σ)=e(y,H(m))である場合にのみ受け入れる。
図3−図8のコンセンサス機構の実施形態によって使用されるデジタル署名スキームは、詳細に後述するように、ユーザ選択によるパスワードをデジタル署名スキームに組み込むことによって、Boldyrevaのt−out−of−n閾値署名スキーム上に拡張する。会議を設立するフェーズ301は、図4の処理401−405を含む。初期設定フェーズ303は、図5A−図5Dの処理501−537を含む。資金提供フェーズ305は、図6の処理601−605を含む。支払承認フェーズ307は、本開示の一実施形態では図7A−図7Dの処理701−751を含み、あるいは場合により、本開示の他の一実施形態では図8の処理737’−751’を含む。
なお、要求者(又はこの例では“アリス“)に関して実行される処理は、図3−図8の左側に示し、会議のメンバーであるノード102によって又はそれに関して実行される処理は、図3−図8の右側に示す。要求者に関して実行される処理(又はその一部)はデジタルウォレットを伴い得る。そのようなデジタルウォレットは、典型的には特定の機能(例えば、鍵生成、鍵保管、及びトランザクション署名など)のためにスマートカード又はUSBデバイスを使用するものであるハードウェアウォレットとし得る。それに代えて、デジタルウォレットは、オンラインであって何らかのやり方でインターネットに接続されたシステムを使用するものであるホットウォレットであってもよい。
図4は、会議110を設立するフェーズ301の詳細を例示している。
処理401にて、会議のメンバーとして参加するノード102が識別され、斯くして会議110が設立される。会議110を確立し、維持するための技術は、GB特許Applに記載されている。会議110を設立して維持する技術は、2017年4月11日に出願された英国特許出願第1705867.8(代理人整理番号第P510727/CEJ)、及び2017年4月11日に出願された英国特許出願第1705869.4(代理人整理番号第P510728/CEJ)に記載されている。
処理403にて、会議110が、楕円曲線上の双線形写像を使用するデジタル署名スキームに関するパラメータ(例えば、第1のグループG1、第2のグループG2、マッピング関数e、及びハッシュ関数H)を決定する。
処理405において、会議110のメンバーが分散プロトコルを使用し、それにより、会議の各メンバーiのTEEが会議秘密鍵xにおける自身の秘密鍵シェアxを決定して保有する。この実施形態では、デジタル署名スキームの双線形写像の双線形条件に従って、x ∈ である。分散プロトコルはまた、会議秘密鍵xに対応する会議公開鍵(CPK)を決定する。
図5A−図5Dは、初期設定フェーズ303の詳細を例示している。
処理501にて、要求者(アリス)が初期設定トランザクションTを生成する。要求者(アリス)は公開鍵Pkを有するアカウントを持っていると仮定する。初期設定トランザクションTは、要求者(アリス)に関連付けられるパスワードを設定したいという願いを会議110に示す又は信号伝達する。初期設定トランザクションTは、公開鍵Pkで要求者のアカウントから転送されてCPKに支払われる初期設定手数料Fを規定する。実施形態において、初期設定トランザクションTは、初期設定手数料Fが会議公開鍵CPKによってロックされ、それ故に、対応する会議秘密鍵xに基づく署名を用いて署名されたトランザクションによって支払われ得ることを規定することができる。なお、初期設定手数料Fは、初期設定トランザクションTを処理し、それ故に初期設定フェーズ303に参加したことの見返りとして会議110に転送されることになる。
実施形態において、初期設定トランザクションTは、要求者のアカウントのUTXO、及びUTXOをアンロックする関連付けられたアンロックスクリプト(例えば、scriptSig)を規定する1つ以上のトランザクションインプットと、初期設定手数料Fを会議公開鍵CPKでロックする関連付けられたロックスクリプト(例えば、scriptPubKey)で、初期設定手数料Fと等しい値を規定するトランザクションアウトプットとを含むことができ、従って、会議公開鍵CPKを提供するアンロックスクリプト(例えば、scriptSig)と、対応する会議秘密鍵xに基づく署名と、を有するトランザクションインプットを持つ支出トランザクションによって使用され得る。初期設定トランザクションTは場合により、(1つ以上の)トランザクションインプットのUTXOと初期設定手数料Fから暗示的な取引手数料を差し引いたものとの間の差を表すものである、要求者のアカウントに返される変更のための別のトランザクションアウトプットを含み得る。
処理503にて、要求者(アリス)が、初期設定トランザクションTをブロックチェーンネットワーク100にブロードキャストし、それにより、初期設定トランザクションTを会議110のメンバーに通信する。そして、要求者(アリス)の処理は、処理517へと進む。
処理707にて、ブロックチェーンネットワーク100のノード(会議110のメンバー及び場合により他の非メンバーノードを含む)が、初期設定トランザクションTを検証し、ブロックチェーンネットワーク100のマイニングノード(会議110のメンバーである必要はない)が、ブロックチェーンネットワーク100のブロックチェーンに保管するために、検証された初期設定トランザクションTをマイニングすることができ、それにより、会議110のCPKへの初期設定手数料Fの転送が確認される。なお、初期設定トランザクションTは、マイニングされた全てのトランザクションの必要条件を満たすことを要求され得る(例えば、1つのそのような条件は、初期設定トランザクションTがマイナーに十分な取引手数料を提供することである)。
処理507にて、会議110の各メンバーiが、初期設定トランザクションTを受信して処理する。
処理509にて、会議110の各メンバーiのTEEが、要求者(アリス)に属する公開鍵Pkを、ハッシュ関数Hを用いてハッシュすることによって、第1のグループG1に対するジェネレータ関数gを決定する。
処理511にて、会議110の各メンバーiのTEEが、509で決定されたジェネレータ関数gを用いて、自身の秘密鍵シェアxに基づく量gxiを生成する。実施形態において、量gxiは、グループG1の反復適用を介して取得されることができ、その処理は、−加法的又は乗法的で−グループに依存し、加法又は累乗法に対応することになる。実施形態において、量gxiは、単純に累乗法として示すグループの反復適用を用いた、グループの反復適用G ∋ g:=H(Pk)から取得されることができる。
処理513にて、会議110の各メンバーiのTEEが、要求者(アリス)へのプライベートメッセージM(gxi)を生成する。プライベートメッセージM(gxi)は、要求者(アリス)に属する公開鍵Pkで暗号化され得る量gxiを含む。実施形態において、プライベートメッセージM(gxi)は、メンバーiのTEEに関連付けられた公開鍵と関連付けられ、メンバーiのTEEの対応する秘密鍵で署名されることができる。なお、プライベートメッセージM(gxi)は、会議の秘密鍵シェアxを要求者(アリス)に明らかにしないが、要求者(アリス)が量gxiの一貫性を検証することを可能にする特定のブラインドにされた量を含むことができ、これは、Ibrahimらの“A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme”,2003 EIII 46th Midwest Symposium on Circuits and Systems,1:276-280 (2003)に記載された技術に基づくことができる。
処理515にて、会議110の各メンバーiが、プライベートメッセージM(gxi)を要求者(アリス)に送信し、会議110のメンバーの処理は531へと進む。
処理517にて、要求者(アリス)が、会議110のメンバーによって要求者(アリス)に送られたプライベートメッセージM(gxi)を受信して処理する。メンバーiのTEEに関連付けられた対応する公開鍵を用いてプライベートメッセージM(gxi)の署名を検証することによって、各プライベートメッセージM(gxi)の正当性をチェックすることができる。
処理519にて、要求者(アリス)が、量gxiが一貫しているかを判定する。519の一貫性チェックは、幾つもある周知の検証可能な秘密共有スキームのいずれか1つを使用して実行されることができる。https://en.wikipedia.org/wiki/Verifiable_secret_sharingを参照されたい。519の一貫性チェックはまた、Stadler,M.の“Publicly verifiable secret sharing”,In International Conference on the Theory and Applications of Cryptographic Techniques,May 1996,pp.190-199に記載されるような公開された検証可能な秘密共有スキームを用いて行われてもよい。これらのスキームは、(i)矛盾するシェアを特定し、(ii)パーティに‘秘密に送付された’量又はシェアが、ブロードキャストされるブラインドにされた量又はシェアと異なるかをチェックするために使用されることができ、これは、Ibrahimらに記載された技術に基づくことができる。一貫性チェックを実行するために、量gxiは、要求者(アリス)に属するとともに公開鍵Pkに対応する秘密鍵を用いて解読されることができる。
処理521にて、要求者(アリス)が、519の一貫性判定の結果を報告するトランザクションTc1を生成し、トランザクションTc1をブロックチェーンネットワーク100にブロードキャストし、それにより、トランザクションTc1を会議110のメンバーに通信する。(1つ以上の)実施形態において、トランザクションTc1の結果は、矛盾する量gxiを提供したノードの参照(例えば、そのノードのTEEに関する公開鍵など)を含むことができ、あるいは、量gxiの全てが一貫している場合にはヌル参照を含むことができる。
処理523にて、要求者(アリス)が、トランザクションTc1を評価して、量gxiが一貫していることをそれが指し示しているかをチェックする。そうである場合、要求者(アリス)の処理は525乃至529へと続き、そうでない場合には、要求者(アリス)の処理は、別の初期設定トランザクションTを生成してブロードキャストするために501へと戻り得る。
処理525にて、要求者(アリス)がパスワードPwを選択又はその他の方法で入力する。
処理527にて、要求者(アリス)が、ハッシュ関数Hを用いて公開鍵Pkをハッシュすることによって、第1のグループG1に関するジェネレータ関数gを決定する。
処理529にて、要求者(アリス)が、ジェネレータ関数gを用いて、パスワードPw及び量gxiに基づく公開鍵yを構築し、初期設定フェーズにおける要求者(アリス)の処理は終了する。実施形態において、公開鍵yは:
y=gPwП(gxiLi=gPw+x (1)
として構築されることができ、ここで、Lは適切なラグランジュ係数である。
なお、Pwが低エントロピーであるにもかかわらず、公開鍵yは圧倒的確率で固有である。何故なら、Pkが固有であり、ひいては、gも同様となるからである。
処理531にて、会議110のメンバーが、トランザクションTc1を受信して処理する。
処理533にて、会議110の各メンバーiが、トランザクションTc1を評価して、量gxiが一貫していることをそれが指し示しているかをチェックする。そうである場合、処理は535へと続き、そうでない場合には、処理は537へと続く。
処理535にて、会議110が、初期設定手数料Fを会議110のメンバーに配分するためのステップを行い、初期設定フェーズにおける会議110のメンバーの処理が終了する。
処理537にて、会議110が、初期設定手数料Fを要求者(アリス)に返還する(要求者はこのフェーズにおいて過失がないため)とともに、(トランザクションTc1の結果によって報告された)矛盾する量gxiを提供した会議110の悪意あるメンバーノードのセキュリティデポジットを没収するためのステップを行い得る。実施形態において、会議メンバーは、会議110の悪意あるメンバーノードのセキュリティデポジットを没収するために、代わりのプルーフ・オブ・ステークチェーン(例えば、ゴーストチェーン)を使用することができる。没収されたセキュリティデポジットは、場合により、会議110の他のメンバーに移転され、あるいは、没収されたセキュリティデポジットを使用不可能なアドレスに移転することによって焼却され得る。537の後、初期設定フェーズにおける会議110のメンバーの処理は終了することができる。
図6は、資金提供フェーズ305の詳細を例示している。
処理601にて、要求者(アリス)が、一部又は全てがパスワードPwを用いて転送され得る要求者(アリス)の資金fを規定する資金提供トランザクションTを生成する。資金提供トランザクションTはまた、i)パスワードを用いて資金fの一部又は全てを転送する如何なる試みにも取引デポジット料D*fを提供する必要がある場合の取引デポジット率、ii)ジェネレータ関数g、及びiii)資金fをロックする公開鍵yを規定する。
この実施形態において、資金fは、公開鍵yによってロック(阻害)され、それ故に、735にて閾数の会議メンバーから送られる量σs,iとパスワードPwとから生成される支出署名σをメタデータとして含む1つ以上の署名されたトランザクション(それらの各々を、署名された支出トランザクションTとして参照する)によって支出され得る。この実施形態において、ブロックチェーンネットワーク100へのノード(会議110のメンバー、及び会議110のメンバーではないノードを含むことができる)が協働して、署名された支出トランザクションTを検証することの一部として、公開鍵yを用いて支出署名σを検証することができ(以下の処理743を参照)、それが実効的に、資金提供トランザクションTの資金f上の公開鍵yが関与するロック(阻害)を解除する。
実施形態において、資金提供トランザクションTは、要求者のアカウントのUTXO、及びUTXOをアンロックする関連付けられたアンロックスクリプト(例えば、scriptSig)を規定する1つ以上のトランザクションインプットと、資金fを公開鍵yでロックする関連付けられたロックスクリプト(例えば、scriptPubKey)で、資金fに等しい値を規定するトランザクションアウトプットとを含むことができ、従って、公開鍵yと、パスワードPw及び会議秘密鍵xから導出される支出署名σと、を提供するアンロックスクリプト(例えば、scriptSig)を有するトランザクションインプットを持つ支出トランザクションによって使用され得る。資金提供トランザクションTはまた、場合により、取引デポジット率D及びジェネレータ関数gを規定する他のトランザクションアウトプット(支出不可能)を含むことができる。資金提供トランザクションTはまた、場合により、(1つ以上の)トランザクションインプットのUTXOと資金fから暗示的な取引手数料を差し引いたものとの間の差を表すものである、要求者のアカウントに返される変更のための別のトランザクションアウトプットを含み得る。
処理603にて、要求者(アリス)が、資金提供トランザクションTをブロックチェーンネットワーク100にブロードキャストする。
処理605にて、ブロックチェーンネットワーク100のノード(会議110のメンバー及び場合により他の非メンバーノードを含む)が、資金提供トランザクションTを検証し、ブロックチェーンネットワーク100のマイニングノード(会議110のメンバーである必要はない)が、ブロックチェーンネットワーク100のブロックチェーンに保管するために、検証された資金提供トランザクションTをマイニングすることができる。なお、資金提供トランザクションTは、マイニングされた全てのトランザクションの必要条件を満たすことを要求され得る(例えば、1つのそのような条件は、資金提供トランザクションTがマイナーに十分な取引手数料を提供することである)。
図7A−図7Dは、支払承認フェーズ307の詳細を例示している。
処理701にて、要求者(アリス)が、資金提供トランザクションTによってロックされた資金fを参照する署名されていない支出トランザクションTを生成する。未署名支出トランザクションTは(以下の739及び741で署名されてブロードキャストされるときに)資金fの一部を受領者に移転することになる。
実施形態において、未署名支出トランザクションTは、要求者の資金提供トランザクションTによってロックされた資金fを参照するトランザクションインプットと、この値を受領者の公開鍵に基づいてロックする関連付けられたロックスクリプト(例えば、scriptPubKey)で資金fの一部に等しい値を規定する第1のトランザクションアウトプットとを含むことができ、それ故に、受領者の公開鍵と受領者の秘密鍵に基づく署名とを提供するアンロックスクリプト(例えば、scriptSig)を有するトランザクションインプットを持つ支出トランザクションによって使用され得る。
処理703にて、要求者(アリス)が、取引デポジット料D*fを、会議公開鍵CPKの下でそれをロックして、転送する支出前トランザクションTPSを生成する。支出前トランザクションTPSはまた、支出手数料F、対応する未署名支出トランザクションTのハッシュ(すなわち、H(T))、及び公開鍵Pk’を含む。支出手数料Fは、支出前トランザクションTPS及び支出トランザクションTを処理するために、要求者(アリス)が会議110に進んで提供する手数料である。公開鍵Pk’は、要求者が資金を移動することを願うアカウントのアドレスである。このアドレスは、デポジットを転送するのに使用される公開鍵Pkと同じであってもよいし、そうでなくてもよい。
実施形態において、支出前トランザクションTPSは、要求者のアカウントのUTXO、及びUTXOをアンロックする関連付けられたアンロックスクリプト(例えば、scriptSig)を参照する1つ以上のトランザクションインプットと、額D*fを会議公開鍵CPKでロックする関連付けられたロックスクリプト(例えば、scriptPubKey)で、額D*fと等しい値を規定するトランザクションアウトプットとを含むことができ、従って、会議公開鍵CPKと、会議秘密鍵xを用いて生成される署名と、を提供するアンロックスクリプト(例えば、scriptSig)を有するトランザクションインプットを持つ支出トランザクションによって使用され得る。支出前トランザクションTPSは、場合により、支出手数料F、対応する未署名支出トランザクションTのハッシュ(すなわち、H(T))、及び公開鍵Pk’を規定する他のトランザクション出力(支出不可能)含むことができる。支出前トランザクションTPSは、場合により、(1つ以上の)トランザクションインプットのUTXOと額(D*f)から暗示的な取引手数料を差し引いたものとの間の差を表すものである、要求者のアカウントに返される変更のための別のトランザクションアウトプットを含み得る。
処理705にて、要求者(アリス)が、支出前トランザクションTPSをブロックチェーンネットワーク100にブロードキャストし、それにより、支出前トランザクションTPSを会議110のメンバーに通信し、そして、要求者(アリス)の処理は、723へと進む。
処理707にて、ブロックチェーンネットワーク100のノード(会議110のメンバー及び場合により他の非メンバーノードを含む)が、支出前トランザクションTPSを検証し、マイニングノード(会議110のメンバーである必要はない)が、ブロックチェーンネットワーク100のブロックチェーンに保管するために、検証された支出前トランザクションTPSをマイニングすることができ、それにより、取引デポジット料D*fの転送が確認される。なお、支出前トランザクションTPSは、マイニングされた全てのトランザクションの必要条件を満たすことを要求され得る(例えば、1つのそのような条件は、支出前トランザクションTPSがマイナーに十分な取引手数料を提供することである)。
処理709にて、会議110のメンバーが、支出前トランザクションTPSを受信して処理し、支出前トランザクションTPSによって規定された支出手数料Fが十分であるかを判定する。支出手数料Fの十分性は、支出前トランザクションTPSを処理するのに必要とされる計算作業(後述する処理709乃至749を含む)の量に依存し得る。
処理711にて、会議110のメンバーが、支出手数料Fの十分性の判定を評価する。支出手数料Fが不足であると判定された場合、処理は713へと進み、それ以外の場合(支出手数料Fが十分であると判定された場合)には、処理は715−719へと続く。
実施形態において、709における支出手数料Fの十分性の判定は、会議のメンバーによって実行される処理の計算作業を反映する特殊な作業単位を含んでもよく、これは、イーサリアムブロックチェーンネットワークにおける“ガス”に類似する。支出前トランザクションTPSを処理する際に会議110のメンバーによって実行される特定の計算処理の各々に、その特定の計算処理を実行するのに必要な計算リソースに従って、特定の量の、この特殊な単位が割り当てられる。支出前トランザクションTPSを処理する際に会議110のメンバーによって実行される全ての計算処理について、その特定量の特殊単位が共に合計され、特殊単位当たりの価格が乗算されることで、支出手数料Fの必要閾値が決定される。支出手数料Fがこの閾値を上回る場合、711にて支出手数料Fが十分であるとみなされる。支出手数料Fがこの閾値を超えない場合には、711にて支出手数料Fが不足しているとみなされる。
処理713にて、会議110が、支出前トランザクションTPSの更なる処理(処理715−719及び処理729−733)と、後続の支出トランザクションTに対する処理(処理741−749)とをバイパスするためのステップを行い得る。
処理715にて、会議110の各メンバーiのTEEが、自身の秘密鍵シェアxと、支出前トランザクションTPSに含まれる未署名の支出トランザクションTのハッシュ(H(T)と表記する)とを用いて、対応する量σs,iを生成する。(1つ以上の)実施形態において、量σs,iは、σs,i=H(Txiとして生成されることができる。なお、会議110の他のメンバーは、この段階では支出トランザクションTを知らない。
処理717にて、会議110の各メンバーiのTEEが、要求者(アリス)へのプライベートメッセージM(σs,i)を生成する。プライベートメッセージM(σs,i)は、要求者(アリス)の公開鍵Pkで暗号化され得る715で生成された量σs,iを含む。実施形態において、プライベートメッセージM(σs,i)は、メンバーiのTEEの公開鍵と関連付けられ、メンバーiのTEEの対応する秘密鍵で署名されることができる。なお、プライベートメッセージM(σs,i)は、会議の秘密鍵シェアxを要求者(アリス)に明らかにしないが、要求者(アリス)が量σs,iの一貫性を検証することを可能にする特定のブラインドにされた量を含むことができ、これは、Ibrahimらの“A robust threshold elliptic curve digital signature providing a new verifiable secret sharing scheme”,2003 EIII 46th Midwest Symposium on Circuits and Systems,1:276-280 (2003)に記載された技術に基づくことができる。
処理719にて、会議110の各メンバーiが、プライベートメッセージM(σs,i)を要求者(アリス)に送信し、処理は729へと進む。
処理721にて、要求者(アリス)が、会議110のメンバーによって要求者(アリス)に送られたプライベートメッセージを受信して処理する。メンバーiのTEEに関連付けられた対応する公開鍵を用いてプライベートメッセージM(σs,i)の署名を検証することによって、各プライベートメッセージM(σs,i)の正当性をチェックすることができる。
処理723にて、要求者(アリス)が、受信したプライベートメッセージM(σs,i)に含まれる量σs,iが一貫しているかを判定する。723の一貫性チェックは、519に関して上述した検証可能な秘密共有スキームのうちのいずれか1つを使用して実行されることができる。一貫性チェックを実行するために、量σs,iは、要求者(アリス)に属するとともに公開鍵Pkに対応する秘密鍵を用いて解読されることができる。
処理725にて、要求者(アリス)が、723の一貫性判定の結果を報告するトランザクションTc2を生成し、トランザクションTc2をブロックチェーンネットワーク100にブロードキャストし、それにより、トランザクションTc2を会議110のメンバーに通信する。(1つ以上の)実施形態において、トランザクションTc2の結果は、矛盾する量σs,iを提供したノードの参照(例えば、そのノードのTEEに関する公開鍵など)を含むことができ、あるいは、受信した量σs,iの全てが一貫している場合にはヌル参照を含むことができる。
処理727にて、要求者(アリス)が、トランザクションTc2を評価して、量σs,iが一貫していることをそれが指し示しているかをチェックする。そうである場合、要求者(アリス)の処理は735−739へと続き、そうでない場合には、要求者(アリス)の処理は、別の未署名支出トランザクションTを生成するために701及び後続処理へと戻り得る。
処理729にて、会議110のメンバーが、トランザクションTc2を受信して処理し、受信した量σs,iが一貫していることをそれが指し示しているかをチェックする。
処理731にて、会議110の各メンバーiが、受信した量σs,iが一貫していることを729の処理が指し示したかを判定する。そうである場合、処理は741へと続き、そうでない場合には、処理は733へと続く。
処理733にて、会議110が、支出前トランザクションTPSによって規定され且つ会議公開鍵CPKの下でロックされた取引デポジット料D*fを、要求者によって規定された公開鍵Pk’に転送する(要求者はこのフェーズにおいて過失がないため)とともに、(トランザクションTc2の結果によって報告された)矛盾する量σs,iを提供した会議110の悪意あるメンバーノードのセキュリティデポジットを没収し、そして、後続の支出トランザクションTに対する処理をバイパスするためのステップを行い得る。実施形態において、会議メンバーは、会議110の悪意あるメンバーノードのセキュリティデポジットを没収するために、代わりのプルーフ・オブ・ステークチェーン(例えば、ゴーストチェーン)を使用することができる。没収されたセキュリティデポジットは、場合により、会議110の他のメンバーに移転され、あるいは、没収されたセキュリティデポジットを使用不可能なアドレスに移転することによって焼却され得る。733の後、支払承認フェーズにおける会議110のメンバーの処理は終了することができる。
処理735にて、要求者(アリス)が、未署名支出トランザクションTのハッシュ(すなわち、H(T))、パスワードPw、及び閾数の会議メンバーから受信した量σs,iを用いて署名用の署名σを生成する。閾数の会議メンバーは、初期設定フェーズにおいて、秘密鍵シェアxが会議メンバーに配分されるときに決定され得る。(1つ以上の)実施形態において、署名用の署名σは、σ=H(TPwПσs,i Li=H(TPw+xとして生成されることができる。
処理737にて、要求者(アリス)が、(701で最初に生成された)支出トランザクションTSの署名として、735で生成された署名σsを含める。一例において、署名σsは、支出トランザクションTSのトランザクションインプットのアンロックスクリプト(例えば、scriptSig)の部分として含められることができ、ここで、トランザクションインプットは、公開鍵yによってロックされた資金fを参照するものである。
処理739にて、要求者が、支出トランザクションT(ここでは署名用の署名σで署名されている)をブロックチェーンネットワーク100にブロードキャストする。
処理741にて、ブロックチェーンネットワークのノード(会議110のメンバー及び場合により他の非メンバーノードを含む)が、支出トランザクションTを検証し、これは、支出トランザクションTの署名σを対応する資金提供トランザクションTの公開鍵yに対して検証する処理を含む。このような検証は、資金提供トランザクションTに規定されたジェネレータ関数g及びデジタル署名スキームのマッピング関数eを使用することができる。例えば、このような検証は、e(g,σ)=e(y,H(T))である場合にのみ支出トランザクションTの署名σを受け入れ得る。実施形態において、公開鍵yに対して支出トランザクションTの署名σを検証する処理は、支出トランザクションTSのトランザクションインプット(トランザクションインプットは、要求者の資金提供トランザクションTによってロックされた資金fを参照している)のアンロックスクリプト(例えば、scriptSig)と、参照された(公開鍵yを使用して資金fをロックする)要求者の資金提供トランザクションTの対応するトランザクションアウトプットのロックスクリプト(例えば、scriptPubKey)と、によって規定されることができる。
処理743にて、ブロックチェーンネットワークのノード(会議110のメンバー及び場合により他の非メンバーノードを含む)が、741で実行された資金提供トランザクションTの検証を評価する。資金提供トランザクションTの検証が成功した(及びそれ故に、支出トランザクションTの署名σが対応する資金提供トランザクションTの公開鍵yに対して成功裏に検証された)場合、処理は745及び747へと続く。そうでない場合(恐らくは、支出トランザクションTの署名σの、対応する資金提供トランザクションTの公開鍵yに対する検証が失敗したために、資金提供トランザクションTの検証が失敗した場合)、処理は749へと続く。
処理745にて、マイニングノード(会議110のメンバーである必要はない)が、支出トランザクションTを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングすることができ、それにより、支出トランザクションTの受領者への資金の一部の移転が確認される。
処理747にて、会議110のメンバーが、支出前トランザクションTPS内で参照され且つ会議公開鍵CPKによってロックされた額(D*f−F)を公開鍵Pk’に転送するとともに、支出手数料Fを会議110のメンバーに転送するステップを行い得る。これは、会議公開鍵CPKの下でのロックを解除する会議生成による署名を含むアンロックスクリプト(例えば、scriptSig)を有した、会議公開鍵CPKの下でロックされた支出前トランザクションTPSのトランザクションアウトプットを参照する第1のトランザクションインプットと、額(D*f−F)を公開鍵Pk’に転送する第1のトランザクションアウトプットとを有するトランザクションを、会議110が生成することを伴い得る。このトランザクションはまた、会議公開鍵CPKの下でのロックを解除する会議生成による署名を含むアンロックスクリプト(例えば、scriptSig)を有した、会議公開鍵CPKの下でロックされた支出前トランザクションTPSのトランザクションアウトプットを参照する第2のトランザクションインプットと、Fを会議のCPKに転送する第2のトランザクションアウトプットとを含むことができる。ブロックチェーンネットワークのノード(会議110のメンバー及び場合により非メンバーノードを含む)は、このトランザクションを検証することができ、マイニングノード(会議110のメンバーである必要はない)は、検証されたトランザクションを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングすることができる。
処理749にて、支出トランザクションTは正当でないとみなされ、会議110が、支出前トランザクションTPS内で参照され且つ会議公開鍵CPKによってロックされた取引デポジット料D*fを没収し、取引デポジット料D*fを会議110のメンバーに配分するためのステップを行い得る。これは、取引デポジット料D*fにおける分け前を会議110のメンバーに転送するトランザクションを伴うことができ、各トランザクションが、そのアウトプットが取引デポジット料D*fを会議110のCPKに転送するものである支出前トランザクションTPSを参照するトランザクションインプットを含む。トランザクションインプットはまた、会議の秘密鍵xから導出された、会議生成による署名(秘密鍵シェアxを利用する)を含むアンロックスプリクト(例えば、scriptSig)を含む。このアンロックスクリプトは、先行トランザクションにおいてCPKの下でロックされた取引デポジット料D*fのロックを解除する。ブロックチェーンネットワークのノード(会議のメンバー及び非メンバーノードを含み得る)は、これらのトランザクションを検証することができ、1つ以上のマイニングノード(会議のメンバーである必要はない)が、検証されたトランザクションを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングし得る。
代わりの一実施形態において、資金提供トランザクションTは、資金fが(上述の公開鍵yの代わりに)会議公開鍵CPKによってロックされており、それ故に、(秘密鍵シェアxを利用することによって)会議秘密鍵xを用いてトランザクションに署名するために協働する閾数の会議メンバーによってアンロックされ得ることを規定することができる。この場合、署名された支出トランザクションTは公開鍵yを含み、会議110のメンバーは、署名された支出トランザクションTの署名用の署名σを、公開鍵yを用いて検証するように動作する。従って、この実施形態では、会議メンバーのみが、署名された支出トランザクションTの署名σを公開鍵yに対して検証する必要がある(743’乃至751’参照)。会議110の閾数のメンバーが、公開鍵yを用いて、署名された支出トランザクションTの署名用の署名σを成功裏に検証した場合、会議のメンバーが協働して、(秘密鍵シェアを利用することによって)会議秘密鍵xを用いて二次(セカンダリ)支出トランザクションを構築して署名する。二次支出トランザクションは、支出トランザクションTから複製されることができるが、要求者の資金提供トランザクションTによってロックされた資金fを参照するトランザクションインプットのためのアンロックスクリプト(例えば、scriptSig)を有し、このようなアンロックスクリプトは、会議秘密鍵xから導出した会議生成による署名を含む。このアンロックスクリプトは、資金提供トランザクションTにおいてCPKの下でロックされた資金fのロックを解除する。なお、また、この実施形態では、支出前トランザクションTPSによって転送される取引デポジット料D*fは、会議110のCPKの下でロックされる。この実施形態では、支出フェーズの処理が、図8A及び図8Bに示すように変更され得る。
処理735’にて、要求者(アリス)が、パスワードPw、及び閾数の会議メンバーから受信した量σs,iを用いて署名用の署名σを生成する。閾数の会議メンバーは、初期設定フェーズにおいて、秘密鍵シェアxが会議メンバーに配分されるときに決定され得る。(1つ以上の)実施形態において、署名用の署名σは、σ=H(TPwПσs,i Li=H(TPw+xとして生成されることができる。
処理737’にて、要求者(アリス)が、(701で最初に生成された)支出トランザクションTSの一部として署名σsを含める。
処理739’にて、要求者が、支出トランザクションT(署名用の署名σを含む)をブロックチェーンネットワーク100にブロードキャストし、それにより、支出トランザクションTを会議110のメンバーに通信する。
処理741’にて、会議110のメンバーが、支出トランザクションTを処理し、支出トランザクションTに含まれる公開鍵yを用いて、支出トランザクションTの署名用署名σを検証する。このような検証は、資金提供トランザクションTに含まれるジェネレータ関数g及びデジタル署名スキームのマッピング関数eを使用することができる。例えば、このような検証は、e(g,σ)=e(y,H(T))である場合にのみ支出トランザクションTの署名用署名σを受け入れ得る。
処理743’にて、会議110のメンバーのみで、741’で実行された公開鍵yを用いた支出トランザクションTの署名用署名σの検証を評価する。支出トランザクションTの署名σの検証が失敗した場合、処理は745’へと続く。そうでない場合(支出トランザクションTの署名用署名σの検証が成功した場合)、処理は747’乃至755’へと続く。
処理745’にて、支出トランザクションTは正当でないとみなされ、会議110が、支出前トランザクションTPSによって規定され且つ会議公開鍵CPKの下でロックされた取引デポジット料D*fを没収し、取引デポジット料D*fを会議110のメンバーに配分するためのステップを行い得る。これは、取引デポジット料D*fにおける分け前を会議110のメンバーに転送するトランザクションを伴うことができ、各トランザクションが、会議公開鍵CPKの下でロックされた支出前トランザクションTPSのトランザクション出力を参照するトランザクションインプットを含む。トランザクションインプットはまた、会議秘密鍵xから導出された、会議生成による署名(秘密鍵シェアxを利用する)を含むアンロックスプリクト(例えば、scriptSig)を含む。このアンロックスクリプトは、支出前トランザクションTPSにおいて会議公開鍵CPKの下でロックされた取引デポジット料D*fのロックを解除する。ブロックチェーンネットワークのノード(会議のメンバー及び非メンバーノードを含み得る)は、これらのトランザクションを検証することができ、1つ以上のマイニングノード(会議のメンバーである必要はない)が、検証されたトランザクションを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングし得る。
処理747’にて、マイニングノード(会議110のメンバーである必要はない)が、支出トランザクションTを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングし得る。
処理749’にて、会議110のメンバー(他の非メンバーノードはなし)が協働して、(それらの秘密鍵シェアxを利用する)会議秘密鍵xを用いて支出トランザクションTの署名を生成する。
処理751’にて、会議110のメンバー(他の非メンバーノードはなし)が、支出トランザクションTを複製することによって、二次支出トランザクションを構築する。二次支出トランザクションには、資金提供トランザクションTに規定されるCPKの下での資金fのロックを解除するために、749’の会議生成による署名が含められる。
処理753’にて、ブロックチェーンネットワークのノード(会議110のメンバー及び場合により非メンバーノードを含む)が、二次支出トランザクションを検証し、マイニングノード(会議110のメンバーである必要はない)が、検証された二次支出トランザクションを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングし得る。
処理755’にて、会議110のメンバーが、支出前トランザクションTPSによって規定され且つ会議公開鍵CPKの下でロックされた額(D*f−F)を公開鍵Pk’に転送するとともに、支出手数料Fを会議110のメンバーに転送するステップを行い得る。これは、(CPKの下でのロックを解除する)749’の会議生成による署名を含むアンロックスクリプト(例えば、scriptSig)を有した、会議公開鍵CPKの下でロックされた支出前トランザクションTPSのトランザクションアウトプットを参照する第1のトランザクションインプットと、額(D*f−F)を公開鍵Pk’に転送する第1のトランザクションアウトプットとを有するトランザクションを、会議110が生成することを伴い得る。このトランザクションはまた、(CPKの下でのロックを解除する)749’の会議生成による署名を含むアンロックスクリプト(例えば、scriptSig)を有した、会議公開鍵CPKの下でロックされた支出前トランザクションTPSのトランザクションアウトプットを参照する第2のトランザクションインプットと、Fを会議のCPKに転送する第2のトランザクションアウトプットとを含むことができる。ブロックチェーンネットワークのノード(会議110のメンバー及び場合により非メンバーノードを含む)は、このトランザクションを検証することができ、マイニングノード(会議110のメンバーである必要はない)は、検証されたトランザクションを、ブロックチェーンネットワーク100のブロックチェーン内での保管のためにマイニングすることができる。
なお、会議110のメンバーではないブロックチェーンネットワーク100のノードは、741’及び743’における公開鍵yを用いた支出トランザクションTの支出署名σの検証に参加しない。これは、会議110のメンバーだけでなく非メンバーノードも支出トランザクションTの検証に参加し得る図7A−図7Dの実施形態の処理741及び743とは異なる。
なお、図7A−図7Dの実施形態は、大規模な会議に対して効率的であり得る、何故なら、これは、会議110が、(それらの秘密鍵シェアxを利用する)会議秘密鍵xを用いて支出トランザクションTのための署名を生成し、この署名を対応する資金提供トランザクションTFのCPKに対して検証することを必要としないからである。しかしながら、図8A−図8Bの実施形態は、‘セカンドレイヤ’プロトコルによって実装され得るという利点を有する。例えば、それは、ビットコインコンセンサスルールを修正する必要なしに、ビットコインブロックチェーンネットワーク上に実装されることができる。
ここに記載される改良されたデジタル署名スキームの安全性は、パスワードPw及びDの長さの関数である。初期設定フェーズにおいて、g:=H(Pk)を選択することは(ただし、Pkは、そこから手数料Fが転送されるアカウントの公開鍵である)、gが要求者に固有であることを意味する。何故なら、(我々が仮定することには)要求者のみがPkに対応する秘密鍵(料金Fの転送を承認するのに必要なものである)を持っているからである。
次のような攻撃を考察されたい。攻撃者は、対応するパスワードPwの知識を持たずに資金fを使いたい。敵は、必要なデポジットD*fを会議公開鍵CPKに転送するとともにそれに対して秘密鍵を保有する公開鍵Pkを規定する支出前トランザクションTpsをブロードキャストするだろう。支出前トランザクションTpsはまたH(T)を規定し、Tは資金を自身に消費するものである。敵は会議からσ=H(Txiを受信することになる。しかし、敵はパスワードPwを知らないので、Pwの推測を繰り返してσを構築しなければならない。Pwの推測が失敗するたびに、敵はDT*fを失う。D=1/25とすると、パスワードPwが2桁の数字の‘PIN’で構成されている場合、正しく推測するためには平均で50回のトライアルが必要であり、それは2f(アカウント内の資金の2倍)の支出を必要とする。従って、経済的な観点から、この攻撃は実行可能でない。
他の実施形態において、要求者は、資金提供トランザクションによってロックされたデジタル資産を転送することについて、例えば、要求者が保有する秘密鍵sでの署名という‘通常の方法’によってなど、他のオプションを指定してもよい。この場合、要求者は、パスワードを使用するよりも安価であるため(会議に支払う手数料を必要としないため)、通常の方法を用いて行うことを好むかもしれない。この状況では、要求者が選択したパスワードに基づく支出前トランザクション及び支出トランザクションについてのトランザクション処理は、要求者が秘密鍵sを紛失した場合にのみ使用されてもよい。
更なる他の実施形態において、ここに記載される1つ以上のトランザクションは、トランザクションのそれぞれの署名の検証が成功か否かにかかわらず、ブロックチェーン上での保管のためにマイニングされることができる。
上述の例は、特定のプルーフ・オブ・ワークブロックチェーンネットワーク(例えば、ビットコインブロックチェーンネットワークなど)を参照しているが、ここに記載される方法はまた、他のタイプのプルーフ・オブ・ワークブロックチェーンネットワーク及び場合により他のプルーフ・オブ・ステークブロックチェーンネットワークと共に使用されてもよい。
上述の方法は、概して、ノードで実行されるものとして説明されているが、方法の特徴は、他のノードとの協働を当てにしており、他の場所で実行されてもよい。
なお、上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の請求項によって規定される本発明の範囲から逸脱することなく、数多くの代わりの実施形態を設計することができる。請求項において、括弧内に置かれた如何なる符号も、請求項を限定するものと解釈されるべきでない。用語“有している”及び“有する”並びにこれらに類するものは、いずれかの請求項又は明細書全体に列挙されたもの以外の要素又はステップの存在を除外するものではない。本明細書において、“有する”は“含む又はからなる”を意味し、“有している”は“含んでいる又はからなっている”を意味する。単数形での要素の参照は、それらの要素の複数形での参照を除外するものではなく、その逆もまた然りである。本発明は、幾つかの別個の要素を有するハードウェアによって、また、適切にプログラムされたコンピュータによって実装され得る。幾つかの手段を列挙するデバイスクレームにおいて、それらの手段のうちの幾つかが、同一のハードウェアアイテムによって具現化されてもよい。特定の複数の手段が相互に異なる従属請求項に記載されているという単なる事実は、それらの手段の組み合わせが有利に使用され得ないということを指し示すものではない。

Claims (15)

  1. 要求者及びノードのグループが関与するブロックチェーン実装されたセキュリティ方法であって、
    (i)前記要求者によって選択されたパスワードと、(ii)前記ノードのグループによって送信された複数の第1の量とに基づいて、前記要求者の暗号鍵を生成し、前記複数の第1の量は、前記ノードのグループの秘密鍵シェアと、楕円曲線上の双線形写像を使用するデジタル署名スキームのジェネレータ関数とに基づき、
    前記要求者のブロックチェーントランザクションのための暗号署名を生成し、前記暗号署名は、前記デジタル署名スキームの前記楕円曲線上の双線形写像に基づく前記要求者の前記暗号鍵に対応し、前記暗号署名は、i)前記要求者によって選択された前記パスワードと、ii)前記ノードのグループによって送信された複数の第2の量とに基づき、前記複数の第2の量は、前記ノードのグループの前記秘密鍵シェアに基づき、
    前記要求者の前記暗号鍵を使用して、前記ブロックチェーントランザクションの前記暗号署名を検証する、
    ことを有するブロックチェーン実装されたセキュリティ方法。
  2. 少なくとも1つの通信ネットワークを介して互いに動作可能に結合されたノードのグループを確立し、前記グループの各ノードがデジタル資産を前記グループに転送し、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)要求者から資金提供トランザクションを受信し、前記資金提供トランザクションは、全て又は一部が前記要求者によって選択されたパスワードを使用して転送され得るものである前記要求者の1つ以上のデジタル資産を指定し、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記資金提供トランザクションにて指定された前記要求者の前記1つ以上のデジタル資産の一部を転送する支出トランザクションを受信し、前記支出トランザクションは、前記要求者の前記暗号鍵に対応する前記暗号署名を含み、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記要求者の前記暗号鍵を使用して、前記支出トランザクションに含まれる前記暗号署名を検証する、
    ことを更に有する請求項1に記載のブロックチェーン実装されたセキュリティ方法。
  3. (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記要求者から初期設定トランザクションを受信し、前記初期設定トランザクションは、前記要求者に関連付けられるパスワードを設定したいという願いを指し示し、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記初期設定トランザクションに応答して第1の量を生成し、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記第1の量を含んだ第1のメッセージを前記要求者に送信する、
    ことを更に有する請求項2に記載のブロックチェーン実装されたセキュリティ方法。
  4. (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記要求者から支出前トランザクションを受信し、前記支出前トランザクションは、取引デポジットを転送するとともに前記支出トランザクションの少なくとも一部のハッシュを含み、前記支出トランザクションの少なくとも一部の前記ハッシュは、前記デジタル署名スキームのハッシュ関数に基づき、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記支出前トランザクションに応答して第2の量を生成し、及び/又は
    (好ましくは、前記ノードのグループに属する少なくとも1つのノードによって)前記第2の量を含んだ第2のメッセージを前記要求者に送信する、
    ことを更に有する請求項2に記載のブロックチェーン実装されたセキュリティ方法。
  5. 前記ノードのグループへの通信のために、前記要求者から資金提供トランザクションをブロードキャストし、前記資金提供トランザクションは、全て又は一部が前記要求者によって選択されたパスワードを使用して転送され得るものである前記要求者の1つ以上のデジタル資産を指定し、
    前記ノードのグループへの通信のために、前記要求者からの支出トランザクションをブロードキャストし、前記支出トランザクションは、前記資金提供トランザクションにて指定された前記要求者の前記1つ以上のデジタル資産の一部を転送するものであり、前記支出トランザクションは前記暗号署名を含む、
    ことを更に有する請求項1に記載のブロックチェーン実装されたセキュリティ方法。
  6. 前記ノードのグループへの通信のために、前記要求者からの初期設定トランザクションをブロードキャストし、前記初期設定トランザクションは、前記要求者に関連付けられるパスワードを設定したいという願いを指し示し、前記初期設定トランザクションに応答して前記ノードのグループによって前記複数の第1の量が生成されて送信され、及び/又は
    前記要求者によって選択された前記パスワードと、前記初期設定トランザクションに応答して前記ノードのグループによって送信された前記複数の第1の量と、に少なくとも部分的に基づいて前記暗号鍵を生成する、
    ことを更に有する請求項5に記載のブロックチェーン実装されたセキュリティ方法。
  7. 前記ノードのグループへの通信のために、前記要求者からの支出前トランザクションをブロードキャストし、前記支出前トランザクションは、取引デポジットを転送するとともに前記支出トランザクションの少なくとも一部のハッシュを含み、前記支出トランザクションの少なくとも一部の前記ハッシュは、前記デジタル署名スキームのハッシュ関数に基づき、前記支出前トランザクションに応答して前記ノードのグループによって前記複数の第2の量が生成されて送信される、
    ことを更に有する請求項5に記載のブロックチェーン実装されたセキュリティ方法。
  8. 少なくとも1つの通信ネットワークを介して互いに動作可能に結合された前記ノードのグループを確立し、前記グループの各ノードがデジタル資産を前記グループに転送し、前記グループの各ノードが、対応する秘密鍵シェアを保管し、
    要求者システムにより、前記グループへの通信のために、前記要求者からの初期設定トランザクションをブロードキャストし、前記初期設定トランザクションは、前記要求者に関連付けられるパスワードを設定したいという願いを指し示し、
    前記グループのノードにより、前記初期設定トランザクションに応答して複数の第1の量を生成し、所与のノードによって生成される前記第1の量は、該ノードの前記秘密鍵シェアと、前記デジタル署名スキームのジェネレータ関数と、に少なくとも部分的に基づき、
    前記グループのノードにより、それぞれの第1のメッセージを前記要求者に送信し、これら第1のメッセージが、前記複数の第1の量を含み、
    前記要求者システムにより、前記要求者によって選択された前記パスワードと、前記複数の第1の量とに基づいて前記暗号鍵を生成し、
    前記要求者システムにより、前記グループへの通信のために、前記要求者から資金提供トランザクションをブロードキャストし、前記資金提供トランザクションは、全て又は一部が前記要求者によって選択された前記パスワードを使用して転送され得るものである前記要求者の1つ以上のデジタル資産を指定し、
    前記要求者システムにより、前記グループへの通信のために、前記要求者からの支出前トランザクションをブロードキャストし、前記支出前トランザクションは、取引デポジットを転送するとともに、前記デジタル署名スキームのハッシュ関数を用いて前記要求者の特定の資金の一部を転送する未署名支出トランザクションのハッシュを含み、
    前記グループのノードにより、前記支出前トランザクションに応答して複数の第2の量を生成し、所与のノードによって生成される前記第2の量は、前記支出前トランザクションに含まれる前記未署名支出トランザクションの前記ハッシュと、該ノードの前記秘密鍵シェアと、に少なくとも部分的に基づき、
    前記グループのノードにより、第2のメッセージを前記要求者に送信し、これら第2のメッセージが、前記複数の第2の量を含み、
    前記要求者システムにより、前記要求者によって選択されたパスワードと、前記複数の第2の量とに基づいて、前記暗号署名を生成し、
    前記要求者システムにより、前記グループへの通信のために、前記要求者からの支出トランザクションをブロードキャストし、前記支出トランザクションは、前記要求者の前記特定の資金の一部を転送し、前記支出トランザクションは、前記未署名支出トランザクションに基づくとともに、前記暗号署名を含み、そして、
    少なくとも前記グループのノードによって、前記要求者の前記暗号鍵を使用して、前記支出トランザクションの前記暗号署名を検証する、
    ことを更に有する請求項5に記載のブロックチェーン実装されたセキュリティ方法。
  9. 前記初期設定トランザクションは、前記要求者によって前記グループに支払われる初期設定手数料を含み、及び/又は、
    前記初期設定手数料は好ましくは、前記グループに関連付けられた公開グループアドレスに支払われ、及び/又は、
    前記グループの少なくとも1つのノードが、矛盾する第1の量を前記要求者に送信した場合に、前記初期設定手数料は好ましくは、前記要求者に返還され、及び/又は
    前記第1の量の矛盾は好ましくは、検証可能な秘密共有スキームを用いて決定される、
    請求項3、6又は8のいずれかに記載のブロックチェーン実装されたセキュリティ方法。
  10. 前記支出前トランザクションは更に、支出手数料を規定し、及び/又は
    前記取引デポジットは、前記グループに関連付けられた公開グループアドレスの下でロックされ、及び/又は
    前記検証することが成功した場合に、前記グループは選択的に、前記取引デポジットから前記支出手数料を差し引いた額を前記要求者に転送し、及び/又は
    前記検証することが失敗した場合に、前記グループは選択的に、前記取引デポジットを没収し、及び/又は
    前記グループのノードのうちの少なくとも1つのノードが、矛盾する第2の量を前記要求者に送信した場合に、前記取引デポジットは好ましくは、前記要求者に返還され、及び/又は
    前記第2の量の矛盾は好ましくは、検証可能な秘密共有スキームを用いて決定され、及び/又は
    前記支出手数料は好ましくは、前記グループに関連付けられた公開グループアドレスに支払われ、及び/又は
    前記グループのノードは、前記支出手数料が十分であることを検証し、前記支出手数料の十分性は好ましくは、前記支出前トランザクション及び前記支出トランザクションを処理するのに必要とされる計算リソースに基づき、及び/又は
    前記支出手数料の十分性の検証に失敗した場合、前記グループのノードは選択的に、前記支出前トランザクションの更なる処理をバイパスし、及び/又は
    前記支出手数料の前記署名の検証に成功した場合に、前記グループは選択的に、前記支出手数料を前記グループに分配する、
    請求項4、7又は8のいずれかに記載のブロックチェーン実装されたセキュリティ方法。
  11. 前記資金提供トランザクションは、前記要求者の前記1つ以上のデジタル資産が前記暗号鍵によってロックされており、それ故に前記暗号署名によって支出され得ることを規定し、且つ
    前記支出トランザクションの前記署名の前記検証は、前記グループによって実行され、及びオプションで、前記グループに属しない他のノードによって実行される、
    請求項2乃至10のいずれかに記載のブロックチェーン実装されたセキュリティ方法。
  12. 前記資金提供トランザクションは、前記要求者の前記1つ以上のデジタル資産が前記グループの公開鍵によってロックされており、それ故に前記グループの秘密鍵シェアの閾数に基づく署名によって支出され得ることを規定し、
    前記支出トランザクションの前記署名の前記検証は前記グループのみによって実行され、且つ
    前記支出トランザクションの前記署名の検証成功を受けて、前記グループが協働して、前記グループの秘密鍵シェアの閾数に基づいて署名を生成し、該署名を含む二次支出トランザクションを構築する、
    請求項2乃至10のいずれかに記載のブロックチェーン実装されたセキュリティ方法。
  13. 前記複数の第1の量は、前記グループのノードから前記要求者に送信されるプライベートメッセージに含められ、及び/又は前記要求者の公開鍵で暗号化され、及び/又は
    前記グループのノードは各々、該ノードの秘密鍵シェアを保管するトラステッド実行環境を有し、及び/又は
    前記ノードの前記トラステッド実行環境は、前記ノードの前記秘密鍵シェアと、前記デジタル署名スキームの前記ジェネレータ関数と、に少なくとも部分的に基づいて前記第1の量を生成し、及び/又は
    前記複数の第2の量は、前記グループのノードから前記要求者に送信されるプライベートメッセージに含められ、及び/又は前記要求者の公開鍵で暗号化され、及び/又は
    前記ノードの前記トラステッド実行環境は、前記支出前トランザクションに含まれる前記未署名支出トランザクションのハッシュと、前記ノードの前記秘密鍵シェアと、に少なくとも部分的に基づいて前記第2の量を生成し、及び/又は
    前記グループのノードから前記要求者に送信される前記プライベートメッセージは、該ノードの前記トラステッド実行環境の前記公開鍵と関連付けられ、且つ該ノードの前記トラステッド実行環境の対応する前記秘密鍵で署名され、及び/又は
    1つ以上のノードが、前記資金提供トランザクション及び前記支出トランザクションを、プルーフ・オブ・ワークブロックチェーンに格納するためにマイニングする、
    請求項2乃至12のいずれかに記載のブロックチェーン実装されたセキュリティ方法。
  14. コンピュータ実行可能命令を有したコンピュータ読み取り可能記憶媒体であって、前記コンピュータ実行可能命令は、実行されるときに、請求項1乃至13のいずれか一項に記載の方法のいずれかの部分を実行するようにプロセッサを構成する、コンピュータ読み取り可能記憶媒体。
  15. インタフェース装置と、
    前記インタフェース装置に結合されたプロセッサと、
    前記プロセッサに結合されたメモリであり、当該メモリはコンピュータ実行可能命令を格納しており、前記コンピュータ実行可能命令は、実行されるときに、請求項1乃至13のいずれか一項に記載の方法のいずれかの部分を実行するように前記プロセッサを構成する、メモリと、
    を有するエレクトロニクス装置。
JP2020531067A 2017-12-15 2018-12-12 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 Active JP7289298B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023088572A JP2023109981A (ja) 2017-12-15 2023-05-30 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB201721049 2017-12-15
GB1721049.3 2017-12-15
PCT/IB2018/059921 WO2019116249A1 (en) 2017-12-15 2018-12-12 Computer-implemented systems and methods for authorising blockchain transactions with low-entropy passwords

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2023088572A Division JP2023109981A (ja) 2017-12-15 2023-05-30 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法

Publications (2)

Publication Number Publication Date
JP2021507564A true JP2021507564A (ja) 2021-02-22
JP7289298B2 JP7289298B2 (ja) 2023-06-09

Family

ID=65013745

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020531067A Active JP7289298B2 (ja) 2017-12-15 2018-12-12 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
JP2023088572A Pending JP2023109981A (ja) 2017-12-15 2023-05-30 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2023088572A Pending JP2023109981A (ja) 2017-12-15 2023-05-30 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法

Country Status (7)

Country Link
US (2) US11429956B2 (ja)
EP (2) EP4235479A1 (ja)
JP (2) JP7289298B2 (ja)
KR (1) KR20200099149A (ja)
CN (1) CN111480315A (ja)
SG (1) SG11202005570XA (ja)
WO (1) WO2019116249A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188897B2 (en) * 2018-02-13 2021-11-30 Bank Of America Corporation Multi-tiered digital wallet security
WO2023238172A1 (ja) * 2022-06-06 2023-12-14 日本電信電話株式会社 鍵発行システム、鍵発行方法、およびプログラム

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110169013B (zh) * 2016-12-21 2023-04-18 区块链控股有限公司 在区块链上实现复杂功能性的计算机实现的系统和方法
GB201701589D0 (en) 2017-01-31 2017-03-15 Nchain Holdings Ltd Computer-implemented system and method
CN111480315A (zh) * 2017-12-15 2020-07-31 区块链控股有限公司 使用低熵密码授权区块链交易的计算机实现的系统和方法
CN112154626A (zh) 2018-05-14 2020-12-29 区块链控股有限公司 使用区块链执行原子交换的计算机实现的系统和方法
EP3671599A1 (de) * 2018-12-21 2020-06-24 Siemens Aktiengesellschaft Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem
GB2585010B (en) * 2019-06-24 2022-07-13 Blockstar Developments Ltd Cryptocurrency key management
US11238447B2 (en) 2019-06-26 2022-02-01 Advanced New Technologies Co., Ltd. Blockchain transactions with ring signatures
CN112418862A (zh) * 2019-06-26 2021-02-26 创新先进技术有限公司 采用环签名的机密区块链交易的实现方法及装置
US10790990B2 (en) 2019-06-26 2020-09-29 Alibaba Group Holding Limited Ring signature-based anonymous transaction
CN110335042B (zh) * 2019-06-26 2020-10-20 创新先进技术有限公司 基于环签名的匿名交易方法及装置
CN110544167B (zh) * 2019-07-25 2022-03-01 晋商博创(北京)科技有限公司 基于cpk的联盟链的数据处理方法、服务器及存储介质
CN110519059B (zh) * 2019-09-29 2023-05-05 四川师范大学 一种基于双线性映射的区块链双密钥隐匿地址处理方法
CN111160905B (zh) * 2019-12-17 2023-07-18 浙江大学 一种区块链节点用户请求处理保护方法及装置
CN111371558B (zh) * 2020-02-26 2024-01-16 百度在线网络技术(北京)有限公司 区块链数据处理方法、装置、电子设备及介质
US11424911B2 (en) * 2020-03-03 2022-08-23 International Business Machines Corporation Storage and communication environment for cryptographic tags
US11087016B1 (en) 2020-08-20 2021-08-10 Spideroak, Inc. Implementation of a file system on a block chain
CN112241553B (zh) * 2020-10-27 2022-11-04 上海万向区块链股份公司 一种基于多账本架构的区块链隐私保护方法及系统
CN112636929B (zh) * 2020-12-29 2023-01-17 北京百度网讯科技有限公司 群组业务实现方法、装置、设备和存储介质
CN113393225B (zh) * 2021-06-30 2022-10-28 杭州链网科技有限公司 数字货币加密支付方法及系统
CN113538140A (zh) * 2021-07-05 2021-10-22 杭州宇链科技有限公司 一种基于可信执行环境与门限签名的数据交易方法
US11496327B1 (en) * 2021-07-07 2022-11-08 Ava Labs, Inc. Secure and trustworthy bridge for transferring assets across different networks
US11677552B2 (en) * 2021-09-09 2023-06-13 Coinbase Il Rd Ltd. Method for preventing misuse of a cryptographic key

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016526342A (ja) * 2013-05-30 2016-09-01 ミラクル リミテッド ペアリングを使用した多因子ゼロ知識認証
US20160350561A1 (en) * 2015-05-27 2016-12-01 Google Inc. Policies for secrets in trusted execution environments

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101453331A (zh) 2002-04-15 2009-06-10 株式会社Ntt都科摩 利用双线性映射的签名方案
EP1687931B1 (en) * 2003-10-28 2021-12-29 BlackBerry Limited Method and apparatus for verifiable generation of public keys
US20060153364A1 (en) 2005-01-07 2006-07-13 Beeson Curtis L Asymmetric key cryptosystem based on shared knowledge
KR100718687B1 (ko) * 2005-12-23 2007-05-15 학교법인 대전기독학원 한남대학교 겹선형 쌍 함수를 이용한 아이디 기반의 문턱 서명 방법
US9489522B1 (en) * 2013-03-13 2016-11-08 Hrl Laboratories, Llc Method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ECDSA) based digital signatures with proactive security
WO2015160839A1 (en) * 2014-04-17 2015-10-22 Hrl Laboratories, Llc A method for secure and resilient distributed generation of elliptic curve digital signature algorithm (ecdsa) based digital signatures with proactive security
EP3134849A4 (en) * 2014-04-23 2017-11-22 Signpass Ltd. Methods and systems for signature analysis and authentication
EP2975570A1 (de) 2014-07-17 2016-01-20 draglet GmbH Verfahren und eine Vorrichtung zur Absicherung von Zugriffen auf Wallets in denen Kryptowährungen abgelegt sind
WO2016049406A1 (en) * 2014-09-26 2016-03-31 Technicolor Usa, Inc. Method and apparatus for secure non-interactive threshold signatures
WO2017001972A1 (en) 2015-06-30 2017-01-05 Raghav Bhaskar User friendly two factor authentication
US9948467B2 (en) * 2015-12-21 2018-04-17 Mastercard International Incorporated Method and system for blockchain variant using digital signatures
US9565020B1 (en) 2016-02-02 2017-02-07 International Business Machines Corporation System and method for generating a server-assisted strong password from a weak secret
WO2017147696A1 (en) 2016-02-29 2017-09-08 Troy Jacob Ronda Systems and methods for distributed identity verification
US9800411B1 (en) * 2016-05-05 2017-10-24 ISARA Corporation Using a secret generator in an elliptic curve cryptography (ECC) digital signature scheme
CA3017579A1 (en) 2016-06-06 2017-12-14 Thomson Reuters Global Resources Unlimited Company Systems and methods for providing a personal distributed ledger
US10681038B1 (en) * 2016-10-26 2020-06-09 Marvell Asia Pte, Ltd. Systems and methods for efficient password based public key authentication
CN106357401B (zh) * 2016-11-11 2019-09-10 武汉理工大学 一种私钥存储及使用方法
CN110574059A (zh) * 2017-04-11 2019-12-13 区块链控股有限公司 关于区块链的快速分布式共识
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN110754061A (zh) * 2017-06-14 2020-02-04 区块链控股有限公司 用于避免或减少区块链网络上的加密滞留资源的系统和方法
CN107395367B (zh) * 2017-08-08 2020-08-04 三峡大学 一种基于量子密钥的群签名系统
CN107465505B (zh) 2017-08-28 2021-07-09 创新先进技术有限公司 一种密钥数据处理方法、装置及服务器
CN107483205B (zh) * 2017-09-28 2019-08-20 武汉理工大学 一种基于加密的私钥秘密的数字签名生成方法及系统
CN107623569A (zh) 2017-09-30 2018-01-23 矩阵元技术(深圳)有限公司 基于秘密共享技术的区块链密钥托管和恢复方法、装置
CN111480315A (zh) * 2017-12-15 2020-07-31 区块链控股有限公司 使用低熵密码授权区块链交易的计算机实现的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016526342A (ja) * 2013-05-30 2016-09-01 ミラクル リミテッド ペアリングを使用した多因子ゼロ知識認証
US20160350561A1 (en) * 2015-05-27 2016-12-01 Google Inc. Policies for secrets in trusted execution environments

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GENNARO, R., GOLDFEDER, S. AND NARAYANAN, A.: "Threshold-optimal DSA/ECDSA signatures and an application to Bitcoin wallet security", CRYPTOLOGY EPRINT ARCHIVE, vol. Paper 2016/127 ver.20160127:005717, JPN6022043550, 27 January 2016 (2016-01-27), pages 1 - 42, XP061020049, ISSN: 0004898453 *
LI, G., ET AL.: "Two Threshold Multisignature Schemes from Bilinear Pairings", 2007 INTERNATIONAL CONFERENCE ON MULTIMEDIA AND UBIQUITOUS ENGINEERING, JPN6022043551, April 2007 (2007-04-01), pages 1041 - 1045, XP031086669, ISSN: 0004898454 *
MANN, C. AND LOEBENBERGER, D.: "TWO-FACTOR AUTHENTICATION FOR THE BITCOIN PROTOCOL", CRYPTOLOGY EPRINT ARCHIVE, vol. Paper 2014/629 ver.20141104:132246, JPN6022043552, 4 November 2014 (2014-11-04), pages 1 - 18, XP061017249, ISSN: 0004898455 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188897B2 (en) * 2018-02-13 2021-11-30 Bank Of America Corporation Multi-tiered digital wallet security
US11461769B2 (en) 2018-02-13 2022-10-04 Bank Of America Corporation Multi-tiered digital wallet security
WO2023238172A1 (ja) * 2022-06-06 2023-12-14 日本電信電話株式会社 鍵発行システム、鍵発行方法、およびプログラム

Also Published As

Publication number Publication date
EP4235479A1 (en) 2023-08-30
CN111480315A (zh) 2020-07-31
US11429956B2 (en) 2022-08-30
EP3725029B1 (en) 2023-07-12
JP2023109981A (ja) 2023-08-08
WO2019116249A1 (en) 2019-06-20
JP7289298B2 (ja) 2023-06-09
US20210158342A1 (en) 2021-05-27
KR20200099149A (ko) 2020-08-21
US20230131970A1 (en) 2023-04-27
SG11202005570XA (en) 2020-07-29
EP3725029A1 (en) 2020-10-21

Similar Documents

Publication Publication Date Title
JP7289298B2 (ja) 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
US11799637B2 (en) Methods and systems for blockchain-implemented event-lock encryption
JP7442606B2 (ja) 動的ノードグループのための秘密鍵のセキュアな再利用
JP7488305B2 (ja) 暗号資産の回復のための分散型プロトコルを提供するコンピュータ実装システム及び方法
TWI793899B (zh) 使用受信任硬體的安全動態臨限簽名方法
CN111466098A (zh) 用于盲性结果选择的区块链实现的安全系统和方法
US12003616B2 (en) Rapid distributed consensus on blockchain
KR102670611B1 (ko) 블록체인-구현 이벤트-잠금 암호화를 위한 방법 및 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230113

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230425

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230530

R150 Certificate of patent or registration of utility model

Ref document number: 7289298

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150