CN116745794A - 区块链相关验证方法和系统 - Google Patents
区块链相关验证方法和系统 Download PDFInfo
- Publication number
- CN116745794A CN116745794A CN202180087014.XA CN202180087014A CN116745794A CN 116745794 A CN116745794 A CN 116745794A CN 202180087014 A CN202180087014 A CN 202180087014A CN 116745794 A CN116745794 A CN 116745794A
- Authority
- CN
- China
- Prior art keywords
- party
- transaction
- blockchain
- report
- transactions
- 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 109
- 238000012795 verification Methods 0.000 title description 7
- 238000012545 processing Methods 0.000 claims abstract description 31
- 238000013515 script Methods 0.000 claims description 63
- 230000006870 function Effects 0.000 claims description 34
- 230000009466 transformation Effects 0.000 claims description 25
- 238000009795 derivation Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 4
- 230000000737 periodic effect Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 8
- 230000006399 behavior Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000001902 propagating effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 239000003795 chemical substances by application Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000012550 audit Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000033228 biological regulation Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002427 irreversible effect Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 239000010437 gem Substances 0.000 description 1
- 229910001751 gemstone Inorganic materials 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004900 laundering Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000013138 pruning Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 150000003839 salts Chemical class 0.000 description 1
- 239000007787 solid 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or 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/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
- 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/383—Anonymous user system
-
- 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/4014—Identity check for transactions
-
- 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/06—Buying, selling or leasing transactions
-
- 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/02—Banking, e.g. interest calculation or account maintenance
-
- 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
-
- 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/12—Accounting
-
- 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/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/30—Compression, e.g. Merkle-Damgard construction
-
- 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)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种使第三方能够确定第一方和第二方是否就在所述第一方与所述第二方之间处理区块链事务集合的成员资格达成一致的方法、系统和程序。
Description
技术领域
本公开涉及一种验证经由区块链进行的事务的记录的方法。
背景技术
区块链是指一种分布式数据结构,其中在分布式对等(P2P)网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务(transaction)。除所谓的“coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,回到一个或多个coinbase事务。coinbase事务将在下文进一步讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作量证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在一些节点处被修剪(prune),并且区块的发布可以通过仅发布区块头来实现。
区块链中的事务可用于以下目的中的一个或多个:传送数字资产(即,一定数量的数字通证);对虚拟化分类账或注册表中的一组条目进行排序;接收和处理时间戳条目;和/或对索引指针按时间排序。也可利用区块链实现区块链上的层级附加功能。例如,区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文档、音频或视频数据。
区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将后续更详细地描述。总之,在该过程中,节点核实事务并将这些事务插入到区块模板中,这些事务尝试为该区块模板标识有效的工作量证明解。一旦找到有效的解,新区块便会被传播到网络的其它节点,从而使得每个节点能够在区块链上记录新区块。为了将事务记录在区块链中,用户(例如,区块链客户端应用程序)将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的节点可以争相寻找将核实有效的事务并入新区块的工作量证明解。每个节点被配置为执行相同的节点协议,该协议将包括用于确认事务有效的一个或多个条件。无效事务将不会传播或并入到区块中。假定事务已经核实有效,从而在区块链上被接受,则该事务(包括任何用户数据)将因此在区块链网络中的每个节点上作为不可改变的公共记录进行注册和索引。
成功解决工作量证明难题可创建最新区块的节点通常被奖励一个称为“coinbase事务”的新事务,该事务分发数字资产数额,即通证数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。
在“基于输出的”模型(有时称为基于UTXO的模型)中,给定事务的数据结构包括一个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素可从进行中的事务序列导出。可花费输出有时称为UTXO(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字通证或资产所必需的条件的谓词。事务(除coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二目标事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。
在此类模型中,当第二目标事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。
另一种事务模型是基于账户的模型。在这种情况下,每个事务均不通过参考过去事务序列中先前事务的UTXO来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由节点单独存储到区块链中,并不断更新。
发明内容
本文确定存在许多情况,其中确定第一方(“爱丽丝”)和第二方(“鲍勃”)是否就爱丽丝与鲍勃之间进行的区块链事务集合的成员资格(membership)达成一致(即,就哪些区块链事务是所述集合的一部分达成一致)将是有用的。具体地,需要能够通过以下方式实现这一点,即如果其中一方就所述集合作出虚假陈述,则能够随后再现证据。例如,这对审计双方事务的税务机关或私人审计员等任何机构都可能是有用的。
然而,在实现这一点时涉及技术性考虑事项。最初的一种解决方案是简单地让爱丽丝和鲍勃各自向第三方(税务机关、审计员等)发送他们所涉及的事务的链下报告,并让所述第三方存储所有报告。然而,这会对所述第三方的集中存储空间造成负担。此外,未来的证据也会依赖于所述第三方的存储,这假设仅所述第三方的记录可以被信任为确定的不可变存储,但情况不一定如此(例如,它们可能容易遭受篡改、恶意软件或数据丢失)。或者,最初的另一种解决方案是简单地允许所述第三方单方面观察爱丽丝和鲍勃的链上事务,而爱丽丝或鲍勃完全不需要向所述第三方报告。毕竟,区块链的本质是,一旦包括在区块中,事务就会作为不可变的公共记录永久地记录在链上。然而,仅依靠这种方法还有另一个技术缺点,即爱丽丝和鲍勃的事务将分散在所述区块链上,单方面搜索所有此类事务将耗费所述第三方的计算资源。此外,通常各方通过对不同的事务使用不同的密钥来匿名化他们的事务。
本公开提供了一种更高效的混合实现方式,其中要求爱丽丝和鲍勃向第三方报告他们的事务,但是他们中的每一方还必须在链上记录的附加事务中对他们所报告事务中的每个事务进行证明(这些附加事务在本文中称为“第一”事务和“第二”事务,这些事务独立于所报告事务,即爱丽丝与鲍勃之间的事务)。例如,所述证明可以是哈希树的哈希根(有时也称为默克尔树的默克尔根),其事务ID等是叶。
根据本文公开的一个方面,提供了一种计算机实现的方法,用于确定第一方和第二方是否就在所述第一方与所述第二方之间进行事务的区块链事务集合的成员资格达成一致。所述方法由第三方执行,所述方法包括:从所述第一方,接收第一报告,所述第一报告包括涉及所述第一方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务至少包括所述集合中的区块链事务,所述第一报告包括一次或多次发送的一个或多个报告消息;以及,从所述第二方,接收第二报告,所述第二报告包括涉及所述第二方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务包括所述集合中的至少部分或全部区块链事务,所述第二报告包括一次或多次发送的一个或多个报告消息。所述方法还包括,由所述第三方执行:在区块链上观察在至少一个第一区块链事务中由所述第一方记录的第一证明,所述第一证明包括第一证明值,所述第一证明值是从已对所述第一报告中报告的所述指示应用第一变换的所述第一方导出的;以及,在区块链上观察在第二区块链事务中由所述第二方记录的第二证明,所述第二证明包括第二证明值,所述第二证明值是从已对所述第二报告中报告的所述指示应用第二变换的所述第二方导出的,并且,所述第一区块链事务和所述第二区块链事务独立于所述集合。所述第三方,通过对所述第一报告中报告的所述指示应用所述第一变换,并与来自所述区块链的所述第一证明进行比较,来检查所述第一报告与所述第一证明是否一致;并通过对所述第二报告中报告的所述指示应用所述第二变换,并与来自所述区块链的所述第二证明进行比较,来检查所述第二报告与所述第二证明是否一致。所述第三方还确定所述第一报告中的所述指示是否指示与所述第二报告中的所述指示相同的所述集合的成员资格。
所述报告向所述第三方通知所报告事务,但是所述证明仍作为不可变的公共记录保留在链上。所述第三方检查所述报告与对应的证明是否一致,以及所述报告是否相互匹配。如果所述确定表明其中一方相对于另一方就所述集合作出虚假陈述,则所述证明可以用作其中一方(例如,鲍勃)作出虚假申报的不可变证据。
所述第三方可以存储所述证明或指向所述证明的指针,以供日后用作证据。所述第三方可以存储可疑事务的指示(例如,事务ID),即两个报告中均未报告的事务。所述第三方还可以存储到所述第三方的身份的链接,并且在所述证明包括哈希树(默克尔树)的根的实施例中,所述第三方还可以存储所述根与所述相关事务的所述指示(例如,事务ID)之间的哈希树路径(默克尔路径)。但是所述第三方不必存储完整的所述第一报告和所述第二报告,也不必存储来自所述第一报告和所述第二报告的所有指示(例如,事务ID)。相反,所述第一方和所述第二方可以将他们自己的关于所述事务的所述指示的记录存储在所述集合中。所述第一方和所述第二方的这些记录稍后可以与链上证明一起使用,以证明他们所证明的事务。如果爱丽丝或鲍勃销毁了他们的记录,则这本身就可能是不当行为的证据,因为他们将无法再现所述证明。换句话说,由于存在链上证明,因此如果爱丽丝和鲍勃稍后无法产生满足所述证明的一组TxID,这意味着他们一定销毁了(或者可能丢失了)一些记录,但是他们不能仅仅假装他们从未报告或证明这些事务。所述第三方可能需要存储的只是不当行为的证据。为此,只需要有关单个事务的信息。
例如,考虑以下情况:税务机关(TA)将一个月内的所有事务ID收集在一起以识别不当行为(只有所述TA可以这样做,因为他们将拥有爱丽丝和鲍勃的记录)。一旦所述TA识别出可疑事务,所述TA就会存储所述事务、所述默克尔路径、所述证明以及所述事务中到鲍勃的身份的链接。然后,所述TA可以自由删除爱丽丝的其余事务。所述TA只保留一个事务。这提供了不当行为的证据,因为鲍勃将无法证明该事务包括在他所证明的默克尔树中。
同时,由于公开记录的所述证明是所述集合的变换(优选地,不可逆变换)而不是显式指示(例如,原始TxID),因此这会对所述集合的身份进行模糊处理,并且因此有助于保护各方的隐私,除非需要证明其中一方做出了不正确的报告。否则,如果不采取该措施,则会产生涉及爱丽丝的所有事务、涉及鲍勃的所有事务等的公开记录。
在实施例中,爱丽丝的报告可以包括涉及鲍勃的事务和包括一个或多个其他方(查理等)的事务,在这种情况下,她的证明将一起证明所有这些事务。例如,也许她每月发布一份关于她与各方的所有事务的证明。在这种情况下,如果需要向法院或警察局等第四方提供鲍勃的虚假陈述的证据,这可以在不损害查理的隐私(例如,不泄露他的事务ID)的情况下通过透露查理与爱丽丝进行的事务的身份来提供,这将是合乎需要的。
因此,在实施例中,所述第一报告和/或所述第二报告中的所述指示还可以包括与除所述第一方、所述第二方和所述第三方之外的一个或多个其他方一起处理的一个或多个其他区块链事务中的每个区块链事务的指示,所述集合是涉及所述第一方或所述第二方的事务的交集。所述第一证明值可以包括哈希树的根,所述第一报告中报告的所述指示中的每个指示是所述哈希树的叶;并且所述方法可以包括:响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,识别所述第一报告而非所述第二报告中指示存在的至少一个区块链事务;使用所述哈希树根以及所述根与表示缺失事务的指示之间的哈希树路径,以便产生所述第二方作出虚假证明的证据;以及在使用所述哈希树根和所述哈希树路径的基础上,向第四方提供所述证据,而不向所述第四方披露所述其他方的所述事务的所述指示。
给定哈希树根和路径,哈希树使得能够证明给定的候选叶(在这种情况下是爱丽丝与鲍勃之间相关事务的指示(例如,事务ID)中的一个指示)实际上是具有该哈希根的所述哈希树的叶,而无需揭示其他叶(在这种情况下是查理与爱丽丝进行的事务的指示(例如,Tx ID)等)。因此,可以在不损害查理的隐私的情况下,将鲍勃的虚假陈述的证据提交给法院、警察局等第四方。
附图说明
为了帮助理解本公开的实施例并示出如何实施此类实施例,现将仅通过举例的方式参考附图进行说明,其中:
图1是一种用于实现区块链的系统的示意性框图;
图2示意性地示出了可记录在区块链中的事务的一些示例;
图3是根据本文公开的实施例的一种用于确定第一方和第二方是否就区块链事务集合的成员资格达成一致的系统的示意性框图;
图4是示出根据本文公开的实施例的一种方法的信令图;
图5是示出根据本文公开的实施例的一种方法的流程图;
图6示意性地示出了哈希树(默克尔树)的示例。
具体实施方式
示例性系统概述
图1示出了一种用于实现区块链150的示例性系统100。系统100可以包括分组交换网络101,通常是诸如互联网的广域互联网。分组交换网络101包括多个区块链节点104,该多个区块链节点可以被设置成在分组交换网络101内形成对等(P2P)网络106。虽然未示出,但是区块链节点104可以被设置为近完全图。因此,每个区块链节点104高度连接到其它区块链节点104。
每个区块链节点104包括对等体的计算机设备,不同的节点104属于不同的对等体。每个区块链节点104包括处理装置,该处理装置包括一个或多个处理器,例如一个或多个中央处理单元(CPU)、加速器处理器、专用处理器和/或现场可编程门阵列(FPGA),以及其它设备,例如专用集成电路(ASIC)。每个节点还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。存储器可包括一个或多个存储器单元,其采用一个或多个存储器介质,例如诸如硬盘等磁介质、诸如固态硬盘(SSD)、闪存或电可擦可编程只读存储器(EEPROM)等电子媒介和/或诸如光盘驱动器等光学介质。
区块链150包括一系列数据区块151,其中在分布式或区块链网络106中的多个区块链节点104中的每个节点处维护区块链150的相应副本。如上所述,维护区块链150的副本不一定意味着完全存储区块链150。相反,只要每个区块链节点150存储每个区块151的区块头(下面讨论),区块链150就可以进行数据修剪。区块链中的每个区块151均包括一个或多个事务152,其中该上下文中的事务是指一种数据结构。数据结构的性质将取决于用作事务模型或计划的一部分的事务协议类型。给定的区块链全程使用一个特定的事务协议。在一种常见的事务协议中,每个事务152的数据结构至少包括一个输入和至少一个输出。每个输出指定将数字资产的数量表示为财产的数额,其一个示例是输出被密码锁定到的用户103(需要该用户的签名或其它解进行解锁,从而进行赎回或花费)。每个输入指向先前事务152的输出,从而链接这些事务。
每个区块151还包括区块指针155,其指向区块链中先前创建的区块151,以定义区块151的顺序。每个事务152(除coinbase事务之外)包括指向先前事务的指针,以定义事务序列的顺序(注:事务152的序列可进行分支)。区块151的区块链一直追溯到创始区块(Gb)153,该创始区块是区块链中的第一区块。区块链150中早期的一个或多个原始事务152指向创始区块153,而非先前事务。
每个区块链节点104被配置为将事务152转发到其它区块链节点104,从而使得事务152在整个网络106中传播。每个区块链节点104被配置为创建区块151,并将相同区块链150的相应副本存储在其相应的存储器中。每个区块链节点104还维护等待并入到区块151中的事务152的有序集(或“池”)154。有序池154通常称为“内存池”。在本文中,该术语并不意在限制于任何特定的区块链、协议或模型。该术语是指节点104已接受为有效的有序事务集,并且对于该有序事务集,强制节点104不接受试图花费相同输出的任何其它事务。
在给定的当前事务152j中,输入(或每个输入)包括指针,该指针引用事务序列中先前事务152i的输出,指定该输出将在当前事务152j中被赎回或“花费”。通常,先前事务可以是有序集154或任何区块151中的任何事务。尽管为了确保当前事务有效,将需要存在先前事务152i并核实其有效,但是在创建当前事务152j甚至向网络106发送当前事务152j时,不必存在先前事务152i。因此,在本文中,“先前”是指由指针链接的逻辑序列中的前任,而不一定是时间序列中的创建时间或发送时间,因此,不一定排除无序创建或发送事务152i、152j的情况(参见下面关于孤立事务的讨论)。先前事务152i同样可以称为先行事务或前任事务。
当前事务152j的输入还包括输入授权,例如先前事务152i的输出被锁定到的用户103a的签名。反过来,当前事务152j的输出可以加密锁定到新用户或实体103b。因此,当前事务152j可将先前事务152i的输入中定义的数额转移到当前事务152j的输出中定义的新用户或实体103b。在某些情况下,事务152可具有多个输出,以在多个用户或实体间分割输入数额(其中一个可以是原始用户或实体103a,以便进行变更)。在某些情况下,事务还可以具有多个输入,将一个或多个先前事务的多个输出中的数额汇总在一起,并重新分配到当前事务的一个或多个输出。
根据基于输出的事务协议,例如比特币,当诸如个体用户或组织这类的一方103希望颁布新的事务152j时(由该方采用的自动程序或人为地),该颁布方将该新事务从其计算机终端102发送到接收者。颁布方或接收者将最终向网络106的一个或多个区块链节点104(现在通常是服务器或数据中心,但原则上也可以是其它用户终端)发送该事务。另外还不排除颁布新事务152j的一方103可以将事务直接发送到一个或多个区块链节点104,并且在一些示例中,可以不将事务发送到接收者。接收事务的区块链节点104根据在每个区块链节点104处应用的区块链节点协议来检查事务是否有效。区块链节点协议通常要求区块链节点104检查新事务152j中的加密签名是否与预期签名相匹配,这取决于事务152的有序序列中的先前事务152i。在这种基于输出的事务协议中,这可以包括检查新事务152j的输入中包括的一方103的密码签名或其它授权是否与新事务分配的先前事务152i的输出中定义的条件匹配,其中该条件通常包括至少检查新事务152j的输入中的密码签名或其它授权是否解锁新事务的输入所链接到的先前事务152i的输出。条件可以至少部分地由包括在先前事务152i的输出中的脚本来定义。或者,这可仅由区块链节点协议单独确定,或可通过其组合确定。无论采用哪种方式,如果新事务152j有效,区块链节点104会将其转发到区块链网络106中的一个或多个其它区块链节点104。这些其它区块链节点104根据相同的区块链节点协议应用相同的测试,并因此将新事务152j转发到一个或多个其它节点104等等。通过这种方式,新事务在区块链节点104的整个网络中进行传播。
在基于输出的模型中,给定输出(例如,UTXO)是否分配(例如,花费)的定义是,根据区块链节点协议,其是否通过另一个随后事务152j的输入有效赎回。事务有效的另一个条件是其试图赎回的先前事务152i的输出尚未被另一个事务赎回。同样,如果无效,则事务152j将不会在区块链150中传播(除非被标记为无效并且被传播用于提醒)或记录。这可防止重复花费,即事务处理者对同一个事务的输出分配超过一次。另一方面,基于账户的模型通过保持账户余额防止重复花费。因为同样存在定义的事务顺序,账户余额在任何时候均具有单一定义的状态。
除了核实事务有效之外,区块链节点104还争相成为在通常称为挖矿的过程中创建事务区块的第一个节点,而该过程由“工作量证明”支持。在区块链节点104处,新事务被添加到尚未出现在记录在区块链150上的区块151中的有效事务的有序池154。然后,区块链节点争相通过尝试解决加密难题以组装有序事务集154中事务152的新有效事务区块151。通常情况下,这包括搜索“随机数”值,从而当随机数与未决事务有序池154的表示并置且进行哈希处理时,哈希值的输出满足预定条件。例如,预定条件可以是哈希值的输出具有某个预定义的前导零数。注意,这仅仅是一种特定类型的工作量证明难题,并且不排除其它类型。哈希函数的特性是,相对于其输入,其具有不可预测的输出。因此,该搜索只能通过强力执行,从而在试图解决难题的每个区块链节点104处消耗大量的处理资源。
解决难题的第一区块链节点104在网络106上宣布难题解决,提供解决方案作为证明,然后网络中的其它区块链节点104则可以轻松检查该解决方案(一旦给出哈希值的解决方案,就可以直接检查该解决方案是否使哈希值的输出满足条件)。第一区块链节点104将一个区块传播到接受该区块的其它节点达成阈值共识,从而执行协议规则。然后,有序事务集154被每个区块链节点104记录为区块链150中的新区块151。区块指针155还分配给指向该区块链中先前创建的区块151n-1的新区块151n。创建工作量证明解所需的大量工作(例如采用哈希的形式)发出信号通知第一节点104的意图以遵循区块链协议。这些规则包括如果它分配与先前核实有效的事务相同的输出,则不接受事务为有效,否则称之为重复花费。一旦创建,区块151就不能修改,因为它在区块链网络106中的每个区块链节点104处进行标识和维护。区块指针155还向区块151施加顺序。由于事务152记录在网络106中每个区块链节点104处的有序区块中,因此提供了事务的不可改变公共分类账。
应当注意的是,在任何给定时间争相解决难题的不同区块链节点104可以基于在任何给定时间尚未发布的事务的池154的不同快照来这样做,具体取决于它们何时开始搜索解或接收事务的顺序。解决相应难题的人员首先定义新区块151n中包括的事务152及其顺序,并且更新当前的未发布事务池154。然后,区块链节点104继续争相从新定义的未发布事务有序池154中创建区块,等等。此外,还存在解决可能出现的任何“分叉”的协议,其中两个区块链节点104彼此在很短的时间内解决难题,从而在节点104之间传播区块链的冲突视图。简言之,分叉方向最长的成为最终区块链150。应当注意的是,这不会影响网络的用户或代理,因为同一事务将出现在两个分叉中。
根据比特币区块链(和大多数其它区块链),成功构造新区块104的节点被授予在分配附加限定数量数字资产的新特殊类型事务中新分配附加的、接受的数额的数字资产的能力(与代理间或用户间事务相反,该事务将一定数量的数字资产从一个代理或用户转移到另一个代理或用户)。这种特殊类型的事务通常称为“coinbase事务”,但是也可以称为“启动事务”或“产生事务”。它通常形成新区块151n的第一事务。工作量证明发出信号通知构造新区块的节点的意图以遵循协议规则,从而允许稍后赎回该特定事务。在可以赎回该特殊事务之前,区块链协议规则可能需要成熟期,例如100个区块。通常,常规(非生成)事务152还将在其输出中的一个输出中指定附加事务费用,以进一步奖励创建其中发布该事务的区块151n的区块链节点104。该费用通常称为“事务费用”,并在下文中讨论。
由于事务核实和发布中涉及的资源,通常至少每个区块链节点104采用包括一个或多个物理服务器单元的服务器的形式,或者甚至整个数据中心。但是,原则上来说,任何给定区块链节点104均可采用一个用户终端或联网在一起的一组用户终端的形式。
每个区块链节点104的存储器均存储被配置为在区块链节点104的处理装置上运行的软件,以根据区块链节点协议执行其相应的角色并处理事务152。应当理解的是,在本文中归因于区块链节点104的任何动作均可通过在相应计算机设备的处理装置上运行的软件执行。节点软件可以在应用层或诸如操作系统层或协议层的较低层或这些层任意组合的一个或多个应用中实现。
扮演消费用户角色的多方103中的每一方的计算机设备102也连接到网络101。这些用户可以与区块链网络106交互,但不参与核实事务或构造区块。其中一些用户或代理103可以充当事务中的发送者和接收者。其它用户可以与区块链150交互,而不必充当发送者或接收者。例如,一些当事方可以充当存储区块链150的副本(例如,已经从区块链节点104获得区块链的副本)的存储实体。
各方103中的一些或所有当事方可以作为不同网络的一部分连接,例如覆盖在区块链网络106之上的网络。区块链网络的用户(经常称为“客户端”)可以被称为是包含区块链网络106的系统的一部分;然而,这些用户不是区块链节点104,因为它们不执行区块链节点所需的角色。相反,每一方103可以与区块链网络106交互,从而通过连接到区块链节点106(即,与区块链节点106通信)来利用区块链150。出于说明目的,示出了双方103及其相应的设备102:第一方103a及其相应的计算机设备102a,以及第二方103b及其相应的计算机设备102b。应当理解的是,更多此类当事方103及其相应的计算机设备102可能存在并参与系统100,但为了方便起见,未进行说明。每一方103均可以是个人或组织。仅出于说明目的,在本文中,第一方103a称为爱丽丝,第二方103b称为鲍勃,但应当理解的是,这并不仅限于爱丽丝或鲍勃,且本文对爱丽丝或鲍勃的任何引用均可分别用“第一方”和“第二方”替换。
每一方103的计算机设备102包括相应的处理装置,其包括一个或更多个处理器,例如一个或更多个CPU、图形处理单元(GPU)、其他加速器处理器、特定应用程序处理器和/或FPGA。每一方103的计算机设备102还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如诸如硬盘等磁介质、诸如SSD、闪存或EEPROM等电子媒介和/或诸如光盘驱动器等的光学介质。每一方103的计算机设备102上的存储器存储软件,其包括被设置为在处理装置上运行的至少一个客户端应用程序105的相应实例。应当理解的是,在本文中归因于给定方103的任何行动均可通过在相应计算机设备102的处理装置上运行的软件执行。每一方103的计算机设备102包括至少一个用户终端,例如台式或笔记本电脑、平板电脑、智能手机或诸如智能手表等的可穿戴设备。给定方103的计算机设备102还可包括一个或更多个其他网络资源,诸如通过用户终端访问的云计算资源。
客户端应用程序105最初可通过例如从服务器下载的适当计算机可读存储介质,或通过诸如可移动SSD、闪存密钥、可移动EEPROM、可移动磁盘驱动器、软盘或磁带等的可移动存储设备、诸如CD或DVD ROM等的光盘或可移动光驱等提供至任何给定方103的计算机设备102。
客户端应用程序105至少包括“钱包”功能。这有两个主要功能。其中一个功能是使相应方103能够创建、授权(例如签名)事务152并将其发送到一个或多个位比特币节点104,然后在区块链节点104的网络中传播,从而包括在区块链150中。另一个功能是向相应方汇报其目前拥有的数字资产数额。在基于输出的系统中,该第二功能包括整理分散在区块链150中属于相关方的各种事务152的输出中定义的数额。
注意:虽然各种客户端功能可以描述为集成到给定客户端应用程序105中,但这不一定是限制性的,相反,在本文中所描述的任何客户端功能可以在由两个或更多个不同应用程序组成的套件中实现,例如经由API进行接口连接或一个应用程序作为另一个应用程序的插件。更通俗地说,客户端功能可以在应用层或诸如操作系统的较低层或这些层的任意组合实现。下面将根据客户端应用程序105进行描述,但应当理解的是,这不是限制性的。
每个计算机设备102上的客户端应用程序或软件105的实例可操作地耦合到网络106的区块链节点104中的至少一个。这可以启用客户端105的钱包功能,以将事务152发送至网络106。客户端105还可联络区块链节点104,以在区块链150中查询相应方103作为接收者的任何事务(或实际上在区块链150中检查其它方的事务,因为在实施例中,区块链150是在某种程度上通过其公开可见性提供事务信任的公共设施)。每个计算机设备102上的钱包功能被配置为根据事务协议制定和发送事务152。如上所述,每个区块链节点104运行软件,该软件被配置为根据区块链节点协议核实事务152并转发事务152以便在区块链网络106中传播。事务协议和节点协议相互对应,给定事务协议和给定节点协议一起实现给定的事务模型。相同的事务协议用于区块链150中的所有事务152。网络106中的所有节点104使用相同的节点协议。
当给定方103(比方说爱丽丝)希望发送拟包含在区块链150中的新事务152j时,她将根据相关事务协议(使用其客户端应用程序105中的钱包功能)制定新事务。然后,她将事务152从客户端应用程序105发送到她所连接的一个或多个区块链节点104。例如,这可能是与爱丽丝的计算机102最佳连接的区块链节点104。当任何给定区块链节点104接收新事务152j时,其将根据区块链节点协议及其相应的角色进行处理。这包括首先检查新接收的事务152j是否满足变为“有效”的特定条件,具体示例稍后将详细讨论。在一些事务协议中,有效条件可通过事务152中包含的脚本在每个事务的基础上进行配置。或者,条件可仅仅是节点协议的内置功能,或通过组合脚本和节点协议进行定义。
如果新接收的事务152j通过有效性测试(即:“有效”的条件下),接收事务152j的任何区块链节点104将向在区块链节点104处维护的有序事务集154中添加新的核实有效事务152。进一步地,接收事务152j的任何区块链节点104随后将核实有效事务152传播至网络106中的一个或多个其它区块链节点104。由于每个区块链节点104应用相同的协议,因此假定事务152j有效,这意味着事务很快将在整个网络106中传播。
一旦进入在给定区块链节点104处维护的未决事务有序池154,该区块链节点104将开始争相解决其各自的包含新事务152的池154的最新版本上的工作量证明难题(请记住,其它区块链节点104可以尝试基于不同的事务池154来解决难题。但是,首先解决难题的人将定义包括在最新区块151中的事务集合。最终,区块链节点104将解决有序池154的一部分的难题,该有序集154包括爱丽丝的事务152j)。一旦包括新事务152j的池154完成工作量证明,其将不可变地成为区块链150中区块151中的一个区块的一部分。每个事务152包括指向早前事务的指针,因此事务的顺序也被不可变地记录下来。
不同的区块链节点104可以首先接收给定事务的不同实例,并且因此在一个实例被发布到新区块151中之前具有关于哪个实例“有效”的冲突视图,此时所有区块链节点104同意所发布的实例是唯一的有效实例。如果区块链节点104将一个实例接受为有效实例,然后发现第二实例已记录在区块链150中,则区块链节点104必须接受这一点,并将丢弃(即,视为无效)其最初接受的实例(即,在区块151中尚未公布的实例)。
作为基于账户的事务模型的一部分,由一些区块链网络操作的另一种类型的事务协议可称为“基于账户的”协议。在基于账户的情况下,每个事务均不通过参考过去事务序列中先前事务的UTXO来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由网络的节点单独存储到区块链中,并不断更新。在此类系统中,事务使用账户的运行事务记录(也称为“头寸”)进行排序。该值由发送者签名作为其加密签名的一部分,并作为事务引用计算的一部分进行哈希处理。此外,可选的数据字段也可以在事务中签名。例如,如果数据字段中包含先前事务的ID,该数据字段可指向先前事务。
基于UTXO的模型
图2示出了示例性事务协议。这是基于UTXO的协议的示例。事务152(简称“Tx”)是区块链150的基本数据结构(每个区块151包括一个或多个事务152)。下面将通过参考基于输出或基于“UTXO”的协议进行描述。但这并不限于所有可能的实施例。应当注意的是,虽然参考比特币描述了示例性基于UTXO的协议,但是它同样可以在其它示例区块链网络上实现。
在基于UTXO的模型中,每个事务(“Tx”)152包括数据结构,其包括一个或多个输入202和一个或多个输出203。每个输出203可包括未花费事务输出(UTXO),其可用作另一新事务的输入202的来源(如果UTXO尚未赎回)。UTXO包括指定数字资产数额的值。这表示分布式分类账上的一组通证。UTXO还可包含其来源事务的事务ID以及其它信息。事务数据结构还可包括标头201,其可包括输入字段202和输出字段203的大小指示符。标头201还可包括事务的ID。在实施例中,事务ID是事务数据(不含事务ID本身)的哈希值,且存储在提交至节点104的原始事务152的标头201中。
比方说爱丽丝103a希望创建转移相关数字资产数额至鲍勃103b的事务152j。在图2中,爱丽丝的新事务152j标记为“Tx1”。该新事务获取在序列中先前事务152i的输出203中锁定至爱丽丝的数字资产数额,并至少将此类数额中的一部分转移至鲍勃。在图2中,先前事务152i标记为“Tx0”。Tx0和Tx1只是任意的标记,其不一定意味着Tx0指区块链151中的第一事务且Tx1指池154中的后续事务。Tx1可指向仍具有锁定至爱丽丝的未花费输出203的任何先前(即先行)事务。
当爱丽丝创建其新事务Tx1时,或至少在她将该新事务发送至网络106时,先前事务Tx0可能已经有效并包括在区块链150的区块151中。该事务此时可能已包括在区块151中的一个区块中,或者可能仍在有序集154中等待,在这种情况下,该事务将很快包括在新区块151中。或者,Tx0和Tx1可以创建并一起发送至网络106;或者,如果节点协议允许缓冲“孤立”事务,Tx0甚至可以在Tx1之后发送。本文事务序列上下文中使用的“先前”和“后续”一词是指由事务中指定的事务指针定义的序列中的事务顺序(哪个事务指向哪个其他事务等等)。它们同样可以替换为“前任”和“继任”、“先行”和“后代”或“父项”和“子项”等。这不一定指其创建、发送至网络106或到达任何给定区块链节点104的顺序。然而,指向先前事务(先行事务或“父事务”)的后续事务(后代事务或“子事务”)不会有效除非父事务有效。在父事务之前到达区块链节点104的子事务被视为孤立事务。根据节点协议和/或节点行为,其可被丢弃或缓冲一段时间,以等待父事务。
先前事务Tx0的一个或更多个输出203中的一个包括特定的UTXO,标记为UTXO0。每个UTXO包括指定UTXO表示的数字资产数额的值以及锁定脚本,该锁定脚本定义后续事务的输入202中的解锁脚本必须满足的条件,以使后续事务有效,从而成功赎回UTXO。通常情况下,锁定脚本将数额锁定至特定方(该数额的事务的受益人)。即,锁定脚本定义解锁条件,该解锁条件通常包括以下条件:后续事务的输入中的解锁脚本包括先前事务被锁定到的一方的加密签名。
锁定脚本(亦称scriptPubKey)是节点协议识别的域特定语言中写入的一段代码。此类语言的特定示例称为“脚本(Script)”(S大写),其可由区块链网络所使用。锁定脚本指定花费事务输出203所需的信息,例如爱丽丝签名的要求。解锁脚本出现在事务的输出中。解锁脚本(亦称scriptSig)是提供满足锁定脚本标准所需信息的域特定语言中写入的一段代码。例如,其可包含鲍勃的签名。解锁脚本出现在事务的输入202中。
因此在示出的示例中,Tx0的输出203中的UTXO0包括锁定脚本[Checksig PA],该锁定脚本需要爱丽丝的签名Sig PA,以赎回UTXO0(严格来说,是为了使试图赎回UTXO0的后续事务有效)。[Checksig PA]包含爱丽丝的公私密钥对中的公钥PA的表示(即哈希)。Tx1的输入202包括指向Tx1的指针(例如,通过其事务ID(TxID0),其在实施例中是整个事务Tx0的哈希值)。Tx1的输入202包括在Tx0中标识UTXO0的索引,以在Tx0的任何其他可能输出中对其进行标识。Tx1的输入202进一步包括解锁脚本<Sig PA>,该解锁脚本包括爱丽丝的加密签名,该签名由爱丽丝通过将其密钥对中的私钥应用于预定的部分数据(有时在密码学中称为“消息”)创建。爱丽丝需要签名以提供有效签名的数据(或“消息”)可通过锁定脚本、节点协议或其组合进行定义。
当新事务Tx1到达区块链节点104时,该节点应用节点协议。这包括一起运行锁定脚本和解锁脚本,以检查解锁脚本是否满足锁定脚本中定义的条件(其中该条件可包括一个或更多个标准)。在实施例中,这涉及并置两个脚本:
<Sig PA><PA>||[Checksig PA]
其中“||”表示并置,“<…>”表示将数据放在堆栈上,“[…]”表示由锁定脚本组成的函数(在该示例中指基于堆栈的语言)。同样,脚本可以使用公共堆栈一个接一个地运行,而不是并置脚本。无论采用哪种方式,当一起运行时,脚本使用爱丽丝的公钥PA(包括在Tx0的输出的锁定脚本中),以认证Tx1的输入中的解锁脚本是否包含爱丽丝签名预期部分的数据时的签名。也需要包括预期的部分数据本身(“消息”),以便执行此认证。在实施例中,签名的数据包括整个Tx1(因此不需要包括一个单独的元素来明文指定签名的部分数据,因为其本身便已存在)。
本领域技术人员将熟悉通过公私密码进行验证的细节。基本上而言,如果爱丽丝已使用其私钥加密签署消息,则给定爱丽丝的公钥和明文中的消息,诸如节点104等其它实体可验证消息必须已经由爱丽丝签名。签署通常包括对消息进行哈希,签署哈希值和将此标记到消息作为签名,从而使公钥的任何持有者能够验证签名。因此,应当注意的是,在实施例中,在本文中对签名特定数据片段或事务部分等的任何引用可以意味着对该数据片段或事务部分的哈希值进行签名。
如果Tx1中的解锁脚本满足Tx0的锁定脚本中指定的一个或多个条件(因此,在所示示例中,如果在Tx1中提供了爱丽丝的签名并进行验证),则区块链节点104认为Tx1有效。这意味着区块链节点104会将Tx1添加到待定事务有序池154。区块链节点104还会将事务Tx1转发到网络106中的一个或多个其它区块链节点104,以便其会在整个网络106中传播。一旦Tx1有效并包括在区块链150中,这会将UTXO0从Tx0定义为已花费。应当注意的是,Tx1仅在花费未花费事务输出203时才有效。如果其试图花费另一事务152已经花费的输出,则即使满足所有其它条件,Tx1也将无效。因此,区块链节点104还需要检查先前事务Tx0中引用的UTXO是否已经花费(即,其是否已经形成另一有效事务的有效输入)。这是为何区块链150对事务152施加定义的顺序很重要的原因之一。在实践中,给定区块链节点104可维护单独的数据库,标记已花费事务152的UTXO 203,但最终定义UTXO是否已花费取决于是否在区块链150中形成了另一有效事务的有效输入。
如果给定事务152的所有输出203中指定的总数额大于其所有输入202所指向的总数额,则这是大多数事务模型中的另一失效依据。因此,此类事务不会传播或包括在区块151中。
请注意,在基于UTXO的事务模型中,给定UTXO需要作为一个整体使用。不能“留下”UTXO中定义为已花费的一部分数额,而同时又花费另一部分。但UTXO的数额可以在后续事务的多个输出之间分割。例如,Tx0的UTXO0中定义的数额可以在Tx1中的多个UTXO之间分割。因此,如果爱丽丝不想将UTXO0中定义的所有数额都给鲍勃,她可以使用剩余部分在Tx1的第二输出中自己找零,或者支付给另一方。
在实践中,爱丽丝通常还需要包括用于比特币节点104的费用,该比特币节点104在区块151中成功包含爱丽丝的事务104。如果爱丽丝未包括此类费用,则Tx0可能会被区块链节点104拒绝,并且因此尽管在技术上有效,但可能不会传播并且包括在区块链150中(如果区块链节点104不希望接受事务152,节点协议不强迫区块链节点104接受)。在一些协议中,事务费用不需要其自身的单独输出203(即不需要单独的UTXO)。相反,输入202指向的总数额与给定事务152的输出203指定的总数额之间的任何差额都将自动提供给发布事务的区块链节点104。例如,假设指向UTXO0的指针是Tx1的唯一输入,并且Tx1仅具有一个输出UTXO1。如果在UTXO0中指定的数字资产数额大于在UTXO1中指定的数额,则可以由赢得工作量证明竞赛以创建包含UTXO1的区块的节点104分配该差值。替代地或附加地,这不一定排除可以在其自身事务152的其中一个UTXO 203中明确指定事务费用。
爱丽丝和鲍勃的数字资产由区块链150中任何位置的任何事务152中的锁定至他们的UTXO组成。因此,通常情况下,给定方103的资产分散在整个区块链150的各种事务152的UTXO中。区块链150中的任何位置均未存储定义给定方103的总余额的一个数字。客户端应用程序105的钱包功能的作用是将锁定至相应方且在其它随后事务中尚未花费的各种UTXO值整理在一起。为实现这一点,其可以查询存储在任何一个位比特币节点104处的区块链150的副本。
应当注意的是,脚本代码通常用示意图表示(即使用非精确语言)。例如,可以使用操作码(opcode)来表示特定功能。“OP_...”是指脚本语言的特定操作码。举例来说,OP_RETURN是脚本语言操作码,当在锁定脚本的开始处在操作码前加上OP_FALSE时,操作码创建事务的不可花费输出,该输出可以在事务内存储数据,从而将数据不可改变地记录在区块链150中。例如,数据可包括需存储在区块链中的文件。
通常,事务的输入包含对应于公钥PA的数字签名。在实施例中,这基于使用椭圆曲线secp256k1的ECDSA。数字签名对特定的数据段进行签名。在实施例中,对于给定事务,签名将对部分事务输入以及部分或全部事务输出进行签名。对输出的特定部分进行签名取决于SIGHASH标志。SIGHASH标志通常是包含在签名末尾的4字节代码,用于选择签名的输出(并因此在签名时固定)。
锁定脚本有时称为“scriptPubKey”,指其通常包括相应事务被锁定到的当事方的公钥。解锁脚本有时称为“scriptSig”,指其通常提供相应的签名。但是更通俗地说,在区块链150的所有应用中,UTXO赎回的条件并不一定包括对签名进行验证。更通俗地说,脚本语言可用于定义任何一个或多个条件。因此,可以优选更为通用的术语“锁定脚本”和“解锁脚本”。
侧信道
如图1所示,爱丽丝和鲍勃的计算机设备102a、120b中的每个计算机设备上的客户端应用程序都可以包括附加通信功能。此附加功能可使爱丽丝103a建立与鲍勃103b的单独侧信道107(在任何一方或第三方的鼓动下)。侧信道107使得能够脱离区块链网络交换数据。此类通信有时称为“链下off-chain”通信。例如,这可用于在爱丽丝与鲍勃之间交换事务152,而不将该事务(尚未)注册到区块链网络106上或将其发布到链150上,直到其中一方选择将其广播到网络106上。以这种方式共享事务有时称为共享“事务模板”。事务模板可能缺少形成完整事务所需的一个或多个输入和/或输出。替代地或附加地,侧信道107可用于交换任何其它事务相关数据,例如密钥、议付数额或条款、数据内容等。
通过与区块链网络106相同的分组交换网络101可建立侧信道107。替代地或附加地,侧信道301可以经由诸如移动蜂窝网络的不同网络或者诸如无线局域网络的局域网建立,甚至经由爱丽丝和鲍勃的设备102a、102b之间的直接有线或无线链路建立。通常,在本文中任何地方所指的侧信道107可以包括经由一项或多项联网技术或通信介质的任何一条或多条链路,这些链路用于“链下”交换数据,即脱离区块链网络106交换数据。在使用多条链路的情况下,链下链路束或集合整体上可以称为侧信道107。因此,应当注意的是,如果说爱丽丝和鲍勃通过侧信道107交换某些信息或数据等,则这不一定意味着所有这些数据都必须通过完全相同的链路或甚至相同类型的网络发送。
验证事务集合的成员资格
正如发明内容中所提到的,需要使第三方能够验证两方(第一方和第二方,即爱丽丝和鲍勃)是否就这两方之间进行的区块链事务集合的成员资格达成一致(即,同意哪些事务是该集合的一部分)。此外,还需要通过以下方式实现这一点:使得作出虚假陈述的一方的身份能够被表露(demonstrate)。例如,第三方可以是税务机关,其检查爱丽丝和鲍勃两者是否已出于税务目的申报了相同的事务集合。或者,爱丽丝和鲍勃可以是公司内的两个部门,第三方可以是私人审计员,其检查这两个部门是否已出于审计目的报告了相同的事务。又如,区块链可以是联盟链,用于追踪宝石或动物产品等受监管商品的来源。在这种情况下,第三方可以是监管机构,其检查一方没有试图隐藏不法事务。同样应当注意的是,“爱丽丝”和“鲍勃”只是标签,并且每一方可以表示个人或组织,例如公司、政府机构、学术机构、慈善机构或俱乐部等,也可以表示此类组织内的部门等细分。
图3示出了根据本文公开的实施例的示例性系统。该系统包括第一方103a(爱丽丝)的计算机设备102a、第二方103b(鲍勃)的计算机设备102b和第三方303(例如,税务机关、审计员等)的计算机设备302。在下文中,各种动作将被描述为由第一方、第二方或第三方等执行,但是应当理解的是,这是一种缩写,意味着动作由相应方103a、103b、303使用相应方的计算机设备102a、102b、302来执行。
第三方303的计算机设备302可以采取服务器系统的形式,该服务器系统包括位于一个或多个地理位置处的一个或多个物理服务器单元。本文描述的由第三方303执行的各种动作可以使用存储在第三方计算机设备302的存储器中并在第三方计算机设备302的处理装置上运行的软件(代码)来执行。该存储器可以包括一个或多个存储器单元,并且该处理装置可以包括一个或多个处理单元。关于实现存储器和处理装置(磁存储器、电子存储器、CPU、GPU等)的各种选项的类似评论适用于已经针对第一方计算机设备102a、第二方计算机设备102b和/或节点104概述的情况。
第三方计算机设备302连接到区块链网络106,以至少使其能够检查存储在区块链150上区块151中的事务152。第一方计算机设备102a和第二方计算机设备102b也连接到区块链网络106,以使它们能够如前所述在它们之间进行区块链事务152。此外,如稍后将更详细讨论的,这使它们能够记录包含对在爱丽丝与鲍勃之间(以及可能在他们与其他方(例如,查理)之间)进行的事务的证明的附加“证明”事务。例如,这可以采取哈希树的哈希树根(默克尔根)的形式,由此叶是该集合中事务的ID。
该系统还被设置为使第一方设备102a和第二方设备102b中的每一个能够向第三方发送报告。这些报告包括在它们之间进行的所有(声称)事务的指示,例如以事务ID(TxID)来指示。
该系统还可以包括爱丽丝与鲍勃之间的链下侧信道107,如前所述。这使得爱丽丝和鲍勃能够在他们之间协商事务,然后发送该事务以记录在区块链150上。用于此目的的协议(例如,简化支付验证SPV)还可以涉及信息交换,该信息交换稍后将使得能够在检测到虚假陈述的情况下识别他们。
图4示出了根据本文公开的实施例由三方执行的方法步骤。
在步骤410中,爱丽丝和鲍勃在他们之间进行区块链事务。这涉及使用先前结合图1和图2讨论的任何技术等在区块链150上记录在爱丽丝与鲍勃之间处理的区块链事务。在基于输出(例如,基于UTXO)的模型中,这意味着事务152包括指向锁定到爱丽丝的另一先前事务的输出的输入202。当前事务(爱丽丝与鲍勃之间的事务)的输入202包括解锁脚本,该解锁脚本包括爱丽丝的签名,并因此解锁先前事务的指向输出。爱丽丝与鲍勃之间的事务包括向前输出203,该向前输出包括将输出锁定到鲍勃的锁定脚本,即需要鲍勃的签名才能解锁。根据各种已知的事务格式,该输出203可以包含鲍勃的地址,该地址基于鲍勃的公钥。在典型的事务格式中,该地址包括鲍勃的公钥的哈希。然而,原则上该地址可以是某种其他变换,或者仅仅是公钥本身。在用于比特币的TAT等典型格式中,该地址是一种经过哈希处理的形式。这是因为鲍勃的密钥出现在锁定脚本中,该脚本通常是支付到公钥哈希形式。相反,爱丽丝的公钥显式地出现在事务中,因为公钥本身(而不是哈希)出现在解锁脚本中。
一旦形成,事务可以由爱丽丝或鲍勃直接或经由另一中间方(未示出)发送到区块链网络106。
在实施例中,在爱丽丝与鲍勃之间进行事务的步骤410可以包括同意在爱丽丝与鲍勃之间处理事务,然后发送该事务以记录在链上。这可以包括经由链下侧信道107参与爱丽丝与鲍勃之间的协议。例如,该协议可以是SPV(简化支付验证)。该协议可以包括在侧信道107上交换爱丽丝与鲍勃之间事务的模板版本,其中每一方通过一次或多次交换填写该事务的部分;和/或该协议可以包括在各方之间交换使得能够识别他们的标识信息(鲍勃向爱丽丝提供他自己的标识信息,和/或反之亦然)。例如,这可以包括鲍勃在模板事务中基于他的公钥(例如,他的公钥的哈希)填写他的地址,或者将他的地址或公钥提供给爱丽丝,以便她将该地址包括在事务中。所交换的标识信息还可以包括将公钥链接到鲍勃的信息(与模板事务分开)。
通常,现在各方不会为每个事务使用相同的公钥。相反,他们具有主公钥,然后对于每个单独的事务,从主公钥导出特定于事务的子公钥,以在该特定事务的锁定脚本中使用。其中,这意味着子公钥或地址本身并不能识别鲍勃。子公钥通过导出函数与主公钥相关,该导出函数由在本文中称为导出信息的附加信息参数化。换句话说,子公钥是主公钥和一个或多个参数的函数,该一个或多个参数是导出信息,并且该函数是导出函数。导出信息包括特定于特定事务的一个或多个元素,例如事务的索引值,或者关于事务的内容或目的的信息,例如发票、销售订单或收据。这会将子公钥链接到特定事务。导出信息还可以包括称为链码的元素,该元素对于从给定主公钥导出的所有子密钥是公共的。适当的子密钥导出函数的细节本身对于本领域技术人员是已知的。
在步骤410的协议中,由鲍勃提供给爱丽丝的标识信息可以包括他的主公钥和/或导出信息,优选地可以包括两者,使得爱丽丝可以验证子公钥或地址链接到鲍勃的主公钥。无论采用哪种方式,如果检测到鲍勃作出了虚假陈述(如稍后更详细讨论的),则爱丽丝还可以稍后将此类信息提供给第三方303。鲍勃可能需要向爱丽丝发信号通知他正在使用哪种类型的导出函数(例如,哪种标准),并且爱丽丝可能需要向第三方303发信号通知该信息,或者,所使用的导出函数的类型可以简单地是假定的默认值。
在实施例中,每一方的主公钥通过数字认证机构(CA,certificate authority,未示出)链接到该方的公开身份。也就是说,CA颁布由CA签名的数字证书,并将主公钥链接到该公开身份。例如,公开身份可以包括该方的人类可读姓名和/或地址。在实施例中,在步骤410中交换的标识信息可以包括爱丽丝和/或鲍勃的数字证书的副本。
在步骤420中,爱丽丝将她与鲍勃进行的区块链事务的报告发送给第三方303。这可以经由爱丽丝与第三方303之间的链下侧信道(未示出)来发送。或者,这可以通过链上信道来报告,即通过爱丽丝在链上记录寻址到第三方的另一区块链事务,以使他们能够在链上找到该另一区块链事务(在基于输出的模型的情况下,这意味着它具有包含第三方地址的输出,第三方可以在链上监控该地址)。无论采用哪种方式,该报告都包括事务的指示。该指示可以包括事务本身的副本,但就数据量而言这较为繁琐。因此,更优选地,事务的指示可以仅包括事务的标识符,例如事务ID(TxID)。
在步骤430中,鲍勃还向第三方303发送(或至少应该发送)他与爱丽丝进行的同一区块链事务的报告。上述关于爱丽丝的报告制定和发送方式的所有信息在作出必要变更后均可适用于鲍勃的报告。
该方法继续进行,爱丽丝和鲍勃在一段时间内在他们之间进行一个或多个附加事务(即,执行步骤410的一个或多个附加实例)。例如,鲍勃可能是与爱丽丝开展常规业务的供应者。针对步骤410的每个实例执行步骤420和步骤430(或者,如果双方行为坦诚,则至少双方都应该这样做)。如图4所示,这可以包括针对每个事务410的步骤420和步骤430的单独实例。即,当爱丽丝和鲍勃进行每个事务时,他们中的每一方都向第三方发送单独的报告消息。例如,可以响应于在侧信道107上经由协议同意事务,或者响应于确认事务实际上已记录在区块链150上的区块151中而发送报告。
然而,或者,也不排除爱丽丝可以在同一报告消息中保存要指示给第三方303的一批事务(例如,作为每个消息的事务ID列表)。例如,她可以每周、每月或每年发送一份她所涉及的所有符合条件的事务的综合报告。类似评论可能也适用于鲍勃。
应当注意的是,爱丽丝和鲍勃中的每一方也可以向第三方303发送他们与其他方(例如,查理)进行的事务的类似报告。因此,例如,爱丽丝的报告还将包括她与查理之间的TxID的报告。
在步骤440中,爱丽丝生成她已涉及的事务集合(至少包括在爱丽丝与鲍勃之间进行的事务410)的证明。这应与她在报告420中向第三方303报告的集合相同。例如,该集合可以是特定时间段内的所有事务或所有符合条件的事务(例如,高于某个阈值的事务)。例如,她可以生成每周、每月或每年的证明。该证明包括通过对她向第三方303报告的事务(例如,在上一时间段(例如,上周、上月或去年)内报告的所有事务)的指示(例如,事务ID)应用模糊变换(优选地,不可逆变换)而生成的证明值。在实施例中,该变换采用基于哈希的函数的形式,该函数包括所报告的事务指示符(例如,事务ID)的组合的一个或多个哈希。
一个简单的示例是事务指示符(例如,ID)的级联的哈希或双重哈希。然而,更优选地,出于稍后将变得显而易见的原因,该证明值是哈希树的根。哈希树有时也称为默克尔树,而哈希根有时也称为默克尔根。在本案例中,哈希树的叶是事务指示符(例如,ID)。在该树的最低层,每个节点是对应一个叶子的哈希。在该树向上的下一层,每个节点是下面一层中不同相应节点子集(通常包括两个节点)的级联的哈希,从该树向上各层依此类推,直到达到单个根值。图6示出了一个简单的示例,其中“+”在这里表示级联(尽管原则上可以使用另一种类型的组合操作)。应当注意的是,本文中使用的术语“默克尔树”、“默克尔根”和“默克尔路径”不一定意味着二进制哈希树(即,其中从每一层到下一层组合的子集仅是两个节点),尽管这通常是最常见的实现方式。
默克尔树(哈希树)具有如下有用的特性,即为了证明给定叶是集合的成员,只需要叶、默克尔根以及叶与根之间默克尔路径的值(即,沿着从叶到根的路径的所有哈希值)。不需要所有叶的值。例如,这使得可以实现如下情景:TxID_1是该集合的成员,而不泄漏或不知道TxID_2、TxID_3、TxID_4等中的任何一个。出于隐私原因,这可能是有用的。
无论证明采用何种形式,爱丽丝随后在区块链150上的其他事务中记录该证明。这在本文中可以称为证明事务。该证明事务独立于爱丽丝与鲍勃、爱丽丝与查理等之间的事务。该证明事务可以寻址到第三方303,以使他们更容易在链上找到。在基于输出的模型(例如,基于UTXO的模型)中,这意味着该证明事务的输出203包括第三方303的地址。例如,该地址可以基于第三方的公钥,例如其公钥的哈希,并且输出可以锁定到该公钥,需要第三方303的对应私钥才能解锁。如果正在使用的区块链协议不允许零值输出,则在该输出中定义的量可以是尘埃(可忽略)值,或者可以是对第三方303的实际实质性支付(例如,实际税款支付或审计服务支付)。
在步骤450中,鲍勃生成他已涉及的事务集合(至少包括在爱丽丝与鲍勃之间进行的事务410)的证明。上述关于爱丽丝证明的解释在作出必要变更后也适用于鲍勃。鲍勃不必使用与爱丽丝相同形式的证明,尽管在实施例中他使用相同形式的证明(例如,默克尔根)。
在步骤460中,第三方303在区块链150上监控来自爱丽丝和鲍勃的证明事务。在实施例中,这可以包括基于区块链150在事务的输出中具有第三方的公钥等来监控寻址到第三方303的事务。在实践中,该监控可以通过第三方303订阅监控区块链150的定义活动的服务来实现。
在替代实施例中,第三方303不必监控区块链150,而是爱丽丝和鲍勃将第三方更改为链上存在他们的证明事务,例如通过发送指向证明事务的指针将第三方引导到该事务。
图5示出了根据本文公开的实施例可以由第三方303执行的方法。
在步骤510中,第三方303从区块链150上爱丽丝的证明事务中检索爱丽丝的证明值(例如,默克尔根MR)。在步骤520中,第三方303根据其从爱丽丝的一个或多个报告消息420接收的事务指示符(例如,ID)集合来计算证明值(例如,默克尔根MR’)。这两个步骤可以按以下任一顺序执行。在步骤530中,第三方303检查它们是否相等。如果不相等,则在步骤540中,第三方可以要求爱丽丝重新提交她的证明,并且循环回到步骤530。
步骤510至步骤540也可以相对于鲍勃作出必要变更。
假设(或一旦)爱丽丝的所证明的证明值和所计算的证明值确实匹配,并且类似地鲍勃的所证明的证明值和所计算的证明值确实匹配,则该方法转到步骤550。在该步骤中,第三方303检查由爱丽丝报告(420)的每个事务也由鲍勃报告(430)。这是通过将双方报告的事务指示符(例如,ID)进行比较来实现的。例如,这可以包括检查给定时间段(例如,一周、一个月或一年)内的所有指示事务。如果爱丽丝和鲍勃已报告相同的事务集合(例如,对于给定时间段),则很可能两者都是诚实的并且没有可疑之处,并且该方法结束。在实施例中,在这种情况下,第三方303可以从其存储中丢弃所报告的事务ID(可能在对它们执行某些处理之后以便出于税务目的来处理所指示的事务等,和/或在将它们保留规定的一定保留时间段之后)。
另一方面,如果爱丽丝和鲍勃中的一方已报告另一方没有并且本应报告的事务(例如,因为该事务是上周、上月或去年等给定时间段内的事务),则一方的报告中存在并且另一方的报告中缺失的事务被视为可疑事务。在这种情况下,该方法分支到步骤560。在该步骤中,第三方303确定一方(例如,爱丽丝)已报告而另一方(例如,鲍勃)尚未报告的事务的指示(例如,事务ID)。这可以从爱丽丝的报告420中确定。然后,在步骤570中,第三方303确定没有报告的一方(例如,鲍勃)不合规,并对他采取行动。在实施例中,这可以包括获取信息以确定鲍勃的身份,从而可以将其用作证据。
假设鲍勃不合规,则响应于确定不匹配报告,第三方303可以向爱丽丝发送请求,以要求她提供她最初在通过侧信道107协商事务的阶段410从鲍勃处接收的部分或全部标识信息。该标识信息可以包括前面提到的导出信息(例如,链码、索引和/或发票)。给定鲍勃的主公钥、导出信息以及所使用的已知形式(类型)的导出函数,第三方303可以计算用于可疑事务的鲍勃的子公钥应该是什么。鲍勃的主公钥可以由爱丽丝响应于该请求而提供给第三方303,或者可以预先由鲍勃提供,例如在他开始使用该服务之前的初始注册阶段提供。所使用的导出函数的类型可以是默认值,或者可以由爱丽丝发信号通知,或者可以由鲍勃预先注册。第三方303还可以通过从链上的可疑事务中读取地址或从爱丽丝处接收地址来获得在可疑事务中实际使用的地址。然后,第三方303可以将其与所计算的子公钥进行比较,以确定所计算的子公钥是否与用于鲍勃的地址的子公钥相同。例如,在地址是公钥的哈希的情况下,该比较将包括对所计算的公钥进行哈希处理并将结果与地址进行比较。假设结果与地址匹配,则确定可疑事务链接到鲍勃的主公钥。这可以用作证明鲍勃作出了虚假陈述的证据,例如,以提交给警察局或法院等第四方。
为了完整起见,应当注意的是,如果检查的是爱丽丝的行为,则在典型的事务格式中,她的子公钥显式地出现在事务中,因为公钥本身(而不是哈希)出现在解锁脚本中。因此,在这种情况下,与所计算的子公钥的比较不需要涉及哈希。同样,原则上在梯度事务格式中,鲍勃的地址可以简单地包括他的公钥的副本,而不一定包括其变换,例如哈希。
除子公钥与主公钥之间的链接之外,鲍勃的主公钥可以通过认证机构(CA)颁发的数字证书链接到鲍勃的公开身份。在协议410期间,爱丽丝可以从鲍勃处获得链接两者的证书;然后,在检测到可疑事务时,爱丽丝响应于请求将该证书提供给第三方303。或者,该证书可以由鲍勃预先向第三方303注册,或者可以由请求该证书的第三方303直接从CA获得。无论采用哪种方式,这都可能构成部分证据,证明确实是称为鲍勃的一方作出了虚假陈述。
可选地,爱丽丝和鲍勃两者在使用该服务之前向第三方注册了他们的主公钥303。这不一定是必须的,因为在任何情况下鲍勃都必须将其主密钥提供给爱丽丝(由于上述原因)。优选地,主密钥由认证机构(CA)签名。这可以是第三方本身,也可以是单独的CA。
在实施例中,鲍勃在设置阶段410向爱丽丝提供以下三项:他的主密钥、来自将他的主密钥链接到他的身份的CA的证书以及子导出信息。在记录中存在不匹配的情况下,爱丽丝可以将所有三项发送给第三方303。在这种情况下,第三方303具有证明鲍勃的身份与事务之间链接所需的所有信息。然而,在替代实现方式中,第三方303可能已从注册阶段获得鲍勃的主公钥和/或证书,或者可以直接从CA获得证书。因此,在一些其他实施例中,爱丽丝可以仅发送导出信息。
在实施例中,第三方303可以存储鲍勃的不合规证据(即,他的虚假陈述)。为此,第三方303不需要存储来自爱丽丝和鲍勃的完整报告的所有报告的指示(例如,所有事务ID)。实际上,第三方303可能需要存储的只是不当行为的证据。只需要一个事务就可以证明这一点。因此,一旦识别出可疑事务,第三方303就会存储该事务(或其标识符,例如TxID)、证明以及到鲍勃的身份的链接。在默克尔根的情况下,第三方303还会存储默克尔路径。然后,第三方303可以自由删除其余报告的事务指示(例如,ID)。第三方303只保留一个事务。这提供了不当行为的证据,因为鲍勃将无法证明该事务包括在他的公开链上证明中(例如,无法提供证明该事务包括在他的默克尔树中的证据)。
默克尔树实现方式可能对隐私特别有利。爱丽丝的默克尔树的叶可以包括与鲍勃以及与其他方(例如,查理)进行的事务的指示(例如,ID)。查理与爱丽丝进行了某个特定事务集合,这一事实可能是机密的或敏感的,并且假设查理未被怀疑作出任何虚假陈述,则最好不要在向警察局或法院等第四方提交的证据中泄露这些信息。如前所述,默克尔树允许证明候选叶是仅给定根和默克尔路径的集合的成员。因此,只需要在证据中存储和/或呈现这一点,而不需要查理与爱丽丝进行的事务的指示(例如,TxID)。第三方303可以确定相关的默克尔路径,因为已经假设爱丽丝已向第三方303发送所有预期事务。如果第三方303具有所有事务(以某个顺序),则它们可以构建爱丽丝的默克尔树并再现默克尔根。如果整个树是已知的,则它们可以轻松计算出到任何叶的路径。
应当注意的是:虽然上面已经描述了爱丽丝与鲍勃以及爱丽丝与查理等之间的所有事务、第一证明事务和第二证明事务以及用于链上信令的任何其他事务都记录在同一区块链150上,但不一定是这种情况。例如,爱丽丝与鲍勃之间的事务可以是一个区块链的事务,而证明可以记录在另一个区块链上。或者,爱丽丝与鲍勃之间的事务可以包括经由不同的区块链进行的事务。或者,爱丽丝和鲍勃可以经由一个区块链处理事务,而爱丽丝和查理可以经由另一个区块链处理事务,依次类推。
此外,应当的注意是:虽然本文已经根据从爱丽丝到鲍勃的事务描述了示例,但是类似方法也可以适用于从鲍勃到爱丽丝的事务,或者爱丽丝与查理之间的事务等。此外,尽管在爱丽丝帮助识别鲍勃作出虚假陈述方面以示例方式进行了描述,但是该方法反过来可以同样适用(无论鲍勃是付款人还是收款人)。
示例性应用–税收申报
下面探讨了所公开系统的示例性应用,由此区块链公共分类账的透明度和匿名性可以用于激励税收合规行为。具体地,这可以用于提供一种在区块链上记录或“申报”税收收据的系统,以识别税收不合规的用户。该系统只依赖于一些诚实的用户来识别许多不合规用户。
比特币区块链等至少一些区块链的隐私模型意味着,身份信息与链上事务信息通过防火墙隔离。然而,身份信息仍然可以在处理事务的各方之间进行链下交换。事实上,现有法规通常要求处理事务的各方之间交换身份信息。例如,第五项反洗钱指令(AMLD5)要求实体(个人和/或公司)报告英国和欧洲境内任何超过150欧元的交易的身份信息。
所公开系统的实施例可以如下工作。考虑爱丽丝与鲍勃两方之间的区块链事务。为了遵守AML法规,爱丽丝和鲍勃在链下交换信息,这些信息可证明地将他们的身份链接到事务。爱丽丝和鲍勃独立地在链下将事务ID(TxID)发送给同一税务机关。爱丽丝和鲍勃在链上向税务机关记录他们的事务的默克尔根,每月一次。由于爱丽丝和鲍勃两者都将他们的TxID提交给同一税务机关,因此该税务机关应收到每个TxID两次。如果他们只从爱丽丝处收到一个TxID,他们就会调查并询问她在与谁一起处理事务。爱丽丝将回答是鲍勃,并向该税务机关提供从他的身份到事务的可证明链接。该税务机关现在可掌握鲍勃不合规的证据。
作为一种示例性实现方式,下面的第1小节剖析了比特币事务,并解释了如何在链下建立到身份的可证明链接。第2小节描述了一种识别税收不合规情况的系统(或者更一般地,如何使用到身份的链接来识别集合的非成员资格)。第3小节讨论了在多大程度上可以将识别不合规情况的过程外包给第三方。这是可行的,因为到身份的链下防火墙仅对不合规用户造成危害。
1.比特币事务的特性
考虑从爱丽丝到鲍勃的x聪的比特币事务。该事务将如下所示:
这只是普通事务。该事务的结构完全不需要更改。类似的格式可以用于其他基于输出(例如,基于UTXO)的模型。
为了简单起见,这里未考虑其他输入或输出,例如对爱丽丝所做的更改。解锁脚本包含来自由爱丽丝控制的公钥的有效签名。锁定脚本采用支付到公钥哈希形式,这意味着它需要花费来自由鲍勃控制的公钥/>的签名。已经包括可选的不可花费OP_FALSEOP_RETURN输出和有效载荷数据。此外,还可以通过其他方式将其包括在其他事务协议中,例如和OP_DROP一起或仅包括OP_RETUTN。
通常,爱丽丝将拥有一个钱包,其中包含主公钥PKA,并且可能包含称为链码CA的附加信息。例如,该主密钥可以通过颁发数字证书的认证机构(CA)与她的身份相关联。然而,该主密钥不会出现在链上。相反,爱丽丝在事务中使用的公钥是该公钥不是她的主密钥。公钥/>通常将以确定性方式从PKA导出。如果不知道密钥是如何导出的,则查看事务TxID1的人不会意识到它包含由爱丽丝控制的密钥。
在事务TxID1中,还包括以下选项:将有效载荷Data存储在不可花费输出中(这是将数据存储在事务中的典型位置,也可以在锁定脚本/解锁脚本中,其后为OP_DROP命令)。有效载荷Data可以包含关于事务的元数据。例如:
·典型的收据数据,例如购买的物品、个人成本、商家名称、时间戳;
·所涉及的一家或多家企业的注册码和税收代码;
·所涉及的个人的身份信息;和/或
·收据
这些数据中的任何数据都可以使用爱丽丝和/或鲍勃可用的解密密钥进行加密。或者,该数据的哈希提交可以是有效载荷中提供的所有信息。这可以在不提供任何细节的情况下将元数据可证明地链接到事务。(可能需要包括某个盐值,以确保哈希原像具有足够的熵。)如果使用哈希提交,则应将哈希原像存储在数据库中。此类数据库可以由爱丽丝、鲍勃或第三方维护,它甚至可以是分布式哈希表(DHT),其中数据由网络中的参与者复制。
事务本身可以包含与税款支付相关的输入和输出。本文将不作详细描述。税款不必在区块链事务中支付,尽管这是一种可能性。
子密钥可以可证明地链接到主密钥。TxID1等事务涉及引入由鲍勃控制的新公钥如前所述,该公钥可以链接到鲍勃的主密钥PKB,该主密钥反过来又可以链接到鲍勃的身份。通常有两种方法可以实现这一点。
1)类似于BIP32的过程。例如,可以遵循通过下式得出的未增强子密钥导出路径
2)类似于WP42的过程。在这里,需要爱丽丝和鲍勃的主密钥以及第三数据m,例如发票或爱丽丝和鲍勃两者已知的其他元数据。例如,公钥可以根据下式导出
这具有爱丽丝和鲍勃两者可以可证明地将与PKA、PKB、m链接的特征。
过程(1)中的索引i可以保留BIP32钱包恢复的特征的方式链接到其他数据,例如发票m或公钥PKA。结合使用这两种方法。此外,还研究了如何将多个输出和多个事务链接到同一发票m。在已知聪值的情况下,这可以增强爱丽丝与鲍勃之间事务的隐私性。
2.申报税收和识别税收不合规情况的系统
本小节描述了一种系统,该系统使税务机关能够识别可能存在税收不合规情况的实体。为了简单起见,在该系统中只考虑两个实体,即爱丽丝和鲍勃。他们需要向税务机关注册他们的主公钥PKA和PKB,如上文第1小节所述。这可以通过税务机关颁发证书或发行税收代码来建立。
假设税务机关具有公知的公钥PKT,该公钥表示用于记录或“申报”税收收据的地址。该账户仅保留用于接收和合并来自爱丽丝和鲍勃的链上税收申报。公钥PKT仅仅是警报地址,而不是税务机关接收或发送付款的方式。
该系统包括两个阶段:申报税收;以及识别税收不合规情况。每个阶段的细节描述如下。
申报税收:下面从爱丽丝的角度介绍协议,这与鲍勃的观点相同。这是图4中示意性表示的方法的示例。
1.爱丽丝和鲍勃构建事务。爱丽丝和鲍勃共同创建将资金从爱丽丝转移到鲍勃的事务TxID1。第1.1节中提到了TxID1的示意图。爱丽丝和鲍勃还交换个人可识别信息,该信息可证明地将他们的ID链接到事务中使用的公钥。例如,他们可以提供在第1.1节中解释的子密钥导出所需的数据。
他们还发送到其身份的链接(链外off-chain)。为了确保安全,鲍勃应首先要求爱丽丝向他发送她的身份信息。然后,就像在类似于BIP270的过程中一样,他可以向她发送事务模板以及他的身份信息。爱丽丝将对该事务进行签名,使其生效。(如果鲍勃首先向爱丽丝发送他的身份信息,则爱丽丝可以在不透露其身份信息的情况下对消息进行签名。)
爱丽丝或鲍勃将该事务提交到比特币网络,并检查该事务是否已按照他们的要求在一定程度上被接受。
2.爱丽丝和鲍勃随后在链下向税务机关报告该事务。爱丽丝和鲍勃分别向税务机关报告事务ID TxID1。这可以通过向税务机关发送链下消息来完成;但是,在本文中将不指定报告事务ID的方式。
3.爱丽丝与鲍勃之间的每个事务TxIDi应向税务机关报告两次,一次由爱丽丝报告,一次由鲍勃报告。税务机关可以建立内部数据库来存储这些事务。这样,可以有效地匹配两个实体之间的每个事务。
4.在固定时间段(例如,一个月)之后,爱丽丝将其所有事务TxID1,…,txIDN收集在一起,并构建具有默克尔根MRA的默克尔树。该方式与在比特币区块中构建默克尔根类似,但是这里只使用与爱丽丝相关的事务。
5.爱丽丝创建事务TxIDA至税务机关公钥PKT。鲍勃执行相同操作。该事务TxIDA包含使用爱丽丝的身份公钥进行签名的事务的默克尔根MRA。默克尔根可以是第1.1节中提到的不可花费输出中的有效载荷Data。
6.爱丽丝和鲍勃在链上将他们的默克尔根提交给税务机关。当事务TxIDA和TxIDB在比特币网络上被接受时,税务机关将收到默克尔根MRA和MRB。通过这种方式在链上发送事务会创建爱丽丝对其当月税收收据的证明的不可变记录。
识别税收不合规情况:这是图5中示意性表示的方法的示例。
1.税务机关接收事务TxIDA的默克尔根MRA。
2.然后,税务机关计算爱丽丝当月已发送的所有TxID的默克尔根MR′A,以检查是否符合预期。
3.检查MRA=MR′A(即,所证明的默克尔根是否符合预期)。如果不符合,则税务机关会要求爱丽丝重新提交新的MRA。
4.对于鲍勃,重复步骤1至步骤3。
5.检查每个事务是否出现两次。应当记住的是,爱丽丝与鲍勃之间的每个TxID在税收申报阶段已发送到税务机关。在该阶段,税务机关检查当月发送的每个TxID是否报告两次:一次由爱丽丝报告,一次由鲍勃报告。如果是,则税务机关停止检查过程,并确定爱丽丝和鲍勃当月合规。
6.识别只出现一次的一个或多个事务,并询问该事务的信息。税务机关确定事务TxID2仅由一方(例如,爱丽丝)报告,并询问她TxID2中与她一起处理事务的另一方是谁。她告诉税务机关另一方是鲍勃。税务机关可能会要求爱丽丝在TxID2中提供到鲍勃的身份的可证明链接。
7.税务机关现已确定鲍勃不合规,并对他进行了适当惩罚。
图5示出了税务机关等第三方303通过检查默克尔根(或其他此类证明)以及爱丽丝和鲍勃已发送的所有事务的列表来识别不合规情况的过程。为了简洁起见,该图仅以MR(默克尔根)为例,而没有指定爱丽丝或鲍勃的默克尔根。
应当注意的是,MR与MR′相等仅指示链上的税收记录与税务机关的税收记录匹配,但这并不意味着爱丽丝或鲍勃合规。例如,爱丽丝与鲍勃之间当月的四个事务分别是TxID1、TxID2、TxID3和TxID4。爱丽丝向税务机关报告所有四个事务ID和根据这些事务形成的默克尔根MRA_4。鲍勃仅向税务机关报告三个事务ID TxID1、TxID2和TxID3以及对应的默克尔根MRB_3。税务机关现在知道MRA_4=MR′A_4且MRB_3=MR′B_3。但是,在步骤5和步骤6中,税务机关确定鲍勃没有报告TxID4,因此他不合规。此外,默克尔根MRB_3是鲍勃试图伪造税收记录或非法少缴税款的证据。
3.外包给第三方提供者
本小节将引入第三方服务提供者(SP)作为系统中的新角色,以帮助税务机关更有效地识别税收不合规情况。
如上文第2小节所述,税务机关将检查默克尔根和每个TxID,以识别税收不合规情况。事实上,如果爱丽丝与鲍勃之间存在大量TxID,并且/或许多实体需要由税务机关识别,这可能会给税务机关造成很大负担。
因此,为了减轻税务机关在识别不匹配事务方面的负担,第三方服务提供者将代表税务机关监控实体的活动。术语“监控”的含义包括从区块链网络收集信息(发送到税务机关的公钥PKT的任何事务)、报告所收集的信息、验证与链下报告的TxID上的实体相关联的公钥的所有权、检查所比较的哈希值(例如,默克尔根)之间的相等性。
在税收不合规识别系统中,验证比特币的所有权非常重要且势在必行。使用DHT和比特币区块链的现有方法适用于系统中的所有权验证。
上文第1小节中的DHT被视为参与者存储和维护数据的数据库。本文中应用的爱丽丝、鲍勃、税务机关和服务提供者是参与节点,并且数据是DHT上的所有密钥值对和元数据。
该监控可以分为两个部分:链上监控和链下监控。链上部分旨在监控发送到公钥PKT的任何事务,链下监控旨在匹配实体发送的每个TxID。
链下监控是指税务机关授权服务提供者接收爱丽丝和鲍勃发送的每个TxID。服务提供者检索区块链上每个TxID的完整数据,然后确定TxID上具有与发送者(例如,爱丽丝)相关联的至少一个公钥。这同样适用于鲍勃发送的每个TxIDA。服务提供者将向税务机关报告任何不匹配的TxIDA。
链上监控是指税务机关授权服务提供者对区块链上发送到税务机关公钥PKT的事务进行监控。税务机关向服务提供者注册公钥PKT,以监控发送到PKT的任何事务。服务提供者将识别谁是默克尔事务TxIDA的发送者,这同样适用于TxIDB。SP提取默克尔根MR,计算MR’,检查MR与MR′之间的相等性,最后向税务机关发送消息以报告结果。
税务机关将审查SP的链上和链下监控报告,并采取一些惩罚措施。应当注意的是,税务机关可能不需要询问爱丽丝TxID上的另一方是谁,因为服务提供者已在链下监控中识别该方。此外,链下监控提供完整的记录,使税务机关能够立即匹配两个实体之间的每个事务并识别不匹配。
结论
一旦给出本文的公开内容,所公开技术的其它变体或用例对于本领域技术人员可能变得显而易见。本公开的范围不受所描述的实施例限制,而仅受随附权利要求限制。
例如,上面的一些实施例已经根据比特币网络106、比特币区块链150和比特币节点104进行了描述。然而,应当理解的是,比特币区块链是区块链150的一个特定示例,并且上述描述通常可以应用于任何区块链。也就是说,本发明决不限于比特币区块链。更一般地,以上对比特币网络106、比特币区块链150和比特币节点104的任何引用可以分别参考区块链网络106、区块链150和区块链节点104来替换。区块链、区块链网络和/或区块链节点可以共享如上所述的比特币区块链150、比特币网络106和比特币节点104的部分或全部所述特性。
在本发明的优选实施例中,区块链网络106是比特币网络,并且比特币节点104至少执行对区块链150的区块151进行创建、发布、传播和存储中的所有所述功能。不排除可能存在仅执行这些功能中的一个或部分功能但不是全部功能的其它网络实体(或网络元件)。也就是说,网络实体可以执行传播和/或存储区块的功能,而不创建和发布区块(请记住,这些实体不被认为是优选的比特币网络106的节点)。
在本发明的其他实施例中,区块链网络106可以不是比特币网络。在这些实施例中,不排除节点可以执行对区块链150的区块151进行创建、发布、传播和存储中的至少一个或部分功能但不是所有功能。例如,在这些其它区块链网络上,“节点”可用于指被配置为创建和发布区块151但不存储和/或传播这些区块151到其它节点的网络实体。
甚至更通俗地说,上面对术语“比特币节点”104的任何引用可以用术语“网络实体”或“网络元件”代替,其中这样的实体/元件被配置为执行对区块进行创建、发布、传播和存储中的一些或全部角色。这种网络实体/元件的功能可以在硬件中实现,方法与上面参照区块链节点104所述的方式相同。
应当理解的是,上述实施例仅通过示例的方式进行描述。更通俗地说,可根据下述任何一个或多个语句提供一种方法、装置或程序。
语句1.一种计算机实现的方法,用于确定第一方和第二方是否就区块链事务集合的成员资格达成一致,所述区块链事务集合在所述第一方与所述第二方之间进行事务,所述方法包括由第三方执行:
从所述第一方,接收第一报告,所述第一报告包括涉及所述第一方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务至少包括所述集合中的区块链事务,所述第一报告包括一次或多次发送的一个或多个报告消息;
从所述第二方,接收第二报告,所述第二报告包括涉及所述第二方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务包括所述集合中的至少部分或全部区块链事务,所述第二报告包括一次或多次发送的一个或多个报告消息;
在区块链上观察在至少一个第一区块链事务中由所述第一方记录的第一证明,所述第一证明包括第一证明值,所述第一证明值是从所述第一方导出的,其已对所述第一报告中所报告的所述指示应用第一变换;
在区块链上观察在第二区块链事务中由所述第二方记录的第二证明,所述第二证明包括第二证明值,所述第二证明值是从所述第二方导出的,其已对所述第二报告中所报告的所述指示应用第二变换,并且,所述第一区块链事务和所述第二区块链事务独立于所述集合;
通过对所述第一报告中报告的所述指示应用所述第一变换,并与来自所述区块链的所述第一证明进行比较,来检查所述第一报告与所述第一证明是否一致;
通过对所述第二报告中报告的所述指示应用所述第二变换,并与来自所述区块链的所述第二证明进行比较,来检查所述第二报告与所述第二证明是否一致;以及,
确定所述第一报告中的所述指示是否指示与所述第二报告中的所述指示相同的所述集合的成员资格。
语句2.根据语句1所述的方法,其中所述第一证明值和所述第二证明值中的每个证明值包括哈希值,所述第一变换和所述第二变换中的每一个包括至少一个哈希函数。
语句3.根据语句2所述的方法,其中以下两项中的一项或两项:
所述第一证明值包括第一哈希树的根,所述第一报告中报告的所述指示中的每个指示是所述第一哈希树的叶;和/或,
所述第二证明值包括第二哈希树的根,所述第二报告中报告的所述指示中的每个指示是所述第二哈希树的叶。
语句4.根据前述任一项语句所述的方法,其中所述第一变换和所述第二变换是相同形式的变换。
语句5.根据前述任一项语句所述的方法,其中所述第一报告和所述第二报告中的所述指示分别包括所述第一报告和所述第二报告中报告的所述事务的事务ID。
语句6.根据前述任一项语句所述的方法,其中所述第一事务和所述第二事务中的每一个被寻址到所述第三方的公钥。
语句7.根据语句6所述的方法,其中所述第一事务和所述第二事务中的每一个包括输出,所述输出包括锁定脚本,所述锁定脚本通过以下方式被寻址到所述第三方:包括基于所述第三方的公钥的地址;以及需要所述第三方的对应签名来解锁。
语句8.根据前述任一项语句所述的方法,其中所述第一方与所述第二方之间的所述事务包括在所述第一方与所述第二方之间处理的至少部分事务,每个事务包括基于所述第二方的相应子公钥的地址,其中每个子密钥通过导出函数与所述第二方的主公钥相关,所述导出函数通过相应导出信息参数化。
语句9.根据语句8所述的方法,其中每个子密钥的所述相应导出信息包括相应事务的相应发票、销售订单或收据。
语句10.根据语句8或9所述的方法,其中所述导出信息包括所述公共子密钥共有的链码。
语句11.根据语句8、9或10所述的方法,其中每个子密钥的所述导出信息包括相应索引值。
语句12.根据语句8至11中任一项所述的方法,其中所述第二方的所述主公钥通过数字认证机构链接到所述第二方的公开身份。
语句13.根据语句8至12中任一项所述的方法,所述方法还包括:
从所述第一方接收所述集合中的至少一个区块链事务的所述相应导出信息;以及,
响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,使用所述导出函数、所述第二方的所述主公钥和所述接收的导出信息来确定所述第二方的所述子公钥,并由此验证所述相应地址链接到所述第二方的所述主公钥。
语句14.根据语句13所述的方法,其中还响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,接收所述相应导出信息。
语句15.根据语句13或14所述的方法,其中所述第二方的所述公钥通过数字认证机构链接到所述第二方的公开身份,所述确定步骤还包括:使用所述主公钥和所述认证机构颁发的数字证书来验证所述第二方的所述公开身份。
语句16.根据前述任一项语句所述的方法,其中以下两项中的一项或两项:
所述第一报告包括在不同时间接收的多个第一报告消息,每个第一报告消息报告涉及所述第一方的所述区块链事务中的不同相应一个区块链事务,并且其中所述第一证明值是在时间窗口内组合涉及所述第一方的区块链事务的周期性证明的实例;和/或
所述第二报告包括在不同时间接收的多个第二报告消息,每个第二报告消息报告涉及所述第二方的所述区块链事务中的不同相应一个区块链事务,并且其中所述第二证明值是在时间窗口内涉及所述第二方的区块链事务的周期性证明的实例。
语句17.根据前述任一项语句所述的方法,其中所述第一报告和/或所述第二报告中的所述指示还包括与除所述第一方、所述第二方和所述第三方之外的一个或多个其他方一起处理的一个或多个其他区块链事务中的每个区块链事务的指示,所述集合是涉及所述第一方或所述第二方的事务的交集。
语句18.根据语句17所述的方法,其中所述第一证明值包括哈希树的根,所述第一报告中报告的所述指示中的每个指示是所述哈希树的叶;并且其中所述方法包括:
响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,识别所述第一报告而非所述第二报告中指示存在的至少一个区块链事务;
使用所述哈希树根以及所述根与表示缺失事务的指示之间的哈希树路径,以便产生所述第二方作出虚假证明的证据;以及,
在使用所述哈希树根和所述哈希树路径的基础上,向第四方提供所述证据,而不向所述第四方披露所述其他方的所述事务的所述指示。
语句19.根据至少从属于语句15的语句18所述的方法,其中所述证据还包括验证到所述第二方的所述公开身份的所述链接。
语句20.根据前述任一项语句所述的方法,其中所述第三方是税务机关。
语句21.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或多个存储器单元;以及,
处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据前述任一项语句所述的方法。
语句22.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据语句1至20中任一项所述的方法。
语句23.一种计算机实现的方法,所述方法由第一方执行以证明在第一方与第二方之间进行的区块链事务集合,所述方法包括:
对于所述区块链事务集合中相应一个区块链事务中的每个区块链事务,经由链下侧信道(off-chain side channel)与所述第二方执行协议,以便形成所述相应区块链事务,其中所述相应区块链事务一旦形成就包括基于所述第二方的相应子公钥的地址,所述子公钥通过导出函数与所述第二方的主公钥相关,所述导出函数通过相应导出信息参数化,并且其中所述协议包括从所述第二方接收所述导出信息和所述子公钥;以及,
响应于来自第三方的请求,向所述第三方报告所述相应导出信息,从而使所述第三方能够表露(demonstrate)所述第二方的所述子公钥与所述主公钥之间的链接;
其中所述区块链事务集合中的每个区块链事务一旦形成就被记录在区块链上;以及,
所述方法还包括:发送至少一个单独的区块链事务以记录在所述区块链上,所述至少一个单独的区块链事务包括所述区块链事务集合的证明,所述证明包括所述集合的指示的变换。
语句24.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或多个存储器单元;以及,
处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据语句23所述的方法。
语句25.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据语句23所述的方法。
根据本文公开的另一方面,可以提供一种方法,所述方法包括所述第一方、所述第二方和/或所述第三方中的任意一方或所有方的动作。
根据本文公开的另一方面,可以提供一种系统,所述系统包括所述第一方、所述第二方和/或所述第三方中的任意一方或所有方的计算机设备。
Claims (25)
1.一种计算机实现的方法,用于确定第一方和第二方是否就在所述第一方与所述第二方之间进行事务的区块链事务集合的成员资格达成一致,所述方法包括由第三方执行:
从所述第一方,接收第一报告,所述第一报告包括涉及所述第一方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务至少包括所述集合中的区块链事务,所述第一报告包括一次或多次发送的一个或多个报告消息;
从所述第二方,接收第二报告,所述第二报告包括涉及所述第二方的多个区块链事务中的每个区块链事务的指示,所述多个区块链事务包括所述集合中的至少部分或全部区块链事务,所述第二报告包括一次或多次发送的一个或多个报告消息;
在区块链上观察在至少一个第一区块链事务中由所述第一方记录的第一证明,所述第一证明包括第一证明值,所述第一证明值是从已对所述第一报告中报告的所述指示应用第一变换的所述第一方导出的;
在区块链上观察在第二区块链事务中由所述第二方记录的第二证明,所述第二证明包括第二证明值,所述第二证明值是从已对所述第二报告中报告的所述指示应用第二变换的所述第二方导出的,并且,所述第一区块链事务和所述第二区块链事务独立于所述集合;
通过对所述第一报告中报告的所述指示应用所述第一变换,并与来自所述区块链的所述第一证明进行比较,来检查所述第一报告与所述第一证明是否一致;
通过对所述第二报告中报告的所述指示应用所述第二变换,并与来自所述区块链的所述第二证明进行比较,来检查所述第二报告与所述第二证明是否一致;以及
确定所述第一报告中的所述指示是否指示与所述第二报告中的所述指示相同的所述集合的成员资格。
2.根据权利要求1所述的方法,其中所述第一证明值和所述第二证明值中的每个证明值包括哈希值,所述第一变换和所述第二变换中的每一个包括至少一个哈希函数。
3.根据权利要求2所述的方法,其中以下两项中的一项或两项:
所述第一证明值包括第一哈希树的根,所述第一报告中报告的所述指示中的每个指示是所述第一哈希树的叶;和/或
所述第二证明值包括第二哈希树的根,所述第二报告中报告的所述指示中的每个指示是所述第二哈希树的叶。
4.根据前述任一项权利要求所述的方法,其中所述第一变换和所述第二变换是相同形式的变换。
5.根据前述任一项权利要求所述的方法,其中所述第一报告和所述第二报告中的所述指示分别包括所述第一报告和所述第二报告中报告的所述事务的事务ID。
6.根据前述任一项权利要求所述的方法,其中所述第一事务和所述第二事务中的每一个被寻址到所述第三方的公钥。
7.根据权利要求6所述的方法,其中所述第一事务和所述第二事务中的每一个包括输出,所述输出包括锁定脚本,所述锁定脚本通过以下方式被寻址到所述第三方:包括基于所述第三方的公钥的地址;以及需要所述第三方的对应签名来解锁。
8.根据前述任一项权利要求所述的方法,其中所述第一方与所述第二方之间的所述事务包括在所述第一方与所述第二方之间处理的至少部分事务,每个事务包括基于所述第二方的相应子公钥的地址,其中每个子密钥通过导出函数与所述第二方的主公钥相关,所述导出函数通过相应导出信息参数化。
9.根据权利要求8所述的方法,其中每个子密钥的所述相应导出信息包括相应事务的相应发票、销售订单或收据。
10.根据权利要求8或9所述的方法,其中所述导出信息包括所述公共子密钥共有的链码。
11.根据权利要求8、9或10所述的方法,其中每个子密钥的所述导出信息包括相应索引值。
12.根据权利要求8至11中任一项所述的方法,其中所述第二方的所述主公钥通过数字认证机构链接到所述第二方的公开身份。
13.根据权利要求8至12中任一项所述的方法,所述方法还包括:
从所述第一方接收所述集合中的至少一个区块链事务的所述相应导出信息;以及
响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,使用所述导出函数、所述第二方的所述主公钥和所述接收的导出信息来确定所述第二方的所述子公钥,并由此验证所述相应地址链接到所述第二方的所述主公钥。
14.根据权利要求13所述的方法,其中还响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,接收所述相应导出信息。
15.根据权利要求13或14所述的方法,其中所述第二方的所述公钥通过数字认证机构链接到所述第二方的公开身份,所述确定步骤还包括:使用所述主公钥和所述认证机构颁发的数字证书来验证所述第二方的所述公开身份。
16.根据前述任一项权利要求所述的方法,其中以下两项中的一项或两项:
所述第一报告包括在不同时间接收的多个第一报告消息,每个第一报告消息报告涉及所述第一方的所述区块链事务中的不同相应一个区块链事务,并且其中所述第一证明值是在时间窗口内组合涉及所述第一方的区块链事务的周期性证明的实例;和/或
所述第二报告包括在不同时间接收的多个第二报告消息,每个第二报告消息报告涉及所述第二方的所述区块链事务中的不同相应一个区块链事务,并且其中所述第二证明值是在时间窗口内涉及所述第二方的区块链事务的周期性证明的实例。
17.根据前述任一项权利要求所述的方法,其中所述第一报告和/或所述第二报告中的所述指示还包括与除所述第一方、所述第二方和所述第三方之外的一个或多个其他方一起处理的一个或多个其他区块链事务中的每个区块链事务的指示,所述集合是涉及所述第一方或所述第二方的事务的交集。
18.根据权利要求17所述的方法,其中所述第一证明值包括哈希树的根,所述第一报告中报告的所述指示中的每个指示是所述哈希树的叶;并且其中所述方法包括:
响应于确定所述第一报告和所述第二报告指示所述集合的不同成员资格,识别所述第一报告而非所述第二报告中指示存在的至少一个区块链事务;
使用所述哈希树根以及所述根与表示缺失事务的指示之间的哈希树路径,以便产生所述第二方作出虚假证明的证据;以及
在使用所述哈希树根和所述哈希树路径的基础上,向第四方提供所述证据,而不向所述第四方披露所述其他方的所述事务的所述指示。
19.根据至少从属于权利要求15的权利要求18所述的方法,其中所述证据还包括验证到所述第二方的所述公开身份的所述链接。
20.根据前述任一项权利要求所述的方法,其中所述第三方是税务机关。
21.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或多个存储器单元;以及
处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据前述任一项权利要求所述的方法。
22.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据权利要求1至20中任一项所述的方法。
23.一种计算机实现的方法,所述方法由第一方执行以证明在第一方与第二方之间进行的区块链事务集合,所述方法包括:
对于所述区块链事务集合中相应一个区块链事务中的每个区块链事务,经由链下侧信道与所述第二方执行协议,以便形成所述相应区块链事务,其中所述相应区块链事务一旦形成就包括基于所述第二方的相应子公钥的地址,所述子公钥通过导出函数与所述第二方的主公钥相关,所述导出函数通过相应导出信息参数化,并且其中所述协议包括从所述第二方接收所述导出信息和所述子公钥;以及
响应于来自第三方的请求,向所述第三方报告所述相应导出信息,从而使所述第三方能够表露所述第二方的所述地址与所述主公钥之间的链接;
其中所述区块链事务集合中的每个区块链事务一旦形成就被记录在区块链上;以及
所述方法还包括:发送至少一个单独的区块链事务以记录在所述区块链上,所述至少一个单独的区块链事务包括所述区块链事务集合的证明,所述证明包括所述集合的指示的变换。
24.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或多个存储器单元;以及
处理装置,所述处理装置包括一个或多个处理单元,其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时,执行根据权利要求23所述的方法。
25.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据权利要求23所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB2020599.3A GB2602347A (en) | 2020-12-24 | 2020-12-24 | Blockchain related verification method and system |
GB2020599.3 | 2020-12-24 | ||
PCT/EP2021/085663 WO2022136022A1 (en) | 2020-12-24 | 2021-12-14 | Blockchain related verification method and system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116745794A true CN116745794A (zh) | 2023-09-12 |
Family
ID=74532130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180087014.XA Pending CN116745794A (zh) | 2020-12-24 | 2021-12-14 | 区块链相关验证方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240062200A1 (zh) |
EP (1) | EP4268110A1 (zh) |
JP (1) | JP2024502784A (zh) |
CN (1) | CN116745794A (zh) |
GB (1) | GB2602347A (zh) |
WO (1) | WO2022136022A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11902426B2 (en) * | 2021-06-26 | 2024-02-13 | Ceremorphic, Inc. | Efficient storage of blockchain in embedded device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2581970A (en) * | 2019-03-04 | 2020-09-09 | Nchain Holdings Ltd | Method of using a blockchain |
US11539527B2 (en) * | 2019-05-29 | 2022-12-27 | International Business Machines Corporation | Peer node recovery via approximate hash verification |
-
2020
- 2020-12-24 GB GB2020599.3A patent/GB2602347A/en active Pending
-
2021
- 2021-12-14 WO PCT/EP2021/085663 patent/WO2022136022A1/en active Application Filing
- 2021-12-14 CN CN202180087014.XA patent/CN116745794A/zh active Pending
- 2021-12-14 US US18/268,866 patent/US20240062200A1/en active Pending
- 2021-12-14 EP EP21839123.3A patent/EP4268110A1/en active Pending
- 2021-12-14 JP JP2023539024A patent/JP2024502784A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
GB2602347A (en) | 2022-06-29 |
US20240062200A1 (en) | 2024-02-22 |
WO2022136022A1 (en) | 2022-06-30 |
JP2024502784A (ja) | 2024-01-23 |
GB202020599D0 (en) | 2021-02-10 |
EP4268110A1 (en) | 2023-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7350030B2 (ja) | 複数のトランザクションをブロックチェーンに記録する方法及びシステム | |
CN116194940A (zh) | 基于区块链的税收机制 | |
US20230316272A1 (en) | Divisible tokens | |
CN115997229A (zh) | 区块链上的协议 | |
US20220337427A1 (en) | Cryptographically linked identities | |
CN116210016A (zh) | 共生通证系统 | |
CN115136542A (zh) | 智能合约 | |
CN117480758A (zh) | 用于验证区块链上的通证的计算机实现的方法和系统 | |
CN116157796A (zh) | 警报账户 | |
US20220405749A1 (en) | Allocation of a digital asset using blockchain transactions | |
JP2023502057A (ja) | ブロックチェーントランザクションを使用したアイデンティティ検証プロトコル | |
CN116745794A (zh) | 区块链相关验证方法和系统 | |
CN118044151A (zh) | 传播锁定脚本 | |
CN115699676A (zh) | 自定义事务脚本 | |
CN118077172A (zh) | 使用第1层区块链来实现第2层令牌协议 | |
WO2024052065A1 (en) | Determining shared secrets using a blockchain | |
WO2023227467A1 (en) | Blockchain-based message journaling | |
CN116636180A (zh) | 事务签名标志 | |
CN117561697A (zh) | 部分基于sha的哈希函数 | |
WO2024041866A1 (en) | Blockchain transaction | |
CN116671064A (zh) | 多重签名事务 | |
CN118302989A (zh) | 签名验证 | |
CN117716365A (zh) | 使用区块链形成对等连接 | |
Wright | Digital Signatures |
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 |