CN110084576A - 验证电子支付的方法 - Google Patents
验证电子支付的方法 Download PDFInfo
- Publication number
- CN110084576A CN110084576A CN201910130689.2A CN201910130689A CN110084576A CN 110084576 A CN110084576 A CN 110084576A CN 201910130689 A CN201910130689 A CN 201910130689A CN 110084576 A CN110084576 A CN 110084576A
- Authority
- CN
- China
- Prior art keywords
- payment
- authentication
- entity
- information
- wheel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000012546 transfer Methods 0.000 claims description 9
- 230000002123 temporal effect Effects 0.000 claims description 8
- 238000012790 confirmation Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000012795 verification Methods 0.000 description 55
- 230000006870 function Effects 0.000 description 25
- 230000007246 mechanism Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 238000010200 validation analysis Methods 0.000 description 17
- 238000003860 storage Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000001413 cellular effect Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 239000000203 mixture Substances 0.000 description 10
- 230000001902 propagating effect Effects 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000012360 testing method Methods 0.000 description 8
- 238000013459 approach Methods 0.000 description 6
- 238000003491 array Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 5
- 239000010931 gold Substances 0.000 description 5
- 229910052737 gold Inorganic materials 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000002950 deficient Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004321 preservation Methods 0.000 description 4
- 241000208340 Araliaceae Species 0.000 description 3
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000005284 excitation Effects 0.000 description 3
- 235000008434 ginseng Nutrition 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 230000035772 mutation Effects 0.000 description 3
- 238000012956 testing procedure Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000013213 extrapolation Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 239000012464 large buffer Substances 0.000 description 1
- 238000004900 laundering Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
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/02—Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
-
- 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
- G06Q20/0655—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed centrally
-
- 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
- G06Q20/0658—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
-
- 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/08—Payment architectures
- G06Q20/10—Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
-
- 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/22—Payment schemes or models
- G06Q20/29—Payment schemes or models characterised by micropayments
-
- 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/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/36—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
- G06Q20/367—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
- G06Q20/3678—Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
-
- 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/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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/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
- G06Q2220/00—Business processing using cryptography
-
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本申请公开了验证电子支付的方法,其中有一组实体V,使得如果支付被V中给定多数的实体认证有效,则所述支付有效,所述方法包括:让V中的实体Vi接收多笔支付;让Vi确定所述多笔支付中哪些有效;及让Vi认证所述多笔支付中Vi确定有效的子集以提供获认证的支付记录。
Description
本申请是2016年2月17日申请的、发明创造名称为“验证电子交易”的中国专利申请201680022444.2的分案申请。
相关申请交叉引用
本申请要求如下专利申请的优先权:2015年2月17日提交的且名称为“A PUBLICLYVERIFIABLE AND JOINTLY SERVICED CRYPTOCURRENCY”的美国临时专利申请号62/117,138;以及2015年2月26日提交的且名称为“DEMOCOIN:A PUBLICLY VERIFABLE AND JOINTLYSERVICED CRYPTOCURRENCY”的美国临时专利申请号62/120,916;以及2015年4月2日提交的且名称为“DEMOCOIN:A PUBLICLY VERIFABLE AND JOINTLY SERVICED CRYPTOCURRENCY”的美国临时专利申请号62/142,318;以及2015年9月15日提交的且名称为“ALTERNATIVE USESOF DEMOCOIN”的美国临时专利申请号62/218,817;这些专利申请通过引用全部并入本文。
技术领域
本发明申请涉及电子交易的领域,以及更具体地涉及使用加密方法验证电子交易。
背景技术
资金使用了数千年时间。过去,其具有非常强物理性,正如使用金条或钱币的情况中那样。但是,随着计算机和网络技术的出现,电子形式的资金和支付系统备受关注。(参见例如,D.L.Chaum所著“不可追踪的电子邮件、返回地址和数字假名(UntraceableElectronic Mail,Return Addresses,.and Digital Pseudonyms)”Commun.ACM,Volume24,Number 2,Pages 84-90,1981)。原理上,资金可以制作成完全电子的。如果每笔资金交易通过单一受信的中央权威机构A来进行,则此权威机构能够在每个时间t跟踪和公布每个人拥有多少钱以及谁拥有多少。一方面,针对资金的此方法的大优点是对于用户非常有效率,因为A保存的公开记录可以是非常紧致的且易于查询,并且仍足以使用户能够放心地进行彼此支付。但是,另一方面,这种中心化方法也有局限性。具体地,对于大用户群体,难以找到每个人都信任的实体A。在许多人眼中,一直存在此问题,即使A选为政府。例如,权威机构A可能会简单地公布用户不再拥有任何资金而削掉他/她/它的支付能力,或可能使U看上去像是已向某人支付,而U从未支付过。因此,如果A变得腐败或被对手挫败或因其他方面未妥当运作,这种中心化方法可能导致极大失败。
为了避免使用单一受信的中央权威机构所关联的缺点,产生了加密货币,如比特币,这是非常去中心化的。但是,这些系统需要非常大且维护和更新起来非常欠效率的公开文件(“总账”)。而且,比特币需要大量计算且如果大多数计算能力落入坏人之手,则可能被破坏。因此,如比特币的系统可能不是太有用,尤其是用户和交易的数量增长的情况下。
因此,期望提供一种电子资金系统,其具有中心化方法的优点,但是无需信任维护公开交易记录的中央权威机构,以及不会遇到公知的去中心化方法的欠效率问题。
发明内容
根据本文描述的系统,在电子支付系统中验证电子支付,在所述电子支付系统中,多轮的每一轮中,有一组参与者V,使得如果支付由V中给定多数的参与者认证有效,则该支付有效。验证所述电子支付包括,让V中的参与者Vi接收所述电子支付系统的所述多轮之一期间的多笔支付的认证,让Vi确定所述多笔支付中哪些有效,让Vi认证所述多笔支付中Vi确定有效的子集以提供获认证的支付记录,以及让Vi使得所述获认证的支付记录变得可广泛获得得以使至少另一个实体能够确定Vi认证为有效的给定支付是否由V中的参与者中所述给定多数认证有效。至少一个多笔支付的认证可以包括数字签名,确定所述多笔支付中哪些有效可以包括验证所述数字签名,认证多笔支付的子集可以包括对标示所述多笔支付的子集的数据进行数字签名,以及让Vi使得所述获认证的支付记录变得可广泛获得得可以包括将所述获认证的支付记录张贴到网站上,将所述获认证的支付记录发送到另一个实体,而该另一个实体进一步传播所述获认证的支付记录,和/或将所述获认证的支付记录发送到另一个实体,而该另一个实体将所述获认证的支付记录张贴到网站上。对标示所述多笔支付的子集的数据进行数字签名可以包括使用单个数字签名以及所述数据可以包括有关所述轮的信息、时间信息和/或其他附加信息。每个有效支付可以将与第一公共密钥关联的资金传递给第二公共密钥,以及每个有效支付可以相对于所述第一公共密钥进行数字签名。让Vi确定所述多笔支付中哪些有效可以包括确定是否有足够的资金可用于所述多笔支付中每一笔支付。所述一组参与者V可以是使用保持接近度选择(closeness-preservingselection)过程从更大的一组潜在验证方随机地选择的。所述一组参与者V可以是使用与所述电子支付系统的所述多轮之一关联的自然和公共随机值从更大的一组潜在验证方随机地选择的。Vi可以是由特殊实体T从一组潜在验证方随机地选择的,所述特殊实体T生成显示Vi已被选定的数字签名并且使得所述签名变得广泛可用。T的所述数字签名可以认证包含自然和公共随机值的信息、包含时间信息的信息、包含有关所述电子支付系统的所述多轮之一的信息的信息和/或其他信息。Vi可以是由一组特殊实体通过将所述实体生成的数字签名进行组合而从一组潜在验证方中随机地选择的。可以就认证Vi确定有效的所述多笔支付的所述子集而向Vi提供报酬。所述报酬的金额可以基于Vi确定有效的所述多笔支付的价值和/或错漏支付的数量。报酬可以由所述有效支付的一部分和/或接收支付的零售商来给付。
进一步根据本文描述的系统,验证电子支付系统中的电子支付包括,在所述电子支付系统的多轮的特定一轮期间从所述电子支付系统的多个参与者接收多笔支付的记录,确定所述多笔支付中哪些有效,认证有效支付以提供每个有效支付的获认证的支付记录,以及使得所述获认证的支付记录可供访问,其中在所述电子支付系统中,如果所述参与者的子集中给定多数认证特定支付有效,则将所述特定轮中的支付视为有效的,以提供获认证的支付记录。非短暂计算机可读介质中提供的计算机软件可以验证电子支付系统中的电子支付。
进一步根据本文描述的系统,促进电子支付系统中电子支付的验证包括,确定给定多数的实体提供的获认证的支付记录是否标示在所述电子支付系统的多轮的特定一轮期间所述电子支付系统的第一参与者与第二参与者之间的电子支付的有效性,响应于所述支付通过所述多数验证实体验证,生成获认证的字符串,所述获认证的字符串证明所述支付通过所述多数实体验证,以及使得所述获认证字符串变得可广泛获得得。所述获认证字符串可以是数字签名,以及使得所述获认证字符串变得可广泛获得得可以包括将所述获认证字符串张贴到网站上,将所述获认证字符串传送到另一个实体,而另一个实体促使所述获认证字符串变得可广泛获得得,和/或将所述获认证字符串传送到所述另一个实体,而所述另一个实体将所述获认证字符串张贴到网站上。可以对所述获认证的支付记录进行数字签名。非短暂计算机可读介质中提供的计算机软件可以促进电子支付系统中的电子支付的验证。
进一步根据本文描述的系统,对在电子支付系统中进行电子支付的一组参与者V中的特定参与者签发数字证书,其中多轮的每一轮中,如果支付由V中给定多数的参与者认证有效,则所述支付有效。签发所述数字证书包括获得所述特定参与者要与电子支付结合使用的公共密钥PKX,获得要证明的附加信息,以及通过利用特异实体的数字签名对PKx和附加信息进行数字签名来提供所述数字证书的PKx和所述附加信息的证明,其中所述特异实体的证明由V中确定电子交易系统中参与者支付的有效性的显著数量的给定多数参与者予以认可。所述附加信息可以包括有关所述特异实体的身份信息、有关所述特定参与者的身份信息、有关所述特定参与者的资格信息、与所述数字证书相关的时间信息、与PKX关联的货币信息、地域信息、和/或与PKX关联的交易限制。与PKX关联的货币信息可以包括所述电子交易系统中所述特定参与者拥有的资金金额。有关所述特定参与者的身份信息可以包括所述特定参与者的姓名、所述特定参与者的姓名的散列值、所述参与者的姓名的加密和/或至包含识别所述特定参与者的信息的数据结构的索引。有关所述特定参与者的身份信息可以是所述特定参与者的姓名的加密,以及政府实体可以使用解密密钥来确定所述特定参与者的身份。签发所述数字证书还可以包括执行附加动作,以及响应于所述附加动作的结果符合要求,签发包含ΡKχ和附加信息的证明的数字证书。所述附加动作可以包括验证所述附加信息的至少其中一些,确认所述电子交易系统中所述特定参与者有意使用PKX,确认所述特定参与者知悉与所述PKX关联的保密签名密钥,帮助所述特定参与者获得PKX,向所述特定参与者提供PKX,确认与PKX对应的签名密钥已托管,向所述特定参与者提供要在所述电子交易系统中使用的初始金额的资金,确定所述特定参与者的身份,托管用于识别所述特定参与者的信息,和/或确认所述特定参与者有资格对PKX进行证明。所述附加动作可以包括确认所述特定参与者有资格作为V中的所述给定多数参与者的成员。可以就签发所述数字证书和/或所述特定参与者进行的每个电子支付向所述特异实体提供报酬。所述报酬可以作为电子支付通过所述电子支付系统提供给所述特异实体。所述报酬可以由零售商、所述特定参与者和/或所述特定参与者进行的电子支付的接收方来给付。所述特异实体可以是金融机构。非短暂计算机可读介质中提供的计算机软件可以向一组参与者V中进行电子支付的特定参与者签发电子证书。
附图说明
现在将根据附图更详细地解释本文描述的系统的实施例,如下简要描述了这些附图。
图1是图示根据本文描述的系统实施例的中央验证方、多个用户和网络的示意图。
图2是图示根据本文描述的系统实施例的结合使用中央验证方执行的处理的流程图。
图3是图示根据本文描述的系统实施例的多个验证方、多个用户和网络的示意图。
图4是图示根据本文描述的系统实施例的结合使用多个验证方执行的处理的流程图。
图5是图示根据本文描述的系统实施例的多个用户和网络的示意图。
图6是图示根据本文描述的系统实施例的结合使用轮流提供验证的多个用户执行的处理的流程图。
具体实施方式
本文描述的系统提供一种用于验证多方之间的电子支付的机构,其无需中央控制权威机构以及也无需计算密集的过程。
加密基元
数字签名。数字签名方案由如下三个快速算法组成:概率密钥生成器G、确定性签名算法S以及验证算法V。
给定数值k作为输入(例如k=4,000),实体x使用G生成一对k位密钥(即,字符串):“公共”密钥PKx和“私密”签名密钥SKX。公共密钥不会“泄漏”它对应的私密密钥。即,即使假定知道PKX,x以外的任何实体均无法在大到不现实的时间量内(例如今天处理器的计算能力下的数千年)计算出SKX。实体x使用SKx对消息进行数字签名。对于每个可能的消息(二进制字符串)m,x对输入m和SKX运行算法S,以产生字符串,表示为SIGx(m)或SIGPKx,称为x对m的数字签名,或m相对于PKX的数字签名。可以假定m是可从SIGX(m)检索出的,因为m的数字签名可以始终包含m本身。PKx的值可以用于验证x产生的数字签名。确切地,对于输入(a)实体x的公共密钥PKX,(b)消息m以及x对消息m的声称的数字签名,验证算法V输出“是”或“否”,以满足如下属性:
1.合法的签名始终通过验证:如果s=SIGx(m),则V(PKx,m,s)=“是”;以及
2.数字签名非常难以伪造:基本上,不知道SKx的情况下,找出字符串s,以使V(PKx,m,s)=“是”,对于x从未签名的消息m,需求大到不现实的时间量。
因此,为了防止任何外人代之对消息签名,实体x必须将对应签名密钥SKx保密(因此,称为“私密密钥”),北半球为了使得任何人能够验证该实体签名的消息,x有兴趣公布密钥PKx(因此称为“公共密钥”)。
认证。数字签名是认证信息的非常好的方式,因为可以使公共密钥可广泛获得得且因此信息的有效性可以广泛地得以查明。但是,信息可以采用不同方式来进行认证。例如,如果双方A和B通过安全通道连接,则让A向B通过该信道发送某个信息I来向B认证I,即使这将不会使B能让其他人确信I的真实性。又如,如果说每个人都知道仅A能够在给定网站W上概念上或真实地贴附信息,则A能够通过将其张贴到W上来对I进行认证。再者,如果A和B共享私密密钥s,则A还可以通过发送给定函数f,如加密函数或散列函数的值f(s,I)来向B认证I。在本文描述的系统中可以使用这些和所有其他形式的认证。
证书可以使用数字证书来证明公共密钥。公共密钥PK由另一个公共密钥PK′通过相对于PK′的数字签名来予以证明。例如,PK的证书可以采取如下形式
SIGPK′(PK,I)
其中I是被认为有用的任何附加信息。例如,证明公共密钥PK′可以属于另一个实体,如银行,以及I可以指定证书的签发日期、证书的过期日期(如果有的话)、有关PK或PK′的所有者的信息、有关PK或PK′的信息(例如,有关在给定时刻可供PK使用的资金的金额、PK或其所有者的授信额度等)、有关使用PK完成的交易的信息(例如,次数、价值等)等等,包括无任何信息。证书的一种可能解释是PK′(的所有者)以任何其他人无法改变的方式保证信息I有关PK是真实的。即使I是空的,PK的证书也可能是有用的,例如能使银行保证PK是是支付系统的一部分。为了简明,应该将PK理解为通知公共密钥PK本身、该被证明的PK(或一个被证明的PK,因为相同的公共密钥可能具有多个证书)或PK的证书。
防冲突散列算法。防冲突函数H快速地将任意长的字符串映射到优选为固定长度的字符串(例如,256位字符串),以保证找到两个不同的字符串X和Y使H(X)=H(Y)需要大到不现实的时间量。可以在数字签名方案内使用防冲突散列函数。例如,如果这些方案仅可以对最大4000位组成的消息签名且实体x希望对更长的消息m签名,则该实体可以代之对H(m)签名。即,可以将SIGx(m)定义为由SIGx(H(m))组成,或由一对(m,SIGx(H(m))组成以确保m是可从SIGx(m)检索出的。
隐式硬件。正如本文其他地方论述的,计算硬件设备(例如,电子芯片)对于计算数字签名可能是必需的。由此,本文对实体x的引述(能够计算数字签名)应该理解为包括x连同用于计算数字签名的硬件设备。当函数H以足够的熵将字符串s映射到二进制/字母数字字符串H(s)时,则H(s)的每个位/字符是足够随机的。即是说H是散列函数(例如,防冲突或单向散列函数),应该认为H具有这种随机性属性。相似地,对这种函数H求值通过手工现实上是不可能的。因此,可以认为H(x)是通过计算硬件设备,正如本文其他地方论述的,如计算机、膝上型计算机、蜂窝电话或其他适合的设备中包含的设备来计算的。
参与者/用户。参与者(或用户)是个人的集合、实体或实体的集合。参与者i可以拥有可根据该参与者标识的一个或多个公共密钥。例如,如果PKi是特定参与者i的公共密钥,则可以使用PKi来引用该特定参与者i;以及反之亦然。
资金。资金可以使用美元、另一种现有货币或其本身的货币来标价。本文中使用货币单位,表示为符号“#”。
时间。时间在本文中是以时间序列T=0,1,2,...来阐述的。时间区间[ti>t1+i]对于所有参与者可以是相同的(例如,2分钟或1分钟),但是可以根据参与者的数量、交易的数量等进行动态调整。时间单位可以选为使得不考虑合理的时钟移位的情况下,大多数(或所有)参与者都知悉当前时间t。
支付。资金与个人公共密钥关联。最初,一些公共密钥是公开知悉有某个给定金额的资金的。资金是通过数字签名从一个公共密钥转移到另一个。但是,注意通过单个数字签名提供向不同公共密钥的不同金额的多次资金转移是可能的。在时间(时间)处从密钥PK向密钥PK′的金额A的支付P可以表示为:
P=SIGPK(PK,PK′,#A,I)
其中I表示视为有用的任何附加信息,如支付时间、支付原因的标示或可能不标示任何信息。PK(或PK的所有者)可以称为支付方以及PK′(或PK′的所有者)可以称为被支付方。正如本文中其他地方论述的,问题是确定PK是否有#A要转移到PK′。
比特币
在高层面上,在比特币和比特币的不同变种中,每个时点处,给定公共密钥PK(的所有者)拥有给定金额资金。此资金的其中一些可以通过数字签名从PK转移到对应于PK的私密密钥计算的另一个公共密钥PK′。没有受信的中央权威机构,这种签名的交易以去中心化方式在Web上广播。即,看见T的任何人都会将T转发到其相邻的人,其相邻的人将进一步转发到相邻的人,依此类推。见到T的每个人负责验证T的有效性。此验证可以包括验证用于对T签名的数字签名有效。但是,验证T还包括验证密钥PK有足够资金来执行T所指示的转移。
验证密钥PK有足够资金执行T所指示的转移可能需要验证整个交易历史,如果总交易数量是巨大的,则这可能不是个轻松的任务。而且,因为人们无法保证每个人都已看见所有交易,所以就当前交易历史的内容达成共识可能变得必要。要简化此任务,将交易汇聚成块B1、B2、...。每个块包括前一个块的散列、新交易的集合以及加密谜语的解答。此谜语取决于前一个块和新交易。
看见块Bi至Bk的用户和新(和有效)交易的集合通过解正确的谜语尝试将交易汇聚成新块Bk+1。用户被激励执行此任务,因为如果用户成功在其他人之前生成Bk+1,则该用户将赢得伙伴报酬。解加密密钥足够复杂。一个用户可能花费非常长时间来解给定谜语。但是,有许多用户尝试产生新块,并且由此解每个密钥。目前,谜语的复杂度选定为使得预期对于某个用户花费10分钟来找出解答。10分钟对于每个人看见新块并由此就交易历史内容达成共识是充裕的时间。然而,存在如下可能性:两个用户足够同时地解出谜语。例如,见到相同块链Bi、...、Bk,一个用户可能成功产生新块B'k+1,以及几乎同时,另一个用户可能成功产生块B"k+1。在本示例中,两个用户中每一个可能广播其自己的新候选块以试图获得关联的报酬。在稍后的时点,当生成更多交易时,第三个用户U可能见到两个可能的链B1,...,Bk,B'k+1和B1,...,Bk,B”k+1。为了创建新块Bk+2且收集关联的报酬,U需要决定是否尝试解与新交易以及块B'k+1或块B"k+1关联的谜语。即使他并行地执行此操作,因为解谜语需要计算工作且因为报酬发往生成块Bk+2的第一个用户,所以U将广播U发现的第一解答以锁定报酬。因此,当用户这样处理时,其他一些用户将见到长度为+2的块链B1,…,B'k+1,Bk+2,以及另一些将见到链B1,…,B”k+1,Bk+2。
因为用户被要求追加到最长的链,所以第k+1个块应该最终变得是唯一的。实践中,虽然用户见到的最后一个(或甚至倒数第二个)块可能变化,但是用户可以安全地认为长度k+2的链中的前k个块将不再是变化的。因此,如果属于倒数第三个块的交易将金额从公共密钥PK转移到公共密钥PK',则PK'的所有者可以视为自我支付。
比特币统计。因为比特币是完全对等协议,所以每个参与实体必须存储交易的整个公共总账。就2015年2月来说,公共总账的大小超过28GB,这是从此前两年的5GB增长而来的。截至2015年2月,公共总账的大小超过28GB,这是从此前两年的5GB增长而来的。而且,截至2015年2月,每个时间单位(即,10分钟)的交易总数是约650,而此前2年,每个时间单位的交易数量仅为450笔交易左右。通过外推,某个时点,公共总账在甚至最强大的蜂窝电话上可能无法容纳。
又因为在比特币协议中,每个实体必须在解某些加密谜语时使用计算循环,所以目前组合的所有比特币参与者的总计算能力突破1exaFLOPS。测量单位exaFLOPS是指计算机每秒能够完成的浮点运算的次数。或更简要地说,计算机能够解开数学问题的速度。1exaFLOPS是每秒1018或1,000,000,000,000,000,000个数学问题。注意,前500个最强超级计算机仅能够汇集比特币实体的总计算能力的仅12.8%。
比特币的弱点。上文论述足以突显比特币(以及其变种)的一些欠效率问题。这些欠效率问题包括:
大存储量。用户必须下载并存储大交易历史。
计算浪费。为了向公共总账添加新块,需要巨大量计算资源以解开必要的谜语,不仅对于成功的用户如此,而且对于尝试但是失败的所有其他用户也是如此。
支付时间。需要30分钟(或更长)才能确保向人支付比特币。假定公共密钥PK的所有者在时间t处通过生成必要的数字签名向公共密钥PK'的所有者支付金额X。然后为了确保系统中的每个人认同该交易,公共密钥PK'的所有者必须等待30分钟。实际上,因为平均而言,此交易出现在新块中花费约10分钟,以及此块成为倒数第三个块花费另外20分钟。
人们可能进行精细处理,以使添加块的预期时间低于10分钟,但是然后此节省的时间还可能需要等待特定块成为倒数第3,才能合理地确信该交易历史将不再影响该特定块。
中央币(CENTRALCOIN)
在中央币中,一个特殊参与者,中央验证方CV负责验证哪些资金转移有效,并密切地报告系统的状态,并且无法欺诈而不以可证明的方式公开显露有罪。CV的公共密钥,PKCV和CV的url是众所周知的。
参考图1,示意图100图示中央验证方102和通过网络108连接的多个其他参与者104-106。网络108可以是用于在其他参与者104-106与中央验证方102之间提供通信的任何适合的网络和/或机构,网络108的至少一部分可以由因特网来提供,虽然私用和/或点到点直接通信也是可以使用的。在一些实例中,通过网络108的至少其中一些通信可能是加密的和/或大致防护恶意用户的拦截,但是其他参与者104-106与中央验证方102之间的一些或全部通信未进行保护是可能的。
可以使用任何适合的计算机硬件和软件组合来实现中央验证方102和参与者104-106。在本文的实施例中,中央验证方102和参与者104-106是使用计算机工作站来实现的,但是其他实现也是可能的,包括中央验证方102和参与者104-106的其中一个或多个是包含多个计算机/处理器、存储装置等的数据站。
中央币以轮工作。每一轮t概念上由三个阶段(例如,每个阶段20秒)组成,并且在时间区间[t,t+1](例如,在1分钟内)内完成。在协议开始时(即,时间t=0时),所有参与者知悉附有其初始资金金额的公共密钥的精简列表。
阶段1-所有参与者下载两个CV签名的前一轮列表PAYt-1和STATUSt-1,验证CV的数字签名,以及验证已正确地从STATUSt-2和PAYt-1更新STATUSt-1。(或者,参与者可能仅验证状态报告中对应于其自己的公共密钥的子集)。
阶段2-每个参与者生成其自己的轮-t支付,并使之可供CV获得。
阶段3-CV计算新的当前轮列表PAYt和STATUSt,对其数字签名并发布(例如,在给定url上),PAYt指定轮-t的所有有效支付以及STATUSt指定轮t结束时的帐户信息。例如,CV可以公布
SIGCV(PAYt)和SIGCV(STATUSt)
其中PAYt=(t;.P1,P2,...)和STATUSt=(t;.(PK1,#A1,I1);...),以及其中PKi是系统中按词典次序的第i个公共密钥,#Ai是PKi所拥有的资金金额,Ii是有关PKi的任何附加信息,以及nt-1是时间t-1处的公共密钥的总数。
正如本文其他地方论述的,支付P的形式可以为P=SIGPK(PK,PK',#A,I)。该列表可以首先按支付公共密钥,其次按收款公共密钥PK',以及第三按金额A排序。如果支付密钥的签名有效,则支付有效,以及如果金额有效,相对于在轮t-1结束时PK所拥有的资金金额和PK的前轮-t。例如,如果根据状态St-1,PK在轮t-1结束时拥有#A,轮t-1中的PK的前k笔支付具有PK的有效签名且具有总金额A'<A,而PK的第k+1笔支付大于余额A-A',则PK的第k+1笔支付可以不视为有效的。
参考图2,流程图200图示中央币的操作。处理开始于第一步骤202,其中中央验证方接收来自其他参与者的交易。步骤202之后是步骤204,其中中央验证方等待此轮预定时间量。正如本文其他地方论述的,在本文的实施例中,每一轮可以是固定的时间量。注意步骤202、204可以组合,以基本上,中央验证方持续与每一轮时间对应的预定时间量接收交易。步骤204之后是步骤206,其中中央验证方发出Payt和Statust,正如本文其他地方描述的。在发出Payt和Statust之前,中央验证方可以执行验证,如验证其他参与者每笔交易的数字签名以及验证没有交易导致参与者拥有小于0的余额。步骤206之后是步骤208,其中递增迭代计数器(轮计数器)。步骤208之后,控制转移回步骤202进行另一次迭代。
中央币提供超精简记录,其中系统的完整状态相对精简。新公共密钥PK'可以通过在某一轮t处出现在PAYt中的支付(PK,PK0,#A,I)进入系统。备选地,CV或不同的实体可以在某一轮t处登记首次以STATUSt中0余额出现的新密钥。
认证列表PAYt和STATUSt可能是非常有效率的,因为CV对应于每个列表计算一个签名。但是,参与者期望保留仅轮t处的一笔支付的获认证的记录,则需要下载整个PAYt。但是,参与者期望保留仅轮t处的一笔支付的获认证的记录,则需要下载整个PAYt。为了减轻此类参与者的负担,CV可以对PAYt或STATUSt中的每一项进行数字签名。但是,在此情况中,对于CV在一轮阶段内产生如此多的数字签名是有挑战性的。因此,可能有利的是让CV将两个列表执行树散列(而非简单地单向散列),然后仅对每个散列树的根进行数字签名。此方法的优点在于,CV可以通过一个数字签名和列表中的每一项的一个常规散列对每个完整的列表进行认证,认证列表的数字签名可以是精简的(即,与列表中的项数无关),以及仅对列表中给定项目有关的获认证的记录感兴趣的人可能需要仅以最小数据量进行处理。本文中其他地方更详细地论述了树散列和签名机制。又见美国专利号6,097,811,其通过引用全部并入本文。
注意,在中央币中,CV无需完全受信,因为它是透明的。当参与者X是透明的时,则如果X行为失信,则X会产生失信的可广泛获得得证据。因为可证明的失信方会受到严重处罚(例如,如果是个人,会被从重罚款或坐牢),所以可以相对确信透明一方将守信作为(即,按合规的方式作为)。注意,透明性在金融系统中是有用的(即使不是决定性的)属性。实际上,应该真正恐惧的是未被检测到的失信。在本文描述的系统中,所有参与者基本总是透明的,或在一些情况中,防止了失信。
不知悉与给定公共密钥PK对应的私密密钥SK,CV无法执行从PK到某个其他公共密钥PK'的支付,即使CV期望这样做且不惧怕任何处罚。此外,CV无法在不被抓获的情况下非法地消除PK所拥有的资金金额。事实上,假定CV在某一轮t处第一次这样做。则在前一轮中,CV已经对正确的STATUSt-1正确进行了签名。因此,减少STATUSt中PK的资金金额的唯一合法方式包括减去轮t中PK已支付给其他密钥的所有金额(以及加上轮t中PK收到的所有支付)。因为这些转移均由PK进行数字签名,所以当CV对不正确地低于PK可用的资金的STATUSt进行数字签名时,CV是对明显虚假的内容进行数字签名,从而生成CV失信的公开证明。
此外,然而,CV仍可能尝试阻止资金从某个密钥PK转移到某个其他密钥PK'。即,CV可能阻止PK的所有者(分别为PK')使用(分别接收)任何资金。实际中,虽然及时地接收到轮t支付P=SIGPK(PK,PK',#A,t,I),但是CV可以不将P包含在PAYt中。在此情况中,PK(或PK')的所有者可能难以证明他事实上已将P及时提供给CV。相信谁是一个问题。跟踪CV对此类型欺诈明确有责任的一种方式是采用美国专利5,666,420,同时电子交易的技术,其通过引用并入本文。基本上,此技术确保了交换消息获取收据,以使(a)消息的接收方知悉消息,同时(b)发送方获得对应且非常详实且数字签名的收据。在本文描述的系统中,该消息包括支付P,接收方是CV以及CV在还未对P签发收据的情况下无法知悉P。以此方式,无论发送方是PK的所有者还是PK'的所有者,或代为处理的某个人,CV都无法不受处罚地忽略支付P。事实上,使用同时电子交易,CV产生CV及时接收到P的数字签名,并且由此如果CV不将P包含在PAYt,CV电子签名的列表中,则会证明有罪。因此,利用同时电子交易,中央币可以免于未检测到的欺诈,以及利用树散列和签名,中央币可以保证甚至个人获认证的记录的高效存储和检索。但是,中央币可能容易受到暗中破坏,因为CV是唯一的弱点。
传播币(SPREADCOIN)
在传播币中,有多个验证方V1,...,Vk。每个验证方Vi具有公共密钥VPKi以及对应的私密密钥VSKi。在一些实施例中,k是奇数;例如,k=11。传播币仅依赖于验证方给定多数的意见。如果此类多数验证方至少是透明的,更不用说诚实,则传播币安全地运作。例如,如果k=15,则在采用简单多数的情况下,传播币依赖于至少8个验证方的意见,以及在采用2/3多数的情况下,则依赖于至少10个验证方的意见。
参考图3,示意图300图示多个验证方302-304和通过网络312连接的多个其他参与者306-308。网络312可以是用于在其他参与者306-308与验证方302-304之间提供通信的任何适合的网络和/或机构。网络312的至少一部分可以由因特网来提供,虽然私用和/或点到点直接通信也是可以使用的。在一些实例中,通过网络312的至少其中一些通信可能是加密的和/或大致防护恶意用户的拦截,但是其他参与者306-308与验证方302-304之间的一些或全部通信未进行保护是可能的。
可以使用任何适合的计算机硬件和软件组合来实现验证方302-304和参与者306-308。在本文的一个实施例中,验证方302-304和参与者-304306是使用计算机工作站来实现的,但是其他实现也是可能的,包括验证方302-304和参与者-304306的其中一个或多个是包含多个计算机/处理器、存储装置等的数据站。
传播币按轮工作,其中每一轮处,验证方Vi按如下步骤操作:
阶段1:
Vi获得相对于轮t的多笔支付。
例如,如果P是此类支付,则是支付方发送P到Vi或使P被Vi接收到,以进行进一步处理,因为支付方可能希望在系统中明确支付方确实已进行了支付P。备选地,接收到P之后,可能是被支付方向Vi发送P或使P被Vi接收到,因为被支付方有兴趣在系统中明确被支付方获得支付。
阶段2:
Vi确定轮t中接收的哪些支付视为有效的。
具体地,在标识轮t中接收的支付时,Vi可能忽略重复的支付。为了将公共密钥PK向另一个公共密钥PK'作出的金额A的轮t支付P(例如,P=SIGPK(PK,PK',#A,I))标识为有效的,Vi可以执行若干核对。例如,Vi可以验证在系统中使用证书的情况下PK正确地通过证明,验证相对于PK的数字签名是正确的,(例如,通过查询STATUSt-1内的正确信息)验证资金金额A确实小于或等于前一轮中可供PK使用的资金金额,以及验证在轮t的适合时间接收到P和/或对于轮t,P的时间信息是适合的。更一般性地,如果Vi接收到公共密钥PK作出的多个轮t支付,则Vi可以验证所有此类支付的金额合计小于前一轮中可供PK使用的金额。在给定轮中Vi接收到PK作出的其总金额超过先前可供PK使用的金额的多笔支付时,Vi可以作出多种选择。具体地,Vi可以不将PK作出的任何支付包含在轮t的有效的接收支付中间。备选地,Vi可以仅包含PK作出的子集支付,其中该子集的总金额不超过先前可供PK使用的资金金额。例如,Vi可以包括PK的支付的最长子序列(例如,按词典次序),其中已付的总金额不超过轮t-1中可供PK使用的资金金额。
阶段3:
Vi优选地一起认证Vi确定有效轮t支付,并且使此类支付对于至少另一个实体E可获得,以及优选地确实使此类支付变为可广泛获得。
令是Vi确定为有效的轮t支付,优选地计算并广泛地告知
这样做,Vi帮助用户U确定哪些轮t支付是被多数验证方认为有效的。例如,假定有100个验证方,以及每个验证方Vi将张贴到每个验证方的网站中或例如,Google或Amazon的通用/公共网站中。然后,U能够容易地为获认证的信息进行对账,以确定PAYt,本质上由给定多数验证方认为有效的轮t支付。
注意,用户能够计算PAYt而无需从所有验证方i获取以及可以向U确保支付P有效而无需从所有验证方i获取例如,假定有100个验证方以及支付P的被支付方尝试使P被所有验证方获得,但是仅90个验证方获得P并认证P有效,以及U从这些90个验证方中的仅80个获得则,U仍得以保证P有效。例如,假定有100个验证方,以及如果至少简单多数验证方认为P有效,则支付P有效。然后如果U仅从例如80个验证方获得以及其中60个认证P为有效的,则U得以保证P有效。这种鲁棒性是有用的,因为偶尔一些验证方可能因任何数量的原因而无法传送确定结果,如验证方与网络断开连接,或验证方的计算机暂时发生故障。
还要注意,用户U可能在某一轮中无法获知PAYt(例如,因为用户与网络断开连接)。在任何情况中,因为来自验证方的信息广泛地告知,U总是能够捕获,例如在一轮或两轮之后。当U无法计算STATUSt-1时,U可以在晚于轮t的一轮中询问轮t中不会向U支付的另一个用户。备选地,U可以首选不依赖于另一个用户X在轮t中向U作出的支付P。例如,如果假定U向X提供一些商品或服务作为P的回报,当U最终知悉STATUSt-1时,U可以等待一轮或多轮来执行。总之,该系统是具有足够鲁棒性的,每个人能够计算PAYt,尽管稍晚些。
还要注意,从PAYt和STATUSt-1,U则可以容易地计算STATUSt。实际上,如果对于轮s<t-1,U计算了(或以其他方式知悉)STATUSS,则对应于足够多的验证方j,给定(已通过任何方式使之可获的值),用户可以计算STATUSt。
参考图4,流程图400图示传播币的操作。处理开始于第一步骤402,其中每个验证方接收来自参与者的交易。步骤402之后是步骤404,其中验证方等待此轮预定时间量。正如本文其他地方论述的,在一个实施例中,每一轮可以是固定的时间量。注意步骤402、404可以组合,以基本上,验证方持续与每一轮时间对应的预定时间量接收交易。步骤404之后是步骤406,其中验证方发出Payt和Statust,正如本文其他地方描述的。在发出Payt和Statust之前,验证方可以执行验证,如验证其他参与者每笔交易的数字签名以及验证没有交易导致参与者拥有小于0的余额。
步骤406之后是步骤408,其中确定是否多数验证方(按具体实现所指定的)认同,正如本文其他地方描述的。如果情况如此,则控制从步骤408转移到步骤412,其中确认该轮(即,递增t)。步骤412之后,控制转移回步骤402进行另一次迭代。如果在步骤408中确定多数验证方不认同,正如本文其他地方描述的,则控制从步骤408转移到步骤414,其中拒绝该轮(即,该轮中没有交易被确认),正如本文中其他地方描述的。步骤414之后,控制转移回步骤402进行另一次迭代。
可选验证方阶段
Vi使用其他验证方j的值来确定、认证PAYt且使之可广泛获得。例如,Vi贴附SIGVPKj(PAYt)。从其可获的所有获认证的信息,Vi也可以计算、认证STATUSt以及使之可广泛获得。例如,Vi贴附SIGi(PAYt)。
注意,虽然在比特币中,将有效交易组织在块中,以及在传播币中,将有效交易组织在轮中,但是能够确保的是生成块的预期时间T等于一轮的时长。然而,T期间预期的计算量在比特币中按设计是非常大的,在传播币中非常适中。注意,为了方便,在阶段2中,Vi通过一个数字签名认证支付Vi,全部一起考虑有效的。但是,让Vi使用多个数字签名单独地(一对一)认证支付也是可能的。再有,Vi在阶段1中获得的支付的数量可以是全部轮t支付或轮t支付的一部分。具体地,Vi可以处理给定类别的轮t支付。例如,Vi可以处理其支付方或被支付方属于给定集合或某种程度与Vi关联的轮t支付。更一般性地,对支付P的给定函数求值以确定Vi能够处理P是可能的。支付P的时间或金额可以确定Vi是否处理支付P以及以此类推。无论情况如何,如果一些验证方仅处理支付的其中一些,支付P是否有效可能取决于仅处理P的验证方的意见,而非所有验证方。
促进方的可选使用
传播币还可以使用一个或多个特殊实体E,例如银行或大公司,如Google或Amazon,以使得普通用户U更容易地知悉轮t处的有效交易或系统状态。具体地,在本文描述的系统中,对于上文阶段之后的每一轮t,此类实体E可以执行如下操作:
透明促进方阶段
使用足够多(虽然不一定是全部)验证方使之可获的获认证的轮t信息,E可以单独地、一起或组合方式计算、认证PAYt、STATUSt或视为有用的其他信息或二者并使之可广泛获得。
备选地,E可以可能地通过重新组织、组合、认证或进一步认证来中继传送至少一些验证方的轮t信息。
再有备选地,E可以计算,可能地认证信息并使之可获,该信息连同至少另一个实体E'使之可获的信息一起,能够可能地采用获认证的形式实现如下项的至少其中之一的计算:ΡΑΥt、STATUSt、二者兼有或其组合。例如,E可以贴附SIGE(PAYt,I)、SIGE(STATUSt,I)、SIGE(PAYt,STATUSt,I)、 或其中I是任何附加信息,如有关t的信息,时间信息或没有任何信息。
例如,如果有100个验证方,则用户(例如,新用户)U可以直接从E以获认证的形式知悉有关给定轮t的信息,而无需获取足够多验证方的相关轮t信息。例如,U可以从SIGE(STATUSt)知悉STATUSt或从SIGE(PAYt)知悉PAYt。注意,E无需非常受信,因为E是透明的参与者。事实上,E公布和认证E产生的轮t信息,以及参与者可以使用已通过任何方式使之可获的当前和过往验证方认证的信息,以检查E提供的信息是否正确。以及如果E提供的信息不正确,则E本身将提供E失信的证据。因此,如果E是银行或具有重大资产的参与者,则E会因被捕获不当行为承受大损失。向捕获E行为失信的某个人提供报酬也是可能的。
一般性地,验证方负责确定哪些支付有效,但是不能使诈而不受处罚的情况下,E可以帮助散布验证方的确定。在一些实例中,单独的实体可以充当E的角色。在此情况中(区别于可能的处罚),可以从每个实体E提供的信息确定当前状态。例如,如果仅且如果对于给定多数实体E,项(PKj,#Aj,Ij)属于E报告的(优选为获认证的)轮t状态,则该项可以属于STATUSt。还要注意验证方本身可以充当E的角色。
(在本文实施例中,允许每个参与者每一轮仅一笔支付。这可以在该轮期间的任何阶段由参与者、验证方或促进方中任一方来验证有效性。例如,如果实体检测到欺诈参与者正在试图在一轮中执行两笔或更多笔交易,则实体向系统中的每一个人通知特殊消息标示该可能的欺诈。特殊消息可以包含来自该欺诈参与者的两笔支付,或可用于证明欺诈尝试的任何其他信息。可以按罚分来处罚该欺诈参与者或从系统中将其暂停。在此情况中,可以相应地更新报告STATUSt以反映欺诈交易中涉及的所有参与者的处罚/罚分-即,欺诈参与者和欺诈参与者的对应接收方。)
就效率而言,与中央币一样,传播币生成的系统状态也是相对较精简的。每10分钟处理650笔交易以及275000个密钥(与比特币中一样)对于中央币是没问题的。即使每分钟百万个公共密钥和一百万笔交易,中央币仍远优选于比特币的公共总账。
就安全性而言,要注意在传播币中,个体验证方Vi无需是受信的。事实上,Vi无法从头开始造假不同用户的支付P。实际中,每笔支付必须以支付方的公共密钥PK进行数字签名,以及从而需要知悉PK的所有者应拥有的对应私密密钥SK。出于相同的原因,V无法更改有关合法支付P的金额、被支付方、时间或任何内容。可能阻止Vi完全透明的一个问题是(除非使用前文论述的同时电子技术)Vi可以规避确认合法支付P:例如通过不将该支付包含在中。即使注意到其他验证方确认了P而Vi未予确认,Vi仍可能总是令人相信地宣称没有接收到P。但是,给定系统的工作方式的情况下,这种完整透明性的缺失不是很严重。如果足够多的其他验证方j将P包含在中,则通过将所有验证方数据核实并采纳适合多数,则任何人可以正确地重构PAYt,即,轮t的所有合法支付。
具体地,如果足够多数的验证方确认合法支付,则即使恶意验证方串谋且完美地自行协作,仍无法破坏传播币。
此外,正如本文其他地方更详细描述的,不会仅依赖于多数验证方的无实际意义的诚实,传播币可以妥当地激励每个验证方将所有合法支付确认为合法的。
传播币还提供防护停止工作的验证方的弹性。例如,一些验证方可能与网络断开连接,以及由此无法达到或可用于执行验证方的功能,或一些验证方的网站可能被希望破坏传播币的对手攻占。为了破坏传播币,在需要简单多数时,敌方需要成功地攻占超过一半的网站,例如如果验证方的数量是k=11,则需要攻占11个网站中的6个,或如果k=101,则需要攻占101个中的51。
传播币可以使用促进方来加强。正如本文其他地方论述的,验证方在给定轮处操作之后,可以使用一个或多个实体E,以促进系统的使用。此类促进实体还可以在一轮开始时提供帮助。例如,为了避免向多个验证方发送支付,参与者可以仅向促进方E发送支付,该促进方E然后将支付分发到验证方或将支付张贴到验证方可以拾取的地方。当然,如果促进方的工作不能令人满意,参与者可以总是直接与验证方交涉。相同实体E实际可以在一轮开始和结束时帮助系统。
使用加权的多数也是可能的。在上文论述的多数的示例(无论是简单多数、2/3多数等)中,验证方/验证方密钥均被等同地对待。但是,多数可以是加权的多数,其中对一些验证方/验证方密钥赋予比其他验证方/验证方密钥更大的权重是可能的。例如,如果有100个验证方/验证方密钥以及使用简单多数,则可以对来自特定验证方/验证方密钥V/VPK的结果十倍于其他验证方进行加权,,使得在这些验证方/验证方密钥中的51个认为P有效的情况下,可以将给定轮t支付P可以被视为有效,在V/VPK和其他41个验证方/验证方密钥宣称P有效的情况下,也可以将P视为有效的。如果相对于验证方密钥将P认证为有效的,则该验证方密钥将支付P视为有效的。
报酬验证方
正如本文其他地方论述的,在传播币中,失信验证方Vi无法伪造或修改合法支付,但是可能蓄意地不在中包含有效支付P。如果足够多的验证方对给定公共密钥PK作出的支付P这样做,则P将不会进入PAYt以及支付方不得不在下一轮中再次进行支付,如果支付方如此选择的话。但是如果足够多验证方在每一轮都坚持,则虽然PK的所有者不会损失其资金,但是他将丧失消费资金的能力(以及需要上法庭恢复其能力)。因此,有所帮助的是确保在不涉及法院或其他昂贵或欠效率的程序的情况下,不激励验证方Vi不去识别有效的轮t支付P。为此,可以按如下针对Vi所做的工作给予Vi报酬:
阶段4:
Vi获得报酬其可以取决于(a)Vi和/或其他验证方识别为有效的支付和/或(b)其他数值Q,如t、i、其他轮的数量等或无数量。
例如,令At为PAYt或中所有支付的金额之和,则Vi可以生成At的百分比-例如1%。由此,通过不将有效支付P包含在中,Vi承担减少At的风险以及由此承担给Vi的报酬减少的风险。具体地,在给定一轮处的所有验证方的总报酬可以是At的给定分数c,验证方Vi的报酬可以是其中有k个验证方且验证方被等同地对待。备选地,Vi的报酬可以是所有验证方的总报酬的不同部分。
还可能的是,所使用的报酬可以使Vi在即使忽略标识为有效的单笔支付涉及小资金金额时也会引发接收远更少资金的风险。例如,Vi的报酬可以由ci·At组成,其中PAYt中的每笔支付也出现在中;它可以由组成,其中PAYt中的一笔支付未出现在中;它可以由组成,其中PAYt中的两笔支付未出现在以及以此类推。在任何情况中,均可以确定Vi在轮t处的报酬,以只要Vi忽略将有效交易确认为有效的,则使得Vi引发接收的金额严格较小的风险,可能不仅是在给定一轮中,而且例如是在将来数轮中也是如此。
系统提供自动报酬支付。无论报酬是如何计算的,验证方Vi可以任何视为适合的方式来接收报酬,如通过某个实体E执行的单独支付。备选地,作为系统的普通用户,Vi可以有公共密钥PKi,能够存放资金或向可以与Vi使用来对Vi确信有效的支付进行数字签名的公共密钥分开的其他公共密钥支付资金。在此情况中,该系统的当前状态可以获得有关可供PKi使用的资金金额的信息;例如,当前状态可以包含形式(PKi,#a,I)的项。由此,无需依赖于外部支付,即可报酬Vi,也不需要依赖于向系统内的PKi单独支付。例如,要求每个人例如在STATUSt中或在给定的稍后一轮中自动更新PKi存放的资金金额,以反映对Vi在轮t中所做的工作的报酬。例如,假定STATUSt-1包含项(PKi,#a,I),Vi在轮t的报酬简单地由At的分数c组成,以及Vi不使用PKi来进行轮t的任何支付。考虑使用验证方数字签名的数值以根据STATUSt-1计算STATUSt的任何一方X。在此类情况中,U可以简化地根据计算c·At并且可以简化地将STATUSt-1中的项(ΡKi,#a,Ι)替代为STATUSt中的项(ΡKi,#a+c·At,Ι)。
该系统支持预算余额报酬。上文描述的自动报酬系统生成某个“通涨”,其中每一轮处,该报酬系统促使可供系统中所有公共密钥使用的资金总金额增加。但是,可以通过让验证方的报酬由系统中的一些/所有/其他用户支付来避免此类“通涨”。此类支付也可以是自动的。例如,为了简明,假定所有验证方Vi的总报酬是轮t的有效支付的总金额的1%。然后,如果对于金额为a的每笔有效轮t支付P,由P的被支付方(或部分地由支付方以及被支付方的余额)向验证方进行1%的附加支付,则可以避免通涨。为了使此支付自动化,假定在轮t从公共密钥PK向另一个公共密钥PK'支付P。然后可以由计算STATUSt的人在STATUSt中从PK自动减去a的附加1%。备选地,可以从PK'自动减去此金额部分;或从PK以及从PK'的余额减去此金额部分。再有备选地,可以将支付(自动或非自动的)在有兴趣保持系统无通涨的其他实体中传播。
该系统支持仅从零售商进行报酬。在一些实例中,让支付P的被支付方(或支付方)向验证方或其中一些验证方贡献报酬可以看作交易费。支付交易费可以被一些用户,如零售商接受,但是,可能不被另一些用户所接受。例如,普通用户U希望向另一个普通用户U'转移$100,他可能认为向验证方支付$1是不可接受的;以及相似地,U'可能认为实际上仅接收到$99是不可接受的。相应地,验证方的报酬可以基于支付给零售商的金额来计算,并且来自零售商本身。例如,如果公共密钥PK得以证明,则PK的证书还可以指定(例如,在信息字段I内)PK事实上被零售商所拥有。以此方式,它可以相对容易地获知支付P是否是向零售商的公共密钥支付的,以及由此获知验证方是否能够就此交易索要一些费用。对比之下,当从普通用户向另一个普通用户支付时,支付方以及被支付方均不被要求向验证方支付报酬。因此,原理上,对于验证方Vi避免包含此类支付而不引起任何资金损失是可能的。
但是,还可能的是,根据阶段4中指定的数值确定验证方Vi在轮t的报酬,以激励Vi将事实上有效每笔轮t支付P报告为有效的,无论例如被支付方是否是零售商。例如,如果所有k个验证方被等同地对待,且如果验证方的报酬仅由零售商(自动)支付,以及应付总报酬是RAt的1%(其中考虑PAYt中的所有支付,RAt是支付给零售商的所有金额总和),则1%的报酬要求为:
其中是中的且在PAYt中也出现的支付的总笔数,以及Tt是PAYt中的支付总笔数。
由此,虽然仅零售商实际支付Vi的报酬,但是Vi承担如果Vi不在PAYt中包含Vi视为有效的所有轮t支付(包括从普通用户向普通用户的支付)则损失资金的风险。为了使无论是支付给谁,忽略甚至一笔支付要承担更大风险,可以将Vi的报酬选为:
如果PAYt中的每笔支付都出现在中;
如果PAYt中的1笔支付未出现在中;
如果PAYt中的2笔支付未出现在中;
以此类推。
民主币
民主币是传播币的变种,其中给定轮的验证方是具体通过如下操作随机选定的:
供应商选择阶段
对于每一轮t,实际验证方集合通过选择过程从可能更大的潜在验证方集合随机地选择的,该选择过程优选为保持接近度的,即,该选择过程根据彼此接近的集合生成彼此接近的(子)集合。
注意如本文所使用的术语“随机”应该理解为包括“充分随机”或“伪随机”。相似地,术语“随机地”也可以理解为包括“充分随机地”或“伪随机地”。
如果在A中但不在B中的元素相对于同时位于A和B中的元素更少,则两个集合A和B彼此接近(或基本完全相同);以及对于B反之亦然。例如,1与1,000之间的所有数的集合和10与1,012之间的所有数的集合可以视为彼此接近。当然,两个完全相同的非空集合总是彼此接近。暂时假定每个用户可以在系统中具有一个公共密钥。然后,利用密钥的用户标识该密钥,可以将AV视为所有实际验证方密钥的集合以及将PV视为所有潜在验证方密钥的集合。本文其他地方论述验证方是诚实的概念。注意如果给定多数PV是诚实的且AV是在PV中随机选定的,则具有高可能性,当AV足够大时,给定多数的AV也是诚实的。
接近度。民主币系统妥当地运行是有用的,给定轮的有效支付应该被正确地确定和认同。因为此类支付由给定多数实际验证方来确定,所以如果多数AV是诚实的且所有用户认可AV,则系统将妥当地运行。注意,如果多数PV是诚实的,则高可能性地,当实际验证方的数量足够高时,多数AV也是如此,因为AV是随机从PV选定的。还要注意,不必要所有用户都认同AV。即使每个用户U都有他自己确信是AV的集合AVU,只要每个此类AVU接近AV或所有AVu接近,则该系统能运行良好,因为它们中任一个可以视为AV。基本上,这是因为非常高可能性地,如果压倒性多数的PV是诚实的话,则给定多数AV和接近AV的任何PV子集的给定多数也是如此。
确保每个AVU接近AV(或所有AVU都接近)的一种方式是确保集合PV是固定的,以及让每个用户U使用保持接近度的选择过程从PV中选择其自己的AVU。正如本文其他地方论述的,另一种方式是将集合PV选为,即使PV可能随时间变化且每个用户U可能诚实地得出结论每个用户拥有的集合PVU是潜在验证方的集合,仍必须PVU与PV接近(或所有PVU都接近),以所有集合AVU也是接近的。
激励。因为民主币由采用特殊的选择验证方方式的传播币组成,所以针对传播币论述的相同报酬方案可以用于民主币中,以确保在轮t处,实际验证方将这些验证方看到的所有轮t的支付认证为有效的,除非或许未在运行中的验证方,如与网络断开连接的验证方或其计算机故障的验证方等。相应地,可以预期轮t的压倒性多数的验证方将正确地报告轮t的有效支付。
参考图5,示意图500图示多个第一参与者502-504和通过网络508连接的多个第二参与者505-507。网络508可以是用于在参与者502-507之间提供通信的任何适合的网络和/或机构。网络508的至少一部分可以由因特网来提供,虽然私用和/或点到点直接通信也是可以使用的。在一些实例中,通过网络508的至少其中一些通信可能是加密的和/或大致防护恶意用户的拦截,但是参与者502-507之间的一些或全部通信未进行保护是可能的。正如本文其他地方论述的,参与者502-504的子集可以选为每一轮的验证方以及对应于不同轮可以选择不同子集。
与传播币一样,可以使用任何适合的计算机硬件和软件组合来实现参与者502-507。在本文的一个实施例中,参与者502-507是使用计算机工作站来实现的,但是其他实现也是可能的,包括参与者502-507的其中一个或多个是包含多个计算机/处理器、存储装置等的数据站。参与者502-507的其中一些或全部可以在物理上同在一处,或位于不同的物理位置中。本文描述的系统允许参与者502-507通过参与者502-507(以及可能的其他人)之间经由网络508的通信执行金融交易而无需位于相同位置或无需依赖于中央权威机构。
民主和预算平衡。注意民主币在精神上是非常民主的。通过选择与所有用户集合吻合的潜在验证方集合,以及在每一轮从所有可能用户中随机地选择实际验证方,每个人都有机会作为验证方。这类似于其他公民任务中出现的,如陪审团义务。而且,通过仔细地选择实际验证方与所有用户的比例(例如,1/1,000),每个用户都将在每年非常少几次实际地成为验证方。注意作为实际验证方不会有很大负担。事实上,验证过程非常自动化且能够由用户的计算机或蜂窝电话在后台执行,而完全不会烦扰用户。此外,实际验证方得到资金上的激励以妥当地验证一轮中提交到验证方的所有支付。例如,实际验证方可以获得通过验证的支付总金额的1%作为报酬。注意民主币的此方面是非常不同的,以及在更民主的方向上,相对于传统系统中出现的非常不同。例如,在信用卡系统中,用户(例如,商家)必须向负责监察支付有效性的外部实体支付收款金额的2%或3%。相比之下,在民主币中,用户支付彼此转移的资金的1%,以及任一个用户都有机会在每一轮成为实际验证方。例如,如果就给定支付应付验证方的报酬来自被支付方,且用户平均接收到相同金额的资金,则预期上,民主币用户不会因系统报酬损失任何资金。
安全性。如果相同一组最初诚实的人总是“掌权”,则串谋的诱惑可能变得太强而无法抵御。但是,在民主币中,情况并非如此。首先,正如本文其他地方论述的,实际验证方无法伪造另一个参与者的支付(因为实际验证方不知道该参与者的私密密钥)。其次,实际验证方无法将无效支付宣称为有效的而不受处罚。实际中,验证方的宣称是数字签名的,以及所有支付都是如此,无论有效与否。因此因为将无效支付宣称为有效的,验证方必定会产生其有罪的数字签名且公开的证据。第三,实际验证方在一轮t的诚实行为会得到财务上的报酬,所以验证方忽略来自的有效支付是无利可图的。第四,该系统依赖于给定多数验证方的意见,并且只要例如所有用户中80%始终是诚实的,在每一轮通过选择足够多验证方(例如,100个),得以保证,非常高可能性地,给定一轮的多数实际验证方是诚实的。最后,给定一轮的实际验证方的集合AV是随机选定的,并且在该轮开始时成为已知的。因此,对于不诚实验证方来说,在知道AC的其他成员的身份时,尝试说服其他成员与该不诚实验证方串谋是基本无用的。AC的成员将没有共谋所需的时间;例如在仅10分钟之后,随机的一组不同实际验证方将接管处理下一轮支付。
有人可能尝试通过将潜在验证方密钥集合与恶意操作者的公共密钥捆绑来破坏民主币系统。但是,存在若干方式防范这种潜在攻击。一种方式是从系统中的每个公共密钥提取入口费或(按比例)年费。此类费用可以在系统外支付或在系统内支付(例如,通过从每个公共密钥到系统中的给定密钥的自动支付)。以此方式,将公共密钥集合与伪造的大量且潜在可控的密钥捆绑会是非常高成本的。
第二种方式是使得将公共密钥PK选为某一轮t的实际验证方密钥的概率还取决于该PK在例如该一轮开始时的资金金额,即还取决于STATUSt-1中的(PK,#A,I)。此方式确保用户不会因在系统中拥有多个公共密钥而有优势被选为实际验证方,因为如此入选的概率仅取决于用户与其所有公共密钥关联的资金总金额。用户因此可以通过“保持系统中的所有资金关联到一个密钥”来获得相同的概率。注意以此方式,在系统中更重投资的用户也有更大责任运行它(或许从某种观点来看是优点)。
第三种方式是设有至少一个特殊实体,称为验证方登记权威机构(VRA),其(匿名方式或非匿名方式)证明公共密钥有资格被选为验证方密钥。在此情况中,VRA可以容易地确保每个用户都拥有能够成为验证方密钥的最多一个密钥PK。以此方式,将潜在验证方密钥与可容易控制的密钥捆绑变得更难。例如,VRA可以要求注册方在公共密钥PK的证书中提供身份证明(以及可能地插入身份的某种指示)。备选地,VRA可以不时地认证有资格成为验证方密钥的公共密钥的一个列表。
注意,当参与者的数量巨大时,如果上文的一些方式被采用,则通过控制多数潜在验证方密钥来破坏民主币是非常困难的。(通过控制以任何方式已经属于少数联盟-“矿池”-的矿工集合来破坏比特币是远较容易的。)最后,另一种可能性是具有验证方的混合体:例如:(a)固定集合的验证方(可能地一个没有);(b)动态入选的验证方集合(可能地一个没有);以及(3)不时登记的验证方集合(可能地一个没有)。
选择过程的样本实现
实际验证方的目标数量。作为示例,但并无任何预设的限制,令k表示给定一轮的实际验证方的目标数量。该目标数量可以是固定的或随不同轮而改变,并且可以是近似值。例如,k可以取决于数量,如(可能近似的)轮数、(可能近似的)系统中资金总金额、(可能近似的)系统中的用户/公共密钥的总数等。例如,当用户数量或公共密钥的数量在100,000左右时,系统可以具有100个验证方。使用此类相关性上的近似数对于向信息不全面的参与者(仅了解在当前一轮之前几轮的系统状态的参与者)阐明验证方的目标数量是有用的。
与实际验证方的通信。与传播币的验证方一样,民主币的轮t的实际验证方接收和发送信息。例如,实际验证方i需要接收轮t的支付,并且通信告知验证方i计算的和可能的与几个固定数量的验证方进行通信可能是不重要的,因为例如验证方的网络地址可能是公开已知的。但是,当潜在验证方的集合非常大时,以及该集合随时间而增大(正如当验证方密钥的集合由系统中的所有公共密钥集合组成时),确定如何向仅选定的验证方通信可能在某种程度上不方便。获知AV的组成是一回事,而获知如何向AV的成员通信则是另一回事。为了便于此类通信。可以使用中间实体E,其处于较好的位置以获知如何达到每个潜在验证方。例如,用户可以向E发送给定轮t的支付P,E然后将P转发到每个实际轮t验证方。再有,每个实际验证方可以在可广泛获得的网站中贴附验证方i计算的或并且用户则可以从该网站检索贴附的信息,并在用户获知实际验证方的身份之后验证信息的真实性。
备选地,正如本文其他地方论述的,STATUSt-1中的每个记录由形式(PK,#A,I)的元组组成,并且因此PK的所有者可以选择在信息字段I中包含有关如何与PK的所有者通信的信息:例如,只要PK成为验证方密钥时能够找到和所在的url。还要注意还可以使用信息字段I来指示PK是否有资格被选为验证方密钥。
初始实现。给定一轮t中的集合AV可以以预定方式根据关联到轮t的随机值vt从PV推导。具体地,当vt可以是自然数且公开的随机数时,意味着vt是任何给定个人难以控制的随机过程的广泛可知的结果。例如,vt可以在给定时间(例如,轮t开始时或前一轮的给定时间处)不同城市的气温,或给定股票交易所在给定时间交易的给定证券股票的数量等等或此类数值q1,...,qm的组合或系统的此类数值与其他数值的组合,如当前轮t。例如,vt=H(q1,...,qm)或vt=H(t,q1,...,qm)或vt是H(t,q1,...,qm,1)、H(t,q1,...,qm,2)...,H(t,q1,...,qm,s)的串联,其中H是防冲突散列函数。
如下是以预定方式根据vt推导AV的一种方式:将vt考虑为位串且令PV由2n个潜在验证方序列组成,则vt的前logn位指定第一个验证方(通过在序列PV中指定其对应编号),第二批logn位指定第二验证方,并且以此类推。注意,在上文的方式中,知道vt的任何人将结束选择相同集合的实际验证方AV,并且该AV将随机地从PV选出,因为vt是随机的。还要注意上文的方式选择近似为k的验证方数量,因为一些验证方可能入选两次,因为对于某个i和j,vt的第i个和第j个logn位可能是相同的。例如,如果打算从100,000个潜在验证方中随机选择100个实际验证方,则可能截止于仅96个验证方,但是这足够好。截止于选到非常少验证方的概率应该极小。
根据vt推导出AV的更一般性方式包括如下步骤(1)以伪随机方式从vt获得字符串R-例如,令R=PRG(vt),其中PRG是伪随机数发生器-然后(2)根据R(和/或PV)推导出AV。例如,令H是防冲突或单向散列函数,R可以根据vt通过将例如如下字符串串联来生成:H(l,vt)、H(2,vt)、…、H(j,vt)。以此方式,随机值vt可以是较短的,即使需要较长的字符串R来推导AV。
附加实现。从PV选择AV的备选方法包括一个或多个特异实体,称为信托人。如果已经有受信方T,T充当单一受托人,可以随机地选择轮t的实际验证方V1,...,Vk,并以优选为获认证的形式在规定的时间(例如该轮稍微之前或开始时)使集合AV让所有人知悉。例如,T可以在广泛可访问的网站上贴附SIGT(AV)或使之被贴附。这样通告给定轮的实际验证方是谁。
以稍微间接但是仍非常清晰的方式,T可以选择随机值vt,根据vt以预定方式推导出AV(可能地首先根据vt产生字符串R,然后根据R推导AV),并且优选为以获认证的方式使vt可广泛获得。例如,T可以在适合的网站上贴附SIGT(vt),以使其他人能够检索到vt,然后以预定方式根据vt推导出VA。
但是,如果T不是受信任的,则vt可能并非随机选择的,并且因此实际验证方可能并非随机选择的。为了避免此问题,值vt可以取为关联到轮t的自然公开随机值。例如,如果T公布SIGT(vt),则每个人即刻知悉vt,并即刻由此计算出AV,然后可以通过检查协议的随机过程是否确实产生vt来检查vt实际是否正确。例如,可以通过检查给定股票交易所中给定时间交易的给定证券的股数来产生vt。相应地,T无需非常受信任。通过不诚实作为,T产生错误值的其数字签名会公开地展示自己有罪。如果发生此情况,则T会被处罚或罚款,并且报告T的不当行为的参与者可以获得奖励。当至少一些用户比确定vt的实际值更容易地从给定网站知悉值SIGT(vt)时,此系统可以运行良好。
备选地,可以由T以不会使得T能够对vt的实际值有完全控制的方式产生vt。例如,vt可以由SIGT(t)组成,即,vt可以由T对应于当前轮t的数字签名组成或由SIGT(t,I)或由SIGT(I)组成,以及T使用的底层签名方案是确定性的。实际中,T的数字签名可以对于T以外的任何人是真正不可预测的,因为仅T知道关联到T的验证公共密钥的私密密钥,具体地,vt=SIGT(t)是充分随机的并且也是充分认证的。更一般性地,当信息I是不可控制的或无法被T影响且vt=SIGT(I)时,T无法“搜购”T想要的vt,并且因此由于AV是以预定方式根据vt推导的,所以T无法搜购T想要的实际验证方AV集合。
但是,上文论述的机制对于来自恶意T的某种可能欺诈留有口子。为了简洁,假定vt=SIGT(t)。则T可以针对某个将来一轮t计算其数字签名。相应地,虽然T不能如T期望的选择AV,但是T可以:(a)了解将来值V的取值,(b)了解将作为将来数轮的验证方的参与者,以及(c)向参与者集合提示他们将实际是给定将来一轮的验证方。如果情况如此,则可能给予某个将来一轮t的验证方足够时间(而非所说的仅10分钟)彼此串谋。为了防止这种可能性,更好的是选择vt=SIGT(t,I),从而确保I包含时间t或接近t的随机过程的结果。
进一步实现。;另一种备选方案是依赖于多个实体T1、…、Tj,信任他们的至少其中之一是诚实的。在每一方Ti以上文描述的任一方式计算值计算值 之后,值vt可以取为多个不同值的预定组合(可能地含有某种附加信息I)。注意,一方Ti能够随意控制最终值vt仍是可能的,甚至在已经知道所有值其中x≠i时。例如,假定每一方Ti被允许无任何约束地选择以及最终vt是所有之和按某个整数N求模。然后,如果一方Ti在知悉所有其他各方通告值之后通告他自己的值vt i,则Ti可以使得vt i选为使vt强制为Ti想要的任何值按N求模。优选地,多方的组合应防止一方Ti能够随意地控制最终值vt,甚至在已经知道所有值其中x≠i时。例如,如果对于所有i,vt i=SIGi(t),则可以令其中H是防冲突散列函数。
但是,注意T可能无法在某一轮t产生(适当获认证的)值vt i。例如,Ti的计算机可能未在工作,或Ti可能与网络断开连接,或因其他原因无法送达vt 1。当情况如此时,可能无法计算组合值vt并由此无法计算推导的实际验证方集合。为了防止这种可能性,可以产生每个vt时使得它不仅足够随机且容易验证,而且还具有鲁棒性,即,只要多数T正常运行,它也容易且始终能计算以及可验证唯一性。例如,可能的方案是,使用多方安全计算或阈值签名,以产生并公布给定确定性数字签名方案的验证公共密钥PK,并确保各方Ti知悉匹配的签名私密密钥Sk的“片段”。以此方式,令例如(但不限于)vt=SIGPK(t,I),可以确保对于所有λ<j:(1)vt能够借助于任何λ+1方T的帮助容易地计算,以及(2)vt对于多方T中的任何λ个或更少本质上是不可预测的。以此方式,只要上文各方中超过λ个是诚实的/正常运行的,则每个人都将正确地知悉vt,以及vt将一直是不可预测的直到轮t(或轮t左右)为止。
验证方优选地使用验证方的公共密钥通过数字签名来认证有关支付的信息,该验证方的公共密钥以公共密钥的所有者标识。可以在轮t从潜在验证方密钥集合PV选择随机集合的实际验证方密钥AV。当PV和vt是公共常识(例如,集合PV是固定的时),所有用户可以推导实际验证方的相同随机集合AV或接近集合。例如,AV可以取为H(PV,vt)确定的PV的子集,其中H是防冲突散列函数。但是,当PV不是公共常识并且不同用户可能对PV有不同的了解时,可能较为复杂。例如,假定轮t的PV取为包含系统中当前的所有公共密钥(或STATUSt-1中出现的所有公共密钥或STATUSt-1中标识为潜在验证方密钥的所有公共密钥)。然后,PV可能随时间持续增大,因为新密钥不断地被添加到系统。同时,令t为当前轮,用户U1(例如,因为U1可能有一会儿无法监视系统)可能仅知悉“5轮之前”的系统状态STATUSt-5,而另一个用户U2知悉STATUSt-1。相应地,U1可能确信潜在验证方密钥集合是PV1,而U2可能确信潜在验证方密钥集合是PV2,其中PV2包含例如比PV1多1%的密钥。然后,即使PV1和PV2基本吻合,H(PV1,vt)和H(PV2,vt)中的位仍可能有50%的位置中是不同的,因为防冲突函数H对于每个位都是敏感的。由此,根据两个用户AV1和AV2的实际验证方密钥集合可能显著地不同,使得AV1中的多数意见与AV2中的多数意见有非常少相关。正如本文其他地方论述的,这种可能性通过如下方式来予以避免,挑选由不同用户适当地执行且产生彼此接近的随机实际验证方集合的选择过程。
例如,鲁棒性选择过程可以假定,不失一般性地,PV由H可以是(优选为防冲突的)散列函数的系统中的所有公共密钥组成,以及PK是系统中的公共密钥。如果且仅如果对于0与1之间的某个给定数p,如下条件为真的情况下,PK可以成为验证方密钥:
.H(PK,Vt)≤p
不失一般性地,假定H的输出是256位长。则H(PK,vt)实际上是随机256位数。因此,通过在此数之前设置小数点,可以将“.H(PK,vt)”解释为介于0与1之间的256位随机数的二进制展开,并且由此如果且仅如果对.H(PK,vt)求值的结果小于(或等于)p的情况下,让PK成为验证方密钥,此情况将按概率p出现。如果期望1千个密钥中的1个成为轮t的实际验证方密钥,则p可以设为等于1/1,000。在此情况中,如果STATUSt-1中有100,000个公共密钥,则预期这些密钥中的100将被确定为实际验证方密钥。假定STATUSt-1已知是第二用户,而第一用户仅知道之前4轮的状态,其中存在少于1,000个密钥。则对于第一用户,预期的验证方密钥数是99,以及对于第二用户是100。在任何情况中,验证方密钥集合对于这两个用户基本吻合。实际上,如果密钥PK出现在STATUSt-4中,则密钥PK也会出现在STATUSt-1中。而且,如果PK是根据第一用户的验证方密钥,则.H(PK,vt)≤p,以及由此PK也是根据第二用户的验证方密钥,因为值vt和p在这两种情况(对于这两个用户)中都是相同的,以及比较.H(PK,vt)与p的结果也是如此。总之,根据第二用户的验证方密钥与根据第二用户的那些吻合,所例外的是后者考虑多一个密钥作为验证方密钥。现在假定如果51%的实际验证方认为有效,则支付P有效。然后,如果根据第二用户的80%的实际验证方诚实作为并且将P认证为有效的,则高可能性地,根据第一用户的51%的实际验证方也将P认证为有效的。以及反之亦然。上文描述的验证方选择过程因此是具有鲁棒性的。换言之,尽管缺失同步性和中心化,以及尽管每一轮验证方完全改变,上文描述的验证方选择机制仍以非常有效率的方式确保了显著精确的共识。
更新
理想情况下,在每一轮t和对于每个轮t的实际验证方j,系统中的每个潜在验证方和每个潜在用户均可以获得(例如下载)获认证的列表以及可能地在此情况中,实际上,每个用户知悉/能够容易地计算每一轮t的STATUSt。备选地,如果PAYt和STATUSt直接可获(例如,被一个或多个实体优选地以获认证的方式计算并贴附),则潜在验证方j或用户i简单地获得每一轮的PAYt和STATUSt。正如下文解释的,对于验证方j或用户i,仅偶尔获得系统的状态就足够了。
为了简洁,但是没有预设任何限制,假定PV由系统中的所有公共密钥组成,使用如上文论述的机制的鲁棒性选择过程来计算AV,潜在验证方j一个月一次获得系统的状态,以及在轮t中突然验证方j入选成为验证方,即,验证方j的公共密钥PKj被包含在AV中。注意,为了认识到PKj成为轮t的AV成员,验证方j无需知悉任何全局状态信息,而只需知道vt。事实上,如果且仅如果H(PKj,vt)≤p,则PKj被包含在AV中。
为了作为实际验证方来执行,以及接收对应报酬,验证方j需要知悉STATUSt-1。如果促进方E可用,则验证方j可以(例如通过在PKj被选择时下载SIGE(STATUSt-1))即刻检索到STATUSt-1。在没有任何促进方的情况下,验证方j可以即刻检索对应于轮t-1的足够多验证方j的所公布并获认证的列表但是,为此,验证方j需要确定轮t-1的验证方密钥是什么。
因为如果.H(PK,vt-1)≤p,则选择每个潜在验证方密钥PK,所以确定验证方j需要知道两个信息:(a)STATUSt-1中的所有公共密钥;(b)值vt-1。注意验证方j获得后一个信息是没问题的,因为按定义,值vt-1是优选地以获认证的形式可广泛获得的。对于信息(a),验证方j可以根据验证方j保存的一个月之前的状态信息以足够的精确度计算出信息(a)。例如,假定潜在验证方密钥的数量按20%/年的速率增大,以及当验证方j获得系统的完整状态列表时,一个月前有500,000个此类密钥。然后,最后一个月增加了大约10,000个新潜在验证方密钥而验证方j不知道。假定选择概率p使得101个验证方在轮t-1个别且随机地入选。则新增的10,000个密钥之一真正被选为验证方密钥的概率为0.0002。(另外,注意,当验证方的目标数量是11时新的10,000个密钥之一入选的概率会更低:即,0.00002。)在任何情况中,验证方j根据1个月前记录计算的轮t的实际验证方集合,高可能性地,与基于轮t-1的所有潜在验证方密钥计算的轮t的真实验证方列表吻合。而且,压倒性概率地,选自新增10,000个密钥的实际验证方的数量将非常少。相应地,当合理多数的潜在验证方是透明的时,压倒性概率地,两个验证方集合(即,实际验证方和验证方j根据1个月前的数据的验证方)的多数也将是透明的。总之,即使验证方j一个月一次获得潜在验证方密钥的完整列表,在入选之后,验证方j仍会准备准确地执行验证功能。
备选地,不是一个月一次获得完整状态的话,潜在验证方j可以一个月一次仅获得最后30天的根据该(假定验证方j保存的一个月前的先前计算的完整状态信息),验证方j可以容易地重构当前状态信息。而且,如果使用树散列和签名方法(参见下文论述),则验证方j可以通过如下方式简单地检查重构的状态是正确的:(i)在本地计算轮t-1的树的断言的根散列;以及(ii)验证每个验证方认证了轮t-1处的相同根散列。
同样备选地,为了利于更新,除了PAYt j以及STATUSt j外,给定轮t的每个选定的验证方j还可以认证和公布NEWt j、轮t的新增潜在验证方密钥的列表。注意,通过这样,验证方j对验证方j公布的所有数据保留完全负责。
没有验证责任的参与者只能关注对参与者的给定支付P是否有效。此类参与者当然能够作为潜在验证方执行每月更新。但是,没有奖励也没有义务,参与者可以因P的有效性检查大大简化而满意。例如,如果存在促进方以及使用树散列和签名,则参与者可以仅获得促进方认证的信息,该信息使参与者能够确定P是否有效支付。备选地,如果参与者一个月一次获得完整状态信息,则该参与者可以使用有关潜在验证方集合的一个月前的信息以及轮t的新公开值vt,以仅计算轮t的一个断言的验证方j;以及仅获得和验证支付P的精简j认证的记录(假定同样使用了树散列和签名)。
在民主币中使用证书
中央币、传播币和民主币可以被用作(a)单独(和单独浮动)数字货币;或(b)绑定到国家货币(以及与之一起浮动);或(c)二者兼有;以及证书实际可以在所有三种支付系统中使用。
具体地,特异实体D,可能地属于一组或多个实体,可以用于证明普通用户X或验证方X或促进方X等的公共密钥PKX。
因为特异实体D的公共密钥PK可以在系统中广泛地被知悉(例如,因为PK已通过系统中广为熟知的公共密钥被证明),所以D签发的证书以及由此D证明的公共密钥PKX能够在系统中广泛地被验证/认可。D签发的证书可以被所有或几乎所有潜在验证方认可或被至少相当大数量的潜在验证方认可(即,足够允许给定多数使用D证明的公共密钥验证参与者作出的支付)。实体D可以为所有类型的参与者/公共密钥或为某种类别的参与者/公共密钥生成证书。例如,D可以证明普通用户的公共密钥,但是不证明例如验证方或潜在验证方的公共密钥(其可以由另一个特异实体来证明)。具体地,D可以是银行(或其他金融机构),并且可以证明该银行的客户X的公共密钥。
正如本文其他地方论述的,D为公共密钥PKX签发的证书C可以是如下形式的
C=S1GD(PKX,I),
其中I是某种随意的信息,包括没有任何信息。例如,I可以包括:
·有关签发者D的身份信息。
·有关公共密钥所有者X的身份信息。
·资格信息Q,其指定PKX是普通用户公共密钥、潜在验证方公共密钥、还是促进方等;
·时间信息t,如该证书被签发的时间或证书的到期日期或二者兼有;
·货币信息。例如,关联到PKX的资金的初始金额;
·地域信息,其指定允许PKX操作所在的地域;和/或
·对PKX被允许执行的交易的可能限制(例如,将资金转移到一些公共密钥或一些类别的公共密钥的限制。
要签发C,D可以采取如下动作的其中一个或多个或让某个其他实体采取如下动作的其中一个或多个:
检查信息I的至少其中一些的正确性。
检查X在系统中证明PKX的意愿。具体地,D可以获取和保存能够同时或稍后向另一个实体(如政府或其他监管部门)产生的X的这种意愿的证明。此类证明可以包括X的执行声明(例如,通过传统签名、或通过数字签名,可能地有关X的另一个公共密钥)。此类证明可以包含在证书本身中。例如,如果需要的话,将其数字化。
检查X知悉关联到PKX的私密签名密钥。例如,D可以要求X解开需要SKX的知识的口令。具体地,可以要求X对有关PK的给定消息,如当前日期、D(优选为随机)选择的消息,指示X要证明PK的意愿的消息进行数字签名。SK知识的此类证明可以包含在证书中。备选地,可以将此类证明的无冲突散列包含在证书中,以及可以要求D保存原件证明,并且在审查/检验的情况中产生它。
帮助X获得PKX;
为X选择PKX/将PKX赋予X,优选地确保仅X知悉对应的私密密钥SKX。
检查对应密钥SKX已托管。
向PKx给予初始资金金额。
标识X;
安全保存用于标识X的信息(例如,托管该信息)。
检查X有资格将PKX进行证明。例如,D可以检查X具有清白的刑事记录,未列入恐怖组织。
当证明普通用户公共密钥以验证给定公共密钥PKX向另一个公共密钥PK2的支付P有效时,除了已经论述的所有其他检查外,优选地还应该检查这两个密钥具有适合实体签发的有效证书。为了能够执行此类支付的验证,一方(例如,支付方或被支付方)还可以提供PK1的适合证书C1和PK2的适合证书C2。实际中,可以假定,当密钥被证明时,公共密钥PKX向公共密钥PK2的任何支付也包含Cx和C2。
使用验证方的证书
特别关注的一种情况是D获授权证明证明验证方或潜在验证方的公共密钥。为了签发标识PKX为验证方(或潜在验证方)的公共密钥的证书C,D可以检查参与者X确实有资格作为验证方并且不拥有另一个验证方公共密钥。备选地,D可以检查D未亲自证明X的另一个验证方密钥。当验证方密钥被证明以验证与验证方密钥PKV相关的数字签名s时,优选地还应该验证PKV具有适合实体签发的有效证书。
使用证书防范非法活动
通过支票进行支付的支付方和被支付方是容易识别的。相应地,支票支付系统很少用于洗钱或其他非法活动。对于本文描述的系统也期望如此。为此目的,特殊实体S(例如,政府实体、警察或司法实体)期望能够从公共密钥PKX跟踪到PKX的所有者X。为此,证书是非常有用的。如果PKX得到特异实体D证明,例如C=SIGD(PKX,I),则可以适合的请求时,要求D保留并向S提供X的身份。
备选地,C中的信息I可以包含使得X的标识更容易的信息IX,具体地,IX可以由X的姓名组成。但是,此方式使得PKX可容易地被比仅S、D以及几个实体更多的人可跟踪到X。
另一个解决方案是使Ix=H(i),其中i标识X(例如,X本身)的信息以及H是无冲突散列函数。以此方式,不知道X或猜对X是谁的实体无法通过PKX跟踪到X。另一方面,如果D正确地签发C,则D无法在随后就X的身份说谎,并且在审计的情况中可以容易地将X移交给S,S就可以对i进行散列运算并将结果与IX比较。
另一个解决方案是使IX是指向一个表(或类似数据结构)的索引,用于检索标识X的值(例如,X的姓名)。该表可以由D、由S和/或由某个其他实体保存。在审计的情况中,会向持有该表的实体呈交IX,以及作为回应,该实体会产生X的身份。
另一种解决方案包括使IX=Enc(i),即,使Ix包括利用D的密钥将i加密。以此方式,如果Enc是足够安全随机性加密方案,则即使某人猜对X是谁,仍无法使用IX来确认猜测的正确性。在审计的情况中,D还可以提供用于产生Enc(i)的随机字符串。但是,S仍需要联系D才能知道是谁。
为了避免与D交互,Enc(i)可以是I在S的密钥中的加密,例如,D和S共享的加密密钥,或S的公共加密密钥,为此,S且优选地仅S知悉对应的私密解密密钥。公共密钥加密是众所周知的。以此方式,S可以自动且直接由PKX跟踪到X,并且由此跟踪到对特定支付方和被支付方的每笔支付,与支票支付非常类似。但是,虽然通过支票支付使得支付方和被支付方容易被持有支票的任何人知道,但是这样的情况对于上文描述的系统是不成立的。
报酬
签发证书C=SIGD(PKX,I)的实体D可以通过多种方式获得报酬。例如,可以由X就产生C向D付费。再有,如果P的支付方/被支付方由D证明,则D可以对应于每笔有效支付P获得报酬(例如,报酬为P的金额A的0.1%)。例如,如果P的被支付方密钥是由D证明的,则此类报酬可以由被支付方(或支付方)支付。至于另一个示例,如果报酬仅由零售商支付且如果P的被支付方密钥是D证明的零售商密钥,则P的应付D的报酬由零售商支付给D。可以使用本文描述的系统来支付报酬。例如,如果D的公共密钥可以具有关联到该公共密钥的资金,或如果D具有另一个公共密钥且能够拥有关联到该资金的资金,则D的报酬可以是从P的相关公共密钥(例如,P的支付方或被支付方密钥)到D的相关公共密钥的支付。向D的此类支付可以是自动进行的,正如本文其他地方论述的。例如,可以在P成为某一轮t的PAYt的一部分时支付报酬。向D的报酬还可以在系统外进行。例如,如果D是银行,则就支付P对D的报酬可以包括从P的被支付方X到D的支付,以及如果X在D具有银行帐户,则当P进入PAYt时,D获授权从X的帐户提取报酬。
可伸缩性
民主币是非常具有可伸缩性的,具体借助于针对信息流妥当设计的构架。下文中结合称为“城市”、“地区”和“国家”的三个样本实例化来对此进行描述,这三个样本实例化区别在于设想的用户和交易数量。在所有这些示例中,假定
(a)一轮由10分钟组成。注意,这是比特币生成新块所花的时间。但是,正如上文论述的,在某种程度确信最后第三块中的一个交易进入确定的交易历史之前,需要等待三个块生成。相比之下,在民主币中,每一轮之后达到明确的状态报告。
(b)一笔获认证的支付(或状态报告记录)为约100字节。事实上,
100字节足够包含巨大量的附属信息。
(c)参与者可以高效地检索通信所需的有关其他参与者的信息(例如,通过注册或IRC通道配合参与者的公共密钥和IP地址信息)。
(d)任何人可以高效地从存储提供商,如云检索到信息。
(例如,Amazon云充当后期促进方。)注意,在本文论述的所有样本实例化中,云(即,后期促进方)不是受信的中央权威机构。事实上,云无法代替用户伪造支付,无法恶意地更改更改公共密钥持有的资金量,也无法选择性地从完整状态报告中移除有关一些参与者的信息,以实际地剥夺参与者对资金的使用。实际中,验证方通过对所有公共密钥当前持有的资金一起进行数字签名生成状态报告。因此,云可以最多拒绝贴附整个状态报告,而不能挑选哪些公共密钥出现在报告中。如果某一轮中确实出现此情况,则该一轮中不会有资金转手,并且可以使用新云提供商。而且,甚至可以通过依赖于多个云来缓解此问题:例如,Amazon云和Google云。
参考图6,流程图600图示结合确定哪些参与者是特定一轮中的验证方而执行的步骤,处理在第一步骤602开始,其中确定随机数,正如本文其他地方描述的。在步骤602之后是步骤604,其中迭代指针轮遍所有参与者进行迭代,其设为指向列表中的第一个参与者。步骤604之后是测试步骤606,其中确定指针是否指向结束(即,所有参与者均已被处理)。如果情况如此,则处理完成。否则,控制从测试步骤606转移到步骤608,其中对随机数和与参与者关联的PK执行散列运算,正如本文其他地方描述的。在步骤608之后是测试步骤612,其中确定来自步骤608的结果是否小于某个值p。如果情况如此,则控制从步骤612转移到步骤614,其中将迭代指针所对应的参与者选为验证方。如果步骤608的结果是不小于某个值p,则在步骤614之后或步骤612之后是步骤616,其中轮遍所有参与者的迭代指针递增。步骤616之后,控制转移回步骤606进行另一次迭代。
下文是分析民主币的可伸缩性的四个准则:
网络带宽:参与者应能够传输的每秒/月字节数。注意,若干蜂窝电话或因特网提供商对用户在一个月能够交换的数据总量设置上限。
连接容量:参与者能够拥有的同时连接的最大数量。
存储和计算用户参与该系统所需的资源。
城市实例化
城市实例化定义为具有300,000个用户和每10分钟有1,000笔交易。因此,在城市实例化中,用户和交易数量稍微大于比特币当前使用中的对应量。
因为单笔交易由100字节构成,所以对应PAY报告的大约大小仅为100KB,完整状态报告的大小约为30MB,以及(使用树散列和签名机制,下文予以描述)单个公共密钥的自足认证记录的大小约为2KB。总的来说,这些是非常合理的大小(以及30MB的状态报告确定地优选为比特币中的15GB公共总账)。
为了减少网络带宽、连接容量和存储,可以提供简单、可归一化且有效的信息流,如下文描述:
在每一轮t中,可能有110个验证方(如前文选择的),其组织在2层11个节点的树中:根具有10个分支(由此在本例中有10个叶)。根可以视为具有第1层,以及每个叶视为具有第2层。验证方可以各划分在11个分组/数组基数10中。每组可以在概念上被分配到树中的单个节点。分配到根的10个验证方可以视为顶层验证方以及其他100个验证方可以视为帮手验证方。
该信息流如下:在该轮开始时,顶层验证方获取前一轮的完整状态报告,即,STATUSt-1。因为状态包含30MB,所以顶层验证方可以甚至利用蜂窝电话获得完整状态报告。
对于轮t的1000笔支付中每一笔,有优选信息流。考虑来自(支付方)公共密钥的支付Pi-发往(被支付方)公共密钥Pj。然后,因为使用的是树散列和签名算法,Pi(的所有者)从云检索提供Pi的个人状态的2KB,并将证明连同来自Pi的100字节支付提供到Pj(的所有者);Pj(的所有者)优选地验证两个信息并将信息转发到与10个叶之一关联的数组中的10个帮手验证方的每一个。即,被支付方选择数组B并将相关的支付和个人状态转发到B中的每个验证方。注意载送基本信息的所有其他信息流应该视为本文描述的系统的架构的一部分。例如,支付方可以仅向Pj发送支付,而Pj从云获得PKi的个人状态,并将PKi的个人状态和支付转发到选定的分组的助手验证方。同样备选地,被支付方可以将支付仅转发到助手验证方,助手验证方则从云获取前一轮的PKi的个人状态。当然,也存在其他可能性/组合。
注意至此涉及的计算都是简单的:Pi(的所有者)生成数字签名;而Pj(的所有者)验证一个数字签名并计算一个散列以选择数组B。再有,带宽相对较低:Pi(的所有者)从云获取2K字节并转发2.1K字节到Pj;以及Pj(的所有者)将2.1K字节转发到数组B中的10个助手验证方的每一个。
数组B可以是随机选定的。具体地,为了确保懒惰的被支付方不会总是选择例如第一个数组,B可以通过给定的加密散列函数H来选择。例如,Pj(的所有者)可以对支付执行散列运算(可能利用附加信息,如vt)以及使用散列后的支付的最后一个十进制数来确定应该将10个可能数组的助手验证方中哪一个是入选的B。在本例中,B中的助手验证方接收和处理支付信息,还可以使用H来验证支付信息已正确地发送到该助手验证方所属的数组B。
因为1000笔支付随机地分布在10个数组之间,所以每个数组的验证方均可以对应于约100笔支付被选定。相应地,每个助手验证方必须能够从约100个用户接收2.1K个字节。因此,甚至通过标准蜂窝电话,助手验证方都能够在1分钟内接收到该数据(甚至封顶在10个同时连接)。
每个助手验证方对于正在处理的吗每笔支付检查所有相关信息是否正确。即,对于从公共密钥Pi到另一个公共密钥Pj的#X的每笔支付,该助手检查支付的数字签名、前一轮的PK的个人状态报告的数字签名,以及检查金额X未超过报告中归属Pi的金额。然后,该助手优选地将所有有效支付汇总在一个优选为排序的列表L中,并连同轮t的指示(例如,当前时间)一起对L进行数字签名。最后,助手向10个顶层验证方的每一个发送签名且标记日期的列表L,且优选地也包括每笔支付公共密钥的个人先前状态。
为了接收该信息,每个顶层验证方只需打开100个连接即可下载签署的支付。正如本文其他地方提到的,甚至使用标准蜂窝电话,这可以在1分钟内完成。注意,这可能让人偏向于将助手验证方产生的报告存储在云上,并请求顶层验证方从此处检索。但是,这是差的设计决策,因为在此设计中,云可能通过擦除来自助手验证方的对应报告来选择拒绝个人支付。每个顶层验证方使用下载的签署的支付来产生报告和以及将和张贴到云上。这两个报告的大小约为31MB,并且可以由蜂窝电话在4分钟内上传到云。此外,还可以将从助手验证方接收的签名的信息上传到云,以使每个人都有义务。
可以通过在验证方与云之间仅上传/下载自足的记录来优化本文描述的系统。例如,假定在t-1轮,所有验证方和云持有最新状态报告STATUSt-1。还假定顶层验证方i期望高效地将传送到云。使用树散列和签名机制(本文其他地方予以描述),报告的每个记录的散列对应于树中的叶;并且仅树的根需要验证方签名。给定1000笔支付,STATUSt-1与STATUSt之间有最多2000个记录改变。因此,假定云知悉STATUSt-1,要传送验证方只需传送该树中的改变(即,2000个新记录)以及新根的签名。给定STATUSt-1和新记录,云可以重构整个树,并获取根的散列。云然后可以使用从验证方获得的散列的签名来重构完整版本的使用此机制,仅月210K字节的数据需要在验证方与云之间传送。
总之,城市实例化可以通过1每秒兆位(Mb/s)的网络带宽和容量,每月2千兆字节(GB)封顶和10个连接容量的蜂窝网络来运行。
地区实例化
地区实例化定义为具有3,000,000个用户和每10分钟有10,000笔交易。即,在地区实例化中,用户和交易数量比城市实例化高10倍。地区实例化可以通过膝上型计算机来运行。
对于地区实例化,状态报告的总大小约为300MB,即,比城市实例化的报告大10倍。但是由于树散列和签名机制(本文其他地方予以描述),有关个人公共密钥的自足报告的大小仅为5K字节。为了保持良好的性能,可以将助手验证方的数量按10个因子增大,使得验证方的总数从110变为现在的1010。验证方可以划分在101个分组(数组)的10中,且在概念上,每个数组可以分配到3层10级数T的一个节点。即,与之前一样,T的根具有(第2层的)10个分支,但是每个分支具有(第3层的)10个分支。分配到根的10个验证方视为顶层验证方以及所有其他验证方是帮手验证方。
第3层上现在有100个数组。给定当前支付的每个被支付方(或支付方)随机地选择(使用加密散列函数)哪个数组将处理该支付。因此,平均而言,每个第3层助手验证方仅处理100条支付,其可以通过膝上型计算机在1分钟内下载。一旦通过验证,支付被转发到数组的第2层助手验证方(同样是随机选择的)。相似地,每个第2层验证方仅需要打开10个连接并下载大小约为100千字节的1000条支付,这可以容易地在1分钟内完成。在验证和组合了从分支数组接收的信息,并且将组合的信息签名之后,每个第2层助手验证方将适合的信息发送到每个顶层验证方,即发送到与根(第1层的唯一节点)关联的分组中的每个验证方。在验证、组合接收的信息并将签名之后,即,生成和之后,每个顶层验证方i将和上传到云。此上传利用标准膝上型计算机可以花费约4分钟。由于设想的树散列和签名方法,每个顶层验证方可以使用相同的“更有效率更新”方法(在城市实例化案例中已论述),即可大大地缩减要上传的数据量,并且由此大大地缩短上传时间,而完全不会增大对云的信任。任何参与者可以通过向存储提供商查询相关自足新记录以在1分钟内更新其状态。验证方所需的计算时间也约为1分钟。因此,此实例化中一轮的预期持续时间约为8分钟。
总之,地区实例化可以利用10Mb/s的网络带宽和容量,每月80GB封顶和10个连接容量来运行(在10分钟内)。
国家实例化
国家实例化定义为具有30M个用户和每10分钟有100k笔交易。这将城市示例放大100的系数。如果3千万个用户和每10分钟10万笔交易,则状态报告的大小增大到3GB,但是自足获认证个人记录的大小仍然较小-约7KB。增加第4层1000个数组的助手验证方也是可能的。因此,现在他们是位于第4层的附加10000个验证方,每个验证方接收约100笔支付进行验证。所有其他参数对应地放大且能够由标准膝上型计算机来容易地处理。而且,整个一轮可以使用城市实例化中描述的高效更新机制容易地在约20分钟内执行(100K条支付的通信开销并不很大,但是增加了额外10分钟归因于验证这些支付的计算时间。
更大的实例化
将上文论述的架构通用化,可以处理大陆和星球实例化,它们分别能够处理300M和3B个用户以及多如国家实例化的10倍和100倍数量的交易。在此类情况中采用更高效更新是有用的。轮可能变得更长,但是仍将保持可行性。
民主币是民主性的货币系统,因为运行民主币的责任依附于用户本身。但是,出于效率的原因,民主币并非由所有用户同时运行的。相反,在每一轮,仅一些用户随机被选定充当验证方,以保证系统的一致性。给定一轮的验证方因他们的工作和可用性而获得报酬。事实上,验证方遵循统一地收取给定一轮中转手的总金额的1%。用户不向运行该系统的外方支付,除了因提供可访问存储应付的费用。但是,向云的支付相对于传统应付给运行金融系统“受信方”,如信用卡发行商的金额是可以忽略的。
民主币是公平。验证方遵循赚很多钱,并且每一轮,所有用户均有成为验证方的相同概率。此外,正如下文解释的,本文其他地方描述的三个实例化中的每个用户极其不可能从未入选作为验证方。假定给定一轮的总计1%报酬平均地分布给所有验证方(即,顶层验证方和助手验证方一视同仁)。则因为用户总数与验证方总数之比在城市、地区和国家实例化中大致相同,所以在所有这些实例化中,用户成为验证方的概率在每一轮中是相同的。而且,因为在前两个实例化中,每一轮由8分钟组成,所以可以容易地看到在城市和地区实例化中,预期一个参与者一年约22次成为验证方,即,一个月仅2次以下。总的而言,这是个不小的频率。此频率可能因增加验证方与用户比率而增大。还要注意,当入选的概率与用户拥有的资金(这些资金可能分布在不同公共密钥上)成比例时,民主币在差异含义上是公平的。
民主币还提供非常高的安全性。如果每个数组中的多数验证方是诚实的且根据系统规范正确地执行,则该系统如预期地有效运行。如果且仅如果90%或更多的验证方验证状态报告(或支付)有效,则认为用户中90%是诚实的并因此状态报告(或支付)有效。如果在给定一轮中无法达到90%或更大的共识,则在该一轮中实际不会有资金转手。在此情况中,随机入选的参与者有恶意的概率为0.1,并且一对随机入选的参与者有恶意的概率为0.1*0.1=0.01。依次继续计算,可以推导给定数组中9个或更多入选验证方有恶意的概率,其等于约10-8。即,假定数组中10个入选的参与者,他们的其中之一非恶意而其余有恶意的概率是10*(0.9*0.19)。考虑所有入选参与者都有恶意的情况,其为0.110,将两种概率相加,可以得到从入选的10个参与者,9个或更多个有恶意的概率约为10-8。
在城市实例化场景中,有11个数组的验证方。因此,这些数组之一有恶意的概率最多为1.1*10-7。因此,每9百万轮,预期有一个验证方的坏选择。8分钟一轮得到一年约65,744轮。因此,预期每137年将有一次验证方的一个坏选择,这足够在城市实例化场景中进行可行实例化。
但是,假定每个数组中的验证方的数量增加到50,以及假定80%的验证方是诚实的。然后,一个数组的验证方有恶意(即,40或更多入选验证方有恶意)的概率约为1.3*10-19。可以使用如下公式推导出此概率p:
其中0.2是选择了恶意验证方的概率,以及0.8是选择了诚实验证方的概率;以及求和是对所有“坏”选择的求和。
给定城市实例化中11个数组,他们的其中之一有恶意的概率最多是1.43*10,或每10*(10*7)轮一次。即,预期每10万亿年一次坏情况出现。而且,在地区和国家实例化中,频率会某种程度地下降到分别约每1万亿年以及100万亿年,但是仍保持天文数字地高。而且,注意为了增加成功的攻击,50个入选验证方中至少40有恶意是不够的,但是不足以这些恶意验证方在一轮内(在几分钟内)协同动作成功。(事实上回顾可知将来轮t的验证方集合无法预先预测,因为它取决于轮t截止前完全不可预测的变量vt。)因为一轮非常短,所以这种协作没有现实可行性。而且,通过稍微增加验证方的数量,能够实际地达到任何视为有用的安全性级别。
树散列
正如本文其他地方论述的,树散列和签名是利用单个签名认证大记录列表的有效机制,同时支持高效“局部”验证(无需下载完整列表)。这种机制在许多现有支付系统中被使用,如比特币。树散列和签名按如下工作:
假定验证方V期望对支付列表PAY=(p1,...,pn)执行树散列和签名。注意,树散列和签名可以类似地对任何记录列表使用,如参与者帐户信息列表。首先验证方构件列表PAY的默克尔树,以引导方式从叶开始并收敛于根。树的叶与第0层关联,以及树的根与第q层关联,q=logn(为了简化,对于某个q,假定n=2q)。为了计算默克尔树,验证方首先对个人支付P执行散列,并将这些散列关联到树的叶:h0 i·=H(pi)。然后,以引导方式,验证方通过对一个节点的分支中两个执行散列来计算该节点的散列。具体地,要计算第i层(在范围1,...,q中)的节点的散列hi j,令和是该节点的分支的两个散列。则,
与树根关联的散列是对支付PAY的整个列表的“落实”。例如,假定PAY=(p1,p2,p3,p4),则验证方计算默克尔树为:
要认证该列表,验证方可以公布一个数字签名SIGv(t;hPAY)其中t表示时间。现在,有关pi的自支持V认证的记录包括:
1.支付pi本身(以及可选地从pi,h0i=H(pi)所对应的叶到根hPAY的路径中每个节点的散列),以及
2.沿该路径的节点的所有同胞的散列(连同与它下载的叶关联的任何支付),以及
3.V的根散列的数字签名,SIGv(t,hPAY)。
例如,在上文示例中,有关支付pi的自支持的V认证的记录包括:
(1)Pi(以及可选地),
关联的同胞散列和和叶P1、P2处的支付,以及
以及(3)S/GV(t,hPAY)。
要验证Pi的此认证记录,可以:
(1)验证叶处的个人支付的签名,
(2)通过以从下往上方式重新计算沿路径到根的每一个节点的散列来计算根的散列hPAY(实际中,对于每个此类节点他已经计算了其子节点之一c的散列,并已检索其他子节点,即c的同胞的散列),以及
(3)验证根的签名:SIGv(t;hPAY)。
同样地,参考上文实例,所有者会检查P1和P2是有效支付,无论
以及SIGv(t;hPAY)是有效签名。
容易看出验证方的计算是非常有效率的。验证方只需对高效的散列函数(例如,SHA-512)求值即可构建默克尔树。因此,验证方需要为n笔支付计算的散列的总数是2n-1(对应于树中的节点的总数)。因为散列是非常有效率的,所以对于标准计算机花费少于1秒即可产生百万条支付的默克尔树。然后,验证方需要产生认证整个列表的单个数字签名。例如,使用标准椭圆曲线签名算法之一,产生此类签名所花的时间在2毫秒左右,以及200字节左右(包含视为有用的大量有用信息)。
还容易看出参与者需要从验证方下载的信息非常少,以及树的计算很有效率。具体地,参与者下载路径,包含logn散列、同胞logn散列(以及清晰的叶处的2笔支付)。因为对数函数对于天文数字大的n仍是非常小,所以参与者需要下载并重新计算的散列的总树仍非常小。而且,参与者只需执行几个(三个)签名验证算法。
使用标准椭圆曲线算法(在比特币和其他支付系统中使用),下表突出显示树散列和签名的效率。容易看出即使对于1亿笔支付,参与者只需下载(大约)31千字节。因为即使蜂窝电话配合弱因特网连接能够以(至少)每秒1兆字节的速率下载,所以此下载速率能够容易地处理。而且,验证时间仍非常小,并且大部分花在签名的验证。
表1:树散列和签名近似效率评估。上表中,“路径长度”表示参与者下载认证支付的散列的路径长度;“P下载大小”表示参与者需要下载的千字节总数;“P验证时间”表示参与者的验证记录(对应于标准蜂窝电话)的时间(以毫秒为单位)。
通用支付和结算系统
本领域技术人员应该认识到,本文描述的系统中的支付可以将更多资金从一个用户/公共密钥转移到另一个用户/公共密钥并且可以转移不同于资金的物件。
具体地,不转移资金的话,支付可以转移给定证券的给定数量的股份。例如,在每一轮t中,可以将密钥PK关联到/拥有给定金额的资金,以及第一证券的第一数量的股份,第二证券的第二数量的股份等。
例如,STATUSt中的项(PK,#A,I)可以指定PK所拥有的I中指定的给定证券的股票数量#A。更一般性地,#A可以指定(可能地PK所拥有的资金的金额)一系列股份数量,以及I可以指定PK拥有的一系列对应证券。
例如,在支付P=SIG_PK(PK,PK',#A,I)中,#A可以表示从PK转移到PK'的股票的数量,以及信息I还可以指定相关的证券(以及可能地PK'支付给PK的价格)。PK'可以签署P以告知PK的所有者同意支付此价格给PK,或对从PK'到PK的单独资金转移支付P'进行单独数字签名,其中信息字段I将支付链接到支付P,以使验证方可以验证一笔支付是否能够单独视为有效的,或二者均可以视为有效的或均不有效。更一般性地,#A可以指定一系列股份数量,以及I可以指定一系列对应证券。备选地,I还可以指定PK'要转移给PK的多种证券的股份数量。
当验证方Vi检查在轮t中此类支付P的有效性时,该验证方还检查在前一轮中PK确实有所指定的证券的适合股票数量。总之,本文描述的支付系统应该理解为包括结算系统。
比特币依赖于非常复杂且空间和时间上欠效率的机制来确保系统的状态不会被破坏,以及“挖矿计算机”没有足够大部分被单一实体控制,这一假定因为挖矿机构合并而变得更难维持。相比之下,民主币依赖于非常简单且非常高效的机制,并且如果合理多数的用户是诚实的,则无法被破坏。而且,即使有关系统状态的陈旧知识仍足够以足够精确度来重构系统的当前真实状态。
本文论述的多种实施例可以按适合的组合与本文描述的系统彼此进行组合。此外,在一些实例中,在适合的情况下,流程图、流程示意图和/或描述的流程处理中步骤的次序可以修改。因此,屏幕布局中描述的屏幕的元件和区域可以与本文呈现的图示有所不同。再者,本文描述的系统的多种方面可以使用软件、硬件、软件与硬件的组合和/或具有所描述的特征和执行描述的功能的其他计算机实现的模块或设备来实现。
本文描述的系统的软件实现可以包括存储在计算机可读介质中的可执行代码。计算机可读介质可以是非短暂的,并且包括计算机硬盘驱动器、ROM、RAM、闪存存储器、便携式计算机存储介质、如CD-ROM、DVD-ROM、闪存驱动器、SD卡和/或例如具有通用串行总线(USB)接口的其他驱动器、和/或可执行代码可存储在其上并由处理器执行的任何其他适合的有形或非短暂计算机可读介质或计算机存储器。本文描述的系统可以与任何适合操作系统结合来使用。
对于本领域技术人员来说,参考本文公开的本发明的说明书和实施将显见到本发明的其他实施例。说明书和示例理应仅视为示范性的,其中本发明的真实范围和精神由所附权利要求指示。
Claims (29)
1.一种在电子支付系统中验证电子支付的方法,其中有一组实体V,使得如果支付被V中给定多数的实体认证有效,则所述支付有效,所述方法包括:
让V中的实体Vi接收多笔支付;
让Vi确定所述多笔支付中哪些有效;及
让Vi认证所述多笔支付中Vi确定有效的子集以提供获认证的支付记录。
2.根据权利要求1所述的方法,其中所述多笔支付的子集的认证包括对标示所述多笔支付的子集的数据进行数字签署以提供数字签名。
3.根据权利要求2所述的方法,其中对标示所述多笔支付的子集的数据进行数字签署包括使用单个数字签名,以及所述数据包括时间信息。
4.根据权利要求3所述的方法,其中每笔有效支付将与第一公共密钥关联的资金传递给第二公共密钥,以及其中每笔有效支付相对于所述第一公共密钥进行数字签名。
5.根据权利要求4所述的方法,其中让Vi确定所述多笔支付中哪些有效包括确定是否有足够的资金可用于所述多笔支付中的每一笔支付。
6.根据权利要求2所述的方法,其中确定所述多笔支付中的哪些支付有效包括验证所述数字签名。
7.根据权利要求1所述的方法,还包括:
让Vi使得获认证的支付记录变得可广泛获得。
8.根据权利要求7所述的方法,其中让Vi使得获认证的支付记录变得可广泛获得包括至少下述步骤之一:将所述获认证的支付记录张贴到网站上,将所述获认证的支付记录发送到另一个实体,而该另一个实体进一步散布所述获认证的支付记录,以及将所述获认证的支付记录发送到另一个实体,该另一个实体将所述获认证的支付记录张贴到网站上。
9.根据权利要求1所述的方法,其中Vi由一组特殊实体通过将所述实体生成的数字签名进行组合而从一组潜在验证方中随机选择。
10.根据权利要求1所述的方法,其中针对认证Vi确定有效的所述多笔支付的子集,向Vi提供报酬。
11.根据权利要求10所述的方法,其中所述报酬的金额基于至少下述之一:Vi确定有效的所述多笔支付的价值以及错漏支付的数量。
12.根据权利要求10所述的方法,其中所述报酬由至少下述之一来支付:所述有效支付的一部分和/或接收支付的零售商。
13.一种在电子支付系统中验证电子支付的方法,包括:
从电子支付系统的多个实体接收多笔支付的记录;及
确定所述多笔支付中哪些有效,其中在所述电子支付系统中,如果所述实体的子集中给定多数认证特定支付有效,则支付被视为有效,以提供获认证的支付记录。
14.一种利于电子支付系统中验证电子支付的方法,包括:
确定给定多数的实体提供的获认证的支付记录是否标示电子支付系统的第一实体与第二实体之间的电子支付的有效性;及
响应于所述支付通过所述多数的实体验证,生成获认证的字符串,所述获认证的字符串证明所述支付已由所述多数的实体验证。
15.根据权利要求14所述的方法,其中所述获认证的字符串为数字签名。
16.根据权利要求14所述的方法,还包括:
使得所述获认证字符串变得可广泛获得。
17.根据权利要求16所述的方法,其中使得所述获认证字符串变得可广泛获得包括至少下述步骤之一:将所述获认证字符串张贴到网站上,将所述获认证字符串发送到另一个实体,而另一个实体进一步散布所述获认证字符串,以及将所述获认证字符串发送到所述另一个实体,该另一个实体将所述获认证字符串张贴到网站上。
18.一种对电子支付系统中的一组实体V中的特定实体签发数字证书的方法,其中如果支付由V中给定多数的实体认证有效,则支付有效,所述方法包括:
所述特定实体获得要与电子支付结合使用的公共密钥PKX;
获得要证明的附加信息;以及
通过利用特异实体的数字签名对PKx和所述附加信息进行数字签名来提供所述数字证书的PKx和所述附加信息的证明,其中所述特异实体的证明由V中的给定多数实体的绝大部分予以认可。
19.根据权利要求18所述的方法,其中所述附加信息包括至少下述之一:有关所述特异实体的身份信息、有关所述特定实体的身份信息、有关所述特定实体的资格信息、与所述数字证书相关的时间信息、与PKX关联的货币信息、地域信息、以及与PKX关联的交易限制。
20.根据权利要求19所述的方法,其中与PKX关联的货币信息包括所述电子交易系统中所述特定实体拥有的资金金额。
21.根据权利要求19所述的方法,其中所述有关特定实体的身份信息包括至少下述之一:所述特定实体的姓名、所述特定实体的姓名的散列、所述特定实体的姓名的加密、以及指向包含识别所述特定实体的信息的数据结构的索引。
22.根据权利要求21所述的方法,其中有关所述特定实体的身份信息是所述特定实体的姓名的加密,以及其中政府实体使用解密密钥来确定所述特定实体的身份。
23.根据权利要求18所述的方法,还包括:
执行附加动作;以及
响应于所述附加动作的结果符合要求,签发包含ΡKX和附加信息的证明的数字证书。
24.根据权利要求23所述的方法,其中所述附加动作包括至少下述之一:验证至少部分所述附加信息,确认所述电子交易系统中所述特定实体有意使用PKX,确认所述特定实体知悉与所述PKX关联的保密签名密钥,帮助所述特定实体获得PKX,向所述特定实体提供PKX,确认与PKX对应的签名密钥已托管,向所述特定实体提供要在所述电子交易系统中使用的初始金额的金钱,确定所述特定实体的身份,托管用于识别所述特定实体的信息,以及确认所述特定实体有资格对PKX进行证明。
25.根据权利要求23所述的方法,其中所述附加动作包括确认所述特定实体有资格作为V中的所述给定多数实体的成员。
26.根据权利要求18所述的方法,其中针对至少下述之一向所述特异实体提供报酬:签发所述电子证书和所述特定实体进行的每笔电子支付。
27.根据权利要求26所述的方法,其中所述报酬作为电子支付通过所述电子支付系统提供给所述特异实体。
28.根据权利要求26所述的方法,其中所述报酬由至少下述之一来支付:零售商、所述特定实体以及所述特定实体进行的电子支付的接收方。
29.根据权利要求18所述的方法,其中所述特异实体是金融机构。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562117138P | 2015-02-17 | 2015-02-17 | |
US62/117,138 | 2015-02-17 | ||
US201562120916P | 2015-02-26 | 2015-02-26 | |
US62/120,916 | 2015-02-26 | ||
US201562142318P | 2015-04-02 | 2015-04-02 | |
US62/142,318 | 2015-04-02 | ||
US201562218817P | 2015-09-15 | 2015-09-15 | |
US62/218,817 | 2015-09-15 | ||
CN201680022444.2A CN107533700A (zh) | 2015-02-17 | 2016-02-17 | 验证电子交易 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680022444.2A Division CN107533700A (zh) | 2015-02-17 | 2016-02-17 | 验证电子交易 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110084576A true CN110084576A (zh) | 2019-08-02 |
Family
ID=56692742
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910130689.2A Pending CN110084576A (zh) | 2015-02-17 | 2016-02-17 | 验证电子支付的方法 |
CN201680022444.2A Pending CN107533700A (zh) | 2015-02-17 | 2016-02-17 | 验证电子交易 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680022444.2A Pending CN107533700A (zh) | 2015-02-17 | 2016-02-17 | 验证电子交易 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20180068280A1 (zh) |
EP (1) | EP3259722A4 (zh) |
CN (2) | CN110084576A (zh) |
CA (1) | CA2976037A1 (zh) |
HK (1) | HK1248364A1 (zh) |
WO (1) | WO2016134039A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11392944B2 (en) * | 2015-05-20 | 2022-07-19 | Ripple Luxembourg S.A. | Transfer costs in a resource transfer system |
CN107438002B (zh) * | 2016-05-27 | 2022-02-11 | 索尼公司 | 基于区块链的系统以及系统中的电子设备和方法 |
US20190303886A1 (en) * | 2017-08-03 | 2019-10-03 | Liquineq AG | System and method for multi-tiered distributed network transactional database |
GB201714907D0 (en) | 2017-09-15 | 2017-11-01 | Nchain Holdings Ltd | Computer-implemented system and method |
US11288740B2 (en) | 2017-12-29 | 2022-03-29 | Intel Corporation | Securing distributed electronic wallet shares |
CN108537577B (zh) * | 2018-03-26 | 2021-05-04 | 上海数据交易中心有限公司 | 数据的有效性查询方法及装置、存储介质、服务器 |
US10671370B2 (en) * | 2018-05-30 | 2020-06-02 | Red Hat, Inc. | Distributing file system states |
US11917075B2 (en) * | 2018-06-28 | 2024-02-27 | Pay Gate Co., Ltd. | Multi-signature security account control system |
CN108846673B (zh) * | 2018-07-02 | 2022-10-11 | 苏州我的打工人力资源有限公司 | 一种区块数据的处理方法、装置、设备和存储介质 |
CN108932667A (zh) * | 2018-07-12 | 2018-12-04 | 北京京东金融科技控股有限公司 | 确定付汇时机的方法和装置 |
US11245536B2 (en) * | 2019-04-16 | 2022-02-08 | Meta Platforms, Inc. | Secure multi-party computation attribution |
CN110998580A (zh) * | 2019-04-29 | 2020-04-10 | 阿里巴巴集团控股有限公司 | 在区块链系统中确认交易有效性的方法和设备 |
US10951417B2 (en) * | 2019-07-12 | 2021-03-16 | Advanced New Technologies Co., Ltd. | Blockchain-based transaction verification |
CN110659901B (zh) * | 2019-09-03 | 2022-06-17 | 北京航空航天大学 | 基于博弈模型的区块链复杂事务验证方法及装置 |
EP4088237A4 (en) * | 2020-01-06 | 2024-01-10 | Cambridge Blockchain, Inc. | SYSTEMS AND PROCEDURES FOR CONFORMITY ASSESSMENT |
CN111555889A (zh) * | 2020-04-27 | 2020-08-18 | 深圳壹账通智能科技有限公司 | 电子签名的验证方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1535440A (zh) * | 2001-04-27 | 2004-10-06 | 麻省理工学院 | 用于微支付交易的方法和系统 |
US6944773B1 (en) * | 2000-05-19 | 2005-09-13 | Sony Corporation | Method and apparatus for fingerprint authentication during on-line transactions |
US20120059701A1 (en) * | 2009-10-13 | 2012-03-08 | Van Der Veen Larry | Systems and methods forfacilitating a rewards program involving multiple payments accounts |
US20140222610A1 (en) * | 1999-11-22 | 2014-08-07 | Accenture Global Services Limited | Increased visibility during order management in a network-based supply chain environment |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9818109B2 (en) * | 2012-08-16 | 2017-11-14 | Danny Loh | User generated autonomous digital token system |
US20150046337A1 (en) * | 2013-08-06 | 2015-02-12 | Chin-hao Hu | Offline virtual currency transaction |
-
2016
- 2016-02-17 CA CA2976037A patent/CA2976037A1/en not_active Abandoned
- 2016-02-17 CN CN201910130689.2A patent/CN110084576A/zh active Pending
- 2016-02-17 EP EP16752992.4A patent/EP3259722A4/en not_active Withdrawn
- 2016-02-17 WO PCT/US2016/018300 patent/WO2016134039A1/en active Application Filing
- 2016-02-17 CN CN201680022444.2A patent/CN107533700A/zh active Pending
- 2016-02-17 US US15/551,678 patent/US20180068280A1/en not_active Abandoned
-
2018
- 2018-06-11 HK HK18107531.1A patent/HK1248364A1/zh unknown
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140222610A1 (en) * | 1999-11-22 | 2014-08-07 | Accenture Global Services Limited | Increased visibility during order management in a network-based supply chain environment |
US6944773B1 (en) * | 2000-05-19 | 2005-09-13 | Sony Corporation | Method and apparatus for fingerprint authentication during on-line transactions |
CN1535440A (zh) * | 2001-04-27 | 2004-10-06 | 麻省理工学院 | 用于微支付交易的方法和系统 |
US20120059701A1 (en) * | 2009-10-13 | 2012-03-08 | Van Der Veen Larry | Systems and methods forfacilitating a rewards program involving multiple payments accounts |
Also Published As
Publication number | Publication date |
---|---|
CN107533700A (zh) | 2018-01-02 |
EP3259722A4 (en) | 2018-08-08 |
EP3259722A1 (en) | 2017-12-27 |
HK1248364A1 (zh) | 2018-10-12 |
CA2976037A1 (en) | 2016-08-25 |
US20180068280A1 (en) | 2018-03-08 |
WO2016134039A1 (en) | 2016-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110084576A (zh) | 验证电子支付的方法 | |
US20200211011A1 (en) | Scalable Distributed Ledger System | |
US11637709B2 (en) | Split-key wallet access between blockchains | |
US20210314397A1 (en) | Fund conversion between blockchains | |
US6157920A (en) | Executable digital cash for electronic commerce | |
US6119229A (en) | Virtual property system | |
CN113728351A (zh) | 区块链系统中的可信通证化交易 | |
US5956699A (en) | System for secured credit card transactions on the internet | |
Lipton et al. | Micro-payments via efficient coin-flipping | |
CN108604344A (zh) | 用于使用数字签名创建可信数字资产转移的方法和系统 | |
CN109544331A (zh) | 基于区块链的供应链金融应用方法、装置及终端设备 | |
JPH11502331A (ja) | 多目的取引カードシステム | |
CN109615351A (zh) | Sim卡、终端机和数字货币管理系统 | |
CN108229938A (zh) | 一种数字货币钱包开通的方法和系统 | |
AU2022204696A1 (en) | Scalable distributed ledger system, transaction privacy and combating fraud, theft and loss | |
KR20030029607A (ko) | 마이크로지불 트랜젝션을 관리하는 시스템 및 방법 및이에 대응하는 고객용 단말기 및 판매인용 단말기 | |
CN112801778A (zh) | 联盟式不良资产区块链 | |
Hu et al. | Fast lottery-based micropayments for decentralized currencies | |
Kane | On the use of continued fractions for electronic cash | |
WO2021060340A1 (ja) | 取引情報処理システム | |
Gupta et al. | A blockchain-backed central bank cryptocurrency | |
Bhatt | What’s new in computers: Cryptocurrencies: An introduction | |
Tiwari et al. | Minning of Bitcoin Technology | |
Malone | Glossary of Bitcoin Terms and Definitions | |
Qiz | Electronic payment system and blockchain as its vital part |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200325 Address after: Massachusetts, USA Applicant after: Algoland LLC Address before: Massachusetts, USA Applicant before: Silvio Mikali |
|
TA01 | Transfer of patent application right | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40005908 Country of ref document: HK |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20190802 |
|
WD01 | Invention patent application deemed withdrawn after publication |