CN111566680A - 有消息凭证的区块链 - Google Patents

有消息凭证的区块链 Download PDF

Info

Publication number
CN111566680A
CN111566680A CN201880076741.4A CN201880076741A CN111566680A CN 111566680 A CN111566680 A CN 111566680A CN 201880076741 A CN201880076741 A CN 201880076741A CN 111566680 A CN111566680 A CN 111566680A
Authority
CN
China
Prior art keywords
users
user
round
entity
digital signature
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
CN201880076741.4A
Other languages
English (en)
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 Corp
Original Assignee
Algorand Corp
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 Corp filed Critical Algorand Corp
Publication of CN111566680A publication Critical patent/CN111566680A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/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
    • 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
    • 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)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Power Engineering (AREA)
  • Development Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Computing Systems (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

在交易被组织成区块的交易系统中,通过以下方式相对于一系列先前区块B0,B1,...,Br~1构建有效交易的新区块Br:使实体根据这些先前区块确定量Q;使该实体使用秘密密钥以便计算唯一地与Q和该实体相关联的字符串S;使该实体根据S计算是以下各项的量T:S本身、S的函数和/或S的散列值;使该实体确定T是否拥有给定的属性;以及如果T拥有该给定的属性,则使该实体对Br进行数字签名并且使S和Br的数字签名版本可用,其中,该实体是基于根据Br的数字签名而变化的随机值来选择的。

Description

有消息凭证的区块链
技术领域
本申请涉及电子交易领域,并且更具体地涉及保护用于电子交易的交易区块序列的内容的领域。
背景技术
区块链由可增大的区块序列组成:1、2、……,其中,每个区块由多个交易、先前区块的散列和其他数据(例如,区块的编号、时间信息等)组成。区块链的有用属性是:系统中的每个用户最终得知每个区块的内容,没有人可以更改区块的内容或顺序,并且任何有效交易最终都将进入链中的区块。
用户可以进行数字签名,并且因此每个用户拥有至少一个公开密钥和对应的秘密密钥。通常,在区块链中,人们知道公开密钥,但不一定知道拥有该公开密钥的用户。因此,可以用公开密钥的拥有者识别公开密钥。
区块链通过传播消息(例如,区块、交易等)来工作。典型地但并非排他性地,通过以对等方式闲聊消息或经由中继来传播消息。
几个区块链系统要求通过系统中足够多的用户的数字签名来证实区块。在一些系统中,这种证实用户属于固定的用户集合。在其他一些系统中,这种证实用户属于动态变化的集合。这是优选的,因为敌对者将会更难破坏动态变化的集合,尤其是如果该集合不仅是动态的,而且也不可预测的话。
以可验证但不可预测的方式选择用户集合的特别有效的方式是Algorand所采用的密码抽签。这里,用户i属于用户集合,这些用户被授权在区块编号r的产生期间基于i使用输入s和r以及可能的其他输入和其他数据(例如,对于某个给定整数k,用户已经在区块r之前的至少k个区块加入系统的事实)经由他的秘密密钥执行的计算的结果在某个步骤s中行动。例如,i的计算可以涉及i的这种输入的数字签名
Figure BDA0002511187180000011
散列处理
Figure BDA0002511187180000012
以及检查散列是否小于给定目标t。(事实上,像任何其他字符串一样,散列的值可以以某种标准方式解释为数字。)如果是这种情况,则将
Figure BDA0002511187180000021
定义为i关于区块r针对步骤s的凭证。这种凭证向任何人证明i确实有权产生(优选地,经过签名的)消息
Figure BDA0002511187180000022
(i在第r轮中(即,在旨在产生区块r的过程中)用于步骤s的消息)。事实上,i的数字签名可以被任何人检查,并且任何人都可以对给定值进行散列处理并且然后检查结果是否确实小于(或等于)给定数字。因此,i可以传播
Figure BDA0002511187180000023
Figure BDA0002511187180000024
两者。在Algorand中,凭证
Figure BDA0002511187180000025
是相对于长期密钥计算的,而
Figure BDA0002511187180000026
的签名是使用临时密钥计算的,i仅使用该临时密钥验证仅一条消息:i的消息
Figure BDA0002511187180000027
事实上,诚实的i一旦用这种临时秘密密钥对
Figure BDA0002511187180000028
进行签名就擦除这种临时秘密密钥。
使用在使用后被擦除的临时密钥防止在i传播
Figure BDA0002511187180000029
后破坏i的敌对者强迫i对关于第r轮的步骤s的不同消息进行签名。然而,系统依赖于适当的程序向其他人保证哪个是用户i专用于认证其针对第r轮的步骤s的消息的临时密钥。这种保证可能要求存储和/或传输另外的数据。因此,减少这一要求将会是很好的。特别是用于证实区块链的区块的要求。
因此,期望提供不需要信任中央机构并且不经受已知分散式方法的低效和不安全的公共账本和电子货币系统。
发明内容
根据本文所描述的系统,在交易被组织成区块的交易系统中,通过以下各项相对于一系列先前区块B0,B1,...,Br-1构建有效交易的新区块Br:使实体根据这些先前区块确定量Q;使该实体使用秘密密钥以便计算唯一地与Q和该实体相关联的字符串S;使该实体根据S计算是以下各项的量T:S本身、S的函数和/或S的散列值;使该实体确定T是否拥有给定的属性;以及如果T拥有该给定的属性,则使该实体对Br进行数字签名并且使S和Br的数字签名版本可用,其中,该实体是基于根据Br的数字签名而变化的随机值来选择的。该秘密密钥可以是对应于该实体的公开密钥的秘密签名密钥,并且S是该实体对Q的数字签名。T可以是数字并且在T小于给定数字p时满足该属性。可以通过使S能够从Br中推断出来使S可用。每个用户可以在该交易系统中具有余额,并且每个用户的p可以根据每个用户的该余额而变化。该随机值可以是该实体的该数字签名的散列。如果该随机值低于被选择以使该交易系统的最小数量的实体能够对Br进行数字签名的阈值,则可以选择该实体。
进一步根据本文所描述的该系统,在区块链系统中选择用户的子集以相对于一系列先前区块B0,B1,...,Br-1来验证新区块Br包括:使这些用户中的至少一些用户对该新区块Br以及其他信息进行数字签名以产生数字签名;使这些用户中的至少一些用户确定该数字签名的散列值;使这些用户中的至少一些用户将该散列值与预定阈值进行比较;以及响应于该散列值低于这些用户的该子集中的每一个用户的预定阈值使这些用户的该子集使该数字签名可用于验证该新区块Br。只有当这些用户中的特定用户验证了该新区块Br中提供的信息时,这些用户中的该特定用户才可以对该新区块Br进行数字签名。可以选择该预定值以使这些用户的该子集包含最小数量的这些用户。该区块链系统可以用于交易被组织成区块的交易系统中。
进一步根据本文所描述的该系统,通过以下各项在区块链中引起对至少一个数据字符串m的证实:使用户集合S验证m是否享有至少某个给定属性;响应于这些用户对m的验证使用户对m进行数字签名;以及使这些用户使m的这些数字签名可用,这些数字签名是m的有凭证的签名。如果m的该数字签名满足给定的另外的属性,则该数字签名可以是有凭证的。如果m的该数字签名的散列小于给定的目标数字,则该数字签名可以满足该给定的另外的属性。该数据字符串m可以通过m的至少给定数量的有凭证的签名来证实。
进一步根据本文所描述的系统,一种设置在非暂态计算机可读介质中的计算机软件包括实施本文所描述的步骤中的任何步骤的可执行代码。
本发明省去了用于证实区块的临时密钥。典型地,首先准备新区块(例如,由至少一些用户提出和/或商定),并且然后证实该新区块。关于如何准备区块B是不可知的:该区块可以在一个或多个步骤中准备,甚至使用临时密钥准备。但是,希望在不依赖临时密钥的情况下对其进行证实。对区块B的证实保证了某些有价值的属性适用于该区块。典型的主要属性是使得用户(甚至是尚未参与或观察到区块B的准备的用户)能够确定区块B已经被添加到区块链,或者甚至,B是区块链中的第r个区块。另一个有价值的属性(通常称为终结)保证了B将不会由于软分叉而从区块链中消失(即使是在其上执行区块链协议的通信网络的分区存在的情况下)。
假设已经以任何方式且以任何数量的步骤准备了区块B。意识到已经适当地准备好区块需要时间和努力以及对各条证据的验证。B的证书由给定数量的具有有效凭证的用户数字签名组成。B的这种证书担保产生这种签名的用户参与到或观察到B的准备。至少,该证书担保,如果证书的这些数字签名中的一个数字签名已经由诚实用户产生,则该用户已经检查到B已经被适当地准备好。
在本发明的系统中,已经看到了B已经被适当地准备好的证据的多个用户i(甚至所有用户)对B进行数字签名。1这些签名可以是相对于长期(与临时相反)密钥的。然而,如果这种签名满足给定属性P,则这种签名对B的证实有重要性。在优选实施例中,如果(a)i对B的数字签名SIGi(B)的散列(解释为数字)小于给定目标t,并且优选地,如果i在B之前的至少k个区块加入了区块链,则该数字签名拥有给定属性。应注意,每个人都可以验证i对B的数字签名、计算其散列并且检查结果是否确实不大于t。另外,任何人都可以验证i何时加入区块链,并且因此i在之前的至少k个区块已经加入区块链。这种SIGi(B)可以被认为是i对B的专业凭证以及有凭证签名。因此,在本发明的系统中,凭证被链接到特定区块,而不是链接到在产生第r个区块时的给定步骤s。因此,用户i可以具有用于给定区块B的凭证,但是没有用于另一个区块B'的凭证。相比之下,例如,在Algorand中,具有针对第r轮中的步骤s的适当凭证的用户可以在该步骤和轮次中对其想要的任何内容进行签名。因此,区块证书由B的给定数量n个有凭证签名组成。应注意,如果区块B有多于n个有凭证签名,则B可以具有多于一个证书。
本发明系统的效率源于这样的事实:适当的SIGi(B)既证明了i证实了B,又证明了i有权证实B。在传统系统中,i将会必须先获得第r轮的步骤s的凭证(在该步骤中,i同意证实B)并且然后通过单独的签名来证实B。因此,需要至少两个签名,而不是一个,并且该至少两个签名可能需要作为B的证书的一部分来存储和/或传输。另外,如果i对B的签名是临时的,则还将会需要一些证据证明所使用的临时密钥确实是i需要的仅用于步骤s和第r轮的密钥。
Figure BDA0002511187180000041
系统的安全性源于对目标t和足以证实区块的数量n个签名的适当选择。例如,设p为系统中的恶意用户的最大百分比。典型地,恶意用户占少数,例如,p<1/3。然后,可以选择t和n,使得在足够高的概率下,(a)对于任何可能的区块值B',诚实用户有n个或更多个有凭证签名来形成B'的证书,并且(b)在B'的任何证书中,至少一个有凭证签名属于诚实用户。
而且,有凭证证实区块B的诚实用户的集合是充分随机的,使得敌对者不能在这些诚实用户证实区块之前预测他们是谁并且破坏他们。另一方面,在诚实用户i证实区块B并且传播SIGi(B)之后,敌对者在破坏i方面没有优势。实际上,SIGi(B)已经在整个网络中被病毒地传播,并且敌对者不能停止此传播过程。其次,如果在破坏i之后,敌对者强迫i对不同的区块B'进行数字签名,则SIGi(B′)的散列可能不小于t,并且为了具有公平的概率以找到B'的n个数字签名,敌对者将会必须破坏多于p的一部分用户。
作为本发明系统的一部分,用户i不仅可以具有针对B的单个凭证(或一个也没有),还可以具有带有权重的凭证(本质上是与投票数相关联的凭证)。实际上,i的针对B的凭证的权重可以取决于i在系统中拥有多少货币。实际上,与其说所有用户都有单个t,不如说每个用户i可以有其自己的目标ti,i的货币金额越高,该目标就越高。而且,i的针对B的凭证的权重可以取决于SIGi(B)的散列相对于ti的大小。为简单起见,但没有任何有意的限制,将继续描述系统,将具有针对B的权重m凭证的用户i视为m个用户,每个用户具有针对B的(权重-1)凭证。
到目前为止,已经讨论了通过区块B的足够数量的有凭证签名来证实B。然而,更一般地,本发明系统适用于其中至少给定消息m是通过m的足够数量的有凭证数字签名来证实的区块链。这种消息m可以不是区块,而是更一般的数据字符串。因此,对m的这种证实可以保证与适用于或期望用于区块的那些属性不同的属性适用于m。例如,但没有任何有意的限制,m已经由系统中的用户集合S中的足够部分的用户批准或者由S中的至少一个诚实用户批准的属性。实际上,S中的具有m的有凭证签名的用户可以形成S中的用户的充分随机地选择的样本。因此,已经产生m的足够数量的有凭证签名的事实指示,在足够高的概率下,S中的给定部分用户或者S中的至少一个诚实用户批准m。
在下文中,在快速回想传统Algorand系统之后,基于Algorand提供了优选实施例的实例,而无任何有意的限制。
附图说明
根据附图的图更详细地解释本文所描述的系统的实施例,这些附图如下简要描述。
图1是根据本文所描述的系统的实施例的网络和计算站的示意性表示。
图2是Algorand系统的第一步骤的示意性且概念性总结,在该系统中,提出了交易的新区块。
图3是对Algorand系统中的新区块的商定和证实的示意性且概念性总结。
图4是展示了默克尔树和包含在其节点中的一个节点中的值的认证路径的示意图。
图5是展示了与区块树中构建的第一区块相对应的默克尔树的示意图。
具体实施方式
本文所描述的系统提供了一种用于分布交易验证和传播使得没有实体单独负责执行计算以验证和/或传播交易信息的机制。相反,参与实体中的每一个实体在以可验证且可靠的方式执行以传播交易的计算方面进行共享。
参考图1,该图示出了连接到诸如因特网等数据网络24的多个计算工作站22a-22c。工作站22a-22c经由网络24彼此通信以提供分布式交易传播和验证,如本文其他地方更详细地描述的。该系统可以容纳能够提供本文描述的功能的任何数量的工作站,只要工作站22a-22c能够彼此通信即可。工作站22a-22c中的每一个可以独立地执行处理以将交易传播到系统中的所有其他工作站并且验证交易,如在本文其他地方更详细地描述的。
图2图解地且概念性地总结了Algorand系统中的第r轮的第一步骤,其中,几个选定用户中的每一个用户针对第r个区块提出了其自己的候选。具体地,该步骤开始于系统中的用户a,...,z单独地经历秘密密码抽签过程,该秘密密码抽签过程决定了选择哪些用户来提出区块,并且其中,每个选定用户秘密地计算证明自己有权产生区块的凭证。在图2的实例中,仅选择用户b、d和h来提出区块,并且其分别计算的凭证是
Figure BDA0002511187180000073
Figure BDA0002511187180000072
每个选定用户i组装其自己提出的区块
Figure BDA0002511187180000074
临时地对该区块进行签名(即,如稍后所解释的,用临时密钥数字地对该区块进行签名)并且与其自己的凭证一起传播到网络。该轮的领导者是其凭证具有最小散列的选定用户。该图指示领导者为用户d。因此,该用户提出的区块
Figure BDA0002511187180000075
是要作为到二进制协定协议的输入而给出的区块。
图3图解地且概念性地总结了Algorand的用于达成一致并证实提出的区块为官方的第r个区块Br的过程。由于Algorand的第一步骤由提出新区块组成,因此这个过程开始于第二步骤。实际上,这个步骤与Algorand优选的拜占庭协定协议BA*的第一步骤相一致。这个协议中的每个步骤均由通过秘密密码抽签(图中未示出)随机选择的不同的参加者“委员会”执行。因此,被选择执行每个步骤的用户可以完全不同。BA*的步骤的数量可以有所不同。图3描绘了涉及7个步骤的BA*的执行:从Algorand的步骤2直到Algorand的步骤8。在图3的实例中,被选择执行步骤2的用户是a、e和q。每个用户i∈{a,e,q}将其凭证
Figure BDA0002511187180000076
传播到网络,该凭证证明i确实有权在Algorand的第r轮的步骤2中发送消息,并且i的恰好属于这个步骤的消息
Figure BDA0002511187180000077
被临时地签名。步骤3至7未示出。在最后步骤8中,该图示出了已经在Br作为第r轮的官方区块上达成一致的对应的选定用户b、f和x传播其自己对区块Br的临时签名(这些签名一起证实Br)和其自己的凭证,从而证明了这些用户有权在步骤8中行动。
图4示意性地展示了默克尔树和其认证路径之一。具体地,图4.A展示了深度为3的完整默克尔树。每个节点x(其中,x由长度≤3的二进制字符串表示)存储值vx。如果x的长度≤2,则vr=H(vx0,vx1)。对于图4.a的默克尔树,图4.B展示了值v010的认证路径。
图5示意性地展示了默克尔树,该默克尔树对应于以在深度为3的完整二叉树中构建的区块树构建的前8个区块。在图5.i中,由整数标记的节点属于默克尔树Ti。由i(分别由i)标记的节点的内容是暂时的(分别是永久的)。
本文的描述聚焦于作为支付的交易并且聚焦于将本文的系统描述为货币平台。本领域技术人员将认识到,本文所描述的系统还可以处理各种交易。
本文所描述的系统具有非常灵活的设计并且可以以各种但相关的方式实施。通过详细描述系统的总体设计的两个可能实施例来展示其灵活性。通过这两个可能实施例,本领域技术人员还可以了解到如何得到各种其他实施方式。
为了促进对本发明的理解并且允许对其各个部分的内部交叉引用,在编号且带标题的部分组织了其呈现内容。第一部分是两个详细实施例共用的。
1引言
货币正在变得越来越虚拟。据估计,当今约80%的美元仅作为账本条目存在。其他金融工具也紧随其后。
在我们可以依靠普遍可信的中央实体(免于所有可能的网络攻击)的理想世界中,货币和其他金融交易可以完全电子化。不幸的是,我们并未生活在这样的世界中。因此,已经提出了如比特币等分散式密码货币和如以太坊等“智能合约”系统。在这些系统的中心的是以防篡改的方式可靠地记录如支付和合约一样变化的一系列交易的共享的账本。保证这种防篡改的首选技术是区块链。区块链支持如密码货币、金融应用和物联网等应用。已经提出了几种技术来管理基于区块链的账本:工作量证明、权益证明、实用拜占庭容错或某个组合。
然而,目前,账本的管理效率会很低。例如,比特币的工作量证明方法需要大量计算、不经济并且扩展性较差。另外,这事实上将权力集中在极少数人手中。
因此,希望提出新的方法来实施公共账本,该方法提供了由可信且不可侵犯的机构运行的集中式系统的便利性和效率性,而没有当前分散式实施方式的低效和弱点。我们将自己的方法称为Algorand,因为我们使用算法随机性基于到目前为止构建的账本来选择负责构建有效交易的下一个区块的验证者集合。我们自然而然确保这种选择直到最后一分钟都是可证明免于操纵且不可预测的,而且这种选择最终会是普遍明确的。
Algorand方法相当民主,在这个意义上,该方法在原则上和事实上都没有创建不同类别的用户(如比特币中的“矿工”和“普通用户”)。在Algorand中,“所有权力属于所有用户的集合”。
Algorand的一个显著属性是其交易历史只有非常小的概率(例如,万亿分之一,即,或甚至10-18)会分叉。Algorand还可以解决一些法律和政治问题。
Algorand方法适用于区块链,并且更一般地,适用于生成防篡改的一系列区块的任何方法。实际上,提出了一种可以独立地关注的新方法—区块链的替代方案并且比区块链更高效。
1.1比特币的假设和技术问题
比特币是非常巧妙的系统并且激发了大量后续研究。然而,比特币也是有问题的。总结一下比特币的潜在的假设和技术问题—实际上,基本上所有基于工作量证明的密码货币(如比特币)都有这些问题。
对于此总结,只要回想起以下内容就够了:在比特币中,用户可以拥有数字签名方案的多个公开密钥;货币与公开密钥相关联;并且支付是将一定数量的货币从一个公开密钥转移到另一个公开密钥的数字签名。比特币基本上将所有已处理的支付组织成区块链B1,B2,...,(每个区块由多个支付组成),使得B1的所有支付(以任何顺序进行)、之后是B2的所有支付(以任何顺序)等构成一系列有效支付。每个区块平均每10分钟生成一次。
这一系列区块是链,因为其结构化以确保任何改变(即使是在单个区块中)都可以渗入所有后续区块中,使得更容易发现支付历史的任何更改。(正如将看到的,这是通过在每个区块中包括先前区块的密码散列来实现的。)这种区块结构被称为区块链。
假设:诚实的大多数计算能力 比特币假设没有恶意实体(也没有协同的恶意实体的联盟)控制致力于区块生成的大多数计算能力。事实上,这种实体将会能够修改区块链并且因此在自己高兴时重写支付历史。具体地,这种实体可以进行支付
Figure BDA0002511187180000091
获得所支付的利益并且然后“擦除”
Figure BDA0002511187180000092
的任何痕迹。
技术问题1:计算浪费 比特币的用于区块生成的工作量证明方法需要极大量的计算。目前,在系统中只有几十万个公开密钥的情况下,功能最强大的前500台超级计算机仅可以聚集比特币参加者所需的总计算能力的仅12.8%。如果有明显更多的用户加入系统,此计算量将会大大增加。
技术问题2:权力集中 当今,由于所需的计算量过大,因此,试图使用普通台式计算机(更不用说手机)生成新区块的用户预计会亏本。实际上,对于用普通计算机计算新区块,用于为计算提供动力的必要电力的预期成本超过了预期报酬。只有使用专门建成的计算机的池(该计算机除了“挖掘新区块”以外什么也不做),人们才可以期望通过生成新区块来获利。因此,事实上,当今存在两个不相交的用户类别:只进行支付的普通用户和只搜索新区块的专业采矿池。
因此,应当不足为奇的是,截至最近,用于区块生成的总计算能力位于仅五个池中。在这种情况下,大多数计算能力诚实的假设变得不太可信。
技术问题3:歧义性 在比特币中,区块链不一定是唯一的。实际上,区块链的最新部分经常分叉:根据一个用户,区块链可以是例如B1,...,Bk,B′k+1,B′k+2,并且根据另一个用户区块链可以是B1,...,Bk,B″k+1,B″k+2,B″k+3。只有在向链添加几个区块之后,才可以合理地确定前k+3个区块对所有用户来说都是相同的。因此,不能立即依赖于链的最后区块中包含的支付。更谨慎的做法是等待并且观察区块在区块链中是否变得足够深并且因此足够稳定。
关于比特币,执法和货币政策问题也分别引起了关注。2
1.2简而言之,Algorand
环境 Algorand在非常艰苦的环境下工作。简言之,
(a)无许可的环境和得到许可的环境.即使在完全无许可的环境中,Algorand仍高效且安全地工作,在该环境中,任意地允许多个用户在任何时间加入系统,而无需任何种类的审查或许可。当然,Algorand在得到许可的环境中甚至工作得更好。
(b)极具对抗性的环境.Algorand抵抗非常强大的敌对者,该敌对者可以
(1)在其想要的任何时间瞬间破坏其想要的任何用户,如果在无许可的环境中,系统中的货币的2/3属于诚实用户的话。(在得到许可的环境中,不考虑货币,只要用户中的2/3是诚实的就够了。)
Figure BDA0002511187180000101
(2)完全控制并且完美地协调所有被破坏的用户;并且
(3)调度对所有消息的传送,如果诚实用户发送的每条消息m在时间λm内到达所有(或足够多的)诚实用户的话(这完全取决于m的大小)。
主要属性 尽管存在强大的敌对者,但是在Algorand中,
·所需的计算量是最小的。本质上,无论系统中存在多少用户,一千五百个用户中的每一个用户最多必须执行几秒钟的计算。
·新区块快速生成并且事实上将永远不会离开区块链。即,Algorand的区块链只有可忽略的概率(即,少于万亿分之一或10-18)会分叉。因此,用户可以在新区块出现后立即中继区块中包含的支付。
·所有权力属于用户自己。Algorand是真正的分布式系统。具体地,没有可以控制哪些交易被识别的外来实体(如比特币中的“矿工”)。
Algorand的技术.
1.新的且快速的拜占庭协定协议.Algorand通过发明的密码的消息传递二进制拜占庭协定(BA)协议BA*来生成新区块。协议BA*不仅满足了另外的一些属性(很快将讨论这些属性),而且非常快速。粗略地说,该协议的二进制输入版本由3步循环组成,其中,参加者i向所有其他参加者发送单条消息mi。在超过2/3的参加者诚实(概率>1/3)的情况下,在每个循环之后,在完整且同步的网络中执行的协议形成一致。(强调了协议BA*满足拜占庭协定的初始定义,而无任何弱点。)
在不同的通信模型中,Algorand利用此二进制BA协议在每个新区块上达成一致。然后,通过适当的验证者的规定数量的数字签名对商定的区块进行证实,并且通过网络进行传播。
2.秘密密码抽签.尽管非常快,但当由数百万用户参加时,协议BA*将会受益于更快的速度。因此,Algorand选择BA*的参加者作为所有用户的集合的小得多的子集。为了避免不同种类的权力集中问题,将由选定验证者的单独集合SVr通过对BA*的新的执行来构建并且商定每个新区块Br。原则上,选择这种集合可能与直接选择Br一样困难。通过称为秘密密码抽签的新颖方法来详细研究这个潜在问题。抽签是从较大的合格个体集合中随机选择官员的做法。(抽签跨几个世纪得到了实践:例如,由雅典、佛罗伦萨和威尼斯的共和国。在现代司法系统中,经常使用随机选择来选择陪审团。还提倡将随机抽样用于选举。)当然,在分散式系统中,选择随机选择每个验证者集合SVr的成员所需的随机硬币是有问题的。因此,诉诸于密码学以便以保证自动(即,不需要消息交换)且随机的方式从所有用户的群中选择每个验证者集合。以类似的方式选择作为负责提出新区块Br的领导者用户和负责在由领导者提出的区块上达成一致的验证者集合SVr。本发明的系统利用了某条信息Qr-1,该可从先前区块的内容推断出来并且即使在非常强大的敌对者的存在下也是不可操纵的。
3.量(种子)Qr.使用区块链中的最后区块Br-1,以便自动确定下一个验证者集合和负责构建新区块Br的领导者。此方法的挑战在于,通过仅在先前的轮次中选择略有不同的支付,强大的敌对者就会得到对下一任领导者的巨大控制权。即使只控制系统中的参加者/货币的1/1000,强大的敌对者也可以确保所有领导者都是恶意的。(参见直觉部分4.1。)这个挑战是所有权益证明方法的核心,并且尽我们所知,迄今为止,这个挑战尚未令人满意地解决掉。
为了应对这个挑战,有目的地构建并且不断地更新单独且经过仔细定义的量Qr,该数量可证明地不仅是强大的敌对者不可预测的,而且是其不可影响的。可以将Qr称为第r个种子,因为Algorand通过秘密密码抽签正是依据Qr选择了将在第r个区块的生成中扮演特殊角色的所有用户。可从区块Br-1推断出种子Qr
4.秘密凭证.为了选择验证者集合和负责构建新区块Br的领导者,随机且明确地使用当前最后区块Br-1是不够的。由于在生成Br之前Br-1必须是已知的,因此可从Br-1中推断出的最后一个不受影响的量Qr-1也必须是已知的。因此,验证者和负责计算区块Br的领导者也是如此。因此,强大的敌对者可能在所有验证者和领导者参与关于Br的任何讨论之前就破坏他们,以得到对验证者和领导者所证实的区块的完全控制。
为了防止出现这种问题,领导者(并且实际上也包括验证者)秘密地得知自己的角色,但可以计算出能够向实际上担当该角色的每个人证明的适当的凭证。当用户私下意识到自己是下一个区块的领导者时,该用户首先秘密地组装其自己提出的新区块并且然后将新区块与用户自己的凭证一起散布(使得可以进行证实)。以此方式,尽管敌对者将立即意识到下一个区块的领导者是谁,并且尽管敌对者可以立即破坏该领导者,但对于敌对者来说,影响新区块的选择为时已晚。实际上,敌对者不能“回呼”领导人的消息,而只有强大的政府才可以将通过维基解密(WikiLeaks)病毒传播的消息放回瓶中。
正如将看到的,不能保证领导者的唯一性,也不能保证每个人都确定谁是领导者,包括领导者本人!但是,在Algorand中,明确的进展将得到保证。
5.参加者可替换性.在提出新区块之后,领导者也可能会“死亡”(或被敌对者破坏),因为领导者的工作已经完成。但是,对于SVr中的验证者而言,事情没那么简单。实际上,用足够多的签名对新区块Br进行证实的这些验证者必须首先对领导者所提出的区块运行拜占庭协定。问题在于,无论效率如何,BA*都需要多个步骤和其参加者中>2/3的诚实度。这是一个问题,因为出于效率原因,BA*的参加者集合由从所有用户的集合中随机选择的小集合SVr组成。因此,强大的敌对者虽然不能够破坏所有用户的1/3,但肯定可以破坏SVr的所有成员!
幸运的是,将证明通过以对等方式传播消息来执行的协议BA*是可替换参加者的。这个新颖的要求意味着,即使协议的步骤中的每一个步骤都是由全新的且随机独立地选择的参加者集合执行的,协议也正确高效地达成了共识。因此,在数百万用户的情况下,与BA*的步骤相关联的参加者的每个小集合最有可能与下一个集合具有空交集。
另外,BA*的不同步骤的参加者的集合将可能具有完全不同的基数。此外,每个集合的成员不知道下一个集合的参加者将是谁并且不会秘密地通过任何内部状态。
实际上,可替换参加者的属性对于击败所设想的动态且非常强大的敌对者至关重要。据信,可替换参加者的协议将证明在许多上下文和应用中是至关重要的。具体地,这些可替换参加者的协议对于在动态敌对者的情况下安全地执行嵌入在参加者的更大领域中的小的子协议将是至关重要的,只能够破坏全部参加者的一小部分的该动态敌对者不难破坏较小的子协议中的所有参加者。
另外的属性/技术:懒惰的诚实 诚实用户遵循其规定的指令,这些指令包括处于在线状态并运行协议。由于Algorand仅具有适度的计算和通信要求,因此处于在线状态并“在后台”运行协议不是主要的牺牲。当然,诚实参加者中的一些“缺席”(如由于突然失去连接或需要重新启动而造成的那些)被自动容忍(因为这种可以一直将少数参加者视为是暂时恶意的)。然而,应指出,Algorand可以被简单地适配,以在新模型中工作,在该模型中,诚实用户大部分时间都处于离线状态。可以正式地引入新模型如下。
懒惰的诚实.粗略地说,如果(1)当用户i被要求参与协议时,i遵循所有自己规定的指令并且(2)i只很少被要求参与协议并且有适合的提前通知,则i是懒惰但诚实的。
有了这种宽松的诚实概念,我们甚至更加可以确信,诚实的人会在我们需要他们时到场,而Algorand保证,在这种情况下,
即使在给定的时间点,大多数参与的参加者是恶意的,系统也安全地操作。
2预备知识
2.1密码基元
理想散列处理.将依靠高效地可计算的密码散列函数H,该密码散列函数将任意长的字符串映射到固定长度的二进制字符串。遵循悠久的传统,将H建模为随机预言,本质上是将每个可能的字符串s映射到随机且独立选择(并且然后固定)的具有选定长度的二进制字符串H(s)的函数。
在所描述的实施例中,H具有256位长的输出。实际上,这种长度足够短以使系统是高效的并且足够长以使系统是安全的。例如,想要H有碰撞弹性。即,应该很难找到两个不同的字符串x和y使得H(x)=H(y)。当H是具有256位长输出的随机预言时,找到任何这种字符串对确实有困难。(随机尝试并且依赖于生日悖论将会需要2256/2=2128次试验。)
数字签名.数字签名允许用户在不共享任何秘密密钥的情况下相互认证信息。数字签名方案由三种快速算法组成:概率性密钥生成器G、签名算法S和验证算法V。
考虑到安全参数k(足够大的整数),用户i使用G来产生一对k位密钥(即,字符串):“公开”密钥pki和匹配的“秘密”签名密钥ski。至关重要的是,公开密钥不会“泄露”其对应的秘密密钥。即,即使考虑到知道了pki,除i之外,没有人能够在少于天文时间的时间内计算出ski
用户i使用ski对消息进行数字签名。对于每条可能的消息(二进制字符串)m,i首先对m进行散列处理并且然后对输入H(m)和ski运行算法S,以便产生k位字符串
Figure BDA0002511187180000152
3
二进制字符串
Figure BDA0002511187180000153
被称为i对m的数字签名(相对于pki)并且当公开密钥pki根据上下文是明确的时可以更简单地用sigi(m)表示。
已知pki的每个人可以使用该二进制字符串来验证由i产生的数字签名。具体地,在输入(a)参加者i的公开密钥pki、(b)消息m和(c)字符串s(即i的消息m的所谓数字签名)时,验证算法V输出YES(是)或NO(否)。
根据数字签名方案要求的属性是:
1.合法签名始终经过验证:如果s=sigi(m),则V(pki,m,s)=YES;并且
2.数字签名很难伪造:在不知道ski的情况下,对于从未被i签名的消息m来说,找到字符串s使得V(pki,m,s)=YES的时间在天文学上很长。
(遵循严格的安全性要求,即使可以获得任何其他消息的签名也是如此。)
因此,为了防止其他任何人代表参加者i对消息进行签名,该参加者必须保持其签名密钥ski是秘密的(因此为术语“秘密密钥”),并且为了使得任何人能够验证其确实签名的消息,i有兴趣公开他的密钥pki(因此为术语“公开密钥”)。
具有消息可检索性的签名 消息m通常不可从其签名sigi(m)中检索到。为了虚拟地对满足概念上便利的“消息可检索性”属性的数字签名进行处理(即,为了保证从签名可容易地计算出签名者和消息,
如果pki是明确的,则限定
Figure BDA0002511187180000154
并且SIGi(m)=(i,m,sigi(m))。
唯一数字签名.还考虑了满足以下另外的属性的数字签名方案(G、S、V)。
3.唯一性.很难找到字符串pk'、m、s'使得
s≠s′并且V(pk′,m,s)=V(pk′,m,s′)=1。
(应注意,唯一性属性还适用于不是合法生成的公开密钥的字符串pk'。然而,具体地,唯一性属性意味着,如果人们使用指定的密钥生成器G与匹配的秘密密钥sk一起计算公开密钥pk,并且因此已知sk,则对于这些人们来说,找到同一消息相对于pk的两个不同的数字签名将会是基本上不可能的。)
Figure BDA0002511187180000151
备注
·从唯一签名到可验证的随机函数。相对于具有唯一性属性的数字签名方案,映射m→H(sigi(m))与每个可能的字符串m(唯一的随机选择的256位字符串)相关联,并且考虑到签名sigi(m),此映射的正确性可以得到证明。
即,满足唯一性属性的理想散列处理和数字签名方案本质上提供了可验证随机函数(VRF)的基本实施方式。
VRF是特殊种类的数字签名。可以写出VRFi(m)以指示i这种对消息m的特殊签名。除了满足唯一性属性之外,可验证的随机函数还产生保证充分随机的输出。即,VRFi(m)本质上是随机的并且直到产生之前都是不可预测的。相比之下,SIGi(m)不需要充分随机。例如,用户i可以选择他的公开密钥,使得SIGi(m)始终是小的(按字典顺序)k位字符串(即,其前几位可以始终为0)。然而,应注意,由于H是理想散列函数,因此H(SIGi(m))将始终是随机的256位字符串。在优选实施例中,广泛地使用了精确地对满足唯一性属性的数字签名进行散列处理,以便能够将唯一的随机数与每条消息m和每个用户i相关联。如果用VRF实施Algorand,则人们可以用VRFi(m)替换H(SIGi(m))。具体地,用户i不需要首先计算SIGi(m)、然后计算II(SIGi(m))(以便例如将H(SIGi(m))与数字p进行比较)。该用户i可能直接计算VRFi(m)。总而言之,应当理解,H(SIGi(m))可以被解释为VRFi(m),或被解释为由参加者i容易地计算出但对于任何其他人来说都是不可预测的与i和m明确相关联的充分随机数。
·数字签名的三种不同需求。在Algorand中,用户i依赖于数字签名用于
(1)认证i自己的支付。在此应用中,密钥可以是“长期的”(即,用于在很长一段时间内对许多消息进行签名)并且来自普通的签名方案。
(2)生成证明i有权在第r轮的一些步骤s中行动的凭证。在这里,密钥可以是长期的,但必须来自满足唯一性属性的方案。
(3)认证i在其所行动的每个步骤中发送的消息。在这里,密钥必须是临时的(即,在首次使用之后被销毁),但可以来自普通的签名方案。
·低成本简化.为简单起见,设想了每个用户i都有单个长期密钥。因此,这种密钥必须来自具有唯一性属性的签名方案。这种简单性的计算成本很低。典型地,事实上,唯一的数字签名的产生和验证成本比普通签名稍高。
2.2理想化公共账本
基于理想化公共账本,Algorand试图模仿以下支付系统。
1.初始状态.货币与个人公开密钥(由用户私下生成并拥有)相关联。设pk1,...,pkj为初始公开密钥并且a1,...,aj为其各自的货币单位初始量,则初始状态是
S0=(pk1,a1),...,(pkj,aj),
该初始状态假定是系统中的共同知识。
2.支付.设pk为当前具有a≥0个货币单位的公开密钥、pk'为另一个公开密钥并且a'为不大于a的非负数。则(有效)支付
Figure BDA0002511187180000175
是与另外的一些信息一起指定a'个货币单位从pk转移到pk'的相对于pk的数字签名。以符号的方式,
Figure BDA0002511187180000171
其中,I表示被认为有用但不敏感的任何另外的信息(例如,时间信息和支付标识符),并且
Figure BDA0002511187180000172
表示被认为敏感的任何另外的信息(例如,支付的原因、可能是pk和pk'的拥有者的身份等)。
将pk(或其拥有者)称为付款人,将每个pk'(或其拥有者)称为收款人并且将a'称为支付
Figure BDA0002511187180000173
的金额。
通过支付免费加入.应注意,用户可以通过生成他们自己的公开/秘密密钥对而随时加入系统。因此,出现在以上支付
Figure BDA0002511187180000174
中的公开密钥pk'可以是之前从未“拥有”过任何货币的新生成的公开密钥。
3.魔法账本.在理想化系统中,所有支付都是有效的并且出现在“张贴在天空中(posted on the sky)”的支付的集合的防篡改清单L中,以供每个人看到:
L=PAY1,PAY2,...,
每个区块PAYr+1由自区块PAYr出现以来的所有支付的集合组成。在理想系统中,新区块在固定(或有限)的时间量之后出现。
讨论.
·更一般的支付和未用完的交易输出。更一般地,如果公开密钥pk拥有金额a,则pk的有效支付
Figure BDA0002511187180000181
可以将金额a′1,a′2,...,分别转移到密钥pk′1,pk′2,...,,只要∑ja′j≤a即可。
在比特币和类似的系统中,公开密钥pk所拥有的货币被分离为单独的金额,并且pk所进行的支付
Figure BDA0002511187180000182
必须全部转移这种分离的金额a。如果pk希望将a的仅一部分a′<a转移到另一个密钥,则pk还必须将余额(未用完的交易输出)转移到可能是pk本身的另一个密钥。
Algorand还用具有分离的金额的密钥来工作。然而,为了聚焦于Algorand的新颖方面,在概念上更简单的是坚持更简单的支付形式和使单笔金额与这些更简单的支付形式相关联的密钥。
·当前状态.理想化方案不直接提供关于系统当前状态(即,关于每个公开密钥具有多少个货币单位的信息)的信息。此信息可从魔法账本中推断出来。
在理想系统中,活跃用户不断地存储并更新最新的状态信息,否则该活跃用户将会不得不从头开始或从其计算最新状态信息的上次开始重建当前状态。(然而,稍后将示出如何增大Algorand,以使得其用户能够以高效的方式重建当前状态。)
·安全和“隐私”.数字签名保证了没有人可以伪造另一个用户的支付。在支付
Figure BDA0002511187180000183
中,不隐藏公开密钥和金额,但是会隐藏敏感信息
Figure BDA0002511187180000184
实际上,仅
Figure BDA0002511187180000185
出现在
Figure BDA0002511187180000186
中,并且由于H是理想散列函数,因此
Figure BDA0002511187180000187
是随机的256位值,并且因此没有比通过简单的猜测更好的计算出
Figure BDA0002511187180000188
是什么的办法。然而,为了证明
Figure BDA0002511187180000189
是什么(例如,为了证明支付的原因),付款人只可以透露
Figure BDA00025111871800001810
可以通过计算
Figure BDA00025111871800001811
并将所得值与
Figure BDA00025111871800001812
的最后项进行比较来验证透露
Figure BDA00025111871800001813
的正确性。事实上,由于H是有碰撞弹性的,因此很难找到第二值
Figure BDA00025111871800001814
使得
Figure BDA00025111871800001815
2.3基本概念和符号
密钥、用户和拥有者 除非另有说明,否则每个公开密钥(简称“密钥”)是长期的并且是相对于具有唯一性属性的数字签名方案而言。当已经在系统中的另一个公开密钥j向i进行支付时,公开密钥i加入系统。
对于颜色,将密钥拟人化。我们将密钥i称为“他”,我们说i是诚实的、i发送并接收消息等。用户是密钥的同义词。当想要区分密钥与其所属的人时,分别使用术语“数字密钥”和“拥有者”。
无许可的系统和得到许可的系统.如果数字密钥在任何时候都可以自由加入并且拥有者可以拥有多个数字密钥,则系统是无许可的;否则,系统是得到许可的。
唯一表示 Algorand中的每个对象都具有唯一表示。具体地,每个集合{(x,y,z,...):x∈X,y∈Y,z∈Z,...}以预先指定的方式排序:例如,首先以x按字典顺序排序、然后以y等。
同速时钟 没有全局时钟:而是,每个用户都有其自己的时钟。用户时钟无需以任何方式进行同步。然而,假设这些用户时钟都具有相同的速度。
例如,当根据用户i的时钟时间是12pm时,根据另一个用户j的时钟时间可以是2:30pm,但是当根据i的时钟时间将会是12:01时,根据j的时钟时间将会是2:31。即,“对于每个用户来说,一分钟是相同的(足够地,基本上相同)”。
轮次 Algorand是按逻辑单元r=0,1,...,组织的,称为轮次。
始终使用上标来指示轮次。为了指示非数字量Q(例如,字符串、公开密钥、集合、数字签名等)是指第r轮,简单地写为Qr。只有当Q是真正的数字(而不是可解释为数字的二进制字符串)时,才写为Q(r),使得符号r不能被解释为Q的指数。
在(a开始)第r>0轮时,所有公开密钥的集合是PKr,并且系统状态是
Figure BDA0002511187180000191
其中,
Figure BDA0002511187180000192
是可用于公开密钥i的金额。应注意,可从Sr中推断出PKr,并且Sr还可以为每个公开密钥i指定其他部件。
对于轮次0,PK0是初始公开密钥的集合,并且S0是初始状态。PK0和S0两者都被认为是系统中的共同知识。为简单起见,在第r轮开始时,PK1,...,PKr和S1,...,Sr也是如此。
在第r轮中,系统状态从Sr转换为Sr+1:以符号方式,
第r轮:Sr→Sr+1
支付在Algorand中,用户不断地进行支付(并且以分部2.7中描述的方式对支付进行散布)。用户i∈PKr的支付
Figure BDA0002511187180000202
具有与理想系统中相同的格式和语义。即,
Figure BDA0002511187180000203
如果(1)支付的金额a小于或等于
Figure BDA0002511187180000204
并且(2)支付没有出现在rl<r的任何官方支付集合PAYr′中,则支付
Figure BDA0002511187180000205
在第r轮单独有效(简称为第r轮支付)。(如下文所解释的,第二条件意味着
Figure BDA0002511187180000206
尚未变得有效。
如果i的第r轮支付的集合的金额的总和最多为
Figure BDA0002511187180000207
则该集合是集体有效的。
支付集合 第r轮支付集合
Figure BDA0002511187180000208
是第r轮支付的集合,使得对于每个用户i,
Figure BDA0002511187180000209
中i的支付(可能没有一个)是集体有效的。所有第r轮支付集合的集合是
Figure BDA00025111871800002010
如果
Figure BDA00025111871800002011
的超集都不是第r轮支付集合,则第r轮支付集合
Figure BDA00025111871800002012
是最大的。
实际上建议支付
Figure BDA00025111871800002013
还指定轮次ρ、
Figure BDA00025111871800002014
并且对于某个固定的非负整数k,在[ρ,ρ+k]之外的任何轮次中均无效。4
官方支付集合 对于每个第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 BDA00025111871800002015
是ai(r)的总和(即,i在先前轮次中拥有的金额(如果
Figure BDA00025111871800002016
则为0))和根据PAYr的支付向i支付的金额的总和。
Figure BDA0002511187180000201
总而言之,与在理想系统中一样,可从先前的支付历史中推断出每个状态Sr+1
PAY0,...,PAYr
2.4区块和已证明区块
在Algorand0中,对应于第r轮的区块Br指定:r本身;第r轮的支付集合PAYr;要解释的量
Figure BDA0002511187180000211
以及先前区块的散列H(Br-1)。因此,从某个固定区块B0开始,具有传统的区块链:
Figure BDA0002511187180000212
在Algorand中,区块的真实性实际上是通过单独的一条信息“区块证书”CERTr来担保的,该区块证书将Br变成已证明区块
Figure BDA0002511187180000213
因此,魔法账本是通过一系列已证明区块来实施的,
Figure BDA0002511187180000214
讨论 正如将看到的,CERTr由H(Br)的数字签名的集合、SVr的大多数成员的那些数字签名以及那些成员中的每一个成员确实属于SVr的证明组成。当然,可以将证书CERTr包括在区块本身中,但是发现保持其分开会在概念上更清晰。)
在比特币中,每个区块必须满足特殊的属性,即,必须“包含密码难题的解决方案”,这使得区块生成的计算量很大并且分叉既不可避免也不罕见。相比之下,Algorand的区块链有两个主要优势:该区块链是通过最少的计算生成的,并且该区块链有极高的概率将不会分叉。一旦进入区块链,每个区块Bi就安全地是最终的。
2.5可接受的失效概率
为了分析Algorand的安全性,我们指定概率F,在该概率下,我们愿意接受某事出现差错(例如,验证者集合SVr没有诚实的多数)。与在密码散列函数H的输出长度的情况下一样,F也是参数。但是,与在那种情况下一样,发现将F设置为具体值是有用的,以便更直观地理解以下事实:在Algorand中,确实有可能同时享有足够的安全性和足够的效率性。为了强调F是可以根据需要设置的参数,在第一实施例和第二实施例中,我们分别设置了
F=10-12并且F=10-18
讨论 应注意,10-12实际上小于万亿分之一,并且据信,对F的这种选择在应用中是足够的。应强调,10-12不是敌对者可以伪造诚实用户的支付的概率。所有支付都是经过数字签名的,并且因此,如果使用了正确的数字签名,则伪造支付的概率大大低于10-12,并且事实上,基本上为0。我们愿意以概率F容忍的不良事件是Algorand的区块链分叉。应注意,在设置F和一分钟长的轮次的情况下,预计分叉在Algorand的区块链中以(大约)每190万年一次不频繁地发生。相比之下,在比特币中,分叉经常发生。
要求较高的人可以将F设置为较低的值。为此,在第二实施例中,考虑将F设置为10-18。应注意,假设每秒生成一个区块,则1018是到目前为止宇宙所花费的估计秒数:从大爆炸到现在。因此,在F=10-18的情况下,如果在一秒钟生成一个区块,则人们应当预计在宇宙的时代内能够看到分叉。
2.6对抗性模型
Algorand被设计成在非常具有对抗性的模型中是安全的。解释一下。
诚实用户和恶意用户 如果用户遵循其所有协议指令,则该用户是诚实的,并且完全能够发送并接收消息。如果用户可以任意地偏离其规定的指令,则该用户是恶意的(即,按分布式计算的说法,拜占庭式的)。
敌对者 敌对者是针对颜色拟人化的高效的(技术上是多项式时间)算法,该敌对者可以在其想要的任何时间立即使其想要的任何用户成为恶意的(只受该敌对者可以破坏的用户数量的上界限制)。
敌对者完全控制并且完美地协调所有恶意用户。敌对者代表所有恶意用户采取所有行动(包括接收和发送他们的所有消息)并且可以让所有恶意用户以任意的方式偏离所有恶意用户规定的指令。或者,敌对者可以仅隔离发送并接收消息的被破坏用户。应澄清,尽管用户i的恶意可能因敌对者让其采取的行动而发生,但没有其他人自动得知该用户是恶意的。
然而,这个强大的敌对者
·没有无界的计算能力并且不能成功地伪造诚实用户的数字签名,在可忽略的概率下除外;并且
·不能以任何方式干扰诚实用户之间的消息交换。
此外,敌对者攻击诚实用户的能力受到以下假设中的一个假设的限制。
诚实度大多数货币 考虑了连续的诚实的大多数货币(HMM)假设:即,对于每个非负整数k和实数h>1/2,
HHMk>h:在第r-k轮的系统中,每个第r轮中拥有的用户部分大于所有货币的h。
讨论.假设所有恶意用户都完美地协调了他们的行动(就好像被单个实体(敌对者)所控制的一样)是相当悲观的假说。太多个体之间的完美协调很难实现。也许协调只发生在单独的恶意参加者群组中。但是,由于不能确定恶意用户可以享有的协调程度,因此安全总比后悔好。
假设敌对者可以秘密地、动态地且立即破坏用户也是悲观的。毕竟,现实地,完全控制用户的操作应当花费一些时间。
假设HMMk>h意味着例如,如果在一分钟内实施一轮(平均),则在k=120时,在给定轮次的大多数货币将会保留在诚实用户手中至少两小时,并且在k=10,000时,在给定轮次的大多数货币将会保留在诚实用户手中至少一周。
应注意,HMM假设与先前的诚实的大多数计算能力假设在这样的意义上是相关的:由于计算能力可以用货币来购买,因此如果恶意用户拥有大部分货币,则这些恶意用户可以获得大部分计算能力。
2.7通信模型
设想将消息传播(即,“对等闲聊”5)作为唯一的通信手段,并且假设每条传播的消息及时到达几乎所有诚实用户。基本上假设诚实用户所传播的每条消息m在取决于m的长度的给定时间量内到达所有诚实用户。(实际上,只要m到达足够高的百分比的诚实用户就够了。)
3传统环境中的BA协议BA*
Figure BDA0002511187180000231
正如已经强调的,拜占庭协定是Algorand的关键组成部分。实际上,正是通过使用这种BA协议,Algorand才不受分叉影响。然而,为了抵御强大的敌对者,Algorand必须依赖于满足新的参加者可替换性约束的BA协议。另外,为了使Algorand高效,这种BA协议必须非常高效。
BA协议最初是针对理想化通信模型同步完整网络(SC网络)定义的。这种模型允许对BA协议进行更简单的设计和分析。因此,在这部分,引入了新的BA协议BA*用于SC网络并且完全忽略了参加者可替换性的问题。协议BA*是单独价值的贡献。实际上,该协议是到目前为止已知的用于SC网络的最高效的密码BA协议。
为了在Algorand协议中使用该协议,对BA做了一些修改,以便说明不同的通信模型和上下文。
从回想BA操作的模型和拜占庭协定的概念开始。
3.1同步完整网络和匹配的敌对者
在SC网络中,存在共用时钟,该公共用钟在每个整数时间r=1,2,...发出滴答声。
在每个偶数时间咔嗒点r,每个参加者i即时且同时向每个参加者j(包括他自己)发送单条消息
Figure BDA0002511187180000242
(可能是空消息)。由参加者j在时间咔嗒点r+1正确地接收每个
Figure BDA0002511187180000241
以及发送者i的身份。
再次,在通信协议中,如果参加者遵循所有其规定的指令,则该参加者是诚实的,否则是恶意的。所有恶意参加者由敌对者完全控制并完美地协调,具体地,该敌对者立即接收发往恶意参加者的所有消息并且选择恶意参加者所发送的消息。
敌对者可以在其想要的任何奇数时间咔嗒点立即使其想要的任何诚实用户成为恶意用户(只受恶意参加者数量的可能上界t限制)。即,敌对者“不能干扰诚实用户i已经发送的消息”,这些消息将照常传送。
敌对者另外还能够在每个偶数轮次即时查看当前诚实参加者发送的消息,并且即时使用此信息来选择恶意参加者在相同时间滴答声处发送的消息。
3.2拜占庭协定的概念
拜占庭协定的概念可能已经针对二进制情况(即,当每个初始值均由位组成时)首先引入。然而,该概念很快扩展到任意初始值。BA协议意指任意值协议。
定义3.1.在同步网络中,设
Figure BDA0002511187180000251
为n个参加者的协议(该协议的参加者集合在参加者之间是共同知识)、设t为正整数,使得n≥2t+1。如果对于不包含特殊符号⊥的值的每个集合V(分别地,对于V={0,1}),在最多t个参加者是恶意的并且每个参加者i以初始值vi∈V开始的执行中,每个诚实参加者j以概率1停止,从而输出值outi∈V∪{⊥}以便至少以概率σ满足以下两个条件,则我们说
Figure BDA0002511187180000253
是合理性为σ∈(0,1)的任意值(分别为二进制的)(n,t)-拜占庭协定协议:
1.协定:存在out∈V∪{⊥}使得对于所有诚实的参加者i来说outi=out。
2.一致性:如果对于某个值v∈V、对于所有参加者ivi=v,则out=v。
我们将out称为
Figure BDA0002511187180000256
输出并且将每个outi称为参加者i的输出。
3.3 BA符号#
在BA协议中,要求参加者计算在给定步骤中有多少参加者向该参加者发送了给定消息。因此,对于可能被发送的每个可能的值v,
Figure BDA0002511187180000254
(或在s明确时,仅#i(v))是i在步骤s中接收到v的参加者j的数量。
回想起参加者i恰好从每个参加者j接收到一条消息,如果参加者的数量是n,则对于所有i和s,
Figure BDA0002511187180000255
3.4新的二进制BA协议BBA*
在这部分中,呈现了新的二进制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.[Coin-Fixed-To-0步骤]每个参加者i发送bi
1.1如果
Figure BDA0002511187180000261
则i设置bi=0、发送0*、输出outi=0并且停止。
1.2如果
Figure BDA0002511187180000262
则,则i设置bi=1。
1.3否则,i设置bi=0。
(通信)步骤2.[Coin-Fixed-To-1步骤]每个参加者i发送bi
2.1如果
Figure BDA0002511187180000263
则i设置bi=1、发送1*、输出outi=1并且停止。
2.2如果
Figure BDA0002511187180000264
则i设置bi=0。
2.3否则,i设置bi=1。
(通信)步骤3.[Coin-Genuinely-Flipped步骤]每个参加者i发送bi和SIGi(r,γ)。
3.1如果
Figure BDA0002511187180000265
则i设置bi=0。
3.2如果
Figure BDA0002511187180000266
则i设置bi=1。
3.3否则,设Si={j∈N其在此步骤3中向i发送了适当的消息},
i设置
Figure BDA0002511187180000271
将γ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.设
Figure BDA0002511187180000272
为其中所有参加者的集合是共同知识并且每个参加者i私下已知任意初始值v′i的协议。
如果在有n个参加者(其中最多t个是恶意的)的每次执行中,每个诚实参加者i停止输出值等级对(vi,gi)(其中,gi∈{0,1,2})以便满足以下三个条件,则我们说
Figure BDA0002511187180000273
是(n,t)分级共识协议:
1.对于所有诚实参加者i和j,|gi-gj|≤1。
2.对于所有诚实参加者i和j,
Figure BDA0002511187180000274
3.如果对于某个值v,v′1=…=v′n=v,则对于所有诚实参加者ivi=v并且gi=2。
以下两步协议GC是文献中的分级共识协议。为了与部分4.1的协议Algorand'1的步骤相匹配,分别将GC的步骤命名为2和3。(实际上,Algorand'1的第一步骤涉及其他事情:即,提出新的区块。)
协议GC
步骤2.每个参加者i向所有参加者发送v′i
步骤3.当且仅当
Figure BDA0002511187180000275
时,每个参加者i向所有参加者发送字符串x。
输出确定.每个参加者i输出如下计算的对(vi,gi):
·如果对于某个x,
Figure BDA0002511187180000276
则vi=x并且gi=2。
·如果对于某个x,
Figure BDA0002511187180000277
则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的初始值为v′i
协议BA*
步骤1和步骤2.每个参加者i在输入v′i时执行GC以计算对(vi,gi)。
步骤3、……每个参加者i执行BBA*(如果gi=2,则初始输入为0,否则初始输入为1)以计算位outi
输出确定.如果outi=0,则每个参加者i输出vi,否则输出⊥。
定理3.3.每当n≥3t+1时,BA*是合理性为1的(n,t)-BA协议。
证明.首先证明一致性并且然后证明协定。
一致性证明.假设对于某个值v∈V,v′i=v。则根据分级共识的属性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*的执行中,至少一个诚实参加者i的初始位为0。(实际上,如果所有诚实参加者的初始位均为1,则根据BBA*的一致性属性,对于所有诚实j,将会有outj=1。)因此,在执行GC之后,对于某个值v,i输出对(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由10,000名参加者的委员会执行,这些参加者是通过秘密密码抽签随机选择的并且因此具有证明有权在步骤x中发送消息的凭证。假设在给定步骤中发送的每条消息指定了步骤编号、由其发送者进行了数字签名并且包括证明其发送者有权在该步骤中发言的凭证。
首先,如果诚实参加者的百分比h足够大于2/3(例如,75%),则在每个步骤处选择的委员会以压倒性的概率具有所需的2/3诚实的多数。
另外,10,000名严格随机选择的委员会在每个步骤处有所改变,这一事实并不妨碍BBA*或BA*的正确工作。实际上,在任一协议中,参加者i在步骤s中仅对多重性作出反应,在该多重性下,在步骤s-1中,该参加者已经接收到给定消息m。由于处于闲聊网络中,因此在步骤s-1中发送的所有消息将(立即,出于此直觉的目的)到达所有用户(包括被选择参加步骤s的那些用户)。此外,因为在步骤s-1中发送的所有消息指定了步骤编号并且包括发送者确实被授权在步骤s-1中发言的凭证。因此,无论用户i是否碰巧也在步骤s-1中被选择,被选择参加步骤s的用户i完全能够正确地对他接收到正确步骤s-1消息的多重性进行计数。到目前为止,该用户是否一直参加所有步骤根本不重要。所有用户都在“同一条船上”并且因此可以容易地被其他用户替换。
4 Algorand的两个实施例
如所讨论的,在非常高的水平上,Algorand的轮次理想地如下进行。首先,随机选择的用户(领导者)提出并且传阅新区块。(此过程包括最初选择几个潜在的领导者并且然后确保至少在大部分时间内出现单个共同的领导者。)其次,选择随机选择的用户委员会,并且随机选择的用户委员会在领导者所提出的区块上达成拜占庭协定。(此过程包括由单独选择的委员会来运行BA协议的每个步骤。)然后,由给定阈值(TH)的委员会成员对商定的区块进行数字签名。传播这些数字签名,使得每个人都确定哪个是新区块。(这包括传阅签名者的凭证并且仅认证新区块的散列、确保一旦明确了其散列,就保证每个人都得知该区块。)
在接下来的两个部分中,呈现了基础Algorand设计的两个实施例:Algorand'1和Algorand'2,该两个实施例分别在适当的大多数诚实用户的假设下工作。在部分??中,示出了如何采用这些实施例在诚实的大多数货币的假设下工作。
Algorand'1仅设想了>2/3的委员会成员是诚实的。另外,在Algorand'1中,用于达成拜占庭协定的步骤数量被限制在适当地高的数量,使得保证在固定数量的步骤内以压倒性的概率达成一致(但可能需要的时间比Algorand'2的步骤更长)。在到最后步骤仍未达成一致的远程情况下,委员会商定空区块,该空区块始终有效。
Algorand'2设想了委员会中的诚实成员数量总是大于或等于固定阈值tH(这保证了,以压倒性的概率,委员会成员的至少2/3是诚实的)。另外,Algorand'2允许以任意数量的步骤达成拜占庭协定(但可能在比Algorand'1更短的时间内)。
本领域技术人员将认识到,可以得出这些基础实施例的许多变型。具体地,考虑到Algorand'2,很容易修改Algorand'1,以便实现以任意数量的步骤达成拜占庭协定。
这两个实施例共享以下共同核心、符号、概念和参数。
4.1共同核心
目标理想地,对于每个第r轮,Algorand应当满足以下属性:
1.完美的正确性.所有诚实用户商定同一区块Br
2.完整性1.概率为1时,区块Br已经被诚实用户选择。
(实际上,恶意用户可能总是选择其支付集合仅包含该恶意用户的“朋友”的支付的区块。)
当然,仅仅保证完美的正确性是简单的:每个人一直选择官方支付集合PAYr为空。但在这种情况下,系统的完整性将会为0。不幸的是,在存在恶意用户的情况下,既保证完美的正确性又保证完整性1并不容易。因此,Algorand采取了更现实的目标。非正式地,设h表示诚实用户的百分比,h>2/3,Algorand的目标是
以压倒性的概率保证完美正确性和接近h的完整性。
将正确性置于完整性之上似乎是合理的选择:没有在一个轮次中处理的支付可以在下一个轮次中进行处理,但是如果可能的话,应当避免分叉。
占主导地位的拜占庭协定 暂时忽略过多的时间和通信,可以如下保证完美的正确性。在第r轮开始时,每个用户i提出其自己的候选区块
Figure BDA0002511187180000311
然后,所有用户仅在候选区块之一上达成拜占庭协定。根据引言,所采用的BA协议需要2/3的诚实多数并且是参加者可替换的。该协议的步骤中的每一个步骤都可以由小且随机选择的验证者集合执行,这些验证者不共享任何内部变量。
不幸的是,这种方法并不十分奏效。之所以这样是因为诚实用户所提出的候选区块很可能彼此完全不同。实际上,每个诚实用户看到不同的支付。因此,尽管不同的诚实用户所看到的支付集合可以有很多重叠,但所有诚实用户都不太可能会针对同一区块构建提议。因此,BA协议的一致性协定永远不具有约束力,仅协定具有约束力,并且因此,协定可能总是在⊥上而不是在好的区块上达成。
Algorand'如下避免了这个问题。首先,选择第r轮的领导者lr。然后,lr传播其自己的候选区块
Figure BDA0002511187180000312
最后,用户在其实际从lr接收到的区块上达成一致。因为每当lr是诚实的时,完美的正确性和完整性1两者均成立,所以Algorand'确保lr以接近h的概率是诚实的。
领导者选择 在Algorand中,第r个区块的形式为
Figure BDA0002511187180000318
正如引言中已经提到的,量Qr-1是仔细地构建的,以便本质上不可被非常强大的敌对者操纵。(在这部分的后面,将会提供关于为什么是这种情况的一些直觉。)在第r轮开始时,到目前为止,所有用户均已知区块链B0,...,Br-1,这些用户从该区块链推断先前的每个轮次的用户集合:即,PK1,...,PKr-1。第r轮的潜在领导者是用户i,使得
.H(SIGi(r,1,Qr-1))≤p。
解释一下。应注意,由于可从区块Br-1推断量Qr-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 BDA0002511187180000321
是唯一地与i和r相关联的介于0与1之间的随机256位数的二进制展开。因此,ri小于或等于p的概率基本上为p。
选择概率p,使得以压倒性(即,1-F)概率,至少一个潜在验证者是诚实的。(事实上,p被选择为最小的这种概率。)
应注意,由于i是能够计算其自己的签名的唯一一个用户,因此只有i可以确定自己是否是第1轮的潜在验证者。然而,通过透露自己的凭证
Figure BDA0002511187180000322
i可以向任何人证明自己是第r轮的潜在验证者。
领导者lr被定义为潜在领导者,该潜在领导者的散列凭证小于所有其他潜在领导者j的散列凭证:即,
Figure BDA0002511187180000323
应注意,由于恶意的lr可能不会透露其凭证,因此第r轮的正确领导者可能从来都是未知的,并且除非有不大可能的平局,否则lr确实是第r轮的唯一领导者。
最后,提出最后但重要的细节:只有当用户i属于系统至少k个轮次时,他才可以成为第r轮的潜在领导者(并且因此是领导者)。这保证了Qr的不可操纵性以及所有将来的Q量。事实上,潜在领导者之一将实际上确定Qr
验证者选择 第r轮的每个步骤s>1由小的验证者集合SVr,s执行。再次,每个验证者i∈SVr,s是从在r之前已经处于系统中k个轮次的用户中并且又通过特殊的量Qr-1随机选择的。具体地,i∈PKr-k是SVr,s中的验证者,
.H(SIGi(r,s,Qr-1))≤p′。
再一次,仅i已知自己是否属于SVr,s,但是,如果是这种情况,i可以通过展现自己的凭证
Figure BDA0002511187180000327
来证明这一点。验证者i∈SVr,s在第r轮的步骤s中发送消息
Figure BDA0002511187180000328
并且此消息包括其凭证
Figure BDA0002511187180000329
以便使得下一个步骤的验证者能够识别出
Figure BDA00025111871800003210
是合法的步骤s消息。
选择概率p'以确保在SVr,s中,设#good为诚实用户的数量并且#bad为恶意用户的数量,则以下两个条件以压倒性概率成立。
对于实施例Algorand'1
(1)#good>2#bad,并且
(2)#good+4#bad<2n,其中,n是SVr,s的预期基数。
对于实施例Algorand'2
(1)#good>tH,并且
(2)#good+2#bad<2tH,其中,tH是指定阈值。
这些条件意味着,以足够高的概率,(a)在BA协议的最后步骤中,将至少有给定数量的诚实参加者对新区块Br进行数字签名、(b)每个轮次只有一个区块可以具有必要数量的签名并且(c)使用的BA协议具有(在每个步骤处)所需的2/3的诚实多数。
澄清区块生成 如果第r轮领导者lr是诚实的,则对应的区块具有以下形式:
Figure BDA0002511187180000332
其中,支付集合PAYr最大,(回想一下,根据定义,所有支付集合是集体有效的。)否则(即,如果lr是恶意的),Br具有以下两种可能的形式之一:
Br=(r,PAYr,SIGi(Qr-1),H(Br-1))和
Figure BDA0002511187180000334
在第一种形式中,PAYr是(不一定是最大的)支付集合并且可以是
Figure BDA0002511187180000335
并且i是第r轮的潜在领导者。(然而,i可以不是领导者lr。这确实可以在lr对他的凭证保密并且不透露他自己时发生。)
当在BA协议的第r轮执行中所有诚实参加者输出默认值(该默认值在应用中是空区块
Figure BDA0002511187180000338
)时,第二种形式出现。(根据定义,BA协议的可能输出包括默认值,通常由⊥表示。参见部分3.2。)
应注意,尽管在这两种情况下支付集合都是空的,但
Figure BDA0002511187180000339
H(Br-1))和
Figure BDA00025111871800003310
是在句法上不同的区块并且出现在两种不同的情况下:分别是,“在BA协议的执行中一切进展顺利”和“BA协议出现差错并且默认值被输出”。
现在直观地描述区块Br的生成是如何在Algorand'的第r轮中进行的。在第一步骤中,每个合格的参加者(即,每个参加者i∈PKr-k)检查自己是否是潜在领导者。如果是这种情况,则要求i使用他到目前为止所看到的所有支付以及当前区块链B0,...,Br-1来秘密地准备最大的支付集合
Figure BDA00025111871800003311
并且秘密地组装他的候选区块
Figure BDA00025111871800003312
即,i不仅将刚刚准备好的支付集合作为其第二部件包括在
Figure BDA0002511187180000341
内,还将他自己对Qr-1的签名、最后区块Br-1的第三部件作为其第三部件包括在其中。最后,i传播他的第r轮-步骤1消息
Figure BDA0002511187180000342
该消息包括(a)i的候选区块
Figure BDA0002511187180000343
(b)i对自己的候选区块的适当签名(即,他对
Figure BDA0002511187180000344
的散列的签名以及(c)i自己的证明他确实是第r轮的潜在验证者的凭证
Figure BDA0002511187180000345
(应注意,直到诚实的i产生他的消息
Figure BDA0002511187180000346
之前,敌对者不知道i是潜在的验证者)。如果敌对者希望破坏诚实的潜在领导者,敌对者也可以破坏随机的诚实参加者。然而,一旦敌对者看到了
Figure BDA0002511187180000347
由于该项包含了i的凭证,因此敌对者知道并且可以破坏i,但是不能阻止被病毒地传播的
Figure BDA0002511187180000348
到达系统中的所有用户。)
在第二步骤中,每个选定的验证者j∈SVr,2试图识别该轮的领导者。具体地,j取得包含在他已经接收到的适当的步骤1消息
Figure BDA0002511187180000349
中的步骤1凭证
Figure BDA00025111871800003410
对所有这些凭证进行散列处理,即,计算
Figure BDA00025111871800003411
找到凭证
Figure BDA00025111871800003412
该凭证的散列是按字典顺序最小的;并且将
Figure BDA00025111871800003413
视为第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总是适当地构建并传播他的消息
Figure BDA00025111871800003414
该消息包含i的凭证。因此,由于诚实用户的百分比是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不使用他实际上从lj(用户j认为是领导者)接收的区块Bj作为他对拜占庭协议的输入值v′j,而是该领导者使用该区块的散列,作为其对拜占庭协议的输入值,即,v′j=H(Bi)。因此,在BA协议终止时,最后步骤的验证者不计算期望的第r轮区块Br,而是计算(认证并传播)H(Br)。因此,由于H(Br)是由BA协议的最后步骤的足够多的验证者数字签名的,因此系统中的用户将认识到H(Br)是新区块的散列。然而,这些用户还必须检索(或等待,因为执行是相当异步的)区块Br本身,无论敌对者可能做什么,协议都确保该区块可用。
异步性和定时 Algorand'1和Algomnd'2具有很大程度的异步性。之所以这样是因为敌对者在调度对被传播的消息的传送方面有很大的自由度。另外,无论轮次中的总步骤数是否有上限,实际采取的步骤数都有差异贡献。
用户i一得知B0,...,Br-1的证书就计算Qr-1并且开始进行第r轮,从而检查自己是否是潜在领导者或第r轮的某个步骤s中的验证者。
假设i必须在步骤s处行动,鉴于所讨论的异步性,i依赖于各种策略以确保自己在行动之前有足够的信息。
例如,i可以等待从先前步骤的验证者接收至少给定数量的消息(如在Algorand'1中那样)或等待足够的时间以确保自己接收先前步骤的足够多的验证者的消息(如在Algorand'2中那样)。
种子Qr和回顾参数k 回想一下,理想地,量Qr应当是随机且独立的,尽管对于这些量来说充分地不可被敌对者操纵就足够了。
初看上去,可以选择Qr-1与H(PAYr-1)相一致。然而,初步分析揭示,恶意用户可能利用此选择机制。6某种另外的努力示出了,基于传统区块量的无数其他替代方案很容易可被敌对者利用以确保恶意领导者非常频繁。相反,具体地且归纳地定义了全新的量Qr,以便能够证明其不可被敌对者操纵。即,
如果Br不是空区块,则
Figure BDA0002511187180000362
否则
Figure BDA0002511187180000363
为何Qr的这种构造起作用的直觉如下。暂时假设Qr-1是真正随机且独立选择的。那么,Qr?也将是如此吗?当lr是诚实的时,答案是(粗略地说)肯定的。之所以这样是因为
Figure BDA0002511187180000365
是随机函数。然而,当lr是恶意的时,Qr不再是根据Qr-1和lr意思明确地定义的。Qr至少有两个单独的值。一个继续是
Figure BDA0002511187180000368
并且另一个是II(Qr-1,r)。首先论证一下,尽管第二选择在某种程度上是任意的,但是第二选择是绝对强制性的。其原因是,恶意的lr总是可以导致由第二步骤的诚实验证者接收完全不同的候选区块。7一旦出现这种情况,很容易确保通过第r轮的BA协议最终商定的区块将是默认区块并且因此将不包含任何人的数字签名Qr-1。但系统必须继续,并且为此,第r轮需要领导者。如果此领导者是自动且公开地选择的,则敌对者将简单地破坏该领导者。如果该领导者是通过先前的Qr-1经由相同的过程选择的,则lr将再次成为第r+1轮中的领导者。特别地提出使用相同的秘密密码抽签机制,但应用于新的Q量:即,II(Qr-1,r)。通过将这个量作为H的输出,保证了输出是随机的,并且通过将r作为H的第二输
Figure BDA0002511187180000361
入包括在内,而H的所有其他用户具有单个输入或至少有三个输入,“保证”了这种Qr是独立地选择的。再次,替代方案Qr的具体选择并不重要,重要的是lr针对Qr有两种选择,并且因此他可以有双倍的机会使另一个恶意用户成为下一个领导者。
对于控制恶意lr的敌对者来说,Qr的选项甚至可以更多。例如,设x、y和z为第r轮的三个恶意潜在领导者,使得
Figure BDA0002511187180000373
并且
Figure BDA0002511187180000374
特别小。即,如此小以至于每个诚实潜在领导者的散列凭证
Figure BDA0002511187180000375
很有可能较小。然后,通过要求x隐藏其凭证,敌对者很有可能使y成为第r-1轮的领导者。这意味着敌对者针对Qr有另一个选项:即,H(SIGy(Qr-1),r)。类似地,敌对者可以要求x和y两者均保留其凭证以便使z成为第r-1轮的领导者,并且得到针对Qr的另一个选项:即,H(SIGz(Qr-1),r)。
然而,这些选项和其他选项中的每一个选项当然均有非零的机会失效,因为敌对者不能预测诚实潜在用户的数字签名的散列。
仔细的类马尔可夫链分析示出了,无论敌对者选择在第r-1轮作出什么选项,只要他不能在系统中注入新用户,他就不能将诚实用户成为第r+40轮的领导者的概率降到远远低于h。这就是要求第r轮的潜在领导者是已经存在于第r-k轮中的用户的原因。这是确保在第r-k轮中敌对者不能大幅度地更改诚实用户成为第r轮的领导者的概率的方式。事实上,无论敌对者可以通过r在第r-k轮中向系统添加什么用户,这些用户都没有资格成为第r轮的潜在领导者(而更不用说领导者)。因此,回顾参数k最终是安全参数。(但是,正如将在部分??中看到的,回顾参数也可以是某种“便利参数”。)
临时密钥 尽管协议的执行不能生成分叉(在可忽略的概率下除外),但在生成合法区块r之后,敌对者可以在第r个区块处生成分叉。
粗略地说,一旦Br生成,敌对者就得知第r轮的每个步骤的验证者是谁。因此,敌对者可以因此破坏所有这些验证者并且迫使他们证实新区块
Figure BDA0002511187180000376
由于这个伪区块可能仅在合法区块之后被传播,因此一直关注的用户将不会被愚弄。8尽管如此,
Figure BDA0002511187180000382
将会在句法上是正确的,并且想要防止被制造出来。
借助于新规则来做到这一点。本质上,第r轮的步骤s的验证者集合SVr,s的成员使用临时公开密钥
Figure BDA0002511187180000383
对他们的消息进行数字签名。这些密钥是仅单次使用的,并且其对应的秘密密钥
Figure BDA0002511187180000384
一旦用过就会被销毁。以此方式,如果验证者后来被破坏,敌对者就不能强迫验证者对其最初没有签名的任何其他内容进行签名。
我们自然而言必须确保敌对者不可能计算出新密钥
Figure BDA0002511187180000385
并且使诚实用户相信该密钥正好是验证者i∈SVr,s要在步骤s中使用的临时密钥。
4.2符号、概念和参数的共同总结
符号
·r≥0:当前轮次编号。
·s≥1:第r轮中的当前步骤编号。
·Br:在第r轮中生成的区块。
·PKr:在第r-1轮结束且第r轮开始时的公开密钥的集合。
·Sr:在第r-1轮结束且第r轮开始时的系统状态。9
·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和MSVr,s:分别是SVr,s中的恶意验证者集合和诚实验证者集合。MSVr,s∪HSVr,s=SVr,s并且
Figure BDA0002511187180000389
Figure BDA0002511187180000381
·
Figure BDA0002511187180000392
Figure BDA0002511187180000393
分别是每个SVr,1中的预期潜在领导者数量和每个SVr,s(s>1)中的预期验证者数量。
应注意,n1<<n,因为SVr,1中需要至少一个诚实成员,但每个SVr,s(s>1)中需要至少大多数诚实成员。
·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 BDA0002511187180000395
回顾参数。即,第r-k轮是从其中选择第r轮的验证者的地方,即,
Figure BDA0002511187180000396
10
·p1∈(0,1):对于第r轮的第一步骤,第r-k轮中的用户以概率
Figure BDA0002511187180000397
被选择加入SVr,1
·p∈(0,1):对于第r轮的每个步骤s>1,第r-k轮中的用户以概率
Figure BDA0002511187180000398
被选择加入SVr,s
·CERTr:Br的证书。该证书是来自第r轮中的适当验证者的H(Br)的tH签名的集合。
·
Figure BDA0002511187180000399
是已证明区块。
如果用户i拥有(并且成功地验证了)已证明区块的两个部分,则该用户知道Br。应注意,不同的用户所看到的CERTr可以不同。
Figure BDA0002511187180000391
·
Figure BDA0002511187180000401
用户i知道Br的(本地)时间。在Algorand协议中,每个用户有其自己的时钟。不同用户的时钟不需要同步,但必须具有相同的速度。仅出于分析的目的,考虑参考时钟并且测量参加者的相对于该参考时钟的相关时间。
·
Figure BDA0002511187180000402
Figure BDA0002511187180000403
分别是用户i开始和结束其对第r轮的步骤s的执行的(本地)时间。
·Λ和λ:本质上分别是执行步骤1所需的时间和执行Algorand协议的任何其他步骤所需的时间的上界。
参数Λ形成传播单个1MB区块的时间的上界。
参数λ形成步骤s>1中按照验证者传播一小条消息的时间的上界。
假设Λ≤4λ。
概念
·验证者选择.
对于每个第r轮和步骤s>1,
Figure BDA0002511187180000404
每个用户i∈PKr-k使用自己的长期密钥私下计算其签名,并且决定是否i∈SVr,s。如果i∈SVr,s,则SIGi(r,s,Qr-1)是i的(r,s)凭证,用
Figure BDA0002511187180000405
简洁地表示。
对于第r轮的第一步骤,SVr,1
Figure BDA0002511187180000406
被类似地定义,p被p1替换。SVr,1中的验证者是潜在领导者。
·领导者选择.
如果对于所有潜在领导者j∈SVr,1
Figure BDA0002511187180000407
则用户i∈SVr,1是第r轮的领导者,由lr表示。每当比较两个参加者的凭证的散列时,在不太可能的平局事件中,协议总是根据潜在领导者(的长期公开密钥)按字典顺序打破平局。
根据定义,参加者lr’s凭证的散列值也是PKr-k中的所有用户中最小的。应注意,在没有看到其他潜在领导者的凭证的情况下,潜在领导者不能私下决定自己是否是领导者。
由于散列值是随机统一的,因此当SVr,1非空时,lr总是存在并且以至少为h的概率是诚实的。参数n1足够大,以便以压倒性的概率确保每个SVr,1是非空的。
·区块结构.
非空区块的形式为
Figure BDA0002511187180000411
并且空区块的形式为
Figure BDA0002511187180000412
应注意,如果这轮中没有发生支付或者如果领导者是恶意的,则非空区块可以仍然包含空的支付集合PAYr。然而,非空区块意味着lr的身份、其凭证
Figure BDA0002511187180000414
以及
Figure BDA0002511187180000415
均已及时被透露。协议保证,如果领导者是诚实的,则区块将以压倒性的概率为非空的。
·种子Qr.
如果Br是非空的,则
Figure BDA0002511187180000418
否则
Figure BDA0002511187180000417
参数
·各种参数之间的关系.
-第r轮的验证者和潜在领导者是从PKr-k中的用户中选择的,其中,k被选择成使得敌对者不能以优于F的概率在第r-k-1轮处向后预测Qr-1:否则,敌对者将能够针对第r-k轮引入恶意用户(所有这些恶意用户将成为第r轮中的潜在领导者/验证者),从而对于他所期望的一些步骤s,在SVr,s中成功地拥有恶意领导者或恶意多数。
-对于每个第r轮的步骤1,选择n1使得以压倒性的概率,
Figure BDA0002511187180000419
·重要参数的实例选择.
-H的输出为256位长。
-h=80%,n1=35。
-Λ=1分钟并且λ=15秒。
·协议的初始化.
协议从时间0处开始,r=0。由于不存在“B-1”或“CERT-1”,因此在句法上,B-1是公共参数(其第三部件指定Q-1),并且所有用户在时间0处知道B-1
5 Algorand'1
在这部分中,根据以下假设构建了Algorand'的版本。
诚实的大多数用户假设:每个PKr中多于2/3的用户是诚实的。
在部分??中,示出了如何用期望的诚实的大多数货币假设来替换上述假设。
5.1另外的符号和参数
符号
·
Figure BDA0002511187180000421
二进制BA协议中的最大步骤数量,3的倍数。
·Lr≤m/3:随机变量,表示当每个试验以概率
Figure BDA0002511187180000422
为1并且最多有m/3个试验时看到1所需的伯努利试验数量。如果所有试验都失败,则
Figure BDA0002511187180000423
Lr将被用于形成生成区块Br所需的时间的上界。
·
Figure BDA0002511187180000424
协议的结束条件中需要的签名数量。
·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在Algorand'1中实施临时密钥
如已经提到的,希望验证者i∈SVr,s使用他在使用之后立即销毁的临时秘密密钥
Figure BDA0002511187180000425
相对于临时公开密钥
Figure BDA0002511187180000426
对他在第r轮中的步骤s的消息
Figure BDA0002511187180000427
进行数字签名。因此,需要高效的方法以确保每个用户可以验证
Figure BDA0002511187180000428
确实是用于验证
Figure BDA0002511187180000429
的i’s签名的密钥。通过(尽我们所知)基于身份的签名方案的新用途来实现这一点。
在高水平上,在这种方案中,中央机构A生成公开主密钥PMK和对应的秘密主密钥SMK。考虑到参加者U的身份U,A通过SMK相对于公开密钥U计算秘密签名密钥skU,并且私下将skU交给U。(实际上,在基于身份的数字签名方案中,用户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是轮次中可能发生的步骤数量的上界。以此方式,
Figure BDA0002511187180000431
使得看到i的签名
Figure BDA0002511187180000432
的每个人立即以压倒性的概率在r'之后的前一百万个第r轮r中对其进行验证。
换句话说,i首先生成PMK和SMK。然后,i公布PMK是i在任何轮次r∈[r′,r′+106]的主公开密钥,并且使用SMK来私下产生并存储每个三元组(i,r,s)∈S的秘密密钥
Figure BDA0002511187180000433
这样做之后,i销毁SMK。如果i确定自己不是SVr,s的一部分,则i可以独自离开
Figure BDA0002511187180000434
(因为协议不要求i在第r轮的步骤s中认证任何消息)。否则,i首先使用
Figure BDA0002511187180000435
来对其消息
Figure BDA0002511187180000437
进行数字签名并且然后销毁
Figure BDA0002511187180000436
应注意,当i第一次进入系统时,他可以公布他的第一公开主密钥。即,将i带入系统(在第r'轮或在接近r'的轮次)的相同支付
Figure BDA0002511187180000438
也可以应i的请求指定i的任何轮次r∈[r′,r′+106]的公开主密钥为PMK(例如,通过包括一对形式
Figure BDA0002511187180000439
还应注意,由于m+3是轮次中的最大步骤数量,因此,假设轮次需要一分钟,则如此产生的临时密钥的储存将使i持续将近两年。同时,这些临时秘密密钥的产生将不会花费i太长时间。使用具有32B密钥的基于椭圆曲线的系统,在几微秒内计算出每个秘密密钥。因此,如果m+3=180,则可以在不到一小时内计算出所有180M秘密密钥。
当当前轮次越来越接近r′+106时,为了处理下一个百万轮次,i生成新的(PMK',SMK')对并且通过例如使SIGi(PMK′,[r′+106+1,r′+2·106-1])作为单独的“交易”或作为是支付的一部分的另外的一些信息进入新区块来通知他下一此储存的临时密钥是什么。通过这样做,i通知每个人,其应当在下一个百万轮次中使用PMK'来验证i的临时签名。等等。
(应注意,遵循这一基本方法,用于在不使用基于身份的签名的情况下实施临时密钥的其他方式当然是可能的。例如,通过默克尔树。11)
用于实施临时密钥的其他方式当然是可能的,例如,通过默克尔树。
5.3将Algorand'1的步骤与BA*的那些步骤相匹配
正如我们所说,Algorand'1中的轮次最多具有m+3个步骤。
步骤1.在本步骤中,每个潜在领导者i计算并传播他的候选区块
Figure BDA0002511187180000443
以及他自己的凭证
Figure BDA0002511187180000442
回想一下,这个凭证明确地识别了i。之所以这样是因为
Figure BDA0002511187180000444
潜在验证者i还将他对
Figure BDA0002511187180000445
的适当数字签名作为他的消息的一部分进行传播。i的不处理支付或凭证的这个签名是相对于他的临时公开密钥
Figure BDA0002511187180000446
的:即,i传播
Figure BDA0002511187180000447
考虑到惯例,i本来可以传播
Figure BDA00025111871800004411
而不是传播
Figure BDA0002511187180000449
Figure BDA00025111871800004410
然而,在分析中,需要明确对
Figure BDA00025111871800004412
的获取。
步骤2.在本步骤中,每个验证者i将
Figure BDA00025111871800004413
设置为其散列凭证最小的潜在领导者并且将
Figure BDA00025111871800004414
设为由
Figure BDA00025111871800004415
提出的区块。由于为了效率起见,希望商定H(Br),而不是直接商定Br,因此i以初始值
Figure BDA00025111871800004416
传播他本来会在BA*的第一步骤中传播的消息。即,i传播v′i(当然,在对其进行临时签名之后)。(即,在相对于正确的临时公开密钥(在这种情况下,是
Figure BDA00025111871800004417
)对其进行签名之后。)同样,i当然还传输他自己的凭证。
Figure BDA0002511187180000441
由于BA*的第一步骤由分级共识协议GC的第一步骤组成,因此Algorand'的步骤2对应于GC的第一步骤。
步骤3.在本步骤中,每个验证者i∈SVr,2执行BA*的第二步骤。即,该验证者发送他本来会在GC的第二步骤中发送的相同的消息。再次,i的消息是临时签名的并且附有i的凭证。(从现在开始,将省略验证者对他的消息进行临时签名并且还传播他的凭证的说法。)
步骤4.在本步骤中,每个验证者i∈SVr,4计算GC的输出(vi,gi),并且对他本来会在BA*的第三步骤中(即,在BBA*的第一步骤中)发送的相同消息进行签名并将其发送,如果gi=2,则初始位为0,否则初始位为1。
步骤s=5,...,m+2.如果曾经达到,则这种步骤对应于BA*的步骤s-1并且因此对应于BBA*的步骤s-3。
由于传播模型是足够异步的,因此必须考虑这样的可能性:在这种步骤s的中间,向验证者i∈SVr,s证明已经选择了区块Br的信息到达验证者。在这种情况下,i停止其自己对Algorand'的第r轮的执行并且开始执行他的第(r+1)轮指令。
因此,除了对应于BBA*的步骤s-3的指令之外,验证者i∈SVr,s的指令还包括检查BBA*的执行是否在先前的步骤s'中已经停止。由于BBA*仅可以在Coin-Fixed-to-0步骤中或在Coin-Fixed-to-1步骤中停止,因此指令对以下各项进行区分:
A(结束条件0):s′-2≡0mod 3,还是
B(结束条件1):s′-2≡1mod 3。
事实上,在情况A中,区块Br是非空的,并且因此需要另外的指令来确保i适当地重构Br以及其适当的证书CERTr。在情况B中,区块Br是空的,并且因此i被指示设置
Figure BDA0002511187180000451
并计算CERTr
如果在i执行步骤s期间,i没有看到区块Br已经被生成的任何证据,则i发送他本来会在BBA*的步骤s-3中发送的相同消息。
步骤m+3.如果在步骤m+3期间,i∈SVr,m+3看到区块Br已经在先前的步骤s'中生成,则i就如上文所解释的那样继续进行。
否则,指示i基于他所拥有的信息计算Br和其对应的证书CERTr,而不是发送他本来会在BBA*的步骤m中发送的相同信息。
回想一下,事实上,轮次的步骤的总数量的上界为m+3。
5.4实际协议
回想一下,在第r轮的每个步骤s中,验证者i∈SVr,s使用他的长期公开秘密密钥对来产生他的凭证
Figure BDA0002511187180000462
以及SIGi(Qr-1)(在s=1的情况下)。验证者i使用他的临时秘密密钥
Figure BDA0002511187180000463
来对他的(r,s)消息
Figure BDA0002511187180000464
进行签名。为了简单起见,当r和s明确时,写下esigi(x)而不是
Figure BDA0002511187180000465
来表示i在第r轮的步骤s中的值x的适当临时签名,并且写下ESIGi(x)而不是
Figure BDA0002511187180000466
来表示(i,x,esigi(x))。
步骤1:区块提议
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤1。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,1
·如果
Figure BDA0002511187180000467
则i立刻停止他自己对步骤1的执行。
·如果i∈SVr,1(即,如果i是潜在领导者),则他收集到目前为止已经传播给他的第r轮支付并且根据这些支付计算最大支付集合
Figure BDA0002511187180000468
接下来,i计算他的“候选区块”
Figure BDA0002511187180000469
最后,i计算消息
Figure BDA00025111871800004610
销毁他的临时秘密密钥
Figure BDA00025111871800004611
并且然后传播
Figure BDA00025111871800004612
备注.实际上,为了缩短步骤1的全局执行,选择性地传播(r,1)消息很重要。即,对于系统中的每个用户i,针对他曾经接收到并且成功地验证的第一(r,1)消息,12参加者i照常对其进行传播。对于参加者i接收并且成功地验证的所有其他(r,1)消息,只有当消息包含的凭证的散列值在该参加者到目前为止接收到并且成功地验证的所有(r,1)消息中包含的凭证的散列值中最小时,该参加者才传播该消息。此外,如Georgios Vlachos所建议的,每个潜在领导者i还分别地传播自己的凭证
Figure BDA00025111871800004613
是有用的:
Figure BDA0002511187180000461
那些小消息行进得比区块更快、确保及时地传播
Figure BDA0002511187180000472
(其中,包含的凭证具有小散列值),同时使具有大散列值的那些凭证迅速消失。
步骤2:分级共识协议GC的第一步骤
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤2。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,2
·如果
Figure BDA0002511187180000473
则i立刻停止他自己对步骤2的执行。
·如果i∈SVr,2,则在等待一定时间量
Figure BDA0002511187180000474
之后,i如下行动。
1.i发现用户l,使得对于是他到目前为止接收到的成功地验证的(r,1)消息的一部分的所有凭证
Figure BDA0002511187180000476
13
2.如果i从l接收到有效消息
Figure BDA0002511187180000478
14则其设置
Figure BDA0002511187180000479
否则,i设置
Figure BDA00025111871800004710
3.i计算消息
Figure BDA00025111871800004711
15销毁他的临时秘密密钥
Figure BDA00025111871800004712
并且然后传播
Figure BDA00025111871800004713
步骤3:GC的第二步骤
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤3。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,3
·如果
Figure BDA00025111871800004714
则i立刻停止他自己对步骤3的执行。
·如果i∈SVr,3,则在等待一定时间量
Figure BDA00025111871800004715
之后,i如下行动。
1.如果存在值v′≠⊥使得在i接收到的所有有效消息
Figure BDA00025111871800004716
中,多于2/3的这些消息具有形式
Figure BDA00025111871800004717
而没有任何矛盾,16则i计算消息
Figure BDA00025111871800004718
否则,i计算
Figure BDA00025111871800004719
Figure BDA0002511187180000471
2.i销毁他的临时秘密密钥
Figure BDA0002511187180000482
并且然后传播
Figure BDA0002511187180000483
步骤4:GC的输出和BBA*的第一步骤
针对每个用户i∈PKr-k:的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤4。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,4
·如果
Figure BDA0002511187180000484
则i立刻停止他自己对步骤4的执行。
·如果i∈SVr,4,则在等待一定时间量
Figure BDA0002511187180000485
之后,i如下行动。
1.i计算GC的输出vi和gi,如下。
(a)如果存在值v′≠⊥使得在i接收到的所有有效消息
Figure BDA0002511187180000486
中,多于2/3的这些消息具有形式
Figure BDA0002511187180000487
则i设置
Figure BDA0002511187180000488
并且
Figure BDA0002511187180000489
(b)否则,如果存在值v′≠⊥使得在i接收到的所有有效消息
Figure BDA00025111871800004810
中,多于1/3的这些消息具有形式
Figure BDA00025111871800004811
则i设置
Figure BDA00025111871800004812
并且
Figure BDA00025111871800004813
17
(c)否则,i设置
Figure BDA00025111871800004814
并且
Figure BDA00025111871800004815
2.i计算BBA*的输入bi,如下:
如果gi=2,则
Figure BDA00025111871800004816
否则
Figure BDA00025111871800004817
3.i计算消息
Figure BDA00025111871800004818
销毁他的临时秘密密钥
Figure BDA00025111871800004819
并且然后传播
Figure BDA00025111871800004820
步骤s,5≤s≤m+2、s-2≡0mod 3:BBA*的Coin-Fixed-To-0步骤
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤s。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,s
·如果
Figure BDA00025111871800004821
则用户i立刻停止他自己对步骤s的执行。
·如果i∈SVr,s,则i如下行动。
Figure BDA0002511187180000481
-i一直等到一定时间量
Figure BDA0002511187180000492
过去。
-结束条件0:如果在这样的等待期间且在任何时间点,存在字符串v≠⊥和步骤s'使得
(a)5≤s′≤s、s′-2≡0mod 3,即,步骤s是Coin-Fixed-To-0步骤,
(b)i接收到至少
Figure BDA0002511187180000493
条有效消息
Figure BDA0002511187180000494
18并且
(c)i接收到有效消息
Figure BDA0002511187180000495
其中,
Figure BDA0002511187180000496
则i立刻停止他自己对步骤s(并且事实上是第r轮的步骤)的执行,而不传播任何内容;设置
Figure BDA0002511187180000497
并且将他自己的CERTr设置为子步骤(b)的消息
Figure BDA0002511187180000498
的集合。19
-结束条件1:如果在这样的等待期间且在任何时间点,存在步骤s'使得
(a')6≤s′≤s,s′-2≡1mod 3,即,步骤s'是Coin-Fixed-To-1步骤,并且
(b')i接收到至少tH条有效消息
Figure BDA0002511187180000499
20
则i立刻停止他自己对步骤s(并且事实上是第r轮的步骤)的执行,而不传播任何内容;设置
Figure BDA00025111871800004910
并且将他自己的CERTr设置为子步骤(b')的消息
Figure BDA00025111871800004911
的集合。
-否则,在等待结束时,用户i进行以下各项。
i将vi设置为其接收到的所有有效
Figure BDA00025111871800004912
的第二部件中vj’s的多数选票。
i如下计算bi
如果i接收到的所有有效
Figure BDA00025111871800004913
中多于2/3具有形式
Figure BDA00025111871800004914
则i设置
Figure BDA00025111871800004915
否则,如果i接收到的所有有效
Figure BDA00025111871800004916
中多于2/3具有形式
Figure BDA00025111871800004917
则i设置
Figure BDA00025111871800004918
Figure BDA0002511187180000491
否则,i设置
Figure BDA0002511187180000501
i计算消息
Figure BDA0002511187180000502
销毁他的临时秘密密钥
Figure BDA0002511187180000503
并且然后传播
Figure BDA0002511187180000504
步骤s,6≤s≤m+2、s-2≡1mod 3:BBA*的Coin-Fixed-To-1步骤
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤s。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,s
·如果
Figure BDA0002511187180000505
则用户i立刻停止他自己对步骤s的执行。
·如果i∈SVr,s,则i进行以下各项。
-i一直等到一定时间量
Figure BDA0002511187180000506
过去。
-结束条件0:与Coin-Fixed-To-0步骤相同的指令。
-结束条件1:与Coin-Fixed-To-0步骤相同的指令。
-否则,在等待结束时,用户i进行以下各项。
i将vi设置为其接收到的所有有效
Figure BDA0002511187180000507
的第二部件中vj的多数选票。
i如下计算bi
如果i接收到的所有有效
Figure BDA0002511187180000508
中多于2/3具有形式
Figure BDA0002511187180000509
则i设置
Figure BDA00025111871800005010
否则,如果i接收到的所有有效
Figure BDA00025111871800005011
中多于2/3具有形式
Figure BDA00025111871800005012
则i设置
Figure BDA00025111871800005013
否则,i设置
Figure BDA00025111871800005014
i计算消息
Figure BDA00025111871800005015
销毁他的临时秘密密钥
Figure BDA00025111871800005016
并且然后传播
Figure BDA00025111871800005017
步骤s,7≤s≤m+2、s-2≡2mod 3:BBA*的Coin-Genuinely-Flipped步骤
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤s。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,s
·如果
Figure BDA0002511187180000512
则用户i立刻停止他自己对步骤s的执行。
·如果i∈SVr,s,则i进行以下各项。
-i一直等到一定时间量
Figure BDA0002511187180000513
过去。
-结束条件0:与Coin-Fixed-To-0步骤相同的指令。
-结束条件1:与Coin-Fixed-To-0步骤相同的指令。
-否则,在等待结束时,用户i进行以下各项。
i将vi设置为其接收到的所有有效
Figure BDA0002511187180000514
的第二部件中vj的多数选票。
i如下计算bi
如果i接收到的所有有效
Figure BDA0002511187180000515
中多于2/3具有形式
Figure BDA0002511187180000516
则i设置
Figure BDA0002511187180000517
否则,如果i接收到的所有有效
Figure BDA0002511187180000518
中多于2/3具有形式
Figure BDA0002511187180000519
则i设置
Figure BDA00025111871800005110
否则,设
Figure BDA00025111871800005111
为i从其接收到有效消息
Figure BDA00025111871800005112
的(r,s-1)验证者的集合。i设置
Figure BDA00025111871800005113
i计算消息
Figure BDA00025111871800005114
销毁他的临时秘密密钥
Figure BDA00025111871800005115
并且然后传播
Figure BDA00025111871800005116
步骤m+3:BBA*的最后步骤21
针对每个用户i∈PKr-k的指令:一知道Br-1,用户i就开始他自己的第r轮的步骤m+3。
·用户i根据Br-1的第三部件计算Qr-1,并且检查是否i∈SVr,m+3
·如果
Figure BDA00025111871800005117
则i立刻停止他自己对步骤m+3的执行。
·如果i∈SVr,m+2,则i进行以下各项。
-i一直等到一定时间量
Figure BDA00025111871800005118
过去。
-结束条件0:与Coin-Fixed-To-0步骤相同的指令。
Figure BDA0002511187180000511
-结束条件1:与Coin-Fixed-To-0步骤相同的指令。
-否则,在等待结束时,用户i进行以下各项。
i设置
Figure BDA0002511187180000522
并且
Figure BDA0002511187180000523
i计算消息
Figure BDA0002511187180000524
)、销毁他的临时秘密密钥
Figure BDA0002511187180000525
并且然后传播
Figure BDA0002511187180000526
以证实Br22
非验证者对第r轮区块的重构
针对系统中每个用户i的指令:用户i一知道Br-1就开始他自己的第r轮,并且如下等待区块信息。
-如果在这样的等待期间且在任何时间点,存在字符串v和步骤s'使得
(a)5≤s′≤m+3其中,s′-2≡0mod 3,
(b)i接收到至少tH条有效消息
Figure BDA0002511187180000527
并且
(c)i接收到有效消息
Figure BDA0002511187180000528
其中,
Figure BDA0002511187180000529
则i立刻停止他自己对第r轮的执行;设置
Figure BDA00025111871800005210
并且将他自己的CERTr设置为子步骤(b)的消息
Figure BDA00025111871800005211
的集合。
-如果在这样的等待期间且在任何时间点,存在步骤s'使得
(a')6≤s′≤m+3其中,s′-2≡1mod 3,并且
(b')i接收到至少tH条有效消息
Figure BDA00025111871800005212
则i立刻停止他自己对第r轮的执行;设置
Figure BDA00025111871800005213
并且将他自己的CERTr设置为子步骤(b')的消息
Figure BDA00025111871800005214
的集合。
-如果在这样的等待期间且在任何时间点,i接收到至少tH条有效消息
Figure BDA00025111871800005215
则i立刻停止他自己对第r轮的执行、设置
Figure BDA00025111871800005216
并且将他自己的CERTr设置成为针对1和
Figure BDA00025111871800005217
的消息
Figure BDA00025111871800005218
的集合。
Figure BDA0002511187180000521
6具有临时密钥的Algorand
本质上,在Algorand中,区块是在轮次中生成的。在第r轮中
(1)有适当凭证的领导者提出新区块,并且然后
(2)有适当凭证的用户通过几个步骤在提出的区块上运行适当的拜占庭协定(BA)协议。
优选的BA协议是BA*。区块提议步骤可以被认为是步骤1,使得BA*的步骤为2、3、……
只有在系统中的用户中随机地选择的适当用户i有权在第r轮的步骤s中发送消息
Figure BDA0002511187180000531
Algorand非常快速且安全,因为这种用户i检查了他是否有权发言。如果是这种情况,则用户i实际上获得了证明,即凭证。如果轮到i在第r轮的步骤s中发言,则i在网络中传播其凭证
Figure BDA0002511187180000533
和其经过数字签名的消息
Figure BDA0002511187180000532
凭证向其他用户证明这些其他用户应当将消息
Figure BDA0002511187180000534
考虑在内。
供用户i有权在第r轮的步骤s中发言的必要条件是i在几个轮次之前已经在系统中。具体地,第r轮之前k个轮次,其中,k是被称为‘回顾’参数的参数。即,为了有资格在第r轮中发言,i必须属于PKr-k(在第r-k轮中已经在系统中的所有公开密钥/用户的集合)。(用户可以用其公开密钥来识别。)从这个条件可从区块链得到的意义上来说,这个条件很容易验证。
其他条件是
H(SIGi(r,s,Qr-1))<p
其中,p是控制SVr,s(即,有权在第r轮的步骤s中发言的用户的集合)中的验证者的预期数量的给定概率。如果满足这个条件,则i的凭证被定义为
Figure BDA0002511187180000535
当然,只有i可以计算出自己是否属于SVr,s,不知道i的秘密签名密钥的所有其他用户都不清楚这一点。然而,到目前为止,考虑到区块链,如果i∈SVr,s,则i可以通过传播到其凭证
Figure BDA0002511187180000536
来向所有人证明情况就是这样。事实上,回想一下,(1)Qr-1可容易地从先前的区块Br-1计算(尽管是之前本质上不可充分预测的多个区块)并且(2)任何人都可以验证i的数字签名(相对于i在系统中的长期密钥)。
而且,回想一下,到目前为止,在Algorand的版本中,验证者i∈SVr,s相对于临时公开密钥
Figure BDA0002511187180000541
对他的步骤s-第r轮消息
Figure BDA0002511187180000542
进行数字签名,考虑到区块链,任何人都可以实现的该临时公开密钥真正地对应于i和第r轮的步骤s。此“临时签名”由
Figure BDA0002511187180000543
表示,即,使用小写字母,以便通过i的“长期”密钥将该临时签名与i的签名区分开,后者由大写字母表示。
总而言之,SVr,s中的用户在第r轮的步骤s中传播两个单独的消息:(a)他的凭证
Figure BDA0002511187180000544
以及(b)他的经过(临时)数字签名的步骤s-第r轮消息
Figure BDA0002511187180000545
在i这样做之后,i删除其对应于
Figure BDA0002511187180000546
的秘密临时密钥。
临时密钥的这种使用防止了在区块Br产生之后破坏第r轮的足够多的验证者的敌对者能够生成不同的第r轮区块。
回想一下,实际上,步骤1的验证者是潜在领导者,并且这些验证者的步骤1-第r轮消息是他们提出的区块。(第r轮的领导者lr被定义为其散列凭证最小的潜在领导者。在不大可能的平局的情况下,可以选择按字典顺序排第一的潜在领导者。)对于任何步骤s>1,i∈SVr,s的消息
Figure BDA0002511187180000548
是他的“控制消息”,即,他在BA协议BA*中的消息。
将验证者i的凭证从他的(数字签名的)消息
Figure BDA0002511187180000549
中分离出来有两个主要优势:
A1这确保了,在第一步骤(其中,几个潜在领导者传播他们提出的新区块)中,当用户是诚实的时,用户可以快速地识别轮次领导者lr。事实上,所有凭证,并且尤其是步骤1的凭证,都非常小,而提出的区块可以较大。(由lr提出的实际区块可以在不久后被识别出来。)
A2这使得能够实施懒惰的诚实。即,这使得用户i能够事先秘密地意识到他必须在哪些轮次和步骤中行动。
7具有有消息凭证的区块链的Algorand
首先描述Algorand的新实施例,该实施例省去了使用临时密钥用于最终证实区块,而是使用临时密钥用于所有其他步骤。
然后,将描述如何在所有步骤(除了第一步骤即区块提出步骤)中除去Algorand中的临时密钥。
区块提议 新实施例使用与之前相同的步骤1。因此,第r轮的潜在领导者i相对于其对应的临时密钥对他提出的区块
Figure BDA0002511187180000551
进行签名;擦除对应的秘密临时密钥;并且然后传播他自己的凭证和对
Figure BDA0002511187180000552
的签名。
拜占庭协定 在第r轮中,BA协议BA*的每个步骤s保持与之前相同。因此,具体地,验证者i∈SVr,s传播他的凭证和他自己的相对于他的r-s临时公开密钥数字签名的步骤s-第r轮消息
Figure BDA0002511187180000553
并且擦除对应的秘密临时密钥。然而,以下变化适用于第一coin-fixed-to-1步骤的结束条件以及BBA*的所有后续步骤。
假设用户i在这种步骤s中第一次达到结束条件。则情况一定是
·对于某个位b,i接收到至少tH条有效消息
Figure BDA0002511187180000554
其中,相同的是v≠⊥,并且
·i接收到有效消息
Figure BDA0002511187180000555
其中,
Figure BDA0002511187180000556
因此,如果i是SVr,s中的验证者,则在Algorand的先前实施例中,i本来会立刻停止执行并且本来会得知区块Br,i将会针拥有该区块的CERTr。回想一下,CERTr由给定数量的临时数字签名组成。现在将这种CERTr称为Br的‘临时证书凭证’。
在Algorand的新实施例中,用户i可以是PKr-k中的任意用户,其中,k是回顾参数,而不是SVr,s中的验证者(该验证者必然属于PKr-k)。这种任意用户i现在不再停止(模拟)他对第r轮的执行。而是,i使用他的长期秘密密钥产生对数据的签名,从而指示他认为区块B是最终的并且保证签名有适当的机会被适当地纳入考虑。例如,在没有任何有意的限制的情况下,i计算
si=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
sj=SIGi(FINAL,r,s,Qr-1,X)
其中,所有j都是被破坏的用户,并且H(sj)≤p。
(在此应用中,T可以相当小,例如,大约500。之所以这样是因为T签名中的至少一个签名来自诚实用户就足够了。事实上,T可以小得多,因为这就足以经常产生非临时证书,但不一定是针对每个区块。)
还应注意,在新实施例中,敌对者不能通过迫使诚实用户传播由被破坏的用户计算的‘任意有凭证的证实签名’来充斥网络。事实上,尽管任何恶意j∈PKr-k都可以找到某个任意字符串xj使得H(SIGi(FINAL,r,s,Qr-1,xj))<pi,但是通过适当地使用传播规则,签名SIGi(FINAL,r,s,Qr-1,xj)将永远不会被诚实的用户中继。事实上,用户u不仅在(1)j∈PKr-k并且(2)H(SIGi(FINAL,r,s,Qr-1,H(B))<p时转发签名SIGi(FINAL,r,s,Qr-1,H(B)),而且还在(3)H(B)是区块B的散列时转发该签名,u自己看到了该区块的非临时证书。
事实上,可以用以下较弱的条件来替换上述条件3:3'.H(B)是区块B的散列,u自己看到了该区块的可能的临时证书的足够大的子集。
实际上,当诚实用户i看到B的完整临时证书时,那么(在没有分区的情况下)其他诚实用户一定看到了适当步骤的大量验证者所批准的B。这个编号实际上足以识别有机会被非临时地证实的唯一区块。
在其他步骤中消除临时密钥 上述实施例要求对原始Algorand协议进行最少数量的改变。现在解释如何在除了第一步骤以外的每个步骤中避免临时密钥。想法是,对于每个步骤s>1,都没有步骤s验证者。而是,对于每个第r轮,每个用户在内部执行步骤s,就像他是SVr,s中的验证者一样,以便在内部计算他的步骤s-第r轮消息
Figure BDA0002511187180000561
此时,i不是对他的临时密钥
Figure BDA0002511187180000562
进行数字签名
Figure BDA0002511187180000563
而是如下检查他是否有权传播消息
Figure BDA0002511187180000571
首先,i检查他是否在k个轮次之前就在系统中:即,是否i∈PKr-k。如果是这种情况,则i用他的长期密钥以及量Qr-1
Figure BDA0002511187180000572
进行数字签名:例如,对于给定概率p,i计算
Figure BDA0002511187180000573
并且检查此签名的散列是否是≤p。如果是这种情况,则i有权传播
Figure BDA0002511187180000574
并且实际上传播
Figure BDA0002511187180000575
应注意,考虑到
Figure BDA0002511187180000576
每个人都可以验证出i有权传播
Figure BDA0002511187180000577
在步骤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中,所有这些申请均通过援引并入本文。
本文所描述的系统的软件实施方式可以包括存储于计算机可读介质中并且由一个或多个处理器执行的可执行代码。计算机可读介质可以是非暂态的并且包括计算机硬盘驱动器、ROM、RAM、闪速存储器、便携式计算机存储介质(如CD-ROM、DVD-ROM、闪盘驱动器、SD卡和/或具有例如通用串行总线(USB)接口的其他驱动器)和/或可执行代码可以存储在其上并由处理器执行的任何其他适当的有形或非暂态计算机可读介质或计算机存储器。本文所描述的系统可以结合任何适当的操作系统使用。
通过考虑本文公开的本发明的说明书或实践,本发明的其他实施例对于本领域技术人员将是显而易见的。说明书和示例仅被视为是示例性的,本发明的真实范围和精神由所附权利要求指示。

Claims (16)

1.在交易被组织成区块的交易系统中,一种用于供实体相对于一系列先前区块B0,B1,...,Br-1构建有效交易的新区块Br的方法,该方法包括:
使该实体根据这些先前区块确定量Q;
使该实体使用秘密密钥以便计算唯一地与Q和该实体相关联的字符串S;
使该实体根据S计算是以下各项中的至少一项的量T:S本身、S的函数和S的散列值;
使该实体确定T是否拥有给定的属性;以及
如果T拥有该给定的属性,则使该实体对Br进行数字签名并且使S和Br的数字签名版本可用,其中,该实体是基于根据Br的数字签名而变化的随机值来选择的。
2.如权利要求1所述的方法,其中,该秘密密钥是对应于该实体的公开密钥的秘密签名密钥,并且S是该实体对Q的数字签名。
3.如权利要求1所述的方法,其中,T是数字并且在T小于给定数字p时满足该属性。
4.如权利要求2所述的方法,其中,通过使S能够从Br中推断出来使S可用。
5.如权利要求2所述的方法,其中,每个用户在该交易系统中具有余额,并且每个用户的p根据每个用户的余额而变化。
6.如权利要求1所述的方法,其中,该随机值是该实体的数字签名的散列。
7.如权利要求6所述的方法,其中,如果该随机值低于被选择以使该交易系统的最小数量的实体能够对Br进行数字签名的阈值,则选择该实体。
8.一种在区块链系统中选择用户子集以相对于一系列先前区块B0,B1,...,Br-1来验证新区块Br的方法,该方法包括:
使这些用户中的至少一些用户对该新区块Br以及其他信息进行数字签名以产生数字签名;
使这些用户中的至少一些用户确定该数字签名的散列值;
使这些用户中的至少一些用户将该散列值与预定阈值进行比较;以及
响应于该散列值低于这些用户的该子集中的每一个用户的预定阈值而使得这些用户的该子集使该数字签名可用于验证该新区块Br
9.如权利要求8所述的方法,其中,只有当这些用户中的特定用户验证了该新区块Br中提供的信息时,这些用户中的该特定用户才对该新区块Br进行数字签名。
10.如权利要求8所述的方法,其中,选择该预定值以使这些用户的该子集包含最小数量的用户。
11.如权利要求8所述的方法,其中,该区块链系统用于交易被组织成区块的交易系统中。
12.一种在区块链中用于对至少一个数据字符串m进行证实的方法,该方法包括:
使用户集合S验证m是否至少享有某个给定属性;
响应于这些用户对m的验证使用户对m进行数字签名;以及
使这些用户使m的这些数字签名可用,这些数字签名是m的有凭证的签名。
13.如权利要求12所述的方法,其中,如果m的该数字签名满足给定的另外的属性,则该数字签名是有凭证的。
14.如权利要求13所述的方法,其中,如果m的该数字签名的散列小于给定的目标数字,则该数字签名满足该给定的另外的属性。
15.如权利要求12所述的方法,其中,该数据字符串m通过m的至少给定数量的有凭证的签名来证实。
16.一种计算机软件,设置在非暂态计算机可读介质中,该计算机软件包括:实施前述权利要求1至15之一所述的方法的可执行代码。
CN201880076741.4A 2017-09-28 2018-09-28 有消息凭证的区块链 Pending CN111566680A (zh)

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 (1)

Publication Number Publication Date
CN111566680A true CN111566680A (zh) 2020-08-21

Family

ID=65903286

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880076741.4A Pending CN111566680A (zh) 2017-09-28 2018-09-28 有消息凭证的区块链

Country Status (13)

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

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 (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020026575A1 (en) * 1998-11-09 2002-02-28 Wheeler Lynn Henry Account-based digital signature (ABDS) system
US20020062438A1 (en) * 1996-12-13 2002-05-23 Alan Asay Reliance server for electronic transaction system
CN102017510A (zh) * 2007-10-23 2011-04-13 丁素芬 自封闭联合知识证明和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.
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP6355168B2 (ja) * 2015-11-09 2018-07-11 日本電信電話株式会社 ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム
EP3896638A1 (en) * 2016-05-04 2021-10-20 Algorand Inc. Distributed transaction propagation and verification system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020062438A1 (en) * 1996-12-13 2002-05-23 Alan Asay Reliance server for electronic transaction system
US20020026575A1 (en) * 1998-11-09 2002-02-28 Wheeler Lynn Henry Account-based digital signature (ABDS) system
CN102017510A (zh) * 2007-10-23 2011-04-13 丁素芬 自封闭联合知识证明和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.
US20160085955A1 (en) * 2013-06-10 2016-03-24 Doosra, Inc. Secure Storing and Offline Transferring of Digitally Transferable Assets

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蔡维德等: "面向大数据的区块链在清算系统中的应用" *

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7289298B2 (ja) 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法
JP7420890B2 (ja) ブロックチェーンで実施されるイベントロック暗号化の方法及びシステム
Lin et al. A survey of blockchain security issues and challenges.
EP3613189B1 (en) Secure blockchain-based consensus
KR102409819B1 (ko) 분산 거래 전파 및 검증 시스템
CN111566680A (zh) 有消息凭证的区块链
CN110720102A (zh) 用于通用计算的区块链
CN110574059A (zh) 关于区块链的快速分布式共识
EP3966998B1 (en) Hash function attacks
CN110785782A (zh) 使用区块链网络的多轮令牌分发系统和方法
CN113875186A (zh) 知识证明
US20220239501A1 (en) Knowledge proof
EP4184856A1 (en) Blockchain transaction comprising runnable code for hash-based verification
CN111466098A (zh) 用于盲性结果选择的区块链实现的安全系统和方法
CN111566681A (zh) 快速且分区弹性的区块链
Ma et al. Toward data authenticity and integrity for blockchain-based mobile edge computing
Khajehpourdezfoli Mitigating maximal extractable value via multiparty delay encryption
Khajehpour et al. Mitigating MEV via Multiparty Delay Encryption

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40026063

Country of ref document: HK

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200821