JP2020536473A - メッセージ信任ブロックチェーン - Google Patents

メッセージ信任ブロックチェーン Download PDF

Info

Publication number
JP2020536473A
JP2020536473A JP2020540241A JP2020540241A JP2020536473A JP 2020536473 A JP2020536473 A JP 2020536473A JP 2020540241 A JP2020540241 A JP 2020540241A JP 2020540241 A JP2020540241 A JP 2020540241A JP 2020536473 A JP2020536473 A JP 2020536473A
Authority
JP
Japan
Prior art keywords
user
round
block
users
honest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020540241A
Other languages
English (en)
Other versions
JP2020536473A5 (ja
Inventor
シルヴィオ ミカリ
シルヴィオ ミカリ
Original Assignee
アルゴランド インコーポレイテッド
アルゴランド インコーポレイテッド
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 アルゴランド インコーポレイテッド, アルゴランド インコーポレイテッド filed Critical アルゴランド インコーポレイテッド
Publication of JP2020536473A publication Critical patent/JP2020536473A/ja
Publication of JP2020536473A5 publication Critical patent/JP2020536473A5/ja
Pending legal-status Critical Current

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/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/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
    • 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/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
    • 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/018Certifying business or products
    • G06Q30/0185Product, service or business identity fraud
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

取引がブロックに編成されている取引システムにおいて、主体に先行ブロックから量Qを決定させ、主体にQ及び主体に一意に関連付けられたストリングSを計算すべく秘密鍵を使用させ、主体にS自身、Sの機能、及び/又はSのハッシュ値で量TをSから計算させ、主体にTが所与の特性を有しているか否かを判定させ、Tが所与の特性を有している場合、主体にBrにデジタル署名させてS及びBrのデジタル署名されたバージョンを利用可能にさせることにより、一連の先行ブロックB0,B1,...,Br-1に対して、有効な取引の新規ブロックBrが構築され、主体はBrのデジタル署名に応じて変化する乱数値に基づいて選択されている。【選択図】図2

Description

本出願は、電子取引の分野、特に電子取引用の取引ブロックのシーケンスの内容の安全確保の分野に関する。
ブロックチェーンは、ブロックの拡張可能なシーケンス1、2,...,を含み、各ブロックは多くの取引、1つ前のブロックのハッシュ、及び他のデータ、例えばブロックの数、時間情報等からなる。ブロックチェーンの有用な特性として、システムの全ユーザーが最終的に全ブロックの内容を知り、誰もブロックの内容又は順序を変更することができず、有効な取引は全て最終的にチェーン内のあるブロックに入れられる。
ユーザーはデジタル署名することができ、従って各ユーザーは少なくとも1個の公開鍵及び対応する秘密鍵を所有している。ブロックチェーンでは一般に、公開鍵は知られているが、所有するユーザーは必ずしも知られていない。従って、公開鍵と所有者を同一視することができる。
ブロックチェーンは、メッセージ(例:ブロック、取引等)を拡散することで機能する。典型的に、但し非排他的に、メッセージはピアツーピア方式で、又はリレーを介して雑談することにより拡散される。
いくつかのブロックチェーンシステムでは、システム内の充分多数のユーザーのデジタル署名によりブロックを証明する必要がある。いくつかのシステムにおいて、このような証明するユーザーは固定されたユーザーの集合に属する。他のいくつかのシステムにおいて、ユーザーは動的に変化する集合に属する。これが好適であるのは、特に集合が動的であるだけでなく予測不可能である場合、動的に変化する集合を敵対者が唆すのがより困難になるからである。
検証可能だが予測不可能な方法でユーザーの集合を選択する特に効果的な仕方は、Algorandが採用している暗号抽選である。ここで、ユーザーiは、入力s及びr、並びに他の入力その他データ(例:ある整数kが与えられて、ユーザーがブロックrの少なくともkブロック前でシステムに関与した事実)を用いて、自身の秘密鍵を介して、iが実行する計算の結果に基づいて、ブロック番号rを生成する間に、あるステップsで行動する権限を与えられたユーザーの集合に属している。例えば、iの計算は、そのような入力にiのデジタル署名
Figure 2020536473
を行い、
Figure 2020536473
をハッシングし、及びハッシュが所与の目標値tより小さいか否かを調べることが必要であろう。(実際、他の任意のストリングと同様に、ハッシュされた値は、何らかの標準的な方法で数値として解釈することができる。)そうであれば、
Figure 2020536473
はブロックrに関するステップ5に対するiの信任値であると定義される。このような信任値は、iが実際に(好適には署名付き)メッセージ
Figure 2020536473
すなわちラウンドrのステップs、すなわちブロックrの生成を意図した処理で本人のメッセージを生成する権限があることを誰に対しても証明する。実際、iのデジタル署名は誰でも確認することができ、且つ誰でも所与の値をハッシュすることができ、次いで、結果が実際に所与の数よりも小さい(又は等しい)か否かを確認することができる。従って、iは
Figure 2020536473

Figure 2020536473
の両方を拡散することができる。Algorandでは、信任値
Figure 2020536473
は長期鍵に対して計算されるのに対し、
Figure 2020536473
の署名は、iがメッセージ
Figure 2020536473
1個だけを認証するのに用いる短期キーを用いて計算する。実際、正直なiは、
Figure 2020536473
の署名に用いたならば直ちにそのような短期秘密鍵を消去する。
使用後に消去される短期キーを用いることで、
Figure 2020536473
を拡散させた後で、iを唆す敵対者がラウンドrのステップsに関する異なるメッセージに署名することをiに強制するのを防止する。本システムは、しかし、他人への保証に適したプロシージャ、すなわちユーザーiのラウンドrのステップsへの自身のメッセージ認証専用の短期キーに依存している。このような保証には追加的なデータの保存及び/又は送信が必要な場合がある。従って、この要件が軽減できれば好ましい。特に、ブロックチェーンのブロックの証明に好ましい。
従って中央当局を信用する必要がなく、且つ公知の分散型アプローチの非効率性及び危険性から免れた公開台帳及び電子資金システムを提供することが望まれる。
本明細書に記述するシステムによれば、取引がブロックに編成されている取引システムにおいて、主体に先行ブロックから量Qを決定させ、主体にQ及び主体に一意に関連付けられたストリングSを計算すべく秘密鍵を使用させ、主体にS自身、Sの機能、及び/又はSのハッシュ値で量TをSから計算させ、主体にTが所与の特性を有しているか否かを判定させ、Tが所与の特性を有している場合、主体にBrにデジタル署名させてS及びBrのデジタル署名されたバージョンを利用可能にさせることにより、一連の先行ブロックB0,B1,...,Br-1に対して、有効な取引の新規ブロックBrが構築され、主体はBrのデジタル署名に応じて変化する乱数値に基づいて選択されている。秘密鍵は、主体の公開鍵に対応する秘密署名鍵であってよく、Sは主体によるQのデジタル署名である。Tは数であってよく、Tが所与の数pより小さければ特性を満たす。Sは、SをBrから導出可能にすることにより利用可能になり得る。各ユーザーは取引システムに残高を有していてよく、pは各ユーザーの残高に応じてユーザー毎に異なっていてよい。乱数値は、主体のデジタル署名のハッシュであってよい。主体は、取引システムの最小数の主体がBrにデジタル署名できるように選択された閾値を乱数値が下回る場合に選択されていてよい。
本明細書に記述するシステムによれば更に、一連の先行ブロックB0,B1,...,Br-1に関して新規ブロックBrを検証すべくブロックチェーンシステムのユーザーの部分集合を選択するステップは、ユーザーの少なくとも一部に他の情報と共に新規ブロックBrにデジタル署名させてデジタル署名を生成させるステップと、ユーザーの少なくとも一部にデジタル署名のハッシュ値を決定させるステップと、ユーザーの少なくとも一部にハッシュ値を所定の閾値と比較させるステップと、ユーザーの部分集合に、ユーザーの部分集合毎に、所定の閾値を下回るハッシュ値に応答して新規ブロックBrを検証すべくデジタル署名を利用可能にさせるステップとを含んでいる。ユーザーの特定の1人が新規ブロックBrにデジタル署名できるのは、ユーザーの特定の1人が新規ブロックBrに設定された情報を検証する場合のみである。所定の値は、ユーザーの部分集合がユーザーの最少人数を含むように選択されてよい。ブロックチェーンシステムは、取引がブロックに編成された取引システムで用いることができる。
本明細書に記述するシステムによれば更に、ブロックチェーンは、ユーザーの集合Sに、mが所与の少なくとも何らかの特性を有しているか否かを検証させ、ユーザーに、ユーザーによるmの検証に応答して、mにデジタル署名させ、ユーザーに、mの信任された署名であるmのデジタル署名を利用可能にさせることにより、少なくとも1個のデータストリングmの証明を行う。mのデジタル署名が信任できるのは、デジタル署名が所与の追加的な特性を満たす場合である。mのデジタル署名が所与の追加的な特性を満たすことができるのは、デジタル署名のハッシュが所与の目標数よりも小さい場合である。データストリングmは、mの少なくとも所与の数の信任された署名により証明されてよい。
本明細書に記述するシステムによれば更に、非一時的コンピュータ可読媒体で提供されるコンピュータソフトウェアは、本明細書に記述する任意のステップを実行する実行可能コードを含んでいる。
本発明は、ブロックを証明するための短期鍵を省略する。典型的に、最初に新規ブロックが用意され(例:少なくとも一部のユーザーにより提案又は賛同される)、次いで証明される。ブロックBがどのように用意されるかは不可知であり、1個又は複数のステップで用意されても、短期鍵を用いてもよい。しかし、短期鍵に依存することなく証明したい。ブロックBの証明は、特定の有益な特性がブロックに当てはまることを証明する。典型的な主特性は、ブロックBの用意に関与していないか又は視認しなかったユーザーであっても、ユーザーが、Bがブロックチェーンに追加されたこと、又はBがブロックチェーンのr番目のブロックであることをも証明できるようにすることである。別の有益な特性(往々にして仕上げと称する)は、ソフト分岐に起因して、たとえブロックチェーンプロトコルが実行される通信ネットワークが分割されていたとしても、Bがブロックチェーンから消失しないことを証明する。
ブロックBが任意の仕方で、且つ任意のステップ数で用意されていると仮定する。ブロックが適切に用意されていることを認識するには時間及び労力、並びに様々な断片的証拠の検証を要する。Bの証明は、有効な信任値を有する所与の数のユーザーのデジタル署名を含んでいる。このようなBの証明は、そのような署名を行ったユーザーがBの用意に関与又は視認したことを証明する。少なくとも、証明のデジタル署名の1個が正直なユーザーによりなされていれば、ユーザーは、Bが適切に用意されていることを確認している。
本発明のシステムにおいて、Bが適切に用意された証拠を見た複数のユーザーi(全ユーザーでもよい)がデジタル的にBに署名する。(脚注1:量Qにデジタル署名することは、Qのハッシュされたバージョンにデジタル署名すること、他のデータでQにデジタル署名することを含んでいる。本明細書において、デジタル署名とは、各メッセージmに対して、各ユーザーが、公開鍵の選択の仕方に依らずmの単一の署名を有していると仮定する。)これらの署名は(短期とは逆に)長期鍵に関連するものであってよい。このような署名は、しかし、所与の特性Pを満たすならばBの証明に役立つ。好適な実施形態において、Bに対するiのデジタル署名SIGi(B)は、(a)自身のハッシュ(数と解釈された)が所与の目標tよりも小さく、好適にはiがBの少なくともkブロック前でブロックチェーンに関与したならば所与の特性を有している。全員がiのBに対するデジタル署名を検証して、そのハッシュを計算し、その結果が実際にtより大きくないことを検証できる点に注意されたい。また、iがブロックチェーンに関与したこと、従って当人が少なくともkブロック前にブロックチェーンに関与したことを誰でも検証することができる。このようなSIGi(B)は、Bに対するiの信任された署名と同様に、専用の信任値であると考えられる。従って、本明のシステムにおいて、信任値は、r番目のブロックの生成における所与のステップsではなく、特定のブロックに紐付けられる。従って、ユーザーiは所与のブロックBに対する信任値を有している、別のブロックB’に対しては有していない場合がある。対照的に、例えばAlgorandでは、ラウンドrのステップsへの適当な信任値を有するユーザーは、ステップ及びラウンドで自身が望むあらゆるものに署名できる。ブロック証明は従って、Bに対する所与の数nの信任された署名を含んでいる。nより多くの信任された署名が存在する場合、ブロックBは1個よりも多くの証明を有していてよい点に注意されたい。
本発明のシステムの効率性は、適当なSIGi(B)が、iがBを証明し、且つiがBを証明する資格を有していることを証明する事実から導かれる。従来のシステムにおいて、iは最初に、自身がBを証明することに同意するラウンドrのステップsへの信任値を取得し、次いで別個の署名によりBを証明する必要がある。従って1個ではなく、少なくとも2個の署名が必要であり、Bの信任値の一部として保存及び/又は送信することも必要であろう。また、Bに対するiの署名が短期であれば、使用した短期鍵が、iがステップs及びラウンドrのためだけに必要とした鍵であったことの何らかの証明も必要であろう。
システムのセキュリティは、目標t及びブロックの証明に充分な数nの署名の適切な選択から導かれる。例えば、pをシステム内で悪意のあるユーザーの最大割合とする。典型的に、悪意のあるユーザーは極めて少数、例えばp<1/3である。次いで、t及びnを、充分に高い確率で、(a)任意の可能なブロック値B’に対して、B’の証明を形成するために正直なユーザーのn個以上の信任された署名が存在し、(b)B’の任意の証明において少なくとも1個の信任された署名が正直なユーザーに属しているように選択することができる。
また、ブロックBを証明すべく信任される正直なユーザーの集合は、敵対者には相手が誰であるかを予測できず、且つ相手がブロックを証明する前に相手を唆すことが不可能な程度に充分無作為である。一方、正直なユーザーiがブロックBを証明して、SIGi(B)を拡散した後では、敵対者はiを唆す利点がない。実際、SIGi(B)は既にネットワーク全体にわたりウイルス的に拡散されていて、敵対者はこの拡散過程を止めることができない。第2に、iを唆した後で、敵対者が異なるブロックB’にデジタル署名することをiに強制したならば、SIGi(B’)はtよりも小さいハッシュを有しておらず、敵対者は、かなりの確率でB’のn個のデジタル署名を見つけるために、ある割合p以上のユーザーを唆す必要があろう。
本発明のシステムの一部として、ユーザーiは、Bに対する1個(又はゼロ個の)の信任値だけでなく、重み付きの信任値(本質的に多くの票に紐付けられた信任値)を有していてよい。実際、Bに対するiの信任値の重みは、iがシステムに保有する金額に依存してよい。実際、全てのユーザーに対して1個のtを有するのではなく、各ユーザーiは、iの金額が多いほど高い自身の目標tiを有していてよい。Bに対するiの信任値の重みは、tiに関するSIGi(B)のハッシュがどの程度小さいかに依存していてよい。簡潔のため、但し非限定的に、Bに対する重みmの信任値を有するユーザーiを、各々がBに対する(重み−1)信任値を有するm人のユーザーとして扱う本システムの説明を続けることにする。
以上、充分な数の信任されたBの署名を介してブロックBを証明することを議論してきた。しかしより一般的には、本発明のシステムは、少なくとも所与のメッセージmが、充分な数の信任されたmのデジタル署名により証明されているブロックチェーンに適用できる。そのようなメッセージmは、ブロックではなく、より一般的なデータストリングであってよい。従って、mのこのような証明は、ブロックに適用可能であるか又は望ましいものとは異なる特性がmに適用できることを保証することができる。例えば、但し一切の限定を意図することなく、システム内のユーザーの集合Sの充分な割合のユーザーにより、又はSの少なくとも1人の正直なユーザーによりmが承認されたという特性である。実際、mの信任された署名を有するS内のユーザーが、S内のユーザーの充分に無作為に選択されたサンプルを形成していてよい。従って、mの充分な数の信任された署名が生成されたという事実は、充分な高い確率で、S内のユーザーの所与の割合、又はS内の少なくとも1人の正直なユーザーがmを承認することを示している。
以下に、従来のAlgorandシステムを手短に想起した後で、Algorandに基づいて、一切の限定無しに、好適な実施形態の一例を示す。
本明細書に記述するシステムの実施形態について、各図面内の描画を参照しながらより詳細に説明する。
本明細書に記述するシステムの一実施形態によるネットワーク及びコンピューティングステーションの模式図である。 Algorandシステムの第1ステップの模式的及び概念的要約であり、取引の新規ブロックを提案している。 Algorandシステム内の新規ブロックの合意書及び証明の模式的且つ概念的要約である。 マークル木及びそのノードの1個に含まれる値への認証経路を示す模式図である。 ブロック木に構築された第1ブロックに対応するマークル木を示す模式図である。
本明細書に記述するシステムは、取引情報を検証及び/又は拡散する計算の実行に単独で責任を負う主体が存在しないように取引の検証及び拡散を配信する機構を提供する。逆に、関与する各々の主体が、検証可能且つ信頼できる仕方で取引を拡散すべく計算の実行を分担する。
図1を参照するに、インターネット等のデータネットワーク24に接続されたコンピューティングワークステーション22a〜22cを図示している。ワークステーション22a〜22cは、本明細書の他の箇所でより詳細に記述しているように、分散取引拡散及び検証を提供すべくネットワーク24を介して互いに通信する。本システムは、ワークステーション22a〜22cが互いに通信可能である前提で、本明細書に記述する機能を適用可能な任意の数のワークステーションを収容することができる。ワークステーション22a〜22cは各々、本明細書の他の箇所でより詳細に記述しているように、本システムの他のワークステーションの全てに取引を拡散し、且つ取引を検証すべく独立して処理を実行することができる。
図2に、Algorandシステムにおけるラウンドrの第1ステップを模式的且つ概念的に要約しており、選択された数人のユーザーの各々が、r番目のブロックに対して自身の候補を提案する。具体的には、ステップはシステム内のユーザーa,...,zが独立に秘密の暗号抽選処理を受けることから始まり、処理はどのユーザーがブロックを提案すべく選択されたかを決定し、各々の選択されたユーザーが、ブロックを生成する資格が自身に与えられたことを証明する信任値を非公開に計算する。図2の例において、ユーザーb、d、及びhだけがブロックを提案すべく選択されており、各人の計算された信任値は
Figure 2020536473
である。各々の選択されたユーザーiは、自身の提案されたブロック
Figure 2020536473
をアセンブルし、これに短期署名(すなわち、後述するように短期鍵を用いてデジタル署名)して、自身の信任値と共にネットワークに拡散する。ラウンドのリーダーは、信任値が最も小さいハッシュを有する選択されたユーザーである。図は、リーダーがユーザーdであることを示す。従って、自身の提案されたブロック
Figure 2020536473
は、バイナリ合意プロトコルへの入力として与えられるものである。
図3に、提案されたブロックを公式なr番目のブロック(Br)として合意及び証明するAlgorandの方法を模式的且つ概念的に要約している。Algorandの第1ステップが新規ブロックの提案を含んでいるため、処理は第2ステップから始まる。ステップは実際、Algorandの好適なビザンチン合意プロトコル(BA*)の第1ステップに一致している。プロトコルの各ステップは、秘密の暗号抽選(図に示さず)により無作為に選択されたプレーヤーの異なる「委員会」により実行される。従って、各ステップを実行すべく選択されたユーザーは完全に異なっていてよい。BA*のステップ数は変化し得る。図3は、7ステップすなわちAlgorandのステップ2〜Algorandのステップ8を含むBA*の実行を示している。図3の例において、ステップ2を実行すべく選択されたユーザーはa、e、及びqである。各ユーザーiε文字∈{a,e,q}は、iが実際にAlgorandのラウンドrのステップ2でメッセージを送る資格を有していることを証明する自身の信任値
Figure 2020536473
及びステップに適した自身のメッセージ
Figure 2020536473
をネットワークに拡散する。ステップ3〜7は図示していない。最後のステップ8において、図は、対応する選択されたユーザーb、f、及びxがラウンドrの公式ブロックとしてBrの合意に達しており、ブロックBrの自身の短期署名(これらの署名は共にBrを証明する)及びステップ8で行動する資格を有していることを証明する自身の信任値を拡散する様子を示す。
図4に、マークル木及びその認証経路の1個を模式的に示す。具体的には、図4Aは、深さ3の完全マークル木を示す。各ノードxは値vxを保存し、xは長さが3以下のバイナリストリングで表される。xの長さが2以下ならばvx=H(vx0,vx1)である。図4aのマークル木に対して、図4Bは値v010の認証経路を示す。
図5に、深さ3の完全2進木内に構築されたブロック木に構築された最初の8ブロックに対応するマークル木を模式的に示す。図5iにおいて、整数で印が付けられたノードがマークル木Tiに属する。i(又は太字のi)と印が付けられたノードの内容は一時的(又は永続的)である。
本明細書における記述は支払い取引に注目しており、且つ本明細書におけるシステムを資金プラットフォームとして記述している。当業者には、本明細書に記述するシステムがあらゆる種類の取引を同様に扱うことができることが理解されよう。
本明細書に記述するシステムは、極めて柔軟な設計がなされており、各種の、但し関連した仕方で実装することができる。本システムの柔軟性をその一般的な設計で可能な2つの実施形態を詳述することにより示す。当業者にはそこから他のあらゆる種類の実装を導く仕方が理解できよう。
本発明の理解を容易にすべく、且つ様々な部分の内部相互参照に可能にすべく、本発明を、番号と見出しを付けた節に編成して提示する。第1節は、詳細な実施形態の両方に共通である。
1.序
資金は益々仮想化されている。今日米ドルの約80%が台帳エントリとしてのみ存在すると推定されている。他の金融ツールもこれに追随している。
起こり得るあらゆるサイバー攻撃に耐性を有していて普遍的に信用できる中心的主体を頼ることができる理想的な世界において、資金及び他の金融取引は専ら電子的に行われ得る。残念ながら、発明者らはこのような世界に住んでいない。従って、ビットコイン等の分散化された暗号通貨、及びイーサリアム等の「スマート契約」システムが提案されている。これらのシステムの中心に、支払い及び契約等の広範な一連の取引を改ざん防止された仕方で確実に記録する共有台帳がある。このような改ざん防止を保証するために選択される技術としてブロックチェーンがある。ブロックチェーンは、暗号通貨、金融アプリケーション、及びモノのインターネット等のアプリケーションの背後にある。ブロックチェーンに基づいて台帳を管理するいくつかの技術、すなわちプルーフオブワーク、プルーフオブステーク、実用的ビザンチンフォールトトレランス、又はこれらの何らかの組み合わせが提案されている。
しかし現時点では、台帳は管理が非効率的な場合がある。例えば、ビットコインのプルーフオブワークアプローチは膨大な量の計算を必要とし、無駄が多く、且つスケーリング性に欠ける。また、実際に極めて少数の者の権力を集中させてしまう。
従って、現在の分散された実装の非効率性及び弱点を排除した、信用でき且つ不可侵な権威者により実行される集中化されたシステムの利便性及び効率を実現する公開台帳を実装する新たな方法を推奨したい。発明者のアプローチをAlgorandと称するが、その理由は、これまで構築された台帳に基づいて、アルゴリズム的無作為性を利用して有効な取引の次のブロックの構築を担当する検証者の集合を選択するからである。当然ながら、このような選択が不正操作に耐性を有し、且つ最後の瞬間まで予測不可能であることが証明されているだけでなく、究極的に普遍的に透明性を有していることを保証する。
Algorandのアプローチは、原理的にも実態的にも(ビットコインにおける「採掘者」と「一般ユーザー」のような)異なる階級のユーザーを設定しない、という意味で完全に民主的である。Algorandでは「全ての権力は全てのユーザーの集合に存在する」。
Algorandの顕著な特性の1つは、取引履歴が極めて小さい確率(例:1兆分の1、すなわち10-18程度)で分岐し得ることである。Algorandはまた、何らかの法的及び政治的な懸念に対応することができる。
Algorandアプローチは、ブロックチェーンに、より一般的にはブロックの改ざん防止シーケンスを生成する任意の方法に適用できる。実際、我々は別途注目されてよいブロックチェーンの代替策として、より効率的な新たな方法を提案した。
1.1 ビットコインの仮定及び技術的課題
ビットコインは、極めて巧妙なシステムであって、後続する膨大な研究を惹起した。それにもかかわらず問題を含んでいる。ビットコインと同様にプルーフオブワークに基づく全ての暗号通貨が基本的に実際に共有している、基礎をなす仮定及び技術的課題を以下に要約する。
この要約に際して、ビットコインではユーザーがデジタル署名スキームの複数の公開鍵を有していること、資金が公開鍵に紐付けられていること、及び支払いがある公開鍵から別の公開鍵へある金額を送金するデジタル署名であることを想起すれば充分である。本質的に、ビットコインは、各々が複数の支払いを含むブロックの連鎖B1,B2,...における全ての処理対象の支払いが、任意の順序でなされるB1の全ての支払い、続いて任意の順序でなされるB2の支払い等が一連の有効な支払いを構成するように編成する。各ブロックは平均10分毎に生成される。
上述のブロックシーケンスがチェーンをなしている理由は、何らかの変化が、たとえ単一ブロックで生じても、全ての後続ブロックに拡散して、支払い履歴に何らかの変更が加えられたならば認識し易くするために構築されるためである。(これは以下で述べるように、各ブロックに1つ前のブロックの暗号ハッシュを含めることにより実現される。)このようなブロック構造をブロックチェーンと称する。
仮定:計算能力の正直な多数派 ビットコインでは、いかなる悪意のある主体(又は協調した悪意のある主体の連合)もブロック生成に割かれた大部分の計算能力を制御することはないと仮定している。このような主体は実際、ブロックチェーンを改ざんし、従って望みのままに支払い履歴を書き直すことできる。特に、支払い
Figure 2020536473
に、支払いの対価を得させ、次いで
Figure 2020536473
の痕跡を全て「消去」させることができる。
技術的課題1:計算の無駄 ブロック生成へのビットコインのプルーフオブワークアプローチは格別な計算量を必要とする。現在、システム内には数十万個の公開鍵しかない状況で、上位500の最も強力なスーパーコンピュータは、ビットコインプレーヤーが必要とするトータルの計算能力の僅か12.8%パーセントしか集中することができない。より多くのユーザーがシステムに参加したならば、この計算量は大幅に増大しよう。
技術的課題2:権力の集中 今日、必要とされる計算量が過大であるため、ユーザーが通常のデスクトップ(携帯電話は論外)を用いて新規ブロックの生成を試みたならば資金を失うと予想される。実際、通常のコンピュータで新規ブロックを計算する場合、計算への電力供給に必要な電気の予想コストは期待される報酬を上回る。(「新規ブロックのマイニング」以外は何もしない)特別に構築されたコンピュータのプールを用いるだけで、新規ブロックを生成することにより利益が得られると期待する人もいよう。従って今日、事実上、2つの分断されたユーザーのクラス、すなわち支払いだけを行う通常のユーザー、及び新規ブロックの探索だけに特化したマイニングプールがある。
従って、最近、ブロック生成用の全計算能力がたった5つのプールに割かれているのは驚くべきことではない。このような状況において、大部分の計算能力が正直であるという仮定は信用できなくなる。
技術的課題3:曖昧さ ビットコインにおいて、ブロックチェーンは必ずしも一意ではない。実際、ビットコインの最後の部分はしばしば分岐する。すなわちブロックチェーンは、例えば、あるユーザーによれば
Figure 2020536473
、また別のユーザーによれば
Figure 2020536473
であってよい。数ブロックがチェーンに追加された後にのみ、最初のk+3ブロックが全てのユーザーにとって同じであると、合理的に確信することができる。従って、チェーンの最終ブロックに含まれる支払いを直ちに信頼することはできない。ブロックチェーン内でブロックが充分に深く、従って充分に安定しているか否かを待機及び確認することがより賢明であろう。
これとは別に、ビットコインに関して司法及び通貨政策面での懸念も持ち上がっている。
(脚注2:ビットコイン支払いが提供する(疑似)匿名性が資金洗浄及び/又は犯罪者或いはテロリスト組織への融資に悪用され得る。原理的に完全な匿名性を提供する従来の紙幣又は金の延べ棒も同じ問題を生起するが、これらの通貨は物理的に資金の送金が遅くなるため、司法当局によりある程度の監視が可能になる。
「現金を印刷する」能力は国家の極めて基本的な権力の1つである。従って原理的に、独立に流通する通貨を大量に使用することでこの権力が削減され得る。しかし現在、ビットコインは政府の金融政策を脅かすものからは程遠く、スケーラビリティ問題のため永久にそうならないであろう。)
1.2 Algorandの簡潔な説明
設定 Algorandは極めて厳しい設定で機能する。要するに、
(a)許可不要及び許可が必要な環境。Algorandは全く許可不要な環境でも効率的に機能し、任意の多くのユーザーが一切審査や許可を受けることなく随時システムに参加することができる。無論、Algorandは許可が必要な環境では更によく機能する。
(b)極めて敵対的な環境。Algorandは、以下を行い得る極めて強力な敵対者に対抗できる。
(1)許可不要な環境においてシステムの資金の2/3が正直なユーザーのものである前提で、狙ったユーザーを好きなときに唆すことができる。(許可が必要な環境において、資金に依らず、ユーザーの2/3が正直であれば充分である。)
(2)唆したユーザー全員を完全に支配して完璧に協調させ、
(3)全てのメッセージの発信をスケジューリングする
正直なユーザーが送った各メッセージmが、mの大きさだけに依存する時間λm内に全ての(又は、充分に多くの)正直なユーザーに届く。
主要な特性 強力な敵対者が存在するにもかかわらず、Algorandでは、
・必要な計算量が最小である。本質的に、システム内にユーザーが何人いたとしても、1500人のユーザーの各々は、最大でも数秒の計算を実行すれば済む。
・新規ブロックが素早く生成され、事実上ブロックチェーンから決して消滅しない。すなわち、Algorandのブロックチェーンは、無視できる(すなわち、1兆分の1すなわち10-18未満の)確率でしか分岐しないであろう。従ってユーザーは、ブロックが出現したならば直ちに、新規ブロックに含まれる支払いを信頼することができる。
・全ての権限はユーザー自身にある。Algorandは真に分散取引システムである。特に、どの処理が認識されるかを支配できる(ビットコインの「マイナー」のような)外部の主体が存在しない。
Algorandの技術
1.新規且つ高速なビザンチン合意プロトコル。Algorandは、本発明の暗号、メッセージ通過、バイナリビザンチン合意(BΑ)プロトコル(BA*)を介して新規ブロックを生成する。プロトコルBA*は、(以下に述べる)いくつかの追加的な特性を満たすだけでなく、極めて高速でもある。要約すれば、そのバイナリ入力バージョンは、プレーヤーiが他の全てのプレーヤーに単一のメッセージmiを送る3ステップのループを含んでいる。完全且つ同期化されたネットワークで実行され、プレーヤーの2/3以上が正直であり、各ループの後で1/3超の確率でプロトコルは合意に達する。(プロトコルBA*が一切弱められることなくビザンチン合意本来の定義を満たすことを強調する。)
Algorandは、異なる通信モデルにおいて、バイナリBAプロトコルを利用して各新規ブロックで合意に達する。合意されたブロックは次いで、所定数の適当な検証者のデジタル署名を介して証明され、ネットワークを介して拡散される。
2.秘密暗号抽選。極めて高速ではあるが、プロトコルBA*は数百万ユーザーにより実行されたならば更に速度が向上する。従って、Algorandは、BA*のプレーヤーを全ユーザーの集合よりもはるかに小さい部分集合となるように選択する。異なる種類の権力の集中課題を避けるため、各新規ブロックBrは、選択された検証者SVrの別の集合によるBA*の新たな実行を介して構築されて合意に達する。原則として、このような集合の選択は、直接Brを選択するのと同程度に難しいかもしれない。秘密の暗号抽選と称する新たなアプローチによりこの潜在的な問題に対処する。抽選は、資格のある個人の大きい集合から無作為に役員を選択する仕方である。(抽選は、例えばアテネ、フィレンツェ、及びベニス共和国により数世紀にわたり実施されてきた。現代の司法制度において、しばしば無作為な選択を用いて陪審員を選択している。ランダムサンプリングは選挙においても提唱されてきた。)分散システムでは無論、各々の検証者集合SVrのメンバーを無作為に選択するのに必要な無作為なコインを選択することは問題を含んでいる。従って、全ユーザーの母集団から、自動的(すなわち、メッセージ交換を一切必要としない)且つ無作為であることが保証された仕方で、各々の検証者集合を選択するために暗号を利用する。同様に、新規ブロックBrを提案する役割を担うユーザーすなわちリーダー、及びリーダーが提案したブロックで合意に達する役割を担う検証者集合SVrを選択する。本発明のシステムは、1つ前のブロックの内容から導出可能であって、たとえ極めて強い敵対者が存在しても不正操作が不可能な何らかの情報Qr-1を利用する。
3.量(シード)Qr。次の検証者集合及び新規ブロックBrを構築する役割を担うリーダーを自動的に決定するためにブロックチェーンの最終ブロックBr-1を用いる。このアプローチの問題は、前のラウンドで僅かに異なる支払いを選択するだけで、強力な敵対者が次のリーダーを相当程度支配可能になることである。敵対者がシステム内のプレーヤー/資金の1/1000を制御するだけで、確実に全てのリーダーを悪意のある者にすることができる。(直観的説明の節4.1参照)この問題は、全てのプルーフオブステークアプローチの中心にあり、知られる限り、現時点まで満足に解決されていない。
この問題に対処すべく、強力な敵対者にとって予測不可能なだけでなく、影響を及ぼし得ないことが確実な、注意深く定義された別々の量Qrを意図的に構築して常に更新する。r番目のブロックの生成に特別の役割を果たす全てのユーザーをAlgorandが秘密の暗号抽選を介して選択するQrから来ているため、Qrをr番目のシードと称することにする。シードQrはブロックBr-1から導出可能である。
4.秘密の信任値。検証者集合及び新規ブロック(Br)を構築する役割を担うリーダーを選択するには、現在の最終ブロックBr-1を無作為且つ曖昧さ無しに用いることは充分でない。Brを生成する前にBr-1が既知でなければならないため、Br-1から導出可能な影響を及ぼさない最後の量Qr-1もまた既知でなければならない。従って、検証者及びブロックBrを計算する役割を担うリーダーもそうである。従って、強力な敵対者は直ちに、検証者及びリーダーが証明するブロックを完全に制御すべくBrに関する何らかの議論に加わる前に全員を唆す恐れがある。
この問題を防止すべく、リーダーは(実際は検証者も)自身の役割に非公開に知るが、実際にその役割を担う誰に対しても証明力を有する適切な信任値を計算することができる。ユーザーが、自分が次ブロックのリーダーであることを非公開に理解したならば最初に、自身の提案された新規ブロックを非公開にアセンブルし、次いで自身の信任値と共に(証明可能なように)拡散する。このように、敵対者は次ブロックのリーダーが誰であるかが直ちに分かり、且つ敵対者が直ちにリーダーを唆すことができるが、敵対者が新規ブロックの選択に影響を及ぼすには遅すぎる。実際、敵対者は、強力な政府であってもウィキリークスがウイルス的に拡散したメッセージを瓶に戻すことができないのと同様に、リーダーのメッセージを「呼び戻す」ことができない。
以下で分かるように、リーダー自身を含め、リーダーが1人であることも、誰がリーダーであるかを皆が確実に知っていることも保証できない。しかしAlgorandでは曖昧ではない進展が保証される。
5.プレーヤーの代替可能性。リーダーは、新規ブロックを提案した後は仕事が終わったので、「退場」した方がよい(さもなければ敵対者に唆される。)しかしSVrの検証者にとって、ものごとはさほど単純でない。実際、充分に多くの署名を有する新規ブロックBrを証明する役割を担う検証者は最初に、リーダーが提案したビザンチン合意を実行しなければならない。問題は、如何に効率的であってもBA*は複数のステップを要し、且つ2/3を超えるプレーヤーが正直であることを要することである。これが問題である理由は、効率性のため、BA*のプレーヤー集合は、全ユーザーの集合から無作為に選択した小さい集合SVrを含んでいるからである。従って、強力な敵対者は、全ユーザーの1/3を唆すことはできないものの、SVrの全メンバーを確実に唆すことができる!
幸い、ピアツーピア方式でメッセージを拡散することにより実行されるプロトコルBA*がプレーヤーを代替可能である。この新たな要件は、たとえ各々のステップが全く新たな、無作為且つ独立に選択されたプレーヤーの集合により実行されるとしても、プロトコルが正当且つ効率的にコンセンサスに達することを意味する。従って、数百万ユーザーがいる状況で、BA*のステップに関連付けられたプレーヤーの各々の小さい集合と次の集合との共通集合は空である。
加えて、BA*の異なるステップのプレーヤーの集合は恐らく、全く異なる基数を有していよう。更に、各集合のメンバーは次のプレーヤー集合が誰であるかを知らず、内部状態を非公開に渡すことはない。
代替可能プレーヤー特性は実際、想像し得る能動的且つ極めて強力な敵対者を打ち負かすために必須である。代替可能プレーヤープロトコルが、多くのコンテキスト及びアプリケーションで必須であることが分かるものと考える。特に、代替可能プレーヤーは、全プレーヤーの小さい割合でさえ唆すことができ、より小さいサブプロトコルで全プレーヤーを唆すことが困難でない能動的な敵対者と共にプレーヤーのより大きな世界に埋め込まれた小さいサブプロトコルを安全に実行するために必須である。
追加的特性/技術:怠慢な正直さ 正直なユーザーは、オンラインであってプロトコルを実行することを含む自身への所定の指示に従う。Algorandは控えめな計算及び通信要件しか有していないため、オンラインであってプロトコルを「バックグラウンド」で実行することはさほどの負荷ではない。無論、突然接続が切断されたか又はリブートが必要になったことに起因して生じたような、正直なプレーヤーのうち少数の「不在者」は自動的に許容される(そのような少数のプレーヤーが一時的に悪意者であると常に考えることができるため。)しかし、Algorandは、正直なユーザーが通常はオフラインである新たなモデルで機能すべく簡単に適合できることを指摘しておく。新たなモデルは以下のように非公式に導入することができる。
怠慢な正直さ。大雑把に言えば、ユーザーiは、(1)プロトコルに参加するよう求められたときに自身の全ての所定の指示に従う場合、及び(2)ごく稀に、且つ適当な事前通告を以てプロトコルに参加するよう頼まれた場合に、怠慢だが正直である。
そのような正直さの緩和された概念により、正直な人々は必要とされた際に近くにいると確信してよく、そのような場合Algorandは次のことを証明する、
所与の時点で、関与しているプレーヤーの大多数が悪意があったとしても、システムは安全に動作する。
2 緒言
2.1 暗号プリミティブ
理想的ハッシング。任意の長さのストリングを固定長のバイナリストリングに写像する効率的に計算可能な暗号ハッシュ関数Hを信頼しよう。長年の慣習に従い、本質的に各々の可能なストリングsを無作為且つ独立に選択(次いで固定)されたバイナリストリングH(s)に写像する関数である無作為なオラクルとしてHをモデル化する。
記述する実施形態において、Hは長さが256ビットの出力を有している。実際、このような長さは、システムを効率的にするのに充分短く、且つシステムを安全にするのに充分長い。例えば、Hに衝突耐性を持たせたい。すなわち、H(x)=H(y)となる2個の異なるストリングx及びyを見つけるのが困難でなければならない。Hが長さ256ビットの出力を有する無作為なオラクルである場合、そのようなストリングのペアを見つけることは実際に困難である。(無作為に試行すれば、誕生日のパラドックスに従い2256/2=2128回の試行が必要である。)
デジタル署名。 デジタル署名は、ユーザーが秘密鍵を一切共有することなく互いに情報を認証できるようにする。デジタル署名スキームは3個の高速アルゴリズム、すなわち確率的鍵生成器G、署名アルゴリズムS、及び検証アルゴリズムVを含んでいる。
充分に大きい整数であるセキュリティパラメータkを与えられれば、ユーザーiはGを用いてkビット鍵(すなわちストリング)のペア、すなわち「公開」鍵pki及び該当する「秘密」署名鍵skiを生成する。公開鍵は対応する秘密鍵を決して「裏切らない」。すなわち、pkiに関する知識が与えられても、i以外は誰もskiを天文学的時間より短い時間で計算することはできない。
ユーザーiはskiを用いてメッセージにデジタル署名を行う。各々の可能なメッセージ(バイナリストリング)mに対して、iは最初にmをハッシュし、次いで入力H(m)及びskiに対してアルゴリズムSを実行して、kビットストリングを生成する。
Figure 2020536473
(脚注3:Hは衝突弾性を有しているため、mに署名することにより、ある者が異なるメッセージm’に「偶然署名する」ことは実際には不可能である。)
バイナリストリング
Figure 2020536473
は(pkiに対する)mへのiのデジタル署名と称され、公開鍵pkiがコンテキストから明らかな場合、単にsigi(m)と表記する。
pkiを知る者は誰でもこれを用いて、iにより生成されたデジタル署名を確認することができる。具体的には、(a)プレーヤーiの公開鍵pki、(b)メッセージm、及び(c)ストリングs、すなわちメッセージmへのiの推定されたデジタル署名が入力されたならば、検証アルゴリズムVはYES又はNOを出力する。
デジタル署名スキームから必要とする特性は以下の通りである。
1.合法的署名が常に検証される:s=sigi(m)ならばV(pki,m,s)=YES、及び
2.デジタル署名は偽造が困難:skiに関する知識がなければ、iが決して署名していないメッセージmに対してV(pki、m、s)=YESであるストリングsを見つけるには天文学的に長い時間を要する。
(強いセキュリティ要件に従い、たとえ他の任意のメッセージの署名が得られてもこれは真である。)
従って、プレーヤーiは、自身の代理で他の誰かがメッセージに署名するのを防止すべく、自身の署名鍵skiを秘密(用語「秘密鍵」の所以)にし続けなければならず、自身が署名するメッセージを誰でも検証できるように、iは自身の鍵pkiを公開する(用語「公開鍵」の所以)ことに関心がある。
メッセージ検索可能な署名 一般に、メッセージmは自身の署名sigi(m)から検索できない。概念的に便利な「メッセージ検索可能性」特性を満たすデジタル署名を実質的に扱うため(すなわち、署名者とメッセージが署名から容易に計算可能であることを保証すべく、以下を定義する。
pkiが明らかならば、
Figure 2020536473
一意なデジタル署名 また、以下の追加的な特性を満たすデジタル署名スキーム(G,S,V)を考える。
3.一意性。以下のようなストリングpk’ 、m、s、及びs’を見つけるのは困難である。
s≠s’且つV(pk’,m,s)=V(pk’,m,s’)=1
(一意性特性は合法的に生成された公開鍵ではないストリングpk’の場合も成立する点に注意されたい。しかし特に、一意性特性が示唆するのは、指定された鍵生成器Gを用いて公開鍵pkを合致する秘密鍵skと共に計算し、従ってskを知ったならば、pkに対して同じメッセージになされた2個の異なるデジタル署名を見つけるのは本質的に不可能な点である。)
注記
・一意な署名から検証可能なランダム関数へ。一意性特性を有するデジタル署名スキームに関して、写像m→H(sigi(m))は各々の可能なストリングmに、一意且つ無作為に選択された256ビットのストリングを関連付け、写像の正しさは署名sigi(m)が与えられたならば証明可能である。
すなわち、一意性特性を満たしている理想的なハッシング及びデジタル署名スキームは本質的に、検証可能なランダム関数(VRF)の基本的実装を行う。
VRFは特別の種類のデジタル署名である。メッセージmへのiのこのような特別の署名をVRFi(m)と表記できる。一意性特性を満たすことに加え、検証可能なランダム関数は、充分に無作為であることが保証された出力を生成する。すなわち、VRFi(m)は本質的に無作為であって、生成されるまで予測不可能である。対照的に、SIGi(m)は充分に無作為である必要はない。例えば、ユーザーiは、SIGi(m)が常にkビットストリングであるように、すなわち(辞書編成順に)小さくなる(すなわち冒頭の数ビットが常に0であり得る)ように自身の公開鍵を選択することができる。しかし、Hが理想的なハッシュ関数であるため、H(SIGi(m))は常に無作為な256ビットストリングになる点に注意されたい。好適な実施形態において、各メッセージm及び各ユーザーiに一意な乱数を正確に関連付けることが可能であるように一意性特性を満たすハッシングデジタル署名を拡張的に用いる。VRFと共にAlgorandを実装したならば、H(SIGi(m))をVRFi(m)で代替することができる。特に、ユーザーiは、最初にSIGi(m)、次いでH(SIGi(m))を(順に、例えばH(SIGi(m))を数pと比較するために)を計算する必要がない。ユーザーは直接VRFi(m)を計算してもよい。要するに、H(SIGi(m))をVRFi(m)、又はプレーヤーiにより容易に計算されるが、他の誰にも予測不可能であって、i及びmに明確に関連付けられた充分に無作為な数であると解釈できる点を理解されたい。
・デジタル署名に対する3つの異なるニーズ。Algorandでは、ユーザーiは以下を行うべくデジタル署名を信頼する。
(1)i自身の支払いの認証。本アプリケーションにおいて、鍵は「長期」(すなわち、長期間にわたり多くのメッセージに署名するために用いる)であって、通常の署名スキームによるものであってよい。
(2)iがラウンドrのいずれかのステップsで行動する資格を有していることを証明する信任値の生成。ここで、鍵は長期であってよいが、一意性特性を満たすスキームによるものでなければならない。
(3)iが行動する各ステップで送るメッセージの認証。ここで、鍵は短期的で(すなわち、最初に使用された後で破壊され)なければならないが、通常の署名スキームによるものであってよい。
・低コストの簡素化。簡潔のため、各ユーザーiが単一の長期鍵を有しているものと仮定する。従って、このような鍵は一意性特性を有する署名スキームによるものでなければならない。このような簡素性は計算コストが小さい。典型的に、一意なデジタル署名は実際、通常の署名よりも生成及び検証が僅かに高価である。
2.2 理想化された公開台帳
Algorandは、理想化された公開台帳に基づいて以下の支払いシステムを模倣しようとする。
1.初期状態。資金は、個別公開鍵(秘密裡生成されてユーザーにより所有)に紐付けられている。pk1,...pkjを初期公開鍵、及びa1,...ajをそれら各々の初期資金単位金額とすれば、初期状態は、
0=(pk1,a1),...,(pkj,aj
であり、システムで共通の知識とする。
2.支払い。pkを現在a≧0の資金単位を有する公開鍵、pk’を別の公開鍵、a’をa以下の非負数とする。このとき、(有効な)支払い
Figure 2020536473
はpkに対するデジタル署名であって、何らかの追加的な情報と共に、pkからpk’へのa’資金単位の送金を指定している。次式、
Figure 2020536473
において、Iは、有用であるが感度は高くないと考えられる任意の追加的な情報(例:時間情報及び支払い識別子)を表し、Iは感度が高いと考えられる任意の追加的な情報(例:支払い理由、恐らくはpk及びpk’の所有者の属性等)である。
pk(又はその所有者)を支払人、各pk’(又はその所有者)を受取人、a’を支払い
Figure 2020536473
の金額と称する。
支払いを介した自由参加。ユーザーは自身の公開/秘密鍵ペアを生成することにより、いつでも好きなときにシステムに参加できることに注意されたい。従って、上述の支払い
Figure 2020536473
に出現する公開鍵pk’は、これまで一切資金を「所有していない」新たに生成された公開鍵であってよい。
3.マジック台帳。理想化されたシステムにおいて、全ての支払いは有効であって、誰でも見られるように「一般公開された」支払いの集合の改ざん防止されたリストLに出現する。
L=PAY1,PAY2,...,
各ブロックPAYr+1は、ブロックPAYrの出現以来なされた全ての支払いの集合を含んでいる。理想的なシステムにおいて、新規ブロックは、一定の(又は有限の)時間経過後に出現する。
議論
・より一般的な支払い及び未使用取引出力。より一般的に、公開鍵pkがある金額aを有していれば、pkの有効な支払い
Figure 2020536473
は、
Figure 2020536473
である限り、金額
Figure 2020536473
の各々を鍵
Figure 2020536473
へ送金することができる。
ビットコイン及び同様のシステムにおいて、公開鍵pkが所有する資金は別々の金額に分離され、pkによりなされた支払い
Figure 2020536473
は、このように分離された金額aの全額を送金しなければならない。pkがaの一部a’<aだけを別の鍵に送金したい場合、残高すなわち未使用取引出力も別の鍵、恐らくpk自身に送金しなければならない。
Algorandはまた、分割された金額を有する鍵により機能する。しかし、Algorandの新規態様に着目するには、より単純な支払い形式及び単一の金額が紐付けられた鍵に専念する方が概念的に簡単である。
・現状。理想化されたスキームは、システムの現状に関する情報(すなわち、各公開鍵がどれくらいの資金単位を有しているか)を直接提供しない。この情報は、マジック台帳から導出可能である。
理想的なシステムにおいて、能動的なユーザーは常に最新の状態情報を保存及び更新するが、さもなければ情報を一から、又は最後に計算したときから再構築しなければならない。(しかし、以下でユーザーが効率的に現状を再構築できるようにすべくAlgorandを拡張する仕方を示す。)
・セキュリティ及び「プライバシー」。デジタル署名は、誰も他のユーザーの支払いを偽造できないことを保証する。支払い
Figure 2020536473
において、公開鍵と金額は隠されないが、機微情報Iは隠される。実際、H(I)だけが
Figure 2020536473
に出現し、Hは理想的なハッシュ関数であるため、H(I)は無作為な256ビット値であり、従って、Iが何であったかについて推測する以外に分かる方法がない。しかし、Iが何であったかを証明する(例:支払いの理由を証明するため)には支払人はIを明かすだけでよい。明かされたIの正確さは、H(I)を計算して、結果的に得られた値を
Figure 2020536473
の最後の項目と比較することにより検証できる。実際、Hは衝突耐性を有しているため、H(I)=H(I’)となる第2の値I’を見つけるのは難しい。
2.3 基本概念及び表記
鍵、ユーザー、及び所有者 別途指定しない限り、各公開鍵(略して「鍵」)は長期且つ一意性特性を有するデジタル署名スキームに関係している。公開鍵iは、既にシステムに存在する別の公開鍵jがiに支払いを行う際にシステムに参加する。
個性のため、鍵を擬人化する。鍵iを「彼」と称し、iは正直であり、iがメッセージ等を送受信するものとする。ユーザーは鍵と同義語である。鍵と、それが属する人を区別したい場合、各々用語「デジタル鍵」及び「所有者」を用いる。
許可不要及び許可が必要なシステム。デジタル鍵がいつでも参加でき、且つ所有者が複数のデジタル鍵を所有できる場合、システムは許可不要であり、逆の場合は許可が必要である。
一意な表現 Algorandの各オブジェクトは一意な表現を有している。特に、各集合{(x,y,z,...):x∈X,y∈Y,z∈Z...}は指定された仕方で、例えば、辞書編成順に先頭がx、次いでyのように順序付けられている。
同速度の時計 世界共通の時計は存在しない。むしろ、各ユーザーは自身の時計を有している。ユーザーの時計は一切同期化される必要がない。しかし、全員が同じ速度であると仮定する。
例えば、ユーザーiの時計で午後12時のとき、別のユーザーjの時計では午後2:30であってよいが、iの時計で12:01のとき、jの時計では2:31である。すなわち、「全てのユーザーにとって1分は同じ(充分に、本質的に同じ)である」。
ラウンド Algorandは、ラウンドと呼ばれる論理ユニットr=0,1,...に編成されている。
ラウンドを示すために常に上付き文字を用いる。非数値量Q(例:ストリング、公開鍵、集合、デジタル署名等)がラウンドrを指すことを示すために、単にQrを書く。Qが(数として解釈可能なバイナリストリングではなく)真に数である場合のみQ(r)と書くことで記号rがQの指数と解釈されないようにする。
ラウンドr>0(の開始時点)で、全ての公開鍵の集合がPKrであり、システム状態は
Figure 2020536473
であり、
Figure 2020536473
は公開鍵iが使える資金の量である。PKrがSrから導出可能であってSrはまた各公開鍵iの他の要素を指定する場合があることに注意されたい。
ラウンド0において、PK0は初期公開鍵の集合であり、S0は初期状態である。PK0及びS0はシステムで共通の知識とする。説明を簡単にするため、ラウンドrの開始時点で、PK1,...,PKr及びS1,..Srも同様である。
ラウンドrにおいて、システム状態はSrからSr+1に遷移する。数式的には以下の通りである。
Round r:Sr→Sr+1
支払い Algorandでは、ユーザーは常に支払いを行う(及び分節2.7に記述するように拡散する。)ユーザーi∈PKrの支払い
Figure 2020536473
は、理想的なシステムと同じ形式及び意味を有している。すなわち
Figure 2020536473
支払い
Figure 2020536473
は、(1)金額aが
Figure 2020536473
以下であり、且つ(2)いかなる公式の支払集合PAYr’(r’<r)にも出現しない場合に、(ラウンドr支払いを縮めた)ラウンドrで個々に有効である。(後述するように、第2の条件は
Figure 2020536473
が既に有効になっていないことを意味する。
金額の合計が最大でも
Figure 2020536473
である場合、ラウンドr支払いの集合は包括的に有効である。
支払集合 ラウンドr支払集合Pは、各ユーザーiに対して、Pにおけるiの支払い(恐らく皆無)が包括的に有効であるようなラウンドr支払いの集合である。全てのラウンドr支払集合の集合は
Figure 2020536473
である。Pの全ての上位集合がラウンドr支払集合でない場合、ラウンドr支払集合Pは最大である。
実際、支払い
Figure 2020536473
はラウンドρも指定し、
Figure 2020536473
、ある一定の非負整数kに対して[ρ,ρ+k]の外側のラウンドでは有効になり得ないことを示唆する。
(脚注4:これにより
Figure 2020536473
が「有効」になったか否かの確認が簡素化される(すなわち、ある支払集合PAYr
Figure 2020536473
を含むか否かの判定が簡素化される。k=0のとき、
Figure 2020536473
及び
Figure 2020536473
ならば、iは
Figure 2020536473
を再送信しなければならない。)
公式支払集合 ラウンドr毎に、Algorandは、単一の(恐らく空の)支払集合PAYr、すなわちラウンドの公式支払集合を(以下に記述する仕方で)公けに選択する。(本質的に、PAYrは「実際に」生じたラウンドr支払いを表す。)
理想的なシステム(及びビットコイン)と同様に、(1)新規ユーザーjがシステムに参加する唯一の方法は、所与のラウンドrの公式支払集合PAYrに属している支払いの受取人になることであり、(2)PAYrは、現在のラウンドSrの状態から次のラウンドSr+1の状態を判定する。数式的には次式の通りである。
PAYr:Sr→Sr+1
具体的には、
1.ラウンドr+1の公開鍵の集合PKr+1は、PKrと、PAYrの支払いに初めて出現した全ての受取人鍵の集合との和集合であり、
2.ユーザーiがラウンドr+1で所有している資金量
Figure 2020536473
は、ai(r)すなわちiが前のラウンドで所有していた資金量(i
Figure 2020536473
PKrならば0)と、PAYrの支払いに従いiに支払われた金額の合計である。
要するに、理想的なシステムと同様に、各状態Sr+1は以前の支払い履歴から導出可能である:
PAY0,...,PAYr
2.4 ブロック及び確認されたブロック
Algorand0において、ラウンドrに対応するブロックBrは、r自体、ラウンドrの支払いの集合PAYr、以下に説明する量
Figure 2020536473
、及び1つ前のブロックH(Br-1)のハッシュを指定する。従って、固定されたあるブロックB0から始めて、従来のブロックチェーンが得られる。
Figure 2020536473
Algorandでは、ブロックの真正性は、Brを証明済みブロック
Figure 2020536473
に変換する別の情報「ブロック証明」CERTrにより実際に保証される。マジック台帳は従って、以下のような証明済みブロックのシーケンスにより実装される。
Figure 2020536473
議論 以下で分かるように、CERTrは、これらのメンバーの各々が実際にSVrに属する旨の証明と共に、H(Br)、SVrの大部分のメンバーへのデジタル署名の集合から構成される。無論、証明CERTrをブロック自体に含めることができるが、別々にしておいた方が概念的に明瞭であることが分かる。)
ビットコインでは各ブロックは特別の特性を満たす、すなわち「暗号パズルの解を含んでいる」必要があるため、ブロック生成の計算負荷が高くなると共に、分岐は避けられず稀でなくなる。対照的に、Algorandのブロックチェーンは、主な利点が2つある。すなわち最小限の計算で生成され、且つ極端に高い確率では分岐しない。各ブロックBiは、ブロックチェーンに参加したならば直ちに安全に最終である。
2.5 受容可能な失敗確率
Algorandのセキュリティを解析すべく、何かがおかしい(例:検証者集合SVrの大多数が正直でない)ことを受け入れようとする確率Fを指定する。暗号ハッシュ関数Hの出力長の場合と同様に、Fもパラメータである。しかし、その場合と同様に、Algorandでは充分なセキュリティで充分な効率を同時に得ることが実際に可能であるという事実をより直観的に把握できるように、Fを具体的な値に設定することが有用であると考える。Fが望み通りに設定できるパラメータであることを強調すべく、第1及び第2の実施形態で各々以下のように設定することができる。
F=10-12且つF=10-18
議論 10-12が実際に1兆分の1未満であることに注意すれば、このようなFの選択は発明者らのアプリケーションに充分であると考えられる。10-12は、敵対者が正直なユーザーの支払いを偽造できる確率ではないことを強調しよう。全ての支払いはデジタル署名され、従って適切なデジタル署名を用いた場合、支払いを偽造する確率は10-12よりもはるかに小さく、実際にはほぼ0である。確率Fならば許容し得る悪い事象はAlgorandのブロックチェーン分岐である。発明者らによるFの設定及び1分間にわたるラウンドにおいて、Algorandのブロックチェーンに分岐が生じるのは(概ね)190万年に一度程度の稀さであることに注意されたい。対照的に、ビットコインでは分岐は極めて頻繁に生じる。
より欲張りな人はFをより低い値に設定することができる。このため、第2の実施形態でFを10-18に設定することを考える。ブロックが毎秒生成されると仮定すれば、1018はビッグバンから現在まで宇宙が存在した推定秒数であることに注意されたい。従って、F=10-18として、ブロックが1秒で生成される場合、分岐を観測するために宇宙の年齢ほど待たねばならない。
2.6 敵対的モデル
Algorandは、極めて敵対的なモデルで安全であるように設計されている。以下に説明する。
正直な及び悪意のあるユーザー あるユーザーが正直であるのは、自身の全てのプロトコル命令に従い、メッセージの送受信を完全に行える場合である。ユーザーに悪意(すなわち、分散コンピューティングの用語でビザンチン)があるのは、自身の所定の命令から自在に逸脱できる場合である。
敵対者 敵対者とは、望みのユーザーをいつでも(唆せるユーザーの数の上限だけに制約される)悪意のある者にする、分かり易く擬人化された効率的(技術的に多項式時間)なアルゴリズムである。
敵対者は、全ての悪意のあるユーザーを完全に支配して完璧に協調させる。敵対者は、ユーザーの全てのメッセージの送受信を含む全ての行動をユーザーになり代わって行い、任意の仕方でユーザーを所定の命令から逸脱させることができる。又は、敵対者は単にメッセージを送受信している唆されたユーザーを孤立させることができる。敵対者がユーザーiにさせた行動によりiの悪意が露見する場合があるものの、ユーザーiに悪意のあることは他の誰にも自動的には分からないことを明言しよう。
しかしこの強力な敵対者は、
・無限の計算能力を有しておらず、無視できる確率でしか正直なユーザーのデジタル署名を偽造することができず、
・正直なユーザー同士のメッセージ交換にいかなる仕方でも干渉することができない。
更に、正直なユーザーを攻撃する能力は、以下の仮定の1つにより制約される。
資金の正直な多数派 資金の正直な多数派(HMM)仮定の連続体を考える。すなわち、各々の非負整数k及び実数h>1/2に対して次式が成り立つ。
HHMk>h:毎ラウンドrにおける正直なユーザーが、ラウンドr−kでシステムにあった全資金のhより大きい割合を所有していた。
議論。全ての悪意のあるユーザーが行動を完全に協調(あたかも単一の主体すなわち敵対者により支配されているかの如く)させるものと仮定するのは却って悲観的な仮説である。余りにも大勢を完全に協調させるのは困難である。恐らく、悪意のあるプレーヤーの別々のグループ内でしか協調は生じない。しかし、悪意のあるユーザーが享受できる協調のレベルについて確信が持てないため、後悔するよりも安全な方がよいであろう。
敵対者が非公開に、動的に、及び直ちにユーザーを唆せると仮定することもまた悲観的である。つまり、現実的にはユーザーの行動を完全に支配するには、ある程度の時間を要する。
HMMk>hという仮定は、1ラウンドが(平均)1分で実行されたならば、所与のラウンドで、k=120ならば少なくとも2時間、k=10000ならば少なくとも1週間は資金の大部分が正直なユーザーの手元に残るであろうことを示唆する。
HMM仮定及び先の計算能力の正直な多数派は、計算能力は金で買えるので、悪意のあるユーザーは資金の大部分を所有していれば大部分の計算能力を得ることができるという意味で関連していることに注意されたい。
2.7 通信モデル
メッセージ拡散、すなわち「ピアツーピアゴシップ」を通信の唯一の手段と考え、全ての拡散されたメッセージが適時にほぼ全ての正直なユーザーに届くと仮定する。(脚注5:本質的に、ビットコインと同様に、ユーザーがメッセージmを拡散した際に、最初にmを受信している全ての能動的なユーザーiが、適当な少ない数の能動的なユーザー、すなわちmの転送先である自身の「隣人」を、恐らくユーザーから承認を受信するまで無作為且つ独立に選択する。mの拡散が終了するのは、初めてどのユーザーもmを受信しなかったときである。)本質的に、正直なユーザーにより拡散された各メッセージmは、mの長さに依存する所与の時間内に全ての正直なユーザーに届くものと仮定する。(実際にはmは正直なユーザーの充分に高い割合に達すれば充分である。)
3 従来の設定におけるBAプロトコルBA*
既に強調したように、ビザンチン合意はAlgorandの主要な要素である。実際、Algorandが分岐に影響を受けないのは、そのようなBAプロトコルを用いるからである。しかし、強力な敵対者から保護するために、Algorandは新規プレーヤーの代替可能制約を満たすBAプロトコルに依存しなければならない。また、Algorandが効率的であるためには、このようなBAプロトコルは極めて効率的でなければならない。
BAプロトコルは当初、理想化された通信モデル、すなわち完全同期ネットワーク(SCネットワーク)に対して定義された。このようなモデルにより、BAプロトコルの設計及び解析を簡素化することができる。従って、本節では、SCネットワーク用に新たなBAプロトコル、すなわちBA*を導入し、プレーヤー代替可能性の問題を完全に無視する。プロトコルBA*は、別々の値の寄与である。実際、これまで知られている最も効率的なSCネットワーク用の暗号BAプロトコルである。
Algorandプロトコル内で用いるため、異なる通信モデル及びコンテキストを考慮すべくBA*を変更する。
BA*が動作するモデル及びビザンチン合意の概念を想起することから始める。
3.1 完全同期ネットワーク及び該当敵対者
SCネットワークにおいて、各積分時刻r=1、2,...で刻時する共通のクロックがある。
各々の偶数時刻クリックrにおいて、各プレーヤーiは即時且つ同時に、自身を含む各プレーヤーjに単一のメッセージ
Figure 2020536473
(恐らく空メッセージ)を送る。各メッセージ
Figure 2020536473
は、プレーヤーjが時刻r+1で送信者iの属性と共に正しく受信される。
再び、通信プロトコルにおいて、プレーヤーは、所定の指示の全てに従うならば正直であり、さもなければ全ての悪意のあるプレーヤーは完全に支配されていて、特に、悪意のあるプレーヤー宛の全てのメッセージを直ちに受信して、送るメッセージを選択する敵対者により完全に協調させられる。
敵対者は、望みの奇数時刻で、狙った正直なユーザーを直ちに悪意のある者に変えることができ、悪意のあるプレーヤー数の可能な上限tにしか制約されない。すなわち、敵対者は、通常通り配信されるであろう「正直なユーザーiにより既に送られたメッセージに干渉することはできない」。
敵対者はまた、各偶数ラウンドにおいて、正直なプレーヤーが現在送っているメッセージを即時に見て、その情報を即時に用いて悪意のあるプレーヤーが同時刻に送るメッセージを選択する追加的な能力を有している。
3.2 ビザンチン合意の概念
ビザンチン合意の概念は当初、バイナリの場合、すなわち全ての初期値がビットからなる場合について導入されたかもしれない。しかし、間もなく任意の初期値まで拡張された。BAプロトコルを、任意の値の場合を意味するものとする。
定義3.1.同期ネットワークにおいて、Pを、プレーヤー集合をプレーヤー同士が共通に知っているnプレーヤープロトコルとし、tをn≧2t+1であるような正整数とする。Pを、健全性σ∈(0,1)を有する任意の値(又はバイナリ)(n,f)ビザンチン合意プロトコルと呼ぶのは、特別の記号⊥を含んでいない値Vの全ての集合に対して(又はV={0,1}に対して)、プレーヤーのうち最大でもt人が悪意を有し、且つ全てのプレーヤーiが初期値vi∈Vから始まる実行において、全ての正直なプレーヤーjが確率1で停止し、少なくとも確率σで、以下の2つの条件を満たすように値outi∈V∪{⊥}を出力する場合である。
1.合意:out∈V∪{⊥}が存在し、全ての正直なプレーヤーiに対してouti=outとなる。
2.整合性:ある値v∈Vに対して、全てのプレーヤーiについてvi=vならば、out=vである。
outをPの出力と称し、各outiをプレーヤーiの出力と称する。
3.3 BA表記#
BAプロトコルにおいて、プレーヤーは、所与のステップで何人のプレーヤーが自身にメッセージを送ったか数えることを求められる。従って、送られるかもしれない各々の可能な値vに対して、
Figure 2020536473
(又はsが明らかな場合は単に#i(v))が、iがステップsでvを受信したプレーヤーjの数である。
プレーヤーiが各プレーヤーjからちょうど1個のメッセージを受信することを想起して、プレーヤー数がnである場合、全てのi及びsに対して
Figure 2020536473
である。
3.4 新規バイナリBAプロトコルBBA*
本節において、3分の2以上のプレーヤーの正直さに依存して、極めて高速である新たなバイナリBAプロトコル(BBA*)を提示する。悪意のあるプレーヤーが何をしようと、主ループの各々の実行は、機械的に実行されるだけでなく、プレーヤーを確率1/3で合意に達せさせる。
BBA*において、各プレーヤーは、一意な署名特性を満たすデジタル署名スキームの自身の公開鍵を有している。本プロトコルは完全同期ネットワークで動作すべく意図されているため、プレーヤーiが自身の各メッセージに署名する必要はない。
デジタル署名を用いて、ステップ3で充分に一般的なランダムビットを生成する。(Algorandでは、デジタル署名を用いて他の全てのメッセージも認証する。)
プロトコルは最小限の設定、すなわちプレーヤーの鍵から独立した一般的な無作為なストリングrを要する。(Algorandでは、rは実際には量Qrで代替される。)
プロトコルBBA*は3ステップループであり、プレーヤーは繰り返しブール値を交換し、異なるプレーヤーが異なる時点でループを出ることができる。プレーヤーiは、あるステップで、特別の値0*又は特別の値1*を拡散して、全てのプレーヤーに、将来の全てステップで各々がiから0及び1を受信する「振りをする」ように指示することによりループを出る。(換言すれば、プレーヤーjが別のプレーヤーiから受信した最後のメッセージがビットbであったと仮定する。すると、iから一切メッセージを受信しない任意のステップで、jはあたかもiが自身にビットbを送ったかのように振る舞う。)
プロトコルは、3ステップループが何回実行されたか表すカウンタγを用いる。BBA*の開始時点でγ=0である。(γを大域的カウンタとみなすこともできるが、実際にはループが実行される都度個々のプレーヤーにより増分される。)
n≧3t+1が存在し、tは悪意のあるプレーヤーの可能な最大数である。バイナリストリングxを、(先頭が0であり得る)バイナリ表現がxである整数とし、lsb(x)はxの最下位ビットを表す。
プロトコルBBA*
(通信)ステップ1.[コインが0に固定されたステップ]各プレーヤーiはbiを送る。
1.1
Figure 2020536473
ならばiはbi=0を設定、0*を送信、outi=0を出力、次いで停止する。
1.2
Figure 2020536473
ならばiはbi=1を設定する。
1.3 さもなければ、iはbi=0を設定する。
(通信)ステップ2.[コインが1に固定されたステップ]各プレーヤーiはbiを送る。
2.1
Figure 2020536473
ならばiはbi=1を設定、1*を送信、outi=1を出力、次いで停止する。
2.2
Figure 2020536473
ならばiはbi=0を設定する。
2.3 さもなければ、iはbi=1を設定する。
(通信)ステップ3.[コインを本当に投げたステップ]各プレーヤーiはbi及びSIGi(r,γ)を送信する。
3.1
Figure 2020536473
ならばiはbi=0を設定する。
3.2
Figure 2020536473
ならばiはbi=1を設定する。
3.3 さもなければ、Si={j∈N(ステップ3で正当なメッセージをiに送った者)}として、iは
Figure 2020536473
を設定し、γiを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. Pを、全てのプレーヤーの集合が共通知識であって、各プレーヤーiが任意の初期値
Figure 2020536473
を非公開に知っているプロトコルとする。
Pを(n,t)等級化コンセンサスプロトコルであると言うのは、n人のうち最大でもt人が悪意を有しているプレーヤーによる全ての実行において、全ての正直なプレーヤーiが、以下の3つの条件を満たすべく値の序列のペア(vi,gi)の出力を停止する場合であり、ここで(gi∈{0,1,2})であり、
1.全ての正直なプレーヤーi及びjに対して、|gi−gj|≦1
2.全ての正直なプレーヤーi及びjに対して、gi−gj>0⇒vi=vj
3.ある値vに対して
Figure 2020536473
ならば、全ての正直なプレーヤーiに対してvi=v且つgi=2である。
以下のツーステッププロトコルGCは、文献で公知の等級化コンセンサスプロトコルである。4.1節のプロトコル
Figure 2020536473
のステップに合致させるべく、GCのステップを各々2及び3と呼ぶ。(実際、
Figure 2020536473
の第1ステップは、他の事項、すなわち新たなブロックの提案に関する。)
プロトコルGC
ステップ2.各プレーヤーiは全てのプレーヤーに
Figure 2020536473
を送る。
ステップ3.
Figure 2020536473
のときのみ各プレーヤーiは全てのプレーヤーにストリングxを送る。
出力判定。各プレーヤーiは、次式のように計算されるペア(vi、gi)を出力する:
・あるxに対して、
Figure 2020536473
ならば、vi=x且つgi=2
・あるxに対して、
Figure 2020536473
ならば、vi=x且つgi=1
・さもなければ、vi=⊥且つgi=0
プロトコルGCが文献で公知のプロトコルであるため、以下の定理が保持することは既知である。
定理3.2. n≧3t+1ならば、GCは(n,t)等級化ブロードキャストプロトコルである。
3.6 プロトコルBA*
ここでバイナリBAプロトコルBBA*及び等級化コンセンサスプロトコルGCを介した任意値BAプロトコルBA*を説明する。以下、各プレーヤーiの初期値は
Figure 2020536473
である。
プロトコルBA*
ステップ1及び2. 各プレーヤーiは、
Figure 2020536473
が入力されたならばGCを実行してペア(vi,gi)を計算する。
ステップ3,... 各プレーヤーiは、gi=2ならば初期入力を0として、さもなければ初期入力を1としてBBA*を実行してビットoutiを計算する。
出力判定。各プレーヤーiは、outi=0ならばviを、さもなければ⊥を出力する。
定理3.3. n≧3t+1である都度、BA*は健全性1を有する(n,t)BAプロトコルである。
証明。最初に整合性、次いで合意を証明する。
整合性の証明。ある値v∈Vに対して、
Figure 2020536473
と仮定する。次いで、等級化コンセンサスの特性3により、GCの実行後、全ての正直なプレーヤーが(v,2)を出力する。従って、BBA*の実行の終了時点で全ての正直なプレーヤーの初期ビットは0である。従って、BA*の実行終了時点で、バイナリビザンチン合意の合意特性により、全ての正直なプレーヤーに対してouti=0である。これはBA*における各々の正直なプレーヤーiの出力がvi=vであることを意味する。□
合意の証明。BBA*がバイナリBAプロトコルであるため、
(A)全ての正直なプレーヤーiに対してouti=1、又は
(B)全ての正直なプレーヤーiに対してouti=0である。
ケースAにおいて、BA*で全ての正直なプレーヤーは⊥を出力し、従って合意が成立する。ここでケースBを考える。この場合、BBA*の実行において、少なくとも1人の正直なプレーヤーiの初期ビットは0である。(実際、全ての正直なプレーヤーの初期ビットが1であったならば、BBA*の整合性特性により、全ての正直なjに対してoutj=1が得られよう。)従って、GCの実行後、iはある値vに対してペア(v、2)を出力する。従って、等級化コンセンサスの特性1により、全ての正直なプレーヤーjに対してgj>0である。従って、等級化コンセンサスの特性2により、全ての正直なプレーヤーjに対してvj=vである。これは、BA*の終了時点で全ての正直なプレーヤーjがvを出力することを示唆する。従ってBのケースでも合意が成立する。□
整合性と合意が共に成立するため、BA*は任意値BAプロトコルである。■
プロトコルBA*は、ゴシッピングネットワークでも動作し、実際、認識された極めて敵対的なモデルでAlgorandが安全であるために必須のプレーヤー代替可能性特性を満たしている。
BBA*及びBA*のプレーヤー代替可能性 ここでプロトコルBA*及びBBA*が、通信がプレーヤー代替可能性を満たすピアツーピアゴシップを介して行われるネットワークでの実行に適合可能である理由を若干直観的に説明しよう。具体性を持たせるべく、ネットワークが10M人のユーザーを有し、BBA*(又はBA*)の各ステップxが、秘密の暗号抽選を介して無作為に選択され、ステップxでメッセージを送る資格を有していることを証明する証明を有する10,000人のプレーヤーの集団により実行されるものと仮定する。所与のステップで送られた各メッセージがステップ番号を特定し、送信者によりデジタル署名されていて、自身の送信者がそのステップで話す資格を有していることを証明する証明を含むものと仮定する。
最初に、正直なプレーヤーの割合hが2/3よりも充分に大きい(例:75%)場合、圧倒的な確率で、各ステップで選択された委員会が、必要な2/3の正直者の多数派を有している。
また、10,000人強の無作為に選択された委員会が各ステップで変化するという事実はBBA*又はBA*のいずれの正当な動作も妨げない。実際、いずれのプロトコルにおいても、プレーヤーiはステップsで、ステップs−1において所与のメッセージmを受信した回数に反応するだけである。ゴシップネットワークにいるため、ステップs−1で送られた、ステップsで動作すべく選択されたものを含む、全てのメッセージが(直観的であるために直ちに)全てのユーザーに届く。更に、ステップs−1で送られた全てのメッセージがステップ番号を指定しており、送信者がステップs−1で話す権限が実際に与えられた旨の信任値を含んでいる。従って、送信者がステップs−1でも選択されたか否かに依らず、ステップsで行動すべく選択されたユーザーiは、自身が正当なステップs−1のメッセージを受信した回数を完全に正しく数えることができる。ユーザーiがそれまで全てのステップを実行していたか否かは全く重要でない。全てのユーザーは「同じ船に乗って」おり、従って簡単に他のユーザーで代替できる。
4 Algorandの2つの実施形態
極めて高いレベルで議論したように、Algorandの1ラウンドは以下のように理想的に進行する。第1に、無作為に選択されたユーザー、すなわちリーダーが新規ブロックを提案して循環させる。(この処理は最初に数人の潜在的リーダーを選択し、次いで、少なくともある程度の時間にわたり、単一の共通リーダーが出現することを保証するステップを含む。)第2に、無作為に選択されたユーザーの委員会が選択され、リーダーが提案したブロックに対してビザンチン合意に達する。(処理は、BAプロトコルの各ステップが別途選択された委員会により実行されることを含んでいる。)同意に達したブロックは次いで、委員会メンバーの所与の閾値(TH)によりデジタル署名される。これらのデジタル署名は、どれが新規ブロックであるかを誰でも確信できるように拡散される。(これは、署名者の信任値を循環させて、新規ブロックのハッシュだけを認証して、そのハッシュが明らかになれば全員がブロックを学習できることを保証するステップを含む。)
次の2個の節において、適切な「正直なユーザーの多数派」仮定の下で各々機能する基本Algorand設計の2つの実施形態
Figure 2020536473
及び
Figure 2020536473
を提示する。節??において、これらの実施形態が「正直な資金の多数派」仮定の下で採用する仕方を示す。
Figure 2020536473
は委員の2/3超が正直であることを認識するだけである。また、
Figure 2020536473
において、ビザンチン合意に達するまでのステップ数は、適切に大きい数を上限としているため、一定数のステップ内で合意に達することが圧倒的な確率で保証されている(しかし、
Figure 2020536473
のステップよりも潜在的に長い時間を要する。)最後のステップまで未だ合意に達していない遠隔ケースにおいて、委員会は常に有効である空ブロックについて合意する。
Figure 2020536473
は、委員会の正直なメンバーの人数が常に一定の閾値tH以上である(圧倒的な確率で、委員会メンバーの少なくとも2/3が正直であることを保証する)ことを想定している。また、
Figure 2020536473
は任意のステップ数で(しかし潜在的に
Figure 2020536473
よりも短い時間で)ビザンチン合意に達することができる。
当業者には、これらの基本的実施形態の多くの変型例を導出できることが理解されよう。特に、
Figure 2020536473
を前提として、任意のステップ数でビザンチン合意に到達できるように
Figure 2020536473
を変更することは容易である。
両方の実施形態は、以下の共通核、表記、概念、及びパラメータを共有している。
4.1 共通核
目的 理想的には、各ラウンドrに対して、Algorandは以下の特性に満たす必要がある。
1.完全な正しさ。全ての正直なユーザーが同一ブロックBrについて同意する。
2.完全性1。確率1で、正直なユーザーによりブロックBrが選択されている。
(実際、悪意のあるユーザーは常に、自身の「友人」の支払いだけを含む支払集合を有するブロックを選択することができる。)
無論、完全な正しさだけを保証するのはたやすい。全員が常に公式支払集合PAYrが空になるように選択する。しかしこの場合、システムの完全性は0である。残念ながら、悪意のあるユーザーが存在する場合に完全な正しさと完全性1の両方を保証することは容易でない。従ってAlgorandはより現実的な目的を採用する。非公式に、正直なユーザーの割合をh、但しh>2/3、と表記すれば、Algorandの目標は、
圧倒的な確率で、完全な正しさ及びhに近い完全性を保証することである。
完全性よりも正しさを優先させることは合理的な選択に思える。1ラウンドで処理されなかった支払いは次のラウンドで処理できるが、可能ならば分岐を避けるべきである。
導かれたビザンチン合意 過剰な時間及び通信を一時的に無視すれば、完全な正しさを以下のように保証することができる。ラウンドrの開始時点で、各ユーザーiは自身の候補ブロック
Figure 2020536473
を提案する。次いで、全てのユーザーが、候補ブロックのうち1個だけについてビザンチン合意に達する。発明者らの導入から、採用したBAプロトコルは2/3の正直な多数派を必要とし、プレーヤーは代替可能である。各々ステップは無作為に選択された、内部変数を一切共有しない検証者の小さい集合により実行することができる。
残念ながら、上述のアプローチは全くうまくいかない。その理由は、正直なユーザーが提案する候補ブロックは互いに全く異なる可能性が極めて高いからである。実際、各々の正直なユーザーは異なる支払いを見る。従って、異なる正直なユーザーが見た支払いの集合の多くが重なり合っているにもかかわらず、全ての正直なユーザーが同じブロックを提案する可能性は低い。従って、BAプロトコルの整合性に関する合意は決して強制ではなく、合意1だけであり、従って、合意に達するのは良いブロックではなく、常に⊥に関してである。
Algorand’はこの問題を以下のように回避する。最初に、ラウンドrのリーダーlrが選択される。次いで、lrは自身の候補ブロック
Figure 2020536473
を拡散する。最後に、ユーザーはlrから実際に受信するブロックに関して合意に達する。lrが正直であるときは常に完全な正しさと完全性1の両方が成立するため、Algorand’はlrがhに近い確率で正直であることを保証する。
リーダー選択 Algorandにおいて、r番目のブロックは以下の形式である。
Figure 2020536473
序で既に述べたように、量Qr-1は、極めて強力な敵対者により本質的に不正操作が不可能なように注意深く構築されている。(本節の後半でその理由について直観的に説明する。)ラウンドrの開始時点で、全てのユーザーはそれまでのブロックチェーンB0,...,Br-1を知っており、そこから全ての先行ラウンドのユーザーの集合、すなわちPK1,...,PKr-1を導出する。ラウンドrの潜在的リーダーは下記を満たすユーザーiである。
.H(SIGi(r,1,Qr-1))≦p
以下に説明する。基礎となるデジタル署名スキームのメッセージ検索可能性特性により、量Qr-1はブロックBr-1から導出可能であるため、ことに注意されたい。更に、基礎となる署名スキームは一意性特性を満たす。従って、SIGi(r,1,Qr-1)はi及びrに一意に関連付けられたバイナリストリングである。従って、Hは無作為オラクルであるため、H(SIGi(r,1,Qr-1))はi及びrに一意に関連付けられた無作為な長さ256ビットのストリングである。H(SIGi(r,1,Qr-1))の前の記号「.」は(このケースではバイナリの)小数点であるため、
Figure 2020536473
は、i及びrに一意に関連付けられた0〜1の間の無作為な256ビットの数のバイナリ拡張である。従って、riがp以下である確率は本質的にpである。
確率pは、少なくとも1個の潜在的検証者が圧倒的な(すなわち1−F)確率で正直であるように選択される。(実際、pはそのような最小確率となるように選択される。)
iが自身の署名を計算できる唯一のユーザーであるため、自身がラウンド1の潜在的検証者である否かを判定できるのはiだけであることに注意されたい。しかし、自身の信任値
Figure 2020536473
を明かすことにより、iはラウンドrの潜在的検証者であることを誰に対しても証明することができる。
リーダーlrは、自身のハッシュされた信任値が、他の全ての潜在的リーダーjのハッシュされた信任値よりも小さい潜在的リーダーであると定義される。すなわち
Figure 2020536473
が成り立つ。
悪意のあるlrは自身の信任値を明かさないかもしれないため、ラウンドrの正当なリーダーが知られることは決してなく、且つ極めて稀な同点を禁止しているので、lrが実際にラウンドrの唯一のリーダーである。
最後に、最後だが重要な詳細について述べる。ユーザーiがラウンドrの潜在的リーダー(従ってリーダー)であり得るのは、少なくともkラウンドにわたりシステムに属した場合だけである。これにより、Qrの不正操作防止及び全ての将来のQ量が保証される。実際、潜在的リーダーのうち1人が実際にQrを決定することになる。
検証者選択 ラウンドrの各ステップs>1が検証者の小さい集合SVr,sにより実行される。再び、各々の検証者はi∈SVr,sはr以前のラウンドでシステムkに既に存在していたユーザーの中から、再び特別の量Qr-1を介して無作為に選択される。具体的には次式が成立すればi∈PVr,sがSVr,sの検証者である。
.H(SIGi(r,s,Qr-1))≦p’
再び、自身がSVr,sに属しているか否かを知っているのはiだけであるが、これが事実ならば、iは自身の信任値
Figure 2020536473
を示すことにより証明することができた。検証者i∈SVr,sはラウンドrのステップsでメッセージ
Figure 2020536473
を送り、メッセージは、次ステップでの検証者fが
Figure 2020536473
が合法的なステップsのメッセージであると認識できるようにすべく自身の信任値
Figure 2020536473
を含んでいる。
確率p’は、SVr,sにおいて、#goodを正直なユーザーの数、#badを悪意のあるユーザーの数とすれば、圧倒的確率で以下の2つの条件が成立することを保証すべく選択されている。
Figure 2020536473
の実施形態の場合、
(1)#good>2・#bad、及び
(2)#good+4・#bad<2n、但しnはSVr,sの期待濃度である。
Figure 2020536473
の実施形態の場合、
(1)#good>tH、及び
(2)#good+2#bad<2tH、但しtHは指定された閾値である。
これらの条件は、充分に高い確率で、(a)BAプロトコルの最後のステップにおいて、少なくとも所与の数の正直なプレーヤーが新規ブロックBrにデジタル署名し、(b)1ラウンド毎に1個のブロックだけが必要な数の署名を有していてよく、(c)使用したBAプロトコルが(各ステップで)必要とされる2/3の正直な多数派を有していることを意味する。
ブロック生成の明確化 ラウンドrのリーダーlrが正直ならば、対応するブロックは以下の形式であり、
Figure 2020536473
ここに、支払集合PAYrは最大である。(全ての支払集合が定義から全体として有効であることを想起されたい。)
さもなければ(すなわちlrに悪意があれば)、Brは以下の2つの可能な形式のうち1つを有している。
Figure 2020536473
第1の形式において、PAYrは(必ずしも最大限ではない)支払集合であり、PAYr=φであってよく、iはラウンドrの潜在的リーダーである。(しかし、iはリーダーlrでないことがある。これは実際にlrが自身の信任値を秘匿したまま自身を明かさない場合に起きる。)
第2の形式が生じるのは、BAプロトコルのラウンドrの実行に際して、全ての正直なプレーヤーが、アプリケーションで空ブロック
Figure 2020536473
である既定値を出力するときである。(定義から、BAプロトコルの可能な出力は、一般に⊥と表記される既定値を含んでいる。節3.2を参照されたい。)
両方のケースで支払集合が空であるにもかかわらず、Br=(r,φ,SIGi(Qr-1),H(Br-1))と
Figure 2020536473
は構文的に異なるブロックであって、2つの異なる状況で生じることに注意されたい。すなわち各々、「全てがBAプロトコルの実行で充分にスムーズに進行した」、及び「BAプロトコルで何かまずいことが起きて既定値が出力された」。
ここでブロックBrの生成がAlgorand’のラウンドrでどのように進むかを直観的に説明する。最初の1ステップにおいて、各々の資格のあるプレーヤー、すなわち各プレーヤーi∈PKr-kは自身が潜在的リーダーであるか否かを確認する。そうであれば、iは、自身がこれまで行った全ての支払いと現在のブロックチェーンB0,...,Br-1を用いて最大限の支払集合
Figure 2020536473
を非公開に用意するよう求められ、非公開に自身の候補ブロック
Figure 2020536473
を構築する。すなわち、プレーヤーiは
Figure 2020536473
に第2の要素としてちょうど用意された支払集合を含めるだけでなく、第3の要素として自身の署名Qr-1、すなわち最終ブロックBr-1の第3の要素も含める。最後に、プレーヤーiは、自身のラウンドrのステップ1のメッセージ
Figure 2020536473
を拡散し、メッセージには(a)自身の候補ブロック
Figure 2020536473
、(b)自身の候補ブロックの自身の適当な署名(すなわち、
Figure 2020536473
のハッシュの自身の署名、及び(c)自身が実際にラウンドrの潜在的検証者であることを証明する自身の信任値
Figure 2020536473
が含まれる。
(正直なiが自身のメッセージ
Figure 2020536473
を生成するまで、敵対者はiが潜在的検証者であるとの手掛かりを有していない点に注意されたい。敵対者は、正直な潜在的リーダーを唆そうと欲したならば、正直なプレーヤーを無作為に唆す必要があろう。しかし、敵対者が
Figure 2020536473
を見たならば、iの信任値を含んでいるため、iを知って唆すことができるものの、ウイルス的に拡散された
Figure 2020536473
がシステム内の全てのユーザーに届くのを防ぐことはできない。)
第2ステップにおいて、各々の選択された検証者j∈SVr,2はラウンドのリーダーを識別しようとする。具体的には、jは、自身が受信した正当なステップ1のメッセージに
Figure 2020536473
に含まれるステップ1の信任値
Figure 2020536473
を取り、それらの全てをハッシュ、すなわち
Figure 2020536473
を計算し、ハッシュが辞書編成順に最小である信任値
Figure 2020536473
を見つけて、
Figure 2020536473
がラウンドrのリーダーであるとみなす。
考慮する各信任値がQr-1のデジタル署名であること、SIGi(r,1,Qr-1)がi及びQr-1により一意に決定され、Hは無作為なオラクルである、従って各H(SIGi(r,1,Qr-1)はラウンドrの各潜在的リーダーiに一意な無作為の長さ256ビットのストリングであることを想起されたい。
上記から、256ビットストリングQr-1自体が無作為且つ独立に選択されていれば、ラウンドrの全ての潜在的リーダーのハッシュされた信任値も同様であろう。実際、全ての潜在的リーダーは明確であり、それらの信任値(実際に計算されているか否かに依らず)も同様である。更に、ラウンドrの潜在的リーダーの集合は、ラウンドr−kのユーザーの無作為な部分集合であり、正直な潜在的リーダーiは、iの信任値を含む自身のメッセージ
Figure 2020536473
を常に適切に構築して拡散する。従って、正直なユーザーの割合はhであるため、悪意のある潜在的リーダーが何をしようと(例:自身の信任値を明かすか又は隠す)、最小のハッシュされた潜在的リーダーの信任値は、ラウンドrのリーダーlrであることが必然的に全員に識別されている正直なユーザーのものである。従って、256ビットストリングQr-1自体が無作為且つ独立に選択されていれば、正確に確率hで(a)リーダーlrは正直であり、(b)全ての正直なステップ2での検証者jに対してlj=lrである。
実際には、ハッシュされた信任値は確かに無作為に選択されているが、無作為且つ独立に選択されなかったQr-1に依存する。しかし、注意深い解析により、Qr-1が、あるラウンドのリーダーが、hに充分近い確率h’すなわちh’>h2(1+h−h2)で正直であることを保証できる程度に充分に不正操作ができないことが保証される。例えば、h=80%ならばh’=.7424である。
ラウンドのリーダーを識別(リーダーlrが正直な場合は正しく行われる)したならば、ステップ2検証者のタスクは、リーダーのブロックであると信じる初期値を用いてBA*の実行を開始することである。実際、必要な通信量を最小化すべく、検証者j∈SVr,2は、ビザンチンプロトコルへの自身の入力値
Figure 2020536473
として、しかしリーダー以外、及びブロックのハッシュすなわち
Figure 2020536473
以外、lj(リーダーと見なされるユーザーj)から実際に受信したブロックBjを使用しない。従って、BAプロトコルの終了時点で、最後のステップの検証者は、所望のラウンドrブロックBrを計算せず、H(Br)を計算(認証及び拡散)する。従って、H(Br)はBAプロトコルの最後のステップの充分に多くの検証者によりデジタル署名されているため、システムのユーザーはH(Br)が新規ブロックのハッシュであることが分かる。しかし、システムのユーザーはまた、敵対者が何をしようとも、実際に使用可能であることをプロトコルが保証するブロックBr自体を検索(又は、実行は全く非同期であるため待機)しなければならない。
非同期性及びタイミング
Figure 2020536473
及び
Figure 2020536473
は顕著な非同時性を有している。その理由は、拡散されているメッセージの配信を敵対者がスケジューリングする大きな自由度を有しているためである。また、1ラウンドにおけるステップの総数に上限が設定されているか否かに依らず、実際に行われたステップの数により寄与に分散がある。
0,...,Br-1の証明を知ったならば直ちに、ユーザーiはQr-1を計算してラウンドrで行動を開始し、ラウンドrのあるステップsで自身が潜在的リーダーであるか、又は検証者であるかを確認する。
iがステップsで行動しなければならないと仮定すれば、上述の非同時性の観点から、iは行動する前に充分な情報を有していることを確信すべく各種の戦略に依存する。
例えば、iは、(
Figure 2020536473
のように)前のステップの検証者から少なくとも所与の数のメッセージを受信するまで待つか、又は(
Figure 2020536473
のように)前のステップの充分に多くの検証者のメッセージを受信することを確信すべく充分な時間待つことができる。
シードQr及び見直しパラメータk 理想的には、量Qrは、敵対者による不正操作が充分に防止されているだけで充分であるにもかかわらず、無作為且つ独立しているべきであることを想起されたい。
一見したところ、Qr-1をH(PAYr-1)と一致するように選択することができる。しかし、基本的な解析により、悪意のあるユーザーはこの選択機構を悪用できることが分かる。(脚注6:発明者らはラウンドr−1の開始時点にいる。従って、Qr-2=PAYr-2は公知であり、敵対者は、誰が自身の支配する潜在的リーダーであるかを非公開に知っている。敵対者がユーザーの10%を支配し、且つ極めて高い確率で悪意のあるユーザーwがラウンドr−1の潜在的リーダーであると仮定する。すなわち、H(SIGw(r−2,1,Qr-2))が小さいため、正直な潜在的リーダーが実際にラウンドr−1のリーダーである可能性は極めて低いと仮定する。(秘密の暗号抽選機構を介して潜在的リーダーを選択するため、敵対者は誰が正直な潜在的リーダーであるかを知らないことを想起されたい。)敵対者は従って、所望の支払集合PAY’を選択してラウンドr−1の公式支払集合にできる羨望的立場にある。しかし、敵対者はさらに多くのことができる。敵対者はまた、高い確率で、(*)敵対者がどのようなPAYrでも自由に選択できるように、悪意のあるユーザーの1人がラウンドrのリーダーにもなることを保証できる。(以下同様。少なくとも長期間、すなわち、これらの高確率事象が実際に生起する限り。)これを保証すべく(*)、敵対者は以下のように行動する。PAY’を敵対者がラウンドr−1で好む支払集合とする。次いで、敵対者はH(PAY’)を計算して、既に悪意のあるプレーヤーzにとってSIGz(r,1,H(PAY’))が特に小さいか否か、すなわち極めて高い確率でzがラウンドrのリーダーになるのに充分小さいか否かを確認する。これが当てはまるならば、敵対者はwに、候補ブロックが
Figure 2020536473
になるような選択をするように命令する。さもなければ、敵対者は、悪意のあるユーザーz(又はある固定されたユーザーzでもよい)にとって
Figure 2020536473
も特に小さくなるまで、他の2人の悪意のあるユーザーx及びyに、互いに新規の支払い
Figure 2020536473
を生成させ続ける。この実験は、極めて突然に停止する。停止したならば、敵対者はwに候補ブロック
Figure 2020536473
を提案するように頼む。)ある追加的な成果は、悪意のあるリーダーが極めて頻繁に現れることを保証すべく従来のブロック量に基づく他の多くの代替策が敵対者により容易に利用できることを示している。発明者らはその代わりに、敵対者による不正操作が不可能であることを証明できるように全く新たな量Qrを具体的且つ誘導的に定義する。すなわち、次式が成り立つ。
rが空ブロックでなければ
Figure 2020536473
、空ブロックであれば
Figure 2020536473
rの上述の構造が機能する理由を以下に直観的に説明する。Qr-1が真に無作為且つ独立に選択されたものと一時的に仮定する。Qrもそうであろうか?lrが正直であれば答えは(大まかに言うと)YESである。その理由は、
Figure 2020536473
がランダム関数であるからである。しかしlrに悪意のある場合、QrはQr-1とlrから一意に定義されない。Qrには少なくとも2個の別々の値がある。一方は
Figure 2020536473
であり続け、他方はH(Qr-1,r)である。第2の選択が多少任意であっても、第2の選択は絶対的に必須であることを最初に論じよう。その理由は、悪意のあるlrは常に、全く異なる候補ブロックを第2ステップの正直な検証者に受信させることができるからである。(脚注7:例えば、説明を簡潔(しかし極端に)保つべく、「第2ステップの時間が満了しそうなときに」lrは各ユーザーiに異なる候補ブロックBiを直接電子メールで送ることができる。こうすれば、誰がステップ2の検証者であろうと、全く異なるブロックを受信するであろう。)一旦そうなれば、ラウンドrのBAプロトコルを介して最終的に合意に達したブロックが既定のものとなり、従ってQr-1の誰のデジタル署名も含まないようにすることを保証するのは容易である。しかし、システムは継続せねばならず、このためラウンドrのリーダーが必要である。リーダーが自動的且つ公開された仕方で選択されたならば、敵対者は言うまでもなくリーダーを唆す。同じ処理を介して前のQr-1で選択されたならば、lrは再びラウンドr+1でリーダーとなる。具体的に同じであるが新たなQ量、すなわちH(Qr-1,r)に適用する秘密暗号抽選機構の使用を提案する。量をHの出力とすることで出力が無作為であることが保証され、rをHの第2の入力として含めることで、Hの他の全ての使用が単一入力又は少なくとも3入力を有している状態で、そのようなQrが独立に選択されたことを「保証」する。再び、代替的なQrの特定の選択は重要でなく、重要なのはlrがQrについて2つの選択肢を有し、従って悪意のある別のユーザーを次のリーダーにできるチャンスを2倍にできることである。
rに対する任意選択は、悪意のあるlrを支配する敵対者にとってより多いであろう。例えば、x、y及びzを、
Figure 2020536473
であるようなラウンドrの3人の悪意のある潜在的リーダーとし、
Figure 2020536473
が特に小さいとする。すなわち、
Figure 2020536473
は全ての正直な潜在的リーダーのハッシュされた信任値よりも小さくなる好機がある。次いで、xに自身の信任値を隠すよう求めることにより、敵対者にはyをラウンドr−1のリーダーにする好機がある。これは、敵対者にはQrに対して別の任意選択肢すなわちH(SIGy(Qr-1),r)があることを示唆する。同様に、敵対者は、zがラウンドr−1のリーダーになり、Qrに対して別の任意選択肢すなわちH(SIGz(Qr-1),r)が得られるように、xとyに信任値を明かさないよう求めることができる。
しかしながら、言うまでもなく敵対者は正直な潜在的ユーザーのデジタル署名のハッシュを予測できないため、これら及び他の任意選択肢の各々が失敗する可能性はゼロではない。
注意深い、マルコフ連鎖的解析により、敵対者がラウンドr−1でどのような任意選択を行っても、敵対者は、システムに新規ユーザーを投入できない限り、正直なユーザーがラウンドr+40のリーダーになる確率をhよりも大幅に低下させることはできない。これが、ラウンドrの潜在的リーダーがラウンドr−kで既に存在しているユーザーであることを要求する理由である。これは、ラウンドr−kで敵対者が、正直なユーザーがラウンドrのリーダーになる確率を大幅に変えられないようにする1つの方法である。実際、敵対者がラウンドr−kからrの間にシステムにどのようなユーザーを加えたとしても、ラウンドrの潜在的リーダーに(より強い理由からリーダーに)なるには不適格である。従って、見直しパラメータkは最終的にセキュリティパラメータである。(但し、節??で見られるように、一種の「便利なパラメータ」でもあり得る。)
短期鍵 発明者らのプロトコルの実行は無視できる確率を除いて分岐を生成できないが、敵対者は合法的ブロックrが生成された後のr番目のブロックで分岐を生成することができた。
大まかに言えば、Brが生成されたならば、敵対者はラウンドrの各ステップの検証者が誰であるか知っている。敵対者は従って、検証者全員を唆して新規ブロック
Figure 2020536473
の証明を強いることができる。偽造ブロックは合法的ブロックの後でしか拡散できないため、注意を払っていたユーザーは騙されないであろう。(脚注8:主要なテレビネットワークのニュースアンカーを唆して、クリントン国務長官が直近の大統領選挙に勝利した様子を示すニュース映像を今日作成及び放送したとしよう。大多数の人はこれをデタラメと認識するであろう。だが昏睡から覚めた誰かが騙されるかもしれない。)にもかかわらず、
Figure 2020536473
は構文的には正しく、その生成の防止が望まれる。
新たな規則をその手段とする。本質的に、ラウンドrのステップsの検証者集合SVr,sのメンバーは、短期公開鍵
Figure 2020536473
を用いて自身のメッセージにデジタル署名する。これらの鍵は、使い捨てであり、対応する秘密鍵
Figure 2020536473
は1回使えば破壊される。このようにして、後で検証者が唆された場合、敵対者は検証者が当初署名しなかったものには一切署名を強制することができない。
当然、敵対者が新たな鍵
Figure 2020536473
の計算が不可能であることを保証して、これがステップsで使用する検証者i∈SVr,sの正当な短期鍵であることを正直なユーザーに納得させなければならない。
4.2 表記、概念、及びパラメータの一般的概要
表記
・r≧0:現在のラウンド番号。
・s≧1:ラウンドrの現在のステップ番号。
・Br:ラウンドrで生成されたブロック。
・PKr:ラウンドr−1の終了までの、及びラウンドrの開始時点での公開鍵の集合。
・Sr:ラウンドr−1の終了までの、及びラウンドrの開始時点でのシステム状態。(脚注9:同期的でないシステムにおいて、「ラウンドr−1の終了」及び「ラウンドrの開始」の表記は注意深く定義する必要がある。数学的には、PKr及びSrは、初期状態S0及びブロックB1,...,Br-1から計算される。)
・PAYr:Brに含まれる支払集合。
・lr:ラウンドrのリーダー。lrはラウンドrの支払集合PAYrを選択(及び次のQrを決定)する。
・Qr:ラウンドrのシード、すなわちラウンドrの終了時に生成されてラウンドr+1の検証者の選択に用いられる量(すなわちバイナリストリング)。Qrはブロック内支払集合からは独立していて、lrにより不正操作することはできない。
・SVr,s:ラウンドrのステップsのために選択される検証者の集合。
・SVr:ラウンドrのために選択される検証者の集合であり、SVr=∪s≧1SVr,s
・MSVr,s及びHSVr,s:各々SVr,sで悪意のある検証者の集合及び正直な検証者の集合。MSVr,s∪HSVr,s=SVr,s且つMSVr,s∩HSVr,s=φ。

Figure 2020536473
及び
Figure 2020536473
:各々SVr,1の潜在的リーダーの人数の期待値、及びSVr,sの検証者の人数の期待値、但しs>1。
n1<<nでことに注意されたい。その理由は、SVr,1で少なくとも1個の正直なメンバー、但しs>1に対して各SVr,sの正直なメンバーの少なくとも多数を必要とするからである。
・h∈(0,1):2/3よりも大きい定数。hはシステムの正直さの比である。すなわち、用いる仮定に依存するが、各PKrにおける正直なユーザー又は正直な資金の割合は少なくともhである。
・H:無作為オラクルとしてモデル化された暗号ハッシュ関数。
・⊥:Hの出力と同じ長さの特別のストリング。
・F∈(0,1):許容されるエラー確率を指定するパラメータ。確率≦Fは「無視できる」とみなされ、確率≧1−Fは「圧倒的」とみなされる。
・ph∈(0,1):ラウンドrのリーダーlrが正直である確率。理想的にはPh=h。敵対者が存在する場合、phの値は解析で決定される。

Figure 2020536473
:見直しパラメータ。すなわち、ラウンドr−kは、ラウンドrの検証者を選択するラウンドであり、SVr⊆PKr-k。(脚注10:厳密には、「r−k」は「max{0,r−k}」の筈である。)
・p1∈(0,1):ラウンドrの第1ステップに対して、ラウンドr−kのユーザーが確率
Figure 2020536473
でSVr,1に存在するように選択される。
・p∈(0,1):ラウンドrの各ステップs>1に対して、ラウンドr−kのユーザーが確率
Figure 2020536473
でSVr,sに存在するように選択される。
・CERTr:Brへの証明。ラウンドrにおける適切な検証者からのH(Br)のtH署名の集合である。

Figure 2020536473
は証明されたブロックである。
ユーザーiがBrを知るのは、証明されたブロックの両方の部分を有した(且つ検証に成功し)た場合である。異なるユーザーが見るCERTrは異なり得る点に注意されたい。

Figure 2020536473
:ユーザーiがBrを知る(ローカル)時間。Algorandプロトコルでは各ユーザーは自身の時計を有している。異なるユーザーの時計は同期している必要はないが、同じ速度を有していなければならない。解析目的のためのみ、基準クロックを考え、これに関するプレーヤーの時間を測定する。

Figure 2020536473
及び
Figure 2020536473
:各々ユーザーiがラウンドrのステップsの実行を開始及び終了する(ローカル)時刻。
・Λ及びλ:本質的に、それぞれ、Algorandプロトコルのステップ1の実行に要する時間及び他の任意のステップの実行に要する時間の上限。
パラメータΛは単一の1MBのブロックを拡散する時間の上限。
パラメータλはステップs>1の検証者毎に1個の小さいメッセージを拡散する時間の上限。
Λ≦4λと仮定する。
概念
・検証者選択。
各ラウンドr及びステップs>1に対して
Figure 2020536473
である。各ユーザーi∈PKr-kは自身の長期の鍵を用いて非公開に自身の署名を計算してi∈SVr,sであるか否かを判定する。i∈SVr,sならばSIGi(r,s,Qr-1)はiの(r,s,)信任値であり、簡潔に
Figure 2020536473
と表記する。
ラウンドrの第1ステップにおいて、SVr,1
Figure 2020536473
は、pをp1で置換して同様に定義される。SVr,1の検証者が潜在的リーダーである。
・リーダー選択。
ユーザーi∈SVr,1は、全ての潜在的リーダーj∈SVr,1に対して
Figure 2020536473
ならばラウンドrのリーダーであり、lrと表記する。2人のプレーヤーの信任値のハッシュが、極めて稀な同点の場合、比較される都度、プロトコルは常に、潜在的リーダーの(長期公開鍵)に従い辞書編成順にタイブレークする。
定義により、プレーヤーlrの信任値のハッシュ値もまた、PKr-kの全てのユーザーの中で最も小さい。潜在的リーダーは、他の潜在的リーダーの信任値を見ることなく、自身がリーダーであるか否かを非公開に決めることができない点に注意されたい。
ハッシュ値は無作為に一様であるため、SVr,1が空でなければ、lrは常に存在し、少なくとも確率hで正直である。パラメータn1は、各SVr,1が圧倒的確率で非空であることを保証すべく充分に大きい。
・ブロック構造。
非空ブロックは
Figure 2020536473
の形式であり、空ブロックは
Figure 2020536473
の形式である。
ラウンドで支払いが生じなければ、又はリーダーに悪意があれば、非空ブロックは依然として空の支払集合PAYrを含んでいてよい。しかし、非空ブロックとは、lrの属性、信任値
Figure 2020536473
、及び
Figure 2020536473
が全て適時に明かされていることを示唆する。プロトコルは、リーダーが正直ならば圧倒的確率でブロックが非空であることを保証する。
・シードQr
rが非空ならば
Figure 2020536473
、さもなければ
Figure 2020536473
である。
パラメータ
・各種パラメータ同士の関係。
− ラウンドrの検証者及び潜在的リーダーがPKr-kのユーザーから選択され、kは、敵対者がFより高い確率でラウンドr−k−1に戻ってqr-1を予測できないように選択される。さもなければ、敵対者はラウンドr−kに悪意のあるユーザーを招き入れることができ、その全員がラウンドrの潜在的リーダー/検証者になって、敵対者が望むステップsでSVr,sに悪意のあるリーダー又は悪意のある多数派を有することに成功する。
− 各ラウンドrのステップ1において、n1は、圧倒的確率でSVr、1≠φであるように選択される。
・重要なパラメータの選択例。
− Hの出力は長さ256ビットである。
− h=80%、n1=35。
− Λ=1分及びλ=15秒。
・プロトコルの初期化。
プロトコルは、時刻0でr=0を以て始まる。「B-1」又は、「CERT-1」が存在しないため、構文的にB-1は第3の要素がQ-1を指定する公開パラメータであり、全てのユーザーは時刻0におけるB-1を知っている。

Figure 2020536473
本節では、以下の仮定の下で機能する、Algorand’のバージョンを構築する。
ユーザーの大多数は正直という仮定:各PKrのユーザーの2/3以上は正直である。
節??において、上述の仮定を、望ましい大部分の資金は正直という仮定で置換する仕方を示す。
5.1 追加的な表記及びパラメータ
表記

Figure 2020536473
:バイナリBAプロトコルにおけるステップの最大数であって3の倍数。
・Lr≦m/3:各々の試行が確率
Figure 2020536473
で1であって最大m/3回の試行がある場合に1を得るまでに要するベルヌーイ試行の回数を表す確率変数。全ての試行が失敗したならば
Figure 2020536473
である。LrはブロックBrの生成に要する時間に上限を設けるために用いられる。

Figure 2020536473
:プロトコルの終了条件で必要とされ署名の数。
・CERTr:Brへの証明。ラウンドrにおける正当な検証者からのH(Br)のtH個の署名の集合である。
パラメータ
・各種のパラメータ同士の関係。
− ラウンドrの各ステップs>1に対して、nは圧倒的確率で下記のように選択される。
|HSVr,s|>2|MSVr,s|且つ|HSVr,s|+4|MSVr,s|<2n
hの値が1に近いほど、nは小さくなければならない。特に、圧倒的確率で所望の状態が保たれることを保証すべくチャーノフ境界(の変型例)を用いる。
− mは、圧倒的確率でLr<m/3であるように選択される。
・重要なパラメータの選択例。
− F=10-12
− n≒1500、k=40且つm=180。
5.2
Figure 2020536473
における短期鍵の実装
既に述べたように、検証者i∈SVrが、使用後直ちに破壊する短期秘密鍵
Figure 2020536473
を用いて、短期公開鍵
Figure 2020536473
に関して、ラウンドrでステップsの自身のメッセージ
Figure 2020536473
にデジタル署名することが望ましい。従って、
Figure 2020536473
が実際に
Figure 2020536473
に対するiの署名の検証に用いられる鍵であることを全てのユーザーが検証できることを保証する効率的な方法が必要である。属性に基づく署名スキームを(知識の及ぶ限りで)新たに用いることでこれを行う。
高いレベルでは、このようなスキームにおいて、中央当局Aは公開マスター鍵PMK、及び対応する秘密マスター鍵SMKを生成する。プレーヤーUの属性Uが与えられると、AはSMKを介して公開鍵Uに対する秘密署名鍵skUを計算して、UにskUを非公開に与える(実際、属性に基づくデジタル署名スキームにおいて、ユーザーUの公開鍵はU自身である!)このため、Aが、デジタル署名を生成可能にしたいが、計算された秘密鍵を一切保持したくないユーザーの秘密鍵を計算した後でSMKを破壊したならば、Uは公開鍵Uに関してメッセージにデジタル署名することができる唯一のユーザーとなる。従って、「Uの名前」を知る者は誰でも自動的にUの公開鍵を知り、従ってUの署名を検証することができる(恐らく、公開マスター鍵PMKも使用して)。
発明者のアプリケーションにおいて、当局Aはユーザーiであり、全ての可能なユーザーUの集合は、例えばS={i}×{r’,...,r’+106}×{1,...,m+3}におけるラウンドステップペア(r,s)と一致し、r’は所与のラウンド、m+3は1ラウンド内に生起し得るステップ数の上限である。これにより、
Figure 2020536473
であるため、iの署名
Figure 2020536473
を見ている全員が、r’に続く最初の100万ラウンドrについて、圧倒的確率で直ちにこれを検証することができる。
換言すれば、iは最初にPMK及びSMKを生成する。次いでiは、PMKが任意のラウンドr∈[r’,r’+106]のiのマスター公開鍵であることを公表し、SMKを用いて各3つ組(i、r、s)∈Sに対する秘密鍵
Figure 2020536473
を非公開に生成して保存する。これが行われたならばSMKを破壊する。自身がSVr,sの一部でないと判定したならば、iは(プロトコルがラウンドrのステップsのいかなるメッセージの認証を求めないため)
Figure 2020536473
を放置する。さもなければ、iは最初に
Figure 2020536473
を用いて自身のメッセージ
Figure 2020536473
にデジタル署名を行い、次いで
Figure 2020536473
を破壊する。
iが最初にシステムに参加した際に自身の最初の公開マスター鍵を公表できることに注意されたい。すなわち、(ラウンドr’又はr’に近いラウンドで)iをシステムに参加させる同じ支払い
Figure 2020536473
はまた、iの求めに従い、例えば(PMK,[r’,r’+106])の形式のペアを含めることにより、任意のラウンドr∈[r’,r’+106]用のiの公開マスター鍵がPMKであることを指定し得る。
また、1ラウンドに1分かかると仮定すれば、m+3が1ラウンドにおけるステップの最大数であるため、そのように生成されたiの短期鍵の退避場所が約2年間保持されることに注意されたい。同時に、これらの短期秘密鍵をiが生成するのにさほど長い時間かからない。32B鍵を有する楕円曲線に基づくシステムを用いて、各々の秘密鍵は数マイクロ秒で計算される。従って、m+3=180であれば、全ての180M秘密鍵を1時間未満で計算することができる。
現在のラウンドがr’+106に近づいている場合、iは次の100万ラウンドを扱うために新規ペア(PMK’,SMK’)を生成して、例えば、SIGi(PMK’,[r’+106+1,r’+2・106+1])を別々の「取引」として又は支払いの一部である何らかの追加的な情報として新規ブロックに入力させることにより、自身の短期鍵の次の退避場所がどこであるかを通知する。こうすることで、iは次の100万ラウンドにおけるiの短期署名を検証するためにPMK’を用いる必要があることを全員に通知する。以下同様。
(上述の基本的アプローチに従い、属性に基づく署名を用いることなく短期鍵を実装する他の方法が確かに可能であることに注意されたい。例えばマークル木を介して可能である。)(脚注11:本方法において、iは、例えば{r’,...,r’+106}×{1,...,m+3}における各ラウンドステップペア(r,s)の公開秘密鍵ペア
Figure 2020536473
を生成する。次いでこれらの公開鍵を正準的に順序付けて、j番目の公開鍵をマークル木のj番目の葉に保存し、ルート値Riを計算して公表する。鍵
Figure 2020536473
に対するメッセージに署名したい場合、iは実際の署名だけでなく、Riに対する
Figure 2020536473
の認証経路を提供する。この認証経路もまた、
Figure 2020536473
がj番目の葉に保存されていることを証明することに注意されたい。この考えから、他の詳細事項も容易に想到されよう。)
短期鍵を実装する他の方法も、例えばマークル木を介して、もちろん可能である。
5.3
Figure 2020536473
のステップとBA*のステップのマッチング
上述のように、
Figure 2020536473
の1ラウンドは最大m+3ステップを有している。
ステップ1。本ステップにおいて、各々の潜在的リーダーiは自身の候補ブロック
Figure 2020536473
を自身の信任値
Figure 2020536473
と共に計算して拡散する。
この信任値が明示的にiを識別することを想起されたい。その理由は
Figure 2020536473
だからである。
潜在的検証者iはまた、自身のメッセージの一部として、
Figure 2020536473
の自身の適当なデジタル署名も拡散する。支払い又は信任値を扱わないため、iのこの署名は自身の短期公開鍵
Figure 2020536473
と関連している。すなわち
Figure 2020536473
を拡散する。
慣例を前提として、
Figure 2020536473
及び
Figure 2020536473
を拡散するのではなく、iは
Figure 2020536473
を拡散することができた。しかし、発明者らの解析では
Figure 2020536473
への明示的なアクセスを有する必要がある。
ステップ2。本ステップにおいて、各検証者iは、ハッシュされた信任値が最も小さい潜在的リーダーとして
Figure 2020536473
を、及び
Figure 2020536473
が提案するブロックとして
Figure 2020536473
を設定する。効率の観点から、直接Brにではなく、H(Br)に同意したいため、iは、初期値を
Figure 2020536473
としてBA*の第1ステップで拡散したであろうメッセージを拡散する。すなわち、
Figure 2020536473
を、無論それに短期署名した後で、拡散する。(すなわち、この場合は
Figure 2020536473
である正当な短期公開鍵に関して署名した後で。)
無論、iは自身の信任値も送信する。
BA*の第1ステップが、等級化コンセンサスプロトコルGCの第1ステップを含んでいるため、Algorand’のステップ2はGCの第1ステップに対応している。
ステップ3。本ステップにおいて、各検証者i∈SVr,2はBA*の第2ステップを実行する。すなわち、GCの第2ステップで送ったであろうものと同じメッセージを送る。再び、iのメッセージは短期署名されており、iの信任値が伴っている。(以後、検証者が短期的に自身のメッセージに署名すると共に自身の信任値を拡散するとの表現を割愛する。)
ステップ4。本ステップにおいて、全ての検証者i∈SVr,4は、GC(vi,gi)の出力を計算し、BA*の第3ステップで、すなわちBBA*の第1ステップで、gi=2ならば初期ビットを0、さもなければ1として送ったであろうものと同じメッセージに短期署名して送る。
ステップs=5,...,m+2。このようなステップは、仮に到達したならば、BA*のステップs−1に、従ってBBA*のステップs−3に対応している。
発明者らの拡散モデルは充分に非同期であるため、このようなステップsの途中で、ブロックBrが既に選択されていることを証明する情報が検証者i∈SVr,sに到達している可能性を考慮しなければならない。この場合、iはAlgorand’のラウンドrの自身の実行を停止して、自身のラウンド(r+1)命令の実行を開始する。
従って、BBA*のステップs−3に対応する命令に加えて、検証者i∈SVr,sの命令は、BBA*の実行が前のステップs’で停止されたか否かの確認を含んでいる。BBA*が停止できるのはコインが0に固定されたステップ又はコインが1に固定されたステップだけであるため、命令は以下を区別する。
A(終了条件0):s’−2≡0mod3、又は
B(終了条件1):s’−2≡1mod3。
実際に、ケースAにおいて、ブロックBrは非空であり、従って、iが適切な証明CERTrと共にBrを適切に再構築することを保証するには追加的な命令が必要である。ケースBにおいて、ブロックBrは空であり、従ってiは
Figure 2020536473
を設定して、CERTrを計算するよう命令される。
ステップsを実行する間、ブロックBrが既に生成されたいかなる証拠もiが認識しなければ、iはBBA*のステップs−3で送ったであろうものと同じメッセージを送る。
ステップm+3。ステップm+3の実行中に、ブロックBrが前のステップs’で既に生成されていたことをi∈SVr,m+3が認識したならば、正に上で述べたように進行する。
さもなければ、BBA*のステップmで送っていたであろうものと同じメッセージを送るのではなく、iは、自身が有する情報に基づいて、Br及び対応する証明CERTrを計算するよう命令される。
実際、1ラウンドの合計ステップ数の上限をm+3としたことを想起されたい。
5.4 実際のプロトコル
ラウンドrの各ステップsで、検証者i∈SVr,sが自身の長期公開鍵及び秘密鍵のペアを用いて、ケースs=1でのSIGi(Qr-1)と共に自身の信任値
Figure 2020536473
を生成することを想起されたい。検証者iは、自身の短期秘密鍵
Figure 2020536473
を用いて自身の(r,s)メッセージ
Figure 2020536473
に署名する。簡潔のため、rとsが明らかな場合、ラウンドrのステップsにおける値xのiの適切な短期署名を表記するのに
Figure 2020536473
ではなくesigi(x)と書き、(i,x,esigi(x))を表記するのに
Figure 2020536473
ではなくESIGi(x)と書く。
ステップ1:ブロック提案
全てのユーザーi∈PKr-kへの命令:ユーザーiは、Br-1を知ったならば直ちにラウンドrの自身のステップ1を開始する。
・ユーザーiはBr-lの第3の要素からQr-1を計算してi∈SVr,1であるか否かを確認する。
・i
Figure 2020536473
SVr,1ならば、直ちにステップ1の自身の実行を停止する。
・i∈SVr,1、すなわちiが潜在的リーダーならば、それまで自身に拡散してきたラウンドrの支払いを回収し、それらから最大限の支払集合
Figure 2020536473
を計算する。次に、自身の「候補ブロック」
Figure 2020536473
を計算する。最後に、メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
注記。実際には、ステップ1の大域的実行を短縮するには、(r−1)メッセージを選択的に拡散することが重要である。すなわち、システム内の全てのユーザーi毎に、プレーヤーiは最初に受信して検証に成功した(脚注12:すなわち、全ての署名は正当であって、ブロックとそのハッシュは両方とも有効であるが、iは含まれた支払集合が提案者にとって最大であるか否かを確認しない。)(r−1)メッセージを通常の通りに拡散する。プレーヤーiが受信して検証に成功した他の全ての(r−1)メッセージの場合、含まれる信任値のハッシュ値が、それまで受信して検証に成功した全ての(r−1)メッセージに含まれる信任値のハッシュ値の最も小さいものである場合にだけ拡散する。更に、Georgios Vlachosが提言するように、各々の潜在的リーダーiは、自身の信任値
Figure 2020536473
もまた別個に拡散することが有用である。これらの小さいメッセージはブロックより速く移動し、含まれる信任値が小さいハッシュ値を有している
Figure 2020536473
の適時な拡散を保証する一方、大きいハッシュ値を有するものを素早く消失させる。
ステップ2:等級化コンセンサスプロトコルGCの第1ステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップ2を開始する。
・ユーザーiはBr-1の第3の要素からQr-1を計算してi∈SVr,2であるか否かを確認する。
・i
Figure 2020536473
SVr,2ならば、iは直ちにステップ2の自身の実行を停止する。
・i∈SVr,2ならば、ある長さの時間
Figure 2020536473
待機した後でiは以下のように行動する。
1.検証に成功した(r,l)メッセージの一部である全ての信任値
Figure 2020536473
に対して
Figure 2020536473
であるようなユーザーlを見つける。(脚注13:本質的に、ユーザーiは、ラウンドrのリーダーがユーザーlであると非公開に決定する。)
2.iがlから有効なメッセージ
Figure 2020536473
(脚注14)を受信していれば、iは
Figure 2020536473
を、さもなければ
Figure 2020536473
を設定する。(脚注14:再び、プレーヤーlの署名及びハッシュは全て検証に成功しており、
Figure 2020536473
における
Figure 2020536473
はラウンドrの有効な支払集合であるが、iは
Figure 2020536473
がlに対して最大であるか否かを確認しない。)
3.iは、メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。(脚注15:メッセージ
Figure 2020536473
は、プレーヤーiが
Figure 2020536473
を次ブロックのハッシュであるとみなすか、又は次ブロックが空であるとみなすかを通知する。)
ステップ3:GCの第2ステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップ3を開始する。
・ユーザーiはBr-1の第3の要素からQr-1を計算してi∈SVr,3であるか否かを確認する。
・i
Figure 2020536473
SVr,3ならば、iは直ちにステップ3の自身の実行を停止する。
・i∈SVr,3ならば、ある長さの時間
Figure 2020536473
待機した後でiは以下のように行動する。
1.値v’≠⊥が存在して、受信した全ての有効なメッセージ
Figure 2020536473
のうち、2/3よりも多くが
Figure 2020536473
の形式で一切矛盾しない(脚注16)ならば、メッセージ
Figure 2020536473
を計算する。さもなければ
Figure 2020536473
を計算する(脚注16:すなわち、プレーヤーjから、ESIGj(v’)及び異なるESIGj(v”)を各々含む2個の有効なメッセージを受信していない。これ以降、後で定義する終了条件を除き、正直なプレーヤーが所与の形式のメッセージを望む都度、互いに矛盾するメッセージは決してカウントされず、有効であるともみなされない。)
2.iは自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
ステップ4:GCの出力及びBBA*の第1ステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップ4を開始する。
・ユーザーiはBr-1の第3の要素からQr-1を計算してi∈SVr,4であるか否かを確認する。
・i
Figure 2020536473
SVr,4ならば、iは直ちにステップ4の自身の実行を停止する。
・i∈SVr,4ならば、ある長さの時間
Figure 2020536473
待機した後でiは以下のように行動する。
1.vi及びgi、すなわちGCの出力を以下のように計算する。
(a)値v’≠⊥が存在して、受信した全ての有効なメッセージ
Figure 2020536473
のうち、2/3よりも多くが
Figure 2020536473
の形式であるならば
Figure 2020536473
及び
Figure 2020536473
を設定する。
(b)さもなければ、値v’≠⊥が存在して、受信した全ての有効なメッセージ
Figure 2020536473
のうち、1/3よりも多くが
Figure 2020536473
の形式であるならば
Figure 2020536473
及び
Figure 2020536473
を設定する。(脚注17:ケース(b)のv’が存在するならば、一意でなければならないことを証明できる。)
(c)さもなければ、
Figure 2020536473
及び
Figure 2020536473
を設定する。
2.biすなわちBBA*の入力を以下のように計算する。
i=2ならば
Figure 2020536473
、さもなければ
Figure 2020536473
3.メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
ステップs,5≦s≦m+2,s−2≡0mod3:BBA*のコインが0に固定されたステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップsを開始する。
・ユーザーiはBr-1の第3の要素からのQr-1を計算してi∈SVr,sであるか否かを確認する。
・i
Figure 2020536473
SVr,sならば、iは直ちにステップsの自身の実行を停止する。
・i∈SVr,sならば、iは以下のように行動する。
− ある長さの時間
Figure 2020536473
が経過するまで待機する。
− 終了条件0:このように待機する間の任意の時点で、ストリングv≠⊥が存在し、及び以下のようなステップs’すなわち、
(a)5≦s’≦s,s’−2≡0mod3、すなわちステップs’はコインが0に固定されたステップであり、
(b)iは少なくとも
Figure 2020536473
個の有効なメッセージ
Figure 2020536473
を受信しており(脚注18:プレーヤーjからのそのようなメッセージは、たとえプレーヤーiがlに署名しているjからもメッセージを受信していた場合であっても数えられる。終了条件1と同様の事項。解析に示すように、これは時間λ内に全ての正直なユーザーが互いからBrを区別することを保証するために行われる。)、
(c)iは1個の有効なメッセージ
Figure 2020536473
但し
Figure 2020536473
を受信している
が存在する場合、iは何も拡散することなく直ちにステップs(及び実際にはラウンドr)の自身の実行を停止して、
Figure 2020536473
を設定し、自身のCERTrをサブステップ(b)のメッセージ
Figure 2020536473
の集合となるように設定する(脚注19:ユーザーiは現在Brを知っており、自身のラウンドrは終了する。ユーザーiは依然として一般ユーザーとしてメッセージの拡散を支援するが、(r,s)検証者としては一切拡散を開始しない。特に、自身のCERTrで全てのメッセージの拡散を支援しており、これはプロトコルにとって充分である。ユーザーiはバイナリBAプロトコルに対して
Figure 2020536473
も設定しなければならないが、いずれにせよbiはこの場合必要とされないことに注意されたい。全ての将来的な命令についても同様である。)
− 終了条件1:このように待機する間の任意の時点で、以下のようなステップs’すなわち、
(a’)6≦s’≦s,s’−2≡1mod3、すなわちステップs’はコインが1に固定されたステップであり、
(b’)iは少なくともtH個の有効なメッセージ
Figure 2020536473
を受信している(脚注20:この場合、vjが何であろうとかまわない。)
が存在する場合、iは何も拡散することなく直ちにステップs(及び実際にはラウンドr)の自身の実行を停止して、
Figure 2020536473
を設定し、自身のCERTrをサブステップ(b’)のメッセージ
Figure 2020536473
の集合となるように設定する。
− さもなければ、待機終了時点でユーザーiは以下を実行する。
受信した全ての有効な
Figure 2020536473
の第2の要素におけるv’jの多数票になるようにviを設定する。
以下のようにbiを計算する。
受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ、受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ
Figure 2020536473
を設定する。
メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
ステップs、6≦s≦m+2,s−2≡1mod3:BBA*のコインが1に固定されたステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップsを開始する。
・ユーザーiはBr-1の第3の要素からのQr-1を計算してi∈SVr,sであるか否かを確認する。
・i
Figure 2020536473
SVr,sならば、iは直ちにステップsの自身の実行を停止する。
・i∈SVr,sならば、iは以下を実行する。
− ある長さの時間
Figure 2020536473
が経過するまで待機する。
− 終了条件0:コインが0に固定されたステップと同じ命令。
− 終了条件1:コインが0に固定されたステップと同じ命令。
− さもなければ、待機終了時点でユーザーiは以下を実行する。
受信した全ての有効な
Figure 2020536473
の第2の要素におけるv’jの多数票になるようにviを設定する。
以下のようにbiを計算する。
受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ、受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ
Figure 2020536473
を設定する。
メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
ステップs,7≦s≦m+2,s−2≡2mod3:BBA*のコインを本当に投げたステップ
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップsを開始する。
・ユーザーiはBr-1の第3の要素からのQr-1を計算してi∈SVr,sであるか否かを確認する。
・i
Figure 2020536473
SVr,sならば、iは直ちにステップsの自身の実行を停止する。
・i∈SVr,sならば、iは以下を実行する。
− ある長さの時間
Figure 2020536473
が経過するまで待機する。
− 終了条件0:コインが0に固定されたステップと同じ命令。
− 終了条件1:コインが0に固定されたステップと同じ命令。
− さもなければ、待機終了時点でユーザーiは以下を実行する。
受信した全ての有効な
Figure 2020536473
の第2の要素におけるv’jの多数票になるようにviを設定する。
以下のようにbiを計算する。
受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ、受信した全ての有効な
Figure 2020536473
の2/3より多くが
Figure 2020536473
の形式であれば、
Figure 2020536473
を設定する。
さもなければ、
Figure 2020536473
を、有効なメッセージ
Figure 2020536473
を受信した送信元である(r,s−1)検証者の集合とする。
Figure 2020536473
を設定する。
メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散する。
ステップm+3:BBA*の最後のステップ
(脚注21:圧倒的な確率でBBA*が本ステップの前に終了しているが、完全性を求めて本ステップを指定する。)
全てのユーザーi∈PKr-kへの命令:ユーザーiはBr-1を知ったならば直ちにラウンドrの自身のステップm+3を開始する。
・ユーザーiはBr-1の第3の要素からのQr-1を計算してi∈SVr,m+3であるか否かを確認する。
・i
Figure 2020536473
SVr,m+3ならば、iは直ちにステップm+3の自身の実行を停止する。
・i∈SVr,m+3ならば、iは以下を実行する。
− ある長さの時間
Figure 2020536473
が経過するまで待機する。
− 終了条件0:コインが0に固定されたステップと同じ命令。
− 終了条件1:コインが0に固定されたステップと同じ命令。
− さもなければ、待機終了時点でユーザーiは、以下を実行する。
Figure 2020536473
及び
Figure 2020536473
を設定する。
メッセージ
Figure 2020536473
を計算して、自身の短期秘密鍵
Figure 2020536473
を破壊し、次いで
Figure 2020536473
を拡散してBrを証明する。(脚注22:ステップm+3からの証明はESIGi(outi)を含んでいなくてもよい。これを含めるのは均一性のためだけである。証明は現在、どのステップで生成されたかに依らず均一な形式を有している。)
非検証者によるラウンドrブロックの再構築
システム内の全てのユーザーiへの命令:ユーザーiはBr-1を知ったならば直ちに自身のラウンドrを開始し、以下のようなブロック情報を待つ。
− このように待機する間の任意の時点で、ストリングv、及び以下のようなステップs’すなわち
(a)5≦s’≦m+3但しs’−2≡0mod3
(b)iは、少なくともtH個の有効なメッセージ
Figure 2020536473
を受信しており、
(c)iは1個の有効なメッセージ
Figure 2020536473
但し
Figure 2020536473
を受信している
が存在する場合、iは直ちにラウンドrの自身の実行を停止して、
Figure 2020536473
を設定し、自身のCERTrをサブステップ(b)のメッセージ
Figure 2020536473
の集合となるように設定する。
− このように待機する間の任意の時点で、以下のようなステップs’すなわち、
(a’)6≦s’≦m+3但しs’−2≡1mod3
(b’)iは少なくともtH個の有効なメッセージ
Figure 2020536473
を受信している
が存在する場合、iは直ちにラウンドrの自身の実行を停止して、
Figure 2020536473
を設定し、自身のCERTrをサブステップ(b’)のメッセージ
Figure 2020536473
の集合となるように設定する。
− このように待機する間の任意の時点で、iが少なくともtH個の有効なメッセージ
Figure 2020536473
を受信していれば、iは直ちにラウンドrの自身の実行を停止して、
Figure 2020536473
を設定し、自身のCERTrを1及び
Figure 2020536473
へのメッセージ
Figure 2020536473
の集合となるように設定する。
6 短期鍵を有するAlgorand
本質的に、Algorandではブロックはラウンドで生成される。ラウンドrにおいて
(1)適切に信任されたリーダーが新規ブロックを提案し、次いで、
(2)信任されたユーザーは適切に、いくつかのステップにわたり、提案されたブロックで適切なビザンチン合意(BA)プロトコルを実行する。
好適なBAプロトコルはBA*である。ブロック提案ステップはステップ1と考えられるため、BA*のステップは2,3,...である。
システムのユーザーの中から無作為に選択された適切なユーザーiだけが、ラウンドrのステップsでメッセージ
Figure 2020536473
を送る資格を有している。Algorandが極めて高速且つ安全である理由は、そのようなユーザーiは自身が話す資格を有しているか否かを調べるためである。そうである場合、ユーザーiは実際に証明すなわち信任値を取得する。ラウンドrのステップsで自分が話す順番である場合、iは自身の信任値
Figure 2020536473
及び自身のデジタル署名されたメッセージ
Figure 2020536473
の両方をネットワークに拡散させる。信任値は他のユーザーに、メッセージ
Figure 2020536473
を考慮に入れるべきであることを証明する。
ユーザーiがラウンドrのステップsで話す資格を有するのに必要な条件は、数ラウンド前に既にシステムに存在していた。具体的には、ラウンドrのkラウンド前であり、kは「見直し」パラメータと称されるパラメータである。すなわち、ラウンドrで話す資格を有するには、iはPKr-k、すなわちラウンドr−kで既にシステムに存在する全ての公開鍵/ユーザーの集合に属していなければならない。(ユーザーは自身の公開鍵により識別できる。)この条件は、ブロックチェーンから導出可能であるという意味で検証が容易である。
他の条件は、
H(SIGi(r,s,Qr-1))<p
であり、pはSVr,sの検証者の人数の期待値を制御する所与の確率、すなわちラウンドrのステップsで話す資格を有しているユーザーの集合である。この条件が満たされたならば、iの信任値は次式で定義される。
Figure 2020536473
無論、自身がSVr,sに属するか否かを推測できるのはiだけであり、他の全てのユーザーはiの秘密署名鍵に関する知識がないため、これに関して全く分からない。しかし、i∈SVr,sならば、iは自身の信任値
Figure 2020536473
を拡散することにより、これまでのブロックチェーンを与えられたならば誰にでも当てはまることを示すことができる。実際、(1)Qr-1は1つ前のブロックBr-1から容易に計算可能であるが、充分に多くのブロックを遡れば本質的に予測不可能であり、(2)誰でもiのデジタル署名を(システムにおけるiの長期鍵に関して)確認することができることを想起されたい。
また、これまでのAlgorandのバージョンにおいて、検証者i∈SVr、sが短期公開鍵
Figure 2020536473
に関して自身のステップsラウンドrメッセージ
Figure 2020536473
にデジタル署名し、ブロックチェーンが与えられれば、i及びラウンドrのステップsに実際に対応していることは誰でも分かることを想起されたい。この「短期署名」を小文字で
Figure 2020536473
と表記し、大文字で表記する「長期」鍵によるiの署名と区別する。
要するに、SVr,sのユーザーは、ラウンドrのステップsで2つの別々のメッセージすなわち、(a)自身の信任値
Figure 2020536473
及び(b)自身の(短期的に)デジタル署名されたステップsラウンドrメッセージ
Figure 2020536473
を拡散する。これを実行した後で、iは
Figure 2020536473
に対応する自身の秘密短期鍵を削除する。
短期鍵をこのように用いることで、ブロックBrが生成された後で敵対者がラウンドrの充分に多くの検証者を唆して異なるラウンドrブロックを生成できるようになることを防止する。
実際に、ステップ1の検証者が潜在的リーダーであり、且つ検証者のステップlラウンドrのメッセージが検証者の提案するブロックであることを想起されたい。(ラウンドrのリーダーlrは、最小の信任値がハッシュされた潜在的リーダーであると定義される。極めて稀な同点の場合、辞書編成順に先頭である潜在的リーダーを選択してよい。)任意のステップs>1に対して、i∈SVr,sのメッセージ
Figure 2020536473
が自身の「支配メッセージ」、すなわちBAプロトコルBA*における自身のメッセージである。
検証者iの信任値を自身の(デジタル署名された)メッセージ
Figure 2020536473
から分離することには、次の2つの主な利点がある。
1 数人の潜在的リーダーが提案された新規ブロックを拡散する第1ステップにおいて、ユーザーはラウンドリーダーlrが正直ならば素早く識別することができる。実際、全ての信任値、特にステップ1における信任値は極めて小さいのに対し、提案されたブロックは大きい場合がある。(lrが提案する実際のブロックは直後に識別することができる。)
2 怠慢な正直さを実装可能にする。すなわち、ユーザーiが行動しなければならないラウンド及びステップを事前に非公開に認識できるようにする。
7 メッセージ信任されたブロックチェーンを用いるAlgorand
最初に、最終的にブロックを証明するために短期鍵を用いる必要はないが、他の全てのステップでは短期鍵を用いるAlgorandの新たな実施形態について述べる。
次いで、第1のブロック提案ステップを除く全てのステップでAlgorandにより短期鍵をなくす方法について述べる。
ブロック提案 新たな実施形態は以前と同じステップ1を用いる。従って、ラウンドrの潜在的リーダーiは、自身の対応する短期鍵に関して自身の提案されたブロック
Figure 2020536473
に署名して、対応する秘密の短期鍵を消去し、次いで
Figure 2020536473
の自身の信任値及び署名を拡散する。
ビザンチン合意 ラウンドrにおいて、BAプロトコルBA*の全てのステップsは以前と同じままである。従って、特に、検証者i∈SVr,sは自身の信任値及び自身のr−s短期公開鍵に関してデジタル署名された自身のステップsラウンドrメッセージ
Figure 2020536473
を拡散して、対応する秘密短期鍵を消去する。しかし、第1のコインが1に固定されたステップの終了条件及びBBA*の全ての後続ステップに以下の変更が加えられる。
このようなステップsでユーザーiが初めて終了条件に達したと仮定する。その場合、
・あるビットbに対して、iは少なくともtH個の有効なメッセージ
Figure 2020536473
但し同じv≠⊥、を受信しており、
・iは1個の有効なメッセージ
Figure 2020536473
但し
Figure 2020536473
を受信している。
従って、iがSVr,sにおける検証者であれば、Algorandの従来技術の実施形態では、直ちに実行を停止して、CERTrを所有していると思われるブロックBrを知っていたであろう。CERTrが所与の数の短期デジタル署名を含んでいることを想起されたい。ここではそのようなCERTrをBrの「短期証明」と呼ぶ。
Algorandの新たな実施形態において、ユーザーiはSVr,s(必然的にPKr-kに属する)の検証者ではなく、PKr-kの任意のユーザーであってよく、kは見直しパラメータである。そのような任意のユーザーiはもはや、ラウンドr実行(のシミュレーション)を停止しない。むしろ、自身の長期の秘密鍵を用いて、ブロックBが最後であると考えることを示すデータの署名を生成し、署名が正当に考慮される適切な機会があることを保証している。例えば、一切の限定を意図することなく、iは、
i=SIGi(FINAL,r,s,Qr-1,H(B))
を計算し、ここでBはブロックチェーンで構築されたばかりの最新ブロックである。H(si)<pならば、iはsiを拡散し、siを信任された証明署名と呼ぶ。(ここに、pは[0,1]の範囲にある所与のパラメータである。)
そのような署名の所与の閾値TがBの非短期証明を構成する。
ここで、非短期証明だけが重要である。短期証明は、真の非短期証明に向かう「踏み石」に過ぎないと考えてよい。
正直なユーザーは、ブロックBrの最後の証明を見て、ラウンドrのブロックの最後の証明の生成にはもはや関与しない。
解析 たとえ非短期証明が長期署名を含んでいたとしても、本実施形態は依然として安全である。本質的に、その理由は、p及びTの適切な選択のために、敵対者は以下の形式のT個の署名Sjを生成できるストリングXを一切見つけることができないからである。
j=SIGi(FINAL,r,s,Qr-1,X)
ここに、全てのjは唆されたユーザーであってH(sj)≦pである。
(本出願において、Tは極めて小さくても、例えば約500であってもよい。その理由は、T個の署名のうち少なくとも1個が正直なユーザーのものであればよいからである。実際、Tははるかに小さくてよく、その理由は、非短期証明を頻繁に生成すれば充分であり、必ずしも全てのブロックについて生成しなくてもよいからである。)
また、新たな実施形態では、敵対者が唆されたユーザーが計算した「任意の信任された証明署名」を正直なユーザーに拡散させることによりネットワークをオーバーフローさせることができない点にも注意されたい。実際、悪意のあるj∈PKr-kは誰でも、H(SIGi(FINAL,r,s,Qr-1,xj))<pであるような任意のストリングxjを見つけられるが、拡散規則を適正に用いることにより、署名SIGi(FINAL,r,s,Qr-1,xj)は決して正直なユーザーにより中継されないであろう。実際、ユーザーuが署名SIGi(FINAL,r,s,Qr-1,H(B))を転送するのは、(1)j∈PKr-k且つ(2)H(SIGi(FINAL,r,s,Qr-1,H(B)))<pの場合だけでなく、(3)H(B)が、u自身が非短期証明を見たブロックBのハッシュである場合も転送する。
実は、上の条件3は、以下のより弱いもので代替することができる。
3’.H(B)は、可能な短期証明の充分大きい部分集合をu自身が見たブロックBのハッシュである。
実際、正直なユーザーiがBの完全な短期証明を見たならば、(分割がない状態で)他の正直なユーザーはBが適切なステップの多数の検証者が承認したBを見ていた筈である。この数は、実際に非短期的に証明される可能性があるブロックだけを識別するのに充分である。
他のステップにおける短期鍵の除去 上の実施形態は、元のAlgorandプロトコルに最小限の変更を必要とする。以下に、第1ステップ以外の全てのステップで短期鍵を回避する仕方を説明しよう。概念は、全てのステップs>1に対して、ステップs検証者が存在しないというものである。むしろ、全てのラウンドrに対して、全てのユーザーがあたかもSVr,sの検証者であるかのようにステップsを内部的に実行することにより、自身のステップsラウンドrメッセージ
Figure 2020536473
を内部的に計算する。この時点で、iは自身の短期鍵
Figure 2020536473

Figure 2020536473
にデジタル署名するのではなく、自身が以下のようにメッセージ
Figure 2020536473
を拡散する資格を有しているか否かを、次のように確認する。最初に、iはkラウンド前にシステムにいたか否か、すなわち、j∈PKr-kか否かを確認する。そうであれば、iは量Qr-1と共に、自身の長期鍵で
Figure 2020536473
にデジタル署名する。例えば、
Figure 2020536473
を計算して、所与の確率pでこの署名のハッシュが≦pであるか否かを確認する。そうであれば、iは
Figure 2020536473
を拡散する資格を有しており、実際に
Figure 2020536473
を拡散する。
Figure 2020536473
が与えられたならば、iが
Figure 2020536473
を拡散する資格を有していることを誰でも確かめることができる点に注意されたい。ステップs+1において、ユーザーは、資格を有するユーザーが拡散したステップsのメッセージだけを考慮する。
ラウンドrのステップsを(少なくとも内部的に)実行した正直なユーザーは、もはやそのようなステップを実行することも、実行に関与することもない。
8 範囲
本明細書に記述する機構が、検証等の特定の目的でユーザーの部分集合を一般に検証可能な仕方で無作為に選択することが望ましい他のブロックチェーンシステムに適用できる点に注意されたい。従って、本明細書に記述するシステムは他のブロックチェーンスキーム、例えばイーサリアム又はライトコイン或いは通貨とは直接関係がないブロックチェーンスキームにも適合させることができる。
本明細書に記述するシステムは、全文を本明細書に引用している2017年5月4日出願のPCT/US2017/第031037号、2017年8月17日出願の第15/551,678号、2017年9月28日出願の第62/564,670号、2017年10月4日出願の第62/567,864号、2017年10月10日出願の第62/570,256号、2017年11月2日出願の第62/580,757号、2017年12月19日出願の第62/607,558号、2018年2月20日出願の第62/632,944号、及び2018年3月15日出願の第62/643,331号のいずれか又は全てに開示された機構に適用すべく、及びこれらと組み合わせるべく適合させることができる。
本明細書に記述するシステムのソフトウェア実装は、計算機可読媒体に保存され、1つ以上のプロセッサにより実行される実行可能コードを含んでいてよい。計算機可読媒体は非一時的でよく、コンピュータハードドライブ、ROM、RAM、フラッシュメモリ、CD−ROM、DVD−ROM、フラッシュドライブ、SDカード等の可搬コンピュータ記憶媒体及び/又は例えばユニバーサルシリアルバス(USB)インターフェースを備えた他のドライブ、及び/又は実行コードが保存されてプロセッサにより実行可能な有形又は非一時的計算機可読媒体或いはコンピュータメモリであってよい。本明細書に記述するシステムは任意の適当なオペレーティングシステムと組み合わせて用いられてよい。
本発明の他の実施形態は、本明細書に開示する本発明の仕様の実施を考慮することにより当業者に明らかになろう。仕様及び実施例は例示目的に過ぎず、本発明の真の範囲及び趣旨は以下の請求項により示されるものとする。

Claims (16)

  1. 取引がブロックに編成されている取引システムにおいて、一連の先行ブロックB0,B1,...,Br-1に対して主体に有効な取引の新規ブロックBrを構築させる方法であって、
    前記主体に、前記先行ブロックから量Qを決定させるステップと、
    前記主体に、Q及び前記主体に一意に関連付けられたストリングSを計算すべく秘密鍵を使用させるステップと、
    前記主体に、S自身、Sの機能、及び/又はSのハッシュ値のうち少なくとも1つで量TをSから計算させるステップと、
    前記主体に、Tが所与の特性を有しているか否かを判定させるステップと、
    Tが所与の特性を有している場合、前記主体にBrにデジタル署名させてS及びBrのデジタル署名されたバージョンを利用可能にさせるステップとを含み、前記主体はBrのデジタル署名に応じて変化する乱数値に基づいて選択されている方法。
  2. 前記秘密鍵は、前記主体の公開鍵に対応する秘密署名鍵であって、Sは前記主体によるQのデジタル署名である、請求項1に記載の方法。
  3. Tは数であって、Tが所与の数pより小さければ前記特性を満たす、請求項1に記載の方法。
  4. SはSをBrから導出可能にすることにより利用可能になる、請求項2に記載の方法。
  5. 各ユーザーは前記取引システムに残高を有し、pは各ユーザーの前記残高に応じてユーザー毎に異なっている、請求項2に記載の方法。
  6. 前記乱数値は前記主体のデジタル署名のハッシュである、請求項1に記載の方法。
  7. 前記主体は前記取引システムの最小数の主体がBrにデジタル署名できるように選択された閾値を前記乱数値が下回る場合に選択される、請求項6に記載の方法。
  8. 一連の先行ブロックB0,B1,...,Br-1に関して新規ブロックBrを検証すべくブロックチェーンシステムのユーザーの部分集合を選択する方法であって、
    前記ユーザーの少なくとも一部に、他の情報と共に前記新規ブロックBrにデジタル署名させてデジタル署名を生成させるステップと、
    前記ユーザーの少なくとも一部に、前記デジタル署名のハッシュ値を決定させるステップと、
    前記ユーザーの少なくとも一部に、前記ハッシュ値を所定の閾値と比較させるステップと、
    前記ユーザーの部分集合に、前記ユーザーの部分集合毎に、所定の閾値を下回る前記ハッシュ値に応答して前記新規ブロックBrを検証すべく前記デジタル署名を利用可能にさせるステップとを含む方法。
  9. 前記ユーザーのうち特定の1人が前記新規ブロックBrにデジタル署名するのは、前記ユーザーの前記特定の1人が前記新規ブロックBrに設定された情報を検証する場合のみである、請求項8に記載の方法。
  10. 前記所定の値は前記ユーザーの部分集合が前記ユーザーの最少人数を含むように選択されている、請求項8に記載の方法。
  11. 前記ブロックチェーンシステムは取引がブロックに編成された取引システムで用いられる、請求項8に記載の方法。
  12. ブロックチェーンにおいて、少なくとも1個のデータストリングmの証明を行う方法であって、
    ユーザーの集合Sに、mが所与の少なくとも何らかの特性を有しているか否かを検証させるステップと、
    ユーザーに、前記ユーザーによるmの検証に応答してmにデジタル署名させるステップと、
    前記ユーザーにmの信任された署名であるmの前記デジタル署名を利用可能にさせるステップとを含む方法。
  13. mの前記デジタル署名が信任されるのは前記デジタル署名が所与の追加的な特性を満たす場合である、請求項12に記載の方法。
  14. mの前記デジタル署名が前記所与の追加的な特性を満たすのは、前記デジタル署名のハッシュが所与の目標数よりも小さい場合である、請求項13に記載の方法。
  15. 前記データストリングmはmの少なくとも所与の数の信任された署名により証明される、請求項12に記載の方法。
  16. 請求項1〜15のいずれか一項に記載の方法を実装する実行可能コードを含む、非一時的コンピュータ可読媒体で提供されるコンピュータソフトウェア。
JP2020540241A 2017-09-28 2018-09-28 メッセージ信任ブロックチェーン Pending JP2020536473A (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201762564670P 2017-09-28 2017-09-28
US62/564,670 2017-09-28
US201762567864P 2017-10-04 2017-10-04
US62/567,864 2017-10-04
US201762570256P 2017-10-10 2017-10-10
US62/570,256 2017-10-10
US201762580757P 2017-11-02 2017-11-02
US62/580,757 2017-11-02
US201762607558P 2017-12-19 2017-12-19
US62/607,558 2017-12-19
US201862632944P 2018-02-20 2018-02-20
US62/632,944 2018-02-20
US201862643331P 2018-03-15 2018-03-15
US62/643,331 2018-03-15
PCT/US2018/053360 WO2019067863A1 (en) 2017-09-28 2018-09-28 BLOCK CHAINS ACCREDITED BY MESSAGE

Publications (2)

Publication Number Publication Date
JP2020536473A true JP2020536473A (ja) 2020-12-10
JP2020536473A5 JP2020536473A5 (ja) 2021-11-11

Family

ID=65903286

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020540241A Pending JP2020536473A (ja) 2017-09-28 2018-09-28 メッセージ信任ブロックチェーン

Country Status (13)

Country Link
US (1) US20200304314A1 (ja)
EP (1) EP3688700A4 (ja)
JP (1) JP2020536473A (ja)
KR (1) KR20200101326A (ja)
CN (1) CN111566680A (ja)
AU (1) AU2018339067A1 (ja)
BR (1) BR112020006407A2 (ja)
CA (1) CA3077246A1 (ja)
IL (1) IL273623A (ja)
MX (1) MX2020004000A (ja)
RU (1) RU2020114756A (ja)
SG (1) SG11202002846TA (ja)
WO (1) WO2019067863A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110321732A (zh) * 2019-05-23 2019-10-11 深圳壹账通智能科技有限公司 区块链系统的数据授权方法、装置、存储介质及电子设备
CN110300167B (zh) * 2019-06-28 2020-07-31 京东数字科技控股有限公司 基于区块链的业务信息处理方法、设备及可读存储介质
CN110535629B (zh) * 2019-09-20 2022-06-10 奥科塞尔控股公司 一种异步网络条件下的出块共识方法
CN110838947B (zh) * 2019-11-21 2021-04-23 桂林电子科技大学 一种基于H-Algorand的多块输出公有链共识机制
CN111273897A (zh) * 2020-01-21 2020-06-12 北京艾鸥科技有限公司 一种区块链资源消耗方法、装置、储存介质及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091148A (ja) * 2015-11-09 2017-05-25 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017192837A1 (en) * 2016-05-04 2017-11-09 Silvio Micali Distributed transaction propagation and verification system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5903882A (en) * 1996-12-13 1999-05-11 Certco, Llc Reliance server for electronic transaction system
US7047416B2 (en) * 1998-11-09 2006-05-16 First Data Corporation Account-based digital signature (ABDS) system
CN102017510B (zh) * 2007-10-23 2013-06-12 赵运磊 自封闭联合知识证明和Diffie-Hellman密钥交换方法与结构
US20150379510A1 (en) * 2012-07-10 2015-12-31 Stanley Benjamin Smith Method and system to use a block chain infrastructure and Smart Contracts to monetize data transactions involving changes to data included into a data supply chain.
WO2014201059A1 (en) * 2013-06-10 2014-12-18 Certimix, Llc Secure storing and offline transfering of digitally transferable assets
US11270298B2 (en) 2014-04-14 2022-03-08 21, Inc. Digital currency mining circuitry
US20170048209A1 (en) 2015-07-14 2017-02-16 Fmr Llc Crypto Key Recovery and Social Aggregating, Fractionally Efficient Transfer Guidance, Conditional Triggered Transaction, Datastructures, Apparatuses, Methods and Systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017091148A (ja) * 2015-11-09 2017-05-25 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
WO2017192837A1 (en) * 2016-05-04 2017-11-09 Silvio Micali Distributed transaction propagation and verification system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHEN, JING,MICALI, SILVIO: "ALGORAND", ARXIV [ONLINE], vol. 1607.01341v9, JPN6022041622, 26 May 2017 (2017-05-26), pages 1 - 75, ISSN: 0005048992 *
飯島 京嗣,小柴 健史: "Proof-of-Stakeに基づく電子投票プロトコル", 2017年 暗号と情報セキュリティシンポジウム, vol. 3F3-2, JPN6022041623, 24 January 2017 (2017-01-24), pages 1 - 4, ISSN: 0004885741 *

Also Published As

Publication number Publication date
EP3688700A4 (en) 2021-06-23
SG11202002846TA (en) 2020-04-29
RU2020114756A (ru) 2021-10-28
WO2019067863A1 (en) 2019-04-04
KR20200101326A (ko) 2020-08-27
MX2020004000A (es) 2020-10-05
EP3688700A1 (en) 2020-08-05
AU2018339067A1 (en) 2020-04-09
CA3077246A1 (en) 2019-04-04
BR112020006407A2 (pt) 2020-09-24
CN111566680A (zh) 2020-08-21
IL273623A (en) 2020-05-31
US20200304314A1 (en) 2020-09-24

Similar Documents

Publication Publication Date Title
KR102409819B1 (ko) 분산 거래 전파 및 검증 시스템
US11799637B2 (en) Methods and systems for blockchain-implemented event-lock encryption
EP3635606B1 (en) Blockchain for general computation
Chen et al. Algorand
JP2020536473A (ja) メッセージ信任ブロックチェーン
US20200396059A1 (en) Fast and partition-resilient blockchains
KR20200059233A (ko) 분산 조정을 사용한 스마트 계약 실행
JP2021507629A (ja) 高速且つ分割耐性を有するブロックチェーン
Li et al. Cryptoeconomics: Economic Mechanisms Behind Blockchains
Alruwaili et al. Intelligent transaction techniques for blockchain platforms
Kumar Hyperledger Fabric In-Depth: Learn, Build and Deploy Blockchain Applications Using Hyperledger Fabric
Adam Consensus Models
Semaan A novel penalty system to limit profitability of selfish mining

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210928

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221003

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230501