JP2023076628A - 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法 - Google Patents

一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法 Download PDF

Info

Publication number
JP2023076628A
JP2023076628A JP2023061239A JP2023061239A JP2023076628A JP 2023076628 A JP2023076628 A JP 2023076628A JP 2023061239 A JP2023061239 A JP 2023061239A JP 2023061239 A JP2023061239 A JP 2023061239A JP 2023076628 A JP2023076628 A JP 2023076628A
Authority
JP
Japan
Prior art keywords
blockchain
proof
nodes
computer
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.)
Pending
Application number
JP2023061239A
Other languages
English (en)
Inventor
フレッチャー,ジョン
Fletcher John
スーウェル,マーティン
Sewell Martin
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 Licensing AG
Original Assignee
Nchain Licensing AG
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 Licensing AG filed Critical Nchain Licensing AG
Publication of JP2023076628A publication Critical patent/JP2023076628A/ja
Pending legal-status Critical Current

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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】コンピュータ実施方法を提供する。【解決手段】コンピュータ実施方法は、i)プルーフ・オブ・ステークトークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後、プルーフ・オブ・ステークトークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと、ii)ノードのグループから、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、プルーフ・オブ・ワーク・ブロックチェーンに基づくステップと、iii)識別されたノードによって提出されたブロックを、プルーフ・オブ・ステーク・ブロックチェーンに含めるステップとを含む。【選択図】図1

Description

本発明は、一般に、分散台帳に関し、より詳細には、まとめてバイナリブロックチェーンと呼ばれ得る、一対の結合ブロックチェーンを提供するための方法及びシステムに関する。本発明は、特に、純粋なプルーフ・オブ・ステーク(POS:proof-of-stake)ベースのブロックチェーンと比較して安全性及び信頼性を向上させながら、従来の純粋なプルーフ・オブ・ワーク(POW:proof-of work)ベースのブロックチェーンに対して、ブロック生成におけるより高い規則性及び/又はより高い頻度のブロック生成を達成することに適しているが、これに限定されない。したがって、本発明は、新規で有利なブロックチェーン実装のための安全かつ暗号が実施された解決策を提供する。
本明細書において、「ブロックチェーン」という用語は、電子的なコンピュータベースの分散台帳のすべての形式を包含するように使用される。これらは、ブロックチェーン及びトランザクションチェーン技術、許可及び未許可台帳、コンセンサス(合意)ベースの台帳、共有台帳及びそれらの変形を含むがこれらに限定されない。最も広く知られているブロックチェーン技術の用途はビットコイン台帳であるが、他のブロックチェーンの実装が提案され、開発されている。
ブロックチェーンは、ブロックにより構成される、コンピュータベースの非集中型の分散システムとして実装されるコンセンサスベースの電子台帳であり、ブロックはトランザクション及び他の情報により構成される。ビットコインは、ブロックチェーン上の取引を容易にするために、マイナー(minor)が高価な計算を行うプルーフ・オブ・ワーク・ブロックチェーンの一例である。プルーフ・オブ・ワークベースのブロックチェーンは、動作に大量の電力消費を必要とする大規模な計算資源を必要とし、またブロック生成が不規則で遅いという事実のために批判されている。さらに、所与のブロックが承認される(すなわち、復帰(revert)する可能性が十分に低い)とみなされる前に、その所与のブロックの上にいくつかのブロックが構築されなければならない。
プルーフ・オブ・ワーク・ブロックチェーンの代替として、プルーフ・オブ・ステークベースのブロックチェーンが提案されている。ストック・オブ・ステーク・ブロックチェーンネットワークでは、ブロックチェーンは、プルーフ・オブ・ワークではなく、ストック・オブ・ステークによって保護される。プルーフ・オブ・ステークの下では、マイナーは、特別な口座(special account)にステークを保有する(いくつかのトークンを預ける)。このステークは保証金(security deposit)と呼ばれることがあり、ブロックをマイニングするためのノードとして選択される確率は、保証金として提供されるデジタル資産の量に比例する。プルーフ・オブ・ステーク・ブロックチェーンネットワークを使用して、プルーフ・オブ・ワーク・ブロックチェーンにおいてマイニングするのに必要とされる計算費用とエネルギーを回避することができる。さらに、プルーフ・オブ・ステーク・ブロックチェーンは、プルーフ・オブ・ワーク・ブロックチェーンよりも、より高頻度かつより規則的なブロック生成を可能にする。また、少なくともいくつかのプルーフ・オブ・ステーク・ブロックチェーンは、フォーク(forking)の可能性が低く、ブロックは、ブロックチェーンに追加されるとすぐに有効に承認され得る。しかしながら、プルーフ・オブ・ステークの単純な実装には、「nothing at stake」という問題がある。ブロックチェーン内にフォークが存在する場合、ノードのトークンはフォークの両方の部分(すなわち、競合するブロックチェーン)で重複する可能性がある。ブロックを生成するためにランダムに選択されるマイナーは、フォークの両方の部分にブロックを生成することができる。なぜなら、マイナーにとってそうすることが容易であるからであり、また、フォークのどちらの部分が優勢であろうと、マイナーは報酬を受け取るからである。このような曖昧さは、ブロックチェーンネットワークのセキュリティにとって有害であろう。なぜなら、これは、単一のブロックチェーン上でコンセンサスが得られる速度を低下させ、したがって、ブロック内のトランザクションが承認されたと見なされ得るまでに必要な時間を長くするからである。
Algorandは、プルーフ・オブ・ステーク・ブロックチェーンに関連付けられるnothing at stake問題に対処するとされているプルーフ・オブ・ステーク・ブロックチェーンネットワークの一例である。Algorandでは、ブロックを生成するために、コミッティ(committee)が選択される。より具体的には、リーダー(提案者とも呼ばれることがある)及び検証者が、暗号化ソーティションを実行することによって、すべての公開鍵のセットから自己選択される。提案者はブロックを提案し、検証者は、ネットワーク全体の代わりにビザンチン(Byzantine)コンセンサスアルゴリズムを実行して、ブロックを受け入れるべきかどうかを判断する。Algorandを提案しているMicali氏は、(Micali,S.(2016)Algorand:The efficient and democratic ledger. axXiv:1607.01341v9(2017)[cs.CR]“Micali”を参照されたい)は、Algorandブロックチェーンに関連するトークンの3分の2以上が誠実なユーザによって保有されている限り、フォークが発生する確率は無視することができ、ブロックチェーンは安全であることを示した。しかしながら、Algorandのセキュリティは、メッセージに署名した後に一時的な秘密鍵(ephemeral private keys)が削除されることを条件とする。しかしながら、そのような一時的な秘密鍵の保有者は、そのような鍵を保有することに個人的な経済的利害を有し、Algorandを攻撃に対して潜在的に脆弱にする。さらに、一時的な鍵の使用は、計算費用を導入する。
ブロックチェーンの安全性及び信頼性を危険にさらすことなく、フォークを最小化又は除去するとともに、高い頻度で規則的なブロック生成を可能にするようにブロックチェーンを改良することが望ましい。したがって、これらの態様の1つ以上においてブロックチェーン技術を改善する、改善された方法、システム及びデバイスを提供することが望ましい。
本発明は、添付の特許請求の範囲において定義される。したがって、本発明によれば、添付の特許請求の範囲に定義される方法が提供される。
以下により詳細に説明するように、バイナリブロックチェーンが提供され得る。より具体的には、2つのブロックチェーンが維持されてよい。プルーフ・オブ・ステーク・ブロックチェーンは、ノードが一次ブロックチェーンに様々な種類のトランザクションを追加させることを可能にするよう一次ブロックチェーンとして用いられる。これらのトランザクションは、様々なノード間のトークンの転送を可能にすることができ、スマートコントラクトコード等を含んでもよい。ノードは、一次ブロックチェーンに関連付けられる特別なタイプのリポジトリに1つ以上のトークンを保有する(すなわち、一次ブロックチェーン上の特別なリポジトリ内に「ステーク」を保有する)ことによって、一次ブロックチェーン上にブロックを生成する資格を有することができる。特別なリポジトリは、参照の容易性のために、以下では「口座(account)」と呼ばれることがあり、この特別なタイプのアカウントは、保証金口座と呼ばれることもある。
一次ブロックチェーンに加え、二次ブロックチェーンが使用される。二次ブロックチェーンは、プルーフ・オブ・ワーク・ブロックチェーンであり、二次ブロックチェーンは、一次ブロックチェーンより限られたタイプのトランザクションに使用される。例えば二次ブロックチェーンは、保証金(すなわち、プルーフ・オブ・ステーク・トークン)及び/又は一次ブロックチェーンの保証金口座に関連付けられる残高(balance)を記録するために使用されてよく、二次ブロックチェーン上のそのようなレコードは、一次ブロックチェーン上にブロックを生成する(すなわち、マイニングする)資格を有するノードを識別するために使用されてよい。
一次ブロックチェーン上のトランザクションは、二次ブロックチェーン上のトランザクションよりも規則的で大幅に高い頻度で発生する可能性がある。二次ブロックチェーンのプルーフ・オブ・ワークの性質は、一時的な鍵の使用に関連付けられるセキュリティの懸念事項に対処するため、バイナリブロックチェーンは、Algorandのような純粋なプルーフ・オブ・ステーク・ブロックチェーンよりも強化されたセキュリティと信頼性を提供することができる。
したがって、本発明によれば、コンピュータ実施方法が提供され得る。本方法は、同一の基礎となるブロックチェーン・プロトコル、例えばプルーフ・オブ・ステーク・プロトコル及びプルーフ・オブ・ワーク・プロトコルを共有しない複数のブロックチェーン又はブロックチェーントランザクションの結合、組合せ、関連付け及び/又はリンクを可能にするように構成され得る。
コンピュータ実施方法は、i)プルーフ・オブ・ステーク・トークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後に、プルーフ・オブ・ステーク・トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと、ii)ノードのグループから、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、プルーフ・オブ・ワーク・ブロックチェーンに基づく、ステップと、iii)識別されたノードによって発行されたブロックをプルーフ・オブ・ステーク・ブロックチェーンに含めるステップとを含む。
いくつかの実装では、ノードを識別するステップは所定の基準に従って決定論的に実行される。決定論的識別は、ネットワークの他のノードが共通ノードを識別するように実行されてよい。いくつかの実装では、識別するステップは、暗号化ソーティション(cryptographic sortition)を使用して実行される。
いくつかの実装では、ノードのグループは、決定されたタイプのアドレスにプルーフ・オブ・ステークトークンを転送した少なくともいくつかのノードを含むが、プルーフ・オブ・ステークトークンの転送の、プルーフ・オブ・ワーク・ブロックチェーンにおける登録に関連付けられる承認期間がまだ経過していない場合、決定されたタイプのアドレスにそのプルーフ・オブ・ステークトークンを転送したノードを除外する。
いくつかの実装では、承認期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである。
いくつかの実装では、ブロックは、新たなトークンを生成し、トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加したノードに、新たなトークンの制御を転送する。
いくつかの実装では、ブロックは、新たなトークンを生成し、識別されたノードに新たなトークンの制御を転送する。
いくつかの実装では、コンピュータ実施方法は、ノードによって発行された払い戻し要求(withdrawal request)を識別するステップと、払い戻し要求を発行したノードを前記ノードのグループから除外するステップとを更に含む。
いくつかの実装では、払い戻し要求は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられるトランザクションのメタデータから識別される。
いくつかの実装では、コンピュータ実施方法は、払い戻し要求に関連付けられるアンボンディング期間(unbonding period)の後に、払い戻し要求を発行したノードに、払い戻し要求に関連付けられるプルーフ・オブ・ステーク・トークンを返すように、プルーフ・オブ・ステーク・ブロックチェーンを更新するステップを更に含む。
いくつかの実装では、アンボンディング期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである。
いくつかの実装では、コンピュータ実施方法は、識別されたノードではないノードによって提出されたブロックを拒否するステップを更に含む。
いくつかの実装では、コンピュータ実施方法は、ブロックをプルーフ・オブ・ステーク・ブロックチェーンに含める前に、ブロックがバリデータノード(validator nodes)のグループによって妥当性確認(validate)されているかどうかを検証する(verifying)ステップを更に含み、バリデータノードのグループは、ノードのグループのサブセットであり、バリデータノードは、プルーフ・オブ・ワーク・ブロックチェーンに基づいて識別される。
いくつかの実装では、バリデータノードのグループは、ブロックを妥当性確認するためにビザンチンアルゴリズムを実行するように構成される。
いくつかの実装では、コンピュータ実施方法は、最大の作業量を含む二次ブロックチェーンを識別し、該識別された二次ブロックチェーンからのプルーフ・オブ・ステーク・トークンの分布を、一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次ブロックチェーンと二次ブロックチェーンを一次ブロックチェーンと二次ブロックチェーンの真のコピーとして識別するステップを更に含む。
本発明によれば、電子デバイスが提供されてもよい。電子デバイスは、インタフェースデバイスと、インタフェースデバイスに結合されるプロセッサと、プロセッサに結合されるメモリとを含む。メモリは、実行されると、本明細書で説明される方法を実行するようにプロセッサを構成するコンピュータ実行可能命令をその上に記憶している。
いくつかの実装では、メモリは、プルーフ・オブ・ワーク・ブロックチェーンとプルーフ・オブ・ステーク・ブロックチェーンとを含むバイナリブロックチェーンを記憶する。
本発明によれば、コンピュータ読取可能記憶媒体が提供されてもよい。コンピュータ読取可能記憶媒体は、実行されると、本明細書で説明される方法を実行するようにプロセッサを構成するコンピュータ実行可能命令を含む。
本発明のこれら及び他の態様は、本明細書で説明される実施形態から明らかであり、それに関連して解明されるであろう。次に、本発明の一実施形態を、単なる例示として、添付の図面を参照して説明する。
例示的なバイナリブロックチェーンネットワークのブロック図である。 例示的なバイナリブロックチェーンのブロック図である。 ノードとして機能し得る例示的な電子デバイスのブロック図である。 バイナリブロックチェーンプロトコルに従って実行される例示的な方法のフローチャートである。 デジタル資産を没収する例示的な方法のフローチャートである。 候補ノードがブロックの生成に参加する資格があるかどうかを判断する例示的な方法のフローチャートである。
ブロックチェーンネットワーク
まず、バイナリブロックチェーンに関連付けられる例示のブロックチェーンネットワーク100をブロック図の形で図示する図1を参照する。ブロックチェーンネットワーク100は、公開ブロックチェーンネットワークであってよい。公開ブロックチェーンネットワークは、招待なしに又は他のノードからの合意なしに、誰でも参加することができるピアツーピアのオープンメンバーシップネットワークである。ブロックチェーンネットワーク100が動作するブロックチェーン・プロトコルのインスタンスを実行する分散型電子デバイスは、ブロックチェーンネットワーク100に参加することができる。そのような分散型電子デバイスをノード102と称することができる。ブロックチェーン・プロトコルは、本明細書で説明されるタイプのバイナリブロックチェーンプロトコルであってよい。
ブロックチェーン・プロトコルを実行し、ブロックチェーンネットワーク100のノード102を形成する電子デバイスは、例えばデスクトップコンピュータ、特定用途向け集積回路(ASICs)ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイルデバイス、スマートウォッチのようなウェアラブルコンピュータ又は他の電子デバイスといったコンピュータを含む、様々なタイプのものであってよい。
ブロックチェーンネットワーク100のノード102は適切な技術を用いて互いに結合される。このような通信は、ブロックチェーンに関連付けられるプロトコルに従う。より具体的には、この例では、通信はバイナリブロックチェーンプロトコルに従って起こる。
ノード102は、2つのブロックチェーン、すなわち一次ブロックチェーンと二次ブロックチェーンから構成されるバイナリブロックチェーンを維持する。一次ブロックチェーンは、バイナリブロックチェーンのトランザクションの大部分が記録され、それらが含む任意のコードが実行されるブロックチェーンである。例えば一次ブロックチェーンは、あるノードから別のノードにトークンの制御を移すトランザクションを含み、かつ/又はスマートコントラクトを提供するトランザクションを含み得るブロックを含んでよい。トークンは、デジタル資産又は他の電子的又はネットワーク資源であり、例えば将来のコンピュータ資源又は他のタイプの資源の制御を表してよい。スマートコントラクトは、一次ブロックチェーン上に記憶され、かつブロックチェーンネットワーク100内のノードによって実行され得る、コンピュータプロトコルである。
一次ブロックチェーンは、プルーフ・オブ・ステークによってセキュアにされる。すなわち、ノードが一次ブロックチェーンにブロックを追加する(すなわち、ブロックを「マイニング」する)資格を有するためには、ノードは確かに特定のトークンを「ステーク(掛け金)」として保有しなければならない。これらのトークンは、プルーフ・オブ・ステーク・ブロックチェーンに関連付けられるトークンであるので、保証金又は保証金トークン又はプルーフ・オブ・ステーク・トークンと呼ばれることがある。バイナリブロックチェーンプロトコルは、保証金(すなわち、プルーフ・オブ・ステーク・トークン)を特別なアドレス(すなわち、保証金アドレス)に入れたノードのみ、一次ブロックチェーン上のブロックをマイニングすることを許可する。供託がなされるアドレスは、そのアドレスが所定の又は指定されたタイプのものであるという意味で特別なものとすることができる。例えばアドレスは特別なフラグ、構文、フォーマット等を有してよく、これらは、保証金トークン(すなわち、プルーフ・オブ・ステーク・トークン)を保有するアドレスに使用されるが、他の目的のためにトークンを保有するために使用される他のアドレスには使用されない。一次ブロックチェーンに保証金を預けたノードは、他の基準が満たされている場合(例えばそれらのノードが、それらのノードの保証金(すなわち、以前に預けたそれらのプルーフ・オブ・ステーク・トークン)の払い戻しを要求していないこと)には、一次ブロックチェーンのマイナーとしての役割を果たすことを許容されてよい。
二次ブロックチェーンは、多くの側面で一次ブロックチェーンと異なる。例えば二次ブロックチェーンは、プルーフ・オブ・ワークによってセキュアにされる。すなわち、ノード102は、二次ブロックチェーン上のトランザクションを容易にするために、高価な計算を実行することによって、二次ブロックチェーンのマイナーとしての役割を果たすことができる。例えばプルーフ・オブ・ワークの二次ブロックチェーンは、暗号問題を解決するようにマイナーに要求する可能性がある。例えば二次ブロックチェーンのマイナーは、ブロックヘッダが、現在の難しさによって定義される値より小さい数にSHA-256でハッシュするようなナンス(nonce)を見つける可能性がある。プルーフ・オブ・ワークアルゴリズムに必要とされるハッシュパワーは、トランザクションが、それの上にある特定の数のブロックがマイニングされた後は実際に不可逆であると考えられることを意味する。暗号問題を解決するノードは、二次ブロックチェーンのための新たなブロックを生成し、その新たなブロックを他のノード102にブロードキャストする。他のノード102は、マイナー104が実際に暗号問題を解決し、したがって、ブロックが二次ブロックチェーンに追加されるべきであることを受け入れる前に、十分なプルーフ・オブ・ワークを証明したことを検証する。ブロックは、ノード102のコンセンサスによって、二次ブロックチェーンに追加される。
また、二次ブロックチェーンは、該二次ブロックチェーンが一次ブロックチェーンよりもブロック生成の頻度が少ないという点でも、一次ブロックチェーンとは異なる可能性がある。以下でより詳細に説明されるように、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上の限られたトランザクションのみを含むようにノードを構成する。例えば一次ブロックチェーン上の必ずしもすべてのトランザクションが、二次ブロックチェーン上で重複されるわけではない。むしろ、バイナリブロックチェーンプロトコルは、限られた目的のために二次ブロックチェーンを使用するようノードを構成する。二次ブロックチェーンは保証金口座残高を記録してよい。
1つ以上のトークンが、二次ブロックチェーン上のブロックのマイニングの成功に対する報酬として、二次ブロックチェーンのマイナーに提供されてもよい。二次ブロックチェーンは限定的に使用されるブロックチェーンであるため、報酬は一次ブロックチェーンに対して行われてよい。すなわち、複数のトークンが、二次ブロックチェーン上のブロックをマイニングしたノードによって制御される一次ブロックチェーン上の口座に、そのブロックのマイニングに対する報酬として追加されてよく、一次ブロックチェーン上の口座残高のこの更新は、二次ブロックチェーン上の関連するブロックが承認された後にのみ起こり得る。さらに、一次ブロックチェーンの容量が大きいことにより、一次ブロックチェーンの取引手数料が低くなる可能性がある。
次に、図2を参照すると、例示的なバイナリブロックチェーン200が示されている。バイナリブロックチェーン200は、一次ブロックチェーン202と二次ブロックチェーン204の両方を含む。図2に図示されるように、一次ブロックチェーン202は、二次ブロックチェーン204よりも単位時間当たりのブロック数が多い。なぜなら、一次ブロックチェーン202は、二次ブロックチェーンよりも高い頻度でブロックを生成するからであり、また、いくつかの実装では、一次ブロックチェーン内のブロックは、(圧倒的な確率で)出現するとすぐに承認されると考えられるためである。すなわち、一次ブロックチェーンは、フォークしないように構成され得る。一次ブロックチェーン202は、トランザクションの大部分(少なくともいくつかの実施例では、すべてのトランザクション)を記録するために使用されるが、二次ブロックチェーン204は、供託口座残高及び報酬情報(例えば二次ブロックチェーン上でマイニングされたブロックに対するブロック報酬)を記録するためだけに使用される。例えば図2に示される期間では、一次ブロックチェーンは、PB~PBi+6と示される7つのブロックを追加し、二次ブロックチェーンは、SB及びSBi+1と示される2つの二次ブロックを追加する。これらの数字は単に説明の目的で使用され、一次及び/又は二次ブロックチェーン内のブロック数は、図2に示されるものとは異なってよい。一次ブロックチェーン202のブロックは一次ブロック(PB)と呼ばれ、二次ブロックチェーン204のブロックは二次ブロック(SB)と呼ばれることがある。
一次ブロックチェーン202は、一般的なトランザクションが高い確率で発生し得るように、即時承認と高頻度のブロック生成を可能にし、一方、二次ブロックチェーン204は、一次ブロックチェーン202の予想されるマイナーによってなされる保証金のレコードを(プルーフ・オブ・ワークを使用して)セキュアにすることによって、一次ブロックチェーン202のフォークを防止する。
Aノードとして動作する電子デバイス
図3は、バイナリブロックチェーンネットワーク100(図1)内のノード102(図1)として機能し得る例示的な電子デバイス300の構成要素を示すブロック図である。例示的な電子デバイス300は、処理デバイスと呼ばれることもある。電子デバイスは、例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、スマートフォンのようなモバイルデバイス、スマートウォッチのようなウェアラブルコンピュータ又は別のタイプの形態を含む様々な形態をとってよい。
電子デバイス300は、プロセッサ310、メモリ320及びインタフェースデバイス330を含む。これらの構成要素は、互いに直接的又は間接的に結合されてよく、互いに通信することができる。例えばプロセッサ310、メモリ320及びインタフェースデバイス330は、バス340を介して互いに通信してもよい。メモリ320は、本明細書で説明される機能を実行するための機械読取可能な命令及びデータを含むコンピュータソフトウェアプログラムを記憶する。例えばメモリは、プロセッサ310によって実行されると、電子デバイスに本明細書で記載される方法を実行させるプロセッサ実行可能命令を含んでもよい。プロセッサ実行可能命令は、プロセッサ310によって実行されると、電子デバイスにブロックチェーンネットワーク100(図1)に関連付けられるバイナリブロックチェーンプロトコルを実装させる命令を含んでもよい。
プロセッサ310は、例えば特定用途向け集積回路(ASIC)として実装されてよい。
メモリ320は、一次ブロックチェーン202及び/又は二次ブロックチェーン204又はその一部を記憶することができる。すなわち、メモリ320は、一次ブロックチェーン及び二次ブロックチェーンのすべてのブロック又は最新のブロックのようなブロックの一部又はいくつかのブロック内の情報の一部を記憶することができる。
メモリ320は、図3では単一のブロックで図示されているが、実際には、電子デバイス300は、複数のメモリ構成要素を含んでもよい。メモリ構成要素は、例えばRAM、HDD、SSD、フラッシュドライブ等を含む種々のタイプのものであってよい。異なるタイプのメモリは異なる目的に適合し得る。さらに、メモリ320は、プロセッサ310とは別に示されているが、プロセッサ310は、組み込みメモリを含んでもよい。
電子デバイス300は、バイナリブロックチェーンネットワーク100(図1)内のノード102(図1)として機能する。電子デバイス300は、例えば他のノードによって提出されたブロックを検証すること、一次又は二次ブロックチェーンへの追加のためのブロックを提案すること等のような、バイナリブロックチェーンプロトコルの種々の機能を実行することができる。
バイナリブロックチェーンプロトコル
バイナリブロックチェーンネットワーク100のノード102は、バイナリブロックチェーンプロトコルに従って動作するように構成される。バイナリブロックチェーンプロトコルは、バイナリブロックチェーンプロトコルの活動を管理するルール・セットを定義する。ノードは、他のノードがバイナリブロックチェーンプロトコルに準拠しているかどうかを、例えばバイナリブロックチェーンネットワークの他のノードによって提出されたブロックの妥当性確認をすることによって評価することになる。ノードのうちの1つ以上に関連付けられるプロセッサは、バイナリブロックチェーンプロトコルに従って動作するようにプロセッサを構成するコンピュータ実行可能命令を用いて構成されてよい。
バイナリブロックチェーンプロトコルによると、ノードが一次ブロックチェーンに対してブロックを「マイニング」する資格を有するためには(すなわち、バイナリブロックチェーンネットワーク内で他のノードによって受け入れられることになる、一次ブロックチェーンに追加するためのブロックを提出することを可能にするために)、ノードはまず、保証金(すなわち、プルーフ・オブ・ステーク・トークン)を保証金口座と呼ばれる特別な口座に入れなければならない。保証金は、1つ以上のトークン(これは、供託トークン又はプルーフ・オブ・ステーク・トークンと呼ばれることがある)であり、特別な口座は、決定されたタイプのアドレスを有する口座であってよい。例えばブロックチェーンネットワークに関連付けられる特定の口座が保証金口座であってもよく、他の口座は通常の口座(すなわち、非供託口座)であってよい。保証金口座は、一次ブロックチェーンのマイナーノードのステークを保有するためだけに使用される口座であり、通常の口座は他の目的のために使用されてよい。バイナリブロックチェーンプロトコルは、一次ブロックチェーンのすべてのマイナーが1つ以上のトークンを自分の供託口座に保有することを要求し、一次ブロックチェーンのマイナーになるために、ノードは、トークンを通常の供託口座から保証金口座に移すことができる。
以下に説明されるように、バイナリブロックチェーンプロトコルによれば、一旦、保証金口座への保証金(すなわち、少なくともいくつかのプルーフ・オブ・ステーク・トークン)の移動のレコードを含むブロックが一次ブロックチェーンに追加されると、バイナリブロックチェーンプロトコルを実行するノードは、二次ブロックチェーンに追加された保証金の移動のレコード(すなわち、保証金口座に移されたプルーフ・オブ・ステーク・トークン)を有するように構成される。二次ブロックチェーンに保証金の移動のレコードを追加するノードは、二次ブロックチェーンをマイニングするノードであってもよい。したがって、保証金口座のステータスは、プルーフ・オブ・ワークのブロックチェーンである二次ブロックチェーン上で追跡される。
ノードが、保証金口座への保証金(すなわち、少なくともいくつかのプルーフ・オブ・ステーク・トークン)の移動の後に一次ブロックチェーンにおいてマイニングする資格を有するようになる前に、まず承認期間が経過しなければならない。承認期間は十分に長いので、プルーフ・オブ・ワーク(すなわち、二次)ブロックチェーン上の再編成のリスクは小さい。より正確には、承認期間は、保証金が記録されている二次ブロックチェーンの深さまでの再編成が小規模であるように、十分に長い。承認期間は、二次ブロックチェーンに関連付けられる一定数のブロックであってよい。すなわち、保証金の移動のレコードを含んだブロックの上に、一定数のブロックが二次ブロックチェーンに追加されていると、承認期間が経過したといえる。承認期間が経過すると、保証金の移動を記録したトランザクションは、二次ブロックチェーンで承認されたといわれ、この保証金の所有者は、その後、一次ブロックチェーンでブロックをマイニングする資格を有する。
上述のように、特別な口座(すなわち、保証金口座)は、決定されたタイプのアドレスを有する口座であってよい。例えば保証金口座のアドレスは、通常の口座に使用されず、保証金口座としてのステータスを示すフラグ又は識別子を含んでもよい。
バイナリブロックチェーンプロトコルは、保証金口座と通常の口座に異なるルールを適用するように構成されてもよい。例えば通常の口座に保有されているトークンは、口座保有者の許可があれば直ちに他の口座に移されてよい。しかしながら、保証金口座に保管されているトークンは、払い戻し要求が発行され、払い戻し要求に関連付けられるアンボンディング期間が経過した後にのみ移動させることができる。アンボンディング期間は、二次ブロックチェーン上の所定の数のブロックである。アンボンディング期間の長さは、(二次ブロックチェーン内の)この長さのフォークが無視できる確率で生じるように選択される。したがって、保証金口座に保有されている供託トークンは、払い戻し要求に続いてアンボンディング期間が経過したときにのみ供託者ノードに返される。
ノードが、一次ブロックチェーン上の関連する保証金口座に保証金を預け、二次ブロックチェーンが、保証金口座ステータスを反映するように更新された後(すなわち、保証金の移動のレコードが二次ブロックチェーンにおいて承認された後)、当該ノードは、通常口座への保証金の返却を要求する当該ノードからの払い戻し要求が受け取られるまで、一次ブロックチェーン上でマイニングを行う資格を有する。ノードがマイニングする資格を有するとき、それらはマイニングする資格を有するノードのグループに含まれると考えられてよく、そのグループの所与のノードがブロックをマイニングするために選択される確率は、グループが預けた保証金の総額に対する当該マイナーが預けた保証金の額(すなわち、そのマイナーの保証金口座に保有されているプルーフ・オブ・ステーク・トークンの額)に比例し得る。したがって、より多額の保証金(例えばより多くのプルーフ・オブ・ステーク・トークン)を預けているノードは、より少額の保証金を預けているノードよりも、一次ブロックチェーンのマイナーとして選ばれる可能性が高い。
したがって、一次ブロックチェーンにおいてマイニングする(すなわち、ブロックを生成し、それらのブロックを他のノードに受け入れられるようにする)資格は、保有する保証金の額に基づく。より多くの保証金は、所与のノードがマイナーとして選ばれる見込みを高めるが、ステークを預けている(すなわち、保証金口座に保証金を保有している)ノードは、任意の所与のブロックをマイニングするために選ばれる機会がある。マイナーの選択は、一次ブロックチェーンに対する宝くじ(lottery)で行われるといわれることがある。
バイナリブロックチェーンネットワーク100の任意のノードは、保証金を預けていない場合(すなわち、それらが何らかのプルーフ・オブ・ステーク・トークンを特別な保証金口座に移していない場合)であっても、二次ブロックチェーン上でマイニングする資格を有してよい。二次ブロックチェーンはプルーフ・オブ・ワーク・ブロックチェーンであるため、二次ブロックチェーンでマイニングする権利は、プルーフ・オブ・ワークを提供することから生じる。すなわち、どのノードも、二次ブロックチェーンのブロックを生成することができ、二次ブロックチェーンの他のノードに対して、それらが暗号パズルを成功裏に解いたことを証明することによって、新たなブロックをマイニングする権利を与えられたことを証明することができる。
一次ブロックチェーンのマイナーは、一次ブロックチェーンにおける報酬を生成する権利を有することができる。例えば一次ブロックチェーン上にブロックをマイニングするマイナーは、新たなトークンを生成することができ、他のノードは、そのマイナーがバイナリブロックチェーンプロトコルに従って動作していると判断した場合に、その新たなトークンが有効であると受け入れるであろう。また、二次ブロックチェーンのマイナーは、報酬を生成するか又は他の方法で受け取る権利を有してもよく、一次ブロックチェーンにおいて報酬を得ることがある。例えば二次ブロックチェーンのマイナーは、一次ブロックチェーン上で(一次ブロックチェーン上でマイナーとして機能する別のノードによって、あるいは二次ブロックチェーン上でマイニングして、一次ブロックチェーン上でもマイニングするノードによって)生成された新たなトークンによって報酬を得ることができる。
いくつかの実装では、ブロックマイニングの報酬は、新たなトークンの形で、一次ブロックチェーンのマイナーに提供されないことがある。代わりに、マイナーは、そのようなマイナーによって作成されたブロックに含まれるトランザクションを行うノードからのみ取引手数料を受け取ることができる。
バリデータノード及び/又はマイナーノードは、バイナリブロックチェーンプロトコルが遵守されていることを確認する。すなわち、上述のプロトコルの違反は、マイナー(トランザクションをブロックに含める前に、それらのトランザクションを検証する者)及び/又は非マイニングのバリデータノード(トランザクションとブロックをブロックチェーンに含める前に、それらのトランザクションとブロックを検証する者)によって検出されることになる。したがって、バイナリブロックチェーンネットワーク100のノードは、一次ブロックチェーン又は二次ブロックチェーンにブロックを追加すべきであることを受け入れる前に、バイナリブロックチェーンプロトコルが遵守されていることを保証するように構成される。例えばノードは、一次ブロックチェーンのために生成されたブロックが、マイニングする資格のあるマイナー(例えば1)ステークを預けており;2)二次ブロックチェーンに追加され、かつ二次ブロックチェーンで承認されたステークの供託(保証金)のレコードを有しており;3)保証金の返還を試みる払い戻し要求をまだ発行していなかったノード)によって生成されたかどうかを決定することができる。ノードはまた、一次ブロックチェーンに追加するためにブロックを提出したノードが、マイナーとしての役割を果たす資格のあるノードであるかどうかを決定することができる。
不適格なマイナーによって生成されたブロック又はバイナリブロックチェーンプロトコルの他のルールに違反して生成されたブロックは、バイナリブロックチェーンネットワーク100の他のノードによって拒否されることになる。
次に、図4を参照すると、図4は、バイナリブロックチェーンプロトコルに従って動作するノード102によって実行され得る例示的な方法400を示している。図4の方法400は、バイナリブロックチェーンネットワーク100のノード102によって実行されるコンピュータ実施方法であってよい。例えばノード102のプロセッサは、プロセッサによって実行されると、図4の方法400を実行するようにプロセッサを構成するコンピュータ実行可能命令(すなわち、プロセッサ実行可能命令)を有するように構成されてよい。
方法400の動作402において、方法400を実行するノード102は、保証金口座に保証金を移すことができ(すなわち、1つ以上のプルーフ・オブ・ステーク・トークンを移すことができ)、あるいは別のノードが保証金口座に保証金を移したことを検出することができる。すなわち、ノード102は、通常の口座から、保証金口座に関連付けられる所定のタイプのアドレスに保証金を移すことができ、あるいは他のノードによって行われたそのような移動を検出することができる。移動は、プルーフ・オブ・ステーク・ブロックチェーンである一次ブロックチェーンにおいて行われる。移動は、通常の口座から供託口座に保証金を移すトランザクションTが、一次ブロックチェーンに追加されるブロックに含まれるときに行われる。トランザクションTは、方法400を実行するノードによって又は別のノードによって準備されたものであってよい。次いで、トランザクションは、一次ブロックチェーンのためのマイナーとして機能するノードによって生成されたブロックに含まれてよい。
トランザクションTpを含むブロックを生成するノードは、マイニングする資格を有するノード及び暗号化ソーティションを通してブロックを生成する機会を割り当てられ得るノードである。マイニングする資格は、特に図5を参照して、以下でより詳細に議論される。マイニングする資格を有するノードのグループの中で、単一のノードが、暗号化ソーティションと呼ばれるプロセスを通して所与のブロックをマイニングする権利を有するノードとして(動作403において)効果的に識別され得る。暗号化ソーティションの間、ノードは、プルーフ・オブ・ステーク・ブロックチェーンにブロックを追加することに参加するために識別される。このような識別は、バイナリブロックチェーンネットワークの他のノードがすべて共通ノードを識別することができるように、所定の基準に従って決定論的に実行される。例えば暗号化ソーティションの間に、1つ以上のノードが、マイニングする資格を有するノードのグループからランダムに選択される。より詳細には、リーダーは、前のブロックのような公開データにおける暗号化関数(cryptographic function)を使用して識別される。検証器セット(verifier set)は、暗号化ソーティションを使用して、例えば前のブロックのような公開データにおける暗号化関数を使用して選択されてもよい。暗号化ソーティションは、Micali,S.,氏による「Algorand: The efficient and democratic ledger. axXiv:1607.01341v9 (2017) [cs.CR]」に説明されており、その内容は参照によって本明細書に組み込まれる。
識別されたリーダーは、マイニングすべき新たなブロックを提案するので、マイナーと呼ばれることがある。
(動作403における)マイナーの識別とバリデータセット(validator set)は、Micali氏によって説明される方法と同様の方法で行われてよいが、適格なマイナーのグループは限られる。特定のノードが、マイニングする資格のあるノードのグループに含まれるかどうかを決定するために、例えば図5の方法500が動作403で実行されてよい。具体的には、適格なマイナーのグループは、1)保証金を預けており(すなわち、1つ以上のプルーフ・オブ・ステークトークンを特別な供託口座に移した)、2)二次ブロックチェーンに追加され、二次ブロックチェーンで承認された、保証金のレコードを有しており、3)保証金の返還を試みる(すなわち、保証金口座に預けた任意のプルーフ・オブ・ステーク・トークンを通常の供託口座に戻すことを試みる)払い戻し要求をまだ発行していないノードのみを含む。通常の口座にトークンを保有している少なくともいくつかのノードは、一次ブロックチェーンのマイナーとして機能する資格を有していないことがある。
また、一次ブロックチェーンにブロックを追加することに参加するノードを識別する際に、二次ブロックチェーンを参照する。すなわち、一次ブロックチェーンの保証金口座にプルーフ・オブ・ステークの形で保証金を保有することだけでは、一次ブロックチェーンでマイニングする資格を有するには不十分であり、二次ブロックチェーンは、保証金がなされたこと(そして、このような指示があるブロックが承認されたこと)も示さなければならない。したがって、動作403が実行される時点では、動作402において保証金を移動させたノードは、まだ、マイニングする資格を有するノードのグループには含まれない(二次ブロックチェーンは、方法400のその後の動作において保証金の移動を反映するようにのみ更新されるため)。方法400を実行するノードが、トークンを一次ブロックチェーン上の保証金口座に移したノードによって生成されたブロックを検出した場合、二次ブロックチェーンが移動を記録するようまだ更新されていない場合(あるいは、レコードを含むブロックがまだ承認されていない場合)、そのブロックは、不適格なノードによって提案されたものとして拒否されるであろう。
動作403は、例えば一次ブロックチェーンにブロックを受け入れるかどうかを判断するときに、方法400を実行するノード102による検証動作の一部として実行されてもよい。ブロックが成功裏に検証された場合(例えばブロックが動作403で識別されたノードによって提出された場合)、そのブロックは、一次ブロックチェーンに含まれてもよい。例えばこの方法を実行するノードは、この方法を実行するノード102に記憶された一次ブロックチェーンのコピーに(動作404で)ブロックを追加してもよい。
保証金(すなわち、プルーフ・オブ・ステーク・トークン)が、一次ブロックチェーン上の保証金口座に移された後、動作408において、保証金のレコードが二次ブロックチェーンに追加され得る。例えばノード(一次ブロックチェーンをモニタリングしている二次ブロックチェーンのマイナーであってよい)は、保証金の移動のレコードを準備することができ、そのレコードを二次ブロックチェーンのブロックに追加することができる。保証金を移したノードは、そのレコードが二次ブロックチェーンで承認された後にのみ、一次ブロックチェーンでマイニングする資格を有する。すなわち、ノードは、プルーフ・オブ・ワーク・ブロックチェーン上の記録に関連付けられる承認期間が経過した後に、マイニングする資格を有する。承認期間は、二次ブロックチェーンに関連付けられる所定数のブロックである。より具体的には、承認期間は、その後、発生している二次ブロックチェーンの保証金のレコードの深さまでの再編成の可能性が受容可能な程度に小さくなる期間である。二次ブロックチェーンのプルーフ・オブ・ワークの性質により、所定数のブロックが、レコードを含むブロックの上に追加された後、レコードは実際上不可逆になる。保証金の振替のレコードが二次ブロックチェーンに不変的に追加されたことを確実にするために、バイナリブロックチェーンネットワークのノードは、保証金に関連付けられるノードが一次ブロックチェーンでマイニングする資格を有する前に承認期間が経過することを要求してよい。
二次ブロックチェーンのブロックに保証金の場所(placing)のレコードを作るマイナーは、図4の方法400を実行するノードであってもよく、あるいはバイナリブロックチェーンネットワーク100内の別のノードであってもよい。方法400を実行するノードが、二次ブロックチェーンのブロックに保証金の場所のレコードを追加しないか又はレコードを含むブロックを生成しない場合、方法400を実行するノードは、それにもかかわらず、検証者として参加してもよく、そのレコードが適切にブロックに含まれること及び/又はそのブロックが適切に生成されたこと(例えばマイナーがそのブロックを生成する権利を有することを証明するためにマイナーが提出したプルーフ・オブ・ワークが有効であること)を確実にする。
保証金の場所のレコードが二次ブロックチェーンに追加された後、承認期間が経過した後に、動作402においてトランザクションT内の保証金を移したノードは、一次ブロックチェーンのブロック生成に参加する資格を有する。したがって、動作410において、一次ブロックチェーンに更なるブロックを追加することができ、また、更なるブロックを追加する際に、更なるノードは、マイナーとして参加する資格を有するノードのグループから識別されてもよい。動作410は、保証金の場所のレコードが二次ブロックチェーンに追加されて承認されているので、動作402において保証金を移動させたノードが、動作410に参加する資格を有する点を除いて、動作403と同様に実行されてよい。(マイニングノード及び/又はバリデータセットの複数のノードのような)一次ブロックチェーン上のブロックの追加に参加するノードを識別するために、暗号化ソーティションが再び実行されてよい。しかしながら、動作410では、暗号化ソーティションは、異なるノードが動作410で選択される可能性が高くなるように、動作403とは異なる公開データに基づいて実行される。動作410におけるノードを識別する際に、方法400を実行するノードは二次ブロックチェーンを参照し、識別されたノードが一次ブロックチェーン上の適所に保証金を有することを二次ブロックチェーンが示すこと、そしてこれが二次ブロックチェーンに記録され、その記録が行われたブロックが承認されることを確実にする。したがって、動作410における識別は、少なくとも部分的には、プルーフ・オブ・ワーク・ブロックチェーンに基づいている。
動作410においてノードを識別する際に、方法400を実行するノード102は、適格なノードのグループを識別してもよく、あるいは所与のノードが適格なノードのグループに含まれるかどうかを判断してもよい。例えば図5の方法500が動作410で実行されてもよい。上述のように、適格なノードのグループは、決定されたタイプのアドレスに(例えば保証金口座に)に保証金を移した少なくともいくつかのノードを含むが、プルーフ・オブ・ワーク・ブロックチェーン上の保証金の移動のレコードに関連付けられる承認期間がまだ経過していない場合に、決定されたタイプのアドレスに保証金を移したノードは除外する。承認期間は、プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定数のブロックであってよい。
動作412において、方法400を実行するノード102は、一次ブロックチェーン内の識別されたノードによって提出されたブロックを含む。例えばこの方法を実行するノードは、この方法を実行するノード102に記憶された一次ブロックチェーンのコピーにブロックを追加してもよい。
図4には図示されていないが、ブロック生成の所与の反復に対して識別されたノードではない他のノードが、ブロックの生成を試みてもよい。この方法を実行するノードは、ブロック生成の所与の反復に対して、識別されたノードではないノードによって提出されたブロックを拒否するように構成される。
さらに、図4には図示されていないが、一次ブロックチェーンにブロックを含める前に、この方法を実行するノードは、ビザンチン合意(BA:Byzantine agreement)バリデータセットとも呼ばれるバリデータノードのグループによって、このブロックが検証されたことを確かめることができる。バリデータノードのグループは、マイニングする資格を有するノードのグループのサブセットであってよく、マイニングする資格を有するノードのグループは、二次ブロックチェーンに基づいて識別され得る。すなわち、ノードは、1)保証金を預け、2)二次ブロックチェーンに追加され、かつ二次ブロックチェーンで承認された保証金のレコードを有し、3)預けた保証金を返還するよう試みる払い戻し要求をまだ発行していなかった場合にのみ、ノードはBAバリデータセットに包含するための資格を有する。
BAバリデータセットは、Micali(2017)と同様に動作し、例えばブロックを検証するためにビザンチンアルゴリズムを実行することができる。すなわち、BAバリデータセットのメンバーのみがビザンチンアルゴリズムに参加する。
バイナリブロックチェーンプロトコルは、ブロックを生成するノード(すなわち、マイナーとして機能するノード)が新たなトークンを生成し、その新たなトークンの制御を自分自身に移すことを可能にすることができる。例えば動作404又は動作412において一次ブロックチェーンに含まれるブロックが、そのブロックをマイニングしたノードに対する報酬を含んでよい。報酬が所定の基準(報酬の量に関する基準等)を満たす場合、報酬は、他のノードがブロックを検証することを妨げない。しかしながら、他のノードは、ブロックを検証するときに、報酬(例えば報酬の量)を評価してもよい。
二次ブロックチェーンは、公開データ記録の限られた目的に使用されるため、二次ブロックチェーン上のブロックのマイナーは、二次ブロックチェーン上でのマイニングにより、一次ブロックチェーン上で報酬を受け取ることができる。例えば一次ブロックチェーンに追加されたブロック(動作404又は動作412で追加されたブロック等)は、新たなトークンを生成し、その新たなトークンの制御を、二次ブロックチェーン上でマイニングしたノードに移転してもよい。例えば新たなトークンの制御は、二次ブロックチェーンに保証金の振替のレコードを追加したノードに移転されてもよい。任意で、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上のマイニング活動に対する報酬として一次ブロックチェーン上で生成された新たなトークンが、報酬を受け取るノードによってのみ生成されることを要求することがある。これは、一次ブロックチェーンに多額のステークを預ける更なるインセンティブを与え、バイナリブロックチェーンネットワークに対する協調的な攻撃に参加する一次ブロックチェーンのマイナーのインセンティブを低下させるであろう。なぜなら、これは彼らのステークの価値を低下させるからである。また、バイナリブロックチェーンプロトコルは、二次ブロックチェーン上のマイニング活動に対する報酬の一部のみが、一次ブロックチェーン上でマイニングされた任意の所与のブロックにおいて生成され得るように変更されることも可能である。これは、マイナーが任意の所与の時間に彼らの報酬の一部を要求することのみを必要とし、一次ブロックチェーンにおいてより少数のマイナーが、二次ブロックチェーンで成功裏にマイニングした後に、特にブロック報酬を要求する目的のために、トークンを交換することのインセンティブを減らすことになるだろう。さらに、このように報酬の償還を制限することは、合理的なマイナー(rational miner)のマイニングによって二次ブロックチェーンに配置されることになる保証金の額について、効果的なフロアを作り出す可能性がある。二次ブロックチェーンのマイナーは、十分な保証金を有していない場合に一次ブロックチェーンにおいて報酬を要求し得るよりも早い速さで、二次ブロックチェーンブロックの報酬を得る可能性がある。したがって、合理的なマイナーは、二次ブロックチェーン上のハッシュパワーに比べて十分に大きな保証金を預けることがある。
次に、図5を参照すると、候補ノードが、一次ブロックチェーン上のブロックの生成に参加する(例えばマイニングする)資格を有するかどうかを判断する例示的な方法500が示されている。候補ノードは、例えば一次ブロックチェーンに追加されるブロックを提案し、そしてその際に、そのようにする資格を有すると主張したノードであってもよい。したがって、方法500は、一次ブロックチェーン上にブロックを受け入れる前に、妥当性確認又は検証プロセスの一部として実行され得る。方法500は、例えば図4の方法400の動作403及び/又は動作410において実施されてよい。この方法は、図4の方法400を実行するノード102のような、バイナリブロックチェーンネットワーク上のノードによって実行されてよい。
動作502において、ノードは、候補ノードが一次ブロックチェーン上で保証金を供託したかどうかを判断する。候補ノードが一次ブロックチェーンに保証金を供託していない場合、候補ノードは(動作504に示されているように)一次ブロックチェーン上でマイニングする資格を有さない。動作506において、ノードは、保証金のレコードが、プルーフ・オブ・ワーク・ブロックチェーンである二次ブロックチェーン上で承認されたかどうかを判断する。より具体的には、ノードは、供託のレコードを含むブロックが承認されたかどうか(すなわち、承認期間が経過したどうか)を判断する。この判断は、保証金のレコードを含んだブロックの上に追加されたブロックの数に基づいて行われてよい。
レコードが承認されていない場合、候補ノードは(動作504で示されるように)一次ブロックチェーン上でマイニングする資格を有さない。
動作508において、ノードは、候補ノードから払い戻し要求を受け取ったかどうかを判断する。払い戻し要求は、保証金口座に以前に移された保証金の返還を求める要求である。払い戻し要求が受け取られると、候補ノードは(動作504で示されるように)一次ブロックチェーン上でマイニングする資格を有しない。
ノードが、候補ノードが保証金を供託しており、保証金のレコードが二次ブロックチェーン上で承認されており、そして払い戻し要求が受け取られていないと判断した場合、候補ノードは、動作510において、一次ブロックチェーン上でマイニングする資格を有すると判断される。
次に、図6を参照すると、払い戻し要求を処理する例示的な方法600が示されている。方法600は、図4の方法400及び/又は図5の500を実行するノード102のような、バイナリブロックチェーンネットワーク100のノードによって実行されてよい。
動作602において、方法600を実行するノード102は、バイナリブロックチェーンネットワークのノードによって発行された払い戻し要求を識別する。払い戻し要求は、一次ブロックチェーンの保証金口座に保証金を以前に移したノードによって発行されるものであり、保証金の返還を求める要求である。払い戻し要求は、一次ブロックチェーンのブロックに含まれるトランザクション又は二次ブロックチェーンのブロックに含まれるトランザクションで検出され得る。例えばトランザクションは、取り消し要求としてトランザクションを識別するメタデータを含み得る。したがって、払い戻し要求は、動作602において、プルーフ・オブ・ワーク・ブロックチェーンである二次ブロックチェーンに関連付けられるトランザクション又はレコードのメタデータから識別されてよく、あるいは払い戻し要求は、一次ブロックチェーンに関連付けられるトランザクションのメタデータから識別されてよい。
払い戻し要求が発行された後、ノード102は、(動作604において)払い戻し要求を発行したノードを、一次ブロックチェーン上のマイニングから除外してよい。すなわち、払い戻し要求を発行したノードは、一次ブロックチェーンでマイニングする資格を有するノードのグループから除外される。払い戻し要求が発行された後、払い戻し要求を発行したノードによって提案された一次ブロックチェーンのすべてのブロックが無視される。
方法400を実行するノードが、払い戻し要求に関連付けられるアンボンディング期間が経過したと判断した後、ノード102は、動作606において、払い戻し要求に関連付けられる保証金を、払い戻し要求を発行したノードに返却することを許可することができる。例えば一次ブロックチェーンは、払い戻し要求に関連付けられる保証金を、払い戻し要求を発行したノードに返すために更新され得る。例えばアンボンディング期間の後、払い戻し要求を発行したノードは、一次ブロックチェーンのマイナーに、保証金を通常のアドレスに移す(言い換えると、保証金を所有者によって使用可能にする)提案されたトランザクション(proposed transaction)をブロードキャストすることができる。一次ブロックチェーンのマイニングするノード及び/又は検証するノードは、トランザクションが、一次ブロックチェーンに追加されるブロックに含まれることを可能にする前に、アンボンディング期間が実際に経過していることを保証することができる。アンボンディング期間は、二次ブロックチェーンに関連付けられる所定の数のブロックであってよい。例えば払い戻し要求を発行したノードは、保証金が返却されるまでに所定の数のブロックを待つように要求されることがある。
場合によっては、保証金のレコードが二次ブロックチェーンで承認される前に、払い戻し要求を受けることがある。これが発生すると、方法400を実行するノードは、アンボンディング期間のクロックを開始する前に、保証金のレコードが承認されるまで待機してよい。
ブロックチェーンネットワークに新規であるノード(これらのノードが、ブロックチェーンネットワークに以前に接続されていなかった、あるいはアンボンディング期間よりも長い間オフラインであったという意味で)は、最も多くの作業量を含む二次ブロックチェーンを識別し、識別された二次ブロックチェーンからの保証金の分布を一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次及び二次ブロックチェーンを、一次及び二次ブロックチェーンの真のコピーとして識別することができる。2つ以上の一次ブロックチェーンが存在する場合、そのようなノードは、分布が最も密接に一致するようなものを選択してよい。
上述の実施形態は、本発明を限定するものではなく、例示するものであり、当業者は、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、多くの代替実施形態を設計することができることに留意されたい。特許請求の範囲においては、括弧内に付した任意の参照符号は、請求項を限定するものと解釈されるべきではない。「備える(comprising)」及び「備える(comprises)」等の語は、いずれかの請求項又は明細書全体に列挙されるもの以外の要素又はステップの存在を除外するものではない。本明細書において、「備える(comprise)」は、「含む(includes)又は構成される(consist of)」を意味し、「備える(comprising)」は「含む(including)又は構成される(consisting of)」を意味する。単数形の要素の言及は、そのような要素の複数形の言及を除外するものではなく、その逆もまた同様である。本発明は、いくつかの別個の要素を含むハードウェアによって及び適切にプログラムされたコンピュータによって実装されてよい。いくつかの手段を列挙するデバイスクレームにおいては、これらの手段のうちのいくつかが、1つの同じのハードウェアのアイテムによって具体化されてもよい。特定の手段が相互に異なる従属請求項に記載されているという単なる事実は、これらの手段の組合せを有利に利用することができないことを示すものではない。

Claims (16)

  1. コンピュータ実施方法であって:
    プルーフ・オブ・ステーク・トークンがプルーフ・オブ・ステーク・ブロックチェーン上の決定されたタイプのアドレスに転送された後に、前記プルーフ・オブ・ステーク・トークンの転送のレコードをプルーフ・オブ・ワーク・ブロックチェーンに追加するステップと;
    ノードのグループから、前記プルーフ・オブ・ステーク・ブロックチェーンへブロックを追加することに参加するノードを識別するステップであって、該識別するステップは、前記プルーフ・オブ・ワーク・ブロックチェーンに基づく、ステップと;
    前記識別されたノードによって発行されたブロックを前記プルーフ・オブ・ステーク・ブロックチェーンに含めるステップと;
    ノードによって発行された払い戻し要求を識別し、前記払い戻し要求を発行した前記ノードを前記ノードのグループから除外するステップと;
    を含む、コンピュータ実施方法。
  2. 前記ノードを識別するステップは、ネットワークの他のノードが共通ノードを識別するように、所定の基準に従って決定論的に実行される、
    請求項1に記載のコンピュータ実施方法。
  3. 前記識別するステップは、暗号化ソーティションを用いて実行される、
    請求項1又は2に記載のコンピュータ実施方法。
  4. 前記ブロックは、新たなトークンを生成し、前記トークンの前記転送のレコードを前記プルーフ・オブ・ワーク・ブロックチェーンに追加したノードに、前記新たなトークンの制御を転送する、
    請求項1乃至3のいずれか一項に記載のコンピュータ実施方法。
  5. 前記ブロックは、新たなトークンを生成し、前記識別されたノードに前記新たなトークンの制御を転送する、
    請求項1乃至4のいずれか一項に記載のコンピュータ実施方法。
  6. 前記払い戻し要求は、前記プルーフ・オブ・ワーク・ブロックチェーンに関連付けられるトランザクションのメタデータから識別される、
    請求項1乃至5のいずれか一項に記載のコンピュータ実施方法。
  7. 前記払い戻し要求に関連付けられるアンボンディング期間の後に、前記払い戻し要求を発行したノードに前記払い戻し要求に関連付けられるプルーフ・オブ・ステーク・トークンを返すように、前記プルーフ・オブ・ステーク・ブロックチェーンを更新するステップを更に含む、
    請求項1乃至6のいずれか一項に記載のコンピュータ実施方法。
  8. 前記アンボンディング期間は、前記プルーフ・オブ・ワーク・ブロックチェーンに関連付けられる所定の数のブロックである、
    請求項7に記載のコンピュータ実施方法。
  9. 前記払い戻し要求の送信者は、保証金を通常のアドレスに移す、提案されたトランザクションをブロードキャストする、
    請求項7又は8に記載のコンピュータ実施方法。
  10. 前記識別されたノードではないノードによって提出されたブロックを拒否するステップ、
    を更に含む、請求項1乃至9のいずれか一項に記載のコンピュータ実施方法。
  11. 前記ブロックを前記プルーフ・オブ・ステーク・ブロックチェーンに含める前に、前記ブロックがバリデータノードのグループによって妥当性確認されているかどうかを検証するステップを更に含み、前記バリデータノードのグループは、前記ノードのグループのサブセットであり、前記バリデータノードは、前記プルーフ・オブ・ワーク・ブロックチェーンに基づいて識別される、
    請求項1乃至10のいずれか一項に記載のコンピュータ実施方法。
  12. 前記バリデータノードのグループは、前記ブロックを妥当性確認するためにビザンチンアルゴリズムを実行するように構成される、
    請求項11に記載のコンピュータ実施方法。
  13. 最大の作業量を含む二次ブロックチェーンを識別し、該識別された二次ブロックチェーンからのプルーフ・オブ・ステーク・トークンの分布を、一次ブロックチェーンでマイニングされたブロックの分布と比較することによって、一次ブロックチェーンと二次ブロックチェーンを前記一次ブロックチェーンと前記二次ブロックチェーンの真のコピーとして識別するステップ、
    を更に含む、請求項1乃至12のいずれか一項に記載のコンピュータ実施方法。
  14. 実行されると、請求項1乃至13のいずれか一項に記載の方法を実行するようにプロセッサを構成する、コンピュータ実行可能命令を含む、コンピュータ読取可能記憶媒体。
  15. インタフェースデバイスと;
    前記インタフェースデバイスに結合されるプロセッサと;
    前記プロセッサに結合されるメモリであって、実行されると、請求項1乃至13のいずれか一項に記載の方法を実行するように前記プロセッサを構成するコンピュータ実行可能命令を記憶したメモリと;
    を備える電子デバイス。
  16. 前記メモリは、プルーフ・オブ・ワーク・ブロックチェーンとプルーフ・オブ・ステーク・ブロックチェーンとを含むバイナリブロックチェーンを記憶する、
    請求項15に記載の電子デバイス。
JP2023061239A 2017-08-14 2023-04-05 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法 Pending JP2023076628A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GBGB1713031.1A GB201713031D0 (en) 2017-08-14 2017-08-14 Computer-implemented system and method
GB1713031.1 2017-08-14
JP2020506822A JP7319961B2 (ja) 2017-08-14 2018-08-09 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
PCT/IB2018/055992 WO2019034969A1 (en) 2017-08-14 2018-08-09 COMPUTER-IMPLEMENTED SYSTEMS AND METHODS RELATING TO A BINARY BLOCK CHAIN COMPRISING A PAIR OF COUPLED BLOCK CHAINS

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020506822A Division JP7319961B2 (ja) 2017-08-14 2018-08-09 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法

Publications (1)

Publication Number Publication Date
JP2023076628A true JP2023076628A (ja) 2023-06-01

Family

ID=59895906

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020506822A Active JP7319961B2 (ja) 2017-08-14 2018-08-09 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
JP2023061239A Pending JP2023076628A (ja) 2017-08-14 2023-04-05 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020506822A Active JP7319961B2 (ja) 2017-08-14 2018-08-09 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法

Country Status (6)

Country Link
US (2) US11616649B2 (ja)
EP (2) EP3669493A1 (ja)
JP (2) JP7319961B2 (ja)
CN (1) CN111034119A (ja)
GB (1) GB201713031D0 (ja)
WO (1) WO2019034969A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10367645B2 (en) * 2016-10-26 2019-07-30 International Business Machines Corporation Proof-of-work for smart contracts on a blockchain
US11397963B2 (en) 2019-03-22 2022-07-26 Quotient Technology Inc. Multi-axis blockchain clearance of offers
GB2583770A (en) * 2019-05-10 2020-11-11 Nchain Holdings Ltd Methods and devices for registering and authenticating miner identity in a blockchain network
CN110909342A (zh) * 2019-11-28 2020-03-24 北京海益同展信息科技有限公司 变更通证的方法、装置及计算机可读存储介质
US11343272B2 (en) * 2020-04-17 2022-05-24 Lenovo (Singapore) Pte. Ltd. Proof of work based on compressed video
US20230327894A1 (en) * 2020-08-14 2023-10-12 Lg Electronics Inc. Method and apparatus for reducing orphan blocks for a blockchain
GB2620902A (en) * 2022-03-23 2024-01-31 The Blockhouse Tech Limited Blockchain data processing
WO2023238571A1 (ja) * 2022-06-09 2023-12-14 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ ブロック生成方法、ブロック生成装置、及び、プログラム

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9595034B2 (en) 2013-10-25 2017-03-14 Stellenbosch University System and method for monitoring third party access to a restricted item
US10340038B2 (en) * 2014-05-13 2019-07-02 Nant Holdings Ip, Llc Healthcare transaction validation via blockchain, systems and methods
US11200564B2 (en) * 2015-03-31 2021-12-14 Nasdaq, Inc. Systems and methods of blockchain transaction recordation
US10812274B2 (en) * 2015-05-07 2020-10-20 Blockstream Corporation Transferring ledger assets between blockchains via pegged sidechains
US10805393B2 (en) 2015-12-02 2020-10-13 Olea Networks, Inc. System and method for data management structure using auditable delta records in a distributed environment
US20170236123A1 (en) 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems
CN109155731B (zh) 2016-03-23 2022-02-11 诺基亚技术有限公司 密码交易的管理
GB2549085B (en) 2016-03-30 2020-11-18 British Telecomm Blockchain state reliability determination
WO2017167550A1 (en) 2016-03-30 2017-10-05 British Telecommunications Public Limited Company Blockchain state reliability determination
US10608825B2 (en) * 2016-04-21 2020-03-31 Protoblock, Inc. Decentralized exchanges in a distributed autonomous platform
CN106445711B (zh) * 2016-08-28 2019-04-30 杭州云象网络技术有限公司 一种应用于区块链的拜占庭容错共识方法
CN106453377B (zh) * 2016-10-28 2021-03-02 中金云金融(北京)大数据科技股份有限公司 基于区块链的分布式网络智能监控系统及方法
CN106603698A (zh) * 2016-12-28 2017-04-26 北京果仁宝科技有限公司 基于dpos的区块链共识方法和节点
CN107222482A (zh) 2017-06-01 2017-09-29 黑龙江卓亚科技有限公司 一种基于复合区块链网络的数据管理系统及方法

Also Published As

Publication number Publication date
EP4362388A3 (en) 2024-05-08
EP3669493A1 (en) 2020-06-24
GB201713031D0 (en) 2017-09-27
US20210194690A1 (en) 2021-06-24
EP4362388A2 (en) 2024-05-01
CN111034119A (zh) 2020-04-17
JP7319961B2 (ja) 2023-08-02
US11616649B2 (en) 2023-03-28
US20230283473A1 (en) 2023-09-07
WO2019034969A1 (en) 2019-02-21
JP2020530958A (ja) 2020-10-29

Similar Documents

Publication Publication Date Title
EP3610436B1 (en) Rapid distributed consensus on blockchain
EP3613189B1 (en) Secure blockchain-based consensus
JP7319961B2 (ja) 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法
EP3639468B1 (en) Systems and methods for avoiding or reducing cryptographically stranded resources on a blockchain network
JP7407895B2 (ja) 一般的な計算のためのブロックチェーン
US20240064007A1 (en) Methods and systems for blockchain-implemented event-lock encryption
US12010138B2 (en) Secure blockchain-based consensus
US12003616B2 (en) Rapid distributed consensus on blockchain

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230405