CN109196538A - 分布式交易传播和验证系统 - Google Patents
分布式交易传播和验证系统 Download PDFInfo
- Publication number
- CN109196538A CN109196538A CN201780029726.XA CN201780029726A CN109196538A CN 109196538 A CN109196538 A CN 109196538A CN 201780029726 A CN201780029726 A CN 201780029726A CN 109196538 A CN109196538 A CN 109196538A
- Authority
- CN
- China
- Prior art keywords
- user
- block
- entity
- round
- message
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, 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/401—Transaction verification
- G06Q20/4016—Transaction verification involving fraud or risk level assessment in transaction processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0207—Discounts or incentives, e.g. coupons or rebates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3239—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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/3255—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/46—Secure multiparty computation, e.g. millionaire problem
- H04L2209/463—Electronic voting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Power Engineering (AREA)
- Technology Law (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Storage Device Security (AREA)
Abstract
在交易按区块进行组织的交易系统中,实体相对于先前区块的序列构建有效交易的新区块,其通过使所述实体从先前区块确定量Q;使所述实体使用秘钥计算与Q和所述实体唯一相关联的串S;使所述实体从Q计算至少为下述之一的量T:S本身、S的函数和/或S的哈希值;使所述实体确定T是否具有给定性质;及如果T具有给定性质,使所述实体数字签署新区块并使S和新区块的数字签署版可用。秘钥可以是对应于所述实体的公钥的秘密签署密钥。S可以是所述实体对Q的数字签名。
Description
相关申请交叉引用
本申请要求下列专利申请的优先权:2016年5月4日申请的、名称为“ALGORAND:AVERY EFFICIENT MONEY PLATFORM”的美国临时申请62/331,654;2016年5月9日申请的、名称为“ALGORAND:A VERY EFFICIENT MONEY PLATFORM”的美国临时申请62/333,340;2016年5月31日申请的、名称为“ALGORAND:THE EFFICIENT BLOCK CHAIN”的美国临时申请62/343,369;2016年6月2日申请的、名称为“ALGORAND THE EFFICIENT BLOCK CHAIN”的美国临时申请62/344,667;2016年6月7日申请的、名称为“ALGORAND THE EFFICIENT BLOCK CHAIN”的美国临时申请62/346,775;2016年6月16日申请的、名称为“ALGORAND THE EFFICIENT ANDDEMOCRATIC LEDGER”的美国临时申请62/351,011;2016年6月22日申请的、名称为“ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER”的美国临时申请62/353,482;2016年6月24日申请的、名称为“ALGORAND THE EFFICIENT AND DEMOCRATIC LEDGER”的美国临时申请62/354,195;2016年7月19日申请的、名称为“ALGORAND THE EFFICIENTANDDEMOCRATICLEDGER”的美国临时申请62/363,970;2016年8月1日申请的、名称为“ALGORAND THEEFFICIENT AND DEMOCRATIC LEDGER”的美国临时申请62/369,447;2016年8月24日申请的、名称为“ALGORAND THE EFFICIENT公共账本”的美国临时申请62/378,753;2016年9月2日申请的、名称为“ALGORAND”的美国临时申请62/383,299;2016年9月13日申请的、名称为“ALGORAND”的美国临时申请62/394,091;2016年9月27日申请的、名称为“ALGORAND”的美国临时申请62/400,361;2016年10月3日申请的、名称为“ALGORAND”的美国临时申请62/403,403;2016年10月20日申请的、名称为“ALGORAND”的美国临时申请62/410,721;2016年11月3日申请的、名称为“ALGORAND”的美国临时申请62/416,959;2016年11月16日申请的、名称为“ALGORAND”的美国临时申请62/422,883;2017年2月6日申请的、名称为“ALGORAND”的美国临时申请62/455,444;2017年2月14日申请的、名称为“ALGORAND”的美国临时申请62/458,746;以及2017年2月16日申请的、名称为“ALGORAND”的美国临时申请62/459,652;所有这些申请的内容均通过引用组合于此。
技术领域
本申请涉及电子交易领域,尤其涉及分布式公共账本、使交易区块序列的内容安全及电子支付的验证领域。
背景技术
公共账本是可由每一人读取及添加的、防止纂改的数据序列。共享的公共账本准备使现代社会运转的方式彻底变革。它们可按所有类型的传统交易如支付、资产转移和产权交易的精确顺序保护这些传统交易,及使能全新的交易如虚拟货币和智能合约。它们在新的信任模式下可抑制腐化、消除中间人及招待员。公共账本在构建支付系统和虚拟货币方面的使用特别重要和有吸引力。
在比特币和其它现有分布式系统中,用户具有数字签名方案的公钥(并知道对应的秘钥)。对每一密钥赋予人性并将其认为是用户是有用的。实际上,系统中的公钥已知,但那些密钥背后的用户并不被直接知道,为用户提供某种程度的隐私。金钱与每一公钥直接相关联。在每一时间点,如可从迄今的区块序列推论的,每一公钥拥有给定数量的金钱。从一公钥(“付款人”)到另一公钥(“受款人”)的支付被付款人数字签署。类似地,所有交易均被数字签署。此外,为了有效,支付必须转移不超过付款人此时拥有的金钱的数量。支付(及更一般地,交易)按区块进行组织。如果所有其支付(和交易)全体有效,则区块有效。也就是说,在给定区块中由任何付款人支付的金钱总量不超出那时付款人可用的金钱量。比特币是不需要准入的系统。也就是说,其使新用户能自由加入该系统。当新用户表现为(有效)区块中的支付的受款人时,他加入该系统。因而,在比特币中,用户可通过拥有多个密钥而增强他享有的任何隐私,他可使用多个密钥用于不同类型的支付。在无需准入的系统中,他能通过将一些金钱从他拥有的一个密钥转移到新的密钥而容易地增加他的密钥数量。无需准入是重要的性质。无需准入的系统也可用作需要准入的系统,但反过来并不需要如此。在需要准入的系统中,新用户不能自动加入,而是必须被批准。(需要准入的系统的特殊情形是其中用户固定的情形)。无需准入的系统更适用及更现实可行,但也更富挑战性。在比特币及类似分布系统中,用户通过传播消息(即通过“传言”)通信。消息被发送给几个随机选取的“邻居”,每一邻居进而将这些消息发送给几个随机的邻居,依此类推。为了避免循环,一个用户不能发送同一消息两次。分布式(或共享)账本由迄今产生的(有效)交易的区块序列组成。通常,第一区块,即创世区块,被假定为常识,通过成为系统说明书的一部分。共享账本在新区块“被产生”的方式方面不同。
然而,如当前实施的,公共账本未实现它们的巨大潜力。集中式公共账本将所有信任放在单一实体上,其可任意地拒绝宣传给定密钥进行的支付,且非常易于遭受网络攻击。实际上,一旦单一中央机构受到损害,整个系统也受到损害。分散式系统如比特币运行成本非常高,耗费计算及其它有价值的资源,将权力集中在新的实体(矿工)的手中,遭受相当多的模糊(分叉),及具有长等待时间和小吞吐量。其它分散式实施为许可实施,或者假设惩罚不规矩用户的能力,或者二者,和/或相信部分用户在适当长时间免除网络攻击。
因而需要提供公共账本及电子金钱系统,其不需要信任中央机构及不遭受已知分散方法的低效率和不安全。
发明内容
根据在此描述的系统,在交易按区块进行组织的交易系统中,通过下述过程相对于先前区块的序列B0,...,Br-1构建有效交易的新区块Br:使该实体从先前区块确定量Q;使该实体使用秘钥计算与Q和该实体唯一相关联的串S;使该实体从S计算至少为下述之一的量T:S本身、S的函数及S的哈希值;使该实体确定T是否具有给定性质,如果T具有给定性质,使该实体数字签署Br并使S和Br的数字签署版可用。秘钥可以是对应于所述实体的公钥的秘密签署密钥,及S可以是所述实体对Q的数字签名。T可以是一个数的二进制展开并可在T小于给定数字p时满足所述性质。S可通过使得S可从Br推导而被使得可用。每一用户在交易系统中可具有结余,及p可根据每一用户的结余针对每一用户变化。
进一步根据在此描述的系统,在交易按区块进行组织及区块通过一组数字签名进行核准的交易系统中,给定先前区块的序列B0,...,Br-1,实体通过下述过程核准交易的新区块Br:使该实体从先前区块确定量Q;使该实体计算Q的数字签名S;使该实体从S计算至少为下述之一的量T:S本身、S的函数及S的哈希值;使该实体确定T是否具有给定性质,如果T具有给定性质,使该实体使得S可由其它实体获得。T可以是一个数的二进制展开并可在T小于预定阈值p时满足给定性质,及所述实体也可使S可获得。实体可在交易系统中具有结余,及p可根据该实体的结余变化。该实体可用作至少另一实体的授权代表。p的值可取决于该实体的结余和/或该实体的结余与另一实体的结余的组合。另一用户可使用数字签名授权该用户。该实体可仅在Br为给定的一组实体执行的拜占庭(Byzantine)协定协议的输出时数字签署Br。在所述实体中的特定实体的数字签名具有通过先前区块确定的、满足给定性质的量时,所述实体中的特定实体可属于所述给定的一组实体。
进一步根据在此描述的系统,在交易按所产生和数字签署的区块的序列B0,...,Br-1进行组织的交易系统中,其中每一区块Br包含将要保护的一些信息INFOr并包含安全信息Sr,区块的内容被防止在每次产生新区块Bi时被不可检测地改变,将Bi的信息INFOi插入到二叉树的叶子内,对二叉树进行默克尔(Merkle)化以获得默克尔树Ti,及确定区块Bi的安全信息Si以包括Ti的根的内容Ri和Ti中叶子i的内容的认证路径。前一区块Bi1的安全信息Si1可被保存,及安全信息Si可通过在预先确定的序列中对来自包括至少下述之一的一组值的值进行哈希获得:Si1的值、INFOi的哈希值及给定值。第一实体可向具有区块Bz的安全信息Sz的第二实体证明在区块Bz前面的区块Br的信息INFOr可信,使得第二实体在默克尔树Tz中接收INFOi的认证路径。
进一步根据在此描述的系统,在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,实体E在第r个区块Br时提供关于用户i已进行和接收所有支付之后用户i可用的结余ari的核对信息,其通过下述过程进行:从可从区块序列B0,...,Br-1中指定的信息推导的信息为每一用户x计算数额ax;在第r个区块时计算系统中用户的数量n;Br被使得可获得;按给定顺序对用户x排序;对于每一用户x,如果x是给定顺序中的第i个用户,将存储在具有至少n个叶子的二叉树T的叶子i中;针对树T确定默克尔值以计算存储在T的根处的值R;产生认证R的数字签名S;及通过提供是T的叶子l与根之间的路径中的一节点的兄弟的每一节点的内容而使得S可用作T的任何叶子i的内容的证明。
进一步根据在此描述的系统,在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,一组实体E在第r个区块Br时提供使一用户能验证用户i已进行和接收所有支付之后用户i可用的结余ai的信息,其通过下述过程进行:在前r个区块的支付之后确定每一用户i的结余;产生默克尔平衡查找树Tr,其中每一用户的结余为Tr的至少一节点的将要保护的值;使实体集合的每一成员产生包括Tr的根的安全值hvε的信息的数字签名;及提供hvε的数字签名以在前r的支付之后证明至少一用户的结余。实体集合可由一个实体组成。实体集合可基于其数字签名的值进行选择。
进一步根据在此描述的系统,在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,实体E在第r个区块Br时证明用户i已进行和接收所有支付之后用户i可用的结余ai,其通过下述过程进行:获得默克尔平衡查找树Tr的根的安全信息hvε的一组实体的成员的数字签名,其中每一用户的结余是Tr的至少一节点的信息值;计算给定查找算法处理的每一节点的认证路径及内容以在Tr中查找用户i;及提供认证路径和内容及数字签名以使另一实体能够验证i的结余。
进一步根据在此描述的系统,被提供在非一次性计算机可读介质中的计算机软件包括实施在此描述的任何方法的可执行代码。
共享公共账本应产生交易的区块的公共序列,其内容是安全的并可被容易地证明。本发明因而提供一种产生区块的公共序列的新方式Algorand,具有保护区块序列的内容的新方式Blocktree(区块树),其也使能容易地证明它们的内容。
Algorand在高层次,设B1,...,Br-1为前r-1个区块,在Algorand中,新区块Br通过下面的两个(大)步骤产生:
-用户/区块领导(出块者)lr随任务被随机地选择和信任以聚集有效交易的新区块Br、认证该新区块及通过网络传播该新区块。如果由诚实的领导lr提出,区块Br包括lr看到的所有新的有效交易。
-用户的子集Cr,全体被考虑为“委员会”,被随机选择和委派任务以达成lr提出的区块的共识、对其认证及将它们的认证传播到网络。仅在区块被适当证明时即由Cr的至少给定数量的经证实的成员数字签署时,区块才进入公共账本。
我们现在详细说明怎样选择公钥、Cr怎样达成共识、及怎样选择证明一区块所需要的给定数量的数字签名。
优选地,经秘密加密抽签(secret cryptographic sortition)将一公钥选择为区块Br的领导或者所述委员会的一成员。实质上,用户通过碰巧而选择他自己,使得(a)他不能欺骗(即使他曾想欺骗)及不能以比预见的概率高的概率选择他自己;(b)获得被选中的证明Pi,其可由每一人进行检查;(c)他是唯一知道他已被选中的人(直到他决定向其他人揭露他被选中为止,通过展现他的证明Pi)。
为增强他拥有的公钥被选中的机会,用户可能试图增加他拥有的公钥的数量(所谓的女巫(Sybil)攻击),这在无需准入的系统中非常容易做到,如已经讨论的。为防止这样的攻击,所选的秘密加密抽签确保给定公钥将被选中的概率与其拥有的金钱成正比。这样,无论用户将其所有金钱与单一密钥相关联还是将其金钱跨几个密钥分布,用户具有同样的使其公钥之一被选中的概率。(具体地,用户在单一密钥中拥有例如一百万美元与用户拥有一百万个密钥且每一密钥具有一美元,具有同样的被选中机会)。
更精确地,为确定他拥有的公钥pk是否被选中为领导或者委员会成员,用户(经对应的秘钥sk)数字签署一些可从所有先前区块得到的信息。在优选实施例中,他实际上数字签署可从前一区块Br-1得到的量Qr、对其进行哈希并检查哈希值是否小于给定(概率)阈值p(取决于用户的公钥拥有的金钱数量)。如果是,则用户的该数字签名可用作公钥pk已被选中的证明。实际上,每一人均可检查用户签名、对其进行哈希、及将其与给定阈值p进行比较。
通过改变选择阈值p,对于每一角色,系统控制多少用户被选择。让我们首先考虑选择委员会Cr的公钥。例如,假定在系统中有一百万(1M)个密钥,每一密钥拥有同样数量的金钱,及我们希望CR具有大约一千(1K)个成员。则我们可将p=1/1,000选择为公共选择阈值。实际上,签名的哈希可被当作0与1之间的随机数的二进制展开,因而将小于或等于1/1,000,具有等于p=1/1,000的概率。因而,所选用户的总预期数量将为1M/1K=1/1K。如我们将看到的,当不同的公钥拥有不同数量的金钱时,我们仍能实现选择给定数量的委员会成员。
让我们现在考虑为第r个区块选择单一领导lr。则系统可首先使用秘密加密抽签选择例如100个公钥,然后让领导为其(哈希的)证明较小的公钥。更精确地,仅为简单起见,假定所选的密钥为pk1,...,pk100,及它们对应的选择证明为P1,…,P100。则,每一被选密钥的拥有者i汇集其自己的新的有效交易的区块并传播Pi及经适当认证的区块然后,领导lr将为其证明按词典编辑较小的密钥,及区块Br将为委员会Cr达成共识将其作为lr提出的区块的区块。
使用秘密加密抽签选择区块领导的一个大优点在于,监视系统的活动并能够成功地控制他想要控制的任何用户的敌手不能容易地腐化领导lr以选择lr提出的区块。实际上,当100个潜在领导因他们自己的运气秘密选择他们自己时,敌手不知道(预期的)100个公钥将是谁。然而,一旦每一i传播其凭证和提出的区块,,敌手可快速地得出谁是领导lr。但在该点腐化他几乎没有好处。他的区块和证明在网络上病毒式传播且不能停止。(没有单一民族国家能放回瓶中原处,比方说由WikiLeaks发送的消息)。敌手仍可有最后一步棋。即,他可腐化lr并接过他的控制、强使他汇集、认证和传播不同的区块。然而,即使这样的机会也将对敌手关闭。实际上,用户保持其使用的秘密签署密钥认证其支付和交易及产生其选择证明(当他被选中时)。但他在被选择为领导时使用一组不同且一次性(短生)的密钥认证其提出的区块。更精确地,他提前选择一组例如1M个公钥-秘钥对并保持他可能仍然使用的每一秘钥安全。本发明系统保证任何人均可认识到是相对于i能签署提出的第r个区块的、唯一可能的公钥,任何人均可相对于验证i的数字签名,但只有i可产生这样的签名,因为他是唯一知道对应的秘钥的人。如果i诚实并被选择提出区块则i相对于其公钥对数字签署它,并在其后立即销毁这样,如果敌手成功腐化i,他将找不到他能迫使现在已被腐化的i认证第二且不同的区块所必须使用的秘钥对于委员会成员存在同样的优点。我们现在看委员会Cr的成员对领导lr传播的区块怎样达成共识。
Cr对新提出的区块达成共识的优选方式是经拜占庭协定(Byzantine agreement,BA)。BA协定是使固定的一组参与者(每一参与者以其自己的值开始)能对公共值达成共识的通信协议。如果参与者遵循所有其规定的指令,则他为诚实参与者;否则他为恶意参与者。恶意参与者可被单一实体即敌手控制和完美地协调。只要仅一小部分如1/3参与者为恶意参与者,BA协议满足两个基本性质:(1)所有诚实参与者输出同样的值;及(2)如果所有参与者以同样的输入值开始,则所有诚实参与者输出该值。
在无需准入的分布式账本系统中使用BA有几个难题。主要难题是BA协议非常慢。(通常,BA协议最多涉及几打用户)。Algorand借助于新的协议克服该难题,其在最坏情形下预期仅需要9步。此外,在这些步骤的每一步骤中,参与的参与者仅需要传播单一且短的消息。
然而,剩下不同的难题。由于对新区块达成拜占庭协议需要一个以上步骤,尽管敌手可能不能在委员会成员开始发送他们的第一消息之前攻击他们(因为他们经秘密加密抽签选择他们),他能在这些成员在BA协议中传播他们的第一消息之后腐化委员会Cr的所有成员。实际上,随着他们的第一消息,他们还传播他们属于委员会的证明。幸运的是,本发明的共识协议享有另外且新的优点:其是参与者可替换的协议。也就是说,该协议的预期的几步中的每一步可由不同组的参与者执行,其不必与被选择执行任何先前步骤的参与者共享任何秘密信息或任何隐藏的内部状态。实际上,Algorand的共识协议为无状态的拜占庭协定(BA)协议。因而,不同组的用户可经秘密加密抽签选择来运行新BA协议的每一步。
剩下一个最后的难题。如我们已看到的,公钥通过数字签署已经被公众知道的量Qr(其优选为先前区块Br-1的一部分)并验证它们的签名是否满足特殊性质即其哈希必须小于给定选择阈值而选择它们自己在产生区块Br时具有作用。问题在于,由于Algorand为无需准入的系统,敌手可持续产生许多公钥-秘钥对,直到他找到其Qr的签名具有所需性质的公钥-秘钥对为止。随着他找到这样的密钥,他可将该密钥带入系统,以保证他的密钥之一是负责选择区块Br的领导,或者委员会Cr的大多数包含他控制的密钥,从而使他能够颠覆BA性质。为防止这种可能性。Algorand依赖于双管齐下的策略。首先,其不允许新引入的密钥有资格被立刻选择为区块领导或委员会成员。而是,为在产生区块Br时起作用,密钥pk必须绕一会儿。更精确地,其必须首次出现在区块Br-k中或者较旧的区块中,其中k为足够大的整数(例如,当金钱的至少80%在诚实的手中时,在每一我们的具体实施方式中,k=70足够)。其次,他依据先前的量Qr-1归纳地确定Qr。更精确地,在我们的优选实施例中,Qr为(Qr-1,r)对的区块Br的领导的哈希数字签名。该数字签名被实际上使得为区块Br-1的明确的部分。这起作用的原因如下。当敌手在某一区块Br-k中决定通过从他控制的公钥向pk进行支付而将新密钥pk引入系统时,pk可对其起作用的最早区块为Br。但我们将证明,在Br之前的k个区块,没有任何人可预测什么Qr-1将明显好于随机猜测的量。因此,敌手不能以任何战略方式选择pk。
区块树(及状态树(statustree))区块链保证其区块的防纂改性,但也使对其区块的操作(例如证明给定支付是否为给定区块的一部分)非常麻烦。共享公共账本不是区块链的同义词,并将实际上受益于更好的构造区块的方式。Algorand与传统区块链一起工作,但具有新的构造信息区块的方式即区块树。该创造性方式可独立感兴趣。
区块树的主要优点在于使能高效地证明各个过去的区块的内容,而不必展现整个区块链。
我们经默克尔树的新颖应用构建区块树。
此外,在分布式支付系统情形下,其中支付将金钱从一公钥转移到另一公钥,及支付按区块序列进行组织。我们提供高效的方法证明在前r个区块的支付之后多少结余(账户上的金钱)可用于给定密钥。我们将这些方法称为状态树。
附图说明
在此所述的系统的实施例结合附图进行更详细地说明,附图简要说明如下。
图1为根据在此描述的系统的实施例的网络和计算站的示意性表示。
图2为Algorand系统的第一步的示意性和概念性概要,其中提出交易的新区块。
图3为Algorand系统中新区块的协议和认证的示意性和概念性概要。
图4为默克尔树及其节点之一中包含的值的认证路径的示意图。
图5为对应于区块树中构建的第一批区块的默克尔树的示意图。
图6为足以构建区块树中的第一批区块的安全信息的值的示意图。
具体实施方式
在此描述的系统提供一种用于分布交易验证和传播的机制,使得没有实体单独负责执行验证和/或传播交易信息的计算。而是,每一参与实体在所执行的计算中共享以按可验证和可靠的方式传播交易。
参考图1,该图示出了连接到数据网络24如因特网的多个计算工作站22a-22c。工作站22a-22c经网络24彼此通信以提供分布式交易传播和验证,如本说明书别处更详细描述的。该系统可容纳任何数量的、能够提供在此描述的功能的工作站,假定工作站22a-22c能够彼此通信。工作站22a-22c中的每一个可独立地执行处理以将交易传播给系统中的所有其它工作站并验证交易,如本说明书别处更详细描述的。
图2示意性和概念性地总结了Algorand系统中r轮次的第一步骤,其中几个被选择的用户中的每一个针对第r个区块提出他自己的候选区块。具体地,该步骤以系统中的用户a,…,z个别地经历秘密加密抽签过程,其决定哪些用户被选中提出区块,及其中每一被选中的用户秘密地计算证明他有权产生一区块的凭证。在图2的例子中,仅用户b、d和h被选中提出区块,及他们分别计算的凭证为和每一被选中的用户i汇集他自己提出的区块一次性地签署它(即用一次性密钥数字签署该区块,如后面阐释的)并连同他自己的凭证传播到网络。该轮次的领导为其凭证具有最小哈希的被选中用户。该图标示领导将为用户d。因而,他提出的区块是将被作为二元协定协议的输入的区块。
图3示意性和概念性地总结了Algorand达成协议并证明所提出的区块为官方的第r个区块Br的过程。由于Algorand的第一步骤由提出新区块组成,该过程以第二步骤开始。该步骤实际上与Algorand的首选拜占庭协定协议BA*的第一步骤一致。该协议的每一步骤由参与者的不同“委员会”执行,通过秘密加密抽签随机选择(未在图中示出)。因而,被选中执行每一步骤的用户可完全不同。BA*的步骤的数量可变化。图3示出BA*的执行涉及7个步骤:从Algorand的步骤2到Algorand的步骤8。在图3的例子中,被选中执行步骤2的用户是a、e和q。每一用户i∈{a,e,q}将其证明i实际上有权在Algorand的r轮次的步骤2中发送消息的凭证及其适合该步骤的一次性签署的消息传播到网络。步骤3-7未示出。在最后的步骤8,该图示出了对Br作为r轮次的官方区块已达成协议的、相应的被选中用户b、f和x传播他们自己的、区块Br的一次性签名(这些签名一起证明Br)及他们自己的证明他们有权在步骤8行动的凭证。
图4示意性地示出了默克尔树及其认证路径之一。具体地,图4.A示出了深度为3的完整默克尔树。每一节点x存储值vx,其中x由长度≤3的二进制串指明。如果x具有≤2的长度,则vx=H(vx0,vx1)。对于图4.A的默克尔树,图4.B示出了值v010的认证路径。
图5示意性地示出了默克尔树,对应于在区块树中构建的前8个区块,在深度为3的完整二叉树内构建。在图5中,通过整数标记的i个节点属于默克尔树Ti。通过i标记的节点的内容(分别通过i)是临时的(分别,永久的)。
仅为简明目的,我们将在本说明书中假定所有交易均为支付,并集中于仅将Algorand描述为金钱平台。本领域技术人员将认识到,Algorand可处理所有类型的交易。
Algorand具有非常灵活设计并可以多种不同但有关的方式实施。我们提供详细描述其一般设计的两个可能实施例说明其灵活性。本领域技术人员从这些实施例可意识到怎样得出所有其它类型的实施。
为有助于理解本发明及允许其多个不同部分的内部交叉引用,我们按编号和加标题的部分组织其呈现。前面的一些部分对两个具体实施例是共同的。
1介绍
金钱日益变得虚拟。已估计约80%的美元今天仅作为账本项存在。其它金融工具正照着做。
在理想世界中,我们可依赖于普遍信任的中心实体、免于所有可能的网络攻击、金钱及其它金融交易可唯一地电子化。遗憾的是,我们并未生活在这样的世界。因而,去中心的数字货币如比特币及“智能合约”系统如Ethereum已被提出。这些系统的核心是共享账本,其以防止纂改的方式可靠地记录交易序列,随支付和合约变化。保证这样的防止纂改性的技术选择是区块链。区块链在应用如数字货币、金融应用及物联网的后面。已提出几种管理基于区块链的账本的技术:工作量证明、权益证明、实用拜占庭容错或一些组合。
然而,目前,账本的管理效率低。例如,比特币的工作量证明方法需要大量计算,浪费且估算差。此外,其实际上将力量集中在非常少数几手中。
因此,我们希望提出实施公共账本的新方法,其提供可信且不可侵犯的机构运行的集中式系统的便利性和效率,而没有当前的去中心实施的低效和弱点。我们将我们的方法称为Algorand,因为我们基于迄今构建的账本使用算法随机性选择一组验证者负责构建有效交易的下一区块。自然地,我们确保这样的选择可证明地免于被操纵及不可预测直到最后一刻为止,而且它们最终普遍地干净。
Algorand的方法非常民主,因为其无论是原理上还是实际上均不产生不同类的用户(诸如比特币中的“矿工”和“一般用户”之类)。在Algorand中,“所有力量归于全部集合用户”。
Algorand的一个显著性质是其交易历史仅可以非常小的概率分叉(例如万亿分之一,甚至10-18)。Algorand还可解决一些法律和政治关注。
Algorand方法应用于区块链,更一般地,应用于任何产生区块的防止纂改的序列的方法。我们实际上提出一种可独立感兴趣的新方法,作为区块链的备选方法且比区块链更有效率。
1.1比特币的假设和技术问题
比特币是非常设计独特的系统并已激发大量随后的研究。然而,其也是有问题的系统。让我们概述其基础的假设和技术问题,这些实际上被基于工作量证明的实质上所有数字货币如比特币共享。
对于该概述,其足以回想起,在比特币中,用户可拥有自己的、数字签名方案的多个公钥,金钱与公钥相关联,及支付是将一定量的金钱从一公钥转移到另一公钥的数字签名。实质上,比特币按区块的链B1,B2,...组织所有处理的支付,每一区块由多个支付组成,使得按任何顺序取得的B1的所有支付之后为B2的按任何顺序的支付等构成有效支付的序列。每一区块平均每10分钟生成。
该区块序列为一个链,因为其构造成确保即使单一区块中的任何变化均渗入所有随后的区块内,使得更容易看出支付历史的任何改动。(如我们将看到的,这通过在每一区块中包括前一区块的密码哈希实现)。这样的区块结构称为区块链。
假设:诚实用户掌握大部分计算能力比特币假设没有恶意实体(也没有经协调的恶意实体同盟)控制专注于区块生成的计算能力的大部分。这样的实体事实上只要想要就能够修改区块链因而重写支付历史。具体地,其可进行支付获得给付的好处、然后“抹除”的任何痕迹。
技术问题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个区块对于所有用户将一样。因而,不能立刻依赖于该链的最后区块中包含的支付。其更审慎地等待并看区块在区块链中是否变得足够深因而足够稳定。
而且,关于比特币,还已提出法律实施和货币政策担心1。
1.2 Algorand,简约地
设置Algorand在非常严格的设置下工作。简要地
(a)无需准入和需要准入的环境。Algorand即使在完全无需准入的环境中也可高效且安全地工作,其中任意多的用户被允许在任何时间加入该系统,而没有任何类型的数据检查和准入。当然,Algorand在需要准入的环境中能更好地工作。
(b)非常敌对的环境。Algorand能承受非常强大的敌手,其可
(1)在他想要的任何时间瞬间腐化他想腐化的任何用户,假定在无需准入的环境中,系统中2/3的金钱属于诚实用户(在需要准入的环境中,不考虑金钱,2/3的用户诚实即足够)。
(2)完全控制和完美协调所有被腐化的用户;及
(3)安排所有消息的递送,假定诚实用户发送的每一消息m在时间λm内到达所有(或足够多的)诚实用户,其仅取决于m的大小。
主要性质尽管存在强大的敌手,在Algorand中
-需要的计算量极少。实质上,无论系统中存在多少用户,1500个用户中的每一个必须最多执行几秒的计算。
-新区块被快速生成并实际上将永不离开区块链。也就是说,Algorand的区块链可能分叉的概率可忽略(即小于万亿分之一或10-18)。因而,只要新区块出现,用户就可转播该新区块中包含的支付。
-所有能力均归于用户自己。Algorand是真正的分布式系统。具体地,没有能够控制哪些交易经过验证的外源实体(如比特币中的“矿工”)。
Algorand的技术
1、新的且快速的拜占庭协定协议。Algorand经创新的密码学、消息传递二元拜占庭协定(BA)协议BA*生成新区块。协议BA*不仅满足一些另外的(我们将要讨论的)性质,而且非常快。粗略地讲,其二元输入版由3步循环组成,其中参与者i发送单一消息mi给所有其它参与者。在完整和同步的网络中执行,2/3以上的参与者诚实,概率>1/3,在每一循环之后,该协议在协定中结束(我们强调协议BA*满足拜占庭协定的原始定义,没有任何弱化)。
在我们的不同通信模型中,Algorand促使该二元BA协议对每一新区块达成共识。被赞同的区块然后经适当验证者的规定数量的数字签名证明并通过网络传播。
2、秘密加密抽签。尽管非常快,当数百万用户参与时,协议BA*将受益于进一步的速度。因而,Algorand将BA*的参与者选择成所有用户集的小得多的子集。为避免不同类型的力量集中问题,每一新区块将被构建并经BA*的新的执行由单独的一组被选验证者SVr协商。原理上,选择这样的一组可能与直接选择Br一样难。
我们通过我们称为“秘密加密抽签”的新方法克服该潜在问题。抽签是从一大组有资格的个人随机选择正式人员的实践。(抽签已被实践多个世纪:例如,由雅典、佛罗伦萨和威尼斯共和国实践。在现代司法系统中,随机选择经常用于选择陪审团。随即采样也已被提倡用于选举)。当然,在去中心系统中,随机选择每组验证者SVr的成员所必要的选择随机硬币成问题。我们因而采取密码学从所有用户群体选择每一验证者集,其被保证是自动(即不需要消息交换)和随机的。按类似的方式,我们选择负责提出新区块Br的领导用户及负责对领导提出的区块达成协定的验证者集SVr。该创新的系统影响可从先前区块的内容推导但即使存在非常强的敌手也不可操纵的一些信息Qr-1。
3、量(种子)Qr。我们使用区块链中的上一区块Br-1自动确定下一组验证者及负责构建新区块Br的领导。该方法的难题在于,通过仅选择先前轮次中的稍微不同的支付,强大的敌手获得对下一领导的极大的控制。即使他仅控制系统中1/1000的参与者/金钱,他也可确保所有领导均为恶意领导(参见直观部分4.1)。该难题是所有权益证明方法的首要问题,就我们了解,迄今为止,其尚未被令人满意地解决。
为解决该难题,我们故意构建并持续更新单独的且小心确定的量Qr,可证明地,其不仅不可预测而且不可被强大敌手影响。我们可将Qr称为第r个种子,因为其来自Algorand经秘密加密抽签选择的Qr,所有用户将在生成第r个区块时扮演特殊角色。种子Qr将可从区块Br-1推导。
4、秘密凭证。为了选择验证者集及负责构建新区块Br的领导,随机及明确地使用当前的上一区块Br-1并不够。因为Br-1必须在生成Br之前知道,可从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在被要求参与到所述协议时遵循所有他规定的指令;及(2)他仅被很少地要求参与到所述协议并具有适当的提前通知,则用户i懒惰但诚实。由于诚实的这样的无拘束的观念,我们甚至可更加确信当我们需要他们时诚实的人就在身边,及Algorand保证在这种情形时,
即使在给定时间点大部分参与参与者均为恶意参与者,该系统也可安全地运行。
2前置条件
2.1密码学前置条件
理想的哈希。我们将依赖于可高效计算的密码学哈希函数H,其将任意长的串映射到固定长度的二进制串。遵循长期的惯例,我们将H建模为随机预言机模型,实质上为将每一可能的串映射到随机且独立选择的、所选(然后固定)长度的二进制串的函数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使用数字签署消息。对于每一可能的消息(二进制串)m,i首先哈希m然后对输入H(m)和ski运行算法S以产生k为字符串
二进制串被称为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清楚。
唯一数字签署。我们也考虑满足下述另外的性质的数字签名方案(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的两个不同数字签名)。
备注
-从唯一签名到可验证的随机函数。相对于具有唯一性性质的数字签名方案,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),然后H(SIGi(m))(例如为将H(SIGi(m))与数p比较)。他可直接计算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的非负数。则(有效)支付为相对于pk的数字签名,指定将a'个金钱单位从pk转移到pk',连同一些另外的信息一起。按符号表示为:
其中I表示被视为有用但不敏感的任何另外的信息(如时间信息和支付标识符),及为被视为敏感的任何另外的信息(如支付原因,可能pk和pk'的拥有者的身份,等等)。
我们将pk(或其拥有者)称为付款人,将每一pk'(或其拥有者)称为受款人,及将a'称为支付的数额。
经支付自由加入。应注意,只要用户想加入,他们可通过产生他们自己的公钥/私钥对加入系统。因而,出现在上面的支付中的公钥pk'可以是之前从未“拥有过”任何金钱的、新产生的公钥。
3、魔力账本。在理想化系统中,所有支付均有效并出现这种多组支付的防纂改列表L中,其“被张贴到空中”供每人看到:
L=PAY1,PAY2,…
每一区块PAYr+1由进行的所有支付的集合组成,因为区块PAYr的出现。在理想系统中,新区块在固定的(或有限的)时间量之后出现。
讨论
-更一般的支付及未用完交易输出。更一般地,如果公钥pk拥有数额a,则pk的有效支付可将数额a'1,a'2,...分别转移到密钥pk'1,pk'2,...,只要∑ja'j≦a。
在比特币及类似系统中,公钥pk拥有的金钱被分为分开的数额,及由pk进行的支付必须整个转移这样的分开的数额a。如果pk希望仅将a的一部分a'<a转移到另一密钥,则其还必须将余额即未用完的交易输出转移到另一密钥,可能pk自己。
Algorand也与具有分开的金额的密钥一起工作。然而,为了聚焦于Algorand的新颖的方面,坚持我们更简单形式的支付及密钥具有单一数额与其相关联在概念上更简单。
-当前状态。理想化的方案不直接提供关于系统的当前状态(即关于每一公钥具有多少金钱单位)的信息。该信息可从魔力账本推导。
在理想系统中,活跃用户持续存储和更新最新的状态信息,或者他必须或从暂存区或从上次他计算它的地方重构它(而且我们随后将说明怎样增强Algorand以使其用户能够以高效的方式重构当前状态)。
-安全性和“隐私性”。数字签名保证没人能够伪造另一用户的支付。在支付中,公钥和数额未被隐藏,但敏感信息被隐藏。实际上,仅出现在中,及由于H为理想的哈希函数,为随机的256位值,因而没有比简单猜测更好的办法来得出是什么。而且,为证明是什么(例如为证明进行支付的原因),付款人可能刚透露所透露的的正确性可通过计算并将所得的值与的前一项比较。实际上,由于H能够抵抗冲突,很难找到第二个值使得
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的幂。
在轮次r>0(的开始),所有公钥的集合为PKr,及系统状态为
其中为公钥i可用的金钱量。应注意,PKr可从Sr推导,及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的支付具有与理想系统中同样的格式和语义学。即
支付在轮次r个别地有效(简称为轮次r支付),如果(1)其数额a小于或等于及(2)其未出现在任何正式交易集PAYr′中,r′<r(如下面阐述的,第二条件意味着尚未生效)。
i的一组轮次r支付全体有效,如果它们的数额的和最多为的话。
交易集。轮次r交易集P为一组轮次r支付,使得对于每一用户i,i在P中的支付(可能没有)全体有效。所有轮次r交易集的集合为如果没有超集的P为轮次r交易集,则轮次r交易集P最大。
我们实际上提出支付还指定轮次ρ,且不能在[ρ,ρ+k]之外的任何轮次有效,对于一些固定的非负整数k而言。3
正式交易集。对于每一轮次r,Algorand公开地选择(以随后描述的方式)单一(可能空的)交易集PAYr作为该轮次的正式交易集(实质上,PAYr表示已“实际”发生的轮次r支付)。
在理想系统(及比特币)中,(1)新用户j进入系统的唯一方式是成为属于给定轮次r的正式交易集PAYr的支付的接受者;及(2)从当前轮次的状态Sr确定下一轮次的状态Sr+1。用符号表示为:
PAYr:Sr→Sr+1
具体地,
1、轮次r+1的公钥集合PKr+1由PKr和在PAYr的支付中首次出现的所有受款人密钥的集合的联合组成;及
2、用户i在轮次r+1拥有的金钱数额为ai(r)的和即i在前一轮次中拥有的金钱数额(如果0)及根据PAYr的支付而支付给i的数额的和。
总之,在理想系统中,每一状态Sr+1可从先前的支付历史推导:
PAY0,…,PAYr
2.4区块及已证明的区块
在Algorand0中,对应于轮次r的区块Br指定:r本身;轮次r的支付集合PAYr;将要进行阐述的量及前一区块的哈希H(Br-1)。因而,从某一固定的区块B0开始,我们具有传统的区块链:
在Algorand中,区块的真实性实际上通过单独的信息“区块证书”CERTr确认,其将Br变为已证明的区块因此,魔力账本通过已证明的区块的序列实施:
讨论:如我们将看到的,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是通过宇宙(Universe)取得的估计的秒数:从宇宙大爆炸(Big Bang)到目前的时间。因而,对于F=10-18,如果区块按秒生成,将预期需要宇宙的年龄那么长时间才能看到分叉。
2.6敌手模型
Algorand设计成在敌手强大的模型中安全。下面进行阐述。
诚实及恶意用户。如果用户遵循所有他的协议指令,则用户诚实并能够完美地发送和接收消息。如果用户可任意地偏离他的规定的指令,则用户为恶意用户(即,拜占庭,在分布式计算的说法中)。
敌手。敌手是高效的(技术上多项式时间)算法,为了生动进行拟人化,其能在他想的任何时间立即使得他想的任何用户成为恶意用户(仅受他能腐化的用户数量的上限约束)。
敌手完全控制和完美协调所有恶意用户。他代表他们采取所有行动,包括接收和发送所有他们的消息,并能以任何方式使他们偏离他们规定的指令。或者,他能简单地隔离被腐化的用户发送和接收消息。需要澄清的是,没有任何别人可自动地知道用户i为恶意用户,尽管恶意可通过敌手使他采取的行动显露。
然而,该强大的敌手
-没有无限的计算能力及不能成功地伪造诚实用户的数字签名,除了可以忽略的概率之外;及
-不能以任何方式干预诚实用户之间的交换。
此外,他的攻击诚实用户的能力受下述假设之一的限制。
好人掌钱(Honest Majority of Money,HMM)。我们考虑好人掌钱的连续假设:即,对于每一非负整数k和实数h>1/2,
HHMk>h:诚实用户在每一轮次r拥有大于系统中在轮次r-k的所有金钱的h的部分。
讨论:假定所有恶意用户完美地协调他们的行动(就像由单一实体即敌手控制一样)是相当悲观的假设。在太多个体之间完美协调很难实现。也许协调仅在分开的多组恶意参与者内出现。但是,由于不能肯定恶意用户可能享有的协调水平,我们最好安全以避免遗憾。
假定敌手可秘密、动态和立即腐化用户也是悲观的假设。毕竟在现实中,取得对用户的操作的完全控制需要花一些时间。
HMMk>h的假设意味着,例如,如果一轮次(平均)在一分钟内实施,则给定轮次的金钱的大部分将在诚实用户手中保留至少2小时,如果k=120;及如果k=10,000,则至少一周。
应注意,HMM假设和先前的诚实用户掌握大部分计算能力的假设有关联,因为计算能力可用金钱购买,如果恶意用户用于大多数金钱,则他们可获得大多数计算能力。
2.7通信模型
我们设想消息传播即“点对点传言”4为通信的唯一手段,及假定每一传播的消息及时到达几乎所有诚实用户。我们实在是假定由诚实用户传播的每一消息m在取决于m长度的给定时间量内到达所有诚实用户(实际上,m到达足够高百分比的诚实用户就满足需要)。
3传统设置下的BA协议BA*
如已经强调的,拜占庭协定是Algorand的关键因素。实际上,通过使用这样的BA协议,Algorand不受分叉影响。然而,为在存在强大敌手的情形下安全,Algorand必须依赖于满足新的参与者可替换性约束条件的BA协议。此外,为了Algorand效率高,这样的BA协议必须非常高效。
BA协议首先针对理想化的通信模型即同步完整网路(synchronouscompletenetworks,SC网络)进行定义。这样的模型使能更简单地设计和分析BA协议。因而,在该部分,我们引入新的BA协议即BA*,用于SC网络并完全忽略参与者可替换性问题。协议BA*为单独价值的贡献。实际上,对于迄今知道的SC网络,其是最有效率的加密BA协议。
为在我们的Algorand协议内使用它,我们对BA*进行一点修改,与考虑我们的不同通信模型和环境。
我们通过回忆其中BA*起作用的模型及拜占庭协定的记法开始。
3.1同步完整网路及匹配敌手
在SC网络中,有公共时钟,其在每一整数时间r=1,2,...报时。
在每一偶数报时r,每一参与者i即刻并同时将单一消息(可能为空消息)发送给包括他自己的每一参与者j。每一在报时r+1由参与者j正确地接收,连同发送者i的身份一起。
再次说明,在通信协议中,如果参与者遵循所有他规定的指令,则参与者诚实;否则参与者恶意。所有恶意参与者被敌手完全控制和完美协调,具体地,其立即接收寻址到恶意参与者的所有消息并选择他们发送的消息。
敌手可在他想的任何奇数报时立即使得他想的任何诚实用户成为恶意用户,仅受恶意参与者的数量的可能上限t的约束。也就是说,敌手“不能干预诚实用户i已经发送的消息”,其将被如常递送。
敌手还具有另外的能力,即在每一偶数轮次即刻看到当前诚实的参与者发送的消息,及即刻使用该信息选择恶意参与者在同一报时发送的消息。
3.2拜占庭协定的记法
拜占庭协定的记法可能首先针对二进制情形引入,即,当每一初始值由一位组成时。然而,其被快速扩展到任意初始值。通过BA协议,我们意指任意值为1。
定义3.1。在同步网络中,设P为n参与者协议,其参与者集合在参与者之间为常识,正整数t使得n≥2t+1。如果对于不包含特殊符号⊥的每组值V(分别地,对于V={0,1}),在至多t个参与者为恶意参与者及其中每一参与者i以初始值vi∈V开始,每一诚实参与者j以概率1停止,输出值outi∈V∪{⊥}以具有至少σ的概率满足下面两个条件,则我们说P为任意值(分别地,二元)(n,t)-拜占庭协定协议具有可靠性(soundness)σ∈(0,1):
1、协定:存在out∈V∪{⊥},使得对于所有诚实参与者,outi=out。
2、一致性:如果对于一些值v∈V,对于所有参与者i,vi=v,则out=v。
我们将out称为P的输出,及将每一outi称为参与者i的输出。
3.3BA记法#
在我们的BA协议中,参与者被要求计数在给定步骤中有多少参与者向他发送给定消息。因而,对于每一可能的可被发送的值v,(或者当s空白时仅#i(v))为i在步骤s已从其接收到v的参与者j的数量。
回想参与者i精确地从每一参与者j接收一消息,如果参与者的数量为n,则对于所有i和s,
3.3新的二元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。[硬币-固定-到-0(Coin-Fixed-To-0)步]每一参与者i发送bi。
1.1如果则i设定bi=0,发送0*,输出outi=0,并停止。
1.2如果则i设定bi=1。
1.3否则,i设定bi=0。
(通信)步骤2。[硬币-固定-到-1步]每一参与者i发送bi。
2.1如果则i设定bi=1,发送1*,输出outi=1,并停止。
2.2如果则i设定bi=0。
2.3否则,i设定bi=1。
(通信)步骤3。[硬币-真正-翻转的步骤]每一参与者i发送bi及SIGi(r,γ)。
3.1如果则i设定bi=0。
3.2如果则i设定bi=1。
3.3否则,使Si={j∈N其在该步3已向i发送适当消息},
i设定将γ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
对于任意值,共识(consensus)的概念远弱于拜占庭协定。
定义3.2。设P为其中所有参与者的集合是常识的协议,及每一参与者i私密地知道任意初始值。
我们称P为(n,t)分级共识协议,如果在具有n个参与者的每一执行中,至多其中t个恶意,每一诚实参与者i停止输出值-级对(vi,gi),其中gi∈{0,1,2},以满足下面三个条件。
1、对于所有诚实参与者i和j,|gi-gj|≦1。
2、对于所有诚实参与者i和jj,
3、如果对于一些值v,v′1=…=v′n=v,则对于所有诚实参与者i,vi=v及gi=2。
协议GC
步2:每一参与者向所有参与者发送v′i。
步3:每一参与者i向所有参与者发送字符串x,如果且仅在时。
输出确定。每一参与者i输出被计算如下的所述对(vi,gi):
-如果对于一些x,则vi=x和gi=2。
-如果对于一些x,则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:如果gi=2,每一参与者i以初始输入0执行BBA*;否则以初始输入1执行BBA*,以计算比特outi。
输出确定:如果outi=0,每一参与者i输出vi;否则输出⊥。
定理3.3。只要n≥3t+1,BA*是可靠性为1的(n,t)-BA协议。
证据。我们首先证明一致性,然后证明协定。
一致性的证据。假定,对于一些值v∈V,v′i=v。则通过分级共识的性质3,在GC执行之后,所有诚实参与者输出(v,2)。因而,0为所有诚实参与者在BBA*执行结束时的初始比特。因而,通过二元拜占庭协定的协定性质,在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的执行之后,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由具有10000个参与者的委员会执行,其已经秘密加密抽签随机选取,因而具有证明有权在步骤x发送消息的凭证。假定在给定步骤中发送的每一消息指明步骤号、被其发送者数字签署并包括证明其发送者有权在该步骤中发言的凭证。
首先,如果诚实参与者的百分比h充分大于2/3(例如75%),则具有压倒性的概率,在每一步骤选择的委员会具有所要求的2/3大多数诚实。
此外,10000-强随机选取的委员会在每一步骤变化的事实不妨碍BBA*或BA*的正确工作。实际上,在任一协议中,步骤s的参与者i仅对多重性作出反应,因为在步骤s-1,他已接收到给定消息m。由于我们处于流言传播网络中,在步骤s-1发送的所有消息将(立即,为了该直观的目的)到达所有用户,包括那些被选择参与步骤s的用户。此外,因为在步骤s-1发送的所有消息指明步骤号并包括证明发送者实际上被认可在步骤s-1发言的凭证,因而,无论他是否碰巧已在步骤s-1中同样被选中,被选中参与步骤s的用户i完美地能够正确地计数多重性,因为他已接收到正确的步骤s-1消息。他是否已参与迄今的所有步骤根本没有问题。所有用户处于“同一只船”上因而可被其它用户容易地替换。
4Algorand的两个实施例
如上所述,在非常高水平,Algorand的一轮(轮次)理想地按如下进行。首先,随机选择的用户(领导)提出并散布新区块(该过程包括初始选择几个潜在的领导然后至少在不错的时间内确保出现单一公共领导)。其次,用户的随机选择的委员会被选择并对领导提出的区块达成拜占庭协定(该过程包括BA协议的每一步由分开选择的委员会运行)。之后,协定的区块被给定阈值(TH)的委员会成员数字签署。这些数字签名被传播使得每人相信其是新区块(这包括散布签署者的凭证,并认证新区块的哈希,确保每人被保证知道该区块,一旦其哈希被使得清楚)。
在接下来的两个部分,我们提出基本Algorand设计的两个实例Algorand′1和Algorand′2,其分别在适当的大部分诚实用户的假设下工作。在部分8,我们示出了怎样将这些实例用于在诚实的大部分用户掌钱的假设下工作。
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提出他自己的候选区块之后,所有用户仅对候选区块之一达成拜占庭协定。按照我们的介绍,采用的BA协议需要2/3的大部分诚实且可替换参与者。每一其步骤可由小的且随机选择的一组验证者执行,这些验证者不共享任何内部变量。
遗憾的是,该方法并不十分有用。因为诚实用户提出的候选区块极可能彼此完全不同。实际上,每一诚实用户看见不同的支付。因而,尽管不同诚实用户看见的多组支付可能具有许多重叠,但不可能所有诚实用户将构建/提出同样的区块。因而,BA协议的一致性协定永远没有约束力,仅协定1有约束力,因而协定可能总是对⊥达成而不是好区块。
Algorand′按如下避免该问题。首先,选择轮次r的领导lr。之后,lr传播他自己的候选区块最后,用户对他们实际从lr接收的区块达成协定。因为,只要lr诚实,完美正确性和完全性1均成立,Algorand′以接近h的概率确保lr诚实。
领导选择。在Algorand中,第r个区块为下面的形式
如已经在介绍中提及的,量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))前面的符号“.”是十进位(在我们的情形下,二进位)点,使得是与i和r唯一关联的0和1之间的随机256位数的二进制扩展。因而ri小于或等于p的概率实质上为p。
概率p被选择成使得,具有压倒性的(即1-F)概率,至少一潜在验证者诚实(实际上,p被选择为最小的这样的概率)。
应注意,由于i为唯一能够计算他自己的签名的人,他独自可确定他是否为轮次1的潜在验证者。然而,通过显露他自己的凭证i能向任何人证明其是轮次r的潜在验证者。
领导lr被定义成其哈希凭证小于所有其他潜在领导j的哈希凭证的潜在领导,即
应注意,由于恶意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,但如果就是这样,他可通过展现他的凭证证明其属于SVr,s。验证者i∈SVr,s在轮次r的步骤s中发送消息及该消息包括他的凭证以使下一步骤的验证者认识到为合法的步骤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诚实,则对应的区块为下面的形式
其中交易集PAYr为最大集(提醒:通过定义,所有交易集全体有效)。
否则(即如果lr恶意),Br具有下面两个可能的形式之一:
和
在第一形式中,PAYr为(不必然最大的)交易集且其可以是及i为轮次r的潜在领导(然而,i可能不是领导lr。这可在lr保持其凭证秘密且不显露他自己时实际上发生)。
第二形式在下述情形下出现:在BA协议的轮次r执行中,所有诚实参与者输出默认值,其在我们的应用中为空区块(通过定义,BA协议的可能输出包括默认值,一般记为⊥。参见部分3.2)。
应注意,尽管交易集在两种情形下均为空,和依照句法在不同的区块并在两种不同的情形下出现:“在BA协议的执行中所有均足够顺滑地进行”和“在BA协议中一些出错,默认值被输出”。
我们现在直观地描述区块Br的生成在Algorand′的轮次r怎样进行。在第一步骤中,每一合格的参与者即每一参与者i∈PKr-k检查他是否是潜在领导。如果是,则i被请求使用他迄今已进行的所有支付及当前区块链B0,...,Br-1以秘密准备最大支付集(交易集)并秘密汇集他的候选区块H(Br-1))。即,他不仅将刚准备的交易集包括在中作为其第二分量,而且包括他自己Qr-1的签名(上一区块Br-1的第三分量)作为其第三分量。最后,他传播他的轮次r步骤1消息其包括(a)他的候选区块(b)他的候选区块的他的适当签名(即的哈希的他的签名);及(c)他自己的证明他实际上是轮次r的潜在验证者的凭证
(应注意,直到诚实i产生他的消息为止,敌手没有i是潜在验证者的线索。如果他希望腐化诚实的潜在领导,敌手也可能腐化随机的诚实参与者。然而,一旦他看见由于其包含i的凭证,敌手知道并能腐化i,但不能阻止到达系统中的所有用户,其被病毒式传播)。
在第二步骤中,每一被选中的验证者j∈SVr,2试图识别该轮次的领导。具体地,j取得步骤1凭证包含在他已接收的适当的步骤1消息中;对所有它们进行哈希,即计算;找到其哈希按字典顺序最小的凭证及将认为是轮次r的领导。
每一考虑的凭证为Qr-1的数字签名,通过i和Qr-1唯一确定SIGi(r,1,Qr-1),H为随机预言函数,因而每一H(SIGi(r,1,Qr-1)为对轮次r的每一潜在领导i唯一的随机256位长字符串。
从这里我们可推断出,如果256位字符串Qr-1本身被随机且独立地选择,则轮次r的所有潜在领导的哈希凭证也是这样。实际上,所有潜在领导均被很好地确定,他们的凭证也是这样(无论是否被实际上计算)。此外,轮次r的潜在领导集合为轮次r-k的用户的随机子集,及诚实的潜在领导i总是适当地构建和传播他的消息其包含i的凭证。因而,由于诚实用户的百分比为h,无论恶意的潜在领导可能做什么(例如揭示或隐瞒他们自己的凭证),最小哈希潜在领导凭证属于诚实用户,其必然被每一人识别而成为轮次r的领导lr。因而,如果256位字符串Qr-1本身被随机且独立地选择,(a)领导lr诚实及(b)对于所有诚实的步骤2验证者j,lj=lr的概率精确地为h。
事实上,哈希凭证是被随机选择,但取决于并非随机且独立地选择的Qr-1。然而,仔细的分析保证Qr-1足够不可操纵以保证轮次的领导以足够接近h的概率h′诚实,即h′>h2(1+h—h2)。例如,如果h=80%,则h′>.7424。
已识别轮次的领导(当领导诚实时他们正确地进行识别)后,步骤2验证者的任务是使用他们相信是领导的区块的初始值开始执行BA*。实际上,为了使需要的计算量最小化,验证者j∈SVr,2不使用他实际上已从lj接收的区块Bj作为他的给拜占庭协议的输入值v′j(用户j被相信是领导),而是该区块的哈希即v′j=H(Bi)。因而,在BA协议终止时,最后步骤的验证者不计算所需的轮次r区块Br,而是计算(认证和传播)H(Br)。因而,由于H(Br)被BA协议的最后步骤的足够多的验证者数字签署,系统中的用户将认识到H(Br)是新区块的哈希。然而,他们还必须取回(或等待,由于执行非常不同步)区块Br本身,协议确保其实际上可获得,无论敌手可能做什么。
异步性和定时。Algorand′1和Algorand′2均具有明显程度的不同步。这是因为敌手在安排被传播的消息的递送方面具有大的自由。此外,无论一轮次中的步骤总数是否封顶,均有实际采取的步骤数量贡献的偏差。
一旦他知道B0,...,Br-1的证书,用户i就计算Qr-1并开始轮次r的工作,检查他是否是潜在领导或者在轮次r的某一步骤s中检查他是否是验证者。
假定i必须在步骤s行动,按照所讨论的不同步,i依赖于多种不同的策略以确保他在行动之前具有足够的信息。
例如,他可能等待从先前步骤中的验证者接收至少给定数量的消息(如在Algorand′1中),或者等待足够的时间以确保他接收先前步骤的足够多的验证者的消息(如在Algorand′2中)。
种子Qr及向后看参数k。理想地,量Qr应随机和独立,尽管它们足够不可由敌手操纵即可满足需要。
乍看上去,我们可选择Qr-1以与H(PAYr-1)一致。然而,基本分析表明,恶意用户可能利用该选择机制。5一些另外的努力展现无数其它备选方案,基于传统的区块量可容易被敌手开发以确保恶意领导非常频繁。5而我们具体并归纳地定义我们的一种新的量Qr以能够证明其不可由敌手操纵。即
如果不是空区块;否则,
这种构建的Qr为什么起作用的直觉知识如下。假定Qr-1被真正随机且独立地选择。则Qr也将是?当lr诚实时,答案为(粗略地讲)“是”。这是因为
是随机函数。然而,当lr恶意时,Qr不再单义地从Qr-1和lr确定。对于Qr,有至少两个分开的值。一个继续为另一个是H(Qr-1,r)。让我们首先辩论的是,在第二选择某种程度上任意的同时,第二选择是绝对强制的。其原因在于恶意lr能总是导致完全不同的候选区块被第二步骤的诚实验证者接收。6一旦这样,容易确保经轮次r的BA协议最终协定的区块将为默认区块,因而将不包含Qr-1的任何人的数字签名。但系统必须继续,为此,需要轮次r的领导。如果该领导被自动和开放地选择,则敌手将琐细地腐化他。如果其经同样的过程通过先前的Qr-1进行选择,则lr将再次为轮次r+1中的领导。我们特别提出使用同样的秘密加密抽签机制,但应用于新的Q量即H(Qr-1,r)。通过使该量为H的输出保证该输出是随机的,及通过将r包括为H的第二输入,同时H的所有其它使用具有或单一输入或至少三个输入,“保证”这样的Qr被独立选择。再次地,我们的备选Qr的具体选择没有关系,有关系的是lr对Qr具有两个选择,因而他可使他的机会翻倍以使另一恶意用户作为下一领导。
对于控制恶意lr的敌手,Qr的选择甚至可能更多。例如,设x,y和z为轮次r的三个恶意潜在领导使得
及特别小。也就是说,小到有好的机会是每一诚实潜在领导的哈希凭证中的较小值。则通过要求x隐藏他的凭证,敌手有很好的机会使y变成轮次r-1的领导。这意味着他对Qr具有另一选择:即H(SIGy(Qr-1),r)。类似地,敌手可要求x和y保留他们的凭证,以使z变成轮次r-1的领导并获得Qr的另一选择:即H(SIGz(Qr-1),r)。
然而,当然,这些及其它选择中的每一个具有非零失败机会,因为敌手不能预测诚实潜在用户的数字签名的哈希。
仔细的、马可夫(Markov)链类分析表明,无论敌手在轮次r-1进行什么选择,只要他不能将新用户注入到系统中,他不能将诚实用户将为轮次r+40的领导的概率降低到远低于h。这是我们要求轮次r的潜在领导为在轮次r-k已经存在的用户的原因。这是确保在轮次r-k,敌手不能对诚实用户变成轮次r的领导的概率改变太多的方式。实际上,无论他在r-k到r的轮次中可能向系统添加多少用户,他们均没有资格成为轮次r的潜在领导(更不要说领导)。因而向后看参数k最终为安全参数(尽管如我们在部分7将看到的,其也可以是一种“方便参数”)。
一次性密钥。尽管我们的协议的执行不能产生分叉,除了可以忽略的概率之外,但敌手可在合法区块Br已被产生之后在第r个区块产生分叉。
粗略地,一旦Br已被产生,敌手已知道谁是轮次r的每一步骤的验证者。因而,他可腐化所有这些验证者并迫使他们证明新区块由于该假冒区块可能仅在合法区块之后传播,已经注意的用户将不会被欺骗。7然而,依照句法将是正确的,因而我们想要阻止其产生。
我们借助于新的规则阻止假冒区块。实际上,轮次r的步骤s的验证者集合SVr,s的成员使用一次性公钥数字签署他们的消息。这些密钥仅单次使用及它们的对应秘钥一旦被使用就被销毁。这样,如果验证者随后被腐化,敌手不能强迫他签署他未初始签署过的任何消息。
自然,我们必须确保敌手不可能计算新的密钥并说服诚实用户这就是验证者i∈SVr,s的正确一次性密钥以在步骤s中使用。
4.2记法、概念和参数的共同摘要
记法
-r≥0:当前轮次数。
-s≥1:轮次r中的当前步骤数。
-Br:在轮次r中生成的区块。
-PKr:到轮次r-1结束为止及轮次r开始时的公钥集合。
-Sr:到轮次r-1结束为止及轮次r开始时的系统状态。8
-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及
和分别为每一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值将在分析中确定。
向后看参数。即,轮次r-k是轮次r的验证者从其进行选择的轮次,即 9
-p1∈(0,1):对于轮次r的第一步骤,轮次r-k中的用户被选中到SVr,1中的概率,
-p∈(0,1):对于轮次r的每一步骤s>1,轮次r-k中的用户被选中到SVr,s中的概率,
-CERTr:Br的证书。其是来自轮次r中的适当验证者的H(Br)的一组tH签名。
是已证明的区块。
如果用户i具有(并成功地验证)已证明的区块的两个部分,用户i知道Br。应注意,不同用户看见的CERTr可能不同。
用户i知道Br时的(本地)时间。在Algorand协议中,每一用户具有其自己的时钟。不同用户的时钟不必同步,但必须具有同样的速度。仅为了分析的目的,我们考虑参考时钟并相对于其测量参与者有关的时间。
和分别为用户i开始和结束他的轮次r的步骤s的执行的(本地)时间。
-∧和λ:实质上,分别为执行Algorand协议的步骤1所需要的时间及执行任何其它步骤所需要的时间的上限。
参数∧对传播单一1MB区块的时间设定上限。
参数λ对在步骤s>1中传播每验证者一个小消息的时间设定上限。
我们假定∧≤4λ。
概念
-验证者选择
对于每一轮次r和步骤s>1,每一用户i∈PKr-k使用他的长期密钥私密地计算他的签名并决定是否i∈SVr,s。如果i∈SVr,s,则SIGi(r,s,Qr-1)为i的(r,s)凭证,紧凑地记为
对于轮次r的第一步骤,SVr,1和被类似地定义,p被p1替换。SVr,1中的验证者为潜在领导。
-领导选择
用户i∈SVr,1为轮次r的领导,记为lr,如果对于所有潜在领导j∈SVr,i, 只要两个参与者的凭证的哈希值被比较,在不同可能发生的关系中,协议总是根据潜在领导(的长期公钥)按词典编纂破坏关系。
按照定义,参与者lr的凭证的哈希值在PKr-k中的所有用户之中也是最小。应注意,潜在领导在没有看到其他潜在领导的凭证的情形下不能私下决定他是否是领导。
由于这些哈希值随机均匀,当SVr,1非空时,lr总是存在并以至少h的概率诚实。参数n1足够大以确保每一SVr,1以压倒性的概率非空。
-区块结构
非空区块的形式为及空区块的形式为
应注意,非空区块可能仍然包含空交易集PAYr,如果在该轮次没有支付出现或者如果领导恶意。然而,非空区块意味着lr的身份、他的凭证及已全部按时显露。协议保证,如果领导诚实,则该区块将以压倒性的概率非空。
-种子Qr
如果Br非空,则否则
参数
-多个不同参数之间的关系
轮次r的验证者和潜在领导从PKr-k中的用户选择,其中k被选择成使得敌手不能以好于F的概率在轮次r-k-1预测Qr-1;否则,他将能够对轮次r-k引入恶意用户,所有这些恶意用户将是轮次r的潜在领导/验证者,在他希望的一些步骤s成功使恶意领导或恶意大部分在SVr,s中。
对于每一轮次r的步骤1,n1被选择成使得,具有压倒性的概率,
-重要参数的示例选择
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的用户诚实。
在部分8,我们展现怎样用大部分金钱诚实的假设替换上面的假设。
5.1另外的记法和参数
记法
在二元BA协议中的最大步骤数,3的倍数。
-Lr≤m/3:表示看到1所需要的伯努利(Bernoulli)试验数量的随机变量,当每一试验以的概率为1及有至多m/3个试验时。
如果所有试验均失败,则Lr将用于设定生成区块Br所需要的时间的上限。
在协议的结束条件中所需要的签名数量。
-CERTr:Br的证书。其是来自轮次r中的适当验证者的H(Br)的一组tH签名。
参数
-多个不同参数之间的关系
--对于轮次r的每一步骤s>1,n被选择成以压倒性的概率使得
|HSVr,s|>2|MSVr,s|及|HSVr,s|+4|MSVr,s|<2n
h的值越接近1,需要的n越小。具体地,我们使用切尔诺夫(Chernoff)边界(的变型)确保所希望的条件以压倒性的概率成立。
--m被选择成以压倒性的概率使得Lr<m/3。
-重要参数的示例选择
--F=10-12。
--n≈1500,k=40和m=180。
5.2在Algorand′1中实施一次性密钥
如已经提及的,我们希望验证者i∈SVr,s相对于一次性公钥使用他在使用后立刻销毁的一次性秘钥数字签署他在轮次r中的步骤s的消息我们因而需要高效的方法确保每一用户可验证事实上是用于验证i对的签名的密钥。我们通过基于身份的签名方案的新用法(就我们了解的)实现前述目的。
在高级时,在这样的方案中,中央机构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为在一轮次内可能出现的步骤数的上限。这样,使得看到i的签名的每一人在r′之后的前百万轮次r均能以压倒性的概率立即验证它。
换言之,i首先生成PMK和SMK。之后,他散布PMK是i在任何轮次r∈[r′,r′+106]的公开主密钥,并使用SMK私密地产生并存储针对每一三方(i,r,s)∈S的秘钥这样做之后,他销毁SMK。如果他确定他不是SVr,s的一部分,则i可不管(因为协议不需要他在轮次r的步骤s认证任何消息)。否则,i首先使用数字签署他的消息然后销毁
应注意,i可在他首次进入系统时散布他的第一公开主密钥。即,将i带入系统(在轮次r′或在接近r′的轮次)的同一支付也可在i的请求下指定i对任何轮次r∈[r′,r′+106]的公开主密钥为PMK,例如通过包括一对(PMK,[r′,r′+106])。
还应注意,由于m+3是一轮次中的最大步骤数,假定一轮次花一分钟,那样产生的一次性秘钥的秘藏(stash)将为i持续几乎两年。同时,这些一次性秘钥将不会花i太长时间来产生。使用具有32B密钥的基于椭圆曲线的系统,每一秘钥在几微秒的时间内计算。因而,如果m+3=180,则所有180M秘钥可在小于一小时的时间内计算。
在当前轮次正接近r′+106时,为处理下一百万轮次,i生成新的(PMK′,SMK′)对,并例如通过使SIGi(PMK′,[r′+106+1,r′+2·106+1])进入新区块而通知一次性密钥的下一秘藏是什么,或作为单独的“交易”或作为是支付的一部分的一些另外的信息。通过这样做,i通知每一人他/她在下一百万轮次应使用PMK′验证i的一次性签名。依此类推。
(应注意,遵循该基本方法,用于实施一次性密钥但不使用基于身份的签名的其它方法肯定可能。例如,经默克尔树。)10
用于实施一次性密钥的其它方法肯定可能,例如经默克尔树。
5.3使Algorand′ 1的步骤与BA*的步骤匹配
如我们所说的,Algorand′ 1中的一轮次具有至多m+3步骤。
步骤1。在该步骤中,每一潜在领导i计算和传播他的候选区块连同他自己的凭证一起。
注意,该凭证明确地识别i。这是因为
潜在验证者i还将他的的适当数字签名作为他的消息的一部分进行传播。不涉及支付或凭证,i的该签名相对于他的一次性公钥即,他传播
给定我们的惯例,而不是传播和他可已传播 然而,在我们的分析中,我们需要明确有权使用
步骤2。在该步骤中,每一验证者i将设定为其哈希凭证最小的潜在领导,及将设定为提出的区块。为了效率,由于我们希望对H(Br)而不是直接对Br达成协定,i以初始值传播他在BA*的第一步骤中已传播的消息。即,他传播v′i,当然在一次性签署它之后(即,在相对于正确的一次性公钥签署它之后,在该情形下其为)。当然,i也传输他自己的凭证。
由于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中间,向他证明区块Br已经被选中的信息到达验证者i∈SVr,s。在该情形下,i停止他自己的对Algorand′的轮次r的执行,并开始执行他的轮次(r+1)指令。
因而,除了对应于BBA*的步骤s-3的指令之外,验证者i∈SVr,s的指令还包括检查BBA*的执行是否已在先前步骤s'中停止。由于BBA*仅可在硬币-固定-到-0步骤中或在硬币-固定-到-1步骤中停止,指令区分是A还是B
A(结束条件0):s'-2≡0 mod 3;或者
B(结束条件1):s'-2≡1 mod 3。
实际上,在情形A,区块Br非空,因而另外的指令是必要的以确保i适当地重构Br,连同其适当的证书CERTr一起。在情形B,区块Br为空,因而i被指令设定并计算CERTr。
如果在步骤s的执行期间,i未看到区块Br已被生成的任何证据,则他发送他应已在BBA*的步骤s-3中发送的同样的消息。
步骤m+3。如果在步骤m+3期间,i∈SVr,m+3看到区块Br已经在先前步骤s'中生成,则他仅按上面说明的继续。
否则,不是发送他应已在BBA*的步骤m发送的同样的消息,i被指令基于他拥有的信息计算Br及其对应的证书CERTr。
注意,实际上,我们通过m+3对一轮次的总步骤数进行上限限制。
5.4实际的协议
注意,在轮次r的每一步骤s中,验证者i∈SVr,s使用他的长期公钥-秘钥对产生他的凭证及SIGi(Qr-1)(在s=1的情形下)。验证者i使用他的一次性秘钥签署他的(r,s)消息为了简单,当r和s清楚时,我们写为esigi(x)而不是来表示i对轮次r的步骤s中的值x的适当的一次性签名,并写为ESIGi(x)代替表示(i,x,esigi(x))。
步骤1:区块提议
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤1。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,1。
-如果则i立刻停止他自己对步骤1的执行。
-如果i∈SVr,1,即如果i为潜在领导,则他收集迄今已传播给他的轮次r支付并从它们计算最大交易集接着,他计算他的“候选区块” 最后,他计算消息销毁他的一次性秘钥之后传播
注释。在实践中,为缩短步骤1的全局执行,(r,1)消息被选择性地传播很重要。即,对于系统中的每一用户i,对于他某时接收并成功验证的第一消息(r,1),11参与者i照常传播它。对于参与者i接收并成功验证的所有其它(r,1)消息,他仅在其包含的凭证的哈希值在他迄今已接收并成功验证的所有(r,1)消息中包含的凭证的哈希值之中最小时才传播它。此外,如Georgios Vlachos提出的,每一潜在领导i还单独传播其凭证是有用的:那些小的消息比区块行进得快,确保其中所包含的凭证具有小哈希值的的及时传播,同时使那些具有大哈希值的快速消失。
步骤2:分级共识协议GC的第一步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤2。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,2。
-如果则i立刻停止其自己对步骤2的执行。
-如果i∈SVr,2,则在等待时间量之后,i按如下行动。
1、他找到l使得对于是他迄今已接收的、被成功验证的(r,1)消息的一部分的所有凭证 12
2、如果他已从l接收有效消息 13则i设定否则i设定
3、i计算消息 14销毁他的一次性秘钥然后传播
步骤3:GC的第二步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r的步骤3。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,3;
-如果则i立刻停止他自己对步骤3的执行。
-如果i∈SVr,3,则在等待时间量之后,i按如下行动。
1、如果存在值v′≠⊥使得,在他已接收的所有有效消息之中,2/3以上为的形式,没有任何矛盾15,则他计算消息否则,他计算
2、i销毁他的一次性秘钥然后传播
步骤4:GC的输出及BBA*的第一步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤4。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,4。
-如果则i立刻停止他自己对步骤4的执行。
-如果i∈SVr,4,则在等待时间量之后,i按如下行动。
1、他按如下计算GC的输出vi和gi。
(a)如果存在值v′≠⊥使得,在他已接收的所有有效消息之中,2/3以上为的形式,则他设定和
(b)否则,如果存在值v′≠⊥使得,在他已接收的所有有效消息之中,1/3以上为的形式,则他设定和 16
(c)否则,他设定和
2、他按如下计算bi,BBA*的输入:
如果gi=2,否则,
3、他计算消息销毁他的一次性秘钥然后传播
步骤s,5≤s≤m+2,s-2≡0 mod 3:BBA*的硬币-固定-到0步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤s。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,s。
-如果则i立刻停止他自己对步骤s的执行。
-如果i∈SVr,s,则他按如下行动。
--他等待直到时间量已过去为止。
--结束条件0:如果在前述等待期间及任何时间点,存在字符串v≠⊥及步骤s'使得
(a)5≤s′≤s,s′-2≡0 mod 3-即,步骤s′为硬币-固定-到0步骤;
(b)i已接收至少个有效消息 17及
(c)i已接收有效消息则i立刻停止他自己对步骤s(及实际上轮次r)的执行,而不传播任何东西;设定及将他自己的CERTr设定为子步骤(b)的消息集合 18
-结束条件1:在前述等待期间及在任何时间点,如果存在步骤s′使得
(a’)6≤s′≤s,s′-2≡1 mod 3-即,步骤s′为硬币-固定-到1步骤;及
(b’)i已接收至少tH个有效消息 19
则i立刻停止他自己对步骤s(实际上及轮次r)的执行,而不传播任何东西;设定及将他自己的CERTr设定为子步骤(b’)的消息集合
否则,在等待结束时,用户i进行下述动作。
他在他已接收的所有有效的第二分量中将vi设定为vj的多数投票。
他计算bi如下。
如果他已接收的所有有效的2/3以上为(ESIGj(0),的形式,则他设定
否则,如果他已接收的所有有效的2/3以上为 的形式,则他设定
否则,他设定
他计算消息销毁他的一次性秘钥然后传播
步骤s,6≤s≤m+2,s-2≡1 mod 3:BBA*的硬币-固定-到-1步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤s。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,s。
-如果则i立刻停止他自己对步骤s的执行。
-如果i∈SVr,s,则他进行下述动作。
--他等待直到时间量已过去为止。
--结束条件0:与硬币-固定-到-0步骤一样的指令。
--结束条件1:与硬币-固定-到-0步骤一样的指令。
--否则,在等待结束时,用户i进行如下动作。
他在他已接收的所有有效的第二分量中将vi设定为vj的多数投票。
他计算bi如下。
如果他已接收的所有有效的2/3以上为的形式,则他设定
否则,如果他已接收的所有有效的2/3以上为 的形式,则他设定
否则,他设定
他计算消息销毁他的一次性秘钥然后传播
步骤s,7≤s≤m+2,s-2≡2 mod 3:BBA*的硬币-真正-翻转的步骤
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤s。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVr,s。
-如果则i立刻停止他自己对步骤s的执行。
-如果i∈SVr,s,则他进行下述动作。
--他等待直到时间量已过去为止。
--结束条件0:与硬币-固定-到-0步骤一样的指令。
--结束条件1:与硬币-固定-到-0步骤一样的指令。
--否则,在等待结束时,用户i进行如下动作。
他在他已接收的所有有效的第二分量中将vi设定为vj的多数投票。
他计算bi如下。
如果他已接收的所有有效的2/3以上为的形式,则他设定
否则,如果他已接收的所有有效的2/3以上为 的形式,则他设定
否则,使为他已从其接收有效消息的(r,s-1)验证者的集合。他设定
他计算消息销毁他的一次性秘钥然后传播
步骤m+3:BBA*的最后步骤20
对于每一用户i∈PKr-k的指令:用户i一知道Br-1就开始他自己的轮次r步骤m+3。
-用户i从Br-1的第三分量计算Qr-1并检查是否i∈SVs,m+3。
-如果则i立刻停止他自己对步骤m+3的执行。
-如果i∈SVr,m+3,则他进行下述动作。
--他等待直到时间量已过去为止。
--结束条件0:与硬币-固定-到-0步骤一样的指令。
--结束条件1:与硬币-固定-到-0步骤一样的指令。
--否则,在等待结束时,用户i进行如下动作。
他设定和
他计算消息销毁他的一次性秘钥然后传播以证明Br。21
非验证者对轮次r区块的重构
对于系统中每一用户i的指令:用户i一知道Br-1就开始他自己的轮次r,并按如下等待区块信息。
-在前述等待期间及在任何时间点,如果存在字符串v和步骤s'使得
(a)5≤s'≤m+3,s'-2≡0 mod 3;
(b)i已接收至少tH个有效消息及
(c)i已接收有效消息
则i立刻停止他自己对轮次r的执行;设定及将他自己的CERTr设定为子步骤(b)的消息的集合。
-在前述等待期间及在任何时间点,如果存在步骤s'使得
(a’)6≤s'≤m+3,s'-2≡1 mod 3;及
(b’)i已接收至少tH个有效消息
则i立刻停止他自己对轮次r的执行;设定及将他自己的CERTr设定为子步骤(b’)的消息的集合。
-在前述等待期间及在任何时间点,如果i已接收至少tH个有效消息则i立刻停止他自己对轮次r的执行;设定及将他自己的CERTr设定为针对1和的消息的集合。
5.5 Algorand′1的分析
我们引入下述在分析中使用的、针对每一轮次r≥0的记法。
-设Tr为第一诚实用户知道Br-1时的时间。
-设Ir+1为区间[Tr+1,Tr+1+λ]。
应注意,通过协议的初始化,T0=0。对于每一s≥1和i∈SVr,s,和分别为参与者i的步骤s的起始时间和结束时间。此外,对于每一2≤s≤m+3,ts=(2s-3)λ+Λ。另外,设及
最后,当每一试验以的概率为1且至多有m/3次试验时,Lr≤m/3为表示看到1所需要的伯努利试验次数的随机变量。如果所有试验均失败,则
在分析中,我们忽略计算时间,因为其实际上相对于传播消息所需要的时间可以忽略。在任何情形下,通过使用稍大的λ和∧,计算时间可被直接包含在分析中。下面的大多数陈述“以压倒性的概率”成立,我们在分析中可能不反复强调该事实。
5.6主要定理
定理5.1对于每一轮次r≥0,下面的性质以压倒性的概率成立。
1、所有诚实用户对同一区块Br达成协定。
2、当领导lr诚实时,区块Br由lr生成,Br包含由lr到时间为止接收的最大交易集,Tr+1≤Tr+8λ+Λ,及所有诚实用户在时间间隔Ir+1中知道Br。
3、当领导lr恶意时,Tr+1≤Tr+(6Lr+10)λ+∧,及所有诚实用户在时间间隔Ir+1中知道Br。
4、对于Lr,ph=h2(1+h-h2),及领导lr以至少ph的概率诚实。
在证明我们的主要定理之前,我们进行两个评论。
区块生成及真实潜伏时间。生成区块Br的时间被定义为Tr+1-Tr。即,其被定义为某一诚实用户知道Br的第一时间与某一诚实用户知道Br-1的第一时间之间的差。当轮次r领导诚实时,我们的主要定理的性质2保证生成Br的准确时间为8λ+∧时间,不管h>2/3的精确值可能是什么。当领导恶意时,性质3意味着生成Br的预期时间的上限为再次地,无论h的精确值如何。22然而,生成Br的预期时间取决于h的精确值。实际上,通过性质4,ph=h2(1+h-h2)及领导以至少ph的概率诚实,因而
例如,如果h=80%,则
定理5.1的证明。我们通过归纳法证明性质1-3:假定它们对轮次r-1成立(在不损失一般性的前提下,当r=0时它们自动对“轮次-1”成立),我们证明它们对轮次r成立。
由于Br-1通过归纳假设唯一地确定,集合SVr,s对于轮次r的每一步骤s唯一地确定。通过选择n1,以压倒性的概率我们现在陈述下面两个论点,在部分5.7和5.8中证明。在整个归纳法及两个论点的证明中,对于轮次0的分析与推导步骤几乎一样,我们将在差异出现时突出这些差异。
论点5.2[完全性论点]假定性质1-3对于轮次r-1成立,当领导lr诚实时,以压倒性的概率,
-所有诚实用户对同一区块Br达成协定,其由lr生成并包含到时间为止lr接收的最大交易集;及
-Tr+l≤Tr+8λ+∧,及所有诚实用户在时间间隔Ir+1中知道Br。
论点5.3[稳固性论点]假定性质1-3对于轮次r-1成立,当领导lr恶意时,以压倒性的概率,所有诚实用户对同一区块Br达成协定,Tr+l≤Tr+(6Lr+10)λ+∧,及所有诚实用户在时间间隔Ir+1中知道Br。
性质1-3通过将论点5.2和5.3应用于r=0及推导步骤而成立。最后,我们将性质4重述为下面的论点,在部分5.9中证明。
论点5.4给定在r之前的每一轮次的性质1-3,对于Lr,ph=h2(1+h-h2),及领导lr以至少ph的概率诚实。
将上面的三个论点结合在一起,定理5.1成立。
给定归纳假设,下面的论点陈述关于轮次r的几个重要性质,并将在上面三个论点的证明中使用。
论点5.5假定性质1-3对于轮次r-1成立。对于轮次r的每一步骤s≥1及每一诚实的验证者i∈HSVr,s,我们具有
(a)
(b)如果参与者i已等待时间量ts,则对于r>0,及对于r=0,及
(c)如果参与者i已等待时间量ts,则到时间为止,他已接收所有诚实的验证者j∈HSVr,s′针对所有步骤s′<s发送的所有消息。
此外,对于每一步骤s≥3,我们具有
(d)不存在两个不同的参与者i,i′∈SVr,s及相同长度的两个不同值v,v′使得,两个参与者均已等待时间量ts,参与者i接收的所有有效消息的2/3以上已对v签署及参与者i′接收的所有有效消息的2/3以上已对v′签署。
证明。性质(a)从归纳假设直接得出,因为参与者i在时间间隔Ir中知道Br-1并立刻开始他自己的步骤s。性质(b)从(a)直接得出,因为参与者i已在行动前等待时间量ts,应注意,对于r=0,
我们现在证明性质(c)。如果s=2,则通过性质(b),对于所有验证者j∈HSVr,1,我们具有
由于每一验证者j∈HSVr,1在时间发送他的消息及该消息在至多∧时间到达所有诚实用户,到时间为止,参与者i已按需接收HSVr,1中的所有验证者发送的消息。
如果s>2,则ts=ts-1+2λ。通过性质(b),对于所有步骤s′<s和所有验证者j∈HSVr,s′,
由于每一验证者j∈HSVr,s′在时间发送他的消息及该消息在至多λ时间到达所有诚实用户,到时间为止,参与者i已按需接收HSVr,s′中的所有验证者针对所有s′<s发送的消息。因而性质(c)成立。
最后,我们证明性质(d)。应注意,验证者j∈HSVr,s-1使用他们的一次性秘钥在步骤s-1中至多签署两个:与哈希函数的输出同样长度的值vj,及比特bj∈{0,1},如果s-1≥4。这是为什么在论点的陈述中我们要求v和v′具有相同长度的原因:许多验证者可能已签署哈希值v和比特b,因而二者均通过阈值。
为了反驳,假定存在希望的验证者i,i′和值v,v′。应注意,MSVr,s-1中的一些恶意验证者可能已签署v和v′,但HSVr,s-1中的每一诚实验证者已至多签署它们中的一个。通过性质(c),i和i′均已接收HSVr,s-1中的所有诚实验证者发送的所有消息。
设HSVr,s-1(v)为已签署v的诚实(r,s-1)验证者的集合,为i已从其接收有效消息的恶意(r,s-1)验证者的集合,及为i已从其接收签署v的有效消息的的子集。通过对i和v的要求,我们具有
我们首先展现
否则,通过参数之间的关系假定以压倒性的概率 因而
与不等式1抵触。
接下来,通过不等式1,我们具有
与不等式2结合,
这意味着
类似地,通过对i′和v′的要求,我们具有
由于诚实验证者j∈HSVr,s-1在传播他的消息之前销毁他的一次性秘钥在知道j是验证者之后,敌手不能针对j未签署过的值伪造j的签名。因而,上面的两个不等式意味着|HSVr,s-1|≥|HSVr,s-1(v)|+|HSVr,s-1(v')|>|HSVr,s-1|,矛盾。因而,希望的i,i′,v,v′不存在,性质(d)成立。
5.7完全性论点
论点5.2[完全性论点,重申]假定性质1-3对于轮次r-1成立,当领导lr诚实时,以压倒性的概率,
-所有诚实用户对同一区块Br达成协定,其由lr生成并包含到时间为止lr接收的最大交易集;及
-Tr+l≤Tr+8λ+∧,及所有诚实用户在时间间隔Ir+1中知道Br。
证明。通过归纳假设和论点5.5,对于每一步骤s和验证者i∈HSVr,s, 下面我们逐步分析该协议。
步骤1。通过定义,每一诚实验证者i∈HSVr,1在时间时传播所希望的消息其中及为到时间为止i已看到的所有支付之中的最大交易集。
步骤2。任意地固定/确定诚实验证者i∈HSVr,2。通过论点5.5,当参与者i在时间完成等待时,他已接收HSVr,1中的验证者发送的所有消息,包括通过lr的定义,PKr-k中不存在另一参与者的凭证的哈希值小于当然,敌手可在看到非常小时腐化lr,但到那时参与者lr已销毁他的一次性秘钥且消息已被传播。因而,验证者i将他自己的领导设定为参与者lr。因而,在时间验证者i传播其中当r=0时,唯一差别在于而不是在一范围中。类似的事情对于以后的步骤也是如此,我们将不再次强调它们。
步骤3。任意固定诚实验证者i∈HSVr,3。通过论点5.5,当参与者i在时间完成等待时,他已接收HSVr,2中的验证者发送的所有消息。
通过参数之间的关系,以压倒性的概率|HSVr,2|>2|MSVr,2|。此外,没有诚实验证者将签署矛盾的消息,及敌手不能在诚实验证者已销毁他的相应一次性秘钥之后伪造诚实验证者的签名。因而,i已接收的所有有效(r,2)消息的2/3以上来自诚实验证者并为的形式,没有矛盾。
因而,在时间参与者i传播其中
步骤4。任意固定诚实验证者i∈HSVr,4。通过论点5.5,参与者i在时间完成等待时已接收HSVr,3中的验证者发送的所有消息。类似于步骤3,i已接收的所有有效(r,3)消息的2/3以上来自诚实验证者并属于的形式。
因而,参与者设定gi=2及bi=0。在时间他传播
步骤5。任意固定诚实验证者i∈HSVr,5。通过论点5.5,参与者i在他已等待到时间为止应已接收HSVr,4中的验证者发送的所有消息。应注意,|HSVr,4|≥tH。23还应注意,HSVr,4中的所有验证者已签收
由于|HSVr,4|<tH,不存在任何可能已由SVr,4中的tH个验证者签署的 (其将必然恶意),参与者i在他已接收tH个有效消息 之前不停止。设T为后一事件发生时的时间。那些消息中的部分可能来自恶意参与者,但因为|MSVr,4|<tH,它们中的至少一个来自HSVr,4中的诚实验证者并在时间Tr+t4之后发送。因而,及到时间T为止参与者i还已接收消息通过协议的构造,参与者i在时间停止而不传播任何东西;设定及针对0和他已接收的将他自己的CERTr设定为(r,4)消息的集合。
步骤s>5。类似地,对于任何步骤s>5和任何验证者i∈HSVr,s,如果参与者i已等待直到时间他应已接收HSVr,4中的验证者发送的所有消息。通过同样的分析,参与者i停止而不传播任何东西,设定(并适当地设定他自己的CERTr)。当然,恶意验证者可能不停止及可能传播任意消息,但由于|MSVr,s|<tH,通过推导,没有其他v′可在任何步骤4≤s′<s中被tH个验证者签署,因而诚实验证者仅停止,因为他们已接收针对0和的tH个有效(r,4)消息。
轮次r区块的重构。步骤5的分析几乎没有任何变化的应用于一般诚实用户i。实际上,参与者i在间隔Ir中开始他自己的轮次r并将仅在他已接收针对的tH个有效(r,4)消息时在时间T停止。再次地,由于那些消息中的至少一个来自诚实验证者并在时间Tr+t4之后发送,参与者i到时间T为止也已接收因而他设定具有适当的CERTr。
唯一剩下的是表明所有诚实用户在时间间隔Ir+1内完成他们的轮次r。通过步骤5的分析,每一诚实验证者i∈HSVr,5在时或之前知道Br。由于Tr+1为第一诚实用户ir知道Br的时间,我们具有
Tr+1≤Tr+8λ+Λ
此外,当参与者ir知道Br时,他已经在他的CERTr中帮助传播该消息。应注意,所有那些消息将在时间λ内被所有诚实用户接收,即使参与者ir是传播它们的第一参与者。此外,按照上面的分析,我们具有因而所有诚实用户到时间Tr+1+λ为止已接收因而,所有诚实用户在时间间隔Ir+1=[Tr+1,Tr+1+λ]中知道Br。
最后,对于r=0,我们实际上具有T1≤t4+λ=6λ+Λ。将所有结合在一起,论点5.2成立。
5.8稳固性论点
论点5.3[稳固性论点,重申]假定性质1-3对于轮次r-1成立,当领导lr恶意时,以压倒性的概率,所有诚实用户对同一区块Br达成协定,Tr+l≤Tr+(6Lr+10)λ+Λ,及所有诚实用户在时间间隔Ir+1中知道Br。
证明。我们分开地考虑协议GC和BBA*的两个部分。
GC。通过归纳假设和论点5.5,对于任何步骤s∈{2,3,4}和任何诚实验证者i∈HSVr,s,当参与者i在时间行动时,他在步骤s′<s中已接收所有诚实验证者发送的所有消息。我们对步骤4区分两种可能的情形。
情形1:没有验证者i∈HSVr,4设定gi=2。
在该情形下,通过定义,对所有验证者i∈HSVr,4,bi=1。即,他们在二元BA协议中以对1达成协定开始。他们可能对他们的vi未达成协定,但这没有关系,如我们将在二元BA中看到的。
情形2:存在验证者使得
在该情形下,我们展现
(1)对于所有i∈HSVr,4,gi≥1;
(2)存在值v'使得对于i∈HSVr,4,vi=v';及
(3)存在来自某一验证者l∈SVr,1的有效消息使得
实际上,由于参与者诚实并设定他已接收的所有有效消息的2/3以上均针对同一值v′≠⊥,及他已设定通过论点5.5中的性质(d),对于任何其他诚实的(r,4)验证者i,不能i′已接收的所有有效消息的2/3以上均针对同一值v″≠v′。因而,如果i设定gi=2,必定i已看到针对v′的>2/3大多数并设定vi=v′。
现在考虑具有gi<2的任意验证者i∈HSVr,4。与论点5.5中的性质(d)的分析类似,因为参与者已看到针对v′的>2/3大多数,以上的诚实(r,3)验证者已签署v′。因为i到时间为止已接收诚实(r,3)验证者的所有消息,他具体已从他们接收针对v′的以上的消息。因为|HSVr,3|>2|MSVr,3|,i已看到针对v′的>1/3大多数。因而,参与者i设定gi=1,性质(1)成立。参与者i必然设定vi=v′?假定存在不同的值v′≠⊥使得参与者i也已看到针对v″的>1/3大多数。那些消息的部分可能来自恶意验证者,但它们中的至少一个来自某一诚实验证者j∈HSVr,3:实际上,由于|HSVr,3|>2|MSVr,3|及i已从HSVr,3接收所有消息,i已从其接收有效的(r,3)消息的恶意验证者的集合对他已接收的所有有效消息的<1/3有价值。
通过定义,参与者j在他已接收的所有有效(r,2)消息之中必须已看到针对v″的>2/3大多数。然而,我们已经具有一些其他诚实的(r,3)验证者已看到针对v′的>2/3大多数(因为他们签署过v′)。通过论点5.5的性质(d),这不能发生,前述值v″不存在。因而,参与者i必定已设定vi=v′,性质(2)成立。
最后,给定一些诚实的(r,3)验证者已看到针对v′的>2/3大多数,一些(实际上,一半以上)诚实(r,2)验证者已签收v′并传播他们的消息。通过协议的构造,那些诚实(r,2)验证者必定已从一些具有的参与者l∈SVr,1接收有效消息因而性质(3)成立。
BBA*。我们再次区分两种情形。
情形1:所有验证者i∈HSVr,4具有bi=1。
这在GC的情形1之后发生。由于|MSVr,4|<tH,在该情形下,SVr,5中没有验证者可收集或生成针对比特0的tH个有效(r,4)消息。因而,HSVr,5中没有诚实验证者将停止,因为他知道非空区块Br。
此外,尽管有至少tH个针对比特1的有效(r,4)消息,s′=5不满足s′-2≡1 mod3,因而HSVr,5中没有诚实验证者将停止,因为他知道
而是,每一验证者i∈HSVr,5在时间行动,到他已接收HSVr,4发送的所有消息为止,按照论点5.5。因而参与者i已看到针对1的>2/3大多数并设定bi=1。
在步骤6(硬币-固定-到1步骤)中,尽管s'=5满足s'-2≡0 mod 3,不存在tH个针对比特0的有效(r,4)消息,因而HSVr,6中没有验证者将停止,因为他知道非空区块Br。然而,对于s'=6、s'-2≡1 mod 3,存在来自HSVr,5的|HSVr,5|≥tH个针对比特1的有效(r,5)消息。对于每一验证者i∈HSVr,6,按照论点5.5,在时间或之前,参与者已从HSVr,5接收所有消息,因而i停止而不传播任何东西并设定他的CERTr是他到他停止为止接收的tH个有效(r,5)消息的集合。
接下来,设参与者i为步骤s>6中的诚实验证者或者一般诚实用户(即非验证者)。与论点5.2的证明类似,参与者i设定并将他自己的CERTr设定为他已接收的tH个有效(r,5)消息的集合。
最后,与论点5.2类似,
及所有诚实用户在时间间隔Ir+1中知道Br,因为知道Br的第一诚实用户i已在他的CERTr中帮助传播(r,5)消息。
情形2:存在具有的验证者
这在GC的情形2之后发生并为更复杂的情形。通过GC的分析,在该情形下,存在有效消息使得对于所有i∈HSVr,4,应注意,HSVr,4中的验证者可能未对他们的bi达成协定。
对于任何步骤s∈{5,...,m+3}及验证者i∈HSVr,s,通过论点5.5,参与者i如果已等待时间ts,则他应已接收HSVr,4∪...∪HSVr,s-1中的所有诚实验证者发送的所有消息。
我们现在考虑下面的事件E:存在步骤s*≥5使得,对于二元BA中的第一时间,一些参与者(无论恶意或诚实)应停止而不传播任何东西。我们使用“应停止”来强调下述事实,如果参与者i*恶意,则他可能假装他根据协议不应停止并传播关于敌手的选择的消息。
此外,通过协议的构造,或
(E.a)i*能够收集或生成至少tH个针对同一v和s′的有效消息5≤s′≤s*及s′-2≡0 mod 3;或
(E.b)i*能够收集或生成至少tH个针对同一s′的有效消息 6≤s′≤s*及s′-2≡1 mod 3。
由于诚实(r,s′-1)消息由所有诚实(r,s′)验证者在他们在步骤s′中的等待结束之前接收,及由于敌手不晚于诚实用户接收任何东西,在不损失一般性的前提下,我们具有s′=s*及参与者i*为恶意。应注意,我们未要求E.a中的值v为有效区块的哈希值,因为在分析中变得清楚,在该子事件中下面我们首先分析事件E之后的情形2,然后展现s*的值实质上根据Lr分布(因而事件E以压倒性的概率在步骤m+3之前发生,给定参数的关系)。以下述情形开始,对于任何步骤5≤s≤s*,每一诚实验证者i∈HSVr,s已等待时间ts并将vi设定为他已接收的有效(r,s-1)消息的多数投票。由于按照论点5.5参与者i已接收所有诚实(r,s-1)消息,由于按照GC的情形2,HSVr,4中的所有诚实验证者已签署及由于对于每一s,|HSVr,s-1|>2|MSVr,s-1|,通过推导,我们具有,参与者i已设定
对于未停止但不传播任何东西的每一诚实验证者同样成立。现在我们考虑步骤s*并区分四种子情形。
情形2.1.a。事件E.a发生及存在也应停止而不传播任何东西的诚实验证者
在该情形下,我们具有s*-2≡0 mod 3,及步骤s*为硬币-固定-到0步骤。
通过定义,参与者i′已接收至少tH个形式的有效(r,s*-1)消息。由于中的所有验证者已签署和我们具有
由于i′针对0和v接收的(r,s*-1)消息的至少个由中的验证者在时间之后发送,参与者i′到他已接收那些(r,s*-1)消息为止已接收因而参与者i′停止而不传播任何东西;设定及将他自己的CERTr设定为他已接收的针对0和v的有效(r,s*-1)消息的集合。
接下来,我们展现,任何其他验证者或已停止(具有)或已设定bi=0并传播实际上,由于步骤s*是第一次一些验证者应停止而不传播任何东西,不存在具有s'-2≡1 mod 3的步骤s'<s*使得tH(r,s′-1)个验证者已签署1。因而中没有验证者以停止。
此外,由于所有诚实验证者在步骤{4,5,...,s*-1}中已签署不存在具有s'-2≡0 mod 3的步骤s'≤s*使得tH(r,s′-1)个验证者已签署一些实际上,|MSVr,s′-1|<tH。因而,中没有验证者以及停止。即,如果参与者已停止而不传播任何东西,他必定已设定如果参与者已等待时间并在时间传播消息,他已从接收所有消息,至少包括它们的针对0和v的个。如果i已看到针对1的>2/3大多数,则他已看到针对1的以上有效(r,s*-1)消息,它们中的个以上来自诚实(r,s*-1)验证者。然而,这意味着与的事实矛盾,该事实来自参数的关系。因而,i未看到针对1的>2/3大多数,及他设定bi=0,因为步骤s*为硬币-固定-到0步骤。如我们已看到的,因而,如我们想要展现的,i传播
对于步骤s*+1,由于参与者i'已在时间或之前在他的CERTr中帮助传播消息,中的所有诚实验证者在他们完成等待时或之前已接收针对比特0及值的至少tH个有效(r,s*-1)消息。此外,中的验证者在接收到那些(r,s*-1)消息之前将不停止,因为不存在任何其它的针对比特1的、具有s′-2≡1 mod 3和6≤s′≤s*+1的tH个有效(r,s′-1)消息,通过步骤s*的定义。具体地,步骤s*+1本身为硬币-固定-到1步骤,但中没有诚实验证者已传播针对1的消息,及因而,中的所有诚实验证者停止而不传播任何东西并设定如前所述,他们在接收到所希望的(r,s*-1)消息之前已接收 24对于将来步骤中的所有诚实验证者及一般地所有诚实用户同样如此。具体地,他们均在时间间隔Ir+1内知道及
情形2.1.b。事件E.b发生及存在也应停止而不传播任何东西的诚实验证者
在该情形下,我们具有s*-2≡1 mod 3及步骤s*为硬币-固定-到-1步骤。分析与情形2.1.a类似,许多细节已被省略。
如前所述,参与者i′必定已接收至少tH个形式的有效(r,s*-1)消息。再次地,通过s*的定义,不存在具有s′-2≡0 mod 3的步骤5≤s′<s*,其中至少tH(r,s′-1)个验证者已签署0和同样的v。因而,参与者i′停止而不传播任何东西;设定及将他自己的CERTr设定为他已接收的针对1的有效(r,s*-1)消息的集合。
此外,任何其他验证者或已以停止或已设定bi=1并传播由于到时间为止参与者i′已在他的CERTr中帮助传播(r,s*-1)消息,再次地,中的所有诚实验证者停止而不传播任何东西并设定类似地,所有诚实用户在时间间隔Ir+1中知道及
情形2.2.a。事件E.a发生及不存在也应停止而不传播任何东西的诚实验证者
在该情形下,应注意,参与者i*可能具有由敌手能够收集或生成的tH个希望的(r,s*-1)消息组成的有效然而,恶意验证者可能未帮助传播那些消息,这样,我们不能推断诚实用户将在时间λ中接收它们。实际上,那些消息的可能来自恶意(r,s*-1)验证者,其根本未传播他们的消息及仅在步骤s*中将它们发送给恶意验证者。
与情形2.1.a类似,在此我们具有s*-2≡0 mod3,步骤s*为硬币-固定-到0步骤,及中的(r,s*-1)消息针对比特0和实际上,所有诚实(r,s*-1)验证者签署v,因而敌手不能针对不同的v'生成tH个有效(r,s*-1)消息。
此外,所有诚实(r,s*)验证者已等待时间及未看到针对比特1的>2/3大多数,再次地,因为因而,每一诚实验证者通过多数投票锁定bi=0,并在时间传播
现在考虑步骤s*+1(其是硬币-固定-到1步骤)中的诚实验证者。如果敌手实际上将中的消息发送给他们中的部分并导致他们停止,这与情形2.1.a类似,所有诚实用户在时间间隔Ir+1内知道及
否则,步骤s*+1中的所有诚实验证者在等待时间之后已从接收针对0和的所有(r,s*)消息,这导致>2/3大多数,因为因而,中的所有验证者传播他们的针对0和的消息。应注意,中的验证者不以停止,因为步骤s*+1不是硬币-固定-到0步骤。
现在考虑步骤s*+2(其是硬币-真正-翻转的步骤)中的诚实验证者。如果敌手将中的消息发送给他们中的部分并导致他们停止,则再次地,所有诚实用户在时间间隔Ir+1内知道及
否则,步骤s*+2中的所有诚实验证者在等待时间之后已从接收针对0和的所有(r,s*+1)消息,这导致>2/3大多数。因而,所有他们均传播他们的针对0和的消息:即在该情形下他们不“翻转硬币”。再次地,应注意,他们不停止而不传播,因为步骤s*+2不是硬币-固定-到0步骤。
最后,对于步骤s*+3(其是另一硬币-固定-到0步骤)中的诚实验证者,如果他们真地等待时间所有他们应已从接收针对0和的至少tH个有效消息。因而,无论敌手是否将中的消息发送给他们中的任何一个或多个,中的所有验证者以停止,而不传播任何东西。根据敌手怎样行动,他们中的部分可具有他们自己的由中的那些(r,s*-1)消息组成的CERTr,及其余验证者具有他们自己的由那些(r,s*+2)消息组成的CERTr。在任一情形下,所有诚实用户在时间间隔Ir+1内知道及
情形2.2.b。事件E.b发生及不存在也应停止而不传播任何东西的诚实验证者
该情形下的分析与情形2.1.b和情形2.2.a中的那些类似,因而许多细节已被省略。具体地,由敌手能够收集或生成的tH个希望的针对比特1的(r,s*-1)消息组成,s*-2≡1 mod 3,步骤s*为硬币-固定-到1步骤,没有诚实(r,s*)验证者可能已看到针对0的>2/3大多数。
因而,每一验证者设定bi=1并在时间传播 与情形2.2.a类似,在至多3个以上步骤中(即协议到达步骤s*+3,其是另一硬币-固定-到1步骤),所有诚实用户在时间间隔Ir+1内知道此外,Tr+1可以是或或取决于诚实验证者能够停止而不传播的第一时间。
结合四个子情形,我们具有,所有诚实用户在时间间隔Ir+1内知道Br,具有
在情形2.1.a和2.1.b下,及
在情形2.2.a和2.2.b下,
对于情形2,其保留到上限s*因而及Tr+1,我们通过考虑在协议中实际执行多少次硬币-真正-翻转的步骤而这样做:即,一些诚实验证者实际上已翻转硬币。
具体地,任意固定硬币-真正-翻转的步骤s'(即7≤s'≤m+2和s'-2≡2 mod 3),及设目前我们假定s'<s*,因为根据先前的讨论,没有诚实验证者实际上在步骤s'中翻转硬币。
通过SVr,s'-1的定义,l'的凭证的哈希值也是PKr-k中的所有用户之中最小的。由于哈希函数是随机预言函数,理想地,参与者l'以至少h的概率诚实。如我们随后将展现的,即使敌手尽他的最大努力预测随机预言函数的输出并倾斜概率,参与者l'仍以至少ph=h2(1+h-h2)的概率诚实。下面我们考虑其实际上发生时的情形,即l'∈HSVr,s'-1。
应注意,到时间为止每一诚实验证者i∈HSVr,s'已从HSVr,s'-1接收所有消息。如果参与者i需要翻转硬币(即他尚未看到针对同一比特b∈{0,1}的>2/3大多数),则他设定如果存在另一诚实验证者i'∈HSVr,s'已看到针对比特b∈{0,1}的>2/3大多数,则通过论点5.5的性质(d),HSVr,s'中没有诚实验证者应已看到针对比特b'≠b的>2/3大多数。由于具有1/2的概率,HSVr,s'中的所有诚实验证者对b达成协定也具有1/2的概率。当然,如果这样的验证者i'不存在,则HSVr,s'中的所有诚实验证者以概率1对比特达成协定。
结合针对l'∈HSVr,s'-1的概率,我们具有,HSVr,s'中的诚实验证者以至少的概率对比特b∈{0,1}达成协定。此外,通过如前所述的对多数投票的推导,HSVr,s'中的所有诚实验证者使他们的vi设定为因而,一旦在步骤s'中对b达成协定,Tr+1为
≤Tr+λ+ts'+1或≤Tr+λ+ts'+2
取决于b=0还是b=1,按照情形2.1.a和2.1.b的分析。具体地,没有另外的硬币-真正-翻转的步骤将被执行,即,这些步骤中的验证者仍然检查他们是验证者因而等待,但他们均将停止而不传播任何东西。因而,在步骤之前,硬币-真正-翻转的步骤被执行的次数根据随机变量Lr分布。设步骤s'为根据Lr的最后的硬币-真正-翻转的步骤,通过协议的构造,我们具有
s'=4+3Lr
如果敌手想要尽可能多地延迟Tr+1,敌手应何时使得步骤s*发生?我们甚至能假定敌手提前知道Lr的实现。如果s*>s',则其没用,因为诚实验证者已经在步骤s'中达成协定。为了确保,在该情形下,s*应为s'+1或s'+2,再次地,取决于b=0还是b=1。然而,这实际上是情形2.1.a和2.1.b,所得的Tr+1与那些情形中完全一样。更精确地,
如果s*<s'-3,即s*在倒数第二个硬币-真正-翻转的步骤之前,则通过情形2.2.a和2.2.b的分析,
即,敌手实际上正使得对Br的协定更快地发生
如果s*=s'-2或s'-1,即硬币-固定-到0步骤或硬币-固定-到1步骤就在步骤s'之前,则通过四种子情形的分析,步骤s'中的诚实验证者不再去翻转硬币,因为他们或已停止而不传播或已看到针对同一比特b的>2/3大多数。因此,我们具有
总之,无论s*是什么,我们具有
如我们想要展现的那样。最坏的情形是在s*=s'-1及情形2.2.b发生时。结合二元BA协议的情形1和2,论点5.3成立。
5.9种子Qr的安全性及诚实领导的概率
仍然是证明论点5.4。记住轮次r的验证者取自PKr-k并根据量Qr-1进行选择。引入向后看参数k的原因在于确保,向后到轮次r-k,当敌手能够向PKr-k添加新的恶意用户时,除了可忽略的概率之外,他不能预测量Qr-1。应注意,哈希函数是随机预言函数及Qr-1是其在选择轮次r的验证者时的输入之一。因而,无论恶意用户怎样被添加到PKr-k,从敌手的角度,他们中的每一个仍以所要求的概率p(或对步骤1,p1)被选择为轮次r的步骤中的验证者。更精确地,我们具有下述论点。
论点5.6。具有k=O(log1/2F),对于每一轮次r,以压倒性的概率,敌手向后到轮次r-k未质疑给随机预言函数的Qr-1。
证明。我们通过推导进行。假定对于每一轮次Υ<r,敌手向后到轮次Υ–k未质疑给随机预言函数的QΥ-1。25考虑下面的由敌手在轮次r-k玩的智力游戏,试图预测Qr-1。
在每一轮次Υ=r-k,…,r-1的步骤1中,给定特定QΥ-1未被质疑给随机预言函数,通过根据哈希值H(SIGi(Υ,1,QΥ-1))递增地排序参与者i∈PKΥ-k,我们获得PKΥ-k的随机排列。通过定义,领导lΥ是该排列中的第一用户并以概率h诚实。此外,当PKΥ-k足够大时,对于任何整数x≥1,排列中的前x个用户均恶意但第(x+1)个用户诚实的概率为(1-h)xh。
如果lΥ诚实,则由于敌手不能伪造lΥ的签名,从敌手的角度Qγ随机均匀分布,及除了指数级小概率之外,26在轮次r-k未被质疑给H。由于每一Qγ+1,Qγ+2,…,Qr-1分别是H的输出,具有Qγ,QΥ+1,…,Qr-2作为输入之一,它们对敌手均看上去随机及敌手未能在轮次r-k已质疑给H的Qr-1。
因而,敌手在轮次r-k可以好的概率预测Qr-1的唯一情形是在所有领导lr-k,…,lr-1均恶意时。再次考虑轮次Υ∈{r-k...,r-1}及通过对应的哈希值推导的PKΥ-k的随机排列。如果对于某些x≥2,排列中的前x-1个用户均恶意但第x个用户诚实,则敌手对QΥ具有x可能的选择:或为H(SIGi(QΥ-1,Υ))的形式,其中i是前x-1个恶意用户之一,通过使参与者i实际上为轮次Υ的领导;或为H(QΥ-1,Υ),通过迫使否则,轮次Υ的领导将为排列中的第一诚实用户及对敌手而言Qr-1变得不可预测。
敌手应追求QΥ的上述x个选择中的哪一个?为帮助敌手回答该问题,在智力游戏中,我们按如下使他比实际上更强大。首先,在现实中,敌手不能计算诚实用户的签名的哈希,因而对每一QΥ,在通过QΥ推导的轮次Υ+1中不能决定在随机排列开始的恶意用户的数量x(QΥ)。在智力游戏中,我们免费给他数量x(QΥ)。其次,在现实中,在排列中前x个用户均恶意并不必然意味着他们均能被使得为领导,因为他们的签名的哈希值还必须小于p1。我们在智力游戏中已忽略该约束条件,给敌手甚至更多的好处。
容易看到,在智力游戏中,敌手的最佳选择(记为)是在轮次Υ+1的随机排列的开始产生最长恶意用户序列的选择。实际上,给定特定QΥ,协议不再依赖于QΥ-1,敌手可仅聚焦于轮次Υ+1中的新排列,其对于开始处的多个恶意用户具有同样的分布。因而,在每一轮次Υ,上面提及的给予他最大数量的QΥ+1选择因而使相继的领导均恶意的概率最大化。
因此,在智力游戏中,敌手遵循从轮次r-k到轮次r-1的马尔可夫(Markov)链,状态空间为{0}∪{x:x≥2}。状态0表示当前轮次Υ的随机排列中的第一用户诚实的事实,因而敌手预测Qr-1的游戏失败;及每一状态x≥2表示排列中的前x-1个用户恶意及第x个用户诚实的事实,因而敌手对Qγ具有x个选择。转移概率P(x,y)如下。
-P(0,0)=1及对于任何y≥2,P(0,y)=0。即一旦排列中的第一用户变得诚实,敌手游戏失败。
-对于任何x≥2,P(x,0)=hx。即,具有概率hx,所有x个随机排列使它们前面的用户诚实,因而敌手在下一轮次中游戏失败。
-对于任何x≥2及y≥2,P(x,y)为在通过Qγ的x个选择推导的x个随机排列之中,它们中的部分的开始处的最长恶意用户序列为y-1,因而敌手在下一轮次中对QΥ+1具有y个选择。即,
应注意,状态0是跃迁矩阵P中的唯一吸收状态,及每一其它状态x具有转到0的正概率。我们对马尔可夫链以压倒性的概率收敛到0所需要的轮次数量k的上限感兴趣。即,无论该链在哪一状态开始,以压倒性的概率,敌手游戏失败及不能在轮次r-k预测Qr-1。
考虑两轮之后的跃迁矩阵容易看到,P(2)(0,0)=1及对于任何x≥2,P(2)(0,x)=0。对于任何x≥2和y≥2,由于P(0,y)=0,我们具有
P(2)(x,y)=P(x,0)P(0,y)+∑z≥2P(x,z)P(z,y)=∑z≥2P(x,z)P(z,y)
设我们具有
及
下面我们计算的极限,随着h转到1即转到0。应注意,P(x,y)中的的最高阶为具有系数x。因而,
当h足够接近1时,27我们具有
对于任何x≥2和y≥2。通过推导,对于任何k>2,使得
-对于任何x≥2,P(k)(0,0)=1,P(k)(0,x)(0,x)=0;及
-对于任何x≥2及y≥2,
由于P(x,y)≤1,在轮次1-log2F之后,变迁到任何状态y≥2的转移概率可忽略,以任何状态x≥2开始。尽管有许多这样的状态y,容易看到,
因此,当y足够大时,跃迁矩阵P的每一行x以速率按几何序列递减,对P(k)同样成立。因而,当k足够大但仍然在log1/2F级时,对于任何x≥2,∑y≥2P(k)(x,y)<F。即敌手以压倒性的概率游戏失败且不能在轮次r-k预测Qr-1。对于h∈(2/3,1],更复杂的分析表明,存在稍大于1/2的常数C,使得取k=O(logCF)满足需要。因而论点5.6成立。
论点5.4(重申):给定在r之前的每一轮次的性质1-3,对于Lr,ph=h2(1+h-h2),及领导lr以至少ph的概率诚实。
证明。按照论点5.6,除了可以忽略的概率之外,敌手不能在轮次r-k预测Qr-1。应注意,这并非意为每一轮次的诚实领导的概率为h。实际上,给定Qr-1,取决于在PKr-k的随机排列的开始处有多少恶意用户,敌手对Qr可能具有一个以上选择因而可在轮次r+1中增加恶意领导的概率,再次地,我们给予他一些如论点5.6中所述的不现实的好处,以简化分析。
然而,对于向后到轮次r-k未被敌手质疑给H的每一Qr-1,对于任何x≥1,第一诚实用户出现在所得的PKr-k的随机排列中的位置x的概率为(1-h)x-1h。当x=1时,轮次r+1中的诚实领导的概率实际上为h;而当x=2时,敌手对Qr具有两个选择及所得的概率为h2。仅通过考虑这两个情形,我们具有,轮次r+1中的诚实领导的概率为至少h·h+(1-h)h·h2=h2(1+h-h2),如期望的。
应注意,上面的概率仅考虑协议中从轮次r-k到轮次r的随机性。当从轮次0到轮次r的所有随机性均被考虑时,对敌手而言Qr-1甚至更不太可预测及轮次r+1中的诚实领导的概率至少为h2(1+h-h2)。用r代替r+1并将所有东西均后移一轮,领导lr以至少h2(1+h-h2)的概率诚实,如期望的。
类似地,在每一硬币-真正-翻转的步骤s中,该步骤的“领导”即SVr,s中其凭证具有最小哈希值的验证者以至少h2(1+h-h2)的概率诚实。因而对于Lr,ph=h2(1+h-h2),及论点5.4成立。
6 Algorand′2
在该部分,我们构建在下述假设下工作的Algorand′版本。
大部分用户诚实假设:在每一PKr中多于2/3的用户诚实。
在部分8,我们展现怎样用期望的大部分金钱诚实的假设替换上面的假设。
6.1针对Algorand′2的另外的记法和参数
记法
以压倒性的概率一轮次中实际将进行的步骤数的实用上限(如我们将看到的,参数控制用户提前为每一轮次准备多少一次性密钥)。
-Lr:表示看到1所需要的伯努利试验数量的随机变量,当每一试验以的概率为1时。Lr将用于对生成区块Br所需要的时间设定上限。
-tH:轮次r的步骤s>1中诚实验证者的数量的下限,使得以压倒性的概率(给定n和p)在SVr,s中有>tH个诚实验证者。
参数
-多个不同参数之间的关系
--对于轮次r的每一步骤s>1,n被选择成以压倒性的概率使得
|HSVr,s|>tH及|HSVr,s|+2|MSVr,s|<2tH
应注意,上面的两个不等式一起意味着|HSVr,s|>2|MSVr,s|:即,在所选验证者之中有2/3的大部分诚实。
h的值越接近1,需要的n越小。具体地,我们使用切尔诺夫边界(的变型)确保所希望的条件以压倒性的概率成立。
-重要参数的具体选择
--F=10-18。
--n≈4000,tH≈0.69n和k=70。
6.2在Algorand′2中实施一次性密钥
如已经提及的,验证者i∈SVr,s使用他在使用之后立即销毁的一次性秘钥相对于一次性公钥数字签署他的轮次r步骤s的消息当一轮次可进行的可能步骤的数量由给定整数μ封顶时,我们已经看到怎样实际上处理一次性密钥。例如,如我们已经在Algorand′1中阐述的(其中μ=m+3),为处理所有他的可能一次性密钥,从轮次r′到轮次r′+106,i生成(PMK,SMK)对,其中PMK为基于身份的签名方案的PMK公开主钥,SMK为其对应的秘密主钥。用户i散布PMK并使用SMK生成每一可能的一次性公钥的秘钥(并在这样做之后销毁SMK)。i针对相应轮次的一次性公钥的集合为S={i}×{r′,...,r′+106}×{1,...,μ}(如已讨论的,随着轮次r′+106逼近,i“刷新”他的(PMK,SMK)对)。
在实践中,如果μ足够大,Algorand′2的一轮次将不会花μ以上步骤。然而,原理上,有某一轮次r实际花费的步骤数将超过μ的微小可能性。当这发生时,i将不能够针对任何步骤s>μ签署他的消息因为他对轮次r仅已提前准备μ个秘钥。此外,如先前论述的,他不能准备和散布一次性密钥的新的秘藏。实际上,为了那样做,他需要将新的公开主钥PMK′插入到新区块中,但如果轮次r花费越来越多的步骤,没有新区块将被生成。
然而,存在解决方案。例如,i可按如下使用轮次r的最后一次性密钥他针对轮次r生成密钥对的另一秘藏,例如通过(1)产生另一主钥对(2)使用该对产生另一如106个一次性密钥对应于轮次r的步骤μ+1,...,μ+106;(3)使用相对于数字签署(如果i∈SVr,μ,及任何消息(r,μ));及(4)擦除和如果i变成步骤μ+s中的验证者,s∈{1,...,106},则i相对于他的新密钥数字签署他的(r,μ+s)消息当然,为验证i的该签名,需要确定的是该公钥对应于i的新公开主钥因而,除了该签名之外,i传输他的相对于的数字签名。
当然,如果轮次r持续更多步骤,该方法可按需重复许多次。最后的一次性秘钥用于认证新的主公钥,因而及轮次r的一次性密钥的另一秘藏。依此类推。
6.3 Algorand′2的实际协议
再次注意,在轮次r的每一步骤s中,验证者i∈SVr,s使用他的长期公钥-秘钥对产生他的凭证及SIGi(Qr-1)(在s=1的情形下)。验证者i使用他的一次性密钥对签署可能需要的任何其它消息m。为了简单,我们写为esigi(m)而不是来表示i对该步骤中的m的适当的一次性签名,并写为ESIGi(m)代替
步骤1:区块提议
对于每一用户i∈PKr-k的指令:用户i一具有CERTr-1就开始他自己的轮次r步骤1,其使i能毫无疑义地计算H(Br-1)和Qr-1。
-用户i使用Qr-1检查是否i∈SVr,1。如果他对步骤1不做任何事。
-如果i∈SVr,1,即如果i为潜在领导,则他进行下述处理。
(a)如果i自己已看到B0,...,Br-1(任何可从其在CERTj中的哈希值容易地得出因而被假定为“被看到”),则他收集迄今已被传播给他的轮次r支付并从它们计算最大交易集
(b)如果i尚未看到所有B0,…,Br-1,则他设定
(c)接着,i计算他的“候选区块”
(d)最后,i计算消息销毁他的一次性秘钥然后分开但同时地传播两个消息和 28
选择性传播
为缩短步骤1和整个轮次的全局执行,(r,1)消息被选择性传播很重要。即,对于系统中的每一用户j,
-对于他曾接收并成功验证的第一(r,1)消息,29无论其是包含区块还是仅为凭证和Qr-1签名,参与者j照常传播它。
-对于参与者j接收并成功验证的所有其它(r,1)消息,他仅在其包含的凭证的哈希值在他迄今已接收并成功验证的所有(r,1)消息中包含的凭证的哈希值之中最小时才传播它。。
-然而,如果j从同一参与者i接收到形式的两个不同消息,30无论i的凭证的哈希值如何,他丢弃第二消息。
应注意,在选择性传播下,每一潜在领导i与分开地传播他的凭证是有用的:31那些小的消息传播得比区块快,确保其中所包含的凭证具有小哈希值的的及时传播,同时使那些具有大哈希值的消息快速消失。
步骤2:分级共识协议GC的第一步骤
对于每一用户i∈PKr-k的指令:用户i一具有CERTr-1就开始他自己的轮次r步骤2。
-用户i等待最大时间量在等待的同时,i按如下行动。
1、在等待时间2λ之后,他找到用户l使得对于是他迄今已接收的、被成功验证的(r,1)消息的一部分的所有凭证 32
2、如果他已接收与CERTr-1中包含的哈希值H(Br-1)匹配的区块Br-1,33及如果他已从l接收有效消息 34则i停止等待并设定
3、否则,当时间t2耗尽时,i设定
4、当v′i的值已被设定时,i从CERTr-1计算Qr-1并检查是否i∈SVr,2。
5、如果i∈SVr,2,i计算消息 35销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
步骤3:GC的第二步骤
对于每一用户i∈PKr-k的指令:用户i一具有CERTr-l就开始他自己的轮次r的步骤3。
-用户i等待最大时间量在等待的同时,i按如下行动。
1、如果存在值v使得他已接收至少tH个形式的有效消息没有任何矛盾,36则他停止等待并设定v′=v。
2、否则,当时间t3耗尽时,他设定v′=⊥。
3、当v′ i的值已被设定时,i从CERTr-1计算Qr-1并检查是否i∈SVr,3。
4、如果i∈SVr,3,i计算消息销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
步骤4:GC的输出及BBA*的第一步骤
对于每一用户i∈PKr-k的指令:用户i一完成他自己的步骤3就开始他自己的轮次r步骤4。
-用户i等待最大时间量2λ。37在等待的同时,i按如下行动。
1、他按如下计算GC的输出vi和gi。
(a)如果存在值v′≠⊥使得他已接收至少tH个有效消息 则他停止等待并设定和
(b)如果他已接收至少tH个有效消息则他停止等待并设定和 38
(c)否则,当时间2λ耗尽时,如果存在值v′≠⊥使得他已接收至少个有效消息则他设定和 39
(d)否则,当时间2λ耗尽时,他设定和
2、当值vi和gi已被设定时,i按如下计算bi,BBA*的输入:
如果gi=2,否则,
3、i从CERTr-1计算Qr-1并检查是否i∈SVr,4。
4、如果i∈SVr,4,i计算消息销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
步骤s,5≤s≤m+2,s-2≡0 mod 3:BBA*的硬币-固定-到0步骤
对于每一用户i∈PKr-k的指令:用户i一完成他自己的步骤s-1就开始他自己的轮次r步骤s。
-用户i等待最大时间量2λ。40在等待的同时,i按如下行动。
--结束条件0:如果在任何点存在字符串v≠⊥及步骤s'使得
(a)5≤s′≤s,s′-2≡0 mod 3-即,步骤s′为硬币-固定-到0步骤;
(b)i已接收至少tH个有效消息 41及(c)i已接收有效消息j为v的第二分量,则i停止等待并立刻结束他自己对步骤s(及实际上轮次r)的执行,而不作为(r,s)验证者传播任何东西;将H(Br)设定为v的第一分量;及将他自己的CERTr设定为步骤(b)的消息连同一起的集合。42
--结束条件1:如果在任何点存在步骤s′使得
(a’)6≤s′≤s,s′-2≡1 mod 3-即,步骤s′为硬币-固定-到1步骤;及
(b’)i已接收至少tH个有效消息 43
则i停止等待并立刻结束他自己对步骤s(实际上及轮次r)的执行,而不作为(r,s)传播任何东西;设定及将他自己的CERTr设定为子步骤(b’)的消息集合
-如果在任何点他已接收至少tH个形式的有效则他停止等待并设定
-如果在任何点他已接收至少tH个形式的有效但他们未对同一v达成协定,则他停止等待并设定
-否则,当时间2λ耗尽时,i设定
-当值bi已被设定时,i从CERTr-1计算Qr-1并检查是否i∈SVr,s。
-如果i∈SVr,s,i计算消息vi为他在步骤4中计算的值,销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
步骤s,6≤s≤m+2,s-2≡1 mod 3:BBA*的硬币-固定-到-1步骤
对于每一用户i∈PKr-k的指令:用户i一完成他的步骤s-1就开始他自己的轮次r步骤s。
-用户i等待最大时间量2λ。在等待的同时,i按如下行动。
--结束条件0:与硬币-固定-到-0步骤一样的指令。
--结束条件1:与硬币-固定-到-0步骤一样的指令。
-如果在任何点他已接收至少tH个形式的有效则他停止等待并设定 44
-否则,当时间2λ耗尽时,i设定
-当值bi已被设定时,i从CERTr-1计算Qr-1并检查是否i∈SVr,s。
-如果i∈SVr,s,i计算消息vi为他在步骤4中计算的值,销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
步骤s,7≤s≤m+2,s-2≡2 mod 3:BBA*的硬币-真正-翻转的步骤
对于每一用户i∈PKr-k的指令:用户i一完成他的步骤s-1就开始他自己的轮次r步骤s。
-用户i等待最大时间量2λ。在等待的同时,i按如下行动。
--结束条件0:与硬币-固定-到-0步骤一样的指令。
--结束条件1:与硬币-固定-到-0步骤一样的指令。
-如果在任何点他已接收至少tH个形式的有效则他停止等待并设定
-如果在任何点他已接收至少tH个形式的有效则他停止等待并设定
-否则,当时间2λ耗尽时,设为他已从其接收有效消息的(r,s-1)验证者集合,i设定
-当值bi已被设定时,i从CERTr-1计算Qr-1并检查是否i∈SVr,s。
-如果i∈SVr,s,i计算消息vi为他在步骤4中计算的值,销毁他的一次性秘钥然后传播否则,i停止而不传播任何东西。
评论。原理上,如子部分6.2中考虑的,协议在某一轮次可进行任意多的步骤。如果这发生,如所论述的,用户i∈SVr,s(s>μ)已用尽他先前生成的一次性密钥的秘藏及不得不通过一次性密钥的“级联”认证他的(r,s)消息因而,i的消息变得稍长及传输这些较长的消息将花费稍多的时间。因而,在给定轮次的那么多步骤之后,参数λ的值将自动稍微增大(但是,一旦新区块被产生及新轮次开始,其恢复到初始的λ)。
非验证者对轮次r区块的重构
对于系统中每一用户i的指令:用户i一具有CERTr-1就开始他自己的轮次r。
-i遵循协议的每一步骤的指令,参与所有消息的传播,但在他不是验证者的步骤中不发起任何传播。
-i通过在某一步骤进入结束条件0或结束条件1而结束他自己的轮次r,具有对应的CERTr。
从此开始,他开始他的轮次r+1,同时等待接收实际的区块Br(除非他已经接收到它),其哈希H(Br)已通过CERTr固定住。再次地,如果CERTr指明则i在他具有CERTr的时刻知道Br。
6.4 Algorand′ 2的分析
Algorand′2的分析从Algorand′1的分析容易得出。实质上,在Algorand′2中,以压倒性的概率,(a)所有诚实用户对同一区块Br达成协定;(b)新区块的领导以至少ph=h2(1+h-h2)的概率诚实。
7处理离线诚实用户
如我们说过的,诚实用户遵循所有他规定的指令,包括在线及运行协议的指令。这在Algorand中不是主要负担,因为诚实用户所需要的计算和带宽非常适中。而且,我们指出Algorand可被容易地修改以按两种模型工作,其中诚实用户被允许大量时间离线。
在讨论这两个模型之前,我们指出,如果诚实参与者的百分比为95%,假定代之以h=80%,Algorand仍可运行设置所有参数。因而,即使至多一半的诚实参与者选择变成离线(实际上,“缺勤”的主要情形),Algorand应继续适当地工作。事实上,在任何时间点,在线参与者的至少80%应是诚实的。
从持续参与到懒惰的诚实。如我们看到的,Algorand′1和Algorand′2选择向后看参数k。我们现在展现选择k适当地大使能消除持续参与要求。该要求确保至关重要的性质:即,潜在的BA协议BBA*具有适当的诚实大多数。我们现在解释懒惰的诚实怎样提供备选及有吸引力的满足该性质的方式。
注意,如果(1)用户i在被要求参与到协议时遵循所有他规定的指令;及(2)他仅被非常少地要求参与到协议,例如一周一次,以适当的提前通知并可能在参与时接收可观的回报,则用户i是懒惰但诚实的。
为使Algorand能与这样的参与者一起工作,“在在早得多的轮次中已经在系统中的用户之中选择当前轮次的验证者”刚好满足需要。实际上,如已提及的,轮次r的验证者从轮次r-k中的用户选择,及选择基于量Qr-1进行。应注意,一周由大约10000分钟组成,及假定一轮次大约花(如平均)5分钟,则一周具有大约2000轮次。假定在某一时间点,用户i希望计划他的时间及知道他是否将成为下一周的验证者。协议现在从轮次r-k-2000中的用户选择轮次r的验证者,及选择基于Qr-2001进行。在轮次r,参与者i已经知道值Qr-2000,...,Qr-1,因为它们实际上是区块链的一部分。则对于1到2000之间的每一M,在且仅在下面条件时i是轮次r+M的步骤s中的验证者:
.H(SIGi(r+M,s,Qr+M-2001))≤p
因而,为检查他是否将被召唤充作下一2000轮次中的验证者,i必须针对M=1到2000及针对每一步骤s计算并检查对于其中的部分是否如果计算数字签名花一毫秒,则该整个运算将花他约1分钟的计算。如果他未被选择为这些轮次的任何轮次中的验证者,则他可以“诚实的良心”变成离线。如果他继续参与,他在接下来的2000轮次将实质上进行0步骤。反之,如果他被选择为这些轮次之一中的验证者,则他使他自己准备好(例如通过获得所有必要的信息)在适当的轮次作为诚实验证者。
通过这样行动,懒惰但诚实的潜在验证者i仅错过参与到消息的传播。但消息传播通常鲁棒。此外,最近传播的支付的付款人和受款人预期在线以监视他们的支付发生了什么,因而他们将参与到消息传播,如果他们诚实。
8具有大部分金钱诚实的协议Algorand′
最后,我们展现怎样用意义大得多的大部分金钱诚实假设替换大部分用户诚实假设。基本想法是(按权益证明风格)“用与i拥有的金钱量成正比的权重(即决策能力)选择用户i∈PKr-k属于SVr,s”。45
通过我们的HMM假设,我们可选择该金额应在轮次r-k被拥有还是在轮次r(开始时)。假定我们不介意持续参与,我们选择后一选择(为消除持续参与,我们应已选择前一选择。更好地讲,对于在轮次r-k-2000拥有的金钱量)。
有许多种方式实施该想法。最简单的方式是使每一密钥至多保持1单位的金钱,然后从PKr-k随机选择n个用户使得
第二最简单的实施
第二最简单的实施可以是要求每一公钥拥有最大金钱量M,对于一些固定的M。值M相较于系统中的总金钱量足够小,使得密钥在如k个轮次中的一个以上步骤属于验证者集合的概率可忽略。则在轮次r拥有金钱量的密钥i∈PKr-k被选择属于SVr,s,如果满足下面条件:
及所有如前面一样继续。
更复杂的实施
最后的实施“强迫系统中的富有参与者拥有许多密钥”。
下面描述的备选实施概括了状态的概念并认为每一用户i由K+1个副本(i,v)组成,每一副本被独立地选择为验证者,及在轮次r的步骤s中将拥有他自己的一次性密钥值K取决于i在轮次r中拥有的金钱量
我们现在更详细地看这样的系统怎样工作。
副本数量。设n为每一验证者集合的目标预期基数,及设为用户i在轮次r拥有的金钱量。设Ar为PKr-k中的用户在轮次r拥有的总金钱量,即
如果i为PKr-k中的用户,则i的副本为(i,1),...,(i,K+1),其中
例子。设n=1000、Ar=109及百万。则
验证者和凭证。设i为PKr-k中的用户,具有K+1个副本。
对于每一v=1,...,K,副本(i,v)自动地属于SVr,s。即,i的凭证为((i,v),r,s,Qr-1),但对应的条件变为其总是为真。
对于副本(i,K+1),对于轮次r的每一步骤s,i检查是否
如果是,副本(i,K+1)属于SVr,s。为证明它,i传播凭证
例子。如在先前的例子中,设n=1K、Ar=1B,及i具有4个副本:(i,1),...,(i,4)。则,前3个副本自动属于SVr,s。对于第四个副本,概念上,Algorand'独立地转动偏币,其头面概率为0.7。副本(i,4)在且仅在硬币抛掷为头面时被选择。
(当然,该偏币翻转通过哈希、签署和比较实施,如我们在本申请中自始至终已进行的那样,以使i能证明他的结果)。
像往常一样的商务。已阐述验证者怎样被选择及他们的凭证怎样在轮次r的每一步骤计算,一轮次的执行与已经阐述的类似。
9分叉
已将分叉的概率降低到10-12或10-18,实践中不必要在它们出现的微小机会中处理它们。然而,Algorand也能采用多种不同的分叉解决程序,具有或没有工作量证明。
10区块的新结构及状态信息
该部分提出更好的方式来构建区块,其继续保证所有区块的防纂改性,而且使能更高效地证明各个区块的内容,及更一般地,更高效地使用区块计算感兴趣的特定量而不必仔细检查整个区块链。
区块链的防纂改性。如已提及的,为形成区块链,区块Br具有下面的高级结构:
Br=(r,INFOr,,H(Br-1))46
上面,INFOr为希望使得在第r个区块内安全的信息:在Algorand情形下,INFOr包括PAYr、量Qr-1的区块领导的签名等。
区块链的众所周知的基本性质是其使每一区块的内容防纂改。即,在不改变最后区块的情形下,没有人能够改变过去的区块。下面我们快速回忆该性质。
设最新的区块为Blast,并假定用不同的(“弯线”)区块代替Br。则,由于H能够抵抗冲突,以压倒性的概率不同于H(Br)。因而,无论怎样选择区块链中的区块即中的信息再次由于H的冲突抵抗力,
该不等式传播。即,不同于Br+2,依此类推。使得,最终
区块链中的各个区块的低效可验证性。考虑人X不知道整个区块链但知道Bz是其中的正确区块。则上面的基本性质使能向这样的人证明任何个别区块Br(其中r小于z)也是正确的。即,将所有中间区块Br+1,...,Bz-1作为“证据”提供给X,其然后使用H重新生成从r向前的区块链,直到他重构第z个区块并检查其是否与他知道的区块Bz一致为止。如果一致,则X被说服Br的正确性。实际上,任何能够找到这样的看起来合法的证据的人同样必定已发现哈希函数H中的冲突,其实际上不可能找到。
为看到这样的可验证性的有用性,考虑下面的例子。假定区块链由支付系统如比特币或Algorand生成,设X为法院情形的法官,其中被告希望向X证明他实际上在两年前就像原告进行了争议的支付P。由于假定法官能获得区块链中正确的最后区块或者至少足够最近的正确区块Bz是合理的,“所有”被告必须要做的是向法官提供证据Br+1,…,Bz-1,其然后按所述的验证该证据。当然,问题在于这样的证据可能非常长。
区块树。由于高效地证明过去的个别区块的准确内容的能力非常重要,我们开发了新的区块结构。在这些结构中,如图区块链中一样,整个区块序列的完整性通过短得多的值v进行紧凑地保证。该值不是序列中的最后区块。然而,区块链的基本性质被保持:区块之一中的任何变化将导致v中的变化。
新结构的优点在于,给定v及设n为序列中当前的区块数量,每一个别区块的内容可被非常高效地证明。例如,在区块树中,我们的新区块结构的具体实施例,如果曾经产生的区块总数为n,则每一区块可通过仅提供字节的信息进行证明。
这实际上是非常小巧的证据。在每分钟生成一区块的系统中,在2000年的运行之后,因而,小于1KB(1000字节)就足以证明每一个别区块的内容(小于2KB满足20亿年之后的需要,及4KB实质上永远满足需要)。此外,这样的证据被非常高效地验证。
高效的状态。不同的效率问题影响比特币,更一般地,影响基于区块链的支付系统。即,为重构系统的状态(即在给定时间哪些密钥拥有什么),不得不获取整个支付历史(直到该时间),当进行的支付次数非常高时,一些事可能很难做到。
我们将使用区块树以同样得到这样的迫切需要得到之物。
我们通过适当修改下面回顾的老得多的概念构建区块树。
10.1默克尔树
默克尔树是借助于单一值v认证n个已经知道的值v0,...,vn-1的方式,使得每一值vi的真实性可被个别且高效地验证。
为了简单,假定n为2的幂,n=2k,使得每一值通过单独的k位字符串s唯一地识别。则默克尔树T概念上通过在深度为k的满二叉树中存储具体的值进行构建,其节点已使用长度≤k的二进制串唯一地命名。
根被命名为ε,空字符串。如果内部节点被命名为s,则s的左边孩子为s0(即通过用0级联s获得的字符串),及右边孩子称为s1。之后,识别每一整数i∈{0,...,n-1},用其二进制k位扩展,具有可能的首位0,以构建默克尔树T,将每一值vi存储在叶子i中。之后,他使该树默克尔化,即他按如下所述按颠倒方式(即通过首先选择深度k-1的所有节点的内容,然后深度k-2的所有节点的内容,依此类推)存储在T的所有其它节点中。如果vs0和vs1被分别存储在节点s的左和右孩子中,则他在节点s中存储256位值在该过程结束时,根将包含该256位值vε。
图1.A中示出了深度为3或8叶子的默克尔树。
现在假定vε已知或者被数字签署,我们现在展现每一初始值vi怎样可被相对于vε认证。
考虑(最短)通路P,从节点x开始,到达根。则x的内容vx的认证路径为P中的节点的同胞的内容的序列,其中节点s0的同胞为节点s1,反之亦然。因而,深度k的树中的叶值的认证路径由k-1个值组成。例如,在图1.A的默克尔树中,从叶子010到根的通路为P=010,01,0,ε,及v010的认证路径为v011,v00,v1,由于根没有同胞。图1.A的默克尔树中的通路P和v010的认证路径在图1.B中图示。
可使用具有2k个叶子的满二叉树来具有认证n<2k个值v0,…,vn-1的默克尔树,通过将每一存储在第i个叶子中,及将特殊串e(对于空)存储在所有其余叶子中,然后以通常方式填充其余节点。所得的默克尔树(实际上存在)具有n个叶子(由于所有其它叶子为空)。47
为验证vi(的真实性),给定其认证路径,相对于根值vε,重构该路径中从叶子i到根的节点的内容,然后检查最后重构的值是否实际上为vε。即,如果认证路径为x1,...,xk-1,则首先按正确的顺序将vi和x1H哈希在一起,即如果i的最后位为0,计算y2=H(vi,x1);否则计算y2=H(x1,vi)。然后,按正确的顺序将y2和x2H哈希在一起。依此类推,直到计算值yk并将其与vε比较为止。在且仅在yk=vε时,值vi被认证。
为什么这样的验证起作用的原因在于,再一次地,H能够抵抗冲突。实际上,即使改变初始存储在叶子或节点中的值的单一位也以压倒性的概率改变存储在父辈中的值。该变化一直渗透,导致根处的值不同于已知的值vε。
10.2区块树
如我们已看到的,默克尔树借助于单一值即存储在根处的值vε高效认证任意及任意多的已知值。实际上,为了通过默克尔树的单一根内容认证k个值v0,...,vk-1,必须首先知道v0,...,vk-1以将它们存储在该树的前k个叶子中,将e存储在其它适当的节点中,然后计算树中的所有其它节点的内容,包括根值。
默克尔树已被用在比特币中认证给定区块的支付。实际上,当构建给定区块时,其已经选择将放入区块中的支付。
然而,使用默克尔树认证增长的区块链越来越富有挑战性,因为不能提前知道将认证哪些区块。
我们展现怎样使用默克尔树,按新的方式使用,以获得使能各个区块的高效可证明性的新区块结构。现在说明我们首选的这样的结构:区块树。
区块树保证。区块树使每一区块序列B0,B1,...中包含的信息安全。该重要的性质未被如区块链中那样通过将先前区块的哈希存储在每一区块中实现。然而,每一区块也存储某一短的安全信息,保证在给定区块Br前面的区块Bi的内容中进行的任何变化将导致Br的安全信息也变化。区块树的这种保证与区块链提供的相当。主要优点在于,新的安全信息使能向知道区块Br的安全信息的人证明任何区块Bi的准确内容,而不必处理Bi与Br之间的所有区块。这是主要优点,因为区块的数量可能(或可能变得)非常非常大。
区块树中的区块结构。在区块树中,区块Bi具有下面的形式:
Br=(r,INFOr,Sr)
其中INFOr表示区块Br中需要保证安全的信息,及Sr为Br的安全信息。
在区块树的优选实施例中,安全信息Sr实际上非常小巧。其由位字符串的序列组成,即,每一个32字节的字符串。应注意,在大多数实践应用中,因为240大于千的五次方。
下面,我们仅针对区块树指定信息Sr。本领域技术人员将认识到,其可容易地推及具有实质上同样保证的多种其它区块结构,所有这些均在本发明的范围之内。
区块树中的区块生成。为了简洁,设INFOr=vr。概念上,我们以深度k的满二叉树T开始,使得2k为可能的值vr的数量的上限。区块按顺序生成,因为值v0,v1,...按顺序生成。当新的值vi被生成时,概念上讲,其被存储在T的叶子i中,然后,多个不同的字符串被计算并存储在T的节点中,以构建默克尔树Ti。这些字符串之一为特异串e(当出现在Ti的节点x中时,字符串e表明没有x的后代属于Ti,及我们假定
当第一值v0被生成并存储在叶子0中时,T0与T的(那样填充的)节点0一致。事实上,这样的T0为基本的默克尔树。其深度为其根为R0=0,及其将v0存储在第一深度-0叶子中(及实际上存储在其唯一叶子和节点中)。
当第i+1个值vi已被生成并存储在T的叶子i中时(可能代替已经在那里的字符串e),默克尔树Ti被从先前的默克尔树Ti-1构建如下(通过归纳假设,Ti-1具有深度根Ri-1和i深度叶子,分别存储值v0,…,vi-1)。
如果叶子i为Ri-1的后代,使Ri=Ri-1;否则,使Ri为Ri-1的父辈。设P为T中从叶子i到节点Ri的(最短)通路。对于P中的每一节点j,如果其同胞j'为空,将特殊串e存储在j'中。最后,对于P中的每一节点s,按顺序从叶子i(不含)到节点Ri(含),将值vs=H(vs0,vs1)存储在s中,如果vs0和vs1分别为存储在s的左和右孩子中的值。容易看出,将那样计算的值存储在其节点中的、T的以Ri为根的子树为默克尔树。该默克尔树为Ti。
当初始为空的满二叉树T具有深度3时,前8个连续默克尔树的构建被合成在图2中。具体地,每一子图2.i通过或用特殊串e(表明“Ti在该节点下面为空”)或用数值j∈{0,…,i-1}(表明在构建默克尔树Tj时该节点的内容上次被改变)标记默克尔树Ti的每一节点而突出显示默克尔树。为突出显示节点的(最后在Tj中改变的)内容将不再变化,无论我们可能构建多少默克尔树,我们将j写成粗字体。
将这记在心里,我们按如下生成新区块Bi。在选择我们想要在第i个区块中保证安全的信息INFOi之后,我们将值vi=INFOi存入T的叶子i内;构建默克尔树Ti;及设定
Si=(Ri,authi)
其中Ri为Ti的根及authi为Ti中vi的认证路径。则新区块为
Bi=(i,INFOi,Si)
应注意,Si实际上由个字符串组成。为确保authi中的每一字符串因而及Si中的每一字符串实际上为256位长,而不是将vi存储在叶子i中,我们可代之以存储H(vi)。
区块树的安全性和可证明性。假定某人知道区块Br并希望正确地获知先前区块Bi的信息INFOi。应注意,当构建区块树序列T0,T1,...时,每一树将先前的区块树包含为子树。实际上,每一树Tx的叶子为每一随后的树Ty的前x+1个叶子,因为不理先前叶子的内容,及新的值被插入到上次填充的叶子右边的第一叶子中。因而,INFOi是默克尔树Tr的第i个叶子的内容,其第r个叶子包含INFOr及其根值Rr为Sr的第一分量,区块Br的安全信息。
应注意,知道Br的人还知道Sr和Rr。因而,为向这样的“人”证明INFOi为区块Bi的信息,向他提供INFOi在默克尔树Tr中的认证路径即满足需要。实际上,我们已经看到,这样的认证信息可容易地检查,且不容易伪造。
注意,前述认证路径由个值组成(因为Tr具有深度d+1),每一值由32字节组成(因为H产生32字节输出)。因而,相对于Br证明Bi的内容非常容易。如所提及的,在大多数实践应用中,d<40。
从容易获得的信息构建区块的可构建性。为构建是区块Bi的一部分的结构信息Si,似乎需要来自默克尔树Ti到处的信息。毕竟,INFOi因而及存储在叶子i中的值vi容易获得,但vi的认证路径authi包括先前树的节点的内容,其原理上可能不容易获得。如果必须获得整个Ti-1以构建Si,则构建新区块Bi可能不太有效率。
然而,应注意,在区块链的精神中,每一Bi可从先前区块Bi-1及选择的信息INFOi琐细地计算。实际上,Si中的每一字符串为下述之一:
(a)H(INFOi);
(b)固定的字符串e;
(c)Si-1中的字符串;及
(d)通过按预定方式对上面类型的字符串进行哈希获得的字符串。
图3经粗边线突出显示了其内容足以针对区块树中的前8个区块的构建计算Si=(Ri,authi)的节点。具体地,每一子图3.i突出显示其内容足以生成Si的节点。每一突出显示的节点进一步被标记a、b或c以指明其属于类型(a)、(b)或(c)。类型(d)的节点,包括根Ri,保留不被标记。
总之,在基于区块树的系统中,区块生成非常高效。
10.3状态信息的高效管理
区块树在所有类型的应用中提高区块的安全处理,包括支付系统,如Algorand。然而,在这样的系统中,有大大受益于提高的另一方面即状态信息。
对高效状态信息的需要。轮次r的正式状态Sr由一列数组组成,对于每一当前的公钥x,指明x拥有的数额及可能另外的信息:系统中的密钥拥有的金钱数额动态变化,我们需要尽可能高效地跟踪该变化。
迄今为止,如同比特币中一样(尽管其状态信息非常不同),当前状态未被认证,但其可从认证的支付历史推导。区块树不保证证明轮次r的状态Sr的能力。实际上,经区块树,Br前面的区块Bi的交易集PAYi可被高效证明,相对于Br。然而,为证明状态Sr,一般应可证明地获得Br前面的所有区块的交易集。因此,需要高效的方法用于证明者P向不知道Sr的、或者知道Sr但愿意接收其当前值的明确证据的其它用户或实体证明Sr。
具体地,这样的方法使新用户或者已经离线一会儿的用户能容易且安全地追上当前系统状态。
我们现在提供这样的方法:状态树
状态树:第一方法。状态树STr是特殊的信息结构,其使P能够高效地证明在轮次r-1结束时状态Sr的值。
实际上,STr使P能够高效地证明,对于任何可能的用户i∈PKr,i在轮次r开始时拥有的准确数额而不必证明所有用户的状态(更不用说提供整个区块序列B0,...,Br-1)。实际上,对于某一用户正确地获知仅少数几个用户的状态可能很重要,例如他可能考虑从其接收支付的那些用户,以确保在开始与他们协商之前他们具有金钱。甚至用户i接收他自己的值的证据可能有用,例如为了得到借款、在协商中被严肃地接纳、或者下订购单。
首先假定P知道整个区块序列B0,...,Br-1并被广泛信任,至少被一组用户和实体信任。在该情形下,P
-获取(如检索)交易集序列PAY0,...,PAYr-1;
-计算用户集合PKr;
-构建默克尔树Tr,具有至少nr=|PKr|个叶子,其中前n个叶子存储所有n个用户的状态信息,及每一叶子存储单一用户的信息(如果有,其它叶子可存储表明叶子为“空”的特异串e);及
-使Tr的根值Rr可由至少另一实体得到,优选进行数字签署。
则在某人向P请求某一用户x∈PKr的状态的任何时间,P向他提供存储在叶子lx中的值在Tr中的认证路径,如果lx存储i的状态信息。
重要地,在计算和数字签署Rr之后,为回答关于某一用户的状态的询问,P不再需要。实际上,同样知道Tr的任何其他实体P'可回答实体V关于x的询问。实际上,P'可向V提供同样的数字签署的根值Rr、关于x的状态信息、及P应已提供给V的后一信息的同样的认证路径。因而,如果V信任P,则他能够验证P'提供的回答,即使他不信任P'。实际上,由于报告的认证路径保证x的状态相对于默克尔树Tr的根Rr正确,及由于Rr由P数字签署,V可验证关于x的状态信息的真实性。只要他信任P,V不需要信任P'。
因而,P可散布他对Rr的数字签名(或者使其可由另一实体P'得到),及让他人(P')以可证明的方式回答状态信息。
我们现在希望强调该第一方法的下述性质。
1、(“好消息”)P不需要在每一轮次从零开始计算Tr。
实际上,由于用户x∈PKr的状态是否被存储没有关系,已计算并存储先前的默克尔树Tr-1的P时,在获知新区块Br的交易集PAYr之后,他可从Tr-1计算Tr。实质上,如果PAYr具有k个支付,则P需要更新至多2k个用户的状态信息(即PAYr中的每一支付的付款人和受款人的状态信息)并第一次插入至多k个新用户的状态信息(仅为了简单,假定PAYr中的每一支付可带入系统至多一个更多的用户)。
如在区块树的情形下,每一新用户的状态可被插入到下一空叶子中。此外,应注意,每当P更新现有用户i的状态时,P仅需要改变从存储i的状态的叶子到根的路径上的内容。该路径最多长,如果n=|PKr|,并最多需要一样多的哈希。实质上,对于每一新添加的用户同样成立。应注意,尽管用户的数量n可能非常大,k即在给定轮次交易的用户数量可能小。此外,仅需要次哈希来从Tr-1更新Tr。这实际上比从头开始计算Tr更有利,从头开始计算将需要大约n次哈希。
2、(“坏消息”)如果被询问用户P/P'不能证明实际上,当某一V询问用户x在轮次r中的状态时,P或P'均不能容易地向V证明没有关于x的状态信息存在,因为x在该轮次不在系统中。
P或P'可向V指明Tr中每一叶子l的内容。从该全局信息,V可(a)检查没有叶子包含x的状态;(b)重构对应于这些叶子内容的默克尔树的根值;及(c)检查这样计算的值与P数字签署的根值Rr一致。然而,前述全局信息可能非常大及不容易传输。
不能针对关于不(至少迄今不)存在的用户的询问容易地提供可信的回答可能不是关注的事(例如,因为用户的总数不是太大)。在该情形下,我们的第一方法刚刚好。然而,如果其是关注的事,因而我们提出不同的方法。
状态树:第二方法。再次假定P知道整个区块序列B0,...,Br-1。则在第二方法中,P
-检索交易集序列PAY0,...,PAYr-1;
-计算用户集合PKr;
-计算每一用户i∈PKr的状态信息
-根据第一条目(例如根据它们的用户的词典编纂顺序)对n个状态信息对排序;
-构建默克尔树Tr,其第一叶子包含PKr中第一用户的状态信息,第二叶子包含第二用户的状态,等等(如果有,另外的叶子包含字符串e);及
-数字签署Tr的根值Rr并使该签名可得到。
应注意,该第二方法继续使另一(不必然被信任的)实体P'可信地回答关于各个用户的状态的问题,但“颠倒”关于性质1和2的消息。即
1'、(“坏消息”)不容易如前所述那样使用Tr-1容易地构建Tr。
这是因为Tr的叶子现在包含用户的根据用户排序的状态信息,插入新用户变得有问题。如果单一新用户需要被插入到例如叶子的中间,则一半叶子的内容必须被改变。
2'、(“好消息”)P或P'可证明用户实际上不属于PKr。
如果V询问在轮次r不在系统中的用户x的状态,则甚至未被信任的P'可提供两个相继叶子的内容的认证路径,相对于P认证的根值Rr,一个叶子存储关于用户i'的状态信息,另一叶子存储另一用户i”的状态信息,使得i'<i<i”。
应注意,V可实际上确定两个认证路径属于两个相继叶子的内容。这是因为,由于实际上不可能找到两个不同的字符串哈希为同样的值,给定两个字符串a和b,我们具有H(a,b)≠H(b,a)。因而,给定h=H(a,b),可确定h是“a之后b”的哈希,而不是从相反方向。这意味着,在默克尔树Tr中,值vx的认证路径不仅证明值vx是什么,而且证明其存储在Tr的叶子x中。
例如,考虑图1.B。在该默克尔树中,值v010的认证路径为(v011,v00,v1)。为了使用该认证路径验证v010,可按顺序计算下述哈希:
(a)h1=H(v010,v011)
(b)h2=H(v00,h1)
(c)h3=H(h1,v1)
然后检查h3是否实际上与根值vε一致。
应注意,由于H(x,y)≠H(y,x),
哈希(a)证明v010存储在存储h1的无论什么节点的0孩子中;
哈希(b)证明h1存储在存储h2的无论什么节点的1孩子中;及
哈希(c)证明h2存储在存储h3的无论什么节点的0孩子中。
因而,由于我们已检查h3存储在根处,v010必定存储在叶子010中,其实际上正是如此。
因而,如果V信任P已针对每一用户i∈PKr将i的状态信息存储在Tr的第i个叶子中,则看到一个叶子包含用户i'<i的状态信息的证据,及下一叶子包含用户i”>i的状态信息的证据,则V可安全地推断
(同样应注意,前述认证路径可共享许多值,因而不必然将两个认证路径整体传给V。)性质1'可能不是关注点(例如因为P完美地能够从头开始构建Tr)。如果是这样,则第二方法刚刚好。
否则,我们需要使P既能够从Tr-1容易地构建Tr又能够容易地证明用户实际上不属于PKr的方法。
我们现在提供该方法。
状态树:第三方法。查找树是一种数据结构,其概念上将来自排序的集合的值动态存储在二叉(仅为了简单!)树的节点中。通常,在这样的树中,一节点包含单一值(或为空)。由前述数据结构动态支持的操作包括插入、删除和查找给定值v(如果值v不存在,也可确定其,例如因为返回的答案是⊥)。
在开始,查找树仅由空的根组成。如果插入的值比删除的值多,则该树生长。具有n个节点的二叉树的深度至多为log n,当树满时是这样;及当树为通路时,至多n-1。然而,查找树的深度不被保证小。在最坏情形下,按特定顺序插入n个特定节点可能导致查找树由深度n组成。
“平衡”查找树保证,如果当前存储的值的数量为n,则树的深度短,即n的对数。在具有n个节点的平衡查找树中,上面提及的三个操作中的每一操作可在O(logn)个基本步骤中进行,如比较两个值、交换两个节点的内容、或者查询节点的父辈/右儿子/左儿子的内容。
到现在已知平衡查找树的几个例子。特别众所周知的例子为AVL树或B树。在一些例子中,值可仅被存储在树的叶子中(同时所有其它节点包含使能定位给定值的“方向信息”,如果实际上其被存储在树中)。在其它例子中,值可被存储在任何节点中。下面,我们假定该更一般的情形,及仅为了简单,平衡查找树众所周知且为确定性算法。
假定对于证明者P已获得PKr中所有用户的状态信息的时刻,其希望从头开始构建轮次r的平衡状态树Tr。则他按如下行动。
-P构建平衡查找树Tr,具有n=|PKr|个节点,将用户存储在PKr中。
应注意,该操作至多需要O(nlog n)个基本步骤,因为,在最坏情形下,每一插入需要O(log n)个基本步骤(实际上,P可能想要通过在将PKr中的用户插入到Tr中之前对他们进行排序而获得一些另外的效率)。
-P用i的状态信息替代Tr中每一存储的用户i。
即,他将PKr中用户的状态信息存储在Tr中,使得关于用户i的状态信息的所有插入/删除/查找可经关于用户i的插入/删除/查找进行。
(换言之,Tr为可经存储在其节点中的第一条目查找的平衡树。)
-P使Tr“完整”使得每一非叶节点准确地具有两个孩子。
在二叉树中,每一节点至多具有两个孩子。因而,非叶节点x可能仅具有一个孩子。在不损失一般性的前提下,假定其是x的左边孩子x0。在该情形下,P概念上给予x右边孩子x1,其中他存储字符串e。
-P使哈希值hvx关联到Tr的每一节点x,从叶子向上进行这样的计算。
如果x为叶子,则hvx为存储在x中的值vx的哈希,即hvx=H(vx)。
如果x为深度d的节点,存储值vx,则hvx=H(hvx0,hvx1,H(vx))。
最终关联到Tr的根ε的哈希值为
-P数字签署Rr。
我们将这样获得的树Tr称为默克尔-平衡-查找-树。应注意,这样的Tr为平衡查找树,因而查找/插入/删除算法对Tr起作用。同时,Tr为广义默克尔树。普通的默克尔树将信息值即需要被保证安全的值仅存储在叶子中,及仅将安全值即用于使树“安全”的哈希值存储在内部节点中。默克尔树Tr将记为vx的信息值及记为hvx的安全值均存储在每一节点x中。
相对于根安全值Rr,信息值vx实际上是什么的证据包括hvx0,hvx1,H(vx)及由针对是从x到Tr的根的通路中的节点的同胞的每一节点y的值hvy组成(按自下而上顺序)的认证路径。
我们现在展现P不需要从零开始计算Tr。实际上,假定P已可获得先前轮次的默克尔-平衡-查找-树Tr-1。则在获得新区块Br之后,P针对Br的交易集PAYr中的每一支付按如下行动。
如果修改现有用户拥有的数额,则P更新该用户的状态信息,其被存储在节点x中,然后对树重新默克尔化。这简单地需要重新计算沿从x到根的通路的hvy值,因而至多次哈希,如果n为用户数。
如果带入具有初始金钱量αi的新用户i,则P将状态信息插入到Tr中。由于Tr为平衡查找树,这仅需要O(logn)个基本步骤及至多影响对数多的节点。其后,P使树重新默克尔化。
在构建Tr之后,P散布他对Rr的数字签名,或者将其给予处理来自多个不同验证者V的询问的P',验证者可能信任也可能不信任P'。
为回答V关于用户i的询问,P'按如下行动。
-P'运行同样的从Tr查找用户i的算法。
该查找包括检索Tr的至多O(log n)个节点的内容,其中,每一检索的内容确定其内容需要被接下去检索的节点。
-只要所述算法检索到节点x的内容vx,P'相对于Rr提供vx的证据。
因而,V可使用P对Rr的数字签名及所接收的证据检查由P'提供的每一节点x的内容是否正确。因而,V实际上运行同样的在默克尔树Tr中查找的算法,以正确地检索到用户i的状态信息,如果i∈PKr。否则,如果(即如果查找算法返回符号⊥/字符串e),则V被使得确信i不是PKr中的用户。
认识到Algorand中的可信P。当没有个别证明者P被许多人信任时,“构建”一个变得很重要。
应注意,在Algorand中,确保在轮次r的每一步骤s,SVr,s中的(加权的)大部分验证者诚实。因而,我们现在确保验证者能够完成P的任务!
更精确地,
-轮次r的潜在验证者i,除了区块的其它场之外,还产生状态树Tr(例如通过使用上述的三种方法之一)。
应注意,他可容易地进行该操作,因为他通常知道迄今的区块链:B0,...,Br-1。
-i提出同样包括Tr的根值Rr的区块。
例如,
-验证者(具体地,轮次r的第二步骤的验证者)检查由该轮次的领导提出的区块是否有效,其包括检查第四分量即状态树Tr的根值Rr是否有效。
实际上,这些验证者知道迄今的区块序列B0,....,Br-1,因而可确定在轮次r之后状态信息应是什么,假定所识别的领导提出的区块被采用。
-在达成BA协定之后,轮次r的正式区块包含正确的根值Rr,及由于Br被足够多的具有适当凭证的验证者数字签署,Br的证书也证明Rr。
应注意,新的正式区块可以为空,这样的空区块为下面的形式
对应于在新区块为空区块时所有用户的状态信息不变的事实。
总之,P对Rr的数字签名被Br的证书替代。由于Rr被不论用何种方法认证,即使不可信的证明者P′也可相对于Rr证明轮次r的每一用户i的状态信息,如前所述。
应注意,在新区块被生成时及时获知它们的每一人,只要采用的状态树属于“可容易更新的”类型,均可更容易从先前的Tr-1构建Tr。
11代表验证者和潜在验证者
代表验证者。用户i被选择为SVr,s的成员的概率也可基于其它用户“投票”给i的金钱(例如,再次地,与其成正比)。用户U可能希望对他如常进行的支付和接收的支付中的所有支付保持控制。然而,他可能希望将权利和义务委托给另一用户i以充作领导和/或验证者。在该情形下,及仅用于该目的,这样的用户U可表明针对领导/验证者目的他希望使i作为他的代表。用户U可实际上将他的领导/验证者义务委托给一个或多个用户i。片刻及不损失一般性,我们假定U对于领导和验证者目的选择具有单一代表i。
有几种(优选数字签署的)方法用于U选择i作为他在轮次r的代表。例如,他可经给i的支付P(例如使用P的不敏感的字段I)或经给另一用户的支付P′进行,以不引入(不排除它)任何另外的体系。一旦这样的支付P或P′被插入到区块Br的交易集PAYr中,大众了解U的选择,i作为U的代表生效。
如果U选择i作为他在轮次r的代表,则他的选择取代U进行的任何在前的选择,及i优选保持作为U的代表直到U进行不同的选择为止。48用户U也可在他进入系统的时刻就将i选择为他的代表。例如,如果U计划经来自另一用户的支付进入系统,U可请求该用户将U的指明U选择i作为他的代表的签名包括在中。
由U(及可能其他用户)这样投票给i的金钱及i直接拥有的金钱可被同等地对待。例如,如果验证者将根据在轮次x拥有的金钱从PKx中的用户选择,则U(及已选择将他们的金钱“投票”给代表的所有其他用户)应已考虑对该选择目的具有为0的金钱,同时i应根据其进行选择的金钱将为其中为i个人在轮次x中拥有的金钱,及为在轮次x(由所有用户)“投票”给i的总金钱量。例如,如果U为在该轮次将他的金钱投票给i的唯一用户,则如果在轮次x将他们的金钱投票给i的用户集合为S,则当然,根据在轮次x他拥有的及投票给他的金钱选择i的一种方式包括经秘密加密抽签选择i,具有概率
也可能不同地对待i直接拥有的金钱和投票给i的金钱。例如,i可根据金钱量进行选择,其中c为给定系数。例如,当c=0.5时,i直接拥有的金钱当作投票给他的金钱的两倍。
用户U也可能仅将他拥有的金钱的一部分投票给i。例如,U可选择将其金钱的3/4投票给i,并使余额使他自己被选进SVr,s有价值。在该情形下,U仅贡献给及U以概率被选进SVr,s中。
由于用户i被选择为属于SVr,s中,可能有回报提供给用户i,及i可将这些回报与将他们的部分金钱投票给他的用户分享。例如,如果i变成区块的领导,他可接收回报R。在该情形下,可将该回报的部分对应于U。例如,如果由U投票给i的金钱为m,则R中i付给U的部分可以是
用户选择及改变代表的能力可帮助保持代表诚实。例如,如果U将他的金钱投票给i,但怀疑在i为区块Br的领导时交易集PAYr太常为空或“兆”,U可改变他的代表。
一般用户U也可指定多个代表,将他的金钱的不同百分比投票给他们中的每一个。当然,预先指定的程序用于防止U投票比他实际具有的多的金钱。
用户U选择代表的另一种方法是产生单独的公开-秘密数字签名对(pk'U,sk'U),及将为领导/验证者选择目的代表U的权力转移到pk'U(例如经使区块进入区块链中的数字签名)。即,pk'U不能代表U进行支付(实际上,pk'U可能永远不直接具有金钱),但可代表U作为领导或验证者,及可根据U在相应轮次x的金钱被选择为领导/验证者。例如,pk'U可以下面的概率被选中
(这假定U托付所有他的领导/验证者权利/职权,当然,如上所述,U可仅托付其权利/职权的一部分。)为托付另一用户或实体i代替他作为领导/验证者,U将sk'U给予i。这使得非常清楚怎样在U与i之间拆分pk'U可能“赚取”的任何回报(以不管怎么确定的比例),因为是pk'U自己将被直接选中,而不是使U贡献于i的选中概率,如早前所述。
应注意,不必然U自己生成(pk'U,sk'U)。例如,如果U希望选择i作为他的代表,i可生成(pk'U,sk'U)并将pk'U给U签署。
具体地,用户U可选择银行i作为他的代表,在任何上面描述的方法中。选择代表的一个优点是后者可能具有比典型用户快得多且安全的通信网络。如果所有一般用户选择(或被要求选择)适当的代表,区块的生成将被加速。然后区块可在一般用户有权访问的网络上传播。否则,如果i代表U,i可将新区块直接给U,或者给U他关系的支付已经进入区块链的证据。
潜在验证者。迄今为止,在Algorand中,每一用户i可在某一轮次r被选择为领导或验证者。然而,本领域技术人员可容易认识到的是,上述情形并非限制。实际上,Algorand可具有一组用户,其可以无需准入的方式在任何时间加入并如常进行和接收支付(更一般地,交易);及具有特殊的一类潜在验证者,轮次领导和验证者从潜在验证者选择。这两组可重叠(在该情形下,至少部分潜在验证者也可进行和接收支付),或者分开(在该情形下,潜在验证者仅可在被选中时作为领导或验证者)。在某种意义上,在先前部分描述的Algorand中,每一用户为潜在验证者。Algorand也可具有具有两个单独的金钱量的用户或潜在验证者i,他们中只有一个对i被选择为领导或验证者有价值。
所述一类潜在验证者可被使得需要准入。在该情形下,在给定的潜在验证者集合S之中选择验证者/领导i的概率不需要取决于i拥有的金钱量。例如,i可经具有均匀概率的加密抽签从S选择。
作为备选,所有潜在验证者可总是被选中(和/或仅他们之一被选择为轮次领导)。在该情形下,他们可使用协议BA*对新区块达成协定,或者更一般地,他们可使用高效且优选参与者可替换的协议。
12需要准入的Algorand
在该部分,我们讨论Algorand的平衡私密性和可追踪性的需要准入版,其启用新的一类激励,并为银行或其它外部实体提供新的及非控制的角色。该需要准入版依赖于下面回顾的经典概念。
12.1数字证书
假定有权在系统中注册用户的一方R的公钥pk被公开知道。则,在识别用户i并验证公钥pki真地属于i之后,R可发出数字证书Ci,保证不仅pki是系统中的合法公钥,而且关于i的一些适当的另外的信息infoi成立。在该情形下,证书实质上具有下面的形式
Ci=SIGR(R,pki,infoi)
在infoi中指明的信息可以非常各种各样。例如,其可指明i在系统中的角色和/或证书的发出日期。还可指明到期日期,即在该日期之后将不再依赖于Ci。如果这样的日期没被指明,则Ci未过期。证书已在不同的应用中和以不同的方式使用很久。
12.2具有(未过期的)证书的Algorand
在Algorand中,可要求每一用户i∈PKr具有由适当实体R(例如由预先指定集合中的银行)发行的数字证书Ci。当向另一用户进行轮次r支付时,i可连同一起转发Ci和/或Cj,或者将它们中的一个或两个包括在自身中,即,用符号表示为
假定后一实践,
-仅在支付还包括其付款人及其受款人的证书时,支付被认为在一轮次有效,因而可进入PAYr。
此外,如果证书具有到期日期r=[t1,t2],则t2必须小于最早的到期日期。
-同时,如果这样的支付属于PAYr,则其对应的金钱转移无条件地执行。
未过期的证书的作用。一旦用户i的证书Ci过期,或者在其期满之前,只要i“声誉良好”,R可发行具有较晚到期日期的新证书C'i。
因此,在该情形下,R对i的金钱具有有意义的控制。其不能没收它用于其个人使用(因为这样做需要能够伪造i的数字签名),但他可防止i花它。实际上,在Ci的到期日期之后的轮次r中,没有i的支付可进入PAYr。
应注意,R的这种权力对应于适当实体E例如政府冻结用户的传统银行账户的权力。实际上,在传统的设置中,E甚至可挪用i的金钱。
数字货币的主要吸引力在于,任何实体E将用户与其金钱分开的严密的不可能性。因而我们强调该不可能性在Algorand的基于证书的版本中继续成立,其中所有证书未过期。实际上,希望在轮次r中向另一用户j进行支付的用户i可总是将未过期的证书Ci和Cj包括在向j的轮次r支付中,及如果该轮次的领导lr诚实,将出现在PAYr中。总之,未过期的证书不能被用于将用户与其金钱分离,但实际上对实现其它目标非常有价值。
12.3防止经(未过期的)证书的非法活动
经传统支票进行的支付的付款人和受款人可由持有支票的每一人容易识别。因而,支票对于洗钱或其它非法活动不理想。由适当注册代理人发行的数字证书可用在Algorand中以确保仅部分给定实体可识别给定公钥pki的拥有者,且仅在适当环境下,而不阻止i进行他想的支付。我们现在给出快的例子。
系统中可以有多个注册机构。仅为了简明,设它们为被另一其公钥被普遍知道的更高级机构核准的银行,其公钥被普遍知道(或者已被证明,可能经证书链),及设G为特殊实体(称为政府)。
为作为数字公钥的拥有者加入系统,i需要从经核准的银行之一获取证书Ci。为获取它,在生成公开-秘密签名对(pki,ski)之后,i请求经核准的银行B对pki发出证书。为了发出这样的证书,B被要求识别i,以产生某一识别信息IDi。49之后,B计算H(IDi),及(优选)使其为证书的单独字段。例如,忽略另外的信息,B计算并给i
Ci=SIGB(B,pki,H(IDi))
由于H为随机预言函数,没有人能够从Ci恢复拥有者的身份。仅银行知道pki的拥有者是i。然而,如果政府希望调查例如支付 的付款人,其从检索到相应证书Ci及已发行Ci的银行B,然后以适当的授权(如法院指令)请求或强令B产生i的正确识别信息IDi。
应注意,银行不能泄露不同于初始插入到证书中的信息识别部分ID'i,因为H能够抵抗冲突。作为备选,代替H(IDi),在密码使用说法中,使用给IDi的任何“承诺”即可满足需要。
一个具体的备选方案是将IDi的加密E(IDi)存储在Ci中,优选使用私钥或公钥加密方案E,其可唯一地解码。具体地,IDi可用仅银行B知道的密钥加密:用符号表示为E(IDi)=EB(IDi)。这样,政府需要B的帮助以恢复识别信息IDi。
作为备选,E可以是公钥加密方案,及IDi可用政府的公钥加密,其是唯一知道对应的解密密钥的人。用符号表示为E(IDi)=EG(IDi)。在该情形下,政府不需要找B帮助恢复IDi。实际上,所有支付的付款人和受款人的身份对G均是透明的。然而,没有他人可从EG(IDi)获知IDi,包括已从IDi计算EG(IDi)的政府和银行在内。此外,如果加密EG(IDi)是盖然论的,则甚至已正确猜测到pki的拥有者是谁的人也不能确认其猜测。
我们强调,一旦证书Ci已被发出,B和G对i的数字签名均没有任何控制,因为仅i知道对应于pki的秘钥ski。此外,B和G均不能了解i的支付的敏感信息因为唯一的是的一部分。最后,B和G均不涉及处理支付仅随机选择的验证者被涉及。
总之,所讨论的关于比特币类系统的法律实施关切不再是问题,而且完全不牺牲用户的隐私。实际上,除了B和G之外,i继续享有他在比特币及类似系统中享有的同样的(伪)匿名,相对于任何他人:银行、商人、用户等。
最后,通过使用更复杂的加密技术,还可能在适当环境下保持其可追踪性的同时增强用户隐私。50
12.4银行的新角色
Algorand中的密钥证明是银行的新角色。银行B可容易地为其客户扮演的角色。实际上,B已经非常了解他们及通常不时与他们交互。通过证明其客户之一的密钥i,B进行简单但有价值的(及可能财政上有回报的)服务。
银行B在Algorand中可具有的另一角色是,通过被客户i适当授权,B可将金钱从i的传统银行账户转移到i在Algorand中拥有的数字密钥即数字pki。(实际上,B及所有其它银行“以同样的汇率”这样做,Algorand可被用作基于国家货币的、非常分布式的、方便的及自管理的支付系统。)银行B向pki转移金钱的一种方式是从B在Algorand中拥有的数字密钥pkB向pki进行支付。实际上,银行可能比它们的客户更容易地以公开汇率将国家货币转换到Algorand内。51
最后,由于银行通常可信,保有对他进行的支付的完全控制的用户i可能希望委托银行B代表他作为验证者行动,与B共享他的验证激励。52
12.5仅来自零售商的回报
不管注册机构是否是银行,及不管法律实施关切怎样解决,Algorand的需要准入的部署使能识别(例如在其证书Ci内)给定密钥pki属于一商人。
目前接受信用卡支付的商人已经接受不得不向信用卡公司支付交易费。因而,他可能优选在Algorand中支付1%的费用(在信用卡系统中通常支付更高的交易费)(除了较喜欢在几分钟内而不是几天内及以不太可争议的方式被支付之外)。
因而,基于证书的Algorand可确保
(1)所有人仅回报给商人的支付的小的百分比;及
(2)验证者被激励也处理所有其它支付。
例如,设A'为在PAYr的支付中支付给零售商的总金额,可计算最大潜在回报R'(如R'=1%A')。然而,领导和验证者将不共同接收整个金额R',而是仅随PAYr中的所有支付的总数(或总金额,或其组合)增长的R'的一小部分。例如,简言之,如果PAYr中的支付的总数为m,则将被分配的实际回报为R'(1-1/m)。如前所述,这可通过从支付给每一零售商的金额扣减一部分1%(1-1/m)并根据选择的公式在领导和验证者之间分割该扣减的金额而自动进行。
13变型
我们讨论Algorand的一些可能的变型。
13.1备选的验证者选择机制
迄今,Algorand从随先前轮次而定的量自动选择轮次r的领导lr和验证者集合SVr,确保SVr具有规定的大部分诚实。然而,我们希望指出选择验证者和领导的备选方式。
当然,一种这样的方式是经所有用户运行的加密协议。然而,当系统中的用户数高时,该方法可能慢。因而我们考虑两类备选机制:链接、基于自然及可信方(也可使这些机制与那些已经讨论的机制混合)。
链接机制
归纳地假定每一SVr具有诚实大多数,我们可使SVr自己(或更一般地,直到r的轮次的验证者的部分)选择轮次r的验证者集合和/或领导。例如,他们可经多方安全计算这样做。假定初始验证者集合被选择以具有诚实大部分,我们依赖于自举作用:即,每一验证者集合的诚实大部分意味着下一验证者集合的诚实大部分。由于验证者集合相对于所有用户的集合小,他的成员可非常快地实施该选择。
再次地,对于每一轮次,选择足够长的随机字符串满足需要,验证者集合和领导从该字符串确定性地得出。
基于自然的机制
给定轮次r的验证者集合SVr和领导lr可按从与轮次r相关联的随机值vr预先确定的方式从规定的用户集合PVr-k选择。具体地,vr可以是自然且公开的随机值。其意为可广泛获得的、随机过程的结果,几乎不可被任何给定个体控制。例如,vr可由多个不同城市在给定时间(例如在轮次r开始时,或者在先前轮次的给定时间)的温度组成,或者在给定证券交易所在给定时间购买的给定有价证券的股份数,等等。
由于自然且公开的随机值可能不足够长,不是设置
我们代之以设置
如已经讨论的,需要按适当的伪随机方式拉长H(vr)。
基于受托人的机制
选择SVr的备选方法包括一个或多个著名实体即受托人被选择以保证他们中的至少一个诚实。受托人可能不涉及建立交易集PAYr,但可选择验证者集合SVr和/或领导lr。
当然,最简单的基于受托人的机制为单受托人机制。当仅有一个受托人T时,他必然诚实。因而,他可琐细地选择、数字签署、及使得SVr(或者SVr从其得出的足够随机的字符串sr)在轮次r可得到。
然而,该简单机制对T给予太多信任。为较少程度地信任他,T可使得仅他能产生的、通过轮次r唯一确定的单一字符串sr可得到,例如,sr=SIGT(r)。则每一用户可计算随机字符串H(SIGT(vr)),从其可得出SVr。
这样,T没有控制集合SVr的权力。实质上,他具有供他自行支配的单一战略性决策:使SIGT(r)可得到或者不可得到。因而,更容易检查T是否诚实地行动,因而确保他那样做,使用适当的激励或惩罚。
该方法的问题在于(缺乏)不可预测性。实际上,T可提前计算SIGT(r)并秘密将它透露给某人,其因而知道将来轮次的验证者集合并具有足够的时间攻击或腐化其成员。
为避免该问题,我们可依赖于安全硬件。实质上,我们可使T为防篡改装置,其通过使公钥张贴在“外面”及将匹配的秘钥锁在“里面”及连同在适当轮次输出适当数字签名的程序一起实现。当然,该方法需要信任部署在安全硬件内的程序没有提前泄露将来的签名的秘密指令。
不同的方法是使用与每一轮次r相关联的自然公开随机值vr。例如,T可被请求使SIGT(vr)可得到。这样,由于将来轮次r的值vr没有任何人知道,T没有数字签名可供提前泄露。
然而,T仍然可能泄露的唯一东西是他自己的秘密签署密钥。为阻止该潜在的问题,我们依赖于k个受托人。如果他们可被选择以确保他们中的适当多数诚实,则他们肯定能使用多方安全计算来在每一轮次r选择SVr。更简单地,及具有较少信任,在每一轮次r,我们可使每一受托人i使与r唯一关联且仅i可产生的单一字符串可得到,然后针对所有这样的字符串计算SVr。例如,每一受托人i可使字符串SIGi(r)可得到,使得可计算验证者集合SVr能从其得出的随机字符串sr=H(SIG1(r),...,SIGk(r))。在该方法中,我们可依赖于激励和惩罚来确保每一数字签名SIGi(r)被产生,并依赖于甚至单一受托人i的诚实来确保序列s1,s2,…保持不可预测。
当然,棘手的部分是使所需要的字符串“可得到”。如果我们依赖于传播协议,则恶意的受托人为了产生混淆可能故意晚开始传播它。这样,基于受托人的机制必须依赖于“受保证的广播通道”的存在,即发送消息的方式,使得如果一个用户接收到消息m,则他被保证任何他人均接收到同样的m。
最后,不是在每一轮次使用安全计算,而是可使用安全计算预处理步骤。该步骤在系统开始时由被选择成具有诚实大部分的一组受托人进行。该步骤,可能通过多个计算阶段,对每一受托人i产生公开值pv和秘密值vi,同时该初始计算可能花一些时间,每一轮次r所需要的计算可能琐碎。例如,对于每一轮次r,每一受托人i使用他的秘密值产生并传播(优选数字签署的)单一重构字符串,使得给定包含大部分正确的重构字符串的任意字符串集合Sr,任何人可毫无疑义地构建SVr(或者SVr从其得出的随机值)。当然,该方法的危险之处在于固定的一组受托人可更容易被攻击或腐化。
13.2更复杂的加密工具
Algorand也可受益于更复杂的加密工具。具体地,
1、可组合的签名。通常,在Algorand中,数据D的某一部分必须被多方数字签署。为生成更紧凑的经认证的记录,可使用可组合的数字签名。在这些签名中,多个公钥如PK1,PK2和PK3可被组合为单一公钥PK=PK1,2,3,及同样的数据D相对于不同公钥的签名可被组合为相对于对应的组合的公钥的单一签名。例如,SIG1(D),SIG2(D)和SIG3(D)可被变换为单一数字签名s=SIG1,2,3(D),其可由任何人相对于公钥PK1,2,3进行验证。相应公钥的标识符的紧凑记录,在我们的例子中,集合{1,2,3},可伴随s,使得任何人均可快速收集PK1,PK2和PK3、计算PK=PK1,2,3并基于PK验证D的签名s。
这使能将多个有关传播转变为单一传播。实质上,假定,在传播协议期间,用户已接收连同记录{1,2,3}一起的SIG1,2,3(D)及连同记录{4,5}一起的SIG4,5(D)。则他也可传播SIG1,2,3,4,5(D)和记录{1,2,3,4,5}。
2、树-哈希及签署。当一签名认证数据的多个部分时,能够仅提取数据的单一部分的签名可能有用,而不是不得不保留或发送签署的项目的整个列表。例如,参与者可能希望保留给定支付P∈PAYr的认证记录而不是整个认证的PAYr。为此,我们可首先产生将每一支付P∈PAYr存储在单独的叶子中的默克尔树,然后数字签署根。该签名连同项目P及其认证路径一起为实质上P独自的备选签名。
3、证明邮件。后一方式的一个优点在于参与者可通过证明邮件53将他的支付发送给l,优选按发送者匿名的方式,以获得在l故意决定不将那些支付中的部分包括在中时帮助惩罚l的收据。
14范围
在此所述的系统的软件实施可包括保存在计算机可读介质中并通过一个或多个处理器执行的可执行代码。计算机可读介质可以是非一次性介质并包括计算机硬盘驱动器、ROM、RAM、闪存、便携计算机存储介质如CD-ROM、DVD-ROM、闪盘驱动器、SD卡、和/或例如具有通用串行总线(USB)接口的其它驱动器,和/或任何其它适当的有形或非一次性计算机可读介质或可执行代码可保存于其上并由处理器执行的计算机存储器。在此所述的系统可结合任何适当的操作系统使用。
对于本领域技术人员,基于在此公开的发明的说明或实施,本发明的其它实施方式将显而易见。说明和例子仅视为示例,本发明的真实范围和精神由权利要求指明。
Claims (22)
1.在交易按区块进行组织的交易系统中,用于实体相对于先前区块的序列B0,B1,...,Br-1构建有效交易的新区块Br的方法,包括:
使所述实体从先前区块确定量Q;
使所述实体使用秘钥计算与Q和所述实体唯一相关联的串S;
使所述实体从S计算至少为下述之一的量T:S本身、S的函数及S的哈希值;
使所述实体确定T是否具有给定性质;及
如果T具有给定性质,使所述实体数字签署Br并使S和Br的数字签署版可用。
2.根据权利要求1所述的方法,其中所述秘钥是对应于所述实体的公钥的秘密签署密钥,及S是所述实体对Q的数字签名。
3.根据权利要求1所述的方法,其中T是一个数并在T小于给定数值p时满足所述性质。
4.根据权利要求2所述的方法,其中S通过使得S可从Br推导而被使得可用。
5.根据权利要求2所述的方法,其中每一用户在交易系统中具有结余,及p根据每一用户的结余针对每一用户变化。
6.在交易按区块进行组织及区块通过一组数字签名进行核准的交易系统中,给定先前区块的序列B0,...,Br-1,用于实体核准交易的新区块Br的方法,包括:
使所述实体从先前区块确定量Q;
使所述实体计算Q的数字签名S;
使所述实体从S计算至少为下述之一的量T:S本身、S的函数及S的哈希值;
使所述实体确定T是否具有给定性质;及
如果T具有给定性质,使所述实体使得S可由其它实体获得。
7.根据权利要求6所述的方法,其中T是一个数的二进制展开并在T小于预定阈值p时满足给定性质,及其中所述实体还使得S可获得。
8.根据权利要求6所述的方法,其中所述实体在交易系统中具有结余,及p根据所述实体的结余变化。
9.根据权利要求8所述的方法,其中所述实体担当至少另一实体的授权代表。
10.根据权利要求9所述的方法,其中p取决于至少下述之一:所述实体的结余,和所述实体的结余与另一实体的结余的组合。
11.根据权利要求9所述的方法,其中另一用户使用数字签名授权所述用户。
12.根据权利要求6所述的方法,其中所述实体仅在Br为给定的一组实体执行的拜占庭协定协议的输出时数字签署Br。
13.根据权利要求12所述的方法,其中在所述实体中的特定实体的数字签名具有通过先前区块确定的、满足给定性质的量时,所述实体中的特定实体属于所述给定的一组实体。
14.在交易按所产生和数字签署的区块的序列B0,...,Br-1进行组织的交易系统中,其中每一区块Br包含将要保护的一些信息INFOr并包含安全信息Sr,防止区块的内容被不可检测地改变的方法,所述方法包括:
在每次产生新区块Bi时,将Bi的信息INFOi插入到二叉树的叶子内;
对二叉树进行默克尔化以获得默克尔树Ti;及
确定区块Bi的安全信息Si以包括Ti的根的内容Ri和Ti中叶子i的内容的认证路径。
15.根据权利要求14所述的方法,其中前一区块Bi-1的安全信息Si-1被保存,及安全信息Si通过按预先确定的顺序对来自包括至少下述之一的集合的值进行哈希获得:Si-1的值、INFOi的哈希值及给定值。
16.根据权利要求15所述的方法,其中第一实体向具有区块Bz的安全信息Sz的第二实体证明在区块Bz前面的区块Br的信息INFOr可信,使得第二实体在默克尔树Tz中接收INFOi的认证路径。
17.在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,用于实体E在第r个区块Br时提供关于用户i已进行和接收所有支付之后用户i可用的结余ai的核对信息的方法,所述方法包括:
从可从区块序列B0,...,Br-1中指定的信息推导的信息为每一用户x计算数额ax;
在第r个区块时计算系统中用户的数量n,Br被使得可获得;
按给定顺序对用户x排序;
对于每一用户x,如果x是给定顺序中的第i个用户,将存储在具有至少n个叶子的二叉树T的叶子i中;针对树T确定默克尔值以计算存储在T的根处的值R;产生认证R的数字签名S;及通过提供是T的叶子i与根之间的路径中的一节点的同胞的每一节点的内容而使得S可用作T的任何叶子i的内容的证明。
18.在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,用于一组实体E在第r个区块Br时提供使一用户能验证用户i已进行和接收所有支付之后用户i可用的结余ai的信息的方法,所述方法包括:
在前r个区块的支付之后确定每一用户i的结余;
产生默克尔平衡查找树Tr,其中每一用户的结余为Tr的至少一节点的将要保护的值;
使实体集合的每一成员产生包括Tr的根的安全值hvε的信息的数字签名;及
提供hvε的数字签名以在前r的支付之后证明至少一用户的结余。
19.根据权利要求18所述的方法,其中所述一组实体由一个实体组成。
20.根据权利要求18所述的方法,其中所述一组实体基于其数字签名的值进行选择。
21.在用户具有结余并经数字签署的支付向他人转移金钱及初始的一组用户的结余已知的支付系统中,其中第一组用户支付被收集在第一数字签署的区块B1内,第二组用户支付被收集在第二数字签署的区块B2内,其在B1之后变得可获得,等等,用于实体E在第r个区块Br时证明用户i已进行和接收所有支付之后用户i可用的结余ai的方法,所述方法包括:
获得默克尔平衡查找树Tr的根的安全信息hvε的一组实体的成员的数字签名,其中每一用户的结余是Tr的至少一节点的信息值;
计算给定查找算法处理的每一节点的认证路径及内容以在Tr中查找用户i;及
提供认证路径和内容及数字签名以使另一实体能够验证i的结余。
22.计算机软件,被提供在非短暂计算机可读介质中,所述计算机软件包括实施根据权利要求1-21任一所述的方法的可执行代码。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011339616.3A CN112541757A (zh) | 2016-05-04 | 2017-05-04 | 使区块链系统的第一实体能向其它实体证明的方法 |
CN202211063028.0A CN115660675A (zh) | 2016-05-04 | 2017-05-04 | 由计算机设备执行的方法及相应系统和存储介质 |
Applications Claiming Priority (43)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662331654P | 2016-05-04 | 2016-05-04 | |
US62/331,654 | 2016-05-04 | ||
US201662333340P | 2016-05-09 | 2016-05-09 | |
US62/333,340 | 2016-05-09 | ||
US201662343369P | 2016-05-31 | 2016-05-31 | |
US62/343,369 | 2016-05-31 | ||
US201662344667P | 2016-06-02 | 2016-06-02 | |
US62/344,667 | 2016-06-02 | ||
US201662346775P | 2016-06-07 | 2016-06-07 | |
US62/346,775 | 2016-06-07 | ||
US201662351011P | 2016-06-16 | 2016-06-16 | |
US62/351,011 | 2016-06-16 | ||
US201662353482P | 2016-06-22 | 2016-06-22 | |
US62/353,482 | 2016-06-22 | ||
US201662354195P | 2016-06-24 | 2016-06-24 | |
US62/354,195 | 2016-06-24 | ||
US201662363970P | 2016-07-19 | 2016-07-19 | |
US62/363,970 | 2016-07-19 | ||
US201662369447P | 2016-08-01 | 2016-08-01 | |
US62/369,447 | 2016-08-01 | ||
US201662378753P | 2016-08-24 | 2016-08-24 | |
US62/378,753 | 2016-08-24 | ||
US201662383299P | 2016-09-02 | 2016-09-02 | |
US62/383,299 | 2016-09-02 | ||
US201662394091P | 2016-09-13 | 2016-09-13 | |
US62/394,091 | 2016-09-13 | ||
US201662400361P | 2016-09-27 | 2016-09-27 | |
US62/400,361 | 2016-09-27 | ||
US201662403403P | 2016-10-03 | 2016-10-03 | |
US62/403,403 | 2016-10-03 | ||
US201662410721P | 2016-10-20 | 2016-10-20 | |
US62/410,721 | 2016-10-20 | ||
US201662416959P | 2016-11-03 | 2016-11-03 | |
US62/416,959 | 2016-11-03 | ||
US201662422883P | 2016-11-16 | 2016-11-16 | |
US62/422,883 | 2016-11-16 | ||
US201762455444P | 2017-02-06 | 2017-02-06 | |
US62/455,444 | 2017-02-06 | ||
US201762458746P | 2017-02-14 | 2017-02-14 | |
US62/458,746 | 2017-02-14 | ||
US201762459652P | 2017-02-16 | 2017-02-16 | |
US62/459,652 | 2017-02-16 | ||
PCT/US2017/031037 WO2017192837A1 (en) | 2016-05-04 | 2017-05-04 | Distributed transaction propagation and verification system |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211063028.0A Division CN115660675A (zh) | 2016-05-04 | 2017-05-04 | 由计算机设备执行的方法及相应系统和存储介质 |
CN202011339616.3A Division CN112541757A (zh) | 2016-05-04 | 2017-05-04 | 使区块链系统的第一实体能向其它实体证明的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109196538A true CN109196538A (zh) | 2019-01-11 |
Family
ID=60203556
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780029726.XA Pending CN109196538A (zh) | 2016-05-04 | 2017-05-04 | 分布式交易传播和验证系统 |
CN202211063028.0A Pending CN115660675A (zh) | 2016-05-04 | 2017-05-04 | 由计算机设备执行的方法及相应系统和存储介质 |
CN202011339616.3A Pending CN112541757A (zh) | 2016-05-04 | 2017-05-04 | 使区块链系统的第一实体能向其它实体证明的方法 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211063028.0A Pending CN115660675A (zh) | 2016-05-04 | 2017-05-04 | 由计算机设备执行的方法及相应系统和存储介质 |
CN202011339616.3A Pending CN112541757A (zh) | 2016-05-04 | 2017-05-04 | 使区块链系统的第一实体能向其它实体证明的方法 |
Country Status (12)
Country | Link |
---|---|
US (1) | US20190147438A1 (zh) |
EP (2) | EP3896638A1 (zh) |
JP (2) | JP6986519B2 (zh) |
KR (2) | KR102409819B1 (zh) |
CN (3) | CN109196538A (zh) |
AU (1) | AU2017260013A1 (zh) |
CA (1) | CA3020997A1 (zh) |
IL (2) | IL262638B (zh) |
MA (1) | MA44883A (zh) |
RU (1) | RU2018142270A (zh) |
SG (2) | SG10202008168XA (zh) |
WO (1) | WO2017192837A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872142A (zh) * | 2019-02-21 | 2019-06-11 | 缀初网络技术(上海)有限公司 | 一种基于可信第三方的数字资产交易方法及其存储介质 |
CN110598482A (zh) * | 2019-09-30 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数字证书管理方法、装置、设备及存储介质 |
Families Citing this family (63)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10762481B2 (en) * | 2017-03-21 | 2020-09-01 | The Toronto-Dominion Bank | Secure offline approval of initiated data exchanges |
US11240035B2 (en) * | 2017-05-05 | 2022-02-01 | Jeff STOLLMAN | Systems and methods for extending the utility of blockchains through use of related child blockchains |
JP2019012415A (ja) * | 2017-06-30 | 2019-01-24 | 株式会社bitFlyer | ネットワークにおける合意形成方法及び当該ネットワークを構成するノード |
US10855758B1 (en) * | 2017-08-04 | 2020-12-01 | EMC IP Holding Company LLC | Decentralized computing resource management using distributed ledger |
US10872381B1 (en) | 2017-09-06 | 2020-12-22 | State Farm Mutual Automobile Insurance Company | Evidence oracles |
US11416942B1 (en) | 2017-09-06 | 2022-08-16 | State Farm Mutual Automobile Insurance Company | Using a distributed ledger to determine fault in subrogation |
US11386498B1 (en) | 2017-09-06 | 2022-07-12 | State Farm Mutual Automobile Insurance Company | Using historical data for subrogation on a distributed ledger |
US10891694B1 (en) * | 2017-09-06 | 2021-01-12 | State Farm Mutual Automobile Insurance Company | Using vehicle mode for subrogation on a distributed ledger |
US10818121B2 (en) * | 2017-09-15 | 2020-10-27 | Panasonic Intellectual Property Corporation Of America | Electronic voting system and control method |
US10887090B2 (en) * | 2017-09-22 | 2021-01-05 | Nec Corporation | Scalable byzantine fault-tolerant protocol with partial tee support |
CN111566680A (zh) * | 2017-09-28 | 2020-08-21 | 阿尔戈兰德公司 | 有消息凭证的区块链 |
US10812275B2 (en) * | 2017-11-28 | 2020-10-20 | American Express Travel Related Services Company, Inc. | Decoupling and updating pinned certificates on a mobile device |
MX2020006642A (es) * | 2017-12-19 | 2020-12-07 | Algorand Inc | Cadena de bloques rapida y resistente a particiones. |
US10250708B1 (en) * | 2017-12-26 | 2019-04-02 | Akamai Technologies, Inc. | High performance distributed system of record |
US11977924B2 (en) * | 2017-12-26 | 2024-05-07 | Akamai Technologies, Inc. | High performance distributed system of record with distributed random oracle |
US11488433B2 (en) * | 2018-01-11 | 2022-11-01 | Mastercard International Incorporated | Method and system for public elections on a moderated blockchain |
US20200366495A1 (en) * | 2018-01-29 | 2020-11-19 | Ubiquicorp Limited | Proof of majority block consensus method for generating and uploading a block to a blockchain |
CN108446376B (zh) * | 2018-03-16 | 2022-04-08 | 众安信息技术服务有限公司 | 数据存储方法与装置 |
US10855446B2 (en) * | 2018-04-24 | 2020-12-01 | Duvon Corporation | Autonomous exchange via entrusted ledger |
WO2019216949A1 (en) | 2018-05-08 | 2019-11-14 | Visa International Service Association | Sybil-resistant identity generation |
TW202004626A (zh) * | 2018-05-18 | 2020-01-16 | 香港商泰德陽光有限公司 | 分散式金流稽核方法、裝置及系統 |
CN108923929B (zh) * | 2018-06-05 | 2021-07-23 | 上海和数软件有限公司 | 区块链节点共识方法、装置及计算机可读存储介质 |
JP7044364B2 (ja) * | 2018-06-15 | 2022-03-30 | 学校法人東京電機大学 | ノード、合意形成システム及び当選者決定方法 |
GB201811263D0 (en) * | 2018-07-10 | 2018-08-29 | Netmaster Solutions Ltd | A method and system for managing digital using a blockchain |
GB201811672D0 (en) * | 2018-07-17 | 2018-08-29 | Nchain Holdings Ltd | Computer-implemented system and method |
CN109242676B (zh) * | 2018-07-27 | 2023-10-27 | 创新先进技术有限公司 | 区块发布方法及装置、电子设备 |
US12020242B2 (en) * | 2018-08-07 | 2024-06-25 | International Business Machines Corporation | Fair transaction ordering in blockchains |
GB2576375A (en) * | 2018-08-17 | 2020-02-19 | Uvue Ltd | Transaction system and method of operation thereof |
GB201816936D0 (en) * | 2018-10-17 | 2018-11-28 | Nchain Holdings Ltd | Computer-implemented system and method |
US11405180B2 (en) | 2019-01-15 | 2022-08-02 | Fisher-Rosemount Systems, Inc. | Blockchain-based automation architecture cybersecurity |
US11503036B2 (en) * | 2019-03-13 | 2022-11-15 | Nec Corporation | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol |
TWI699986B (zh) * | 2019-03-14 | 2020-07-21 | 柯賓漢數位金融科技有限公司 | 區塊鏈產生方法及系統 |
CN110198213B (zh) * | 2019-04-01 | 2020-07-03 | 上海能链众合科技有限公司 | 一种基于秘密共享随机数共识算法的系统 |
US11569996B2 (en) * | 2019-05-31 | 2023-01-31 | International Business Machines Corporation | Anonymous rating structure for database |
US11734259B2 (en) * | 2019-05-31 | 2023-08-22 | International Business Machines Corporation | Anonymous database rating update |
US10778452B2 (en) * | 2019-06-03 | 2020-09-15 | Alibaba Group Holding Limited | Blockchain ledger authentication |
CN110213038B (zh) * | 2019-06-03 | 2024-06-04 | 聂明 | 一种区块链形成共识的方法及系统 |
EP3980958A4 (en) * | 2019-06-04 | 2023-09-13 | Algorand, Inc. | AUDITING DIGITAL CURRENCY TRANSACTIONS |
KR102229923B1 (ko) * | 2019-06-18 | 2021-03-22 | 한국과학기술원 | 네트워크 상에서 합의된 데이터를 전송하는 방법 및 네트워크 상에서 합의된 데이터를 전송하기 위한 전자기기 |
CN110363528B (zh) * | 2019-06-27 | 2022-06-24 | 矩阵元技术(深圳)有限公司 | 协同地址的生成、交易签名方法及装置、存储介质 |
CN110347684B (zh) * | 2019-06-28 | 2020-09-01 | 阿里巴巴集团控股有限公司 | 基于区块链的分级存储方法及装置、电子设备 |
US10853341B2 (en) | 2019-06-28 | 2020-12-01 | Advanced New Technologies Co., Ltd. | Blockchain based hierarchical data storage |
CN110689345B (zh) * | 2019-09-06 | 2022-03-18 | 北京清红微谷技术开发有限责任公司 | 调整区块权重的无许可区块链共识方法、系统、p2p网络 |
CN111292187B (zh) * | 2020-01-20 | 2023-08-22 | 深圳市万向信息科技有限公司 | 一种区块链记账人资格竞选方法 |
US11315193B1 (en) * | 2020-02-12 | 2022-04-26 | BlueOwl, LLC | Systems and methods for implementing a decentralized insurance platform using smart contracts and multiple data sources |
CN111090892B (zh) * | 2020-03-24 | 2021-04-30 | 吕晟珉 | 一种基于vrf和门限签名的区块链共识方法和装置 |
US10887104B1 (en) | 2020-04-01 | 2021-01-05 | Onu Technology Inc. | Methods and systems for cryptographically secured decentralized testing |
US11409907B2 (en) | 2020-04-01 | 2022-08-09 | Onu Technology Inc. | Methods and systems for cryptographically secured decentralized testing |
WO2021226843A1 (en) * | 2020-05-12 | 2021-11-18 | Beijing Wodong Tianjun Information Technology Co., Ltd. | Communication systems and methods for validation of a transaction via consensus in a distributed network environment |
US11973744B2 (en) * | 2020-05-12 | 2024-04-30 | New Jersey Institute Of Technology | Systems and methods for establishing consensus in distributed communications |
CN111526217B (zh) * | 2020-07-03 | 2020-10-09 | 支付宝(杭州)信息技术有限公司 | 一种区块链中的共识方法和系统 |
WO2022010004A1 (ko) * | 2020-07-07 | 2022-01-13 | 라인플러스 주식회사 | 랜덤 샘플링 bft 합의 방법과 시스템 및 컴퓨터 프로그램 |
KR102603880B1 (ko) | 2021-01-08 | 2023-11-20 | 한국전자통신연구원 | 블록 합의 방법 및 트랜잭션 상태 관리 방법 |
CN112766854B (zh) * | 2021-01-22 | 2021-11-02 | 支付宝(杭州)信息技术有限公司 | 基于区块链的数字商品交易方法和装置 |
CN112527912B (zh) | 2021-02-07 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置及计算机设备 |
US11902451B2 (en) * | 2021-07-01 | 2024-02-13 | Fujitsu Limited | Cross-blockchain identity and key management |
CN113656500B (zh) * | 2021-08-18 | 2023-08-18 | 盐城市质量技术监督综合检验检测中心(盐城市产品质量监督检验所) | 一种面向抽样检测的区块链系统及其实现方法 |
KR20230090027A (ko) * | 2021-12-14 | 2023-06-21 | 한국전자통신연구원 | 블록체인 네트워크에서의 합의 노드 정보 동기화 장치 및 방법 |
CN114553423B (zh) * | 2022-04-27 | 2022-07-29 | 南京大学 | 一种去中心化量子拜占庭共识方法 |
CN115150103B (zh) * | 2022-08-29 | 2022-11-29 | 人民法院信息技术服务中心 | 基于区块链的数字凭证离线验证方法、装置及设备 |
CN116629871B (zh) * | 2023-07-21 | 2023-10-17 | 济南正浩软件科技有限公司 | 一种订单线上支付系统及支付方法 |
CN116996628B (zh) * | 2023-09-26 | 2023-12-08 | 宜兴启明星物联技术有限公司 | 一种网络数据传输防护方法 |
CN117252234B (zh) * | 2023-11-16 | 2024-03-01 | 之江实验室 | 一种基于非合作博弈的策略生成方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535440A (zh) * | 2001-04-27 | 2004-10-06 | 麻省理工学院 | 用于微支付交易的方法和系统 |
US20070214355A1 (en) * | 2006-03-10 | 2007-09-13 | Microsoft Corporation | Leaderless Byzantine consensus |
CN101330386A (zh) * | 2008-05-19 | 2008-12-24 | 刘洪利 | 基于生物特征的认证系统及其身份认证方法 |
CN102957714A (zh) * | 2011-08-18 | 2013-03-06 | 招商银行股份有限公司 | 一种分布式计算机系统及运行方法 |
CN103918219A (zh) * | 2011-11-06 | 2014-07-09 | Nds有限公司 | 基于秘密共享的电子内容分发 |
US20150294308A1 (en) * | 2014-04-14 | 2015-10-15 | 21, Inc. | Digital currency mining circuitry |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7827401B2 (en) * | 1995-10-02 | 2010-11-02 | Corestreet Ltd. | Efficient certificate revocation |
CA2267042A1 (en) * | 1999-03-26 | 2000-09-26 | Rdm Corporation | Method and system for local electronic bill presentment and payment ebpp |
JP2002014929A (ja) * | 2000-04-26 | 2002-01-18 | Sony Corp | アクセス制御システム、アクセス制御方法、およびデバイス、アクセス制御サーバ、アクセス制御サーバ登録サーバ、データ処理装置、並びにプログラム記憶媒体 |
WO2009056048A1 (en) * | 2007-10-23 | 2009-05-07 | Yao Andrew C | Method and structure for self-sealed joint proof-of-knowledge and diffie-hellman key-exchange protocols |
US20150220914A1 (en) | 2011-08-18 | 2015-08-06 | Visa International Service Association | Electronic Wallet Management Apparatuses, Methods and Systems |
CN103348623B (zh) * | 2011-08-26 | 2016-06-29 | 松下电器产业株式会社 | 终端装置、验证装置、密钥分发装置、内容再现方法及密钥分发方法 |
US10354325B1 (en) * | 2013-06-28 | 2019-07-16 | Winklevoss Ip, Llc | Computer-generated graphical user interface |
FR3018370A1 (fr) * | 2014-03-07 | 2015-09-11 | Enrico Maim | Procede et systeme de generation automatique de crypto-monnaies |
US20160098723A1 (en) * | 2014-10-01 | 2016-04-07 | The Filing Cabinet, LLC | System and method for block-chain verification of goods |
JP5858507B1 (ja) * | 2015-05-18 | 2016-02-10 | 株式会社Orb | 仮想通貨管理プログラム、及び仮想通貨管理方法 |
GB201511963D0 (en) * | 2015-07-08 | 2015-08-19 | Barclays Bank Plc | Secure digital data operations |
GB201511964D0 (en) * | 2015-07-08 | 2015-08-19 | Barclays Bank Plc | Secure digital data operations |
JP6358658B2 (ja) * | 2015-11-09 | 2018-07-18 | 日本電信電話株式会社 | ブロックチェーン生成装置、ブロックチェーン生成方法、ブロックチェーン検証装置、ブロックチェーン検証方法およびプログラム |
CN105488675B (zh) * | 2015-11-25 | 2019-12-24 | 布比(北京)网络技术有限公司 | 一种区块链的分布式共享总账构建方法 |
-
2017
- 2017-05-04 SG SG10202008168XA patent/SG10202008168XA/en unknown
- 2017-05-04 US US16/096,107 patent/US20190147438A1/en not_active Abandoned
- 2017-05-04 MA MA044883A patent/MA44883A/fr unknown
- 2017-05-04 KR KR1020187035067A patent/KR102409819B1/ko active IP Right Grant
- 2017-05-04 EP EP20201161.5A patent/EP3896638A1/en not_active Withdrawn
- 2017-05-04 WO PCT/US2017/031037 patent/WO2017192837A1/en unknown
- 2017-05-04 EP EP17793332.2A patent/EP3452975A4/en not_active Withdrawn
- 2017-05-04 KR KR1020227019913A patent/KR20220088507A/ko not_active Application Discontinuation
- 2017-05-04 SG SG11201809648QA patent/SG11201809648QA/en unknown
- 2017-05-04 JP JP2018557931A patent/JP6986519B2/ja active Active
- 2017-05-04 RU RU2018142270A patent/RU2018142270A/ru unknown
- 2017-05-04 AU AU2017260013A patent/AU2017260013A1/en not_active Abandoned
- 2017-05-04 CN CN201780029726.XA patent/CN109196538A/zh active Pending
- 2017-05-04 CA CA3020997A patent/CA3020997A1/en not_active Abandoned
- 2017-05-04 CN CN202211063028.0A patent/CN115660675A/zh active Pending
- 2017-05-04 CN CN202011339616.3A patent/CN112541757A/zh active Pending
-
2018
- 2018-10-28 IL IL262638A patent/IL262638B/en unknown
-
2021
- 2021-11-29 JP JP2021193208A patent/JP2022031817A/ja active Pending
- 2021-12-23 IL IL289298A patent/IL289298A/en unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535440A (zh) * | 2001-04-27 | 2004-10-06 | 麻省理工学院 | 用于微支付交易的方法和系统 |
US20070214355A1 (en) * | 2006-03-10 | 2007-09-13 | Microsoft Corporation | Leaderless Byzantine consensus |
CN101330386A (zh) * | 2008-05-19 | 2008-12-24 | 刘洪利 | 基于生物特征的认证系统及其身份认证方法 |
CN102957714A (zh) * | 2011-08-18 | 2013-03-06 | 招商银行股份有限公司 | 一种分布式计算机系统及运行方法 |
CN103918219A (zh) * | 2011-11-06 | 2014-07-09 | Nds有限公司 | 基于秘密共享的电子内容分发 |
US20150294308A1 (en) * | 2014-04-14 | 2015-10-15 | 21, Inc. | Digital currency mining circuitry |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109872142A (zh) * | 2019-02-21 | 2019-06-11 | 缀初网络技术(上海)有限公司 | 一种基于可信第三方的数字资产交易方法及其存储介质 |
CN110598482A (zh) * | 2019-09-30 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 基于区块链的数字证书管理方法、装置、设备及存储介质 |
CN110598482B (zh) * | 2019-09-30 | 2023-09-15 | 腾讯科技(深圳)有限公司 | 基于区块链的数字证书管理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
IL262638A (en) | 2018-12-31 |
MA44883A (fr) | 2021-03-24 |
IL262638B (en) | 2022-02-01 |
IL289298A (en) | 2022-02-01 |
CA3020997A1 (en) | 2017-11-09 |
RU2018142270A3 (zh) | 2020-08-20 |
CN112541757A (zh) | 2021-03-23 |
EP3896638A1 (en) | 2021-10-20 |
JP2022031817A (ja) | 2022-02-22 |
CN115660675A (zh) | 2023-01-31 |
JP2019519137A (ja) | 2019-07-04 |
JP6986519B2 (ja) | 2021-12-22 |
RU2018142270A (ru) | 2020-06-04 |
KR102409819B1 (ko) | 2022-06-16 |
KR20190005915A (ko) | 2019-01-16 |
US20190147438A1 (en) | 2019-05-16 |
AU2017260013A1 (en) | 2018-12-20 |
EP3452975A4 (en) | 2020-04-15 |
WO2017192837A1 (en) | 2017-11-09 |
SG11201809648QA (en) | 2018-11-29 |
KR20220088507A (ko) | 2022-06-27 |
SG10202008168XA (en) | 2020-09-29 |
AU2017260013A2 (en) | 2020-12-10 |
EP3452975A1 (en) | 2019-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109196538A (zh) | 分布式交易传播和验证系统 | |
US11836720B2 (en) | Infinitely scalable cryptocurrency system with fast, secure verification | |
EP3721582B1 (en) | Blockchain-implemented security systems and methods for blinded outcome selection | |
CN110310115A (zh) | 一种基于分片机制实现分布式账本横向扩展的方法 | |
Yakira et al. | Helix: A fair blockchain consensus protocol resistant to ordering manipulation | |
JP2020536473A (ja) | メッセージ信任ブロックチェーン | |
Azouvi et al. | Winning the caucus race: Continuous leader election via public randomness | |
CN116113921A (zh) | 区块链上的伪随机选择 | |
Yi et al. | Blockchain Foundations and Applications | |
Van Hijfte | Blockchain platforms: A look at the underbelly of distributed platforms | |
Bai et al. | On parallel mechanism of consortium blockchain: Take pov as an example | |
Li et al. | Cryptoeconomics: Economic Mechanisms Behind Blockchains | |
Tran et al. | Blockchain in a nutshell | |
Singh et al. | Understanding the public, private and consortium consensus algorithms in blockchain technology | |
JP2021507629A (ja) | 高速且つ分割耐性を有するブロックチェーン | |
Warren | Bitcoin: A Game-Theoretic Analysis | |
Himanshu | An overview of blockchain technology: Architecture and consensus protocols | |
Zhao et al. | Safe and Efficient Delegated Proof of Stake Consensus Mechanism Based on Dynamic Credit in Electronic Transaction | |
Dimitrios | Distributed Consensus Inference and Blockchain | |
Yen | The Oracle Problem: Unlocking the Potential of Blockchain | |
Ruiz-Ogarrio | Mining Incentives In Proof-of-Work Blockchain Protocols | |
Aumayr | Foundations of Bitcoin-Compatible Scalability Protocols | |
Mazumdar et al. | Layer 2 Scaling Solutions for Blockchains | |
Gangemi | Cryptographic Innovations in Blockchain Algorithms for blockchain technology | |
Gangemi | Cryptographic Innovations in Blockchain |
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: 40000526 Country of ref document: HK |
|
TA01 | Transfer of patent application right |
Effective date of registration: 20200401 Address after: Massachusetts, USA Applicant after: Algoland LLC Address before: Massachusetts, USA Applicant before: Silvio Mikali |
|
TA01 | Transfer of patent application right |