JP6986519B2 - 分散型トランザクション伝播および検証システム - Google Patents

分散型トランザクション伝播および検証システム Download PDF

Info

Publication number
JP6986519B2
JP6986519B2 JP2018557931A JP2018557931A JP6986519B2 JP 6986519 B2 JP6986519 B2 JP 6986519B2 JP 2018557931 A JP2018557931 A JP 2018557931A JP 2018557931 A JP2018557931 A JP 2018557931A JP 6986519 B2 JP6986519 B2 JP 6986519B2
Authority
JP
Japan
Prior art keywords
block
round
sincere
user
verifier
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018557931A
Other languages
English (en)
Other versions
JP2019519137A (ja
JP2019519137A5 (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.)
Algorand Inc
Original Assignee
Algorand Inc
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 Algorand Inc filed Critical Algorand Inc
Publication of JP2019519137A publication Critical patent/JP2019519137A/ja
Publication of JP2019519137A5 publication Critical patent/JP2019519137A5/ja
Priority to JP2021193208A priority Critical patent/JP2022031817A/ja
Application granted granted Critical
Publication of JP6986519B2 publication Critical patent/JP6986519B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/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
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4016Transaction verification involving fraud or risk level assessment in transaction processing
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/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
    • H04L9/3255Cryptographic 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 using group based signatures, e.g. ring or threshold 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • H04L2209/463Electronic voting
    • 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

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Technology Law (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)

Description

関連出願の相互参照
本出願は、2016年5月4日に出願された「ALGORAND:A VERY EFFICIENT MONEY PLATFORM(アルゴランド:非常に効率的なマネープラットフォ−ム)」と題する米国仮特許出願第62/331,654号、2016年5月9日に出願された「ALGORAND:A VERY EFFICIENT MONEY PLATFORM(アルゴランド:非常に効率的なマネープラットフォーム)」と題する米国仮特許出願第62/333,340号、2016年5月31日に出願された「ALGORAND:THE EFFICIENT BLOCK CHAIN(アルゴランド:効率的なブロックチェーン)」と題する米国仮特許出願第62/343,369号、2016年6月2日に出願された「ALGORAND THE EFFICIENT BLOCK CHAIN(アルゴランド 効率的なブロックチェーン)」と題する米国仮特許出願第62/344,667号、2016年6月7日に出願された「ALGORAND THE EFFICIENT BLOCK CHAIN(アルゴランド 効率的なブロックチェーン)」と題する米国仮特許出願第62/346,775号、2016年6月16日に出願された「ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER(アルゴランド 効率的かつ民主的な台帳)」と題する米国仮特許出願第62/351,011号、2016年6月22日に出願された「ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER(アルゴランド 効率的かつ民主的な台帳)」と題する米国仮特許出願第62/353,482号、2016年6月24日に出願された「ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER(アルゴランド 効率的かつ民主的な台帳)」と題する米国仮特許出願第62/354,195号、2016年7月19日に出願された「ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER(アルゴランド 効率的かつ民主的な台帳)」と題する米国仮特許出願第62/363,970号、2016年8月1日に出願された「ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER(アルゴランド 効率的かつ民主的な台帳)」と題する米国仮特許出願第62/369,447号、2016年8月24日に出願された「ALGORAND THE EFFICIENT PUBLIC LEDGER(アルゴランド 効率的な公開台帳)」と題する米国仮特許出願第62/378,753号、2016年9月2日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/383,299号、2016年9月13日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/394,091号、2016年9月27日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/400,361号、2016年10月3日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/403,403号、2016年10月20日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/410,721号、2016年11月3日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/416,959号、2016年11月16日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/422,883号、2017年2月6日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/455,444号、2017年2月14日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/458,746号、および、2017年2月16日に出願された「ALGORAND(アルゴランド)」と題する米国仮特許出願第62/459,652号に対する優先権を主張し、同出願を参照によりすべて本明細書に組み込む。
本出願は、電子トランザクションの分野に関し、より具体的には、トランザクションブロックのシーケンスの内容および電子支払の検証を保護する分散型公開台帳の分野に関する。
発明の背景
公開台帳とは、誰もが読んだり増やしたりすることのできる、改ざん防止データのシーケンスである。共有公開台帳は、現代社会の活動のあり方に革命的な変化を起こしそうである。これは、支払、資産の移転および権利化等のあらゆる種類の従来の取引を、それが発生した正確な順番で保護することができ、また、暗号通貨やスマートコントラクト等の全く新しい取引を可能にする。不正を抑え、仲介機関をなくし、信頼の新たな枠組みの先駆けとなることができる。支払システムおよび暗号通貨を構築するために公開台帳を使用することは、特に重要かつ魅力的である。
ビットコイン(Bitcoin)等の以前の分散型システムでは、ユーザは、電子署名スキームの公開鍵を有する(また、対応する秘密鍵を知っている)。各鍵を人とみなして、それをユーザと考えると便利である。実際、このシステムの公開鍵は知られているが、その鍵の背後にいるユーザは直接知られていないため、ある程度のプライバシーがユーザに提供される。マネーは各公開鍵に直接関連付けられている。それまでのブロックのシーケンスについて推論することのできる各時点で、各公開鍵は所与の金額のマネーを所有している。ある公開鍵(「支払人」)から別の公開鍵(「受取人」)への支払には、支払人によって電子署名がなされる。同様に、すべてのトランザクションに電子署名がなされる。さらに、有効にするためには、支払は、その時点で支払人が所有するマネーを超えない金額のマネーを移転しなければならない。支払(および、より一般的には、トランザクション)はブロックに整理される。ブロックは、その支払(およびトランザクション)のすべてが集合的に有効であれば有効である。すなわち、ある所与のブロックのいずれかの支払人が支払うマネーの総額は、その時点で当該支払人が利用できるマネーの金額を超えない。ビットコインは非許可型システムである。すなわち、新たなユーザが、自由にシステムに参加することができる。新たなユーザは、(有効な)ブロックで支払の受取人として出現するとき、システムに参加する。したがって、ビットコインでは、ユーザは、複数の鍵を所有することによって、ユーザが享受するいかなるプライバシーを強化してもよく、その鍵を、異なるタイプの支払に使用してもよい。非許可型システムでは、ユーザは、所有している鍵から新たな鍵にマネーをいくらか移転することによって、自分の鍵の数を簡単に増やすことができる。非許可性は重要な性質である。非許可型システムは許可型システムとして運用することもできるが、その逆は必ずしも真ではない。許可型システムでは、新たなユーザは自動的に参加することはできず、承認を受けなければならない。(許可型システムの特殊なケースは、ユーザの集合が固定されているものである。)非許可型システムは、より応用可能で現実的であるが、同時に課題も多い。ビットコインおよび同様な分散型システムでは、ユーザは、メッセージを伝播することによって(つまり、「うわさ話をする」ことによって)通信する。メッセージは、ランダムに選ばれた少数の「隣人」に送られ、その各人が、さらに、そのメッセージを、少数のランダムな隣人に送る、等である。ループを避けるために、一人が同じメッセージを2度送ることはない。分散型(または共有)台帳は、それまでに発生した(有効な)トランザクションのブロックのシーケンスからなる。通例、第1番目のブロック、すなわちジェネシスブロックは、システムの仕様の一部であることによって、共通知識であることが想定されている。共有台帳は、新たなブロックが「生成される」方法が異なる。
しかし、現在実施されているように、公開台帳はその膨大な可能性を実現していない。集中型公開台帳は、すべての信頼を、所与の鍵が行う支払の公開を任意に拒否することができる単一のエンティティに置いており、サイバー攻撃に対して非常に脆弱である。実際、単一の中央集権機関が危険にさらされれば、システム全体も同様となる。ビットコイン等の非集中型システムは、無駄な計算や他の価値あるリソースを作動させるのが非常に高価で、新たなエンティティ(マイナー(採掘者))の手に権力を集中させ、かなりの曖昧さ(フォーク)を受け、レイテンシが長くスループットが小さい。他の非集中型の実施態様は、許可型であるか、もしくは不正を働くユーザを罰する能力を呈するか、またはその両方であり、および/または、ユーザの何らかの部分集合が十分に長い期間にわたってサイバー攻撃を受け付けないことを確信している。
このように、中央集権機関に頼る必要なく、公知の非集中型アプローチの非効率性および危険な状態に悩まされない公開台帳および電子マネーシステムを提供することが望ましい。
発明の概要
本明細書に説明されるシステムによると、トランザクションがブロックに整理されるトランザクションシステムにおいて、エンティティは、前のブロックB,...,Br−1のシーケンスに関連して、有効なトランザクションの新たなブロックBを構築するために、エンティティに前のブロックから数量Qを求めさせ、Qとエンティティとに一意に関連付けられているストリングSを計算するためにエンティティに秘密鍵を使用させ、エンティティに、Sから、S自体、Sの関数およびSのハッシュ値のうちの少なくとも1つである数量Tを計算させ、Tが所与の性質を有しているかどうかをエンティティに判断させ、Tが所与の性質を有している場合には、エンティティに、Bに電子署名させて、Sおよび電子署名済みバージョンのBを利用できるようにさせる。秘密鍵は、エンティティの公開鍵に対応する秘密署名鍵であってもよく、Sは、エンティティによるQの電子署名であってもよい。Tは、数のバイナリ展開であってもよく、所与の数p未満である場合に当該性質を満たすことができる。Sは、BからSを推論できるようにすることによって利用できるようにされてもよい。各ユーザは、トランザクションシステムに残高を有することがあり、各ユーザの残高に応じて各ユーザについてのpが変動することがある。
さらに本明細書に説明されるシステムによると、トランザクションがブロックに整理されて、ブロックが電子署名の集合によって承認されるトランザクションシステムにおいて、エンティティは、新たなトランザクションのブロックBの承認を、前のブロックのシーケンスをB,...,Br−1とすると、エンティティに前のブロックから数量Qを求めさせて、エンティティにQの電子署名Sを計算させ、エンティティに、Sから、S自体、Sの関数およびSのハッシュ値のうちの少なくとも1つである数量Tを計算させ、Tが所与の性質を有しているかどうかをエンティティに判断させ、Tが所与の性質を有している場合には、エンティティに、他者がSを利用できるようにさせることによって行う。Tは、数のバイナリ展開であってもよく、所定の閾値p未満である場合に所与の性質を満たし、エンティティは、Sも利用できるようにすることができる。エンティティはトランザクションシステムに残高を有することがあり、pはエンティティの残高に応じて変動してもよい。エンティティは、少なくとも1つの他のエンティティの授権代理人として行為してもよい。pの値は、エンティティの残高および/またはエンティティの残高と他のエンティティの残高との組み合わせに依存してもよい。他のユーザは、ユーザに電子署名の権限を与える。エンティティは、Bがエンティティの所与の集合によって実行されたビザンチン合意プロトコルの出力である場合に限り、Bに電子署名することができる。エンティティのうちの特定の1つの電子署名が、前のブロックによって求められた、所与の性質を満たす数量を有する場合、エンティティのうちのその特定の1つは、エンティティの所与の集合に属すことができる。
さらに本明細書に説明されるシステムによると、生成されて電子署名されたブロックのシーケンスB,...,Br−1にトランザクションが整理され、各ブロックBが、保護されるべき何らかの情報INFOを含むとともに保護情報Sを含むトランザクションシステムにおいて、新たなブロックBが生成される度に、バイナリツリーのリーフiにBの情報INFOを挿入することと、マークル木Tを得るために前記バイナリツリーをマークル化することと、Tのルートの内容RおよびTのリーフiの内容の認証経路を含むために、ブロックBの前記保護情報Sを判定することと、によって、ブロックの内容に対して、検出不能な改変がなされないようにする。直前のブロックBi1のSi1の保護情報は格納されてもよく、保護情報Sは、所定のシーケンスで、Si1の値、INFOのハッシュおよび所与の値のうちの少なくとも1つを含む集合から値をハッシュ化することによって得ることができる。第1のエンティティは、ブロックBの保護情報Sを有する第2のエンティティにマークル木TでINFOの認証経路を受信させることによって、ブロックBの直前のブロックBの情報INFOが真正であることを前記第2のエンティティに対して証明することができる。
さらに本明細書で説明されるシステムによると、ユーザが残高を有し、電子署名された支払を介して互いにマネーを移転し、ユーザの初期集合の残高が既知である支払システムにおいて、第1番目のユーザ支払セットが第1番目の電子署名済みブロックBに収集され、第2番目のユーザ支払セットが第2番目の電子署名済みブロックBに収集されて、Bの後に利用できるようになる、等の場合、エンティティEが、ユーザiが第r番目のブロックBの時点ですべての支払を行いかつ受領した後でユーザiが利用できる残高ariに関し、ブロックB,...,Br−1のシーケンスに明記される情報から推論可能な情報から、すべてのユーザxについて金額aを計算し、利用できるようにされている第r番目のブロックBの時点でのシステム内のユーザの数nを計算し、xが所与の順番におけるi番目のユーザの場合、各ユーザxについて、ユーザxを所与の順番に並べ、少なくともn個のリーフを有するバイナリ木Tのリーフiにaを格納し、木Tのマークル値を判定して、Tのルートで格納される値Rを計算し、Rを認証する電子署名Sを生成し、リーフlとTのルートとの間の経路のノードの兄弟であるすべてのノードの内容を提供してTの任意のリーフiの内容の証明としてSを利用できるようにすることによって、検証済み情報を提供する。
さらに本明細書で説明されるシステムによると、ユーザが残高を有し、電子署名された支払を介して互いにマネーを移転し、ユーザの初期集合の残高が既知である支払システムにおいて、第1番目のユーザ支払セットが第1番目の電子署名済みブロックBに収集され、第2番目のユーザ支払セットが第2番目の電子署名済みブロックBに収集されて、Bの後に利用できるようになる、等の場合、エンティティの集合Eが、ユーザiが第r番目のブロックBの時点ですべての支払を行いかつ受領した後でユーザiが利用できる残高aを検証することを可能にする情報を、最初のr個のブロックの支払後の各ユーザiの残高を判定し、各ユーザの残高がTの少なくとも1つのノードの保護されるべき値である場合、マークル平衡探索木Tを生成し、エンティティの集合の各メンバーに、Tのルートの保護値hvεを含む情報の電子署名を生成させ、hvεの電子署名を提供して前記最初のr個の支払後のユーザのうちの少なくとも1名の残高を証明することによって提供する。エンティティの集合は、1つのエンティティから構成されてもよい。エンティティの集合は、その電子署名の値に基づいて選択されてもよい。
さらに本明細書で説明されるシステムによると、ユーザが残高を有し、電子署名された支払を介して互いにマネーを移転し、ユーザの初期集合の残高が既知である支払システムにおいて、第1番目のユーザ支払セットが第1番目の電子署名済みブロックBに収集され、第2番目のユーザ支払セットが第2番目の電子署名済みブロックBに収集されて、Bの後に利用できるようになる、等の場合、エンティティEが、ユーザiが第r番目のブロックBの時点ですべての支払を行いかつ受領した後でユーザiが利用できる残高aを、各ユーザの残高がTの少なくとも1つのノードの情報値であるマークル平衡探索木Tのルートの保護情報hvεについて、エンティティの集合のメンバーの電子署名を取得し、ユーザiについて、認証経路、およびTで検索するために所与の検索アルゴリズムを処理するすべてのノードの内容を計算し、別のエンティティがiの残高を検証することを可能にするために、認証経路と内容および電子署名を提供することによって証明する。
さらに本明細書に説明されるシステムによると、非一時的コンピュータ可読媒体に提供されるコンピュータソフトウェアは、本明細書に説明される方法のいずれかを実装する実行可能コードを含む。
共有公開台帳はトランザクションのブロックの共通のシーケンスを生成するべきであり、その内容はセキュアであり、容易に証明することができる。したがって、本発明は、ブロックのシーケンス(ブロックツリー)の内容を保護する新規な方法で、その内容も容易に証明することが可能なブロックの共通シーケンス、アルゴランドを生成する新規な方法を提供する。
アルゴランド
高次で、B,...,Br−1をアルゴランドの最初のr−1個のブロックとすると、新たなブロックBは次の2つの(メガ)ステップにより生成される。
・ブロックリーダーであるユーザlはランダムに選択されて信用されており、そのタスクは、有効なトランザクションの新たなブロックBをアセンブルし、これを認証し、ネットワークを通じてこれを伝播することである。誠実なリーダーlによって提案される場合、ブロックBは、lが見る新たな有効トランザクションのすべてを含む。
・集合的に「委員会」と見なされるユーザの部分集合Cは、ランダムに選択されて、Cには、lによって提案されたブロックのコンセンサスを取り、これを認証し、この認証をネットワークに伝播するタスクが課せられる。ブロックは、それがCの証明済みメンバーのうちの少なくとも所与の数によって適切に認定される場合、つまり、電子署名される場合に限り、公開台帳に記入される。
ここで、公開鍵がどのように選択されるか、Cがコンセンサスをどのように取るか、そして、ブロックを認定するために必要な電子署名の所与の数がどのように選ばれるかを詳細に説明する。
好ましくは、公開鍵は、秘密暗号くじを介して、ブロックBのリーダーまたは委員会メンバーとして選択される。本質的に、ユーザは、自分自身のくじ引きを実行することによって自分を選択するので、(a)当該ユーザは、(たとえ自分が望んだとしても)いかさまをして、自分が思ったよりも高い確率で自分を選択することはできず、(b)誰でも調べることができる、選択されたという証明Pを取得し、(c)当該ユーザは、自分が選択されたことを知る唯一の者である(証明Pを提示することによって、そうであることを他者に明らかにすると決めるまで)。
ユーザが所有する公開鍵が選択される確率を高めるために、ユーザは、自分が所有する公開鍵の数を増やす誘惑にかられるかもしれないが(いわゆるシビル攻撃)、これは、既に述べたように非許可型システムでは非常に簡単に行える。このような攻撃を防止するために、選ばれる秘密暗号くじは、所与の公開鍵が選択される確率を、当該公開鍵が所有するマネーに比例させることを確実にする。このように、ユーザが、自分のマネー全部を単一の鍵に関連付けておくか、またはそれをいくつかの鍵に分散させるかに関係なく、当該ユーザの公開鍵のうちの1つが選択される確率は同じである。(具体的には、ユーザが、例えば、100万ドルを単一の鍵に所有していても、または1ドルずつの100万個の鍵を所有していても、選択される可能性は同じである。)
より正確には、ユーザが所有する公開鍵pkが、リーダーまたは委員会メンバーとして選択されるかどうかを判定するために、ユーザは、以前のすべてのブロックから導き出せるいくつかの情報に電子署名する(対応する秘密鍵skを介して)。好適な実施形態において、ユーザは、実際には、最後のブロックBr−1から導き出せる数量Qに電子署名し、それをハッシュ化し、ハッシュが所与の(確率)閾値p(これは、ユーザの公開鍵が所有するマネーの金額に依存する)よりも小さいかどうかをチェックする。この場合には、ユーザのこの電子署名は、公開鍵pkが選択された証明として使用することができる。実際、誰もが、ユーザの署名を、チェックし、ハッシュ化し、所与の閾値pと比較することができる。
選択閾値pを変えることによって、システムは、それぞれの役割について何人のユーザを選択するかを制御する。まず、委員会Cの公開鍵を選択することを考えてみよう。例えば、システム内に、それぞれ同じマネーの金額を所有する100万個の鍵があり、Cに、ほぼ1千人のメンバーを持たせたいと仮定する。すると、p=1/1,000を共通の選択閾値にするように選ぶことができる。事実、署名のハッシュは0から1までのランダムな数のバイナリ展開としてみなすことができ、そのため、1/1,000以下になり、確率はp=1/1,000に等しい。このように、選択されるユーザの予想総数は100万/1千=1/1千になる。後で述べるように、異なる公開鍵が異なるマネーの金額を所有するときもなお、所与の数の委員会メンバーを選択することを実現することができる。
ここで、r番目のブロックについて単一のリーダーlを選択することを考えてみよう。そして、システムは、まず、(例えば100個の)公開鍵を選択するために秘密暗号くじを使用してもよく、次に、リーダーを(ハッシュ化された)証明がより小さい公開鍵にする。より正確には、簡潔さのみのために、選択される鍵がpk,...,pk100であり、それに対応する選択の証明がP,...,P100であると仮定する。すると、選択される各鍵の所有者iは、新たな有効トランザクションの自分自身のブロックB をアセンブルし、適切に認証されたブロックB とともにPを伝播する。すると、リーダーlは、その証明が辞書式順序に小さい鍵になり、ブロックBは、lによって提案されるブロックであるとして委員会Cがコンセンサスを取るブロックになる。
ブロックリーダーを選択するために秘密暗号くじを使用する大きな利点は、システムの活動を監視して自らが望む任意のユーザをうまく支配できる敵対者が、リーダーlを容易に腐敗させることができないため、lが提案するブロックを選べるようになることである。事実、100名の潜在的リーダーが、自分自身のくじ引きを実行することによって秘密裡に自分自身を選択する場合。したがって、敵対者は、どれが(予想される)100個の公開鍵になるか分からない。しかし、各iが自分のクレデンシャルおよび提案されるブロックを伝播すると、敵対者はすぐにリーダーlが誰であるかを見つけ出すことができる。しかし、その時点では、リーダーを腐敗させる利点はほとんどない。当該リーダーのブロックおよび証明はネットワークを通じて急速に伝播しており、止めることができない。(国家でさえ、例えば、ウィキリークスが送ったメッセージを元に戻すことはできなかった。)それでも敵対者には最後の1つの手段が利用できるかもしれない。すなわち、敵対者はlを腐敗させるかもしれず、当該lを支配してしまえば、異なるブロックをアセンブリし、認証し、伝播することを当該lに強いる。しかし、敵対者には、この機会すら閉ざされる。実際、ユーザは、自分の支払およびトランザクションを認証し、(ユーザが選択される場合に)自分の選択の証明を生成するために使用する秘密署名鍵を保管する。しかし、ユーザがリーダーとして選択される場合、ユーザは、提案するブロックを認証するために、異なる一時的な鍵のセットを使用する。より正確には、ユーザは、(例えば100万個の)公開・秘密鍵のペア(pk ,sk )のセットを事前に選択し、まだ使用するかもしれない各秘密鍵sk を安全に保管する。本発明のシステムは、提案されるr番目のブロックに署名できるのがどのiかに対してpk が唯一可能な公開鍵であることを誰もが認識することができ、pk に関連するiの電子署名を誰もが検証することができるが、対応する秘密鍵sk を知っている唯一の者が当該iであるため、このような署名を生成することができるのはiだけであることを保証する。iが誠実で、ブロックB を提案するために選択される場合、iは、自分の公開鍵ペア(pk ,sk )に関連してブロックB に電子署名し、直後にsk を破壊する。このように、万が一敵対者がiを腐敗させるのに成功したとしても、敵対者は、今や腐敗させられているiに第2の異なるブロックを認証させることを可能にするために必要な秘密鍵sk を見つけられない。委員会メンバーについても同じ利点が存在する。ここで、リーダーlによって伝播されるブロックに関して委員会Cのメンバーがどのようにコンセンサスを取るかを述べる。
新たに提案されるブロックに関してCがコンセンサスを取るための好適な方法は、ビザンチン合意(BA)による。BAプロトコルは、それぞれ自分自身の値から始まる一定のプレーヤ集合が共通の値に関してコンセンサスを取ることを可能にする通信プロトコルである。プレーヤは、当該プレーヤの規定された命令のすべてに従う場合には誠実で、そうでない場合には悪意である。悪意のプレーヤは、単一のエンティティである敵対者によって支配され、完璧に協調させることができる。プレーヤのうちの少数(例えば1/3)だけが悪意である限り、BAプロトコルは次の2つの基本的な性質を満たす。(1)誠実なプレーヤ全員が同じ値を出力し、かつ、(2)プレーヤ全員が同じ出力値で開始する場合、誠実なプレーヤ全員がその値を出力する。
非許可型分散型台帳システムでBAを使用するにはいくつかの課題がある。主なものは、BAプロトコルが非常に遅いことである。(通例、BAプロトコルには、たかだか数十人のユーザしか関われない。)アルゴランドは、この課題を、最悪の場合でも、予想で9ステップしか踏まない新規なプロトコルによって克服する。さらに、これらのステップのそれぞれで、参加するプレーヤは単一の短いメッセージを伝播するだけでよい!
しかし、別の課題も残っている。新たなブロックに関してビザンチン合意に達するためには、2つ以上のステップを踏むため、(委員会メンバーは秘密暗号くじを介して自分を選択するので)委員会メンバーが自分の最初のメッセージの送信を開始する前に敵対者が委員会メンバーを攻撃することはできないかもしれないが、当該委員会メンバーがBAプロトコルで自分の最初のメッセージを伝播した後であれば、当該敵対者は委員会Cのメンバー全員を腐敗させることができるであろう。実際、当該委員会メンバーは、自分の最初のメッセージを使って、委員会に所属していることの証明も伝播する。幸いなことに、本発明によるコンセンサスプロトコルは、プレーヤ代替性であるという追加の新規な利点を享受する。すなわち、プロトコルの予想される少数のステップのそれぞれは、異なるプレーヤの集合によって実行することができ、当該プレーヤらは秘密情報または隠れた内部状態を、以前のいずれかのステップを行うために選択されたプレーヤと一切共有する必要がない。実際、アルゴランドのコンセンサスプロトコルは、ステートレスなビザンチン合意(BA)プロトコルである。したがって、新たなBAプロトコルの各ステップを実行するために、異なるユーザの集合を、秘密暗号くじを介して、選択することができる。
最後の課題が1つ残っている。述べてきたように、公開鍵は、ブロックBの生成において役割を有するために、既に公開で知られている前のブロックBr−1の一部であることが好ましい数量Qに電子署名し、その署名が、特殊な性質、すなわち、そのハッシュが所与の選択閾値未満でなければならないこと、を満たしているかどうかを検証することによって、自らを選択する。問題は、アルゴランドが非許可型であるため、敵対者は、Qの署名が所望の性質を有するものを見つけるまで、多くの公開・秘密鍵ペアを生成し続ける場合があることである。このような鍵を見つけると、敵対者は、自分の鍵のうちの1つがブロックBの選択を担当するリーダーであることを保証するために、または、当該敵対者がBAの性質を壊すことを可能にする、当該敵対者の支配する鍵を委員会Cのほとんどが含むことを保証するために、その鍵をシステムに持ち込むかもしれない。この可能性を防ぐために、アルゴランドは2本柱の戦略に依拠する。まず、新たに導入された鍵には、ブロックリーダーまたは委員会メンバーとしてすぐに選択される資格を持たせない。むしろ、ブロックBの生成で役割を持つために、鍵pkはしばらくそこに存在していなければならない。より正確には、当該鍵は、ブロックBr−kまたはそれより古いブロックで最初に出現しなければならず、ここでkは十分に大きい整数である。(例えば、我々の詳細な実施形態のそれぞれにおいて、マネーの少なくとも80%が誠実者の手元にある場合、k=70で十分である。)次に、Qを帰納的に、すなわち、前の数量Qr−1の観点から定義する。より正確には、我々の好適な実施形態において、Qは、ペア(Qr−1,r)のブロックBのリーダーのハッシュ電子署名である。この電子署名は、実際には、ブロックBr−1の明示的な部分にされる。これが機能する理由は次の通りである。敵対者が、あるブロックBr−kで、自分が支配する公開鍵からpkに支払を行うことによって、システムに新たな鍵pkを持ち込むことにした場合、pkが役割を果たすことができる最も早いブロックはBである。しかし、Bより前のk個のブロックについては、ランダムに推測するよりも有意によくなるようなQr−1を誰も予測することはできないことを証明する。そのため敵対者は、いかなる戦略的な方法でもpkを選ぶことができない!
ブロックツリー(およびステータスツリー)
ブロックチェーンは、そのブロックの改ざん防止性を保証するが、そのブロックでの動作(例、所与の支払が所与のブロックの一部かどうかを証明すること)をかなり複雑で手間がかかるものにもする。共有公開台帳はブロックチェーンの類義語ではなく、実際、ブロックを構築するためのより優れた方法から利益を得る。アルゴランドは従来のブロックチェーンを用いて機能するが、情報のブロックの新たな構築方法、ブロックツリーも用いて機能する。この発明による方法には、独自の重要性があり得る。
ブロックツリーの主な利点は、ブロックチェーン全体を提示する必要なく、過去の個々のブロックの内容を効率的に証明できることである。
我々は、マークル木の新規な適用によりブロックツリーを構築する。
また、支払が公開鍵から別の公開鍵にマネーを移転し、支払がブロックのシーケンスに整理される分散型支払システムの場合、我々は、支払の最初のr個のブロックの後で所与の鍵が利用できる残高(口座にあるマネー)が何であるかを証明する、効率的な方法を提供する。この方法をステータスツリーと呼ぶ。
本明細書で説明するシステムの実施形態を、以下簡潔に説明する図面の図に従って、より詳細に説明する。
図1は、本明細書で説明するシステムの実施形態による、ネットワークおよびコンピューティングステーションの模式図である。 図2は、トランザクションの新たなブロックが提案される場合の、アルゴランドシステムの第1ステップの模式的かつ概念的な概略である。 図3は、アルゴランドシステムの新たなブロックの合意および認定の模式的かつ概念的な概略である。 図4は、マークル木およびそのノードのうちの1つに含まれる値の認証経路を示す模式図である。 図5は、ブロックツリー内に構築される第1番目のブロックに対応するマークル木を示す模式図である。 図6は、ブロックツリー内の第1番目のブロックの保護情報を構築するために十分な値を示す模式図である。
様々な実施形態の詳細な説明
本明細書で説明するシステムは、エンティティがトランザクション情報を検証および/または伝播する計算を行うことに対して単独で責任を負わないように、トランザクションの検証および伝播を分散させるためのメカニズムを提供する。代わりに、参加エンティティのそれぞれは、検証可能かつ信頼性をもってトランザクションを伝播するために行われる計算を共有する。
図1を参照すると、図は、インターネット等のデータネットワーク24に接続されている複数のコンピューティングワークステーション22a〜22cを示している。本明細書の他の箇所でより詳細に説明するように、ワークステーション22a〜22cはネットワーク24を介して互いに通信し、分散型トランザクションの伝播および検証を提供する。ワークステーション22a〜22cが互いに通信可能であることを条件に、システムは、本明細書で説明する機能を提供することのできる任意の数のワークステーションに対応することができる。本明細書の他の箇所でより詳細に説明するように、ワークステーション22a〜22cのそれぞれは、トランザクションをシステム内の他のワークステーションのすべてに伝播し、トランザクションを検証するための処理を独立して行うことができる。
図2は、アルゴランドシステムのラウンドrの最初のステップを図式的かつ概念的にまとめたものであり、少数の選択されたユーザのそれぞれが、r番目のブロックについて自分自身の候補を提案する。具体的には、ステップは、システムのユーザa,...,zが個々に秘密暗号くじプロセスを経ることから始まり、ブロックの提案にどのユーザが選択され、選択された各ユーザがブロックを生成する権利を与えられていることを証明するクレデンシャルを当該ユーザがどこで秘密に計算するかを決定する。図2の実施例では、ユーザb、dおよびhのみがブロックの提案に選択され、それぞれの計算されたクレデンシャルはσ r,1,σ r,a1およびσ r,1である。選択された各ユーザiは自分自身の提案ブロックB をアセンブルし、それに一時的に署名し(すなわち、後で説明するように、一時的な鍵を使ってそれに電子署名する)、自分自身のクレデンシャルと一緒にネットワークに伝播する。ラウンドのリーダーは、クレデンシャルが最も小さいハッシュを有する、選択されたユーザである。図は、リーダーがユーザdであることを示している。したがって、ユーザdの提案ブロックB は、バイナリ合意プロトコルへの入力として与えられるものである。
図3は、合意に達し、提案ブロックを正式なr番目のブロックBとして認定するためのアルゴランドのプロセスを図式的かつ概念的にまとめたものである。アルゴランドの最初のステップは新たなブロックを提案するステップからなるため、このプロセスは第2ステップから始まる。このステップは、実際には、アルゴランドの好適なビザンチン合意プロトコルBAの最初のステップと同時に起こる。このプロトコルの各ステップは、秘密暗号くじによってランダムに選択されたプレーヤからなる、異なる「委員会」によって実行される(図には示していない)。したがって、各ステップを行うために選択されるユーザは全く異なることがある。BAのステップの数も異なることがある。図3は、アルゴランドの2からアルゴランドのステップ8までの7つのステップを含むBAの実行を示す。図3の実施例では、ステップ2を行うために選択されるユーザはa,eおよびqである。各ユーザi∈{a,e,q}はネットワークに自分のクレデンシャルσ r,2を伝播するが、これは、iがアルゴランドのラウンドrのステップ2でメッセージを送る権利を実際に与えられていることを証明するものであり、当該ユーザiの、このステップに適切なメッセージm r,sは一時的に署名される。ステップ3〜7は図示していない。最後のステップ8で、図は、ラウンドrの正式なブロックとしてBに関して合意に達した、対応する選択されたユーザb,fおよびxがブロックBの自分自身の一時的な署名(合わせて、これらの署名がBを認定する)および自分自身のクレデンシャルを伝播して、ステップ8で行為する権利が自分に与えられていることを証明することを示している。
図4は、マークル木およびその認証経路のうちの1つを模式的に示す。具体的には、図4.Aは、深さ3の完全なマークル木を示す。xが長さ≦3のバイナリストリングによって表される場合、各ノードxは、値vを格納する。xが長さ≦2を有する場合、v=H(vx0,vx1)である。図4.aのマークル木について、図4.Bは値v010の認証経路を示す。
図5は、深さ3の完全なバイナリツリー内で構築される、ブロックツリーで構築される最初の8個のブロックに対応するマークル木を模式的に示す。図5.iにおいて、整数によって記されるノードはマークル木Tに属す。i(それぞれ、i)によって記されるノードの内容は一時的なものである(それぞれ、永久的)。
具体性のためにのみ、我々の説明において、すべてのトランザクションが支払であると仮定し、アルゴランドを金融プラットフォームとしてのみ説明することに専念する。当業者は、アルゴランドがあらゆる種類のトランザクションも同様に扱うことができることを認識するであろう。
アルゴランドは非常にフレキシブルな設計を有し、多様な、ただし関係する方法で実施することができる。我々はそのフレキシビリティを、その一般的な設計の2つの可能な実施形態を詳述することによって例示する。かかる例示から、当業者は、あらゆる種類の他の実施態様も同様に導き出す方法を理解することができる。
本発明の理解を助け、その様々な部分の内部相互参照を可能にするために、その提示を、番号を振って見出しを付けたセクションに分けて整理する。最初のセクションは、詳細な実施形態のどちらにも共通である。
1 序論
マネーはますます仮想になってきている。現在、合衆国ドルの約80%は台帳記入としてしか存在していないと見積もられている。他の金融商品もそれに倣ってきている。
起こり得るすべてのサイバー攻撃を受けず、普遍的に信頼のおける中央エンティティに頼ることができる理想的な社会では、マネーおよび他の金融取引は電子だけにできるであろう。残念ながら、そのような社会に我々は生きていない。したがって、ビットコイン等の非集中型暗号通貨およびイーサリアム(Ethereum)等の「スマートコントラクト」システムが提案されている。これらのシステムの核となるのが、支払およびコントラクトといった多様なトランザクションのシーケンスを、改ざん防止して信頼性をもって記録する共有台帳である。このような改ざん防止性を保証するために選ばれる技術がブロックチェーンである。ブロックチェーンは、暗号通貨、金融アプリケーション、およびインターネット・オブ・シングス等のアプリケーションの背後にある。ブロックチェーンベースの台帳を管理するためのいくつかの手法、すなわち、プルーフ・オブ・ワーク、プルーフ・オブ・ステーク、プラクティカル・ビザンチン・フォールト・トレランス、またはいくつかの組み合わせ、が提案されている。
しかし、現在、台帳は管理するのに非効率的であることがある。例えば、ビットコインのプルーフ・オブ・ワークのアプローチは膨大な量の計算を必要とし、無駄が多く、スケーラビリティが低い。加えて、事実上、ごく少数の手中に権力を集中させる。
そのため、我々は、現在の非集中型実施態様の非効率性と弱点とがない、信頼のおける侵すことのできない権限機関によって運営される集中型システムの便宜および効率を提供する、公開台帳を実施する新たな方法を提案したい。それまでに構築された台帳に基づいて、有効なトランザクションの次のブロックの構築を担当する検証者の集合を選ぶためにアルゴリズム的ランダムネス(algorithmic randomness)を使用するので、我々は、我々のアプローチをアルゴランド(Algorand)と呼ぶ。当然、我々は、このような選択がおそらく最後の最後まで改ざんや不測の事態を免れることを保証するが、最終的には例外なく不正がないこともまた保証する。
アルゴランドのアプローチは、原則的にも事実上でもユーザの異なるクラス(ビットコインの「マイナー」および「普通ユーザ」として)を生み出さないという意味で、極めて民主的である。アルゴランドでは、「すべての権力が全ユーザの集合にある」。
アルゴランドの、ある注目すべき特性は、その取引履歴がごく小さい確率でしか分岐しないことである(例、1兆分の1、すなわち、またはさらに10−18)。アルゴランドは、いくつかの法律上および政治上の問題にも対処することができる。
アルゴランドのアプローチは、ブロックチェーンに適用され、より一般的には、ブロックの改ざん防止シーケンスを生成するあらゆる方法に適用される。我々は、実際に、ブロックチェーンに代わる、またブロックチェーンよりも効率的な、独自の重要性があり得る新たな方法を提案する。
1.1 ビットコインの仮定および技術的な課題
ビットコインは非常に巧妙なシステムであり、後続の研究を大量に呼び起こしている。しかし、課題もある。その基になっている仮定と技術的な課題とを要約してみよう。これは実際に、ビットコイン等、プルーフ・オブ・ワークに基づく基本的にすべての暗号通貨に共通するものである。
この要約のためには、ビットコインでは、ユーザは電子署名スキームの複数の公開鍵を所有することができ、マネーは公開鍵に関連付けられており、支払は、ある公開鍵から別の公開鍵へ何らかの金額のマネーを移転する電子署名であることを思い出せば十分である。本質的に、ビットコインは処理されるすべての支払を、それぞれ複数の支払からなるブロックのチェーンB,B,...,に整理するので、任意の順番で選ばれて、その後に任意の順番でBの支払がくる、等、Bのすべての支払が、有効な支払のシステムを構成する。各ブロックは、平均で、10分ごとに生成される。
このブロックのシーケンスは、単一のブロックにおけるものであれ、いかなる変化も後続のすべてのブロックに行き渡らせ、支払履歴のあらゆる改変を発見しやすくすることを確実にするので、チェーンである。(後で述べるように、これは、各ブロックに前のブロックの暗号学的ハッシュを含むことによって実現される。)このようなブロック構造は、ブロックチェーンと呼ばれる。
仮定:計算力の誠実な過半数
ビットコインは、悪意のエンティティ(および協調的な悪意のエンティティの連合体)が、ブロックの生成に充てられる計算能力の過半数を支配しないと仮定している。このようなエンティティは、実際には、ブロックチェーンを変更することができ、そのため、好きなように、支払の履歴を書き換えることができるであろう。特に、支払
Figure 0006986519
に、支払われる利益を得させた後、
Figure 0006986519
の一切の痕跡を「消去する」ことができるであろう。
技術的課題1:計算の無駄な消費
ブロック生成に対するビットコインのプルーフ・オブ・ワークアプローチには、桁外れの量の計算が必要である。現在、システムにわずか数十万の公開鍵しかないが、上位500の最もパワフルなスーパーコンピュータは、ビットコインのプレーヤから要求される総計算力のわずか12.8%にしか対応できていない。万が一システムに参加するユーザが大幅に増えると、この計算の量は大きく増大するであろう。
技術的課題2:権力の集中
現在、途方もない量の計算が必要とされているため、普通のデスクトップ(ましてや携帯電話)を使用して新たなブロックを生成しようとするユーザはマネーを失うと考える。実際、普通のコンピュータを使用して新たなブロックを計算するためには、計算を行うために必要な電力の予想コストは、期待される報酬を超える。特別に構築したコンピュータのプール(「新たなブロックをマイニングすること」以外には何もしない)を使用しなければ、新たなブロックの生成によって利益を得ることは期待できないであろう。したがって、現在、事実上、互いに素の2つのユーザのクラスがある。支払のみを行う普通ユーザと、新たなブロックを探すことだけをする専用マイニングプールである。
そのため、現在の時点で、ブロック生成のための総計算力がわずか5つのプールにあるというのは驚くべきことではない。このような状況では、計算力の過半数が誠実であるという仮定には、説得力がなくなってくる。
技術的課題3:曖昧さ
ビットコインでは、ブロックチェーンは必ずしも一意ではない。実際、その最新の部分はしばしば分岐する。ブロックチェーンは、例えば、あるユーザによるとB,...,B,B’k+1,B’k+2で、別のユーザによるとB,...,B,B”k+1,B”k+2,B”k+3であるかもしれない。いくつかのブロックがチェーンに追加された後でしか、最初のk+3ブロックが全ユーザについて同じになることを合理的に確信することができない。したがって、チェーンの最後のブロックに含まれる支払をすぐに信頼することはできない。ブロックがブロックチェーンにおいて十分に深くなるかどうか、また、そのため十分に安定するかどうかを待って確認する方が、より分別があることである。
別に、ビットコイン(脚注1参照)については、法執行および金融政策の課題も生じている。
脚注1
ビットコインの支払が提供する(疑似)匿名性は、マネーロンダリングおよび/または個人の犯罪者もしくはテロ組織の資金調達に悪用されるかもしれない。原則的に完璧な匿名性を提供する伝統的な銀行券または金の延棒は、同じ課題をもたらすとしても、これらの通貨の物理的存在が実質的にマネーの移転を鈍らせるので、法執行機関による監視をある程度可能にする。
「マネーを印刷」できることは、非常に基本的な国家権力の1つである。そのため、原則的に、独立して流通する通貨の大量採用は、この権力を減じるおそれがある。しかし、現在、ビットコインは政府の金融政策に対する驚異とはほど遠く、そのスケーラビリティの問題のために、絶対にそうならないであろう。
1.2 アルゴランド,簡潔な要約
設定
アルゴランドは、非常に厳しい設定でも機能する。簡単にいうと、
(a)非許可型環境および許可型環境。アルゴランドは、いかなる種類の審査も許可もなしに任意に多くのユーザがいつでもシステムに参加することを許される、完全な非許可型環境でも効率的かつセキュアに機能する。当然、アルゴランドは、許可型環境においてよりよく機能する。
(b)非常に敵対的な環境。アルゴランドは、以下のことができる非常にパワフルな敵対者に耐える。
(1)非許可型環境において、システム内のマネーの2/3が誠実なユーザに属しているとして、敵対者が望む任意のユーザを、敵対者が望む任意の時点で即座に腐敗させること。(許可型環境では、マネーに関係なく、ユーザの2/3が誠実であれば十分である。)
(2)腐敗させたユーザ全員を完全に支配し、完全に協調させること。
(3)誠実なユーザによって送られる各メッセージmが、ある時間λ以内にすべての(または十分多くの)誠実なユーザに届き、時間λがmのサイズにのみ依存するとして、すべてのメッセージの配信のスケジュールを組むこと。
主な性質
パワフルな敵対者の存在に関わらず、アルゴランドでは、
・必要な計算量は最小限である。
本質的に、いかに多くのユーザがシステム内に存在しようとも、1,500名のユーザのそれぞれが、たかだか数秒の計算を行わなければならない。
・新たなブロックはすぐに生成され、事実上、ブロックチェーンを絶対に離れない。
すなわち、アルゴランドのブロックチェーンは、無視できる確率でしか分岐しない(すなわち、1兆分の1未満、または10−18)。したがって、ユーザは、ブロックが出現するや否や、その新たなブロックに含まれる支払を信用することができる。
・すべての権力はユーザ自身にある。
アルゴランドは真に分散型のシステムである。具体的には、どのトランザクションが認められるかを管理することのできる外生的なエンティティ(ビットコインの「マイナー」のような)が存在しない。
アルゴランドの手法
1.新規かつ高速のビザンチン合意プロトコル
アルゴランドは、発明による暗号学的な、メッセージパッシングの、バイナリビザンチン合意(BA)プロトコルBAにより新たなブロックを生成する。プロトコルBAはいくつかの追加の性質(これはすぐに述べる)を満たすだけでなく、非常に高速でもある。大雑把にいうと、そのバイナリ入力バージョンは3ステップループからなり、プレーヤiが単一のメッセージmを他のすべてのプレーヤに送る。完全な同期ネットワークで実行されると、プレーヤの2/3超が確率>1/3で誠実であれば、各ループの後、プロトコルは合意に終わる。(プロトコルBAが、一切の弱化なくビザンチン合意の元の定義を満たすことを強調しておく。)
アルゴランドは、各新たなブロックに対して、我々の異なる通信モデルで、合意に達するためにこのバイナリBAプロトコルを利用する。合意されたブロックはさらに、適切な検証者の規定数の電子署名によって認定されて、ネットワークを通じて伝播される。
2.秘密暗号くじ
非常に高速であるが、プロトコルBAは、数百万のユーザによってプレイされるとき、さらなる高速化から利益を得るであろう。したがって、アルゴランドは、BAのプレーヤを、全ユーザの集合のうちのはるかに小さい部分集合にするように選ぶ。異なる種類の権力集中の課題を避けるために、新たな各ブロックBは、BAの新たな実行を介して、選択された検証者SVの個別の集合によって構築され、合意される。原則的に、このような集合を選択することは、Bを直接選択するのと同等に困難であろう。我々は、この潜在的な課題を、秘密暗号くじと名付ける新規なアプローチによって乗り切る。くじとは、資格のある個人の大きな集合からランダムに公務員を選出する慣習である。(くじは、何世紀にもわたり、例えば、アテネ、フィレンツェ、およびヴェネツィアの共和国によって実践された。現代の司法制度では、ランダムな選択は、陪審員の選出にしばしば使用される。ランダムサンプリングは、選挙についても提唱されている。)非集中型システムでは、当然、各検証者集合SVのメンバーをランダムに選択するために必要なランダムコインを選ぶことには問題がある。したがって、各検証者集合を、全ユーザの母集団から、自動的(すなわち、メッセージの交換が必要ない)かつランダムであることが保証されるように選択するために、暗号法に頼る。同様に、新たなブロックBの提案を担当するリーダーであるユーザと、リーダーによって提案されるブロックに関して合意に達することを担当する検証者集合SVとを選択する。本発明によるシステムは、前のブロックの内容から推論可能である何らかの情報Qr−1を利用し、非常に強力な敵対者の存在があっても改ざんは不可能である。
3.数量(シード)Q
新たなブロックBの構築を担当するための次の検証者集合とリーダーとを自動的に判定するために、ブロックチェーン内の最後のブロックBr−1を使用する。このアプローチの課題は、前のラウンドでわずかに異なる支払を選ぶだけで、パワフルな敵対者が次のリーダーに対して巨大な支配力を得ることである。敵対者がシステム内のプレーヤ/マネーの1/1000だけを支配しただけでも、すべてのリーダーを悪意にすることが確実にできるであろう。(直観セクション4.1を参照。)この課題はすべてのプルーフ・オブ・ステークアプローチにとって中心的なものであり、我々の知る限りにおいて、現在まで、満足に解決されていない。
この課題に答えるために、我々は、個別かつ慎重に定義された数量Qを意図的に構築して継続的に更新するが、これはおそらく、パワフルな敵対者にとって予測不可能なだけでなく、当該敵対者による影響を受けない。アルゴランドは、秘密暗号くじを介して、Qから、r番目のブロックの生成において特別な役割を果たすすべてのユーザを選択するため、Qをr番目のシードと呼ぶことがある。シードQは、ブロックBr−1から推論可能になる。
4.秘密のクレデンシャル
新たなブロックの構築を担当する検証者集合とリーダーとを選ぶために、その時点での最後のブロックBr−1をランダムかつ曖昧さなく使用することは十分ではない。Br−1はBを生成する前に分かっていなければならないため、Br−1から推論可能な、影響力を持つことができない最後の数量Qr−1も知らなければならない。したがって、ブロックBの計算を担当する検証者とリーダーについてもそうである。このように、パワフルな敵対者は、当該検証者とリーダーとが認定するブロックを完全に支配するために、当該検証者およびリーダーがBに関する何らかの議論に参加する前に、その全員を直ちに腐敗させるかもしれない。
この問題を防止するために、リーダー(および実際には検証者も)自分の役割を秘かに知るが、その役割を実際に有する全員に提供することが可能な適切なクレデンシャルを計算することができる。自分が次のブロックのリーダーであるとユーザが秘かに気づく場合、当該ユーザは、まず自分自身の提案される新たなブロックを秘密にアセンブルしてから、それを自分自身のクレデンシャルと一緒に広める(認定されることができるように)。このように、敵対者は、次のブロックのリーダーが誰かを直ちに気づいても、また、すぐにそのリーダーを腐敗させることができるとしても、敵対者が新たなブロックの選択に影響を及ぼすには遅すぎるだろう。実際、ウィキリークスが急速に広めたメッセージを力のある政府が元に戻すことができないのと同じく、敵対者はリーダーのメッセージを「取り消」すことはできない。
後で述べるように、我々は、リーダーの一意性を保証することも、また、リーダー自身を含めて、誰がリーダーであるかを皆が確信することを保証することもできない! しかし、アルゴランドでは、曖昧さのない進行が保証される。
5.プレーヤ代替性
リーダーは、新たなブロックを提案した後、自分の仕事が済んだため、「死」んだ方が良い(そうでなければ敵対者によって腐敗させられる)。しかし、SVの検証者の場合は、事はそれほど単純ではない。実際、十分に多くの署名で新たなブロックBの認定を担当する検証者は、まずリーダーが提案したブロックに対してビザンチン合意を実行しなければならない。問題は、それがいかに効率的でも、BAには複数のステップとそのプレーヤの>2/3の誠実者を要することである。これは、効率上の理由で、BAのプレーヤ集合が、全ユーザの集合の中からランダムに選択された小さな集合SVを成すため、問題である。したがって、パワフルな敵対者は、全ユーザの1/3を腐敗させることができなくても、SVの全メンバーを間違いなく腐敗させることができる!
幸いなことに、メッセージをピアツーピアで伝播することによって実行されるプロトコルBAがプレーヤ代替性であることをこれから証明する。この新規な要件は、このプロトコルが、そのステップのそれぞれが、全く新しい、ランダムに独立して選択されたプレーヤの集合によって実行されるとしても、正確かつ効率的にコンセンサスを取ることを意味する。したがって、数百万のユーザがいれば、BAのステップに関連付けられているそれぞれ小さなプレーヤの集合は、ほぼ確実に次の集合と空の交わりを有する。
加えて、BAの異なるステップのプレーヤの集合は、おそらく全く異なる濃度を有する。さらに、各集合のメンバーは誰が次のプレーヤの集合になるかを知らず、いかなる内部状態も秘かに渡さない。
代替可能プレーヤの性質は、我々が想定するダイナミックで非常にパワフルな敵対者を打ち負かすのに実際に極めて重要である。多数のコンテキストおよびアプリケーションにおいて代替可能プレーヤプロトコルが極めて重要であることを証明する、と考えている。具体的には、全プレーヤの小さな部分でも腐敗させることができ、より小さいサブプロトコルのプレーヤ全員を何の困難もなく腐敗させるダイナミックな敵対者とともに、プレーヤのより大きな母集団に埋め込まれる小さなサブプロトコルをセキュアに実行するためには、この代替可能プレーヤプロトコルが極めて重要になる。
追加の性質/手法:怠惰な誠実者
誠実なユーザは、自分の規定された命令に従うが、当該命令はオンラインであることを含み、プロトコルを実行する。アルゴランドは適度な計算および通信の要求事項のみを有するため、オンラインであることと「バックグラウンド」でプロトコルを実行することは大きな犠牲ではない。当然ながら、接続性が突然失われたり、または再起動する必要があったりすること等に起因する、誠実なプレーヤの中の少数の「不在」は自動的に黙認される(このような少数のプレーヤを一時的に悪意であると常にみなすことができるため)。しかし、指摘したいのは、アルゴランドが、誠実なユーザがほとんどの時間オフラインであるとする新たなモデルで機能するように単純に適応できる点である。我々の新たなモデルは、以下のように略式に紹介することができる。
怠惰な誠実者
大雑把にいうと、(1)プロトコルへの参加が求められるときに、自分の規定された命令のすべてに従い、(2)プロトコルへの参加を求められることは稀であり、かつ、参加要求が適切な事前の通知をもって行われる場合に、ユーザiは、怠惰であるが誠実である。誠実さについてのこのような厳格ではない概念によって、我々は、我々が必要とするときには誠実な人がすぐに対応できることをなお一層確信することができ、アルゴランドは、これが当てはまる場合に、以下のことを保証する。すなわち、
「所与の時点で、参加するプレーヤの過半数が悪意でも、システムはセキュアに動作する。」
2 準備
2.1 暗号プリミティブ
理想的なハッシング
我々は、任意の長さのストリングを固定長のバイナリストリングにマッピングする、効率的に計算可能な暗号学的ハッシュ関数Hに依拠するものとする。長い伝統の後、我々は、Hを、本質的に各候補ストリングsを選ばれた長さのランダムかつ独立して選択された(そして固定される)バイナリストリングH(s)にマッピングする関数である、ランダムオラクルとしてモデル化する。
我々の説明する実施形態において、Hは256ビット長の出力を有する。実際、このような長さは、システムを効率的にするのに十分に短く、また、システムをセキュアにするのに十分に長い。例えば、我々はHを衝突耐性にしたい。すなわち、H(x)=H(y)になるような異なる2つのストリングであるxとyとを見つけにくくするべきである。Hが256ビット長の出力を持つランダムオラクルである場合、このようなストリングペアを見つけることは実に難しい。(ランダムで試して、誕生日のパラドックスに依拠しても、2256/2=2128回の試行が必要だろう。)
電子署名
電子署名は、任意の秘密鍵を共有しなくても、ユーザに情報を互いに認証させる。電子署名スキームは、確率的キージェネレータG、署名アルゴリズムSおよび検証アルゴリズムVの3つの高速アルゴリズムからなる。
セキュリティパラメータを、十分に大きい整数kとすると、ユーザiは、Gを使用して、kビットの鍵ペア(すなわち、ストリング)と、「公開」鍵pkと対をなす「秘密」署名鍵skとを生成する。重大なことに、公開鍵はその対応する秘密鍵を「漏ら」さない。すなわち、pkを知っているとしても、i以外の誰も、天文学的な時間をかけなければskを計算することはできない。
ユーザiは、skを使用してメッセージに電子署名する。各候補メッセージ(バイナリストリング)mについて、iは、まず、mをハッシュ化してから、入力H(m)およびskにアルゴリズムSを実行して、
Figure 0006986519
(脚注2参照)のkビットストリングを生成する。バイナリストリング
Figure 0006986519
は、iによるmへの(pkに対する)電子署名と呼ばれ、公開鍵pkがコンテキストから明確である場合は、より単純にsig(m)で表すことができる。
脚注2
Hは衝突耐性であるため、mに署名することによって異なるメッセージm’に「偶然に署名する」ことは実際的に不可能である。
pkを知っている誰もがそれを使用して、iが生成した電子署名を検証することができる。具体的には、入力((a)プレーヤiの公開鍵pk、(b)メッセージm、および(c)ストリングs)、すなわち、iによるメッセージmへの電子署名とされるものに対して、検証アルゴリズムVは、YESまたはNOのいずれかを出力する。
電子署名スキームから我々が要求する性質は次の通りである:
1.適法な署名は必ず検証される:s=sig(m)であれば、V(pk,m,s)=YESであり、かつ、
2.電子署名は偽造しにくい:skを知らなければ、メッセージmについて、V(pk,m,s)=YESになるようなストリングsを見つけるための時間は天文学的に長い。
(強力なセキュリティ要件に従い、任意の他のメッセージの署名を取得できたとしてもこれは真実である。)
したがって、他の誰かが自分に代わってメッセージに署名することを防止するために、プレーヤiは自分の署名鍵skを秘密にしておかなければならず(したがって、用語「秘密鍵」)、自分の署名するメッセージを誰かが検証できるようにするために、iは自分の鍵pkを公開化することに関心を持つ(したがって、用語「公開鍵」)。
メッセージ検索可能性を有する署名
一般に、メッセージmは、その署名sig(m)から取り出すことはできない。概念上便利な「メッセージ検索可能性」の性質を満たす電子署名を仮想で取り扱うために(すなわち、署名者およびメッセージが署名から容易に計算可能であることを保証するために)、我々は次のように定義する。
Figure 0006986519
および、pkが明確な場合、
Figure 0006986519
一意の電子署名
我々は、次の追加性質を満たす電子署名スキーム(G,S,V)も検討する。
3.一意性
次のようになるストリングpk’,m,sおよびs’は見つけにくい。
Figure 0006986519
かつ
Figure 0006986519
(一意性の性質は、公開鍵が適法に生成されていないストリングpk’についてもあてはまることに留意されたい。しかし、具体的には、一意性の性質は、ある者が指定の鍵ジェネレータGを使用して対となる秘密鍵skと一緒に公開鍵pkを計算し、そうしてskを知った場合、pkに関する同じメッセージの2つの異なる電子署名を見つけることも本質的に不可能であるだろうことを含意する。)
備考
・一意の署名から検証可能なランダム関数まで
一意性の性質を有する電子署名スキームに関連し、マッピングm→H(sig(m))は、一意にランダムに選択された256ビットのストリングである各候補ストリングmと関連し、このマッピングの正当性は、署名sig(m)があれば証明することができる。
すなわち、一意性の性質を満たす理想的なハッシングおよび電子署名スキームは、本質的に、検証可能なランダム関数(VRF)の基本的な実施態様を提供する。
VRFは、特殊な種類の電子署名である。我々は、メッセージmのiのこのような特殊な署名を示すために、VRF(m)を書くことができる。一意性の性質を満たすことに加えて、検証可能なランダム関数は、十分にランダムであることを保証される出力を生成する。すなわち、VRF(m)は本質的にランダムであり、それが生成されるまで予測できない。対して、SIG(m)は、十分にランダムである必要はない。例えば、ユーザiは、SIG(m)が(辞書式順序で)小さい(すなわち、その最初の数ビットを必ず0とすることができるであろう)kビットストリングに必ずなるように自分の公開鍵を選ぶことができる。しかし、Hは理想的なハッシュ関数であるため、H(SIG(m))は必ずランダムな256ビットのストリングになることに留意されたい。我々の好適な実施形態において、一意のランダム数である各メッセージmと各ユーザiとに厳密に関連付けることができるよう、一意性の性質を満たす電子署名のハッシュ化を広範に利用する。万が一VRFを用いてアルゴランドを実施しても、H(SIG(m))をVRF(m)に置換することができる。具体的には、ユーザiは、最初にSIG(m)を計算してからH(SIG(m))を計算する必要がない(例えば、H(SIG(m))を数pと比較するために)。当該ユーザは、VRF(m)を直接計算することができるだろう。要するに、H(SIG(m))は、VRF(m)として、または、プレーヤiによって容易に計算されるが他の誰にも予測できず、iとmとに曖昧さなく関連付けられている十分にランダムな数として解釈することができることは理解されるべきである。
・電子署名の3つの異なるニーズ
アルゴランドでは、ユーザiは次のことについて電子署名に依拠する。
(1)認証するi自身の支払
このアプリケーションでは、鍵は「長期」にすることができ(すなわち、多くのメッセージに署名するために長期間使用される)、普通署名スキームに由来する。
(2)ラウンドrのいくつかのステップsで行為する権利をiが与えられていることを証明するクレデンシャルの生成
ここでは、鍵は長期であることができるが、一意性の性質を満たすスキームに由来しなければならない。
(3)自分が行為する各ステップでiが送るメッセージの認証
ここでは、鍵は一時的でなければならない(すなわち、最初に使用した後破壊される)が、普通署名スキームに由来することができる。
・小コストでの単純化
単純化のために、我々は、各ユーザiが単一の長期的な鍵を有することを想定する。したがって、このような鍵は、一意性の性質を有する署名スキームに由来しなければならない。このような単純さの計算コストは少ない。通例、実際に、一意の電子署名は、生成および検証のコストが普通署名よりもわずかに高いだけである。
2.2 理想化された公開台帳
アルゴランドは、理想化された公開台帳に基づいて、以下の支払システムに近づけることに努める。
1.初期ステータス
マネーは、個々の公開鍵に関連付けられている(ユーザによって内密に生成されて所有される)。pk,...,pkを初期の公開鍵とし、a,...,aをそのそれぞれのマネー単位の初期金額とすると、初期ステータスは次の通りであり、
Figure 0006986519
は、システム内の共通知識であると想定される。
2.支払
pkを現在a≧0マネー単位を有する公開鍵とし、pk’を別の公開鍵とし、a’を、aより大きくない負ではない数とする。すると、(有効な)支払
Figure 0006986519
は、pkに対し、a’の通貨単位のpkからpk’への移転をいくつかの追加情報と一緒に明記する電子署名である。記号で表すと、
Figure 0006986519
である。上記式において、Iは、有用であるがセンシティブではないと見なされる任意の追加情報(例、時間情報および支払識別子)を表し、
Figure 0006986519
は、センシティブと見なされる任意の追加情報(例、支払の理由、場合によってはpkおよびpk’の所有者のアイデンティティ等)を表す。
我々は、pk(またはその所有者)を支払人と呼び、pk’(またはその所有者)を受取人と呼び、a’を支払
Figure 0006986519
の金額と呼ぶ。
支払を介した自由参加
ユーザは、自分自身の公開/秘密鍵ペアを生成することによって、参加したいときにいつでもシステムに参加できることに留意されたい。従って、上記支払
Figure 0006986519
で出現する公開鍵pk’は、以前にマネーを「所有」したことのない、新たに生成された公開鍵であり得る。
3.マジック台帳
理想化されたシステムでは、すべての支払が有効であり、誰もが
Figure 0006986519
を確認できるように、すべての支払が「天に転記された(posted on the sky)」支払の集合の改ざん防止リストLに表示される。
各ブロックPAYr+1は、ブロックPAYの出現以降に行われたすべての支払の集合からなる。理想的なシステムでは、新たなブロックは、固定(または有限)量の時間後に出現する。
考察
・より一般的な支払および未使用のトランザクション出力
より一般的には、公開鍵pkが金額aを所有する場合、pkの有効な支払
Figure 0006986519
は、Σa’≦aである限り、鍵pk’,pk’,...,にそれぞれ金額a’,a’,...,を移転することができる。
ビットコインおよび同様なシステムでは、公開鍵pkが所有するマネーは個別の金額に分けられ、pkが行う支払
Figure 0006986519
は、このように分けられた金額aの全体を移転しなければならない。pkがaの一部分a’<aのみを別の鍵に移転したい場合、未使用のトランザクション出力である残高も、別の鍵に、場合によってはpk自体に移転しなければならない。
アルゴランドも、金額を分けた鍵を用いて機能する。しかし、アルゴランドの新規な態様に注目するために、支払およびそれに関連付けられている単一の金額を有する鍵の単純化した形態に専念することが概念的により単純である。
・現在のステータス
理想化されたスキームは、システムの現在のステータスに関する(すなわち、各公開鍵がどれくらいのマネー単位を有するかに関する)情報を直接提供しない。この情報は、マジック台帳から推論可能である。
理想的なシステムでは、アクティブユーザは、最新のステータス情報を継続的に格納および更新するか、そうでなければ、最初から、または当該情報を計算した最後の時点から、当該情報を再構築しなければならないであろう。(ただし、アルゴランドのユーザが現在のステータスを効率的に再構築することを可能にすべく、アルゴランドをどのように拡大するかを後で示す。)
・セキュリティおよび「プライバシー」
電子署名は、誰も他のユーザの支払を偽造できないことを保証する。支払
Figure 0006986519
では、公開鍵および金額は隠されていないが、センシティブ情報
Figure 0006986519
は隠されている。実際、
Figure 0006986519
のみが
Figure 0006986519
に出現し、Hは理想的なハッシュ関数であるため、
Figure 0006986519
はランダムな256ビット値であり、したがって、
Figure 0006986519
が何であったかを導き出すには、それを単に推測する以上の良い方法はない。しかし、
Figure 0006986519
が何であったかを証明するためには(例、支払の理由を証明するために)、支払人は
Figure 0006986519
を明らかにするだけでよい。明らかにされた
Figure 0006986519
の正当性は、
Figure 0006986519
を計算し、それから得られた値を
Figure 0006986519
の最後の項と比較することによって検証することができる。実際、Hは衝突耐性であるため、
Figure 0006986519
であるような第2の値
Figure 0006986519
を見つけるのは難しい。
2.3 基本的な概念および表記法
鍵、ユーザおよび所有者
特に明記されない限り、各公開鍵(略して「鍵」)は長期的なものであり、一意性の性質を有する電子署名スキームに関連するものである。公開鍵iは、既にシステムにある別の公開鍵jがiに支払を行うと、システムに加入する。
特徴付けのため、鍵は擬人化される。鍵iは「彼(he)」と呼ばれ、iは正直である、iはメッセージを送受信する、等のように表現される。ユーザは鍵の同義語である。鍵をその持ち主である人から区別したい場合、それぞれ「デジタル鍵」および「所有者」という用語を使用する。
非許可型システムと許可型システム
システムは、デジタル鍵がいつでも自由に加入し、所有者が複数のデジタル鍵を所有することができる場合に非許可型であり、それ以外は許可型である。
一意の表現
アルゴランド内の各オブジェクトは一意の表現を有する。具体的には、各集合{(x,y,z,...):x∈X,y∈Y,z∈Z}は、予め指定されたように順序付けされる。例えば、辞書式順序で最初にxに、次にyに、等。
同一スピードのクロック
グローバルなクロックは存在しない。むしろ、各ユーザは自分自身のクロックを有する。ユーザのクロックは一切同期させる必要はない。しかし、ユーザのクロックはすべて同一スピードを有すると想定される。
例えば、ユーザiのクロックで午後12時のとき、別のユーザjのクロックでは午後2時30分かもしれないが、iのクロックで12時01分になるとき、jのクロックでは2時31分になる。すなわち、「1分はすべてのユーザにとって同じ(十分に、本質的に同じ)である」。
ラウンド
アルゴランドは、ラウンドと呼ばれる論理ユニットr=0,1,...,に整理される。
我々は、ラウンドを示すために一貫して上付き文字を使用する。非数値数量Q(例、ストリング、公開鍵、集合、電子署名、等)がラウンドrを参照することを示すために、単にQと書く。Qが(数として解釈できるバイナリストリングではなく)本物の数であるときに限り、Q(r)と書いて、記号rがQの指数として解釈できないようにする。
ラウンドr>0(の始まり)で、全公開鍵の集合はPKであり、システムのステータスは次の通りである。
Figure 0006986519
上記式において、a (r)は、公開鍵iが利用できるマネーの金額である。PKはSから推論可能であり、Sは各公開鍵iの他の成分も指定できることに留意されたい。
ラウンド0の場合、PKは初期公開鍵の集合であり、Sは初期ステータスである。PKおよびSのどちらも、システムにおいて共通知識であると想定される。単純にするために、ラウンドrの始まりで、PK,...,PKおよびS,...,Sもそうする。
ラウンドrで、システムのステータスはSからSr+1に移行する。記号で表すと、
Figure 0006986519
である。
支払
アルゴランドにおいて、ユーザは継続的に支払を行う(また、サブセクション2.7で説明するようにそれを伝播する)。ユーザi∈PKの支払
Figure 0006986519
は、理想的なシステムと同じフォーマットおよび意味論を有する。すなわち、
Figure 0006986519
である。
支払
Figure 0006986519
は、(1)その金額aがa (r)以下の場合、かつ、(2)r’<rの正式な支払集合PAY’に出現していない場合、ラウンドrで個々に有効である(略して、ラウンドr支払である)。(以下に説明するように、2番目の条件は、
Figure 0006986519
がまだ有効になっていないことを意味する。)
iのラウンドr支払の集合は、その金額の総額がたかだかa (r)である場合に、集合的に有効である。
支払集合
ラウンドr支払集合
Figure 0006986519
は、各ユーザiについて、
Figure 0006986519
内のiの支払(場合によっては、無い)が集合的に有効であるようなラウンドr支払の集合である。すべてのラウンドr支払集合の集合は
Figure 0006986519
である。ラウンドr支払集合
Figure 0006986519
は、
Figure 0006986519
のどの上位集合もラウンドr支払集合ではない場合に極大になる。
我々は、支払
Figure 0006986519
はラウンドρ,
Figure 0006986519
も指定し、負ではないいくつかの一定の整数kについて、[ρ,ρ+k]以外のどのラウンドでも有効にできないことを実際に提案する(脚注3参照)。
脚注3
これは、
Figure 0006986519
が「有効」になったかどうかのチェックを単純にする(すなわち、いくつかの支払集合PAY
Figure 0006986519
を含むかどうかの判定を単純にする)。k=0のとき、
Figure 0006986519
かつ
Figure 0006986519
であれば、iは
Figure 0006986519
を再提出しなければならない。
正式な支払集合
どのラウンドrについても、アルゴランドは、ラウンドの正式な支払集合である単一の(場合によっては空の)支払集合PAYを(後で説明するやり方で)公開で選択する。(本質的に、PAYは、「実際に」起こったラウンドr支払を表す。)
理想的なシステム(およびビットコイン)と同様に、(1)新たなユーザjがシステムに入る唯一の方法は、所与のラウンドrの正式な支払集合PAYに属す支払の受取人になることであり、(2)PAYは、現行のラウンドSのステータスから、次のラウンドSr+1のステータスを判定する。記号にすると、
Figure 0006986519
具体的には、
1.ラウンドr+1の公開鍵の集合PKr+1は、PKと、初めてPAYの支払で出現するすべての受取人の鍵の集合との和集合からなり、
2.ユーザiがラウンドr+1に所有するマネーa (r+1)の金額は、a(r)の総額、すなわち、前のラウンドでiが所有したマネーの金額(
Figure 0006986519
の場合0)、およびPAYの支払に従いiに支払われた金額の総額である。
要するに、理想的なシステムと同様に、各ステータスSr+1は前の支払履歴
Figure 0006986519
から推論可能である。
2.4 ブロックおよび証明済みブロック
アルゴランドでは、ラウンドrに対応するブロックBは、r自体、ラウンドrの支払の集合PAY、説明される数量
Figure 0006986519
、および前のブロックのハッシュH(Br−1)を指定する。したがって、いくつかの固定ブロックBから始まる従来のブロックチェーン
Figure 0006986519
を有する。
アルゴランドでは、ブロックの真正性は、実際は個々の情報の「ブロック証明書」CERTによって保証され、これはBを証明済みブロック
Figure 0006986519
に変える。そのためマジック台帳は、証明済みブロックのシーケンス
Figure 0006986519
によって実施される。
考察
後で述べるように、CERTは、SVのメンバーの過半数のものであるH(B)の電子署名の集合と、当該メンバーのそれぞれが実際にSVに所属していることの証明とを合わせたものからなる。当然、我々は、ブロック自体に証明書CERTを含むことができるだろうが、CERTを分けておく方が概念的により明解であると考える。
ビットコインでは、各ブロックが特別な性質を満たさなければならず、すなわち、「暗号パズルの解を含まな」ければならず、そのため、ブロック生成が計算集約的になり、分岐は不可避であり、かつ、珍しいことではない。対して、アルゴランドのブロックチェーンには2つの主な利点がある。すなわち、アルゴランドのブロックチェーンは、最小限の計算で生成されることと、圧倒的に高い確率で分岐しないことである。各ブロックBは、ブロックチェーンに入るや否や、安全に確定的になる。
2.5 許容可能な故障確率
アルゴランドのセキュリティを分析するために、我々は、何かがうまくいかない(例、検証者集合SVが誠実な過半数を持たない)ことを許容しても構わない確率Fを指定する。暗号学的ハッシュ関数Hの出力長の場合と同じく、Fもパラメータである。しかし、その場合と同じく、アルゴランドで、十分なセキュリティと十分な効率とを同時に享受することが実際に可能であることをより直観的に理解できるように、Fを具体的な値に設定することが便利だと考える。Fが望みどおりに設定することのできるパラメータであることを強調するために、第1および第2の実施形態で、我々はそれぞれ次のように設定する。
Figure 0006986519
および
Figure 0006986519
考察
10−12は実際には1兆分の1未満であることに留意し、このようなFの選択は我々のアプリケーションに適切であると考える。10−12は、敵対者が誠実なユーザの支払を偽造することのできる確率ではないことを強調させてほしい。すべての支払は電子署名され、したがって、正規の電子署名が使用される場合、支払を偽造する確率は10−12よりもはるかに低く、実際、本質的に0である。確率Fで許容しても構わない不都合なイベントは、アルゴランドのブロックチェーンが分岐することである。我々のFの設定と1分の長いラウンドの場合、フォークがアルゴランドのブロックチェーンで起こるのは、190万年で(ほぼ)1回程度と稀であると予想されることに注意されたい。対して、ビットコインでは、フォークはかなり頻繁に起こる。
より多くを要求する人は、Fをさらに低い値に設定するかもしれない。このために、我々の第2の実施形態では、Fを10−18に設定することを検討する。ブロックが毎秒生成されると仮定すると、1018は、ビッグバンから現在まで、今までに宇宙が経た推定秒数である。したがって、F=10−18の場合、ブロックが1秒で生成されるとすると、宇宙の年齢でフォークを1回経験すると見込めるだろう。
2.6 敵対的なモデル
アルゴランドは、非常に敵対的なモデルにおいてセキュアであるように設計される。説明しよう。
誠実なユーザと悪意のユーザ
ユーザは、自分のプロトコル命令のすべてに従い、メッセージの送受信を完璧にすることが可能である場合、誠実である。ユーザは、自分の規定された命令から任意に逸脱できる場合、悪意である(すなわち、分散コンピューティングの専門用語で、ビザンチン)。
敵対者
敵対者とは、本物のように擬人化されて、自分の望むどのユーザも、自分の望むいかなる時にでも直ちに悪意にすることのできる、効率的な(技術的に多項式時間)アルゴリズムである(腐敗させることのできるユーザ数に上限のみが課される)。
敵対者は、すべての悪意のユーザを完全に支配し、完璧に協調させる。当該敵対者は、当該悪意のユーザのメッセージの送受信を含め、当該悪意のユーザの代わりにあらゆるアクションを取り、当該悪意のユーザを、その規定された命令から任意の方法で逸脱させることができる。または、メッセージを送受信する腐敗したユーザを単に隔離することができる。iの悪意は、敵対者がユーザiに取ったアクションによって発生することがあるが、ユーザiが悪意であることは他の誰にも自動的には分からないことを明確にさせてほしい。
しかし、このパワフルな敵対者は、
・無限の計算力を持つわけではなく、無視できる確率を除き、誠実なユーザの電子署名をうまく偽造することはできず、
・誠実なユーザ間のメッセージ交換に一切干渉することはできない。
また、敵対者の、誠実なユーザを攻撃できる能力は、次の仮定のうちの1つによって制限される。
マネーの誠実な過半数
我々は、「マネーの誠実な過半数(HMM)」の仮定の連続体を検討する。すなわち、負ではない各整数kおよび実数h>1/2について、
「HHM>h:すべてのラウンドrの誠実なユーザは、ラウンドr−kにおけるシステム内のすべてのマネーhよりも大きな割合を占めた。」
考察
悪意のユーザ全員が(まるで単一のエンティティの敵対者によって支配されるように)自分たちのアクションを完璧に協調させると仮定することは、かなり悲観的な仮説である。多すぎる個人の間での完璧な協調は、実現するのが難しい。多分、協調は悪意のプレーヤの個別の集団内でしか起こらないかもしれない。しかし、悪意のユーザが享受できる協調のレベルに関して確信することはできないので、用心に越したことはない。
敵対者が、秘密裡に、ダイナミックに、かつ、直ちにユーザを腐敗させることができると仮定することも悲観的である。結局、現実的には、ユーザの操作を完全に支配するには多少時間がかかるはずである。
例えば、仮定HMM>hは、(平均して)1ラウンドが1分で実施される場合、k=120であれば、所与のラウンドにおけるマネーの過半数は少なくとも2時間は誠実者の手元に残ることになり、k=10,000であれば少なくとも1週間になる。
HMMの仮定と、前の計算力の誠実な過半数の仮定とは、計算力がマネーで買えることから、悪意のユーザがマネーのほとんどを所有している場合、悪意のユーザが計算力のほとんどを取得することができるという意味で関連していることに留意されたい。
2.7 通信モデル
我々は、メッセージの伝播、すなわち「ピアツゥピアゴシップ」(脚注4参照)を唯一の通信手段にすることを想定し、伝播されるすべてのメッセージが、ほぼ全員の誠実なユーザに適時に到達すると仮定する。誠実なユーザによって伝播される各メッセージmは、mの長さに依存する所与の時間量内に誠実なユーザ全員に到達すると本質的に仮定する。(実際には、mは、誠実なユーザの十分に高いパーセンテージに到達すれば十分である。)
脚注4
本質的に、ビットコインと同様に、ユーザがメッセージmを伝播する場合、初めてmを受信するすべてのアクティブユーザiは、自分がmを転送する、適切に小さい数のアクティブユーザの「隣人」を、場合によっては隣人から受領確認を受信するまで、ランダムかつ独立して選択する。mの伝播は、初めてmを受信するユーザがいなくなると終了する。
3 従来の設定におけるBAプロトコルBA
既に強調したように、ビザンチン合意はアルゴランドの重要な構成要素である。実際、アルゴランドがフォークによる影響を受けないのは、このようなBAプロトコルを使用するからである。しかし、パワフルな敵対者に対してセキュアでいるために、アルゴランドは、新たなプレーヤ代替性の制約を満たすBAプロトコルに依拠しなければならない。加えて、アルゴランドが効率的であるために、このようなBAプロトコルは非常に効率的でなければならない。
BAプロトコルは、最初に、理想化された通信モデル、同期完全ネットワーク(SCネットワーク)について定義された。このようなモデルは、BAプロトコルのより単純な設計および分析を可能にする。したがって、このセクションでは、SCネットワークの新たなBAプロトコルであるBAを紹介し、プレーヤ代替性の問題は完全に無視する。プロトコルBAは、個別の価値のある寄与分である。実際、今まで分かっている中で最も効率的な、SCネットワーク用の暗号学的BAプロトコルである。
これを我々のアルゴランドプロトコル内で使用するために、BAをわずかに変更して、我々の異なる通信モデルおよびコンテキストを考慮できるようにする。
我々は、BAが動作するモデルとビザンチン合意の概念とを思い出すことから始める。
3.1 同期完全ネットワークおよび合致する敵対者
SCネットワークでは、各整数時刻r=1,2,...に時を刻む共通のクロックがある。
各偶数のタイムクリックrで、各プレーヤiは、自分自身を含めた各プレーヤjに単一のメッセージm i,j(場合によっては空のメッセージ)を即座にかつ同時に送信する。各m i,jは、タイムクリックr+1でプレーヤjによって、送信者iのアイデンティティとともに正しく受信される。
ここでも、通信プロトコルで、プレーヤは、自分の規定された命令のすべてに従う場合は誠実で、そうでない場合は悪意である。すべての悪意のプレーヤは敵対者によって完全に支配され、完璧に協調され、敵対者は、具体的には、悪意のプレーヤに宛てて送られたすべてのメッセージを直ちに受信し、当該悪意のプレーヤが送信するメッセージを選ぶ。
敵対者は、自分が望む誠実なユーザを、自分が望む奇数のタイムクリックで直ちに悪意にすることができ、悪意のプレーヤの数に対し、考えられる上限tのみが課される。すなわち、敵対者は「誠実なユーザiによって既に送信されたメッセージを妨害することはできず」、そうしたメッセージは通常通り配信される。
敵対者は、各偶数ラウンドで、現時点では誠実なプレーヤが送信するメッセージを即座に見て、同じタイムチックで悪意のプレーヤが送信するメッセージを選ぶためにこの情報を即座に使用する追加能力も有する。
3.2 ビザンチン合意の概念
ビザンチン合意の概念が初めて紹介されたのは、バイナリケースについて、すなわちすべての初期値が1ビットからなるときであったかもしれない。しかし、任意の初期値にすぐに拡張された。BAプロトコルによって、我々は任意の値1を意味する。
定義 3.1.
同期ネットワークでは、
Figure 0006986519
をnプレーヤプロトコルにし、そのプレーヤ集合はプレーヤt間の共通知識であり、tはn≧2t+1になるような正の整数である。特殊記号⊥を含まない値Vのすべての集合(それぞれ、V={0,1})について、プレーヤのうちのたかだかt人が悪意であり、すべてのプレーヤiが初期値v∈Vから始まる実行において、すべての誠実なプレーヤjが確率1で停止し、値out∈V∪{⊥}を出力するので、少なくともσの確率で、以下の2つの条件を満たす場合、
Figure 0006986519
は、健全性σ∈(0,1)を有する任意の値(それぞれ、バイナリ)(n,t)ビザンチン合意プロトコルであるという。
1.合意:out=すべての誠実なプレーヤiのoutになるようなout∈V∪{⊥}が存在する。
2.一貫性:プレーヤi全員について、ある値v∈V,v=vの場合、out=v。
我々は、outを
Figure 0006986519
の出力といい、各outをプレーヤのiの出力という。
3.3 BAの記号#
我々のBAプロトコルでは、プレーヤには、どれくらいの数のプレーヤが自分に所与のメッセージを所与のステップで送信したかを数えるよう要求される。したがって、送信されるかもしれない起こり得る各値vについて、
Figure 0006986519
(または、sが明確である場合、単に#(v))は、iがステップsでvを受信したプレーヤjの数である。
プレーヤiが各プレーヤjからまさしく1つのメッセージを受信することを思い出すと、プレーヤの数がnの場合、すべてのiおよびsについて、
Figure 0006986519
である。
3.4 新たなバイナリBAプロトコルBBA
このセクションでは、プレーヤの3分の2よりも多くの誠実者に依拠し、かつ非常に高速な新たなバイナリBAプロトコル、BBAを提示する。悪意のプレーヤがどのようなことを行おうとも、その主なループの各実行は自明に実行されるだけでなく、1/3の確率でプレーヤを合意に至らせる。
BBAでは、各プレーヤは、一意署名性質を満たす電子署名スキームの、自分自身の公開鍵を有する。このプロトコルは同期完全ネットワークで実行されることが意図されるため、プレーヤiが自分のメッセージのそれぞれに署名する必要はない。
電子署名は、ステップ3で十分に一般的なランダムビットを生成するために使用される。(アルゴランドでは、電子署名は、他のすべてのメッセージを認証するためにも同様に使用される。)
プロトコルは、最低限のセットアップ、すなわち、プレーヤの鍵とは独立した一般的なランダムストリングrが必要である。(アルゴランドでは、rは実際には数量Qに置換される。)
プロトコルBBAは3ステップループであり、プレーヤがブール値を繰返し交換し、異なるプレーヤは異なる時点でこのループを出ることができる。プレーヤiは、いくつかのステップで、特殊値0*または特殊値1*のいずれかを伝播し、それによって、プレーヤ全員に、将来のすべてのステップでiから0および1をそれぞれ受信する「ふりをする」よう指示することによって、このループから出る。(別の言い方をすると、プレーヤjが別のプレーヤiから受信する最後のメッセージはビットbであったと仮定する。すると、iからメッセージを受信しないステップでは、jは、iが自分にビットbを送信したものとして行為する。)
このプロトコルは、その3ステップループが何回実行されたかを表すカウンタγを使用する。BBAの始まりでは、γ=0である。(γをグローバルカウンタとして考えてもよいが、実際にはループが実行される度に、各個々のプレーヤによって増やされる。)
tが、悪意のプレーヤの考えられる最大数である場合、n≧3t+1である。バイナリストリングxは、そのバイナリ表現(先頭に0が付く場合あり)がxである整数で識別され、lsb(x)はxの最下位ビットを表す。
プロトコルBBA
(通信)ステップ1.[コインを0に固定するステップ]各プレーヤiはbを送信する。
1.1 # (0)≧2t+1の場合、iはb=0を設定し、0*を送信し、out=0を出力して、停止する。
1.2 # (1)≧2t+1の場合、iはb=1を設定する。
1.3 それ以外は、iはb=0を設定する。
(通信)ステップ2.[コインを1に固定するステップ]各プレーヤiはbを送信する。
2.1 # (1)≧2t+1の場合、iはb=1を設定し、1*を送信し、out=1を出力して、停止する。
2.2 # (0)≧2t+1の場合、iはb=0を設定する。
2.3 それ以外は、iはb=1を設定する。
(通信)ステップ3.[実際にコインを投げるステップ]各プレーヤiはbおよびSIG(r,γ)を送信する。
3.1 # (0)≧2t+1の場合、iはb=0を設定する。
3.2 # (1)≧2t+1の場合、iはb=1を設定する。
3.3 それ以外は、S={このステップ3でiに正規のメッセージを送信したj∈N}として、iは
Figure 0006986519
を設定し、1ずつγを増やし、ステップ1に戻る。
定理3.1.
n≧3t+1の場合は必ず、BBAは、健全性1のバイナリ(n,t)−BAプロトコルである。
定理3.1の証明は、https://people.csail.mit.edu/silvio/Selected−ScientificPapers/DistributedComputation/BYZANTINEAGREEMENTMADETRIVIAL.15pdfに掲載されている。
3.5 段階的コンセンサスおよびプロトコルGC
任意の値について、コンセンサスの概念はビザンチン合意よりもはるかに弱いことを思い出そう。
定義3.2.

Figure 0006986519
を、全プレーヤの集合が共通知識で、各プレーヤiが任意の初期値v’を秘かに知っているプロトコルとする。
n人のプレーヤのいるすべての実行において、そのうちのたかだかt人が悪意である場合、すべての誠実なプレーヤiが以下の3つの条件を満たすように値段階ペア(v,g)の出力を停止する場合、
Figure 0006986519
は(n,t)−段階的なコンセンサスであるという。ここでg∈{0,1,2}である。
1.すべての誠実なプレーヤiおよびjについて、|g−g|≦1である。
2.すべての誠実なプレーヤiおよびjについて、g,g>0⇒v=vである。
3.ある値vについてv’=・・・=v’=vの場合、すべての誠実なプレーヤiについて、v=v、かつ、g=2である。
以下の2ステッププロトコルGCは、文献の段階的コンセンサスプロトコルである。セクション4.1のプロトコルアルゴランド’のステップと整合させるために、GCのステップをそれぞれ2および3と命名する。(実際、アルゴランド’の最初のステップは、他の何か、すなわち、新ブロックの提案に関係する。)
プロトコルGC
ステップ2.各プレーヤiは、v’を全プレーヤに送信する。
ステップ3.各プレーヤiは、# (x)≧2t+1の場合、かつ、その場合にのみ、ストリングxを全プレーヤに送信する。
出力の判定.各プレーヤiは、次の通り計算されたペア(v,g)を出力する。
・あるxについて、# (x)≧2t+1の場合、v=x、かつ、g=2である。
・あるxについて、# (x)≧t+1の場合、v=x、かつ、g=1である。
・それ以外は、v=⊥、かつ、g=0である。
プロトコルGCは文献のプロトコルであるため、次の定理が成り立つことが分かっている。
定理3.2.
n≧3t+1の場合、GCは(n,t)−段階的ブロードキャストプロトコルである。
3.6 プロトコルBA
ここで、任意値BAプロトコルBAを、バイナリBAプロトコルBBAおよび段階的コンセンサスプロトコルGCにより説明する。以下、各プレーヤiの初期値はv’である。
プロトコルBA
ステップ1および2.各プレーヤiは、入力v’にGCを実行して、ペア(v,g)を計算する。
ステップ3,...各プレーヤiは、g=2の場合初期入力が0で、それ以外は1として、BBAを実行して、ビットoutを計算する。
出力の判定.各プレーヤiは、out=0の場合vを出力し、それ以外は⊥を出力する。
定理3.3.
n≧3t+1の場合は必ず、BAは、健全性1の(n,t)−BAプロトコルである。
証明.まず、整合性を証明してから、合意を証明する。
整合性の証明
ある値v∈Vについて、v’=vと仮定する。さらに、段階的コンセンサスの性質3によって、GCの実行後、すべての誠実なプレーヤは(v,2)を出力する。したがって、0は、BBAの実行の終了時のすべての誠実なプレーヤの初期ビットである。したがって、BAの実行の終了時点で、バイナリビザンチン合意の合意性質によって、すべての誠実なプレーヤについてout=0である。これは、BAにおける各誠実なプレーヤiの出力がv=vであることを含意する。
合意の証明
BBAがバイナリBAプロトコルであるため、次のいずれかである。
(A)すべての誠実なプレーヤiについてout=1、または
(B)すべての誠実なプレーヤiについてout=0
ケースAでは、すべての誠実なプレーヤはBAで⊥を出力し、したがって合意が成り立つ。ここでケースBを考えてみる。この場合、BBAの実行において、少なくとも1人の誠実なプレーヤiの初期ビットは0である。(実際、すべての誠実なプレーヤの初期ビットが1だった場合、BBAの整合性の性質によって、すべての誠実者jについてout=1になるであろう。)したがって、GCの実行後、iは、ある値vについてペア(v,2)を出力する。このように、段階的コンセンサスの性質1によって、すべての誠実なプレーヤjについてg>0である。したがって、段階的コンセンサスの性質2によって、すべての誠実なプレーヤjについてv=vである。これは、BAの終了時点で、すべての誠実なプレーヤjがvを出力することを含意する。ケースBでも合意は成り立つ。
整合性および合意の両方が成り立つため、BAは任意値BAプロトコルである。
プロトコルBAはゴシップネットワークでも機能し、実際、想定される非常に敵対的なモデルでアルゴランドがセキュアであるために極めて大事な、プレーヤ代替性の性質を満たす。
BBAおよびBAのプレーヤ代替性
ここで、プロトコルBAおよびBBAが、通信がピアツーピアゴシップを介するネットワークで実行されて、プレーヤ代替性を満たすようになぜ適応できるのかについての、いくつかの直観を提供しよう。具体的にするために、ネットワークは1千万人のユーザを有し、BBA(またはBA)の各ステップxが10,000人のプレーヤの委員会によって実行され、当該プレーヤは、秘密暗号くじによりランダムに選択されて、したがってステップxでメッセージを送信する権利を与えられていることを証明するクレデンシャルを有すると仮定する。所与のステップで送信された各メッセージはステップ数を明記し、その送信者によって電子署名され、その送信者がそのステップで話す権利を与えられていることを証明するクレデンシャルを含むと仮定する。
まず、誠実なプレーヤのパーセンテージhが2/3よりも十分に大きい(例、75%)場合、圧倒的確率で、各ステップで選択される委員会は、必要な2/3の誠実な過半数を有する。
加えて、総勢10,000人のランダムに選択される委員会が各ステップで変わることは、BBAまたはBAのいずれについても、それが正当に機能することを邪魔しない。実際、いずれのプロトコルでも、ステップsのプレーヤiは、ステップs−1で当該プレーヤiが所与のメッセージmを一緒に受信した多数の人にしか反応しない。我々はゴシップネットワークにいるので、ステップs−1で送信されるすべてのメッセージは、(この直観のために、直ちに)ステップsでプレイするために選択されたものを含め、全ユーザに到達する。ステップs−1で送信されるすべてのメッセージは、ステップ数を明記し、かつ、ステップs−1で話す許可が送信者に実際に与えられているというクレデンシャルを含む。したがって、ステップs−1でも偶然選択されていたかどうかに関係なく、ステップsでプレイするよう選択されたユーザiは、正当なステップs−1メッセージを一緒に受信した多数の人を正確にカウントすることが完璧にできる。当該ユーザiがそれまでにすべてのステップをプレイしていたかどうかは全く問題ではない。全ユーザは「同じ立場に」あり、したがって他のユーザによって容易に代替することができる。
4 アルゴランドの2つの実施形態
述べたように、非常に高次で、アルゴランドのラウンドは理想的には以下のように進行する。まず、ランダムに選択されたユーザであるリーダーが、新たなブロックを提案して、回付する。(このプロセスは、最初に少数の潜在的リーダーを選択し、次に、少なくともある程度の時間、1人の共通のリーダーが出現することを確保することを含む。)次に、ランダムに選択されたユーザの委員会が選択され、リーダーが提案したブロックに対してビザンチン合意に達する。(このプロセスは、BAプロトコルの各ステップが、個別に選択された委員会によって実行されることを含む。)そして、合意されたブロックに、委員会メンバーの所与の閾値(T)が電子署名する。新たなブロックがどれかを誰もが確信するように、これらの電子署名を伝播する。(これには、署名者のクレデンシャルを回付することと、新たなブロックのハッシュだけを認証することと、そのハッシュが明確にされたら、誰もが当該ブロックを知ることを保証されることを確実にすることを含む。)
次の2つのセクションで、基本的なアルゴランドであるアルゴランド’およびアルゴランド’の設計の2つの実施形態を提示するが、これらはそれぞれ正規の誠実なユーザの過半数の仮定の下で機能する。セクション8に、「マネーの誠実な過半数」の仮定の下で機能するように、これらの実施形態をどのように採用するかを示す。
アルゴランド’は、委員会メンバーの>2/3が誠実であることのみを想定する。加えて、アルゴランド’では、ビザンチン合意に達するためのステップの数に、適切に高い数の上限を設けるので、合意は、固定数のステップ内で、圧倒的確率で達することが保証される(ただし、潜在的には、アルゴランド’のステップよりも長い時間が必要である)。最後のステップでもまだ合意に達しない極稀なケースでは、委員会が空のブロックに合意し、これは必ず有効である。
アルゴランド’は、委員会の誠実なメンバーの数が必ず固定閾値t以上であると想定する(このことは、圧倒的確率で委員会メンバーの少なくとも2/3が誠実であることを保証する)。加えて、アルゴランド’は、任意の数のステップ(ただし、時間は潜在的にアルゴランド’よりも短い)でビザンチン合意に達する。
当業者は、これらの基本的な実施形態の多くの変型が導き出せることを認識するだろう。特に、アルゴランド’があれば、ビザンチン合意に任意の数のステップで達することができるようにアルゴランド’を修正するのは簡単である。
いずれの実施形態も、下記の共通コア、記号、概念およびパラメータを共有する。
4.1 共通コア
目的
理想的には、各ラウンドrについて、アルゴランドは次の性質を満たすべきである。
1.完璧な正当性.すべての誠実なユーザは、同じブロックBに合意する。
2.完全性1.確率1で、ブロックBは、誠実なユーザによって選ばれている。
(実際、悪意のユーザは、必ず、支払集合が自分の「友人」だけの支払を含むブロックを選ぶだろう。)
当然、完璧な正当性を保証するだけでは自明である。誰もが必ず、空である正式な支払集合PAYを選ぶ。しかし、この場合、システムの完全性は0になるだろう。残念ながら、完璧な正当性と完全性1の両方を保証することは、悪意のユーザの存在下では容易ではない。したがって、アルゴランドは、より現実的な目的を採用する。略式に、誠実なユーザの割合をhとすると、アルゴランドの目標であるh>2/3は、
「圧倒的確率で、hに近い完璧な正当性および完全性を保証する。」
完全性よりも正当性を特別扱いするのは、合理的な選択のように思える。1ラウンドで処理されない支払は次で処理できるが、可能なら、フォークを避けるべきであるからだ。
誘導されるビザンチン合意
しばらくの間、過度な時間および通信を無視すると、完璧な正当性は以下のように保証することができるであろう。ラウンドrの始まりで、各ユーザiは自分自身の候補ブロックB を提案する。すると、全ユーザは、候補ブロックのうちの1つだけに関してビザンチン合意に達する。序論に従い、採用するBAプロトコルは2/3の誠実な過半数を必要とし、プレーヤ代替性である。そのステップのそれぞれは、ランダムに選択された、検証者の小さな集合によって実行することができ、検証者は内部変数を一切共有しない。
残念ながら、このアプローチはあまり機能しない。誠実なユーザが提案する候補ブロックは、非常に高い確率で、互いに全く異なる。実際、各誠実なユーザは異なる支払を見る。したがって、異なる誠実なユーザによって見られた支払の集合が多数の重複を有していても、誠実なユーザ全員が、提案された同じブロックを構築することは考えにくい。したがって、BAプロトコルの整合性の合意は決して結ばれることがなく、唯一の合意は、正しいブロックに関するものではなく⊥に関するものであり、したがって、⊥に関する合意に必ず至り得る。
アルゴランド’は、この問題を次のように回避する。まず、ラウンドrのリーダーlが選択される。次に、lは自分自身の候補ブロック
Figure 0006986519
を伝播する。最後に、ユーザは、実際にlから受信したブロックに関して合意に達する。lが誠実であれば必ず、完璧な正当性および完全性1の両方が成り立つため、アルゴランド’は、lがhに近い確率で誠実であることを確実にする。
リーダーの選択
アルゴランドでは、r番目のブロックは次の形式である。
Figure 0006986519
序論で既に述べたように、数量Qr−1は、非常にパワフルな敵対者によって本質的に操作できないように慎重に構築される。(本セクションにおいて、後で、なぜそうなるかについてのいくつかの直観を提供する。)ラウンドrの始まりで、全ユーザは、それまでのブロックチェーンB,...,Br−1を知り、当該ブロックチェーンから、前のラウンドすべてのユーザの集合、すなわち、PK,...,PKr−1を推論する。ラウンドrの潜在的リーダーは、次の式になるようなユーザiである。
Figure 0006986519
説明しよう。基となる電子署名スキームのメッセージ検索可能性の性質のために、数量Qr−1はブロックBr−1から推論可能であることに留意されたい。また、基となる署名スキームは一意性の性質を満たす。したがって、SIG(r,1,Qr−1)は、iおよびrに一意に関連付けられているバイナリストリングである。したがって、Hはランダムオラクルであるので、H(SIG(r,1,Qr−1))は、iおよびrに一意に関連付けられているランダムな256ビット長のストリングである。H(SIG(r,1,Qr−1))の前の記号(「.」)は小数(我々のケースではバイナリ)点であるので、
Figure 0006986519
は、iおよびrに一意に関連付けられている0から1までの間のランダムな256ビット数のバイナリ展開である。したがって、rがp以下である確率は本質的にpである。
確率pは、圧倒的(すなわち、1−F)確率で、少なくとも1人の潜在的検証者が誠実であるように選ばれる。(事実、pは、そのような確率が最小になるように選ばれる。)
iの署名を計算することができるのはiだけであるため、自分がラウンド1の潜在的検証者であるかどうかを判定できるのはiだけであることに留意されたい。しかし、自分自身のクレデンシャル
Figure 0006986519
を明らかにすることによって、iは、ラウンドrの潜在的検証者であることを誰に対しても証明することができる。
リーダーlは、ハッシュ化されたクレデンシャルが他のすべての潜在的リーダーjのハッシュ化されたクレデンシャル、すなわち
Figure 0006986519
よりも小さい潜在的リーダーと定義される。
悪意のlは自分のクレデンシャルを明らかにしないかもしれないので、ラウンドrの正当なリーダーは決して知られない可能性があること、また、ありそうもないタイを禁止すると、lが実際にラウンドrの唯一のリーダーであることに留意されたい。
最後に、重要な詳細を提起させてほしい。ユーザiは、少なくともk回のラウンドの間システムに所属している場合にのみ、ラウンドrの潜在的リーダー(ひいてはリーダー)になることができる。このことは、Qの操作不可能性および将来のすべてのQ数量を保証する。事実、潜在的リーダーのうちの1人が実際にQを判定する。
検証者の選択
ラウンドrの各ステップs>1は、検証者の小さな集合SVr,sによって実行される。ここでも、各検証者i∈SVr,sは、既にrよりも前にシステムのk回のラウンドにいたユーザの中から、かつ、ここでも特殊な数量Qr−1を介して、ランダムに選択される。具体的には、i∈PKr−kは、次の式が成り立つ場合、SVr,sの検証者である。
Figure 0006986519
ここでも、iだけが自分がSVr,sに所属しているかどうかを知っているが、そうである場合、iは、自分のクレデンシャル
Figure 0006986519
を提示することによってそのことを証明できるであろう。検証者i∈SVr,sは、ラウンドrのステップsでメッセージm r,sを送信し、このメッセージに自分のクレデンシャルσ r,sを含めて、m r,sが適法なステップsのメッセージであることを次のステップの検証者が認識できるようにする。
確率p’は、SVr,sにおいて、#goodを誠実なユーザの数にし、#badを悪意のユーザの数にして、圧倒的確率で次の2つの条件が成り立つことを確保するように選ばれる。
実施形態アルゴランド’の場合:
(1)#good>2・#bad、かつ、
(2)#good+4・#bad<2n、ここで、nはSVr,sの期待濃度である。
実施形態アルゴランド’の場合:
(1)#good>t、かつ、
(2)#good+2#bad<2t、ここで、tは指定の閾値である。
上記条件は、十分に高い確率で、(a)BAプロトコルの最後のステップで、新たなブロックBに電子署名する少なくとも所与の数の誠実なプレーヤがいること、(b)ラウンドあたり1ブロックだけが必要な署名数を有することができること、および、(c)使用されたBAプロトコルは(各ステップで)所要の2/3の誠実な過半数を有することを含意する。
ブロック世代の明確化
ラウンドrのリーダーlが誠実である場合、対応するブロックは次の形式である。
Figure 0006986519
上記式において、支払集合PAYは極大である。(全プレーヤは、定義上、集合的に有効であることを思い出していただきたい。)
そうでなければ(すなわち、lが悪意である場合)、Bは、次の2つの可能な形式のうちの一方を有する。
Figure 0006986519
および
Figure 0006986519
最初の形式において、PAYは(必ずしも極大ではない)支払集合であり、
Figure 0006986519
となり得る。さらに、iはラウンドrの潜在的リーダーである。(ただし、iはリーダーlではないかもしれない。lが自分のクレデンシャルを秘密にしておき、自分を明かさない場合には、実際にそうなるだろう。)
2番目の形式は、BAプロトコルのラウンドrの実行時、すべての誠実なプレーヤがデフォルト値を出力するときに生じ、これは、我々のアプリケーションにおいては空のブロックBε である。(定義上、BAプロトコルの可能な出力は、総称的に⊥で表されるデフォルト値を含む。セクション3.2を参照のこと。)
支払集合はどちらのケースでも空であるが、
Figure 0006986519
およびBε は統語論的に異なるブロックであり、2つの異なる状況、それぞれ、「BAプロトコルの実行時にすべてが十分にスムーズにいった」および「BAプロトコルで何かがうまくいかなかったので、デフォルト値が出力された」が生じることに留意されたい。
ここで、ブロックBの世代がアルゴランド’のラウンドrでどのように進行するのかを直観的に説明しよう。最初のステップで、各適格プレーヤ、すなわち、各プレーヤi∈PKr−kは、自分が潜在的リーダーであるかどうかをチェックする。そうである場合、iは、それまでに自分が見てきた支払のすべておよび現行のブロックチェーンB,...,Br−1を使用して、最大支払集合PAY を秘密で準備し、候補ブロックB=(r,PAY ,SIG(Qr−1),H(Br−1))を秘密でアセンブルするよう求められる。すなわち、当該プレーヤiはB に、その第2成分として、ちょうど準備された支払集合を含めるだけでなく、その第3成分として、最後のブロックBr−1の第3成分であるQr−1の自分自身の署名も含める。最後に、当該プレーヤiは、自分のラウンドrステップ1メッセージm r,1を伝播し、これには、(a)自分の候補ブロックB 、(b)自分の候補ブロックの自分の正規の署名(すなわち、B のハッシュの署名)、および(c)自分が本当にラウンドrの潜在的検証者であることを証明する自分自身のクレデンシャルσ r,1を含む。
(誠実者iが自分のメッセージm r,1を生成するまで、敵対者は、iが潜在的検証者であることの手がかりを持たないことに留意されたい。万が一誠実な潜在的リーダーを腐敗させることを望んでも、敵対者は、ランダムな誠実なプレーヤを腐敗させるのも同然である。しかし、一旦m r,1を見てしまえば、そこにiのクレデンシャルが含まれているので、敵対者は、iを知り、腐敗させることができるであろう。だが、敵対者は、急速に伝播されるm r,1がシステム内の全ユーザに到達するのを妨げることはできない。)
第2ステップでは、選択された各検証者j∈SVr,2は、ラウンドのリーダーを識別しようとする。具体的には、jは、受信した正規のステップ1メッセージm r,1に含まれるステップ1クレデンシャル
Figure 0006986519
を取得し、そのすべてをハッシュ化する、すなわち、
Figure 0006986519
を計算し、そのハッシュが辞書式順序で最小であるクレデンシャル
Figure 0006986519
を見つけ、l をラウンドrのリーダーとみなす。
検討される各クレデンシャルはQr−1の電子署名であること、SIG(r,1,Qr−1)はiとQr−1とによって一意に判定されること、Hはランダムオラクルであること、したがって、各H(SIG(r,1,Qr−1)はラウンドrの各潜在的リーダーiに一意な、ランダムな256ビット長のストリングであることを思い出していただきたい。
このことから、我々は、256ビットストリングQr−1がそれ自体ランダムかつ独立して選択された場合、ラウンドrのすべての潜在的リーダーのハッシュ化されたクレデンシャルもそうなるであろうと結論付けることができる。事実、すべての潜在的リーダーは十分に定義されているため、そのクレデンシャルも同様である(実際に計算されるかどうかは問わない)。さらに、ラウンドrの潜在的リーダーの集合はラウンドr−kのユーザのランダムな部分集合であり、誠実な潜在的リーダーiは、iのクレデンシャルを含む自分のメッセージm を必ず正規に構築して伝播する。このように、誠実なユーザのパーセンテージがhであるので、悪意の潜在的リーダーがどのようなことを行おうとも(例、自分自身のクレデンシャルを明らかにする、または隠す)、最小値の、ハッシュ化された潜在的リーダーのクレデンシャルは誠実なユーザに属し、当該誠実なユーザは必然的に、ラウンドrのリーダーlとして全員に識別される。したがって、256ビットストリングQr−1がそれ自体ランダムかつ独立して選択される場合、まさしくhの確率で、(a)リーダーlは誠実であり、かつ、(b)誠実なステップ2検証者j全員についてl=lである。
現実には、ハッシュ化されたクレデンシャルは、確かに、ランダムに選択されるが、ランダムかつ独立して選択されないQr−1に依存する。しかし、ラウンドのリーダーがhに十分に近い確率h’、すなわちh’>h(1+h−h)で誠実であることを保証するのにQr−1が十分に操作不可能であることが、慎重な分析により保証される。例えば、h=80%であれば、h’>0.7424である。
ラウンドのリーダーを識別したら(リーダーlが誠実なときに検証者が正当に行う)、ステップ2検証者のタスクは、初期値として当該検証者がリーダーのブロックだと考えるものを使用して、BAの実行を始めることである。実際には、必要な通信量を最小限にするために、検証者j∈SVr,2は、ビザンチンプロトコルへのその入力値v’として、(ユーザjがリーダーだと考える)lから実際に受信したブロックBを使用するのではなく、リーダー、ただしそのブロックのハッシュ、すなわち、v’=H(B)を使用する。したがって、BAプロトコルの終了時に、最後のステップの検証者は所望のラウンドrブロックBを計算するのではなく、H(B)を計算(認証および伝播)する。したがって、H(B)がBAプロトコルの最後のステップの十分に多くの検証者によって電子署名されるため、システム内のユーザは、H(B)が新たなブロックのハッシュであることを認識する。しかし、ユーザはブロックB自体も検索しなければならず(または、実行がかなり非同期であるため、待たなければならず)、これによりプロトコルは、敵対者がどのようなことをしようとも、実際に利用可能であることを確実にする。
非同期性およびタイミング
アルゴランド’およびアルゴランド’は、有意な程度の非同期性を有する。そうするのは、敵対者が、伝播されるメッセージの配信の予定を組むことに大きな自由度を有するからである。加えて、ラウンドのステップの総数に上限を設けるかどうかを問わず、実際に取られるステップの数による分散寄与率がある。
ユーザiは、B,...,Br−1の証明書を知るや否や、Qr−1を計算して、ラウンドrに対する作業を開始し、ラウンドrの何らかのステップsにおいて自分が潜在的リーダーかどうか、または検証者かどうかをチェックする。
iはステップsで行為しなければならないと仮定すると、上述の非同期性に鑑みて、iは、自分が行為する前に十分な情報を有することを確実にするために様々な戦略に頼る。
例えば、当該ユーザiは、前のステップの検証者から少なくとも所与の数のメッセージを受信するのを待つ(アルゴランド’のときのように)か、または、前のステップの十分に多くの検証者のメッセージを受信することを確保するための十分な時間の間、待つ(アルゴランド’のときのように)。
シードQおよびルックバックパラメータk
数量Qは、敵対者にとって十分に操作不可能にすれば足りるが、理想としては、ランダムかつ独立しているべきであることを思い出していただきたい。
一見すると、H(PAYr−1)と同時に起こるようにQr−1を選べるであろう。しかし、要素分析から、この選択メカニズム(脚注5参照)を悪意のユーザが利用できることが明らかになった。いくらかの追加の努力から、従来のブロック数量に基づく無数の他の代替物は、悪意のリーダーが非常に頻繁に出現するのを確実にするために敵対者が容易に悪用できることが分かる。我々は代わりに具体的かつ帰納的に我々の全く新しい数量Qを定義して、敵対者によって操作不可能であることを証明できるようにする。すなわち、
が空ブロックではない場合、
Figure 0006986519
であり、そうでなければ
Figure 0006986519
である。
脚注5
我々は、ラウンドr−1の始めにいる。したがって、Qr−2=PAYr−2は公開で知られ、敵対者は、自分が支配する潜在的リーダーが誰であるかを秘かに知る。敵対者がユーザの10%を支配し、非常に高い確率で、悪意のユーザwがラウンドr−1の潜在的リーダーであると仮定する。すなわち、H(SIG(r−2,1,Qr−2))が非常に小さいので、誠実な潜在的リーダーが実際にラウンドr−1のリーダーになるということはとても起こりそうにないと仮定する。(我々は秘密暗号くじメカニズムにより潜在的リーダーを選んだため、敵対者は誰が誠実な潜在的リーダーかを知らないことを思い出していただきたい。)そのため、敵対者は、自分が望む支払集合PAY’を選び、それをラウンドr−1の正式な支払集合にさせるという羨ましい立場にいる。しかし、当該敵対者はさらに多くのことを行える。当該敵対者は、高い確率で、()自分の悪意のユーザのうちの1人をラウンドrのリーダーにもすることも確実にすることができるので、PAYが何になるかを自由に選択することができる。(等々。少なくともしばらくの間、すなわち、これらの高確率イベントが現実に起こる限り。)保証するために()、敵対者は次のように行為する。PAY’を、敵対者がラウンドr−1について好む支払集合にさせる。次に、当該敵対者はH(PAY’)を計算して、いく人かの既に悪意のプレーヤzについて、SIG(r,1,H(PAY’))は特に小さいかどうか、すなわち、非常に高い確率でzがラウンドrのリーダーになるのに十分に小さいかどうかをチェックする。そうである場合には、当該敵対者はwに、自分の候補ブロックをB r−1=(r−1,PAY’,H(Br−2))にするように選ぶことを指示する。そうでなければ、当該敵対者は、他の2人の悪意のユーザxおよびyに、新たな支払
Figure 0006986519
を次から次に、いく人かの悪意のユーザzについて(または、いく人かの固定ユーザzについても)
Figure 0006986519
が特に小さくなるまで、生成を続けさせる。この実験は、程なくして終わるだろう。そして、この実験が終わると、敵対者はwに、候補ブロック
Figure 0006986519
を提案するように求める。
このようなQの構築がなぜ機能するかの直観は、次の通りである。しばらくの間、Qr−1が真にランダムかつ独立して選択されると仮定する。その場合、Qはそのようになるだろうか? lが誠実であるとき、答えは(大雑把にいうと)イエスである。そうなるのは、
Figure 0006986519
がランダム関数だからである。しかし、lが悪意のとき、QはQr−1およびlから一義的に定義されなくなる。Qについては、少なくとも2つの別々の値がある。1つは、
Figure 0006986519
になるように続き、もう1つはH(Qr−1,r)である。まず、2つ目の選択肢はやや恣意的であるが、2つ目の選択肢が絶対的に義務的であることを論じさせてほしい。この理由は、悪意のlが必ず、全く異なる候補ブロックを第2ステップの誠実な検証者に受信させることができるためである。(脚注6参照)一旦そうなると、ラウンドrのBAプロトコルにより最終的に合意されたブロックがデフォルトになること、したがって、Qr−1の誰の電子署名も含まないことを確保するのは簡単である。しかし、システムは続けなければならず、このために、ラウンドrのリーダーが必要である。このリーダーが自動的にかつオープンに選択される場合、敵対者は自明に当該リーダーを腐敗させる。同じプロセスで前のQr−1によって選択される場合、ラウンドr+1でlが再びリーダーになる。我々は同じ秘密暗号くじメカニズムを使用するよう特に提案するが、新たなQ数量、すなわちH(Qr−1,r)に適用される。この数量をHの出力にすることによって、出力がランダムであることを保証し、rをHの第2入力として含むことによって、Hの他のすべての使用は単一入力または少なくとも3つの入力のいずれかを有するので、このようなQが独立して選択されることを「保証する」。ここでも、我々の特定的な代替Qの選択肢は問題ではなく、問題なのはlがQについて2つの選択肢を有することであり、したがって当該lは、別の悪意のユーザを次のリーダーとする機会を2倍にすることができる。
脚注6
例えば、単純にしておくために(ただし極度に)、「第2ステップの時間が終了しそうなとき」、lは異なる候補ブロックBを各ユーザiに直接電子メール送信することができるであろう。このように、誰がステップ2の検証者であろうとも、全く異なるブロックを受信したことになる。
の選択肢は、悪意のlを支配する敵対者についてはさらに数多くあり得る。例えば、x,yおよびzを、ラウンドrの3人の悪意の潜在的リーダーとし、
Figure 0006986519
かつ、H(σ r,1)が特に小さくなるようにする。すなわち、すべての誠実な潜在的リーダーのハッシュ化されたクレデンシャルよりもH(σ r,1)が小さくなる可能性が十分になるように小さくする。そして、xに対して自分のクレデンシャルを隠すように求めることによって、敵対者には、yをラウンドr−1のリーダーにする可能性が十分にある。このことは、当該敵対者が、Qについての別の選択肢、すなわち、H(SIG(Qr−1),r)を有することを含意する。同様に、敵対者は、xおよびyの両方に対してそのクレデンシャルを与えずにおくよう求めて、zをラウンドr−1のリーダーにさせるようにすることもでき、Qについての別の選択肢、すなわち、H(SIG(Qr−1),r)を得る。
しかし、当然ながら、敵対者が誠実な潜在的ユーザの電子署名のハッシュを予測することができないので、これらおよび他の選択肢のそれぞれは、失敗する可能性がゼロではない。
慎重なマルコフ連鎖のような分析から、ラウンドr−1で敵対者がたとえどのような選択肢を取ることを選ぶにしても、当該敵対者は、システム内に新たなユーザを投入することができない限り、誠実なユーザをラウンドr+40のリーダーにする確率をhよりはるかに低くすることはできない。これが、ラウンドrの潜在的リーダーを、ラウンドr−kに既に存在しているユーザにすることを我々が要求する理由である。これは、ラウンドr−kで、敵対者は誠実なユーザがラウンドrのリーダーになる確率を大幅に改変することができないことを確実にする方法である。事実、敵対者がラウンドr−kからラウンドrでシステムにどのようなユーザを加えようとも、彼らはラウンドrの潜在的リーダー(ましてやリーダー)になるには不適格である。このため、ルックバックパラメータkは、最終的にはセキュリティパラメータである。(ただし、セクション7で見るように、一種の「便利なパラメータ」になることもできる。)
一時的な鍵
我々のプロトコルの実行は、無視できる確率を除き、フォークを生成することができないが、敵対者は、適法なブロックrが生成された後で、r番目のブロックでフォークを生成することはできるであろう。
大まかにいうと、一旦Bが生成されると、敵対者は、ラウンドrの各ステップの検証者が誰であるかを知ったことになる。そのため、当該敵対者は当該検証者全員を腐敗させ、当該検証者に新たなブロック
Figure 0006986519
を認定することを義務付けることができるであろう。この偽ブロックは適法なブロックの後でしか伝播させられないため、注意を払っているユーザは騙されないであろう(脚注7参照)。それでもなお
Figure 0006986519
は統語論的に正しいであろうが、我々は、製造されるのを防ぎたい。
脚注7
大手TVネットワークのニュースアンカーを腐敗させて、クリントン長官が直近の大統領選挙に勝ったことを示すニュース映画を制作して、今日放送することを考えてみる。我々のほとんどは、それがいたずらであることに気づくであろう。しかし、昏睡状態から覚めた誰かは騙される可能性がある。
我々は、新ルールによってそのようにする。本質的に、ラウンドrのステップsの検証者集合SVr,sのメンバーは、自分のメッセージに電子署名するために一時的な公開鍵pk r,sを使用する。これらの鍵は1度しか使用できず、それに対応する秘密鍵sk r,sは、一旦使用されると破壊される。このように、検証者が後に腐敗させられる場合、敵対者は、検証者が元々署名しなかった他のものに署名させることはできない。
当然ながら、我々は、敵対者が新たな鍵
Figure 0006986519
を計算するのが不可能であることを確実にし、それがステップsで使用するための検証者の正しい一時的な鍵i∈SVr,sであることを誠実なユーザに確信させなければならない。
4.2 共通の記号、概念およびパラメータのまとめ
記号
・r≧0:現在のラウンド番号。
・s≧1:ラウンドrにおける現在のステップ番号。
・B:ラウンドrで生成されたブロック。
・PK:ラウンドr−1の終わりまで、および、ラウンドrの始まりにおける公開鍵の集合。
・S:ラウンドr−1の終わりまで、および、ラウンドrの始まりにおけるシステムのステータス(脚注8参照)。
脚注8
同期しないシステムでは、「ラウンドr−1の終わり」および「ラウンドrの始まり」という概念は慎重に定義する必要がある。数学的には、PKおよびSは初期ステータスSおよびブロックB,...,Br−1から計算する。
・PAY:Bに含まれる支払集合。
・l:ラウンドrのリーダー。lはラウンドr支払集合PAYを選ぶ(そして、次のQを判定する)。
・Q:ラウンドrのシードで、ラウンドrの終わりに生成され、ラウンドr+1の検証者を選ぶために使用される数量(すなわち、バイナリストリング)。Qはブロックの支払集合とは独立しており、lが操作することはできない。
・SVr,s:ラウンドrのステップsのために選ばれた検証者の集合。
・SV:ラウンドrのために選ばれた検証者の集合、SV=∪s≧1SVr,s
・MSVr,sおよびHSVr,s:それぞれ、SVr,sにおける悪意の検証者の集合および誠実な検証者の集合。MSVr,s∪HSVr,s=SVr,s、かつ、
Figure 0006986519

Figure 0006986519
および
Figure 0006986519
:それぞれ、s>1の場合、各SVr,1における潜在的リーダーの期待数、および各SVr,sにおける検証者の期待数。
我々は、s>1の場合、SVr,1には少なくとも1人の誠実なメンバーを必要とするが、各SVr,sには少なくとも誠実なメンバーの過半数を必要とするため、n<<nであることに注意されたい。
・h∈(0,1):2/3より大きい定数。hはシステムにおける誠実者の比率。すなわち、使用する仮定によって、各PKにおける誠実なユーザまたは誠実なマネーの部分は少なくともhである。
・H:ランダムオラクルとしてモデル化された暗号学的ハッシュ関数。
・⊥:Hの出力と同じ長さの特殊ストリング。
・F∈(0,1):許容される誤差確率を指定するパラメータ。確率≦Fは「無視できる」と見なされ、確率≧1−Fは「圧倒的」と見なされる。
・p∈(0,1):ラウンドrのリーダーlが誠実である確率。理想的にはp=hである。敵対者が存在するときは、pの値は分析によって判定される。

Figure 0006986519
:ルックバックパラメータ。すなわち、ラウンドr−kはラウンドrの検証者が選ばれるところである。すなわち、SV⊆PKr−k(脚注9参照)。
脚注9
厳密にいうと、「r−k」は「最大{0,r−k}」であるべきである。
・p∈(0,1):ラウンドrの最初のステップについて、ラウンドr−kのユーザは、確率
Figure 0006986519
でSVr,1に入るように選ばれる。
・p∈(0,1):ラウンドrの各ステップs>1について、ラウンドr−kのユーザは、確率
Figure 0006986519
でSVr,sに入るように選ばれる。
・CERT:Bの証明書。ラウンドrの正規の検証者からのH(B)のt署名の集合である。

Figure 0006986519
は証明済みブロックである。
ユーザiは、当該ユーザiが証明済みブロックの両方の部分を所有している(かつ、検証がうまくいく)場合にBを知る。異なるユーザが見るCERTは異なるかもしれないことに留意されたい。

Figure 0006986519
:ユーザiがBを知る(現地)時刻。アルゴランドプロトコルでは、各ユーザは自分自身のクロックを有する。異なるユーザのクロックは、同期させる必要はないが、同じ速度でなければならない。分析の目的でのみ、我々は基準クロックを考慮し、それに対するプレーヤの関連時刻を測定する。
・α r,sおよびβ r,s:それぞれ、ユーザiがラウンドrのステップsの実行を開始する(現地)時刻および終了する(現地)時刻。
・Λおよびλ:本質的に、それぞれアルゴランドプロトコルのステップ1を実行するために必要な時間と他のステップに必要な時間とについての上限。
パラメータΛは、単一の1MBブロックを伝播するために必要な時間に上限を設ける。
パラメータλは、ステップs>1で検証者ごとに1つの小さなメッセージを伝播するために必要な時間に上限を設ける。
我々は、Λ≦4λと仮定する。
概念
・検証者の選択
各ラウンドrおよびステップs>1について、
Figure 0006986519
である。各ユーザi∈PKr−kは、自分の長期鍵を使用して自分の署名を秘かに計算し、i∈SVr,sかどうかを決定する。i∈SVr,sの場合、SIG(r,s,Qr−1)は、iの(r,s)クレデンシャルであり、簡潔にσ r,sで表される。
ラウンドrの最初のステップについて、SVr,1およびσ r,1は同様に定義され、pはpに置換される。SVr,1の検証者は潜在的リーダーである。
・リーダーの選択
すべての潜在的リーダーj∈SVr,1について、H(σ r,1)≦H(σ r,1)の場合、ユーザi∈SVr,1は、ラウンドrのリーダーである。2人のプレーヤのクレデンシャルのハッシュが比較される場合は必ず、起こりそうにないタイのイベントでは、プロトコルは必ず、潜在的リーダー(の長期公開鍵)に従って辞書式順序でタイをブレークする。
定義上、プレーヤlのクレデンシャルのハッシュ値は、PKr−kの全ユーザの中で最小でもある。潜在的リーダーは、他の潜在的リーダーのクレデンシャルを見なければ、自分がリーダーかどうかを秘かに決定することはできないことに留意されたい。
ハッシュ値はランダムで一様であるため、SVr,1が空ではない場合、lは必ず存在し、少なくともhの確率で誠実である。パラメータnは、各SVr,1が圧倒的確率で空ではないことを確保するのに十分に大きい。
・ブロック構造
空ではないブロックは形式
Figure 0006986519
をとり、空のブロックは、形式
Figure 0006986519
をとる。
このラウンドで支払が発生していない場合、またはリーダーが悪意である場合には、空ではないブロックはまだ空の支払集合PAYを含んでいるかもしれないことに留意されたい。しかし、空ではないブロックは、lのアイデンティティであるそのクレデンシャル
Figure 0006986519
および
Figure 0006986519
は、すべて適時に明らかにされたことを含意する。プロトコルは、リーダーが誠実である場合、ブロックは圧倒的確率で空ではないことを保証する。
・シードQ
が空ではない場合、
Figure 0006986519
であり、そうでなければ
Figure 0006986519
である。
パラメータ
・様々なパラメータ間の関係
−ラウンドrの検証者および潜在的リーダーはPKr−kのユーザから選択され、ここで、kは、敵対者がラウンドr−k−1に遡ってQr−1をFよりも良い確率で予測できないように選ばれる。そうでなければ、敵対者は、ラウンドr−kについて悪意のユーザを導入することができ、その全員が、ラウンドrで潜在的リーダー/検証者になり、敵対者が望むいくつかのステップsについて、SVr,sに悪意のリーダーまたは悪意の過半数を持つことに成功する。
−各ラウンドrのステップ1について、nは、圧倒的確率で
Figure 0006986519
になるように選ばれる。
・重要なパラメータの例示的な選択
−Hの出力は、256ビット長である。
−h=80%、n=35。
−Λ=1分、かつ、λ=15秒。
・プロトコルの初期化
プロトコルは、r=0で時刻0で始まる。「B−1」または「CERT−1」は存在しないので、統語論的に、B−1は、Q−1を指定するその3番目の成分を持つ公開パラメータであり、全ユーザは、時刻0でB−1を知っている。
5 アルゴランド’
このセクションでは、次の仮定の下で機能するアルゴランド’の1つのバージョンを構築する。
「ユーザの誠実な過半数」の仮定:各PKにおいてユーザの2/3超が誠実である。
セクション8では、上記仮定を、所望の「マネーの誠実な過半数」の仮定に置き換える方法を示す。
5.1 追加の記号およびパラメータ
記号

Figure 0006986519
:バイナリBAプロトコルの最大ステップ数で、3の倍数。
・L≦m/3:各試行が
Figure 0006986519
の確率で1になり、たかだかm/3の試行がある場合、1を見るために必要なベルヌーイ試行の回数を表すランダム変数。すべての試行が失敗する場合、
Figure 0006986519
になる。Lは、ブロックBを生成するために必要な時間に上限を設けるために使用する。

Figure 0006986519
:プロトコルの終了条件に必要な署名数。
・CERT:Bの証明書。これは、ラウンドrの正規の検証者からのH(B)のt署名の集合である。
パラメータ
・様々なパラメータ間の関係。
−ラウンドrの各ステップs>1について、nは圧倒的確率で、
Figure 0006986519
かつ
Figure 0006986519
になるように選ばれる。
hの値が1に近づくほど、nは小さくなる必要がある。具体的には、チェルノフ限界(の変型)を使用して、所望の条件が圧倒的確率で成り立つことを確実にする。
−mは、圧倒的確率でL<m/3になるように選ばれる。
・重要なパラメータの例示的な選択。
−F=10−12

Figure 0006986519
、k=40およびm=180。
5.2 アルゴランド’での一時的な鍵の実装
既に述べたように、我々は、検証者i∈SVr,sが、使用後直ちに破壊する一時的な秘密鍵sk r,sを使用して、一時的な公開鍵pk r,sに関連し、ラウンドrのステップsの自分のメッセージm r,sに電子署名することを望む。したがって、pk r,sが実際にiによるm r,sの署名を検証するために使用する鍵であることをすべてのユーザが検証することができることを確保する効率的な方法が必要である。アイデンティティベースの署名スキームの(我々が知る限りにおいて)新たな用途によってこれを行う。
高次で、このようなスキームでは、中央集権機関Aが公開マスター鍵PMKおよび対応する秘密マスター鍵SMKを生成する。プレーヤUのアイデンティティUがあるとすると、Aは、SMKにより、公開鍵Uに対する秘密署名鍵skを計算し、skをUに秘かに与える。(実際、アイデンティティベースの電子署名スキームでは、ユーザUの公開鍵はU自体である!)このように、Aが電子署名の生成を可能にしたいユーザの秘密鍵の計算後にAがSMKを破壊して、計算した秘密鍵を保管しておかない場合、Uは、公開鍵Uに対するメッセージに電子署名することのできる唯一の人である。したがって、「Uの名前」を知る人は誰でも自動的にUの公開鍵を知り、そのためUの署名を(おそらく、これも公開マスター鍵PMKを使用して)検証することができる。
我々のアプリケーションでは、権限機関Aはユーザiであり、すべての潜在的ユーザの集合Uは、例えば、S={i}×{r’,...,r’+10}×{1,...,m+3}において、ラウンドステップペア(r,s)と一致し、上記式において、r’は所与のラウンドであり、m+3は、1ラウンド内に発生してもよいステップ数の上限である。このように、
Figure 0006986519
は、iの署名
Figure 0006986519
を見る人が誰でも、圧倒的確率で、r’に続く最初の100万ラウンドrでそれを直ちに検証することができるにするものである。
言い換えると、iは、まずPMKおよびSMKを生成する。次に、iは、PMKが任意のラウンドr∈[r’,r’+10]のためのiのマスター公開鍵であることを公表し、SMKを使用して各3つ組(i,r,s)∈Sのための秘密鍵sk r,sを秘かに生成して格納する。これが終了したら、iはSMKを破壊する。自分がSVr,sの一部ではないとiが判定する場合、iはsk r,sをそのままにしておいてもよい(プロトコルはiがラウンドrのステップsでメッセージを認証することを要求していないため)。そうでなければ、iは、まず、sk r,sを使用して、自分のメッセージm r,sに電子署名してから、sk r,sを破壊する。
iは、最初にシステムに入るときに、自分の最初の公開マスター鍵を公表できることに留意されたい。すなわち、iをシステムに(ラウンドr’またはr’に近いラウンドで)参加させる同じ支払
Figure 0006986519
が、iの要求により、任意のラウンドr∈[r’,r’+10]のためのiの公開マスター鍵がPMKであることも、例えば、形式(PMK,[r’,r’+10])ペアを含むことによって指定してもよい。
また、m+3は1ラウンド内の最大ステップ数であるため、1ラウンドに1分かかると仮定すると、そのように生成される一時的な鍵の隠し場所はiをほぼ2年間維持することにも留意されたい。同時に、これらの一時的な秘密鍵は、iが生成するのに長くなりすぎることもない。32B鍵を持つ楕円曲線ベースのシステムを使用して、各秘密鍵は数マイクロ秒で計算される。したがって、m+3=180であれば、1億8千万個のすべての秘密鍵を1時間未満で計算することができる。
現行ラウンドがr’+10に近づいてくると、次の100万ラウンドを処理するために、iは新たな(PMK’,SMK’)ペアを生成し、一時的な鍵の次の隠し場所が何であるかを、例えば、SIG(PMK’,[r’+10+1,r’+2・10+1])を、個別の「トランザクション」、または支払の一部であるいくつかの追加通知のいずれかとして、新たなブロックに進入させることによって通知する。そうすることによって、iは、自分がPMK’を使用して次の100万ラウンドでiの一時的な署名を検証することを全員に通知する。以降も同様。
(この基本アプローチに従い、アイデンティティベースの署名を使用しなくても、一時的な鍵を実施するための他の方法は確かに可能であることに留意されたい。例えば、マークル木による(脚注10参照)。)
脚注10
この方法では、iは、例えば、{r’,...,r’+10}×{1,...,m+3}で、各ラウンドステップペア(r,s)の公開・秘密鍵のペア(pk r,s,sk r,s)を生成する。次に、これらの公開鍵を正規的に順序付けし、j番目の公開鍵をマークル木のj番目のリーフに格納し、ルート値Rを計算し、これを公表する。iが鍵pk r,sに関連するメッセージに署名したい場合、iは、実際の署名を提供するだけでなく、Rに関連するpk r,sの認証経路も提供する。この認証経路は、pk r,sがj番目のリーフに格納されていることも証明することに注意されたい。このアイデアから、詳細の残りを容易に埋めることができる。
一時的な鍵を実施するための他の方法は、例えば、マークル木により、確かに可能である。
5.3 アルゴランド’のステップとBAのステップとのマッチング
前述のように、アルゴランド’の1ラウンドは、たかだかm+3ステップを有する。
ステップ1.
このステップでは、各潜在的リーダーiは自分の候補ブロックB を計算して、自分自身のクレデンシャルσ r,1と一緒に伝播する。
このクレデンシャルは明白にiを識別することを思い出していただきたい。そうなるのは、
Figure 0006986519
であるからである。
潜在的検証者iも、自分のメッセージの一部として、H(B )の自分の正規の電子署名を伝播する。支払またはクレデンシャルを処理するのではなく、iのこの署名は自分の一時的な公開鍵pk r,1に関連する。すなわち、iは
Figure 0006986519
を伝播する。
我々の規約を考えると、iは、B および
Figure 0006986519
を伝播するのではなく、
Figure 0006986519
を伝播したかもしれない。しかし、我々の分析では、我々は、
Figure 0006986519
への明白なアクセス権を有する必要がある。
ステップ2.
このステップでは、各検証者iは、l をそのハッシュ化されたクレデンシャルが最小である潜在的リーダーに、B をl によって提案されるブロックになるように設定する。効率のために、我々はBに対して直接ではなく、H(B)に対して合意することを望むので、iは、初期値v’=H(B )で、BAの最初のステップで伝播したであろうメッセージを伝播する。すなわち、iは、当然ながら、v’に一時的に署名した後にv’を伝播する。(すなわち、正しい一時的な公開鍵、この場合pk r,2に関連してそれに署名した後。)また当然、iは自分自身のクレデンシャルも伝送する。
BAの最初のステップは段階的コンセンサスプロトコルGCの第1ステップからなるので、アルゴランド’のステップ2はGCの第1ステップに対応する。
ステップ3.
このステップでは、各検証者i∈SVr,2はBAの第2ステップを実行する。すなわち、各検証者は、GCの第2ステップで送ったであろう同じメッセージを送る。ここでも、iのメッセージは一時的に署名されて、iのクレデンシャルが添付される。(今後、検証者が自分のメッセージに一時的に署名して自分のクレデンシャルも伝播することを述べるのを省略する。)
ステップ4.
このステップでは、すべての検証者i∈SVr,4はGCの出力(v,g)を計算し、BAの第3ステップで、すなわち、g=2の場合は初期ビット0で、そうでなければ1で、BBAの第1ステップで送ったであろう同じメッセージに一時的に署名して送る。
ステップs=5,...,m+2.
このようなステップは、もし到達した場合、BAのステップs−1に対応し、したがってBBAのステップs−3に対応する。
我々の伝播モデルは十分に非同期であるため、このようなステップsの中央では、ブロックBが既に選ばれていることを検証者に証明する情報が検証者i∈SVr,sに届く可能性を考慮しなければならない。この場合、iはアルゴランド’のラウンドrの自分自身の実行を停止し、自分のラウンド(r+1)の命令の実行を始める。
したがって、検証者i∈SVr,sの命令は、BBAのステップs−3に対応する命令に加えて、BBAの実行が前のステップs’で中止されたかどうかをチェックすることを含む。BBAは、コインを0に固定するステップまたはコインを1に固定するステップでしか中止できないので、命令は、
A(終了条件0):s’−2≡0 mod 3、または
B(終了条件1):s’−2≡1 mod 3
かどうかを区別する。
事実、ケースAでは、ブロックBは空ではなく、したがって、追加の命令は、iが、その正規の証明書CERTと合わせて、Bを適切に再構築することを確実にするために必要である。ケースBでは、ブロックBは空であり、したがって、iは
Figure 0006986519
を設定し、CERTを計算するように命令される。
iが、ステップsを実行している間に、ブロックBが既に生成されたという証拠を見ない場合、iは、BBAのステップs−3で送ったであろう同じメッセージを送る。
ステップm+3.
ステップm+3の間に、前のステップs’でブロックBが既に生成されたことをi∈SVr,m+3が見る場合、iは、ちょうど上で説明したように進める。
そうでない場合、BBAのステップmで送ったであろう同じメッセージを送るのではなく、iは、自分が所有している情報に基づいて、Bおよびそれに対応する証明書CERTを計算するように命令される。
実際に、1ラウンドのステップの総数にm+3の上限を設けることを思い出していただきたい。
5.4 実際のプロトコル
ラウンドrの各ステップsで、検証者i∈SVr,sは、s=1のケースのSIG(Qr−1)だけでなく、自分のクレデンシャル
Figure 0006986519
を生成するために、長期公開・秘密鍵ペアを使用することを思い出していただきたい。検証者iは、一時的な秘密鍵sk r,sを使用して、自分の(r,s)メッセージm r,sに署名する。簡潔にするために、rおよびsが明白である場合、ラウンドrのステップsにおける値xのiによる正規の一時的な署名を表すために、
Figure 0006986519
ではなく、esig(x)を書き、(i,x,esig(x))を表すために、
Figure 0006986519
の代わりにESIG(x)を書く。
ステップ1:ブロックの提案
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップ1を始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,1かどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップ1の実行をすぐに停止する。
・i∈SVr,1の場合、すなわち、iが潜在的リーダーである場合、iは、それまでに当該iに伝播されてきたラウンドrの支払を収集して、そこから最大支払集合PAY を計算する。次に、「候補ブロック」B =(r,PAY ,SIG(Qr−1),H(Br−1))を計算する。最後にメッセージm r,s=(B ,esig(H(B )),σ r,1)を計算し、自分の一時的な秘密鍵sk r,1を破壊してから、m r,1を伝播する。
備考
実際上、ステップ1の大域的実行を短縮するために、(r,1)メッセージを選択的に伝播することが重要である。すなわち、システム内の全ユーザiについて、これまでに受信し検証が成功する第1(r,1)メッセージに関し(脚注11参照)、プレーヤiはそれを通常通りに伝播する。プレーヤがiを受信して検証が成功する他のすべての(r,1)メッセージについては、それが含むクレデンシャルのハッシュ値が、当該プレーヤiがそれまでに受信して検証が成功したすべての(r,1)メッセージに含まれるクレデンシャルのハッシュ値の中で最も小さい場合に限り、それを伝播する。また、ジョルジオ・ブラコス(Georgios Vlachos)が提案するように、各潜在的リーダーiも自分のクレデンシャルσ r,1を個別に伝播することが有用である。これらの小さなメッセージはブロックよりも高速で移動し、含まれるクレデンシャルが小さいハッシュ値を有する場合に、m r,1の適時の伝播を確実にするのに対し、ハッシュ値が大きいものはすぐに消失させる。
脚注11
すなわち、すべての署名が正当であり、ブロックおよびそのハッシュが両方とも有効である。ただし、iは、含まれる支払集合がその提案者にとって最大かどうかをチェックしない。
ステップ2:段階的コンセンサスプロトコルGCの第1ステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップ2を始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,2かどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップ2の実行をすぐに停止する。
・i∈SVr,2の場合、
Figure 0006986519
の時間量を待った後で、iは次のように行為する。
1. それまでに受信し検証が成功した(r,1)メッセージの一部であるすべてのクレデンシャルσ r,1について、H(σ r,1)≦H(σ r,1)になるようなユーザlを見つける(脚注12参照)。
脚注12
本質的に、ユーザiはラウンドrのリーダーがユーザlであることを秘かに決定する。
2. lから有効なメッセージm r,1=(B ,esig(H(B )),σ r,1)を受信した場合(脚注13参照)、iは
Figure 0006986519
を設定し、そうでなければ、iは
Figure 0006986519
を設定する。
脚注13
ここでも、プレーヤlの署名およびハッシュはすべて検証が成功し、B のPAY はラウンドrの有効な支払集合である。ただし、iは、PAY がlにとって最大かどうかはチェックしない。
3. iは、メッセージ
Figure 0006986519
を計算し(脚注14参照)、自分の一時的な秘密鍵sk r,2を破壊してから、m r,2を伝播する。
脚注14
メッセージm r,2は、プレーヤiがv’を次のブロックのハッシュとみなす、または次のブロックを空だとみなすことを示す。
ステップ3:GCの第2ステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップ3を始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,3かどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップ3の実行をすぐに停止する。
・i∈SVr,3の場合、
Figure 0006986519
の時間量を待った後で、iは次のように行為する。
1. 受信した有効なメッセージm r,2すべての中で、一切の矛盾なく(脚注15参照)、その2/3超が形式(ESIG(v’),σ r,2)であるような値v’≠⊥が存在する場合、メッセージ
Figure 0006986519
を計算する。そうでなければ、iは、
Figure 0006986519
を計算する。
脚注15
すなわち、iは、ESIG(v’)および異なるESIG(v”)をそれぞれ含む2つの有効なメッセージをプレーヤjから受信していない。ここで、またこれ以降、後で定義する終了条件を除き、誠実なプレーヤが所与の形式のメッセージを望む場合は必ず、互いに矛盾するメッセージは決してカウントされず、または有効と見なされない。
2. iは、自分の一時的な秘密鍵sk r,3を破壊してから、m r,3を伝播する。
ステップ4:GCの出力およびBBAの第1ステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップ4を始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,4かどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップ4の実行をすぐに停止する。
・i∈SVr,4の場合、
Figure 0006986519
の時間量を待った後で、iは次のように行為する。
1. vおよびg、GCの出力を次のように計算する。
(a)受信した有効なメッセージm r,3すべての中で、その2/3超が形式(ESIG(v’),σ r,3)であるような値v’≠⊥が存在する場合、
Figure 0006986519
および
Figure 0006986519
を設定する。
(b)そうでなければ、受信した有効なメッセージm r,3すべての中で、その1/3超が形式(ESIG(v’),σ r,3)であるような値v’≠⊥が存在する場合、
Figure 0006986519
および
Figure 0006986519
を設定する。(脚注16参照)
(c)それ以外の場合、
Figure 0006986519
および
Figure 0006986519
を設定する。
脚注16
ケース(b)のv’は、存在する場合、一意でなければならないことは証明することができる。
2. b、BBAの入力を次のように計算する。
=2の場合
Figure 0006986519
で、そうでない場合は
Figure 0006986519
である。
3. メッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,4を破壊してから、m r,4を伝播する。
ステップs,5≦s≦m+2,s−2≡0 mod 3: BBAの、コインを0に固定するステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップsを始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,sかどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップsの実行をすぐに停止する。
・i∈SVr,sの場合、iは次のように行為する。

Figure 0006986519
の時間量が経過するまで待つ。
−終了条件0:このような待機中の任意の時点で、
(a)5≦s’≦s,s’−2≡0 mod 3、すなわち、ステップs’がコインを0に固定するステップであり、
(b)iは少なくとも
Figure 0006986519
の有効なメッセージm r,s’−1=(ESIG(0),ESIG(v),σ r,s’−1)を受信しており(脚注17参照)、かつ、
(c)iがv=H(B )で有効なメッセージm r,1=(B ,esig(H(B )),σ r,1)を受信した、
ようなストリングv≠⊥およびステップs’が存在する場合、iは何も伝播せずに、自分自身のステップs(また、実際にはラウンドr)の実行をすぐに停止し、B=B を設定し、自分自身のCERTをサブステップ(b)のメッセージm r,s’−1の集合になるように設定する(脚注18参照)。
脚注17
プレーヤjからのこのようなメッセージは、プレーヤiが1について署名するjからのメッセージも受信した場合であってもカウントされる。終了条件1についても同様。分析で示されるように、これは、すべての誠実なユーザが時間λ以内に互いからBを知ることを確保するために行われる。
脚注18
ユーザiはここでBを知り、自身のラウンドrを終わらせる。当該ユーザiはそれでも一般ユーザとしてメッセージの伝播を手伝うが、(r,s)検証者としては伝播を開始しない。具体的には、当該ユーザiは自分のCERTですべてのメッセージの伝播を手伝っているが、これは我々のプロトコルにとって十分である。ユーザiはバイナリBAプロトコルについても
Figure 0006986519
を設定するべきであるが、この場合bは一切必要ないことに留意されたい。すべての将来の命令についても同様。
−終了条件1:このような待機中の任意の時点で、
(a’)6≦s’≦s,s’−2≡1 mod 3、すなわち、ステップs’がコインを1に固定するステップであり、かつ、
(b’)iが少なくともtの有効なメッセージm r,s’−1=(ESIG(1),ESIG(v),σ r,s’−1)を受信している(脚注19参照)、
ようなステップs’が存在する場合、iは何も伝播せずに、自分自身のステップs(また、実際にはラウンドr)の実行をすぐに停止し、B=Bε を設定し、自分自身のCERTをサブステップ(b’)のメッセージm r,s’−1の集合になるように設定する。
脚注19
この場合、vが何であるかは問題ではない。
−そうでなければ、待機の終了時に、ユーザiは次のことを行う。
を、受信した有効なm r,s−1すべての第2成分でvの過半数票になるように設定する。
iはbを次のように計算する。
受信した有効なm r,s−1すべての2/3超が形式(ESIG(0),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、受信した有効なm r,s−1すべての2/3超が形式(ESIG(1),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、
Figure 0006986519
を設定する。
メッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。
ステップs,6≦s≦m+2,s−2≡1 mod 3: BBAの、コインを1に固定するステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップsを始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,sかどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップsの実行をすぐに停止する。
・i∈SVr,sの場合、iは次のように行為する。

Figure 0006986519
の時間量が経過するまで待つ。
−終了条件0:コインを0に固定するステップと同じ命令。
−終了条件1:コインを0に固定するステップと同じ命令。
−そうでなければ、待機の終了時に、ユーザiは次のことを行う。
を、受信した有効なm r,s−1すべての第2成分でvの過半数票になるように設定する。
iはbを次のように計算する。
受信した有効なm r,s−1すべての2/3超が形式(ESIG(0),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、受信した有効なm r,s−1すべての2/3超が形式(ESIG(1),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、
Figure 0006986519
を設定する。
メッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。
ステップs,7≦s≦m+2,s−2≡2 mod 3: BBAの、実際にコインを投げるステップ
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップsを始める。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,sかどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップsの実行をすぐに停止する。
・i∈SVr,sの場合、iは次のように行為する。

Figure 0006986519
の時間量が経過するまで待つ。
−終了条件0:コインを0に固定するステップと同じ命令。
−終了条件1:コインを0に固定するステップと同じ命令。
−そうでなければ、待機の終了時に、ユーザiは次のことを行う。
−vを、受信した有効なm r,s−1すべての第2成分でvの過半数票になるように設定する。
iはbを次のように計算する。
受信した有効なm r,s−1すべての2/3超が形式(ESIG(0),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、受信した有効なm r,s−1すべての2/3超が形式(ESIG(1),ESIG(v),σ r,s−1)の場合、
Figure 0006986519
を設定する。
そうでなければ、SV r,s−1を、有効なメッセージm r,s−1を受信した(r,s−1)検証者の集合にする。
Figure 0006986519
を設定する。
メッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。
ステップm+3:BBAの最後のステップ(脚注20参照)
全ユーザi∈PKr−kのための命令:ユーザiは、Br−1を知るや否や、ラウンドrの自分自身のステップm+3を始める。
脚注20
圧倒的確率で、BBAはこのステップの前に終了しており、このステップを完全性のために明記する。
・ユーザiはBr−1の第3成分からQr−1を計算し、i∈SVr,m+3かどうかをチェックする。

Figure 0006986519
の場合、iは自分自身のステップm+3の実行をすぐに停止する。
・i∈SVr,m+3の場合、iは次のことを行う。

Figure 0006986519
の時間量が経過するまで待つ。
−終了条件0:コインを0に固定するステップと同じ命令。
−終了条件1:コインを0に固定するステップと同じ命令。
−そうでなければ、待機の終了時に、ユーザiは次のことを行う。

Figure 0006986519
および
Figure 0006986519
を設定する。
メッセージm r,m+3=(ESIG(out),ESIG(H(B)),σ r,m+3)を計算し、自分の一時的な秘密鍵sk r,m+3を破壊してから、Bを認定するためにm r,m+3を伝播する(脚注21参照)。
脚注21
ステップm+3からの証明書は、ESIG(out)を含まなければならないわけではない。一様性のためにのみこれを含めている。証明書はこれで、どのステップで生成されようとも一様なフォーマットを有する。
非検証者によるラウンドrブロックの再構成
システム内の全ユーザiのための命令:ユーザiは、Br−1を知るや否や、自分自身のラウンドrを始め、ブロック情報を次のように待つ。
−このような待機中の任意の時点で、
(a)s’−2≡0 mod 3で、5≦s’≦m+3、
(b)iが少なくともtの有効なメッセージm r,s’−1=(ESIG(0),ESIG(v),σ r,s’−1)を受信しており、かつ、
(c)iがv=H(B )で有効なメッセージm r,1=(B ,esig(H(B )),σ r,1)を受信した、
ようなストリングvおよびステップs’が存在する場合、iは自分自身のラウンドrの実行をすぐに停止し、B=B を設定し、自分自身のCERTをサブステップ(b)のメッセージm r,s’−1の集合になるように設定する。
−このような待機中の任意の時点で、
(a’)s’−2≡1 mod 3で、6≦s’≦m+3、かつ、
(b’)iが少なくともtの有効なメッセージm r,s’−1=(ESIG(1),ESIG(v),σ r,s’−1)を受信している、
ようなステップs’が存在する場合、iは自分自身のラウンドrの実行をすぐに停止し、B=Bε を設定し、自分自身のCERTをサブステップ(b’)のメッセージm r,s’−1の集合になるように設定する。
−このような待機中の任意の時点で、iが少なくともtの有効なメッセージm r,m+3=(ESIG(1),ESIG(H(Bε )),σ r,m+3)を受信している場合、iは自分自身のラウンドrの実行をすぐに停止し、B=Bε を設定し、自分自身のCERTを1およびH(Bε )のメッセージm r,m+3の集合になるように設定する。
5.5 アルゴランド’の分析
分析で使用する各ラウンドr≧0について以下の記号を採用する。
・Tを、第1の誠実なユーザがBr−1を知る時刻とする。
・Ir+1を、間隔[Tr+1,Tr+1+λ]とする。
=0はプロトコルの初期化によることに留意されたい。各s≧1およびi∈SVr,sについて、α r,sおよびβ r,sはそれぞれプレーヤiのステップsの開始時刻および終了時刻であることを思い出していただきたい。また、各2≦s≦m+3についてt=(2s−3)λ+Λであることを思い出していただきたい。加えて、
Figure 0006986519
および
Figure 0006986519
とする。
最後に、各試行が
Figure 0006986519
の確率で1になり、たかだかm/3の試行がある場合、L≦m/3は、1を見るために必要なベルヌーイ試行の回数を表すランダム変数であることを思い出していただきたい。すべての試行が失敗すると、
Figure 0006986519
である。
分析では、メッセージを伝播するために必要な時間に対して実際に無視できる程度であるため、計算時間を無視する。いずれにしても、やや大きいλおよびΛを使用することにより、計算時間を分析に直接組み入れることができる。以下の記述のほとんどは「圧倒的確率で」成り立つので、この事実については分析で繰返し強調しないこともある。
5.6 主要定理
定理5.1.
以下の性質は、各ラウンドr≧0について、圧倒的確率で成り立つ。
1.すべての誠実なユーザが同じブロックBに合意する。
2.リーダーlが誠実である場合、ブロックBはlによって生成され、Bは、時刻
Figure 0006986519
までにlが受信した最大支払集合を含み、Tr+1≦T+8λ+Λおよびすべての誠実なユーザが時間間隔Ir+1でBを知る。
3.リーダーlが悪意の場合、Tr+1≦T+(6L+10)λ+Λおよびすべての誠実なユーザが時間間隔Ir+1でBを知る。
4.Lについてp=h(1+h−h)のとき、リーダーlは少なくともpの確率で誠実である。
我々の主要定理を証明する前に、2つの注意点を述べよう。
ブロック生成および真のレイテンシ
ブロックBを生成する時間は、Tr+1−Tと定義される。すなわち、ある誠実なユーザがBを知った初めてのときと、ある誠実なユーザがBr−1を知った初めてのときと、の差と定義される。ラウンドrのリーダーが誠実である場合、性質2の我々の主要定理は、h>2/3の正確な値が何であろうと、Bを生成するまさにその時間が8λ+Λ時間であることを保証する。リーダーが悪意の場合、ここでも、hの正確な値が何であろうと、性質3は、Bを生成する期待時間に、
Figure 0006986519
によって上限が設けられることを含意する(脚注22参照)。しかしながら、Bを生成する期待時間はhの正確な値によって変わる。実際には、性質4によって、p=h(1+h−h)で、リーダーは少なくともpの確率で誠実であり、したがって、
Figure 0006986519
である。
たとえば、h=80%の場合、
Figure 0006986519
である。
脚注22
実際には、
Figure 0006986519
である。
定理5.1の証明.
性質1〜3を帰納法により証明する。当該性質1〜3がラウンドr−1について成り立つと仮定すると(一般性を損なうことなく、当該性質1〜3はr=0のとき自動的に「ラウンド−1」について成り立つ)、ラウンドrについてそれを証明する。
r−1は帰納的仮説によって一意に定義されるので、ラウンドrの各ステップsについて集合SVr,sが一意に定義される。nを選ぶことによって、圧倒的確率で
Figure 0006986519
である。ここで、セクション5.7および5.8で証明される次の2つの補題を述べる。帰納法を通して、また2つの補題の証明において、ラウンド0の分析は帰納ステップとほぼ同じであり、これらが発生するときの違いを強調する。
補題5.2.
[完全性の補題] ラウンドr−1について性質1〜3が成り立つと仮定すると、リーダーlが誠実な場合、圧倒的確率で、
・すべての誠実なユーザは、lによって生成され、時刻
Figure 0006986519
までにlによって受信された最大支払集合を含む同じブロックBに合意し、かつ、
・Tr+1≦T+8λ+Λであり、すべての誠実なユーザは時間間隔Ir+1でBを知る。
補題5.3.
[健全性の補題]性質1〜3がラウンドr−1について成り立つと仮定すると、リーダーlが悪意の場合、圧倒的確率で、すべての誠実なユーザは同じブロックBに合意し、Tr+1≦T+(6L+10)λ+Λであり、すべての誠実なユーザは時間間隔Ir+1でBを知る。
性質1〜3は、補題5.2および5.3をr=0および帰納ステップに適用することによって成り立つ。最後に、性質4を、セクション5.9で証明される次の補題として再び述べる。
補題5.4.
rの前の各ラウンドについて性質1〜3があるとすると、Lについてp=h(1+h−h)で、少なくともpの確率でリーダーlは誠実である。
上記3つの補題を合わせると、定理5.1が成り立つ。
以下の補題は、帰納的仮説があるとして、ラウンドrに関するいくつかの重要な性質を述べており、上記3つの補題の証明で使用される。
補題5.5.
性質1〜3はラウンドr−1について成り立つと仮定する。ラウンドrの各ステップs≧1および各誠実な検証者i∈HSVr,sについて、次のことが分かっている。
(a)α r,s∈Iであり、
(b)プレーヤiが時間量t待っていた場合、r>0についてはβ r,s∈[T+t,T+λ+t]で、r=0についてはβ r,s=tであり、かつ、
(c)プレーヤiが時間量t待っていた場合、iは、時刻β r,sまでに、すべてのステップs’<sについて、すべての誠実な検証者j∈HSVr,s’によって送られたすべてのメッセージを受信している。
さらに、各ステップs≧3については、次のことが分かっている。
(d)2人の異なるプレーヤi,i’∈SVr,sは存在せず、同じ長さの2つの異なる値v,v’は存在しないので、どちらのプレーヤも時間量t待ち、プレーヤiが受信するすべての有効なメッセージm r,s−1の2/3超がvに関して署名しており、プレーヤi’が受信するすべての有効なメッセージm r,s−1の2/3超がv’に関して署名している。
証明.
性質(a)は、プレーヤiが時間間隔IでBr−1を知り、すぐに自分自身のステップsを始めるため、帰納的仮説から直接得られる。性質(b)は(a)から直接得られる。プレーヤiは行為する前に時間量t待っているため、β r,s=α r,s+tである。r=0についてはα r,s=0であることに留意されたい。
ここで、性質(c)を証明する。s=2である場合、性質(b)により、すべての検証者j∈HSVr,1については、次式になる。
Figure 0006986519
各検証者j∈HSVr,1は自分のメッセージを時刻β r,1に送り、メッセージはたかだかΛ時間内にすべての誠実なユーザに届き、時刻β r,sまでに、プレーヤiは所望のようにHSVr,1内のすべての検証者によって送られるメッセージを受信する。
s>2の場合、t=ts−1+2λである。性質(b)により、すべてのステップs’<sおよびすべての検証者j∈HSVr,s’について、次の式になる。
Figure 0006986519
各検証者j∈HSVr,s’は自分のメッセージを時刻β r,s’に送り、メッセージはたかだかλ時間内にすべての誠実なユーザに届き、時刻β r,sまでに、プレーヤiは、すべてのs‘<sについて、HSVr,s’内のすべての検証者によって送られるメッセージを受信する。したがって、性質(c)は成り立つ。
最後に、性質(d)を証明する。検証者j∈SVr,s−1は自分の一時的な秘密鍵を使用して、ステップs−1でたかだか2つのことに署名することに留意されたい。すなわち、ハッシュ関数の出力と同じ長さの値vと、また、s−1≧4の場合はビットb∈{0,1}である。そのため我々は、補題の言明において、vおよびv’が同じ長さを有することを要求する。多くの検証者はハッシュ値vおよびビットbの両方に署名したかもしれず、したがって、どちらも2/3の閾値を超える。
矛盾を目的として、所望の検証者i,i’および値v,v’が存在すると仮定する。MSVr,s−1内の何人かの悪意の検証者がvおよびv’の両方に署名したかもしれないが、HSVr,s−1内の各誠実な検証者は、そのうちの、たかだか一方にしか署名していない。性質(c)によって、iおよびi’はともにHSVr,s−1内のすべての誠実な検証者によって送られたすべてのメッセージを受信している。
HSVr,s−1(v)を、vに署名した誠実な(r,s−1)検証者の集合とし、MSV r,s−1を、iが有効なメッセージを受信した悪意の(r,s−1)検証者の集合とし、MSV r,s−1(v)を、vに署名する有効なメッセージをiが受信したMSV r,s−1の小集合とする。iおよびvの要件により、次の式になる。
Figure 0006986519
まず、次のことを証明する。
Figure 0006986519
そうでないと仮定すると、パラメータ間の関係により、圧倒的確率で、
Figure 0006986519
となり、したがって、
Figure 0006986519
となって、不等式1と矛盾する。
次に、不等式1によって、次の式になる。
Figure 0006986519
不等式2と組み合わせると、
Figure 0006986519
となり、これは、次の式を含意する。
Figure 0006986519
同様に、i’およびv’の要件によって、次の式になる。
Figure 0006986519
誠実な検証者j∈HSVr,s−1は、自分のメッセージを伝播する前に自分の一時的な秘密鍵sk r,s−1を破壊するので、敵対者は、jが検証者であると知った後で、jが署名しなかった値のjの署名を偽造することはできない。このように、上記2つの不等式は、矛盾|HSVr,s−1|≧|HSVr,s−1(v)|+|HSVr,s−1(v’)|>|HSVr,s−1|を含意する。したがって、所望のi,i’,v,v’は存在せず、性質(d)は成り立つ。
5.7 完全性の補題
補題5.2.
[完全性の補題、書き換え]
ラウンドr−1について性質1〜3が成り立つと仮定すると、リーダーlが誠実な場合、圧倒的確率で、
・すべての誠実なユーザは、lによって生成され、時刻
Figure 0006986519
までにlによって受信された最大支払集合を含む同じブロックBに合意し、かつ、
・Tr+1≦T+8λ+Λであり、すべての誠実なユーザは時間間隔Ir+1でBを知る。
証明.
帰納的仮説および補題5.5によって、各ステップsおよび検証者i∈HSVr,sについて、α r,s∈Iである。以下に、プロトコルをステップごとに分析する。
ステップ1.
定義上、すべての誠実な検証者i∈HSVr,1は、所望のメッセージm r,1を時刻β r,1=α r,1のときに伝播し、ここで、m r,1=(B ,esig(H(B )),σ r,1)、B =(r,PAY ,SIG(Qr−1),H(Br−1))であり、PAY はiが時刻α r,1までに見たすべての支払の中の最大支払集合である。
ステップ2.
誠実な検証者i∈HSVr,2を任意に決める。補題5.5によって、プレーヤiが時刻β r,2=α r,2+tのときに待機を終えるとき、プレーヤiは、
Figure 0006986519
を含め、HSVr,1内の検証者によって送られたすべてのメッセージを受信している。lの定義上、クレデンシャルのハッシュ値が
Figure 0006986519
よりも小さいPKr−k内の別のプレーヤは存在しない。当然、敵対者は
Figure 0006986519
が非常に小さいことを見た後にlを腐敗させることはできるが、そのときまでに、プレーヤlは自分の一時的な鍵を破壊して、メッセージ
Figure 0006986519
を伝播してしまっている。このように、検証者iは自分自身のリーダーをプレーヤlになるように設定する。したがって、時刻β r,2に、検証者iはm r,2=(ESIG(v’),σ r,2)を伝播し、ここで、
Figure 0006986519
である。r=0のとき、唯一の違いは、範囲ではなく、β r,2=tとなることである。同様なことがその後のステップにも言えるので、改めてそれを強調しない。
ステップ3.
誠実な検証者i∈HSVr,3を任意に決める。補題5.5によって、プレーヤiが時刻β r,3=α r,3+tのときに待機を終えるとき、プレーヤiは、HSVr,2内の検証者によって送られたすべてのメッセージを受信している。
パラメータ間の関係によって、圧倒的確率で、|HSVr,2|>2|MSVr,2|である。さらに、誠実な検証者は矛盾するメッセージに署名しないので、敵対者は、誠実な検証者が自分の対応する一時的な秘密鍵を破壊してまった後は、誠実な検証者の署名を偽造することはできない。このように、iが受信した有効な(r,2)メッセージのすべての2/3超は誠実な検証者からのものであり、矛盾なく、形式
Figure 0006986519
をとる。
したがって、時刻β r,3で、プレーヤiはm r,3=(ESIG(v’),σ r,3)を伝播し、ここで、
Figure 0006986519
である。
ステップ4.
誠実な検証者i∈HSVr,4を任意に決める。補題5.5によって、プレーヤiが時刻β r,4=α r,4+tのときに待機を終えるとき、プレーヤiは、HSVr,3内の検証者によって送られたすべてのメッセージを受信している。ステップ3と同様に、iが受信した有効な(r,3)メッセージのすべての2/3超は誠実な検証者からのものであり、形式
Figure 0006986519
をとる。
したがって、プレーヤiは
Figure 0006986519
、g=2およびb=0を設定する。時刻β r,4=α r,4+tで、プレーヤiは、
Figure 0006986519
を伝播する。
ステップ5.
誠実な検証者i∈HSVr,5を任意に決める。補題5.5によって、プレーヤiは、時刻α r,5+tまで待っていた場合、HSVr,4内の検証者によって送られたすべてのメッセージを受信しているだろう。|HSVr,4|≧tであることに留意されたい(脚注23参照)。また、HSVr,4内のすべての検証者は
Figure 0006986519
について署名していることにも留意されたい。
脚注23
厳密にいうと、これは非常に高い確率で起こるが、必ずしも圧倒的ではない。しかし、この確率はプロトコルの実行時間に少し影響するものの、その正当性には影響を与えない。h=80%のとき、確率1−10−8で|HSVr,4|≧tになる。このイベントが発生しない場合、プロトコルは別の3ステップについて続行する。これが2ステップで発生しない確率は無視できる程度であるため、プロトコルはステップ8で終了する。すると、予想で、必要なステップ数はほぼ5である。
|MSVr,4|<tのとき、SVr,4内のt検証者(必然的に悪意になるであろう)によって署名できたであろう
Figure 0006986519
は存在せず、そのためプレーヤiは、tの有効なメッセージ
Figure 0006986519
を受信する前に停止しない。Tを、後者のイベントが発生するときの時刻とする。これらのメッセージのいくらかは悪意のプレーヤからのものであるかもしれないが、|MSVr,4|<tであるため、そのうちの少なくとも1つはHSVr,4内の誠実な検証者からのものであり、時刻T+tの後に送られる。したがって、
Figure 0006986519
であり、時刻Tまでに、プレーヤiはメッセージ
Figure 0006986519
も受信している。プロトコルの構築によって、プレーヤiは時刻β r,5=Tで何も伝播せずに停止し、
Figure 0006986519
を設定し、自分自身のCERTを0についての(r,4)メッセージおよび受信した
Figure 0006986519
の集合になるように設定する。
ステップs>5.
同様に、任意のステップs>5および任意の検証者i∈HSVr,sについて、プレーヤiは、時刻α r,s+tまで待っていた場合、HSVr,4内の検証者によって送られたすべてのメッセージを受信しているだろう。同じ分析により、プレーヤiは何も伝播せずに停止し、
Figure 0006986519
を設定する(また、自分自身のCERTを適切に設定する)。当然、悪意の検証者は停止しないこともあり、任意のメッセージを伝播するかもしれないが、|MSVr,s|<tであるため、帰納法により、他のv’が任意のステップ4≦s’<s内のt人の検証者によって署名され得るはずがなく、したがって、誠実な検証者のみが0についてのt個の有効な(r,4)メッセージおよび
Figure 0006986519
を受信しているので停止する。
ラウンドrブロックの再構築
ステップ5の分析を、一般の誠実なユーザiにほぼ何も変えずに適用する。実際、プレーヤiは自分自身のラウンドrを間隔Iで開始し、
Figure 0006986519
についてt個の有効な(r,4)メッセージを受信した時刻Tでのみ停止することになる。ここでも、これらのメッセージのうちの少なくとも1つは誠実な検証者からものであり、時刻T+tの後で送られるので、プレーヤiは時刻Tまでに
Figure 0006986519
も受信している。したがって、プレーヤiは、正規のCERT
Figure 0006986519
を設定する。
すべての誠実なユーザが自分のラウンドrを時間間隔Ir+1以内に終了することの証明のみが残っている。ステップ5の分析によって、すべての誠実な検証者i∈HSVr,5は、α r,5+t≦T+λ+t=T+8λ+Λに、またはその前にBを知っている。Tr+1は最初の誠実なユーザiがBを知るときであるため、所望の通り次の式になる。
Figure 0006986519
さらに、プレーヤiがBを知るとき、当該プレーヤiは既に自分のCERT内でメッセージの伝播を助けている。プレーヤiがそれを伝播する最初のプレーヤであった場合であっても、これらすべてのメッセージが時刻λ以内にすべての誠実なユーザによって受信されることに留意されたい。また、上記分析後、
Figure 0006986519
になり、そのため、すべての誠実なユーザは時刻Tr+1+λまでに
Figure 0006986519
を受信している。したがって、すべての誠実なユーザが、時間間隔Ir+1=[Tr+1,Tr+1+λ]でBを知る。
最後に、r=0について、実際に、T≦t+λ=6λ+Λになる。すべてを組み合わせると、補題5.2は成り立つ。
5.8 健全性の補題
補題5.3.
[健全性の補題、書き換え]
ラウンドr−1について性質1〜3が成り立つと仮定すると、リーダーlが悪意の場合、圧倒的確率で、すべての誠実なユーザは同じブロックBに合意し、Tr+1≦T+(6L+10)λ+Λで、すべての誠実なユーザは時間間隔Ir+1でBを知る。
証明 プロトコルの2つの部分、GCおよびBBA、を別々に検討する。
GC
帰納的仮説および補題5.5によって、任意のステップs∈{2,3,4}および任意の誠実な検証者i∈HSVr,sについて、プレーヤiが時刻β r,s=α r,s+tで行為するとき、ステップs’<sで、すべての誠実な検証者によって送られたすべてのメッセージを受信している。ステップ4について考えられる2つのケースを区別する。
ケース1:
どの検証者i∈HSVr,4もg=2を設定しない。
この場合、定義上、すべての検証者i∈HSVr,4についてb=1である。すなわち、当該すべての検証者はバイナリBAプロトコルで1に関する合意から始める。当該すべての検証者は自分のvに関して合意しないかもしれないが、これは、バイナリBAで述べる通り問題ではない。
ケース2:
Figure 0006986519
になるような検証者
Figure 0006986519
が存在する。
この場合、次のことを証明する。
(1)全i∈HSVr,4についてg≧1であり、
(2)全i∈HSVr,4についてv=v’になるような値v’が存在し、かつ、
(3)v’=H(B )になるような、ある検証者l∈SVr,1からの有効なメッセージm r,1が存在する。
実際、プレーヤ
Figure 0006986519
は誠実で、
Figure 0006986519
を設定するので、当該プレーヤが受信したすべての有効なメッセージm r,3の2/3超は同じ値v’≠⊥に関するものであり、当該プレーヤは
Figure 0006986519
を設定済みである。補題5.5の性質(d)によって、他の誠実な(r,4)検証者iについて、i’が受信したすべての有効なメッセージm r,3の2/3超が同じ値v”≠v’に関するものであるということはあり得ない。したがって、iがg=2を設定する場合、iは同じくv’についても>2/3過半数を見ていなければならず、所望のように、v=v’を設定しなければならない。
ここで、g<2で任意の検証者i∈HSVr,4を考える。補題5.5の性質(d)の分析と同様に、プレーヤ
Figure 0006986519
はv’について>2/3過半数を見ているので、
Figure 0006986519
を超える誠実な(r,3)検証者がv’に署名している。iは時刻β r,4=α r,4+tまでに誠実な(r,3)検証者によるすべてのメッセージを受信しているため、特にv’について当該検証者から
Figure 0006986519
を超えるメッセージを受信している。|HSVr,3|>2|MSVr,3|であるため、iはv’について>1/3過半数を見ている。したがって、プレーヤiはg=1を設定し、性質(1)は成り立つ。
プレーヤiは必ずv=v’を設定するのだろうか? プレーヤiがv”についても>1/3過半数を見たような、異なる値v”≠⊥が存在すると仮定する。これらのメッセージのうちのいくらかは悪意の検証者からのものかもしれないが、そのうちの少なくとも1つは、ある誠実な検証者j∈HSVr,3からのものである。実際、|HSVr,3|>2|MSVr,3|で、iはHSVr,3からすべてのメッセージを受信しているため、iが有効な(r,3)メッセージを受信した悪意の検証者の集合は、iが受信したすべての有効なメッセージの<1/3に値する。
定義上、プレーヤjは、受信したすべての有効な(r,2)メッセージの中うち、v”について>2/3過半数を見ていなければならない。しかし我々は、v’について何人かの他の誠実な(r,3)検証者が>2/3過半数を見たことを既に知っている(当該他の検証者がv’に署名したため)。補題5.5の性質(d)によって、これは起こり得ず、このような値v”は存在しない。したがって、プレーヤiは所望の通りv=v’を設定していなければならず、性質(2)が成り立つ。
最後に、v’について何人かの誠実な(r,3)検証者が>2/3過半数を見ているとすると、何人かの誠実な(r,2)検証者(実際にはその半分より多く)がv’について署名し、自分のメッセージを伝播している。プロトコルの構築により、その誠実な(r,2)検証者は、v’=H(B )であるプレーヤl∈SVr,1から有効なメッセージm r,1を受信していなければならず、したがって、性質(3)が成り立つ。
BBA
ここでも2つのケースを区別する。
ケース1 すべての検証者i∈HSVr,4はb=1になる。
これは、GCのケース1の後に起こる。|MSVr,4|<tであるため、この場合、SVr,5内の検証者は、ビット0についてt個の有効な(r,4)メッセージを収集または生成することはできないであろう。したがって、HSVr,5内の誠実な検証者は、空ではないブロックBを知っているため停止しないであろう。
また、ビット1については少なくともt個の有効な(r,4)メッセージがあるが、s’=5はs’−2≡1 mod 3を満たさないので、HSVr,5内の誠実な検証者は、B=Bε を知っているため停止しないであろう。
代わりに、すべての検証者i∈HSVr,5が時刻β r,5=α r,5+tで行為し、そのときまでに当該検証者は補題5.5の後にHSVr,4によって送られたすべてのメッセージを受信している。したがって、プレーヤiは1について>2/3過半数を見ており、b=1を設定する。
コインを1に固定するステップであるステップ6では、s’=5はs’−2≡0 mod 3を満たすが、ビット0についてt個の有効な(r,4)メッセージは存在せず、そのため、HSVr,6内の検証者は、空ではないブロックBを知っているため停止しないであろう。しかし、s’=6のときは、s’−2≡1 mod 3で、HSVr,5からのビット1についての|HSVr,5|≧t個の有効な(r,5)メッセージが存在する。
すべての検証者i∈HSVr,6について、補題5.5の後に、時刻α r,6+tで、またはその前に、プレーヤiはHSVr,5からすべてのメッセージを受信しており、そのためiは何も伝播せずに停止して、B=Bε を設定する。当該検証者iのCERTは、当該検証者iが停止するときに受信したt個の有効な(r,5)メッセージm r,5=(ESIG(1),ESIG(v),σ r,5)の集合である。
次に、プレーヤiを、ステップs>6の誠実な検証者または一般の誠実なユーザ(つまり、非検証者)のいずれかにする。補題5.2の証明と同様に、プレーヤiはB=Bε を設定し、自分自身のCERTを、自分が受信しているt個の有効な(r,5)メッセージm r,5=(ESIG(1),ESIG(v),σ r,5)の集合に設定する。
最後に、補題5.2と同様に、
Figure 0006986519
で、Bを知っている最初の誠実なユーザiが自分のCERTで(r,5)メッセージの伝播を助けたため、すべての誠実なユーザは時間間隔Ir+1でBを知っている。
ケース2
Figure 0006986519
で検証者
Figure 0006986519
は存在する。
これは、GCのケース2の後に起こり、より複雑なケースである。GCの分析により、この場合、すべてのi∈HSVr,4についてv=H(B )になるような有効なメッセージm r,1が存在する。HSVr,4の検証者は、当該検証者のbに関して合意しないかもしれないことに留意されたい。
任意のステップs∈{5,...,m+3}で、検証者i∈HSVr,sについて、補題5.5により、プレーヤiは、時間t待った場合、HSVr,4∪...∪HSVr,s−1のすべての誠実な検証者によって送られたすべてのメッセージを受信しているだろう。
ここで、次のイベントEを検討する。すなわち、バイナリBAで初めて、あるプレーヤ
Figure 0006986519
(悪意か誠実かを問わない)が何も伝播せずに停止するようなステップs≧5が存在する。「停止するような」という言葉を使用するのは、プレーヤiが悪意の場合、プロトコルに従って停止しないようなふりをし、敵対者が選んだメッセージを伝播するかもしれないという事実を強調するためである。
また、プロトコルの構築により、次のいずれかになる。
(E,a)iは、5≦s’≦s、かつ、s’−2≡0 mod 3で、同じvおよびs’について少なくともt個の有効なメッセージm r,s’−1=(ESIG(0),ESIG(v),σ r,s’−1)を収集または生成することができる、または、
(E.b)iは、6≦s’≦s、かつ、s’−2≡1 mod 3で、同じs’について少なくともt個の有効なメッセージm r,s’−1=(ESIG(1),ESIG(v),σ r,s’−1)を収集または生成することができる。
誠実な(r,s’−1)メッセージは、すべての誠実な(r,s’)検証者がステップs’で待機を終える前に受信されるため、また敵対者は誠実なユーザより遅れることなくすべてを受信するため、一般性を損なうことなく、s’=s、かつ、プレーヤiが悪意になる。我々が、E.aの値vが有効なブロックのハッシュであることを要求しなかったことに留意されたい。これは、分析で明らかになるように、このサブイベントではv=H(B )である。
以下に、まず、イベントEの後のケース2を分析し、次いでsの値が本質的にLに従い分散されることを証明する(このように、パラメータの関係があるとすると、イベントEは圧倒的確率でステップm+3の前に起こる)。始めに、任意のステップ5≦s<sについて、すべての誠実な検証者i∈HSVr,sは時間t待って、受信した有効な(r,s−1)メッセージの過半数票になるようにvを設定する。プレーヤiは補題5.5の後のすべての誠実な(r,s−1)メッセージを受信しているため、および、HSVr,4内のすべての誠実な検証者はGCのケース2の後でH(B )に署名しているため、および、各sについて|HSVr,s−1|>2|MSVr,s−1|であるため、帰納法により、プレーヤiが
Figure 0006986519
を設定したことになる。
何も伝播せずに停止しないすべての誠実な検証者
Figure 0006986519
について、同じことがいえる。ここで、ステップsを検討し、4つのサブケースを区別する。
ケース2.1.a イベントE.aが起こり、何も伝播せずにやはり停止するような誠実な検証者
Figure 0006986519
が存在する。
この場合、s−2≡0 mod 3になり、ステップsは、コインを0に固定するステップである。
定義上、プレーヤi’は形式
Figure 0006986519
の少なくともt個の有効な(r,s−1)メッセージを受信している。
Figure 0006986519
内のすべての検証者はH(B )に署名しており、
Figure 0006986519
であるため、v=(B )になる。
i’が0およびvについて受信した(r,s−1)メッセージのうち少なくとも
Figure 0006986519
は、時間
Figure 0006986519
の後に
Figure 0006986519
内の検証者によって送られるため、プレーヤi’は、それらの(r,s−1)メッセージを受信する時刻までにm r,1を受信している。したがって、プレーヤi’は何も伝播せずに停止し、B=B を設定し、自分自身のCERTを、自分が受信した0およびvについての有効な(r,s−1)メッセージの集合になるように設定する。
次に、任意の他の検証者
Figure 0006986519
がB=B で停止し、またはb=0を設定して(ESIG(0),ESIG(H(B )),σ r,s)を伝播していることを証明する。実際、ステップsは、ある検証者が何も伝播せずに停止するような初回であるため、t人の(r,s’−1)検証者が1を署名したような、s’−2≡1 mod 3となるステップs’<sは存在しない。したがって、B=Bε で停止する、
Figure 0006986519
内の検証者はいない。
また、ステップ{4,5,...,s−1}のすべての誠実な検証者はH(B )に署名しているため、t人の(r,s’−1)検証者が何らかのv”≠H(B )に署名したような、s’−2≡0 mod 3となるステップs’≦sは存在しない。実際、|MSVr,s’−1|<tである。したがって、B≠Bε およびB≠B で停止する、
Figure 0006986519
内の検証者はいない。すなわち、プレーヤ
Figure 0006986519
は、何も伝播せずに停止した場合、B=B を設定していなければならない。プレーヤ
Figure 0006986519
は、時間t待ち、時刻
Figure 0006986519
でメッセージを伝播した場合、0およびvについてそのうちの少なくとも
Figure 0006986519
を含め、
Figure 0006986519
からのすべてのメッセージを受信している。iは、1について>2/3過半数を見ている場合、1について
Figure 0006986519
より多くの有効な(r,s−1)メッセージを見ており、そのうちの
Figure 0006986519
は誠実な(r,s−1)検証者からのものである。しかし、このことは
Figure 0006986519
を含意し、パラメータの関係から得られる
Figure 0006986519
の事実と矛盾する。したがって、iは1については>2/3過半数を見ずに、ステップsがコインを0に固定するステップであるため、b=0を設定する。見てきたように、v=H(B )である。したがって、証明したかった通り、iは(ESIG(0),ESIG(H(B )),σ r,s)を伝播する。
ステップs+1について、プレーヤi’は時刻
Figure 0006986519
で、またはその前に、自分のCERTでメッセージの伝播を助けたため、
Figure 0006986519
内のすべての誠実な検証者は、待機を終わらせるとき、またはそれ以前にビット0および値H(B )について少なくともt個の有効な(r,s−1)メッセージを受信している。さらに、
Figure 0006986519
内の検証者は、ステップsの定義上、s’−2≡1 mod 3、かつ、6≦s’≦s+1となる、ビット1について任意の他のt個の有効な(r,s−1)メッセージが存在しないため、その(r,s−1)メッセージを受信する前には停止しない。具体的には、ステップs+1自体はコインを1に固定するステップであるが、1についてメッセージを伝播した
Figure 0006986519
内の誠実な検証者はいないので、
Figure 0006986519
である。このように、
Figure 0006986519
内のすべての誠実な検証者は何も伝播せずに停止し、B=B を設定する。前述の通り、当該誠実な検証者は、所望の(r,s−1)メッセージを受信する前に、m r,1を受信している(脚注24参照)。その後のステップのすべての誠実な検証者、および一般にすべての誠実なユーザについても同じことがいえる。具体的には、当該誠実なユーザは全員、時間間隔Ir+1以内にB=B を知り、
Figure 0006986519
である。
脚注24
lが悪意の場合、いく人かの誠実なユーザ/検証者がm r,1のために望ましい証明書を受信するときにまだ当該m r,1を受信していないことを望んで、当該悪意のlは、m r,1を遅れて送るかもしれない。しかし、検証者
Figure 0006986519


Figure 0006986519
および
Figure 0006986519
を設定しているため、前述の通り、誠実な検証者i∈HSVr,3の半分より多くがv=H(B )を設定していることになる。これはさらに、誠実な検証者i∈HSVr,2の半分より多くがv=H(B )を設定しており、その(r,2)検証者が全員m r,1を受信していることを含意する。具体的には、これら全(r,2)検証者はそのステップ2の最後にm r,1の伝播を助けている。それ以降、m r,1が残りの誠実なユーザに届くためかかる時間は、たかだかΛ時間である。すべての誠実なユーザが互いに時間λ以内にそのステップ2を停止し、検証者i’がステップs≧5で停止するとき、最後の誠実な(r,2)検証者が自分のステップ2を停止する時刻から、i’が自分のステップsを停止する時刻まで、少なくともt−t−λ−3λ時間が経過している。Λ≦4λのとき、m r,1が、ステップ2を停止する最後の人であった(r,2)検証者によって当初伝播されたものであったとしても、すべての誠実なユーザは,
検証者v’が停止した後のλ時間内にm r,1を受信している。現実には、誠実な(r,2)検証者のうちの半分より多くがm r,1の伝播を助けているため、それがすべての誠実なユーザに届くための実際の時間はΛよりも短い。
ケース2.1.b:
イベントE.bが起こり、何も伝播せずにやはり停止するような誠実な検証者
Figure 0006986519
が存在する。
この場合、s−2≡1 mod 3になり、ステップsは、コインを1に固定するステップである。分析はケース2.1.aと同様であるため、多くの詳細を省略した。
前述の通り、プレーヤi’は、形式
Figure 0006986519
の少なくともt個の有効な(r,s−1)メッセージを受信していなければならない。ここでも、sの定義上、少なくともt人の(r,s’−1)検証者が0および同じvに署名している場合、s’−2≡0 mod 3となるステップ5≦s’<sは存在しない。したがって、プレーヤi’は何も伝播せずに停止し、B=Bε を設定し、自分自身のCERTを、自分が受信したビット1についての有効な(r,s−1)メッセージの集合になるように設定する。
さらに、任意の他の検証者
Figure 0006986519
がB=Bε で停止し、またはb=1を設定して
Figure 0006986519
を伝播している。プレーヤi’は、時刻
Figure 0006986519
まで自分のCERTで(r,s−1)メッセージの伝播を助けていたため、ここでも
Figure 0006986519
内のすべての誠実な検証者は何も伝播せずに停止し、B=Bε を設定する。同様に、すべての誠実なユーザは時間間隔Ir+1以内にB=Bε を知り、
Figure 0006986519
である。
ケース2.2.a:
イベントE.aが起こり、何も伝播せずにやはり停止するような誠実な検証者
Figure 0006986519
は存在しない。
この場合、プレーヤiは、敵対者が収集または生成することのできるt個の所望の(r,s−1)メッセージからなる有効な
Figure 0006986519
を持つおそれがあるだろう。しかし、悪意の検証者はこれらのメッセージの伝播を助けられないので、誠実なユーザが時間λでそれを受信すると結論づけることはできない。事実、それらのメッセージのうちの
Figure 0006986519
は、自分のメッセージを全く伝播せずに、それをステップsで悪意の検証者にしか送信しなかった悪意の(r,s−1)検証者からのものであるかもしれない。
ケース2.1.aと同様に、ここではs−2≡0 mod 3で、ステップsは、コインを0に固定するステップであり、
Figure 0006986519
内の(r,s−1)メッセージはビット0についてであり、v=H(B )となる。実際、すべての誠実な(r,s−1)検証者はvに署名し、したがって敵対者は異なるv’についてt個の有効な(r,s−1)メッセージを生成することはできない。
また、すべての誠実な(r,s)検証者は時間t待っており、ここでも
Figure 0006986519
であるため、ビット1について>2/3過半数を見ない。このように、すべての誠実な検証者
Figure 0006986519
は過半数票によってb=0、v=H(B )を設定し、時刻
Figure 0006986519

Figure 0006986519
を伝播する。
ここで、ステップs+1(これは、コインを1に固定するステップである)の誠実な検証者を検討する。敵対者が実際に
Figure 0006986519
のメッセージを誠実な検証者のいく人かに送り、当該誠実な検証者らを停止させる場合、ケース2.1.aと同様に、すべての誠実なユーザは時間間隔Ir+1以内にB=B を知り、
Figure 0006986519
である。
そうでなければ、ステップs+1のすべての誠実な検証者は、時間
Figure 0006986519
待った後、
Figure 0006986519
から0およびH(B )についてのすべての(r,s)メッセージを受信しているが、これは、
Figure 0006986519
であるため、>2/3過半数になる。このように、
Figure 0006986519
内のすべての検証者は、それに応じて0およびH(B )についての自分のメッセージを伝播する。
Figure 0006986519
内の検証者は、ステップs+1がコインを0に固定するステップではないため、B=B で停止しないことに留意されたい。
ここで、ステップs+2(これは実際にコインを投げるステップである)の誠実な検証者を検討する。敵対者が
Figure 0006986519
のメッセージを誠実な検証者のいく人かに送り、当該誠実な検証者らを停止させる場合、ここでも、すべての誠実なユーザは時間間隔Ir+1以内にB=B を知り、
Figure 0006986519
である。
そうでなければ、ステップs+2のすべての誠実な検証者は、時間
Figure 0006986519
待った後、
Figure 0006986519
から0およびH(B )についてのすべての(r,s+1)メッセージを受信しているが、これは>2/3過半数になる。このように、その全員がそれに応じて0およびH(B )についての自分のメッセージを伝播する。すなわち、この場合は「コインを投げ」ない。ここでも、当該すべての検証者は、ステップs+2がコインを0に固定するステップではないため、伝播せずに停止しないことに留意されたい。
最後に、ステップs+3(これは別の、コインを0に固定するステップである)の誠実な検証者について、当該誠実な検証者が本当に時間
Figure 0006986519
待つ場合、その全員が
Figure 0006986519
から0およびH(B )について少なくともt個の有効なメッセージを受信しているだろう。したがって、敵対者が
Figure 0006986519
のメッセージを誠実な検証者のいずれかに送るかどうかを問わず、
Figure 0006986519
のすべての検証者は、何も伝播せずに、B=B で停止する。敵対者がどのように行為するかによって、そのうちのいく人かが
Figure 0006986519
の(r,s−1)メッセージからなる自分自身のCERTを持ち、他の人は(r,s+2)メッセージからなる自分自身のCERTを持つかもしれない。いずれの場合も、すべての誠実なユーザは時間間隔Ir+1以内にB=B を知り、
Figure 0006986519
である。
ケース2.2.b:
イベントE.bが起こり、何も伝播せずにやはり停止するような誠実な検証者
Figure 0006986519
は存在しない。
この場合の分析はケース2.1.bおよびケース2.2.aと同様なため、多くの詳細を省略した。具体的には、
Figure 0006986519
は、敵対者が収集または生成することのできる、ビット1についてのt個の所望の(r,s−1)メッセージからなり、s−2≡1 mod 3で、ステップsはコインを1に固定するステップであり、誠実な(r,s)検証者は0について>2/3過半数を見ることができなかったであろう。
したがって、すべての検証者
Figure 0006986519
はb=1を設定して、時刻
Figure 0006986519

Figure 0006986519
を伝播する。ケース2.2.aと同様に、たかだかさらに3ステップで(すなわち、プロトコルがステップs+3に到達し、これは別の、コインを1に固定するステップである)、すべての誠実なユーザは時間間隔Ir+1以内にB=Bε を知る。また、Tr+1は、初めて誠実な検証者が伝播せずに停止することのできるときによって、
Figure 0006986519
、または
Figure 0006986519
、または
Figure 0006986519
のいずれかにすることができる。
4つのサブケースを組み合わせると、すべての誠実なユーザは時間間隔Ir+1以内にBを知り、
ケース2.1.aおよび2.1.bでは
Figure 0006986519
、ならびに
ケース2.2.aおよび2.2.bでは
Figure 0006986519
である。
に、ひいてはケース2のTr+1に、上限を設けることが残っており、実際にコインを投げるステップを、プロトコルで実際に何回実行するか、すなわち、いく人かの誠実な検証者が実際にコインを投げた回数、を検討することによってこれを行う。
具体的には、実際にコインを投げるステップs’を任意に決め(すなわち、7≦s’≦m+2、かつ、s’−2≡2 mod 3)、
Figure 0006986519
とする。ここで、s’<sと仮定しよう。そうでなければ、前述の考察に従いステップs’で誠実な検証者が実際にコインを投げないからである。
SVr,s’−1の定義上、l’のクレデンシャルのハッシュ値も、PKr−kの全ユーザの中で最小である。ハッシュ関数はランダムオラクルであるため、理想としては、プレーヤl’は少なくともhの確率で誠実である。後で示すように、敵対者がランダムオラクルの出力を予測し、確率を有利にしようと最善を尽くしても、プレーヤl’はなお、少なくともp=h(1+h−h)の確率で誠実である。以下に、それが実際に起こる場合、すなわちl’∈HSVr,s’−1を検討する。
すべての誠実な検証者i∈HSVr,s’は時刻α r,s’+ts’までにHSVr,s’−1からすべてのメッセージを受信していることに留意されたい。プレーヤiがコインを投げる必要がある場合(すなわち、プレーヤiが、同じビットb∈{0,1}について>2/3過半数を見ていない)、プレーヤiはb=lsb(H(σl’ r,s’−1))を設定する。ビットb∈{0,1}について>2/3過半数を見た別の誠実な検証者i’∈HSVr,s’が存在する場合、補題5.5の性質(d)により、HSVr,s’内の誠実な検証者はビットb’≠bについて>2/3過半数を見なかったであろう。確率1/2で、lsb(H(σl’ r,s’−1))=bであるため、HSVr,s’内のすべての誠実な検証者は、確率1/2でbに関して合意に達する。当然、このような検証者i’が存在しない場合、HSVr,s’内のすべての誠実な検証者は、確率1でビットlsb(H(σl’ r,s’−1))に合意する。
l’∈HSVr,s’−1の確率を組み合わせると、HSVr,s’内の誠実な検証者は、少なくとも
Figure 0006986519
の確率でビットb∈{0,1}に関して合意に達することになる。さらに、前述の通りの過半数票に関する帰納法により、HSVr,s’内のすべての誠実な検証者は、自分のvの集合をH(B )に設定する。したがって、一旦ステップs’でbに関して合意に達したら、Tr+1は、ケース2.1.aおよび2.1.bの分析に従い、b=0またはb=1であるかどうかによって、
Figure 0006986519
または
Figure 0006986519
のいずれかである。
具体的には、実際にコインを投げるステップはこれ以上実行されない。すなわち、このようなステップの検証者は、自分が検証者であることをなおもチェックし、したがって待つが、何も伝播せずに全員が停止する。したがって、ステップsの前に、実際にコインを投げるステップが実行される回数はランダム変数Lに従って分散される。Lに従って、ステップs’を、最後の実際にコインを投げるステップにすると、プロトコルの構築により、次の式になる。
Figure 0006986519
敵対者ができるだけTr+1を遅らせたい場合、敵対者はいつステップsを起こすべきだろうか? 敵対者が事前にLの実現を知ると仮定することもできる。s>s’の場合、誠実な検証者は既にステップs’で合意に達しているため、無駄である。確かに、この場合、ここでもb=0かb=1かによって、sはs’+1またはs’+2になるであろう。しかし、これは実際にはケース2.1.aおよび2.1.bであり、得られるTr+1はその場合と全く同じである。より正確には、
Figure 0006986519
である。
<s’−3の場合、すなわち、sが、最後から2番目の実際にコインを投げるステップの前である場合、ケース2.2.aおよび2.2.bの分析により、
Figure 0006986519
である。
すなわち、敵対者は、実際にBに関する合意をより早く起こそうとしている。
=s’−2またはs’−1の場合、すなわち、ステップs’の直前の、コインを0に固定するステップまたはコインを1に固定するステップの場合、4つのサブケースの分析により、ステップs’の誠実な検証者は、伝播せずに停止しているため、または同じビットbについて>2/3過半数を見ているため、それ以上コインを投げることはない。そのため、次の式になる。
Figure 0006986519
要するに、sが何であろうと、証明したかった通り、次の式になる。
Figure 0006986519
最悪のケースは、s=s’−1で、ケース2.2.bが起こる場合である。バイナリBAプロトコルのケース1および2を組み合わせると、補題5.3が成り立つ。
5.9 シードQのセキュリティおよび誠実なリーダの確率
補題5.4の証明が残っている。ラウンドrの検証者はPKr−kから選択され、数量Qr−1に従って選ばれることを思い出していただきたい。ルックバックパラメータkを導入する理由は、ラウンドr−kに戻って、敵対者が新たな悪意のユーザをPKr−kに追加することができる場合に、無視できる確率を除いて、数量Qr−1を敵対者が予測することができないことを確かにすることである。ハッシュ関数はランダムオラクルであり、Qr−1は、ラウンドrの検証者を選択するときのその入力の1つであることに留意されたい。したがって、悪意のユーザがPKr−kにいかに追加されようとも、敵対者の観点から、その各人は、必要な確率p(またはステップ1についてはp)で、ラウンドrのステップでも検証者に選択される。より正確には、次の補題となる。
補題5.6.
k=O(log1/2F)のとき、各ラウンドrについて、敵対者は圧倒的確率で、ラウンドr−kに戻ってQr−1をランダムオラクルに問い合わせなかった。
証明.帰納法によって進める。各ラウンドγ−kについて、敵対者がラウンドγ−kに戻ってQγ−1ランダムオラクルに問い合わせなかったと仮定する。(脚注25参照)ラウンドr−kで敵対者が仕掛ける次の心理戦を検討し、Qr−1を予測してみる。
脚注25
kは小さな整数であり、一般性を損なうことなく、プロトコルの最初のkラウンドは安全な環境で実行され、そのラウンドについて帰納的仮説が成り立つと仮定することができる。
各ラウンドγ=r−k,...,r−1のステップ1で、特定のQγ−1がランダムオラクルに問い合わされていないとすると、プレーヤi∈PKγ−kをハッシュ値H(SIG(γ,1,Qγ−1))に従って昇順に並べることによって、PKγ−kに対しランダム順列を得る。定義上、リーダーlγは順列の最初のユーザであり、確率hで誠実である。また、PKγ−kが十分に大きい場合、任意の整数x≧1について、順列の最初のxユーザが全員悪意であるが(x+1)番目は誠実である確率は(1−h)hである。
γが誠実である場合、
Figure 0006986519
である。敵対者はlγの署名を偽造することはできないので、Qγは敵対者の観点からランダムに均一に分散され、指数関数的に小さい確率を除き(脚注26参照)、ラウンドr−kでHに問い合わせがなされなかった。各Qγ+1,Qγ+2,...,Qr−1はそれぞれHの出力で、Qγ,Qγ+1,...,Qr−2は入力の1つになるので、これらはすべて敵対者にとってはランダムに見え、敵対者はラウンドr−kでHにQr−1を問い合わせることはできなかったであろう。
脚注26
すなわち、Hの出力の長さの指数関数。この確率はFよりもはるかに小さいことに留意されたい。
したがって、敵対者がラウンドr−kで良い確率でQr−1を予測できる唯一のケースは、リーダーlr−k,...,lr−1が全員悪意であるときである。もう一度、ラウンドγ∈{r−k,...,r−1}と、対応するハッシュ値によって導かれるPKγ−kに対するランダム順列とを検討する。あるx≧2について、順列の最初のx−1ユーザが全員悪意で、x番目が誠実である場合、敵対者は、Qγについてx個の可能な選択肢を有する。:すなわち、プレーヤi(iは、最初のx−1悪意のユーザのうちの1人である)をラウンドγの実際のリーダーにすることによる、形式H(SIG(Qγ−1,γ))、または、Bγ=Bε γに強制することによる、H(Qγ−1,γ)、のいずれかである。そうでなければ、ラウンドγのリーダーは順列で最初の誠実なユーザになり、Qr−1は敵対者に予測できなくなってくる。
敵対者は、Qγの上記xの選択肢のうちのどちらを追求すべきだろうか? 敵対者がこの質問に答えるのを助けるために、心理戦で、現実にそうであるよりも実際に、次のように敵対者をよりパワフルにする。まず、現実では、敵対者は誠実なユーザの署名のハッシュを計算することはできず、したがって、各Qγについて、Qγによって導かれるラウンドγ+1のランダム順列の始めに悪意のユーザの数x(Qγ)を決定することはできない。心理戦では、敵対者に数x(Qγ)を自由に与える。次に、現実では、順列の最初のxユーザを全員悪意にすることは、その署名のハッシュ値もp未満にならなければならないので、全員がリーダーになることができることを必ずしも意味しない。心理戦におけるこの制約を無視し、敵対者をさらに有利にした。
心理戦で、敵対者にとって最適な、
Figure 0006986519
で表される選択肢は、ラウンドγ+1のランダム順列の始めに、最長の悪意のユーザのシーケンスを生成するものであることは容易に分かる。実際、具体的なQγがあれば、プロトコルはそれ以上Qγ−1に依存せず、敵対者はラウンドγ+1の新たな順列にのみ集中することができ、これは、始まりの悪意のユーザの数について同じ分布を有する。したがって、各ラウンドγでは、前述の
Figure 0006986519
は当該敵対者にQγ+1に対する最大数の選択肢を与え、そのため、後続のリーダーが全員悪意である確率を最大化する。
したがって、心理戦では、敵対者はラウンドr−kからラウンドr−1までマルコフ連鎖を得られることになり、状態空間は{0}∪{x:x≧2}である。状態0は、現ラウンドγのランダム順列の最初のユーザが誠実であることを表し、したがって、敵対者はQr−1を予測するゲームに負ける。そして、各状態x≧2は、順列の最初のx−1ユーザが悪意であり、x番目が誠実であることを表すため、敵対者はQγについてx個の選択肢を有する。遷移確率P(x,y)は次の通りである。
・P(0,0)=1で、任意のy≧2についてP(0,y)=0。すなわち、順列の最初のユーザが誠実になってしまうと、敵対者はゲームに負ける。
・任意のx≧2についてP(x,0)=h。すなわち、確率hで、すべてのxランダム順列はその最初のユーザを誠実にするので、敵対者は次のラウンドでゲームに負ける。
・任意のx≧2およびy≧2について、P(x,y)は、Qγのx選択肢によって導かれるxランダム順列の中で、そのうちのいくつかの始まりで悪意のユーザの最長シーケンスがy−1である、したがって敵対者が次のラウンドでQγ+1についてy選択肢を有する確率である。すなわち、
Figure 0006986519
になる。
状態0は、遷移行列Pにおける唯一の吸収状態であり、他のすべての状態xは、0になる正の確率を有することに留意されたい。我々は、圧倒的確率でマルコフ連鎖が0に収束するために必要なラウンド数kに上限を設けたいと思っている。すなわち、チェーンがどの状態で始まっても、圧倒的確率で、敵対者はゲームに負け、ラウンドr−kでQr−1の予測に失敗する。
2ラウンド後の遷移行列
Figure 0006986519
を考えてみる。P(2)(0,0)=1で、任意のx≧2についてP(2)(0,x)=0であることは簡単に分かる。任意のx≧2およびy≧2について、P(0,y)=0であるため、次の式になる。
Figure 0006986519
Figure 0006986519
とすると、次の式になる。
Figure 0006986519
また、
Figure 0006986519
である。
以下に、hが1になるとき、すなわち
Figure 0006986519
が0になるときの
Figure 0006986519
の限界を計算する。P(x,y)において
Figure 0006986519
の最も高い次数は係数xで
Figure 0006986519
であることに留意されたい。したがって、
Figure 0006986519
になる。
hが1に十分に近いとき(脚注27参照)、任意のx≧2およびy≧2については次の式になる。
Figure 0006986519
帰納法により、任意のk>2について、
Figure 0006986519
は、次のようになるものである。
・P(k)(0,0)=1で、任意のx≧2についてP(k)(0,x)=1、かつ、
・任意のx≧2およびy≧2について、
Figure 0006986519
脚注27
例えば、パラメータの特定の選択肢によって提案されるように、h=80%。
P(x,y)≦1のとき、1−logFラウンドの後、任意の状態x≧2で始めて、任意の状態y≧2になる遷移確率は無視できる。このような状態yは多数あるが、次の式になることは簡単に分かる。
Figure 0006986519
そのため、遷移行列Pの各行xは、yが十分に大きいとき、等比数列として、
Figure 0006986519
の比で減少し、P(k)についても同じことがいえる。したがって、kは十分に大きいが、任意のx≧2についてまだおよそlog1/2F,Σy≧2(k)(x,y)<Fである。すなわち、圧倒的確率で、敵対者はゲームに負け、ラウンドr−kでQr−1の予測に失敗する。h∈(2/3,1)について、より複雑な分析から、k=O(logF)をとると十分であるような、1/2よりやや大きい定数Cが存在することが証明される。したがって、補題5.6は成り立つ。
補題5.4.(書き換え)
rの前の各ラウンドについて性質1〜3であれば、Lについてはp=h(1+h−h)で、リーダーlは少なくともpの確率で誠実である。
証明.
補題5.6に従い、敵対者は、無視できる確率を除き、ラウンドr−kに戻ってQr−1を予測することはできない。これは、誠実なリーダーの確率が各ラウンドでhであるという意味ではないことに留意されたい。実際、Qr−1であれば、PKr−kのランダム順列の始めに存在する悪意のユーザの数によって、敵対者はQに対して2つ以上の選択肢を有することがあり、そのため、ラウンドr+1における悪意のリーダーの確率を高めることができる。ここでも、補題5.6のように、分析を簡潔にするために、ある非現実的なアドバンテージを敵対者に与えている。
しかし、ラウンドr−kに戻って敵対者がHに問い合わせなかった各Qr−1について、任意のx≧1について、確率(1−h)x−1hで、得られるPKr−kのランダム順列において、最初の誠実なユーザは位置xで発生する。x=1のとき、ラウンドr+1における誠実なユーザの確率は実際にhであるが、x=2のとき、敵対者はQに対して2つの選択肢を有し、得られる確率はhである。これら2つのケースを検討して初めて、ラウンドr+1における誠実なリーダーの確率が、所望の通り少なくともh・h+(1−h)h・h=h(1+h−h)になる。
上記確率は、ラウンドr−kからラウンドrまでのプロトコルのランダム性しか考慮していないことに留意されたい。ラウンド0からラウンドrまでのすべてのランダム性を考慮する場合、Qr−1は敵対者にとってさらに予測できないものになり、ラウンドr+1における誠実なリーダーの確率は、少なくともh(1+h−h)である。r+1をrに置換し、すべてを1ラウンド戻すと、リーダーlは、所望の通り、少なくともh(1+h−h)の確率で誠実である。
同様に、各実際にコインを投げるステップsで、そのステップの「リーダー」、すなわち、そのクレデンシャルが最小のハッシュ値を有するSVr,s内の検証者は、少なくともh(1+h−h)の確率で誠実である。したがって、Lについてp=h(1+h−h)であり、補題5.4は成り立つ。
6 アルゴランド’
このセクションでは、次の仮定の下に機能するアルゴランド’のバージョンを構築する。
「ユーザの誠実な過半数の仮定」:各PKのユーザの2/3超が誠実である。
セクション8では、上記仮定を、所望の「マネーの誠実な過半数」に置き換える方法を示す。
6.1 アルゴランド’の追加の記号およびパラメータ
記号

Figure 0006986519
:圧倒的確率で1ラウンドで実際に取られるステップ数に対する、現実的な上限。(後で述べるように、パラメータμは、各ラウンドのためにユーザが事前に準備する一時的な鍵の数を制御する。)
・L:各試行が
Figure 0006986519
の確率で1になり、1を見るために必要なベルヌーイ試行の数を表すランダム変数。Lは、ブロックBを生成するために必要な時間に上限を設けるために使用される。
・t:圧倒的確率(nおよびpがあるとすると)で、SVr,s内に>tの誠実な検証者がいるような、ラウンドrのステップs>1における誠実な検証者の数の下限。
パラメータ
・様々なパラメータ間の関係。
−ラウンドrの各ステップs>1について、nは、圧倒的確率で、
Figure 0006986519
かつ
Figure 0006986519
になるように選ばれる。
上記2つの不等式は合わせて、|HSVr,s|>2|MSVr,s|を含意する。すなわち、選択された検証者の中に2/3の誠実な過半数がいる。
hの値が1に近づくほど、nは小さくなる必要がある。具体的には、チェルノフ限界(の変型)を使用して、所望の条件が圧倒的確率で成り立つことを確実にする。
・重要なパラメータの具体的な選択肢。
− F=10−18
− n≒4000、t≒0.69n、k=70。
6.2 アルゴランド’での一時的な鍵の実装
検証者i∈SVr,sが、使用後直ちに破壊する一時的な秘密鍵sk r,sを使用して、一時的な公開鍵pk r,sに関連し、ラウンドrのステップsの自分のメッセージm r,sに電子署名をすることを思い出そう。ラウンドが取り得る可能なステップの数に所与の整数μによって上限が設けられる場合、実際に一時的な鍵をどのように取り扱うかは既に見てきた。例えば、アルゴランド’で説明したように(μ=m+3の場合)、ラウンドr’からラウンドr’+10まで、自分の可能な一時的な鍵のすべてを取り扱うために、iはペア(PMK,SMK)を生成する。ここで、PMKはアイデンティティベースの署名スキームの公開マスター鍵であり、SMKはそれに対応する秘密マスター鍵である。ユーザiは、PMKを公表し、各可能な一時的な公開鍵の秘密鍵を生成するためにSMKを使用する(さらに、そうした後にSMKを破壊する)。関連するラウンドのiの一時的な公開鍵の集合はS={i}×{r’,...,r’+10}×{1,...,μ}である。(述べたように、ラウンドr’+10が近づくと、iは自分のペア(PMK,SMK)を「リフレッシュ」する。)
実際には、μが十分に大きい場合、アルゴランド’のラウンドはμより多いステップを取らない。しかし、原則的に、あるラウンドrについて、実際に取られるステップ数がμを超える可能性がわずかにある。これが起こると、iはラウンドrについてμ個の秘密鍵しか事前に準備していないので、iは任意のステップs>μについて自分のメッセージm r,sに署名できなくなるであろう。また、前述したように、一時的な鍵の新たな隠し場所を準備して公表することはできないであろう。実際、そうするためには、iは新たなブロックに新たな公開マスターキーPMK’を挿入する必要があるだろう。しかし、万が一ラウンドrがさらに多くのステップを取ったとしても、新たなブロックは生成されないだろう。
ただし、解決策は存在する。例えば、iは、次の通り、ラウンドrの最後の一時的な鍵pk r,μを使用することができる。ラウンドrについて、例えば、(1)別のマスター鍵ペア
Figure 0006986519
を生成する、(2)このペアを使用して、ラウンドrのステップμ+1,...,μ+10に対応する別の、例えば、10個の一時的な鍵
Figure 0006986519
を生成する、(3)sk r,μを使用して、pk r,μに関連して、
Figure 0006986519
(および、i∈SVr,μの場合、任意の(r,μ)メッセージ)に電子署名する、および(4)
Figure 0006986519
およびsk r,μを消去することによって、鍵ペアの別の隠し場所を生成する。s∈{1,...,10}のとき、iがステップμ+sで検証者になる場合、iは自分の新たな鍵
Figure 0006986519
に関連して、自分の(r,μ+s)メッセージm r,μ+sに電子署名する。当然、iのこの署名を検証するために、この公開鍵がiの新たな公開マスター鍵
Figure 0006986519
に対応することを他者が確信する必要がある。したがって、この署名に加えて、iはpk r,μに関連して、
Figure 0006986519
の電子署名を伝送する。
当然、ラウンドrがさらに多くのステップの間続く場合、このアプローチは、必要な回数繰り返すことができる! 最後の一時的な秘密鍵を使用して新たなマスター公開鍵を認証し、したがって、ラウンドrの一時的な鍵の別の隠し場所を認証する。以降も同様。
6.3 実際のプロトコルアルゴランド’
ラウンドrの各ステップsで、検証者i∈SVr,sは、ケースs=1のSIG(Qr−1)だけでなく、自分のクレデンシャル
Figure 0006986519
を生成するためにも長期公開秘密鍵ペアを使用することをもう一度思い出そう。検証者iは自分の一時的な鍵ペア(pk r,s,sk r,s)を使用して、要求され得る任意の他のメッセージmに署名する。簡潔にするために、このステップでのiによるmの正規の一時的な署名を表すために、
Figure 0006986519
ではなく、esig(m)を書き、
Figure 0006986519
の代わりにESIG(m)を書く。
ステップ1: ブロックの提案
全ユーザi∈PKr−kのための命令:ユーザiは、CERTr−1を持つや否やラウンドrの自分のステップ1を始め、当該CERTr−1は、iがH(Br−1)およびQr−1を曖昧さなく計算できるようにする。
・ユーザiはQr−1を使用して、i∈SVr,1かどうかをチェックする。
Figure 0006986519
の場合、ステップ1についてiは何もしない。
・i∈SVr,1の場合、すなわち、iが潜在的リーダーである場合、iは次のことを行う。
(a)iが自分自身でB,...,Br−1を見てきた場合(どのB=Bε もCERTでのそのハッシュ値から容易に導くことができ、そのため「見てきた」と想定される)、それまでに当該iに伝播されてきたラウンドrの支払を収集して、そこから最大支払集合PAY を計算する。
(b)iがまだすべてのB,...,Br−1を見ていない場合、iは
Figure 0006986519
を設定する。
(c)次に、iは自分の「候補ブロック」B =(r,PAY ,SIG(Qr−1),H(Br−1))を計算する。
(c)最後に、iはメッセージm r,1=(B ,esig,(H(B )),σ r,1)を計算して、自分の一時的な秘密鍵sk r,1を破壊してから、2つのメッセージm r,1および(SIG,(Qr−1),σ r,1)を別々に、しかし同時に伝播する(脚注28参照)。
脚注28
iがリーダーのとき、SIG(Qr−1)は、他者がQ=H(SIG(Qr−1),r)を計算するのを許容する。
選択的伝播
ステップ1およびラウンド全体の大域的実行を短縮するために、(r,1)メッセージを選択的に伝播することが重要である。すなわち、システム内の全ユーザjについて、以下のように伝播する。
・いつか受信して検証に成功する最初の(r,1)メッセージについて(脚注29参照)、それがブロックを含むか、または単にQr−1のクレデンシャルおよび署名であるかを問わず、プレーヤjは通常通りそれを伝播する。
脚注29
すなわち、すべての署名が正当で、それが形式m r,1である場合、ブロックとそのハッシュの両方が有効である。ただし、jは、含まれる支払集合がiにとって最大かどうかをチェックしない。
・プレーヤjが受信して検証に成功する他のすべての(r,1)メッセージについて、当該メッセージが含むクレデンシャルのハッシュ値が、当該プレーヤjがそれまでに受信し検証が成功したすべての(r,1)メッセージに含まれるクレデンシャルのハッシュ値の中で最小である場合に限り、それを伝播する。
・しかし、jが同じプレーヤiから形式m r,1の2つの異なるメッセージを受信する場合(脚注30参照)、iのクレデンシャルのハッシュ値がどのようなものであろうと、2つ目のものを破棄する。
脚注30
これは、iが悪意であることを意味する。
選択的伝播では、各潜在的リーダーiが自分のクレデンシャルσ r,1をm r,1とは別に伝播することが有用であることに留意されたい(脚注31参照)。これらの小さなメッセージはブロックよりも高速で移動し、含まれるクレデンシャルが小さいハッシュ値を有する場合に、m r,1の適時の伝播を確実にするのに対し、ハッシュ値が大きいものはすぐに消失させる。
脚注31
これを提案したジョルジオ・ブラコスに感謝する。
ステップ2: 段階的コンセンサスプロトコルGCの最初のステップ
全ユーザi∈PKr−kのための命令:ユーザiは、CERTr−1を持つや否やラウンドrの自分のステップ2を始める。
・ユーザiは、最大時間量
Figure 0006986519
待つ。待っている間、iは次のように行為する。
1. 時間2λ待った後、それまでに受信して検証に成功した(r,1)メッセージの一部であるすべてのクレデンシャルσ r,1について、H(σ r,1)≦H(σ r,1)になるようなユーザlを見つける(脚注32参照)。
脚注32
本質的に、ユーザiは、ラウンドrのリーダーがユーザlであることを秘かに決定する。
2. CERTr−1に含まれるハッシュ値H(Br−1)にマッチするブロックBr−1を受信した場合(脚注33参照)、および、lから有効なメッセージm r,1=(B ,esig(B )),σ r,1)を受信した場合(脚注34参照)、iは待機を停止し、
Figure 0006986519
を設定する。
脚注33
当然、Br−1=Bε r−1であることをCERTr−1が示す場合、iは、CERTr−1を持った瞬間に既にBr−1を「受信」済みである。
脚注34
ここでも、プレーヤlの署名およびハッシュは、すべて検証が成功し、B 内のPAY は、ラウンドrについて有効な支払集合である。ただし、iは、PAY がlにとって最大かどうかをチェックしない。B が空の支払集合を含む場合、B が有効かどうかを検証する前に、iがBr−1を見る必要は実際にはない。
3. そうでなければ、時間tが経過したとき、iは
Figure 0006986519
を設定する。
4. v’の値が設定されている場合、iはCERTr−1からQr−1を計算し、i∈SVr,2かどうかをチェックする。
5.i∈SVr,2である場合、iはメッセージ
Figure 0006986519
を計算し(脚注35参照)、自分の一時的な秘密鍵sk r,2を破壊してから、m r,2を伝播する。そうでなければ、iは何も伝播せずに停止する。
脚注35
メッセージm r,2は、プレーヤiがv’の最初の成分を次のブロックのハッシュであるとみなす、または次のブロックを空だとみなすことを示す。
ステップ3: GCの第2ステップ
全ユーザi∈PKr−kのための命令:ユーザiは、CERTr−1を持つや否やラウンドrの自分のステップ3を始める。
・ユーザiは、最大時間量
Figure 0006986519
待つ。待っている間、iは次のように行為する。
1. 一切の矛盾なく、iが形式(ESIG(v),σ r,2)の少なくともt個の有効なメッセージm r,2を受信したような値vが存在する場合(脚注36参照)、待機を停止し、v’=vを設定する。
脚注36
すなわち、iは、ESIG(v)および異なる
Figure 0006986519
をそれぞれ含む2つの有効なメッセージをプレーヤjから受信していない。ここで、またこれ以降、後で定義する終了条件を除き、誠実なプレーヤが所与の形式のメッセージを望む場合は必ず、互いに矛盾するメッセージは絶対にカウントされず、または有効とは見なされない。
2. そうでなければ、時間tが経過したとき、iはv’=⊥を設定する。
3. v’の値が設定されていた場合、iはCERTr−1からQr−1を計算し、i∈SVr,3かどうかをチェックする。
4. i∈SVr,3である場合、iはメッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,3を破壊してから、m r,3を伝播する。そうでなければ、iは何も伝播せずに停止する。
ステップ4: GCの出力およびBBAの第1ステップ
全ユーザi∈PKr−kのための命令:ユーザiは、自分のステップ3を終えるや否やラウンドrの自分のステップ4を始める。
・ユーザiは、最大時間量2λ待つ(脚注37参照)。待っている間、iは次のように行為する。
脚注37
したがって、iがラウンドrの自分のステップ1を始めたときからの最大総時間量は、
Figure 0006986519
とすることができるであろう。
1. vおよびg、GCの出力を次のように計算する。
(a)iが少なくともt個の有効なメッセージm r,3=(ESIG(v’),σ r,3)を受信したような値v’≠⊥が存在する場合、待機を停止し、
Figure 0006986519
および
Figure 0006986519
を設定する。
(b)iが少なくともt個の有効なメッセージm r,3=(ESIG(⊥),σ r,3)を受信している場合、待機を停止し、
Figure 0006986519
および
Figure 0006986519
を設定する(脚注38参照)。
脚注38
ステップ(b)がプロトコル内であるかどうかはその正当性に影響を与えない。しかし、ステップ(b)の存在は、十分に多くのステップ3検証者が「⊥に署名」した場合、ステップ4が2λより少ない時間で終了することを許す。
(c)そうでなければ、時間2λが経過したとき、iが少なくとも
Figure 0006986519
個の有効なメッセージm r,j=(ESIG(v’),σ r,3)を受信したような値v’≠⊥が存在する場合、
Figure 0006986519
および
Figure 0006986519
を設定する(脚注39参照)。
脚注39
この場合のv’は、存在する場合、一意でなければならないことは証明できる。
(d) そうでなければ、時間2λが経過したとき、
Figure 0006986519
および
Figure 0006986519
を設定する。
2. 値vおよびgが設定されているとき、iは、b、BBAの入力を次のように計算する。
=2の場合
Figure 0006986519
で、それ以外の場合は
Figure 0006986519
である。
3. iは、CERTr−1からQr−1を計算し、i∈SVr,4かどうかをチェックする。
4. i∈SVr,4である場合、iはメッセージ
Figure 0006986519
を計算し、自分の一時的な秘密鍵sk r,4を破壊してから、m r,4を伝播する。そうでなければ、iは何も伝播せずに停止する。
ステップs,5≦s≦m+2,s−2≡0 mod 3: BBAの、コインを0に固定するステップ
全ユーザi∈PKr−kのための命令:ユーザiは、自分のステップs−1を終えるや否やラウンドrの自分のステップsを始める。
・ユーザiは、最大時間量2λ待つ(脚注40参照)。待っている間、iは次のように行為する。
脚注40
したがって、iがラウンドrの自分のステップ1を始めたときからの最大総時間量は、
Figure 0006986519
とすることができるであろう。
−終了条件0:任意の点で、次のようになるストリングv≠⊥およびステップs’が存在する場合、
(a)5≦s’≦s,s’−2≡0 mod 3、すなわち、ステップs’は、コインを0に固定するステップであり、
(b)iは少なくともt個の有効なメッセージm r,s’−1=(ESIG(0),ESIG(v),σ r,s’−1)を受信しており(脚注41参照)、かつ、
(c)iは、jがvの第2成分のとき、有効なメッセージ(SIG(Qr−1),σ r,1)を受信している場合、
iは待機を停止し、自分によるステップs(実際にはラウンドrの)の実行を、(r,s)検証者として何も伝播せずにすぐに終了し、H(B)をvの最初の成分になるように設定する。さらに、自分自身のCERTを、(SIG(Qr−1),σ r,1)とともに、ステップ(b)のメッセージm r,s’−1の集合に設定する(脚注42参照)。
脚注41
プレーヤjからのこのようなメッセージは、プレーヤiが1について署名するjからのメッセージも受信している場合であってもカウントされる。終了条件1についても同様。分析で示しているように、このことは、すべての誠実なユーザが時間λ以内に互いにCERTを知ることを確実にするためである。
脚注42
ユーザiはこれでH(B)を知り、自分自身のラウンドrを終わらせる。実際にブロックBがユーザiに伝播されるまで待つだけでよく、これにはいくらか追加の時間がかかるかもしれない。ユーザiは一般ユーザとしてメッセージの伝播をなおも手伝うが、(r,s)検証者として伝播を開始しない。具体的には、自分のCERT内のすべてのメッセージの伝播を手伝っており、これは我々のプロトコルにとって十分である。ユーザiはバイナリBAプロトコルについても
Figure 0006986519
を設定するべきであるが、この場合bは一切必要ない。すべての将来の命令についても同様。
−終了条件1:任意の点で、次のようになるステップs’が存在する場合、
(a’)6≦s’≦s,s’−2≡1 mod 3、すなわち、ステップs’は、コインを1に固定するステップであり、かつ、
(b’)iは少なくともt個の有効なメッセージm r,s’−1=(ESIG(1),ESIG(v),σ r,s’−1)を受信している場合(脚注43参照)、
iは待機を停止し、自分によるステップs(実際にはラウンドrの)の実行を、(r,s)検証者として何も伝播せずにすぐに終了し、B=Bε を設定する。さらに、自分自身のCERTを、サブステップ(b’)のメッセージm r,s’−1の集合になるように設定する。
脚注43
この場合、vが何であるかは問題ではない。
−任意の時点で、形式(ESIG(1),ESIG(v),σ r,s−1)の少なくともt個の有効なm r,s−1を受信している場合、待機を停止し、
Figure 0006986519
を設定する。
−任意の時点で、形式(ESIG(0),ESIG(v),σ r,s−1)の少なくともt個の有効なm r,s−1を受信しているが、当該ユーザiらが同じvに合意しない場合、待機を停止し、
Figure 0006986519
を設定する。
−そうでなければ、時間2λが経過したとき、iは
Figure 0006986519
を設定する。
−値bが設定されているとき、iはCERTr−1からQr−1を計算し、i∈SVr,sかどうかをチェックする。
− i∈SVr,sである場合、iはメッセージ
Figure 0006986519
を計算し(vは、ステップ4でiが計算した値である)、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。そうでなければ、iは何も伝播せずに停止する。
ステップs,6≦s≦m+2,s−2≡1 mod 3: BBAの、コインを1に固定するステップ
全ユーザi∈PKr−kのための命令:ユーザiは、自分のステップs−1を終えるや否やラウンドrの自分のステップsを始める。
・ユーザiは、最大時間量2λ待つ。待っている間、iは次のように行為する。
−終了条件0:コインを0に固定するステップと同じ命令。
−終了条件1:コインを0に固定するステップと同じ命令。
−任意の時点で、形式(ESIG(0),ESIG(v),σ r,s−1の少なくともt個の有効なm r,s−1を受信している場合、待機を停止し、
Figure 0006986519
を設定する(脚注44参照)。
脚注44
1について署名するt個の有効な(r,s−1)メッセージを受信することが、終了条件1を意味するであろうことに留意されたい。
−そうでなければ、時間2λが経過したとき、iは
Figure 0006986519
を設定する。
−値bが設定されているとき、iはCERTr−1からQr−1を計算し、i∈SVr,sかどうかをチェックする。
−i∈SVr,sである場合、iはメッセージ
Figure 0006986519
を計算し(vは、ステップ4でiが計算した値である)、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。そうでなければ、iは何も伝播せずに停止する。
ステップs,7≦s≦m+2,s−2≡2 mod 3: BBAの、実際にコインを投げるステップ
全ユーザi∈PKr−kのための命令:ユーザiは、自分のステップs−1を終えるや否やラウンドrの自分のステップsを始める。
・ユーザiは、最大時間量2λ待つ。待っている間、iは次のように行為する。
−終了条件0:コインを0に固定するステップと同じ命令。
−終了条件1:コインを0に固定するステップと同じ命令。
−任意の時点で、形式(ESIG(0),ESIG(v),σ r,s−1)の少なくともt個の有効なm r,s−1を受信している場合、待機を停止し、
Figure 0006986519
を設定する。
−任意の時点で、形式(ESIG(1),ESIG(v),σ r,s−1)の少なくともt個の有効なm r,s−1を受信している場合、待機を停止し、
Figure 0006986519
を設定する。
−そうでなければ、時間2λが経過したとき、SV r,s−1を有効なメッセージm r,s−1を受信した(r,s−1)検証者の集合として、iは
Figure 0006986519
を設定する。
−値bが設定されているとき、iはCERTr−1からQr−1を計算し、i∈SVr,sかどうかをチェックする。
−i∈SVr,sである場合、iはメッセージ
Figure 0006986519
を計算し(vは、ステップ4でiが計算した値である)、自分の一時的な秘密鍵sk r,sを破壊してから、m r,sを伝播する。そうでなければ、iは何も伝播せずに停止する。
備考
原則として、サブセクション6.2で検討したように、プロトコルは、あるラウンドで多くのステップを任意に取ることができる。述べたように、これが起こる場合、s>μのときユーザi∈SVr,sは、事前に生成した一時的な鍵の隠し場所を使い果たしており、一時的な鍵の「カスケード」によって自分の(r,s)メッセージm r,sを認証しなければならない。したがって、iのメッセージは少し長くなり、これらの長くなったメッセージの伝送には少し多くの時間がかかる。したがって、所与のラウンドのそのように多くのステップの後、パラメータλの値は自動的にやや大きくなる。(しかし、一旦新たなブロックが生成されて、新たなラウンドが始まれば、元のλに戻る。)
非検証者によるラウンドrの再構築
システム内の全ユーザiのための命令: ユーザiは、CERTr−1を持つや否や自分のラウンドrを始める。
・iは、プロトコルの各ステップの命令に従い、すべてのメッセージの伝播に参加するが、その検証者ではない場合、ステップの伝播は開始しない。
・iは、あるステップで終了条件0または終了条件1のいずれかに入ることによって、自分のラウンドrを、対応するCERTを使って終了する。
・それ以降、iは、そのハッシュH(B)がCERTによってピン留めされている実際のブロックBを受信するのを待ちながら(それを既に受信していない限り)、自分のラウンドr+1を始める。ここでも、B=Bε であることをCERTが示す場合、iは、CERTを持った瞬間にBを知る。
6.4 アルゴランド’の分析
アルゴランド’の分析は、アルゴランド’の分析から容易に導き出せる。本質的に、アルゴランド’では、圧倒的確率で、(a)すべての誠実なユーザは同じブロックBに合意する。新たなブロックのリーダーは、少なくともp=h(1+h−h)の確率で誠実である。
7 オフラインである誠実なユーザの取り扱い
述べたように、誠実なユーザは、オンラインであること、およびプロトコルを実行することを含め、自分の規定された命令のすべてに従う。誠実なユーザに対して要求する計算および帯域幅がかなり少量であるため、これは、アルゴランドでは大きな負担ではない。しかし、アルゴランドは、非常に多数の誠実なユーザがオフラインであることが許容される2つのモデルで機能するように簡単に修正できることを指摘したい。
この2つのモデルを考察する前に、誠実なユーザの割合が95%であった場合、アルゴランドは、代わりにh=80%であると仮定してもなお、すべてのパラメータの設定を実行することができるだろうということを指摘したい。したがって、アルゴランドは、誠実なプレーヤのうちのたかだか半数がオフラインになることを選んでも(実際、「常習的不在」の主なケースである)、適切に機能し続けるであろう。事実、任意の時点で、オンラインのプレーヤの少なくとも80%は誠実であるだろう。
継続的参加から怠惰な誠実者へ
述べたように、アルゴランド’およびアルゴランド’は、ルックバックパラメータkを選ぶ。ここで、適切に大きいkを選ぶことで継続的参加要件を取り除けるということを示そう。この要件は、極めて重要な性質、すなわち、基となるBAプロトコルBBAが正規の誠実な過半数を有すること、を確保する。ここで、この性質を満たす代替の魅力的な方法を怠惰な誠実者がいかに提供するかを説明しよう。
ユーザiは、(1)プロトコルへの参加を求められるときに、自分の規定された命令のすべてに従い、(2)プロトコルへの参加を求められることは極稀(例えば週に1回)にしかなく、かつ、参加要求が適切な事前の通知をもって行われ、参加するときはかなりの報酬を潜在的に受け取る場合に、怠惰であるが誠実であることを思い出そう。
アルゴランドをこのようなプレーヤで機能させるには、「かなり早期のラウンドで既にシステムにいたユーザの中から、現行ラウンドの検証者を選ぶ」だけで十分である。実際、ラウンドrの検証者はラウンドr−kのユーザから選ばれ、数量Qr−1に基づいて選択が行われることを思い出そう。1週は約10,000分からなることに留意し、1ラウンドに(例、平均で)約5分かかると仮定すると、1週は約2,000ラウンドを有する。そう仮定すると、ある時点で、ユーザiは、自分の時間を予定し、翌週に自分が検証者になるかどうかを知りたい。ここで、プロトコルはラウンドr−k−2,000内のユーザからラウンドrの検証者を選び、Qr−2,001に基づいて選択が行われる。ラウンドrで、プレーヤiは既にQr−2,000,...,Qr−1の値を知っている。なぜなら、これらが実際にブロックチェーンの一部であるからである。さらに、1〜2,000までの各Mについて、iは、
Figure 0006986519
の場合に、かつ、その場合に限り、iはラウンドr+Mのステップsの検証者である。
したがって、当該プレーヤiが次の2,000ラウンドで検証者として行為するために呼び出されることになるかどうかをチェックするためには、iは、M=1〜2,000および各ステップsについてσ M,s=SIG(r+M,s,Qr+M−2,001)を計算して、そのうちのいくつかについて、.H(σ M,s)≦pかどうかをチェックしなければならない。電子署名の計算に1ミリ秒かかる場合、この全体の動作を当該iが行うのに約1分かかる計算になる。これらのラウンドのいずれにおいても当該iが検証者として選択されない場合、当該iは、「誠実な分別」をもってオフラインになることができる。継続的に参加した場合、本質的に、当該iは、いずれにしても次の2,000ラウンドの0ステップを実質的に取ったことになるであろう! 代わりに、当該iは、これらのラウンドのうちの1ラウンドの検証者として選択される場合、正規のラウンドで誠実な検証者として行為するために(例、必要なすべての情報を得ることによって)準備する。
そのように行為することによって、怠惰であるが誠実な潜在的検証者iは、メッセージの伝播への参加の機会を逃すだけである。しかし、メッセージの伝播は通例ロバストである。また、最近伝播された支払の支払人および受取人は、自分の支払に何が起こるのかを見るためにオンラインであると期待され、したがって、当該支払人および受取人が誠実である場合に、メッセージの伝播に参加するであろう。
8 「マネーの誠実な過半数」を伴うプロトコルアルゴランド’
ここで、最後に、ユーザの誠実な過半数の仮定を、はるかに意味深い「マネーの誠実な過半数」の仮定に置き換える方法を示す。基本的な考えは、(プルーフ・オブ・ステーク風に)「iが所有するマネーの金額に比例する重み(つまり、決定権)によって、SVr,sに所属しているユーザi∈PKr−kを選択すること」である(脚注45参照)。
脚注45
継続的参加と置き換えるために、PKr−k−2,000というべきである。単純にするために、いずれにしても連続的参加を要求したいと望む人はいるかもしれないので、1少ないパラメータを表すのに、以前と同様にPKr−kを使用する。
HMMの仮定により、その金額をラウンドr−kで所有するべきか、またはラウンドr(の始まり)で所有するべきかを選ぶことができる。我々が継続的参加を嫌がらないと仮定すると、我々は、後者の選択肢を選ぶ。(継続的参加を除くためなら、前者の選択肢を選ぶであろう。より適切にいうと、ラウンドr−k−2,000で所有されるマネーの金額のため。)
この考えを実施するには沢山の方法がある。最も単純な方法は、各鍵にマネーのたかだか1単位を保有させてから、a (r)=1になるように、PKr−kからランダムにn人のユーザiを選択することであろう。
次に最も単純な実施態様
次に最も単純な実施態様は、各公開鍵が、ある固定Mについて、マネーMの最高金額を所有するよう要求することであろう。値Mは、1つの鍵が、例えば、kラウンドの2以上のステップの検証者集合に属す確率を無視できる程度にするように、システム内のマネーの総額に対して十分に小さくする。そして、ラウンドrでマネーの金額a (r)を所有する鍵i∈PKr−kが、
Figure 0006986519
である場合、SVr,sに属すように選ばれる。そして、すべてが前と同様に進行する。
より複雑な実施態様
最後の実施態様は、「システムの金持ちの参加者に多くの鍵を所有させた」。
以下に述べる代替実施態様は、ステータスの概念を一般化し、各ユーザiをK+1コピー(i,v)からなると見なし、そのそれぞれが独立して検証者であるように選択され、ラウンドrのステップsで自分自身の一時的な鍵(pki,v r,s,ski,v r,s)を所有することになる。Kの値は、ラウンドrのiによって所有されるマネーの金額a (r)に依存する。
ここで、このようなシステムがどのように機能するかをより詳細に見ていこう。
コピー数
nを、各検証者集合の目標とする期待濃度とし、a (r)を、ラウンドrでユーザiが所有するマネーの金額とする。Aを、ラウンドrでPKr−kのユーザが所有するマネーの総額、すなわち、
Figure 0006986519
とする。
iがPKr−k内のユーザである場合、iのコピーは(i,1),...,(i,K+1)であり、ここで、
Figure 0006986519
である。
例.
n=1,000、A=10、a (r)=370万とする。すると、
Figure 0006986519
である。
検証者およびクレデンシャル
iを、K+1コピーを有するPKr−k内のユーザとする。
各v=1,.,.,Κについて、コピー(i,v)は自動的にSVr,sに属す。すなわち、iのクレデンシャルは
Figure 0006986519
であるが、対応する条件は、.Η(σi,v r,s)≦1になり、常に真である。
コピー(i,K+1)について、ラウンドrの各ステップsは、iが
Figure 0006986519
であるかどうかをチェックする。もしそうなら、コピー(i,K+1)はSVr,sに属す。これを証明するために、iは次のクレデンシャルを伝播する。
Figure 0006986519
例.
前の例と同様に、n=1K、a (r)=370万、A=1B、そしてiは4つのコピー(i,1),...,(i,4)を有するとする。すると、最初の3つのコピーは自動的にSVr,sに属す。4番目のコピーについては、概念的に、アルゴランド’は独立してバイアスコインを転がし、それが表になる確率は0.7である。コピー(i,4)は、コイントスが表である場合、かつ、その場合にのみ選択される。
(当然、この出願においてこれまでずっと行ってきたように、このバイアスコインフリップは、iが自分の結果を証明できるように、ハッシュ化、署名および比較によって実施される。)
通常通りのビジネス
検証者がどのように選択され、当該検証者のクレデンシャルがラウンドrの各ステップでどのように計算されるかを説明してきたが、ラウンドの実行は既に説明したものと似ている。
9 フォーク
フォークの確率を10−12または10−18まで減じて、それが発生する可能性がほとんどない中で、当該フォークを取り扱う必要は実際上ない。しかし、アルゴランドは、プルーフ・オブ・ワークの有無を問わず、様々なフォークの解決手順を採用することもできる。
10 ブロックおよびステータス情報のための新たな構造
このセクションは、すべてのブロックの改ざん防止性を保証し続けるブロックを構築するより良い方法を提案するだけでなく、個々のブロックの内容を証明し、より一般的には、ブロックチェーン全体を審査することなく、関心のある特定の数量を計算するためにブロックを使用する、より効率的な方法を可能にもする。
ブロックチェーンの改ざん防止性
ブロックチェーンを作るために、ブロックBは次の高次構造を有することを思い出そう(脚注46参照)。
Figure 0006986519
脚注46
アルゴランドではラウンドを示すために上付き記号を使用することを思い出そう。しかし、このセクションは全体としてブロックチェーンに充てられており、そのため、r番目のブロックは、アルゴランドの意味でのr番目のラウンドに対応しないことがある。すなわち、上記「r」は単なるブロック番号であり、明確にするためにブロックBに含まれる。
また、ブロックの上記一般構造は概念的なものである。例えば、ビットコインでは、Bは、対応する計算問題を解いた人であるブロック構築者の電子署名を含むことができる。アルゴランドでは、Bの認証、すなわち、マッチング証明書CERTは別に提供することができる。しかし、Bの一体的な一部として提供することもできるであろう。この後者の場合、有効な証明書が多数あるかもしれないため、ラウンドrのリーダーlは、すべてのラウンドr検証者への自分のメッセージの中に、前のラウンドの出力のための有効な証明書も含めて、各ラウンドrの証明書が何であるかに関しても合意に達するようにする。
上記において、INFOは、r番目のブロック内で保護したい情報である。アルゴランドの場合、INFOは、PAY、数量Qr−1のブロックリーダーの署名等を含む。
ブロックチェーンのよく知られた基本的な性質は、そのブロックのそれぞれの内容を改ざん防止にすることである。すなわち、過去のブロックを改変するには、最後のブロックも変えなければならない。この性質を、かいつまんで以下に挙げておく。
最新のブロックをBlastとし、誰かがBを別の(「不正な」)ブロック
Figure 0006986519
に置き換えると仮定する。すると、Hは衝突耐性であるため、
Figure 0006986519
は、圧倒的確率で、H(B)とは異なる。したがって、ブロックチェーンのブロック内の情報
Figure 0006986519
、すなわち、
Figure 0006986519
をどのように選ぼうとも、ここでもHの衝突耐性のために、
Figure 0006986519
となる。この不等式は伝播することは事実である。すなわち、
Figure 0006986519
がBr+2とは異なる。以降も同様であるので、最終的には、
Figure 0006986519
となる。
ブロックチェーンの個々のブロックの非効率的な検証可能性
ブロックチェーン全体は知らないが、Bがその中の正当なブロックであることを知っている人、X、を考えてみる。すると、上記基本的な性質により、ある人はこのような人に対して、rがzよりも小さい場合、任意の個々のブロックBも正当であることを証明することができる。すなわち、ある人は、「証拠」として、中間ブロックのすべてBr+1,...,Bz−1をXに提供し、XはさらにHを使用してrから先、z番目のブロックを再構築するまでブロックチェーンを再生成し、自分が知っているブロックBと一致するかどうかをチェックする。そうなる場合、XはBの正当性を確信する。実際、このように一見適法そうな証明を見つけることができる人は誰でも、実際上は発見するのは不可能な、ハッシュ関数Hでの衝突も見つけたはずである。
このような検証可能性の有用性を確認するために、以下の例を考えてみる。ブロックチェーンがビットコインまたはアルゴランド等の支払システムによって生成されると仮定して、Xを訴訟事件の裁判官とし、被告は、係争中の支払Pを2年前に原告に対して実際に行ったことをXに対して証明することを望んでいる。裁判官がチェーンの正当な最後のブロック、または少なくとも十分に最近の正当なブロックBを取得することができると仮定するのが合理的であるため、被告が行わなければならない「すべてのこと」は、裁判官に証拠Br+1,...,Bz−1を提出することであり、裁判官はそれから、証拠が釈明通りであることを検証する。当然、問題はこのような証拠がおそらくかなり長いことである。
ブロックツリー
過去の個々のブロックの正確な内容を効率的に証明できる能力はかなり基本的なことであるため、我々は、新たなブロック構造を展開する。これらの構造では、ブロックチェーンと同様に、ブロックシーケンス全体の完全性は、はるかに短い値vによって簡潔に保証される。この値は、シーケンスの最後のブロックではない。それにもかかわらず、ブロックチェーンの基本的な性質は維持される。ブロックのうちの1つにおける変更は、vにおける変更を引き起こす。
新たな構造の利点は、vがあるとして、nをシーケンスの現在のブロック数とすると、各個々のブロックの内容は非常に効率的に証明することができる点である。例えば、新たなブロック構造の特定の実施形態であるブロックツリーでは、それまでに生成されたブロックの総数がnである場合、各ブロックは、わずか
Figure 0006986519
バイトの情報を提供するだけで証明することができる。
これは実際に非常に簡潔な証明である。毎分1個のブロックを生成するシステムにおいて、それから、2千年運用した後は、
Figure 0006986519
である。したがって、各個々のブロックの内容を証明するには1KB(1,000バイト)未満で十分である。(20億年後には2KB未満で十分であり、本質的に永久でも4KBで十分である。)また、このような証明は非常に効率的に検証される。
効率的なステータス
別の効率性の問題が、ビットコイン、より一般的にはブロックチェーンに基づく支払システム、に影響を与える。すなわち、システムのステータス(すなわち、どの鍵が所与の時刻に何を所有するか)を再構築するには、(その時点までの)支払履歴全体を取得しなければならず、それは、行われる支払回数が非常に多い場合にはおそらく実行が困難である。
このような必要なものを得るためにも、ブロックツリーを使用する。
以下に挙げる、はるか昔の概念を適切に修正することによって、ブロックツリーを構築する。
10.1 マークル木
マークル木とは、n個の既知の値v,...,vn−1を1つの値vによって認証し、各値vの真正性を個々にかつ効率的に検証できるようにする方法である。
単純にするために、nは2の累乗n=2であると仮定して、各値が別々のkビットストリングsによって一意に識別されるようにする。そして、深さkの完全なバイナリツリーに特定の値を格納することによってマークル木Tを概念的に構成し、そのノードは、長さ≦kのバイナリストリングを使用して一意に名付けられている。
ルートはεと名付けられ、空のストリングである。内部ノードがsと名付けられる場合、sの左の子はs0と名付けられ(すなわち、sを0と連結させることによって得られるストリング)、右の子はs1と名付けられる。それから、マークル木Tを構成するために、各整数i∈{0,...,n−1}を識別し、そのバイナリkビット展開とともに、考えられる0を先頭に付けて、各値vをリーフiに格納する。この後、木をマークル化し、すなわち、次のように、ボトムアップ方式で(すなわち、まず深さk−1の全ノードの内容を選んでから、次に深さk−2の全ノードの内容を選ぶ。以降も同様)、Tの、他のすべてのノードに格納する。vs0およびvs1がそれぞれノードsの左の子および右の子に格納される場合、256ビット値
Figure 0006986519
をノードsに格納する。このプロセスの終わりに、ルートは256ビット値νεを含むことになる。
深さ3および8個のリーフを有するマークル木を図1.Aに示す。
ここで、vεが分かっている、または電子署名されていると仮定して、各元の値vをvεに関連してどのように認証できるかを示そう。
ノードxから始まりルートに到達する(最短)経路Pを考えてみる。すると、xの内容vの認証経路はP内のノードの兄弟の内容のシーケンスであり、ノードs0の兄弟はノードs1であり、またその逆も同様である。したがって、深さkのツリーのリーフ値の認証経路はk−1値からなる。例えば、図1.Aのマークル木では、リーフ010からルートまでの経路はP=010,01,0,εであり、ルートは兄弟を持たないため、v010の認証経路はv011,v00,vである。図1.Aのマークル木の経路Pおよびv010の認証経路を、図1.Bに図示する。
各vをi番目のリーフに格納し、特定のストリングe(空(empty)に因む)を残りのすべてのリーフに格納し、さらにノードの残りを通常のやり方で埋めることによってn<2の値v,・・・,vn−1を認証するマークル木を有するために、2個のリーフを有する完全なバイナリツリーを使用することができる。得られるマークル木は(事実上)n個のリーフを持っている(他のすべてのリーフが空であるため)(脚注47参照)。
脚注47
ハッシュ関数Hが
Figure 0006986519
になるようにすると仮定して、内容がeである任意のノードより下のマークル木のノードをすべて「刈り込む」こともできる。
ルート値νεに関連し、その認証経路があるとして、v(の真正性)を検証するために、リーフiからルートまでの経路内のノードの内容を再構築してから、最後に再構築される値が実際にνεであるかどうかをチェックする。すなわち、認証経路がx,...,xk−1である場合、まずvおよびxを一緒に正しい順序でHハッシュ化する、すなわち、iの最後のビットが0の場合、y=H(v,x)を計算し、そうでない場合はy=H(x,v)を計算する。それから、yおよびxを一緒に正しい順序でHハッシュ化する。値yを計算し、それをvεと比較するまで、同様に行う。y=vεの場合、かつ、その場合に限り、値vは認証される。
このような検証が機能する理由は、ここでも、Hが衝突耐性であるからである。実際に、リーフまたはノードに当初格納されていた値のうちの1つのビットを変更するだけで、圧倒的確率で、親に格納されている値も変更される。この変更は上までずっと広まり、その結果、ルートの値は既知の値vεとは異なることになる。
10.2 ブロックツリー
述べてきたように、マークル木は、1つの値、つまりルートに格納されている値vεによって、任意の、および任意に多くの既知の値を効率的に認証する。実際、マークル木の1つのルート内容によってk個の値v,...,vk−1を認証するためには、まず、木の最初のk個のリーフに格納するためにv,...,vk−1を知り、他の適切なノードにeを格納してから、ルート値を含む、木の中の他のすべてのノードの内容を計算しなければならない。
マークル木は、ビットコインで所与のブロックの支払を認証するために使用されている。実際、所与のブロックを構築するときには、ブロックに入れるための支払は既に選択済みである。
ただし、増え続けるブロックチェーンを認証するためにマークル木を使用することは、どのブロックを認証するべきかが事前には分からないため、さらに難しい。
しかし、我々は、個々のブロックの効率的な証明可能性を可能にする新たなブロック構造を得るために、どのようにして新規な方法でマークル木を使用するかを示す。我々の好適なこのような構造、ブロックツリーを例示しよう。
ブロックツリーの保証
ブロックツリーは、ブロックのシーケンスB,B,....のそれぞれに含まれる情報を保護する。この重要な性質は、ブロックチェーンと同様、前のブロックのハッシュを各ブロックにも格納することでは得られない。しかし、各ブロックは何らかの短い保護情報も格納して、所与のブロックBの前のブロックBの内容に加えられた変更がBの保護情報も変更させることを保証する。ブロックツリーのこの保証は、ブロックチェーンが提供するものに匹敵する。主な利点は、新たな保護情報により、ブロックBの保護情報を知る誰かに対して、BとBとの間のすべてのブロックを処理しなくても、任意のブロックBの正確な内容を証明できることである。ブロックの数がとてつもなく多い可能性がある(またはそのようになる可能性がある)ため、これは大きな利点である。
ブロックツリーのブロック構造
ブロックツリーでは、ブロックBは以下の形式を有する。
Figure 0006986519
上記式において、INFOは、ブロックB内の、セキュアである必要がある情報を表し、SはBの保護情報を表す。
ブロックツリーの我々の好適な実施形態において、保護情報Sの情報は、実際にはかなり簡潔である。これは
Figure 0006986519
256ビットストリングのシーケンス、すなわち、それぞれ32バイトの
Figure 0006986519
ストリングから構成される。ほとんどの実用的なアプリケーションでは、240は千兆よりも大きいため、
Figure 0006986519
であることに注意されたい。
以下に、ブロックツリーのためだけにSの情報を明記する。当業者は、それを、本質的に同一の保証で、多様な他のブロック構造に容易に一般化できることを認識するであろうが、そのすべては本発明の範囲内である。
ブロックツリーにおけるブロックの生成
簡潔にするために、INFO=vに設定しよう。概念上、2が候補値vの数に上限を設けるように、深さkの完全なバイナリツリーTから始める。値v,v...もそうなので、ブロックは順に生成される。新たな値vが生成されると、概念的にいうと、マークル木Tを構築するために、当該値vはTのリーフiに格納され、その後、様々なストリングが計算されてTのノードに格納される。これらのストリングのうちの1つが、特殊なストリングeである。(Tのノードxに出現するとき、ストリングeは、Tに属すxの子孫が存在しないことを意味し、
Figure 0006986519
であると仮定する。)
最初の値vが生成されて、リーフ0に格納されると、TはTの(そのように埋められた)ノード0と一致する。事実、こうしたTは基本のマークル木である。その深さは
Figure 0006986519
であり、そのルートはR=0であり、その最初の深さ0のリーフ(また、実際、その唯一のリーフおよびノードに)vを格納する。
i+1stの値vが生成されて、Tのリーフiに格納されたとき(場合によっては、既にそこでストリングeを置き換える)、マークル木Tは、前のマークル木Τi−1から次のように構築される。(帰納的な仮説により、Τi−1は深さが
Figure 0006986519
で、ルートがRi−1、それぞれ値v,...,vを格納するi深さ
Figure 0006986519
のリーフを有する。
リーフiがRi−1の子孫の場合、R=Ri−1とし、そうでなければRをRi−1の親とする。Pは、リーフiからノードRまでのTの(最短)経路とする。P内のすべてのノードjについて、その兄弟のj’が空の場合、j’に特殊なストリングeを格納する。最後に、vs0およびvs1がそれぞれsの左の子および右の子に格納される値の場合、P内の各ノードについて、リーフi(除く)からノードR(含む)の順に、値v=H(vs0,vs1)をsに格納する。そのように計算された値をそのノードに格納する、RをルートとするTの部分木がマークル木であることを確認するのは簡単である。このマークル木はTである。
最初の空の完全なバイナリツリーTが深さ3を有する場合について、最初の8連続のマークル木の構成を図2に合成する。特に、各下位図2.iは、マークル木Tを、そのノードのそれぞれに、特殊なストリングe(「そのノードより下のTは空である」ことを意味する)、または数j∈{0,...,i−1}(マークル木Tを構築するときに、ノードの内容が最後に変更されたことを意味する)のいずれかを記して強調する。どれほど多くのマークル木を構築できたとしてもTで最後に変更されたノードの内容はそれ以上変わらないことを強調するために、jを太字で書く。
これを踏まえて、新たなブロックBを次のように生成する。i番目のブロック内の保護したい情報INFOを選んだ後、v=INFOをTのリーフiに格納し、マークル木Tを構築し、
Figure 0006986519
を設定する。上記式において、RはTのルートであり、authはTにおけるvの認証経路である。すると、新たなブロックは、
Figure 0006986519
になる。Sは実際には
Figure 0006986519
ストリングから構成されることに注意されたい。authの各ストリング、したがってS内のすべてのストリングは実際には256ビット長であり、リーフiにvを格納するのではなく、代わりにH(v)を格納することができる。
ブロックツリーによるセキュリティおよび証明可能性
誰かがブロックBを知り、前のブロックBの情報INFOを正確に知りたがっていると仮定する。マークル木のシーケンスΤ,Τ,...を構築するとき、各木は部分木として前のものを含むことに留意されたい。事実、前のリーフの内容はそのままで、最後に埋められたものの右側の最初のリーフに新たな値が挿入されるので、各木Tのリーフは各後続木Tの最初のx+1リーフである。したがって、INFOは、r番目のリーフがINFOを含み、ルート値RがブロックBのセキュリティ情報であるSの最初の成分である、マークル木Tのi番目のリーフの内容である。
を知る誰かは、SおよびRも知っていることに留意されたい。したがって、このような「人」に対して、INFOがブロックBの情報であることを証明するには、ある人がマークル木T内のINFOの認証経路をその誰かに提供すれば十分である。事実、このような認証情報は容易にチェックできるが、容易に偽造することはできないことを既に確認している!
このような認証経路は
Figure 0006986519
値から構成され(Tは深さd+1を有するため)、それぞれ32バイトからなる(Hが32バイトの出力を生成するため)。このように、Bに関連してBの内容を証明することは非常に容易である。述べたように、ほとんどの実用的なアプリケーションではd<40である。
容易に入手可能な情報からのブロックの構築可能性
ブロックBの一部である構造情報Sを構築するためには、マークル木T全体からの情報が必要になるように思えるだろう。結局、リーフiに格納されるINFO、したがって値vは容易に入手可能であるが、vの認証経路authは前の木のノードの内容を含み、これは原則的には容易に入手することはできない。Sを構築するためにTi−1全体を入手しなければならない場合、新たなブロックBを構築することはあまりに効率的ではないかもしれない。
しかし、まさしくブロックチェーンの特質において、各Bは、前のブロックBi−1および選ばれた情報INFOから自明に計算できることに留意されたい。実際、S内の各ストリングは、次のうちの1つである。すなわち、
(a)H(INFO)、
(b)固定ストリングe、
(c)Sのストリング、および、
(d)上記タイプの所定の形態のストリングでハッシュ化することによって得られるストリング。
図3は、太い境界線で、ブロックツリーの最初の8ブロックを構築するために、その内容がS=(R,auth)を計算するのに十分なノードを強調表示している。特に、各下位図3.iは、その内容がSを生成するのに十分なノードを強調表示している。強調表示される各ノードにはさらにa、bまたはcを記して、それがタイプ(a)、(b)または(c)であることを示している。ルートRを含むタイプ(d)のノードにはマーキングをしていない。
要するに、ブロックツリーベースのシステムでは、ブロックの生成は非常に効率的である。
10.3 ステータス情報の効率的な管理
ブロックツリーは、アルゴランド等の支払システムを含め、あらゆる種類のアプリケーションにおいてブロックのセキュアな取扱いを改善する。しかし、このようなシステムには、改善から大きな利益が得られるであろう別の側面、すなわち、ステータス情報がある。
効率的なステータス情報のニーズ
ラウンドrの正式なステータスは、各現行の公開鍵xについて、xが所有する金額、および場合によっては追加情報S=...,(x,a (r),...),...を明記するタプルのリストからなることを思い出そう。システム内の鍵が所有するマネーの金額は動的に変化するので、それをできるだけ効率的に追跡し続ける必要がある。
今までのところ、ビットコインと同様に(そのステータス情報はかなり異なるが)、現行のステータスは、認証されるのではなく、支払の認証済み履歴から推論される。ブロックツリーは、ラウンドrでステータスSを証明できる能力を保証するわけではない。実際には、ブロックツリーにより、Bの前のブロックBの支払集合PAYは、Bに関連して効率的に証明できるであろう。しかし、ステータスSを証明するためには、一般に、Bの前のすべてのブロックの支払集合を証明可能に得るべきであろう。そのため、Sを知らないか、またはそれを知っているが、その現行の値の確固たる証拠を受け取りたい他のユーザまたはエンティティに証明者Pが証明するための、効率的な方法が必要である。
具体的には、このような方法は、新たなユーザ、またはしばらくオフラインでいたユーザにとって、現行のシステムのステータスに追い付くことを容易かつセキュアにするであろう。
ここで、このような方法のステータスツリーを提供しよう。
ステータスツリー: 第1の方法
ステータスツリーSTは、ラウンドr−1の終わりに、PがステータスSの値を効率的に証明することを可能にする特殊な情報構造である。
実際、STは、全ユーザのステータスを証明しなくても(ましてやブロックシーケンス全体B,...,Br−1を提供しなくても)、Pが、任意の候補ユーザi∈PKについて、ラウンドrの始めにiが所有している正確な金額a を効率的に証明することを可能にする。事実、その人達が以前にマネーを持っていたことを確認するには、例えば、その人達と交渉を開始するには、あるユーザにとって、ごく少数のユーザ(例えば、当該あるユーザが支払を受けると考える人達)のステータスを正確に知ることが重要であろう。ユーザiにとって、自分自身のa の値の証拠を受け取ることは、例えば、借入をするため、交渉で真剣に受け取られるため、または発注を出すために、さらに有用であろう。
まず、Pが、ブロックシーケンスB,...,Βr−1の全体を知っており、少なくともユーザおよびエンティティのグループによって広く信頼されていると仮定する。この場合、Pは次のことを行う。
・支払集合シーケンスPAY,...,PAYr−1を取得(例、検索)し、
・ユーザの集合PKを計算し、
・少なくともn=|PK|のリーフを有するマークル木Tを構築し、当該マークル木Tの最初のn個のリーフはn人のユーザ全員のステータス情報を格納し、各リーフは1人のユーザの情報を格納する(他のリーフは、もしあれば、リーフが「空」であることを意味する特殊なストリングeを格納してもよい)し、および、
・好ましくは電子署名されているTのルート値Rを、少なくとも別のエンティティに利用できるようにする。
次に、あるユーザx∈PKのステータスについて誰かがPに尋ねる任意のときに、lがiのステータス情報を格納している場合、Pはその人に、リーフlに格納されている値の、Tにおける認証経路を提供する。
重要なことに、Rを計算し電子署名した後で、Pは、あるユーザのステータスに関する問い合わせに回答するために、もはやそこにいる必要はない。実際に、同様にTを知る任意の他のエンティティP’が、エンティティVからの、xに関する問い合わせに回答できるであろう。事実、P’は、同じ電子署名されたルート値R、xに関するステータス情報、およびPがVに提供したであろう後者の情報の同じ認証経路をVに提供できるであろう。したがって、VがPを信用している場合、たとえVがP’を信用していなくても、P’によって提供される回答を検証することができる。事実、報告される認証経路がマークル木TのルートRに関連してxのステータスが正当であることを保証するので、また、RはPによって電子署名されるので、Vは、xに関するステータス情報の真正性を検証することができる。Vは、Pを信用している限り、P’を信用する必要はない。
このように、Pは、Rの自分の電子署名を公表して(または別のエンティティP’に利用できるようにして)、証明可能な形で、他者(P’)にステータスの質問に回答させてもよい。
ここで、この第1の方法の以下の性質を強調しておきたい。
1. (「良いニュース」)
Pは、各ラウンドrで一からTを計算する必要がない。
実際、ユーザx∈PKのステータスがどこに保管されているかは問題ではないため、前のマークル木Tr−1を計算し保管していれば、Pは、新たなブロックBの支払集合PAYを知った後に、Tr−1からTを計算することができる。本質的に、PAYがk個の支払を有する場合、Pはたかだか2k人のユーザのステータス情報(すなわち、PAYにおける各支払の支払人および受取人のステータス情報)を更新し、たかだかk人の新たなユーザのステータス情報を初めて挿入すればよい(単純にするためにのみ、PAYにおける各支払は、たかだかもう1人のユーザをシステムに導入することができると仮定する)。
ブロックツリーの場合と同様に、各新たなユーザのステータスは、次の空のリーフに挿入することができる。さらに、Pが既存ユーザiのステータスを更新する度に、Pは、iのステータスを格納しているリーフからルートまでの経路で内容のみを変更する必要がある。この経路は、n=|PK|の場合、たかだか
Figure 0006986519
の長さで、たかだかハッシュと同じだけの数を必要とする。本質的に、新たに追加される各ユーザにも同じことがいえる。ユーザの数nは非常に大きいかもしれないが、k、すなわち、所与のラウンドで取引するユーザの数はおそらく小さいであろうことに留意されたい。また、Tr−1からTを更新するには、
Figure 0006986519
ハッシュのみが必要である。このことは、一からTを計算するよりも実に有利であり、一から行うと、ほぼn個のハッシュが必要になる。
2. (「悪いニュース」)ユーザ
Figure 0006986519

に関して尋ねられる場合、P/P’は、
Figure 0006986519
を証明することはできない。
実際、あるVがラウンドrでユーザxのステータスに関して尋ねる場合、PおよびP’はいずれも、xがそのラウンドでシステムにいなかったためにxに関するステータス情報が存在しないことを、Vに対して容易に証明することはできない。
PまたはP’は、Tの各リーフlの内容をVに具体的に述べることができる。この大域的情報から、Vは、(a)xのステータスを含むリーフがないかどうかをチェックし、(b)これらのリーフの内容に対応するマークル木のルート値を再構築し、および(c)そのように計算した値が、Pによって電子署名されたルート値Rと一致するかどうかをチェックすることができる。しかし、このような大域的情報は非常に大きく、伝送するのが簡単ではないかもしれない。
(少なくともまだ)存在していないユーザに関する問い合わせに対して信用できる回答を容易に提供できないことは問題ではないだろう。(例、ユーザの総数が大きすぎないため。)この場合、第1の方法でうまくいく。しかし、万が一それが問題になるなら、我々は別の方法を提案する。
ステータスツリー:第2の方法
ここでも、PがブロックシーケンスB,...,Br−1の全体を知っていると仮定する。すると、第2の方法では、Pは次のことを行う。
・支払集合シーケンスPAY,...,PAYr−1を検索し、
・ユーザの集合PKを計算し、
・すべてのユーザi∈PKのステータス情報(i,a )を計算し、
・n個のステータス情報ペアを最初のエントリーに従って(例、そのユーザの辞書式順序に従って)順序付けし、
・第1リーフがPK内の第1ユーザのステータス情報を含み、第2リーフが第2ユーザのステータスを含む等のマークル木Tを構築し(追加リーフは、もしあれば、ストリングeを含む)、および、
・Tのルート値Rに電子署名し、この署名を利用できるようにする。
この第2の方法は、別の(必ずしも信頼されていない)エンティティP’が個々のユーザのステータスに関する質問に確実に回答することを可能にし続けるが、性質1および2に関連する点を「覆す」ことに留意されたい。すなわち、以下の通り。
1’.(「悪いニュース」)
これまでのようにTr−1を使用してTを容易に構築するのは簡単ではない。
そうなるのは、ここでは、Tのリーフはユーザに従って順序付けされたユーザのステータス情報を含み、新たなユーザを挿入することが問題をはらむことになるためである。1人の新たなユーザを、例えば、リーフの中央に挿入する必要がある場合、リーフの半分の内容を変更しなければならない。
2’.(「良いニュース」)
PまたはP’は、ユーザ
Figure 0006986519
が実際にPKに所属していないことを証明することができる。
ラウンドrでシステムにいなかったユーザxのステータスに関してVが尋ねる場合、信頼されていないP’でも、Pによって認証されたルート値Rに関連して、2つの連続するリーフの内容の認証経路を提供することができ、i’<i<i”になるように、一方はユーザi’に関するステータス情報を格納し、他方は別のユーザi”のステータス情報を格納している。
Vは、2つの認証経路が2つの連続するリーフの内容のものであると実際に判定できることに留意されたい。そうなるのは、同じ値へハッシュ化する2つの異なるストリングを見つけることは実際上不可能であるため、2つのストリングaおよびbがあるとすると、H(a,b)≠H(b,a)になる。したがって、h=H(a,b)とすると、hは、「aの後にbがくる」ハッシュであり、その逆ではない、と判定することができる。このことは、マークル木Tにおいては、値vの認証経路は、値vが何であるかだけでなく、それがTのリーフxに格納されていることも含意する。
例えば、図1.Bを考えてみる。そのマークル木では、値v010の認証経路は(v011,v00,v)である。その認証経路を使用してv010を検証するためには、次のハッシュ化を順に計算し、
(a)h=H(v010,v011)、
(b)h=H(v00,h)、
(c)h=H(h,v)、
次に、hが実際にルート値vεと一致するかどうかをチェックする。
H(x,y)≠H(y,x)であるので、
ハッシュ化(a)は、v010が、どのようなノードがhを格納していても、その0子に格納されていることを証明し、
ハッシュ化(b)は、hが、どのようなノードがhを格納していても、その1子に格納されていることを証明し、
ハッシュ化(c)は、hが、どのようなノードがhを格納していても、その0子に格納されていることを証明することに留意されたい。
したがって、hがルートで格納されていることをチェックしたので、V010はリーフ010に格納されていなければならず、これは実際にそうである。
したがって、Vが、Pが各ユーザi∈PKについて、iの形成時のステータスをTのi番目のリーフに格納したことを信用し、さらに、あるリーフがユーザi’<iのステータス情報を含むという証明、および次のリーフがユーザi”>iのステータス情報を含むという証明を確認する場合、Vは、
Figure 0006986519
であるということを安全に結論づけることができる。
(また、こうした認証経路は多くの値を共有することがあり、したがって、両方の認証経路の全体をVに伝送する必要はないことにも留意されたい。)
性質1’は問題ではないかもしれない。(例、Pは一からTを完璧に構築することができるため。)これが該当する場合、第2の方法でうまくいく。
そうでなければ、Pが、Tr−1からTを容易に構築すること、および、ユーザ
Figure 0006986519
が実際にPKに所属していないことを容易に証明すること、の両方を可能にする方法が必要である。
ここで、この方法を提供する。
ステータスツリー:第3の方法
探索木は、概念上、順序集合からの値をバイナリ(単純化のためにのみ!)ツリーのノードに動的に格納するデータ構造であることを思い出そう。通例、このようなツリーでは、ノードは1つの値を含む(または空である)。このようなデータ構造によって動的にサポートされる動作には、所与の値vの挿入、削除および探索を含む。(値vが存在しない場合には、例えば、返信される回答が⊥であるため、そのことも判定することができる。)
最初に、探索木は空のルートのみから構成される。削除される値よりも挿入される値が多くなると、ツリーが成長する。n個のノードがあるバイナリツリーの深さはせいぜいlog nであり(ツリーがいっぱいの場合にこうなる)、また、たかだかn−1(ツリーが経路である場合にこうなる)である。しかし、探索木の深さが小さいことは保証されていない。最悪の場合、n個の特定のノードを特定の順序で挿入すると、結果として、探索木が深さnからなることがある。
「平衡」探索木は、現在格納されている値の数がnである場合、木の深さが短い、すなわち、nの対数であることを保証する。n個のノードのある平衡探索木では、前述した3つの動作のそれぞれを、2つの値の比較、2つのノードの内容の交換、またはノードの親/右の子/左の子の内容を調べること等の、O(log n)基本ステップで行うことができる。
平衡探索木のいくつかの例が今までに知られている。特によく知られている例が、AVLおよびBツリーである。いくつかの例では、値はツリーのリーフにのみ格納することができる(対して、他のすべてのノードは、所与の値を本当にツリーに格納できる場合に当該所与の値を位置付けることのできる「指向性情報」を含む。)他の例では、値は任意のノードに格納することができる。以下に、より一般的なケース、および、単純化のみを目的として、平衡探索木の操作が周知かつ決定論的アルゴリズムであることを仮定する。
しばらくの間、PKの全ユーザのステータス情報を取得した証明者Pが、ラウンドrの平衡ステータスツリーTを一から構築したいと仮定する。すると、当該証明者Pは次のように行為する。
・Pは、n=|PK|のノードを有する平衡探索木Tを構築し、ユーザをPKに格納する。
最悪の場合、各挿入はO(log n)基本ステップを取るため、この操作はたかだかO(n log n)基本ステップを取ることに留意されたい。(実際、Pは、ユーザをTに挿入する前に当該ユーザをPKで順序付けることによって、追加の効率をいくらか得たいかもしれない)。
・Pは、Tにおいて、格納されている各ユーザiを、i’のステータス情報に置き換える:(i,a )。
すなわち、Pは、PK内のユーザのステータス情報をTに格納し、ユーザiに関するステータス情報に関して挿入/削除/探索のすべてを、ユーザiに関する挿入/削除/探索を介して行うことができるようにする。
(言い換えると、Tは、そのノードに格納される最初のエントリーを介して探索可能な平衡木である。)
・Pは、リーフのないすべてのノードがちょうど2つの子を持つようにTを「完了する」。
バイナリツリーでは、各ノードはたかだか2つの子を有する。したがって、リーフのないノードxは1つしか子を持てないであろう。一般性を損なうことなく、これをxの左の子x0と仮定する。この場合、Pは概念上、右の子x1にxを与え、そこにストリングeを格納する。
・Pは、Tの各ノードxにハッシュ値hvを関連付けるので、リーフから上方に計算される。
xがリーフである場合、hvは、xに格納されている値vのハッシュである、すなわちhv=H(v)である。
xが、値vを格納している深さdのノードである場合、hv=H(hvx0,hvx1,H(v))である。
最終的にTのルートεに関連付けられているハッシュ値は、
Figure 0006986519
である。
・PはRに電子署名する。
そのように得られたツリーTを、マークル平衡探索木と呼ぶ。このようなTは平衡探索木であり、したがって、Tで探索/挿入/削除のアルゴリズムが機能する。同時に、Tは一般化されたマークル木であるが、それでもなおマークル木である。通常のマークル木は、情報値、すなわち、保護する必要のある値をリーフのみに格納し、内部のノードには、保護値、すなわち、木を「保護する」ために使用されるハッシュ値のみを格納する。マークル木Tは、各ノードxに、vで表される情報値と、hvで表される保護値との両方を格納する。
ルート保護値Rに関連し、情報値vが実際に何であるかの証明は、hvx0、hvx1、H(v)、およびxからTのルートまでの経路内のノードの兄弟であるすべてのノードyの値hvから(ボトムアップ順で)なる認証経路を含む。
ここで、Pが一からTを計算する必要がないことを示そう。実際、Pは前のラウンドのマークル平衡探索木Tr−1が利用できると仮定する。すると、新たなブロックBの取得後、Pは、Bの支払集合PAY内の各支払
Figure 0006986519
について次のように行為する。

Figure 0006986519
が、既存ユーザが所有する金額を修正する場合、Pは、それが格納されているノードxのそのユーザのステータス情報を更新し、さらに、ツリーをマークル化し直す。これは、xからルートまでの経路に沿ったhvの値の再計算を単に伴うだけであり、したがって、nがユーザの数である場合、たかだか
Figure 0006986519
ハッシュの再計算である。

Figure 0006986519
が、マネーの初期金額aを有する新たなユーザiを参加させる場合、Pは、Tにステータス情報(i,α )を挿入する。Tは平衡探索木であるため、これにはO(log n)基本ステップしか伴わず、たかだか対数的に多いノードにしか影響しない。その後、Pはツリーをマークル化し直す。
の構築後、Pは、Rの自分の電子署名を公表するか、または、P’を信用することもあればしないこともある様々な検証者Vからの問い合わせを取り扱うP’にそれを与える。
ユーザiに関するVの問い合わせに回答するために、P’は次のように行為する。
・P’は、Tでユーザiを探索するのと同じアルゴリズムを実行する。
この探索は、Tの、たかだかO(log n)ノードの内容の検索に関わり、検索された各内容は、その内容が次に検索される必要のあるノードを決定する。
・アルゴリズムがノードxの内容vを検索する場合は必ず、P’は、Rに関連して、vの証明を提供する。
したがって、Vは、P’によって提供されるすべてのノードxの内容が正当であることをチェックするために、PによるRの電子署名と、受け取った証明とを使用することができる。したがって、Vは事実上マークル木Tで同じ探索アルゴリズムを実行し、i∈PKである場合、ユーザiのステータス情報を正確に検索する。そうでなければ、
Figure 0006986519

である場合(すなわち、探索アルゴリズムが記号⊥/ストリングeを返す場合)、Vは、iがPKのユーザではなかったことを確信する。
アルゴランドにおける、信用あるPの実現
多くの人によって信頼される個人の証明者Pがいない場合、それを「構築」することが重要になってくる。
アルゴランドでは、ラウンドrのすべてのステップsで、SVr,s内の検証者の(重み付けした)過半数が誠実であることを確信させられることに留意されたい。したがって、ここで我々は、検証者がPのタスクを実行できることを確実にする!
より正確には、以下の通りである。
・ブロックの他のフィールドに加えて、(例、前述した3つの方法のいずれかを使用して)ラウンドrの潜在的検証者iもステータスツリーTを生成する。当該潜在的検証者はi通例それまでのブロックチェーンB,...,Br−1を知っているので、容易にこれを行うことができることに留意されたい。
・iは、Tのルート値Rも含むブロックB を提案する。
例えば、B =(r,PAY,SIG(Qr−1),R,H(Br−1))。
・検証者(具体的には、ラウンドrの第2ステップの検証者)は、ラウンドの、リーダーによって提案されるブロックが有効かどうかをチェックし、これには第4成分、すなわち、ステータスツリーTのルート値R、が有効かどうかのチェックも含む。
実際、これらの検証者はそれまでのブロックシーケンスB,...,Br−1を知っているため、身元確認されたリーダーによって提案されるブロックが採用されると仮定すると、ステータス情報がラウンドr後にどうなるかを判定することができる。
・BA合意に達した後、ラウンドrの正式なブロックは正当なルート値Rを含み、また、Bは正規のクレデンシャルを有する十分に多くの検証者によって電子署名されているので、Bの証明書もRを認定する。
新たな正式なブロックは空、すなわちB=Bε であるかもしれないことに留意されたい。このような空のブロックは次の形式をとり、
Figure 0006986519
新たなブロックが空のブロックであるときには全ユーザのステータス情報が変化しないということに対応する。
要するに、PによるRの電子署名はBの証明書によって置き換えられる。いずれにしてもRは認証されるので、信用されていない証明者P’でも、前と同様、Rに関連して、ラウンドrですべてのユーザiのステータス情報を証明することができるであろう。
新たなブロックが生成されるときにそれを適時に知る人であれば誰でも、採用されたステータスツリーが「容易に更新可能な」タイプであるときは必ず、前のTr−1からより容易にTを構築することができる。
11 代理検証者および潜在的検証者
代理検証者
ユーザiがSVr,sのメンバーとして選択される確率は、他のユーザがiに「投票する」マネーに基づくこともできる(例、ここでも、当該マネーに比例して)。ユーザUは、通常通り、自分が行う支払の授受のすべてを支配し続けたいかもしれない。しかし、当該ユーザUは、リーダーおよび/または検証者として行為する権利および義務を別のユーザiに委任したいかもしれない。この場合、またこの目的のためにのみ、このようなユーザUは、iを、リーダー/検証者に用の自分の代理人にしたいことを示すことがある。ユーザUは、実際に、リーダー/検証者としての義務を1人または複数人のユーザiに委託するかもしれない。しばらくの間、かつ、一般性を損なうことなく、Uが、リーダーおよび検証者用に1人の代理人iを持つことを選択すると仮定しよう。
Uがラウンドrで自分の代理人としてiを選任するためには、いくつかの(好ましくは、電子署名された)方法がある。例えば、追加の仕組みを導入しないように(それは排除されない)、当該Uは、iに対する支払Pによって(例、Pの非センシティブフィールドIを使用して)、または別のユーザに対する支払P’によってそうすることができる。このような支払PまたはP’が一旦ブロックBの支払集合PAYに挿入されると、コミュニティ全体がUの選択を実現し、iがUの代理人として行為することが有効となる。
Uがラウンドrで自分の代理人としてiを選ぶ場合、この選択は、Uが以前に行ったいかなる選択にも優先し、iは、Uが異なる選択をするまでUの代理人であり続けることが好ましい(脚注48参照)。ユーザUは、システムに加入するまさにその瞬間から自分の代理人としてiを選任することもできる。例えば、Uが別のユーザからの支払
Figure 0006986519
を介してシステムに加入することを予定する場合、Uはそのユーザに対して、Uが自分の代理人としてiを選択することを示すUの署名を
Figure 0006986519
に含めるよう求めることができる。
脚注48
当然、ここで、また他の場所でも、曖昧さおよびタイは、ある所定の方法でブレークされる。例えば、Uが自分のマネー全額を潜在的検証者iに投票することを示すUの署名と、iが自分のマネーの全額を異なる潜在的検証者jに投票することを示す別の署名とをPAYが含む場合、Uの代理人の選択は無視されるか、または代わりに、対応する署名入りのステートメントが、jに対応するものに(例えば、辞書式順序で)先行する場合、Uは事実上iを選ぶ。
U(また、場合によっては他のユーザ)によってiにそのように投票されたマネーと、iが直接所有するマネーは、平等に処理されることができる。例えば、検証者が、ラウンドxで所有されるマネーに従ってPK内のユーザから選択されることになった場合、U(および、自分のマネーを代理人に「投票」することを選んだ他の全ユーザ)は、この選択の目的上は0のマネーを有すると見なされたであろうが、iが選択される元となったマネーはa +VM であろう。ここでa は、iがラウンドxで個人的に所有しているマネーであり、VM は、ラウンドxでiに(全ユーザによって)「投票された」マネーの総額である。例えば、Uがそのラウンドでiに自分のマネーを投票する唯一のユーザである場合、VM =a である。ラウンドxでiに自分のマネーを投票するユーザの集合がSであった場合、VM =Σj∈S である。当然、iが所有するマネーと、ラウンドxでiに投票されるマネーとに従ってiを選択する1つの方法は、
Figure 0006986519
の確率で、秘密暗号くじによってiを選択することからなる。
iが直接所有するマネーを、iに投票されるマネーとは別に処理することも可能である。例えば、iは、cが所与の係数である場合、マネーの金額a +c・VM に従って選ばれることができるであろう。例えば、c=0.5のとき、iが直接所有するマネーは、当該iに投票されるマネーの2倍に上る。
ユーザUが、自分の所有するマネーの一部のみをiに投票することも可能である。例えば、Uは、自分のマネーの3/4のみをiに投票することを選び、SVr,sに自分自身を選択するために重要な残高を有する。この場合、Uは、VM に0.75a しか貢献せず、Uは、確率0.25a でSVr,sに選択される。
ユーザiがSVr,sに属する選択がなされる結果として当該ユーザiに提供される報酬がある場合があり、iは、自分のマネーの一部を当該iに投票したユーザと、その報酬を分け合うことができる。例えば、iがブロックのリーダーになる場合、当該iは報酬Rを受領するかもしれない。この場合、この報酬の一部はUに対応するかもしれない。例えば、Uがiに投票するマネーがmである場合、iがUに支払うRの部分は、
Figure 0006986519
のようになるかもしれない。
ユーザが代理人を選んで変更できるということは、代理人を誠実であり続けさせる役に立つであろう。例えば、Uが、自分のマネーをiに投票するが、iがブロックBのリーダーであるときにはいつであれ、PAYの支払集合があまりに頻繁に空である、または「乏しい」と疑う場合、Uは自分の代理人を変更することができる。
普通ユーザUも、自分のマネーの異なる割合を複数の代理人の各人に投票して、複数の代理人を指定することができる。当然、所定の手続きを使用して、Uが、自分が実際に持っているよりも多くのマネーを投票することを防止する。
代理人を選ぶ別の方法は、ユーザUが個別の公開・秘密電子署名ペア(pk’,sk’)を生成し、pk’に、リーダー/検証者の選択のためにUを代表する権限を移譲することである(例、ブロックチェーン内のブロックに入る電子署名による)。すなわち、pk’はUの代わりに支払を行うことはできない(事実、pk’はマネーを直接有することはできない)が、Uの代わりにリーダーまたは検証者として行為することができ、Uが関連するラウンドxで所有するマネーに応じて、リーダー/検証者として選択されることができる。例えば、pk’
Figure 0006986519
の確率で選択されることができる。(これは、Uが自分のリーダー/検証者としてのすべての権利/権限を委任することを仮定しているが、当然、前述したように、Uは自分の権利/権限の一部のみを委任することができる。)自分の代わりに別のユーザまたはエンティティiにリーダー/検証者を務めることを委任するために、Uはiにsk’を与える。このことは、pk’が「稼ぐ」かもしれない報酬をUとiとの間で(どのように決定された比率であっても)分割する方法を非常に明確にする。なぜなら、前述したように、Uにiの選択確率に貢献させるのではなく、直接選択されるのはpk’自体だからである。
Uは、自分で(pk’,sk’)を生成する必要はないことに留意されたい。例えば、iが(pk’,sk’)を生成し、Uが自分の代理人としてiを選びたい場合に、署名するためにUにpk’を与えることができる。
具体的には、ユーザUは、自分の代理人として、銀行iを、前述したアプローチのいずれかで選ぶことができる。代理人を選ぶことの1つの利点は、典型的なユーザよりも代理人の方がはるかに高速でセキュアな通信ネットワークを有する可能性があることである。すべての普通ユーザが正規の代理人を選ぶ(または選ぶよう要求された)場合、ブロックの生成ははるかに高速化するであろう。そして、ブロックは普通ユーザがアクセス権を有するネットワークで伝播されることもできる。そうでなければ、iがUを代理する場合、当該iは、Uに新たなブロックを直接与えるか、または、Uが関心を抱いている支払がブロックチェーンに入った証拠をUに与えることができる。
潜在的検証者
これまでは、アルゴランドで、各ユーザiが、あるラウンドrの検証者またはリーダーとして選択されることができるということであった。しかし、当業者によって、上記の点は制約ではないと容易に認識できる。実際、アルゴランドは、非許可でいつでも参加し、通常通り支払の授受(より一般的にはトランザクション)を行うことのできる集団ユーザと、ラウンドのリーダーと検証者とがその中から選択される、特殊クラスの潜在的検証者とを有することができる。これら2つの集合は重複することが可能であり(その場合、少なくとも一部の潜在的検証者は支払の授受を行うこともできる)、または別々であることが可能である(その場合、潜在的検証者は、選択された場合、リーダーまたは検証者としてのみ行為することができる)。ある意味では、前のセクションで述べたようにアルゴランドでは、各ユーザが潜在的検証者である。アルゴランドは、2つの別々のマネーの金額を有するユーザまたは潜在的検証者iも有する場合があり、そのうちの一方のみが、iがリーダーまたは検証者として選択されるために重要である。
潜在的検証者のクラスは許可型にすることができる。この場合、潜在的な検証者の所与の集合Sの中から検証者/リーダーiを選択する確率は、iが所有するマネーの金額に依存する必要はない。例えば、iは、均一な確率の暗号くじによってSから選択することができる。
代わりに、すべての潜在的検証者は常に選択することができる(および/または、そのうちの1人のみがラウンドリーダーとして選択される)。この場合、当該すべての潜在的検証者は、プロトコルBAを使用して新たなブロックに関して合意に達することができ、またはより一般的には、当該すべての潜在的検証者は、効率的であってかつ好ましくはプレーヤ代替性のプロトコルを使用することもできる。
12 許可型アルゴランド
このセクションでは、プライバシーとトレーサビリティとのバランスをとり、新たな種類のインセンティブを可能にし、銀行または他の外部エンティティに新しい非支配型の役割を与える、アルゴランドの許可型バージョンを論じる。この許可型バージョンは、以下に挙げる伝統的な概念に依拠する。
12.1 電子証明書
システムにユーザを登録する権限を有する、ある当事者Rの公開鍵pkが、公開で知られていると仮定する。すると、ユーザiの身元を確認し、公開鍵pkが本当にiに属していることを検証した後、Rは、電子署名Cを発行して、pkがシステムの適法な公開鍵であるだけでなく、iに関する何らかの適切な追加情報infoが成り立つことも証明してもよい。この場合、証明書は、本質的に次の形式である。
Figure 0006986519
infoに明記される情報は、かなり多様であってもよい。例えば、システム内のiの役割、および/または証明書の発行日を明記することができる。失効日、すなわち、それより後はCに依拠してはならない日を明記することもあるかもしれない。このような日が明記されていない場合、Cは無期限である。証明書は、別の用途でも別の形でも長く使用されてきた。
12.2 (無期限)証明書を有するアルゴランド
アルゴランドでは、各ユーザi∈PKが、適切なエンティティR(例、予め指定された集合内の銀行)によって発行される電子署名Cを有することを要求されることがある。ラウンドrの支払
Figure 0006986519
を別のユーザjに行う場合、iは、
Figure 0006986519
に添えてCおよび/またはCを転送するか、または
Figure 0006986519
自体にそのうちの一方または両方を含めることができる。すなわち、記号では、
Figure 0006986519
になる。
後者の実践を仮定すると、
・支払
Figure 0006986519
は、その支払人とその受取人の双方の証明書も含む場合に限り、あるラウンドで有効と見なされ、したがってPAYに加わることができる。
また、証明書に失効日r=[t,t]がある場合、tは、最も早い失効日よりも小さくなければならない。
・同時に、このような支払がPAYに属する場合、それに対応するマネーの移転は無条件に実行される。
無期限証明書の役割
ユーザiの証明書Cが一旦失効するか、またはその失効前に(iが「財務的に健全な状態」である限り)、Rは、Cよりも失効日が先の、新たな証明書C’を発行することができる。
したがって、この場合、Rはiのマネーに対して大きな支配力を有する。私的な使用のためにそれを没収することはできない(そうするにはiの電子署名を偽造できなくてはならないため)が、iがそれを消費するのを防止することができる。実際、Cの失効日後のラウンドrでは、iの支払はPAYに加わることはできない。
Rのこの権限は、適切なエンティティE(例えば、政府)の、ユーザの従来の銀行口座を凍結する権限に対応することに留意されたい。実際、従来の環境では、こうしたEがiのマネーを着服することもあるだろう。
暗号通貨の主な魅力は、任意のエンティティEがユーザをそのマネーから切り離すことがまさしく不可能であることである。したがって、すべての証明書が無期限であるアルゴランドの証明書ベースのバージョンで、この不可能性が保たれ続けることを強調したい。実際、ラウンドrで別のユーザjに支払を行いたいユーザiは常に、jに対するラウンドrの支払
Figure 0006986519
に無期限証明書CおよびCを含めることができ、ラウンドのリーダーlが誠実な場合、
Figure 0006986519
はPAYに表示される。要するに、
「無期限証明書は、ユーザをそのマネーから切り離すために使用することはできないが、他の目的を達成するためには実際に非常に価値がある。」
12.3 (無期限)証明書による違法活動の防止
従来の小切手により行われる支払の支払人および受取人は、小切手を持つ誰によっても容易に身元を確認できる。したがって、小切手はマネーロンダリングまたは他の違法活動にとって理想的ではない。正規の登録機関によって発行される電子証明書をアルゴランドで使用して、ある所与のエンティティのみが、適切な状況に限り、iが望む支払をiが行うことを妨げずに、所与の公開鍵pkの所有者iの身元を確認することができることを確実にすることができるであろう。簡単な例を挙げてみよう。
システム内には、複数の登録権限機関があるかもしれない。具体性のためにのみ、それを認可銀行とし、その公開鍵は別の上位の権限機関(その公開鍵は一般に知られている)によって一般に知られており(または、場合によっては証明書チェーンによって認定されている)、Gを、政府と呼ばれる特別なエンティティとする。
電子公開鍵の所有者としてシステムに参加するために、iは、認可銀行のうちの1行から証明書Cを得る必要がある。それを得るために、公開・秘密署名ペア(pk,sk)を生成した後、iは認可銀行Bにpkの証明書の発行を依頼する。このような証明書を発行するために、Bは、何らかの識別情報IDを作成するために、iの身元確認をすることを要求される(脚注49参照)。そして、BはH(ID)を計算し、(好ましくは)それを証明書の別のフィールドにする。例えば、追加情報を無視して、Bは次の式を計算してiに与える。
Figure 0006986519
脚注49
「突っ込んで」いうと、こうしたIは、iの氏名と住所、iの写真、iの同意書の電子署名(デジタルであった場合)を含んでもよく、または、iは自分の署名入りの同意書と一緒に写真に写ることができ、さらに、Iに入れるために写真をデジタル化する。銀行は、自行自体の保護および同様にiの保護のために、Iが本当に正当であることの証拠となるiの署名も取得して保管することもできる。
Hはランダムオラクルであるため、誰も、Cから所有者のアイデンティティを取り出すことはできない。銀行だけが、pkの所有者がiであることを知っている。しかし、政府が、例えば、支払
Figure 0006986519
の支払人を調査したい場合、関連する証明書Cと、Cを発行した銀行Bとの両方を
Figure 0006986519
から検索し、さらに、然るべき権限(例、裁判所命令)によって、iの正当な識別情報IDを作るようBに求めるかまたは強制する。
Hは衝突耐性であるため、銀行は、証明書に元々挿入されていたものとは異なる識別情報ID’を明らかにすることはできないことに留意されたい。代替的に、H(ID)の代わりに、暗号法の用語で、IDへの「コミットメント」を使用すれば十分である。
ある具体的な代替案は、Cに、IDの暗号E(ID)を、好ましくは一意に解読可能な秘密鍵または公開鍵暗号化スキームEを使用して格納することである。具体的には、IDは、銀行Bのみが知る鍵を用いて暗号化することができる。記号で表すと、E(ID)=E(ID)である。このように、政府は識別情報IDを取り出すためにBの助けを必要とする。
代替的に、Eは、公開鍵暗号化スキームとすることもでき、IDは、(対応する復号化鍵を知る唯一のものである)政府の公開鍵を使用して暗号化することもできる。記号で表すと、E(ID)=E(ID)である。この場合、政府はIDの取り出しにBの助けを必要としない。実際、すべての支払の支払人および受取人のアイデンティティは、Gにとって透過的である。しかし、IDからE(ID)を計算した政府と銀行とを除き、他の誰もE(ID)からIDを知ることはできない。また、暗号E(ID)が確率論的である場合、pkの所有者iが誰かを正しく言い当てた人でも、おそらく自分の推測を確認することはできないであろう。
pkに対応する秘密鍵skを知っているのはiだけであるため、証明書Cが一旦発行されたら、BおよびGのいずれも、iの電子署名に対する支配力を有さないことを強調しておく。加えて、
Figure 0006986519
のみが
Figure 0006986519
の一部であるため、BおよびGのいずれも、iの支払
Figure 0006986519
のセンシティブ情報
Figure 0006986519
を理解することはできない。最後に、ランダムに選択された検証者でない限り、BおよびGはいずれも、支払
Figure 0006986519
の処理に関わらない。
要するに、ユーザのプライバシーを完全に犠牲にしなくても、ビットコイン様のシステムに関して述べた法執行の懸念が解消する。実際、BとGとを除き、iは、銀行、商店、ユーザ等の他の誰かに対する、ビットコインおよび同様のシステムで享受するのと同じ(疑似)匿名性を享受し続ける。
最後に、より高度な暗号技術を使用することによって、適切な状況下でのユーザのトレーサビリティを維持しながら、ユーザのプライバシーを高めることも可能である(脚注50参照)。
脚注50
例えば、最後のシナリオに注目すると、iが銀行Bから証明書C=SIG(B,pk,E(ID))を一旦取得したら、異なる公開pk’について、iは別の証明書C’=SIG(B,pk’,E’(ID))を取得することも可能であり、それについてBは、IDがE’(ID)を復号化したものであることをもはや知らない。
12.4 銀行の新たな役割
アルゴランドにおける鍵の認定が、銀行の新たな役割である。銀行Bがその顧客のために容易に行うことのできる役割である。実際、Bは既に当該顧客を非常によく知っており、通例、彼らと随時コミュニケーションを取っている。顧客の中の一人の鍵iを認定することによって、Bは、単純だが価値ある(そして、場合によっては金銭的に報酬が得られる)サービスを行う。
アルゴランドにおいて銀行Bが持ち得る別の役割は、顧客iによって正規に権限を与えられたBは、iの従来の銀行口座から、iがアルゴランドに所有する電子鍵pkにマネーを移転することができることである。(実際、Bおよび他のすべての銀行は「同じ為替レートで」そうしており、アルゴランドは、国の通貨を基盤とした、非常に分散された、便利かつ自己規制された支払システムとして使用することができる。)銀行Bがマネーをpkに移転するための1つの方法は、Bがアルゴランドに所有する電子鍵pkからpkに支払を行うことである。実際、銀行はその顧客よりも簡単に、国の通貨を公開取引所でアルゴランドに変換することができる(脚注51参照)。
脚注51
さらに一歩踏み込むと、政府はアルゴランドにおいてマネーを印刷することも許される場合があり、それを、特に銀行に移転することもでき、または銀行が十分に規制されている場合には、一定のパラメータ内でアルゴランドマネーを生成することを銀行に許す場合がある。
最後に、銀行は多くの場合信頼されているため、自分が行う支払を完全に管理するユーザiは、当該ユーザiの検証のインセンティブをBと共有して、自分の代わりに検証者として行為することを銀行Bに委託することを望むかもしれない(脚注52参照)。
脚注52
まさにそれを行うための「代理人」メカニズムは、付録「??」に記載している。そのセクションは、特別に構築された通信ネットワークを用いたアルゴランドの実施態様に充てられている。しかし、そこに記載されている委託メカニズムは、基礎となるネットワークがどのようなものであろうとも採用することができる可能性がある。
12.5 小売店のみからの報酬
登録権限機関が銀行であるかどうかを問わず、また法執行の懸念が処理されているかどうかを問わず、アルゴランドの許可型展開は、所与の鍵pkが商店に属していることを(例、その証明書C内で)識別することを可能にする。
クレジットカードでの支払を現在受け付けている商店は、クレジットカード会社に対して支払わなければならない取引手数料を既に受け入れている。したがって、当該商店は、(数日ではなく数分以内に、また、はるかに議論の余地のない方法で支払われる方を好むことに加えて、)クレジットカードシステムの、通例、より高い取引手数料を支払うよりも、アルゴランドで1%の手数料を支払う方を好むかもしれない。
したがって、証明書ベースのアルゴランドは次のことを確実にすることができる。
(1)全員が、商店に行われる支払の小さな割合のみの報酬を与え、なおかつ、
(2)検証者には、他のすべての支払も同様に処理することへのインセンティブが与えられる。
例えば、A’を、PAYの支払で小売店に支払われる総額とすると、最高潜在的報酬R’を計算できるであろう(例、R’=1%A’)。しかし、リーダーおよび検証者はまとめて金額全体R’を受け取るのではなく、PAYでの全支払の総数(または総額、もしくはそれらの組み合わせ)に連動して増えるR’の一部のみを受け取る。例えば、非常に単純にして、PAYでの支払の総数がmである場合、分配される実際の報酬はR’(1−1/m)となる。前と同様、これは、各小売店に支払われた金額から、一部である1%(1−1/m)を差し引き、差し引かれたこの金額を、選ばれた公式に従ってリーダーと検証者との間で分割することによって自動的に行うことができる。
13 変型
いくつか考えられる、アルゴランドの変型を論じてみる。
13.1 代替的な検証者選択メカニズム
これまで、アルゴランドは、規定された誠実な過半数をSVが有することを確認して、前のラウンドに依存する数量から、リーダーlおよび検証者集合SVを自動的に選択するものであった。しかし、検証者およびリーダーを選択する代替方法を指摘したい。
このような方法の1つは、当然、暗号プロトコルにより全ユーザによって実行される。しかし、このアプローチは、システム内のユーザ数が多い場合には遅くなるかもしれない。したがって、2種類の代替メカニズム、すなわち、連鎖型、自然ベース、および信用できる第三者を考えてみよう。(これらのメカニズムを、既に述べたものと混合することもできる。)
連鎖型メカニズム
各SVが誠実な過半数を有すると帰納的に仮定すると、SV自体(またはより一般的にはrまでのラウンドの検証者の一部)にラウンドrの検証者集合および/またはリーダーを選択させることができるであろう。例えば、複数者によるセキュア計算によってそうすることができるであろう。誠実な過半数を有するように初期の検証者集合が選ばれると仮定すると、ブートストラッピングに頼る。すなわち、各検証者集合の誠実な過半数は、次の検証者集合の誠実な過半数を含意する。検証者集合は全ユーザの集合に対して小さいため、そのメンバーは、この選択を非常に素早く実施することができる。
ここでも、各ラウンドについて、検証者集合およびリーダーを決定論的に導く、十分に長いランダムなストリングを選択すれば十分である。
自然ベースのメカニズム
所与のラウンドrの検証者集合SVおよびリーダーlは、ラウンドrに関連付けられているランダム値vから、予め決められたやり方で、規定のユーザの集合PVr−kから選択することができる。具体的には、vは、自然かつ公開のランダム値としてもよい。これによって、我々は、これが任意の所与の個人ではとても制御することができない、ランダムプロセスの広く利用できる結果であることを意味する。例えば、vは、所与の時刻(例、ラウンドrの始まり、もしくは前のラウンドの所与の時刻)における様々な都市の気温、または所与の証券取引所で所与の時刻に売買される所与の有価証券の株数、等から構成してもよい。
自然かつ公開のランダム値は十分に長くないことがあるため、
Figure 0006986519
を設定するよりも、代わりに
Figure 0006986519
を設定することもでき、既に述べたように、H(v)を適切な擬似ランダム的に伸ばす必要がある。
受託者ベースのメカニズム
SVを選択する代替アプローチは、そのうちの少なくとも1人が誠実であることを保証するように選択された、1つまたは複数の特別なエンティティである、受託者に関わる。受託者は、支払集合PAYの構築には関わることはできないが、検証者集合SVおよび/またはリーダーlを選ぶことができる。
最も単純な受託者ベースのメカニズムは、当然、1受託者のものである。受託者Tが1人しかいない場合、当該受託者は必然的に誠実である。したがって、当該受託者はラウンドrでSV(またはSVがそこから導かれた十分にランダムなストリングs)を自明に選択し、電子署名し、利用できるようにすることができる。
これは単純なメカニズムであるが、Tに非常に大きな信頼を置く。それほどではないにしても当該Tを信頼するために、Tは、自分だけが生成することができ、ラウンドrによって一意に決定された1つのストリングs、例えば、s=SIG(r)、を利用できるようにすることができる。さらに、すべてのユーザは、SVがそこから導かれたランダムストリング、H(SIG(v))を計算することができる。
このように、Tは、集合SVを支配する権限を持たない。本質的に、当該Tは自己裁量で1つの戦略的決定を有する。すなわち、SIG(r)を利用できるようにするかどうかである。したがって、Tが誠実に行為しているかどうかをチェックすること、ひいては適切な賞罰を用いてTが誠実に行為することを確実にすることは、より簡単である。
このアプローチの問題は、予測不可能性(の欠如)である。実際、Tは、かなり前もってSIG(r)を計算しておき、それを秘かに誰かに明らかにするかもしれず、そのため、その誰かは将来のラウンドの検証者集合を知り、そのメンバーを攻撃するかまたは腐敗させるのに十分な時間を有する。
この問題を避けるために、セキュアなハードウェアに依拠することができる。本質的に、適切なラウンドで正規の電子署名を出力するプログラムと合わせて、Tを、「外部に」公開鍵を投稿させ、対となる秘密鍵を「内部に」閉じ込める、改ざん防止装置にすることができる。このアプローチは、当然、セキュアなハードウェアの内部で展開されるプログラムが、事前に将来の署名を漏洩するための秘密の命令を有さないことを確信する必要がある。
別のアプローチは、各ラウンドrに関連付けられている自然公開ランダム値vを使用することである。例えば、Tは、SIG(v)を利用できるようにするよう求められることがある。このように、将来のラウンドrの値vは誰にも分からないため、Tは、事前に漏洩するための電子署名を有さない。
しかし、Tが依然として漏洩する可能性がある唯一のものは、T自身の秘密署名鍵である。この潜在的な問題に対処するためには、k人の受託者に依拠することができる。そのうちの適切な過半数が誠実であることを確実にするよう当該受託者を選ぶことができた場合、当該受託者は、各ラウンドrでSVを選ぶために、複数者によるセキュア計算を間違いなく使用することができる。信頼性には劣るがより単純にすると、各ラウンドrで、各受託者iに、rに一意に関連付けられているとともにiだけが生成することのできる1つのストリングを利用することができるようにさせ、次いで、すべてのこのようなストリングについてSVを計算することができる。例えば、各受託者iは、SIG(r)を利用できるようにして、検証者集合SVを導くランダムなストリングs=H(SIG(r),...,SIG(r))を計算できるようにすることができるであろう。このアプローチで我々は、各電子署名SIG(r)が生成されることを確実にするための賞罰に依拠し、シーケンスs,s,...が依然として予測不可能なままであることを確実にするために、たとえ1人の受託者iであっても、その誠実さに依拠することがあるかもしれない。
扱いにくいのは、当然ながら、必要なストリングを「利用できる」ようにする部分である。伝播プロトコルに依拠した場合、悪意の受託者は、混乱を生じさせるために故意に遅らせてその伝播を開始するかもしれない。そのため、受託者ベースのメカニズムは、「保証されたブロードキャストチャネル」の存在、すなわち、あるユーザがメッセージmを受信すると、他の皆が同じmを受信することを当該ユーザが保証されるような、メッセージの送信方法に依拠しなければならない。
最後に、各ラウンドでセキュアな計算を使用するのではなく、セキュアな計算事前処理ステップを使用することができる。このステップはシステムの始めに、誠実な過半数を有するように選択された受託者の集合によって取られる。このステップは、場合によっては複数の計算段階によって、各受託者iについて公開値pvおよび秘密値vを生成する。この初期計算にはいくらか時間がかかるかもしれないが、各ラウンドrに必要な計算は自明とすることができるであろう。例えば、各ラウンドrについて、各受託者iは、自分の秘密値vを使用して、(好ましくは電子署名された)1つの再構築ストリングs を生成して伝播し、正当な再構築ストリングの過半数を含むストリングの任意の集合Sがあるとすると、誰もがSV(またはSVがそこから導かれるランダム値)を曖昧さなく構築することができるようにする。このアプローチの危険性は、当然、固定された受託者の集合は、より攻撃を受けやすく、または腐敗されやすいおそれがあることである。
13.2 より高度な暗号ツール
アルゴランドは、より高度な暗号ツールからも利益を受けることができる。具体的には、以下の通りである。
1. 統合可能な署名
しばしば、アルゴランドでは、データDのうちの数個が複数者によって電子署名されなければならない。よりコンパクトな認証済み記録を生成するために、組み合わせ可能な電子署名を使用することができる。このような署名では、複数の公開鍵、例えば、ΡΚ、PKおよびPKを1つの公開鍵PK=ΡΚ1,2,3に統合することができるであろう。また、異なる公開鍵に関連した同じデータDの署名は、対応する統合された公開鍵に関連して、1つの署名に統合することができる。例えば、SIG(D)、SIG(D)およびSIG(D)は1つの電子署名s=SIG1,2,3(D)に変換することができるであろうが、これは、公開鍵PK1,2,3に関連して、誰によっても検証することができる。関連する公開鍵の識別子のコンパクトな記録、我々の例では、集合{1,2,3}にはsを添付することができるので、誰でも素早くΡΚ、PKおよびPKを収集してPK=PK1,2,3を計算し、PKに基づいてDの署名sを検証することができる。
これにより、複数の関係する伝播を単一の伝播にすることができる。本質的に、伝播プロトコルの間に、ユーザが、記録{1,2,3}とともにSIG1,2,3(D)、および記録{4,5}とともにSIG4,5(D)を受信したと仮定する。すると、当該ユーザはSIG1,2,3,4,5(D)および記録{1,2,3,4,5}を伝播するのと同じである。
2. ツリーハッシュアンドサイン
署名が複数のデータを認証する場合、署名された項目のリスト全体を維持または送信しなければならないよりも、1つのデータの署名だけを抽出できる方が便利であろう。例えば、プレーヤは、認証されたPAY全体ではなく、所与の支払P∈PAYの認証記録を維持したいかもしれない。このために、まず、各支払P∈PAYを個別のリーフに格納するマークル木を生成し、それからルートに電子署名することができる。この署名は、項目Pおよびその認証経路とともに、本質的にP単独の代替署名である。
3. 配達証明付き電子メール
後者の処理方法の1つの利点は、プレーヤが、lへの支払を配達証明付き電子メール(脚注53参照)によって、好ましくは送信者匿名で送信し、lが意図的にその支払の一部をPAY に含めないことにした場合に、lを罰する助けになり得る受信確認(レシート)を得られるようになることである。
脚注53
例えば、米国特許第5666420号の軽量配達証明付き電子メールによる。
14 適用範囲
本明細書で説明するシステムのソフトウェア実装は、コンピュータ可読媒体に格納されるとともに1つまたは複数のプロセッサで実行される、実行可能コードを含むことができる。コンピュータ可読媒体は、非一時的なものとすることができ、コンピュータハードドライブ、ROM、RAM、フラッシュメモリ、CD−ROM、DVD−ROM、フラッシュドライブ、SDカード、および/もしくは、例えばユニバーサルシリアルバス(USB)インタフェースを有する他のドライブなどの携帯コンピュータ記憶媒体、ならびに/または実行可能コードを格納しプロセッサで実行することができる任意の他の適切な有形もしくは非一時的コンピュータ可読媒体もしくはコンピュータメモリであってもよい。本明細書で説明するシステムは、任意の適切なオペレーティングシステムとの関係で使用してもよい。
本発明の他の実施形態は、本明細書で開示する本発明の明細または実施を考慮することで当業者には明らかになるであろう。明細および実施例は例示的なものとしてのみ見なされ、本発明の真の範囲および精神は以下の請求項によって示されることが意図される。

Claims (17)

  1. ブロックチェーンシステムの第1のエンティティが、前記第1のエンティティが所与のタスクを実行するために選択されていることを、前記ブロックチェーンシステムに関連付けられた他のエンティティに対して証明することを可能にする方法であって、
    第1の暗号化手順に従って、ブロックチェーンの既存のブロックのシーケンスに基づいてストリングを生成することと、
    密鍵を用いて、前記ストリングに一意に関連付けられている証明を計算することと、
    第2の暗号化手順に従って、前記証明に基づいて数量を決定することと、
    前記数量が所与の閾値を満たすかを判定することと、
    前記判定に応て、前記証明を前記ブロックチェーンに伝播させることと、を含む方法。
  2. 前記第1のエンティティは、前記ブロックチェーンに追加される新しいブロックを提案する潜在的なリーダーを含み、前記タスクは、前記新しいブロックを提案することを含む、請求項1に記載の方法。
  3. 前記第1のエンティティは、前記ブロックチェーンに追加される前記提案された新しいブロックとともに、前記証明を伝播させる、請求項2に記載の方法。
  4. 前記第1のエンティティは、潜在的な検証者を含み、前記タスクは、前記ブロックチェーンに投稿される情報の一部が正しいことを検証することを含む、請求項1乃至3のいずれか1項に記載の方法。
  5. 前記ブロックチェーンに投稿される前記情報の一部は、前記ブロックチェーンに追加される新しいブロックを含む、請求項4に記載の方法。
  6. 前記潜在的な検証者は、前記証明を、前記検証の結果とともに伝播させる、請求項4又は5に記載の方法。
  7. 前記第1のエンティティは潜在的な検証者を含み、前記タスクは、一組のトランザクションを正しく処理すること、を含む、請求項1乃至3のいずれか1項に記載の方法。
  8. 前記トランザクションは、前記ブロックチェーンに投稿される提案されたトランザクションのブロックの一部である、請求項7に記載の方法。
  9. 前記潜在的な検証者は、前記証明を、その検証の結果とともに伝播させる、請求項7又は8に記載の方法。
  10. 前記証明はデジタル署名を含む、請求項1乃至9のいずれか1項に記載の方法。
  11. 前記証明は、前記ブロックチェーンに関連付けられた前記他のエンティティによって検証可能であり、前記秘密鍵は前記他のエンティティには利用できない、請求項1乃至10のいずれか1項に記載の方法。
  12. 前記第1の暗号化手順は、前記ブロックチェーンの前記既存のブロックのシーケンスの最後のブロックに基づいて導き出したランダムなストリングを決定することを含む、請求項1乃至11のいずれか1項に記載の方法。
  13. 前記第2の暗号化手順はランダムオラクルを含む、請求項1乃至12のいずれか1項に記載の方法。
  14. 前記第2の暗号化手順は暗号学的ハッシュ関数を含む、請求項1乃至13のいずれか1項に記載の方法。
  15. 前記数量が所与の閾値を満たすかを判定することは、前記数量が前記所与の閾値よりも小さいかを判定することを含む、請求項1乃至14のいずれか1項に記載の方法。
  16. 請求項1乃至15のいずれか1項に記載の方法を実施する実行可能コードを含む、コンピュータソフトウェア。
  17. ブロックチェーンシステムの第1のエンティティが、前記第1のエンティティが所与のタスクを実行するために選択されていることを、前記ブロックチェーンシステムに関連付けられた他のエンティティに対して証明することを可能にするシステムであって、
    第1の暗号化手順に従って、ブロックチェーンの既存のブロックのシーケンスに基づいてストリングを生成する手段と、
    密鍵を用いて、前記ストリングに一意に関連付けられている証明を計算する手段と、
    第2の暗号化手順に従って、前記証明に基づいて数量を決定する手段と、
    前記数量が所与の閾値を満たすかを判定する手段と、
    前記判定に応て、前記証明を前記ブロックチェーンに伝播させる手段と、を備えるシステム。
JP2018557931A 2016-05-04 2017-05-04 分散型トランザクション伝播および検証システム Active JP6986519B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021193208A JP2022031817A (ja) 2016-05-04 2021-11-29 分散型トランザクション伝播および検証システム

Applications Claiming Priority (43)

Application Number Priority Date Filing Date Title
US201662331654P 2016-05-04 2016-05-04
US62/331,654 2016-05-04
US201662333340P 2016-05-09 2016-05-09
US62/333,340 2016-05-09
US201662343369P 2016-05-31 2016-05-31
US62/343,369 2016-05-31
US201662344667P 2016-06-02 2016-06-02
US62/344,667 2016-06-02
US201662346775P 2016-06-07 2016-06-07
US62/346,775 2016-06-07
US201662351011P 2016-06-16 2016-06-16
US62/351,011 2016-06-16
US201662353482P 2016-06-22 2016-06-22
US62/353,482 2016-06-22
US201662354195P 2016-06-24 2016-06-24
US62/354,195 2016-06-24
US201662363970P 2016-07-19 2016-07-19
US62/363,970 2016-07-19
US201662369447P 2016-08-01 2016-08-01
US62/369,447 2016-08-01
US201662378753P 2016-08-24 2016-08-24
US62/378,753 2016-08-24
US201662383299P 2016-09-02 2016-09-02
US62/383,299 2016-09-02
US201662394091P 2016-09-13 2016-09-13
US62/394,091 2016-09-13
US201662400361P 2016-09-27 2016-09-27
US62/400,361 2016-09-27
US201662403403P 2016-10-03 2016-10-03
US62/403,403 2016-10-03
US201662410721P 2016-10-20 2016-10-20
US62/410,721 2016-10-20
US201662416959P 2016-11-03 2016-11-03
US62/416,959 2016-11-03
US201662422883P 2016-11-16 2016-11-16
US62/422,883 2016-11-16
US201762455444P 2017-02-06 2017-02-06
US62/455,444 2017-02-06
US201762458746P 2017-02-14 2017-02-14
US62/458,746 2017-02-14
US201762459652P 2017-02-16 2017-02-16
US62/459,652 2017-02-16
PCT/US2017/031037 WO2017192837A1 (en) 2016-05-04 2017-05-04 Distributed transaction propagation and verification system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021193208A Division JP2022031817A (ja) 2016-05-04 2021-11-29 分散型トランザクション伝播および検証システム

Publications (3)

Publication Number Publication Date
JP2019519137A JP2019519137A (ja) 2019-07-04
JP2019519137A5 JP2019519137A5 (ja) 2020-12-10
JP6986519B2 true JP6986519B2 (ja) 2021-12-22

Family

ID=60203556

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018557931A Active JP6986519B2 (ja) 2016-05-04 2017-05-04 分散型トランザクション伝播および検証システム
JP2021193208A Pending JP2022031817A (ja) 2016-05-04 2021-11-29 分散型トランザクション伝播および検証システム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021193208A Pending JP2022031817A (ja) 2016-05-04 2021-11-29 分散型トランザクション伝播および検証システム

Country Status (12)

Country Link
US (1) US20190147438A1 (ja)
EP (2) EP3896638A1 (ja)
JP (2) JP6986519B2 (ja)
KR (2) KR20220088507A (ja)
CN (3) CN115660675A (ja)
AU (1) AU2017260013A1 (ja)
CA (1) CA3020997A1 (ja)
IL (2) IL262638B (ja)
MA (1) MA44883A (ja)
RU (1) RU2018142270A (ja)
SG (2) SG11201809648QA (ja)
WO (1) WO2017192837A1 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10762481B2 (en) * 2017-03-21 2020-09-01 The Toronto-Dominion Bank Secure offline approval of initiated data exchanges
US11240035B2 (en) 2017-05-05 2022-02-01 Jeff STOLLMAN Systems and methods for extending the utility of blockchains through use of related child blockchains
JP2019012415A (ja) * 2017-06-30 2019-01-24 株式会社bitFlyer ネットワークにおける合意形成方法及び当該ネットワークを構成するノード
US10855758B1 (en) * 2017-08-04 2020-12-01 EMC IP Holding Company LLC Decentralized computing resource management using distributed ledger
US10891694B1 (en) * 2017-09-06 2021-01-12 State Farm Mutual Automobile Insurance Company Using vehicle mode for subrogation on a distributed ledger
US10872381B1 (en) 2017-09-06 2020-12-22 State Farm Mutual Automobile Insurance Company Evidence oracles
US11386498B1 (en) 2017-09-06 2022-07-12 State Farm Mutual Automobile Insurance Company Using historical data for subrogation on a distributed ledger
US11416942B1 (en) 2017-09-06 2022-08-16 State Farm Mutual Automobile Insurance Company Using a distributed ledger to determine fault in subrogation
US10818121B2 (en) * 2017-09-15 2020-10-27 Panasonic Intellectual Property Corporation Of America Electronic voting system and control method
US10887090B2 (en) * 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support
KR20200101326A (ko) * 2017-09-28 2020-08-27 알고란드 인코포레이티드 메시지 자격증명된 블록체인
US10812275B2 (en) * 2017-11-28 2020-10-20 American Express Travel Related Services Company, Inc. Decoupling and updating pinned certificates on a mobile device
CN111566681A (zh) * 2017-12-19 2020-08-21 阿尔戈兰德公司 快速且分区弹性的区块链
US10250708B1 (en) * 2017-12-26 2019-04-02 Akamai Technologies, Inc. High performance distributed system of record
US11977924B2 (en) * 2017-12-26 2024-05-07 Akamai Technologies, Inc. High performance distributed system of record with distributed random oracle
US11488433B2 (en) * 2018-01-11 2022-11-01 Mastercard International Incorporated Method and system for public elections on a moderated blockchain
US20200366495A1 (en) * 2018-01-29 2020-11-19 Ubiquicorp Limited Proof of majority block consensus method for generating and uploading a block to a blockchain
CN108446376B (zh) * 2018-03-16 2022-04-08 众安信息技术服务有限公司 数据存储方法与装置
US10855446B2 (en) * 2018-04-24 2020-12-01 Duvon Corporation Autonomous exchange via entrusted ledger
CN110945831B (zh) * 2018-05-08 2021-04-27 维萨国际服务协会 抗Sybil攻击身份的生成
TW202004626A (zh) * 2018-05-18 2020-01-16 香港商泰德陽光有限公司 分散式金流稽核方法、裝置及系統
CN108923929B (zh) * 2018-06-05 2021-07-23 上海和数软件有限公司 区块链节点共识方法、装置及计算机可读存储介质
JP7044364B2 (ja) * 2018-06-15 2022-03-30 学校法人東京電機大学 ノード、合意形成システム及び当選者決定方法
GB201811263D0 (en) * 2018-07-10 2018-08-29 Netmaster Solutions Ltd A method and system for managing digital using a blockchain
GB201811672D0 (en) * 2018-07-17 2018-08-29 Nchain Holdings Ltd Computer-implemented system and method
CN109242676B (zh) * 2018-07-27 2023-10-27 创新先进技术有限公司 区块发布方法及装置、电子设备
US20200051078A1 (en) * 2018-08-07 2020-02-13 International Business Machines Corporation Fair transaction ordering in blockchains
GB2576375A (en) * 2018-08-17 2020-02-19 Uvue Ltd Transaction system and method of operation thereof
GB201816936D0 (en) * 2018-10-17 2018-11-28 Nchain Holdings Ltd Computer-implemented system and method
CN109872142B (zh) * 2019-02-21 2023-04-11 派欧云计算(上海)有限公司 一种基于可信第三方的数字资产交易方法及其存储介质
US11503036B2 (en) * 2019-03-13 2022-11-15 Nec Corporation Methods of electing leader nodes in a blockchain network using a role-based consensus protocol
TWI699986B (zh) * 2019-03-14 2020-07-21 柯賓漢數位金融科技有限公司 區塊鏈產生方法及系統
CN110198213B (zh) * 2019-04-01 2020-07-03 上海能链众合科技有限公司 一种基于秘密共享随机数共识算法的系统
US11569996B2 (en) * 2019-05-31 2023-01-31 International Business Machines Corporation Anonymous rating structure for database
US11734259B2 (en) * 2019-05-31 2023-08-22 International Business Machines Corporation Anonymous database rating update
US10778452B2 (en) * 2019-06-03 2020-09-15 Alibaba Group Holding Limited Blockchain ledger authentication
CN110213038A (zh) * 2019-06-03 2019-09-06 中城智慧科技有限公司 一种基于vrf的权益随机共识方法及系统
EP3980958A4 (en) * 2019-06-04 2023-09-13 Algorand, Inc. AUDITING DIGITAL CURRENCY TRANSACTIONS
KR102229923B1 (ko) * 2019-06-18 2021-03-22 한국과학기술원 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기
CN110363528B (zh) * 2019-06-27 2022-06-24 矩阵元技术(深圳)有限公司 协同地址的生成、交易签名方法及装置、存储介质
US10853341B2 (en) 2019-06-28 2020-12-01 Advanced New Technologies Co., Ltd. Blockchain based hierarchical data storage
CN110347684B (zh) * 2019-06-28 2020-09-01 阿里巴巴集团控股有限公司 基于区块链的分级存储方法及装置、电子设备
CN110689345B (zh) * 2019-09-06 2022-03-18 北京清红微谷技术开发有限责任公司 调整区块权重的无许可区块链共识方法、系统、p2p网络
CN110598482B (zh) * 2019-09-30 2023-09-15 腾讯科技(深圳)有限公司 基于区块链的数字证书管理方法、装置、设备及存储介质
CN111292187B (zh) * 2020-01-20 2023-08-22 深圳市万向信息科技有限公司 一种区块链记账人资格竞选方法
US11315193B1 (en) * 2020-02-12 2022-04-26 BlueOwl, LLC Systems and methods for implementing a decentralized insurance platform using smart contracts and multiple data sources
CN111090892B (zh) * 2020-03-24 2021-04-30 吕晟珉 一种基于vrf和门限签名的区块链共识方法和装置
US11409907B2 (en) 2020-04-01 2022-08-09 Onu Technology Inc. Methods and systems for cryptographically secured decentralized testing
US10887104B1 (en) 2020-04-01 2021-01-05 Onu Technology Inc. Methods and systems for cryptographically secured decentralized testing
US11973744B2 (en) * 2020-05-12 2024-04-30 New Jersey Institute Of Technology Systems and methods for establishing consensus in distributed communications
CN111526217B (zh) * 2020-07-03 2020-10-09 支付宝(杭州)信息技术有限公司 一种区块链中的共识方法和系统
JP2023537827A (ja) * 2020-07-07 2023-09-06 ライン プラス コーポレーション ランダムサンプリングbft合意方法とシステム、およびコンピュータプログラム
KR102603880B1 (ko) 2021-01-08 2023-11-20 한국전자통신연구원 블록 합의 방법 및 트랜잭션 상태 관리 방법
CN112766854B (zh) * 2021-01-22 2021-11-02 支付宝(杭州)信息技术有限公司 基于区块链的数字商品交易方法和装置
US11902451B2 (en) * 2021-07-01 2024-02-13 Fujitsu Limited Cross-blockchain identity and key management
CN113656500B (zh) * 2021-08-18 2023-08-18 盐城市质量技术监督综合检验检测中心(盐城市产品质量监督检验所) 一种面向抽样检测的区块链系统及其实现方法
CN114553423B (zh) * 2022-04-27 2022-07-29 南京大学 一种去中心化量子拜占庭共识方法
CN115150103B (zh) * 2022-08-29 2022-11-29 人民法院信息技术服务中心 基于区块链的数字凭证离线验证方法、装置及设备
CN116629871B (zh) * 2023-07-21 2023-10-17 济南正浩软件科技有限公司 一种订单线上支付系统及支付方法
CN116996628B (zh) * 2023-09-26 2023-12-08 宜兴启明星物联技术有限公司 一种网络数据传输防护方法
CN117252234B (zh) * 2023-11-16 2024-03-01 之江实验室 一种基于非合作博弈的策略生成方法及装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827401B2 (en) * 1995-10-02 2010-11-02 Corestreet Ltd. Efficient certificate revocation
CA2267042A1 (en) * 1999-03-26 2000-09-26 Rdm Corporation Method and system for local electronic bill presentment and payment ebpp
JP2002014929A (ja) * 2000-04-26 2002-01-18 Sony Corp アクセス制御システム、アクセス制御方法、およびデバイス、アクセス制御サーバ、アクセス制御サーバ登録サーバ、データ処理装置、並びにプログラム記憶媒体
CN1535440A (zh) * 2001-04-27 2004-10-06 麻省理工学院 用于微支付交易的方法和系统
US7797457B2 (en) * 2006-03-10 2010-09-14 Microsoft Corporation Leaderless byzantine consensus
CN102017510B (zh) * 2007-10-23 2013-06-12 赵运磊 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
CN101330386A (zh) * 2008-05-19 2008-12-24 刘洪利 基于生物特征的认证系统及其身份认证方法
CN102957714B (zh) * 2011-08-18 2015-09-30 招商银行股份有限公司 一种分布式计算机系统及运行方法
US20150220914A1 (en) * 2011-08-18 2015-08-06 Visa International Service Association Electronic Wallet Management Apparatuses, Methods and Systems
WO2013031124A1 (ja) * 2011-08-26 2013-03-07 パナソニック株式会社 端末装置、検証装置、鍵配信装置、コンテンツ再生方法、鍵配信方法及びコンピュータプログラム
IL216162A0 (en) * 2011-11-06 2012-02-29 Nds Ltd Electronic content distribution based on secret sharing
US10354325B1 (en) * 2013-06-28 2019-07-16 Winklevoss Ip, Llc Computer-generated graphical user interface
FR3018370A1 (fr) * 2014-03-07 2015-09-11 Enrico Maim Procede et systeme de generation automatique de crypto-monnaies
US11270298B2 (en) * 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20160098723A1 (en) * 2014-10-01 2016-04-07 The Filing Cabinet, LLC System and method for block-chain verification of goods
JP5858507B1 (ja) * 2015-05-18 2016-02-10 株式会社Orb 仮想通貨管理プログラム、及び仮想通貨管理方法
GB201511964D0 (en) * 2015-07-08 2015-08-19 Barclays Bank Plc Secure digital data operations
GB201511963D0 (en) * 2015-07-08 2015-08-19 Barclays Bank Plc Secure digital data operations
JP6358658B2 (ja) * 2015-11-09 2018-07-18 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
CN105488675B (zh) * 2015-11-25 2019-12-24 布比(北京)网络技术有限公司 一种区块链的分布式共享总账构建方法

Also Published As

Publication number Publication date
IL262638B (en) 2022-02-01
CN115660675A (zh) 2023-01-31
SG10202008168XA (en) 2020-09-29
IL262638A (en) 2018-12-31
CN109196538A (zh) 2019-01-11
EP3896638A1 (en) 2021-10-20
RU2018142270A (ru) 2020-06-04
SG11201809648QA (en) 2018-11-29
US20190147438A1 (en) 2019-05-16
AU2017260013A1 (en) 2018-12-20
JP2019519137A (ja) 2019-07-04
MA44883A (fr) 2021-03-24
EP3452975A4 (en) 2020-04-15
WO2017192837A1 (en) 2017-11-09
JP2022031817A (ja) 2022-02-22
RU2018142270A3 (ja) 2020-08-20
EP3452975A1 (en) 2019-03-13
CN112541757A (zh) 2021-03-23
CA3020997A1 (en) 2017-11-09
KR20190005915A (ko) 2019-01-16
AU2017260013A2 (en) 2020-12-10
IL289298A (en) 2022-02-01
KR20220088507A (ko) 2022-06-27
KR102409819B1 (ko) 2022-06-16

Similar Documents

Publication Publication Date Title
JP6986519B2 (ja) 分散型トランザクション伝播および検証システム
Zaghloul et al. Bitcoin and blockchain: Security and privacy
US11861606B2 (en) Blockchain system for confidential and anonymous smart contracts
Wang et al. A survey on consensus mechanisms and mining strategy management in blockchain networks
US11836720B2 (en) Infinitely scalable cryptocurrency system with fast, secure verification
Puddu et al. $\mu $ chain: How to Forget without Hard Forks
Zhang et al. Consensus mechanisms and information security technologies
Alzahrani et al. A new product anti‐counterfeiting blockchain using a truly decentralized dynamic consensus protocol
CN110298641B (zh) 区块链的规则更新方法、装置、区块链节点及网络
JP2020536473A (ja) メッセージ信任ブロックチェーン
Sawal et al. Necessity of blockchain for building trust in today’s applications: An useful explanation from user’s perspective
Gaikwad Overview of blockchain
JP2021507629A (ja) 高速且つ分割耐性を有するブロックチェーン
Fekkes et al. Comparing Bitcoin and Ethereum
Sharma et al. Introduction to blockchain and distributed systems—fundamental theories and concepts
EhabZaghloul et al. Bitcoin and blockchain: Security and privacy
Appelbaum Consensus Mechanisms and Related Issues
Zammit Privacy-preserving solutions for decentralized permission-less blockchains
Yen The Oracle Problem: Unlocking the Potential of Blockchain
Ruiz-Ogarrio Mining Incentives In Proof-of-Work Blockchain Protocols
Conley The Geeq Project Technical Paper
Liu Investigating Byzantine Agreement Consensus Algorithm of Algorand
Semaan A novel penalty system to limit profitability of selfish mining
Luong A blockchain-based privacy-preserving medical insurance storage system
Sharma et al. Development of Blockchain-Based Cryptocurrency

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190130

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190115

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20200129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200129

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210528

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210611

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20210903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210930

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211129

R150 Certificate of patent or registration of utility model

Ref document number: 6986519

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150