CN113127908B - 链式结构地址生成、交易数据处理方法、装置及存储介质 - Google Patents
链式结构地址生成、交易数据处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN113127908B CN113127908B CN202110474716.5A CN202110474716A CN113127908B CN 113127908 B CN113127908 B CN 113127908B CN 202110474716 A CN202110474716 A CN 202110474716A CN 113127908 B CN113127908 B CN 113127908B
- Authority
- CN
- China
- Prior art keywords
- chain
- transaction
- data
- address
- private
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 230000008520 organization Effects 0.000 claims abstract description 127
- 230000007246 mechanism Effects 0.000 claims abstract description 82
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000012795 verification Methods 0.000 claims description 49
- 238000004590 computer program Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 3
- 239000000523 sample Substances 0.000 claims 2
- 125000004122 cyclic group Chemical group 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 6
- 238000012546 transfer Methods 0.000 description 11
- 238000002955 isolation Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000013515 script Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000004132 cross linking Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 108091035707 Consensus sequence Proteins 0.000 description 1
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007596 consolidation process Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
Classifications
-
- 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/602—Providing cryptographic facilities or services
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- 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
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Economics (AREA)
- Databases & Information Systems (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Development Economics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种链式结构地址生成、交易数据处理方法、装置及存储介质。所述链式结构中地址生成方法包括:确定第一机构的唯一标识;生成地址,所述地址中包含所述地址的类型以及所述第一机构的唯一标识;所述地址用于所述第一机构参与交易时使用,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离。所述交易数据处理方法包括:合并第一机构生成的UTXO交易数据链与和所述第一机构属于同一联盟链的其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链。
Description
技术领域
本公开实施例涉及但不限于计算机数据处理技术领域,尤指一种链式结构中地址生成方法、交易数据处理方法、装置及存储介质。
背景技术
联盟链是由多个机构共同参与管理的区块链,各个机构的数据相互之间是需要保密的,直接通过交易数据共识生成联盟链并不利于机构数据的独立性,也不利于无需信任的机构相互参与。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本文提供一种链式结构中地址生成方法、交易数据处理方法、装置及存储介质,所述链式结构中地址生成方法、装置及存储介质可以实现不同私有链的UTXO交易数据链逻辑隔离,所述交易数据处理方法、装置及存储介质可以实现相互逻辑隔离的UTXO交易数据链合并成为联盟链的UTXO交易数据链。
一方面,本公开提供一种链式结构中地址生成方法,包括:
确定第一机构的唯一标识;
生成地址,所述地址中包含所述地址的类型以及所述第一机构的唯一标识;所述地址用于所述第一机构参与交易时使用,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离。
另一方面,本公开还提供一种交易数据处理方法,所述方法包括:
第一机构参与交易生成交易数据,所述交易数据中包含所述第一机构的唯一标识,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离;
合并所述第一机构生成的UTXO交易数据链与和所述第一机构属于同一联盟链的其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链。
再一方面,本公开实施例还提供一种计算机可读存储介质,存储有程序指令,当该程序指令被执行时可实现前述链式结构中地址生成方法和交易数据处理方法。
再一方面,本公开实施例还提供一种区块链机构,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时可实现前述链式结构中地址生成方法和交易数据处理方法。
采用本公开实施例的链式结构中地址生成方法和交易数据处理方法,通过在地址中使用机构唯一标识,使得每个机构生成的私有链账本数据不会冲突,可以实现不同私有链或者不同子私有链的数据隔离,并可实现逻辑隔离的UTXO交易数据链的合并,有利于无需信任的机构相互参与交易,例如不同国家和地区的不同机构。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
在阅读并理解了附图和详细描述后,可以明白其他方面。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为本公开实施例一种链式结构中地址生成方法的流程图;
图2为本公开实施例一种交易数据处理方法的流程图;
图3a为本公开实施例联盟链账本数据结构示意图;
图3b为本公开实施例联盟链账本数据的一种示例图;
图4为本公开实施例一种带序号的默克尔树的示例图;
图5为本公开实施例私有链与联盟链的关系示意图;
图6为本公开实施例第一机构生成的中间交易的示意图;
图7为本公开实施例计算机装置的结构示意图。
具体实施方式
本公开描述了多个实施例,但是该描述是示例性的,而不是限制性的,并且对于本领域的普通技术人员来说显而易见的是,在本公开所描述的实施例包含的范围内可以有更多的实施例和实现方案。尽管在附图中示出了许多可能的特征组合,并在具体实施方式中进行了讨论,但是所公开的特征的许多其它组合方式也是可能的。除非特意加以限制的情况以外,任何实施例的任何特征或元件可以与任何其它实施例中的任何其他特征或元件结合使用,或可以替代任何其它实施例中的任何其他特征或元件。
本公开包括并设想了与本领域普通技术人员已知的特征和元件的组合。本申请已经公开的实施例、特征和元件也可以与任何常规特征或元件组合,以形成由权利要求限定的独特的发明方案。任何实施例的任何特征或元件也可以与来自其它发明方案的特征或元件组合,以形成另一个由权利要求限定的独特的发明方案。因此,应当理解,在本公开中示出和/或讨论的任何特征可以单独地或以任何适当的组合来实现。因此,除了根据所附权利要求及其等同替换所做的限制以外,实施例不受其它限制。此外,可以在所附权利要求的保护范围内进行各种修改和改变。
此外,在描述具有代表性的实施例时,说明书可能已经将方法和/或过程呈现为特定的步骤序列。然而,在该方法或过程不依赖于本文所述步骤的特定顺序的程度上,该方法或过程不应限于所述的特定顺序的步骤。如本领域普通技术人员将理解的,其它的步骤顺序也是可能的。因此,说明书中阐述的步骤的特定顺序不应被解释为对权利要求的限制。此外,针对该方法和/或过程的权利要求不应限于按照所写顺序执行它们的步骤,本领域技术人员可以容易地理解,这些顺序可以变化,并且仍然保持在本申请实施例的精神和范围内。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
针对现有技术中存在的问题,本公开实施例通过在地址中使用机构唯一标识,使得每个机构生成的私有链账本数据不会冲突,并且可在不泄露隐私的情况下公开验证,所以多个机构之间可以相互验证账本数据(正确性验证),在验证通过后将账本数据直接合并且共识生成联盟链。也即是由多个机构对一个机构私有链的区块数据进行验证且合并打包共识生成联盟链。每个机构的数据都是独立的,对于参与的机构仅需要验证其私有链是否正确,然后即可合并打包账本数据,有利于无需信任的机构相互参与,例如不同国家和地区的不同机构。
本公开实施例通过设定不同机构交易时相关的地址,确保每个机构产生的UTXO交易数据链是无冲突的,并且提出相关的机构与机构之间的跨(私有)链交易方式。另外,私有链账本数据可以合并成为联盟链账本数据,例如通过私有链区块头共识生成联盟链的区块数据。
具体地,可以通过在地址中包含机构具有的唯一机构ID,使不同机构生成的交易地址相互是逻辑隔离的,由此可以对机构的私有链验证正确后进行合并。某个机构私有链的交易数据输出地址包括包含该机构ID的地址,输入引用地址包括包含该机构ID的地址,或者包括跨链交易地址且跨链交易地址中的跨链机构(也即接收机构)ID为该机构ID。所以每个机构能生成逻辑隔离的UTXO链并且能够直接合并账本。此外,在其他实施例中,可以设置多个机构子ID,用于机构私有链内部的逻辑隔离,相当于机构的私有链包含多个子私有链,子私有链之间逻辑隔离,且能合并生成子联盟链。
也即机构生成的私有链的交易数据形成的UTXO链(即UTXO交易数据链),通过在交易地址中包含机构ID,使不同机构生成的UTXO交易数据链相互逻辑隔离,并通过跨链交易地址将逻辑隔离的UTXO交易数据链进行连接,联盟链账本是将逻辑隔离的私有链账本的UTXO交易数据链合并为一条更大的UTXO链,由于区块链账本数据包含交易数据,交易数据形成UTXO交易数据链,所以可以通过合并不同机构生成的私有链的账本数据,从而实现合并逻辑隔离的私有链的UTXO交易数据链为联盟链的UTXO交易数据链。
本公开实施例提供的链式结构中地址生成方法,如图1所示,包括:
步骤11,确定第一机构的唯一标识;
步骤12,生成地址,所述地址中包含所述地址的类型以及所述机构的唯一标识,所述地址用于所述第一机构参与交易时使用,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离,也即交易数据形成的UTXO链是逻辑隔离的。
由于地址中包含第一机构的唯一标识,使得第一机构生成的交易地址与其他机构生成的交易地址隔离,并且UTXO交易数据链是通过引用未花费的交易输出(交易地址)形成,所以可以实现所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离。
所述UTXO交易数据链是由未花费交易输出(UTXO)模型得到的交易数据形成的链。该UTXO交易数据链通过引用前向的一个或多个未花费输出(交易地址)变为已花费,并创建一个或多个新的未花费交易输出(交易地址),且不断循环的向后延伸,从而形成的一个可以具有多个输入和多个输出的复杂链式结构(区别于单一输入和单一输出),也即是有向无环图的结构。
采用本公开实施例的链式结构中地址生成方法,通过在地址中使用机构唯一标识,使得每个机构生成的私有链账本数据不会冲突,可以实现不同私有链或者不同子私有链的数据隔离。
在一示例性实施例中,当第一机构和第二机构分属不同的私有链时,所述第一机构管理的第一用户与第二机构管理的第二用户的交易(跨链交易)包括:第一用户与第一机构之间的第一交易(或称中间交易,输入用户地址,输出中间交易地址),第一机构与第二机构之间的第二交易(或称混淆交易2,输入中间交易地址或/和跨链交易地址,输出跨链交易地址,可选输出用户地址),第二机构与第二用户之间的第三交易(或称混淆交易1,输入中间交易地址或/和跨链交易地址,输出用户地址)。所述第一机构参与的交易包括:所述第一机构管理的第一用户与所述第一机构之间的第一交易,以及所述第一机构根据所述第一交易生成的与所述第二机构之间的第二交易,所述第二交易用于使所述第二机构生成与所述第二机构管理的第二用户之间的第三交易,以实现所述第一用户与第二用户之间的交易。
在一示例性实施例中,第一交易的输入为所述第一用户的未花费交易输出,第一交易的输出包括中间交易地址(或称中间地址)、第一用户的承诺地址和第二用户的承诺地址。
其中,所述中间交易地址至少包括所述第一机构的唯一标识。所述承诺地址是用于进行区块链交易的地址。所述承诺地址可以为用户公钥与第一系数运算结果和所述第一生成元与第二系数运算结果的和,所述运算为单向算法。
在示例性实施方式中,所述中间交易地址可以由用户生成,所述中间交易地址包括:用于表示当前地址为中间交易地址的地址类型、所述第一机构的唯一标识和唯一数(例如所引用的用户一次地址)。可选地,该中间交易地址可以用用户的一次地址替代,只需要将地址类型改为用于表示当前地址为中间交易地址的地址类型即可,因为所述用户的一次地址由机构生成并确保唯一,所以替换为中间交易地址类型后也能确保该中间交易地址是唯一的。或者,所述中间交易地址可以是任何一个唯一数,例如可以是一个随机数。
在一示例性实施例中,所述第二交易的输入包括一个或多个第一交易的引用,所述第二交易的输出包括第二机构的跨链交易地址、第二用户的输出承诺地址,所述跨链交易地址用于所述第二机构在所述第三交易的输入中引用,也即跨链交易地址用于将逻辑隔离的UTXO链进行连接。
如果发生第一机构管理的多个用户向第二用户进行转账,则第二交易的输入包括多个第一交易的引用,每个第一交易为一个第一机构管理的用户发起的交易。如果有找零,还可包括第一用户的输出承诺地址。
在一示例性实施例中,所述第一机构为联盟链成员时,所述方法还包括:合并第一机构生成的UTXO交易数据链与所述联盟链其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链。例如可以通过合并所述第一机构的私有链账本数据和所述联盟链的其他成员机构的私有链账本数据,生成所述联盟链的账本数据,实现逻辑隔离的UTXO交易数据链的合并。由于UTXO交易数据链由交易数据形成,而交易数据保存在生成所述交易数据的机构的私有链账本数据中,即私有链账本数据中包含机构生成的交易数据,因此可以通过合并账本数据实现合并账本的交易数据,从而实现交易数据形成的且是逻辑隔离的UTXO交易数据链的合并。
所述第一机构的私有链账本数据包括私有链区块头数据和私有链区块体数据,所述私有链区块头数据包含所述第一机构的唯一标识,以及对应区块体数据的指纹信息,所述私有链区块体数据包含所述第一机构私有链的交易数据的集合,交易数据通过引用未花费交易输出(UXTO模型)形成UTXO交易数据链,所述交易数据中包含所述第一机构的唯一标识。
在示例性实施例中,可以采用以下方式合并第一个机构生成的私有链账本和联盟链其他成员机构的私有链账本为联盟链账本:
合并所述第一机构的私有链账本数据中的区块头数据与所述联盟链其他成员机构的私有链账本数据中的区块头数据,形成所述联盟链的区块体数据。由于包含联盟链成员机构的私有链账本中区块体数据的指纹信息,使所述联盟链成员机构私有链账本的交易数据共同形成所述联盟链的UTXO交易数据链。
在示例性实施例中,所述第一机构私有链账本数据中的区块体数据包含的交易数据被其他成员机构验证通过,所述区块体数据对应的私有链区块头数据被其他成员机构验证通过并签名,所述私有链区块头数据中包含机构的唯一标识以与其他机构的私有链区块头数据逻辑隔离,此外,所述私有链区块头数据中还包含前一个区块头数据的指纹(区块头的散列值)和对应区块体数据的指纹(默克尔树根的散列值),对验证通过的所述第一机构私有链区块头数据与其他成员机构的被验证通过的私有链区块头数据进行合并且共识,合并的私有链区块头数据作为所述联盟链的区块体数据。
具体地,其他成员机构对第一机构的账本数据的区块体中的交易数据可以在隔离环境中验证通过后,对相应的私有链区块头数据进行标记验证通过并签名,然后可以在非隔离环境下对标记验证通过的私有链区块头数据,与其他机构同样方式验证通过的私有链区块头数据进行合并且共识(验证数据正确后共识,以得到一致且正确的数据),合并的私有链区块头数据作为所述联盟链的区块体数据。所述联盟链区块体并不包含实际的交易数据,而是私有链的区块头数据,通过私有链区块头数据映射私有链区块体数据(包含其指纹),也即实际的交易数据。通过该方式,将多个逻辑隔离的私有链数据合并成为联盟链数据。也即将一个区块体中的多个交易数据看作为一个事物,该事物有多个输入(多个交易的所有输入)和多个输出(多个交易的所有输出)组成,区块头数据中则包含该事物数据的指纹信息,所以合并私有链的区块头数据等价于合并私有链的事物数据。
在一示例性实施例中,所述方法还包括:所述第一机构验证与所述第一机构属于同一联盟链的其他成员机构的私有链账本数据中的区块体数据包含的交易数据,以及所述区块体数据对应的私有链区块头数据,其中对所述区块体数据中的交易数据的验证包括以下一种或多种:验证交易数据是否正确;输入引用地址和输出地址是否包含所述被验证机构的标识,跨链交易地址是否包含接收机构的标识(所述接收机构是指跨链交易的接收机构,例如前述第二机构),对于输入引用的跨链交易地址是否是上链联盟链的未花费交易输出(即验证是否具有联盟链的成员证明)。对于输入引用的非跨链交易地址是否是待上链联盟链的未花费交易输出(即验证是否有私有链的成员证明)或者是上链联盟链的未花费交易输出,也即跨链交易需引用联盟链上的未花费交易输出,非跨链交易可以引用联盟链上的未花费交易输出或引用私有链内的待上链联盟链的未花费交易输出。
在示例性实施例中,合并时还可以采用下述方式:将所述第一机构的账本数据中区块体中的交易数据与所述其他成员机构的账本数据中区块体中的交易数据进行合并,对合并后的交易数据进行共识,共识后的交易数据作为联盟链账本数据的区块体数据。
在一示例性实施例中,所述方法还包括:所述第一机构在其他联盟链成员机构发行代币时,验证所述其他联盟链成员机构发行的token数额,并签名token对应的发行验证数据。发行验证数据包括发行机构标识和发行数额等信息,还可以包含对应的发行地址。发行验证数据可以用于验证链上的发行交易数据所发行的token数额是否正确。
在一示例性实施例中,在上述步骤12,生成的地址包括用户地址,生成的所述用户地址包括:用于表示当前地址为用户地址的地址类型、当前机构的唯一标识和所述用户的一次地址。如果第一机构执行步骤12,则当前机构为第一机构,即所述第一机构管理的用户的用户地址中包括第一机构的唯一标识。所述用户的一次地址由所述用户的一次公钥所生成,并确保唯一。
在一示例性实施例中,在上述步骤12,生成的地址包括跨链交易地址,生成的所述跨链交易地址包括:用于表示当前地址为跨链交易地址的地址类型、当前机构(即第一机构)的唯一标识、跨链机构(例如第二机构)的唯一标识和唯一数。所述跨链交易地址用于供第二机构引用。跨链交易地址可以是随机数。通过跨链交易地址可以将逻辑隔离的UTXO交易数据链进行连接,从而使逻辑隔离的UTXO交易数据链合并后成为一条更大的UTXO交易数据链。
以第一机构管理的第一用户与第二机构管理的第二用户进行交易为例,对于生成跨链交易地址的第一机构,当前机构即为所述第一机构,所述跨链机构即为第二机构,所述第一机构和第二机构分属不同的私有链。
在一示例性实施例中,生成的所述跨链交易地址还包括:限制跨链区块高度,当前机构生成的第二交易上链后,在所述限制跨链区块高度内,由所述跨链机构引用,或者,在所述限制跨链区块高度之后,由所述当前机构引用。设置限制跨链区块高度可防止私有链冲突,在限制区块高度之前可由第二机构引用,在限制高度之后可由第一个机构引用,也即只能被其中一个机构引用一次。
本公开实施例还提供一种交易数据处理方法,如图2所示,包括:
步骤21,第一机构参与交易生成交易数据,所述交易数据中包含所述第一机构的唯一标识,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离;
所述第一机构生成的区块链账本数据包含区块头和区块体数据,所述区块头数据中包含所述区块体数据的指纹信息,所述区块体数据包含交易数据的集合,所述交易数据之间引用未花费交易输出形成所述UTXO交易数据链;
步骤22,合并第一机构生成的UTXO交易数据链与和所述第一机构属于同一联盟链的其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链。
采用本公开实施例的交易数据处理方法,通过在地址中使用机构唯一标识,使得每个机构生成的UTXO交易数据链逻辑隔离,可以实现逻辑隔离的不同私有链或者子私有链的账本合并。
在一示例性实施例中,可以通过合并所述第一机构的私有链账本数据和所述联盟链的其他成员机构的私有链账本数据的方式生成所述联盟链的账本数据。所述UTXO交易数据链由交易数据形成,因此可以通过合并账本数据实现合并账本的交易数据,从而实现交易数据形成的且是逻辑隔离的UTXO交易数据链的合并。
在一示例性实施例中,所述第一机构的私有链账本数据和所述联盟链的其他机构的私有链账本数据合并生成所述联盟链的账本数据,包括:
所述第一机构的私有链账本数据中的区块体数据包含的交易数据被其他成员机构验证通过,所述区块体数据对应的私有链区块头数据被其他成员机构验证通过并签名,所述私有链区块头数据包含机构的唯一标识,对验证通过的所述第一机构的私有链区块头数据与其他成员机构的被验证通过的私有链区块头数据进行合并且共识,合并的私有链区块头数据作为所述联盟链的区块体数据。
下面进行详细说明。
本公开实施例的联盟链或私有链的交易数据使用未花费交易输出(UnspentTransaction Outputs,简称UTXO)模型。该模型的一笔交易包含一个或多个输入和一个或多个输出,每个输入包括对前向的未花费交易输出的引用,以及对应的解锁脚本。当对前向的未花费交易输出引用解锁后,就不能够再次引用解锁,也即不能够双花。而每个输出包含相应的代币(token)数额和锁定脚本,锁定脚本需对应的解锁脚本才能够解锁,也即创建了一个新的未花费交易输出。所以一个交易数据中可以包含多个输入的解锁脚本和多个输出的锁定脚本。
本公开实施例方案的交易数据每个输出需包含全局唯一的地址,输入则是引用该唯一的地址,所以交易数据的连接是通过唯一地址的方式。而每个交易数据引用前向的一个或多个未花费输出变为已花费,并创建一个或多个新的未花费交易输出,且不断循环的向后延伸。因为每个连接都是唯一的地址,所以会形成一个有向无环图(Directed AcyclicGraph,DAG)的结构,即UTXO交易数据链,下文简称UTXO链。
本方案中,每个机构之所以能够生成与其他机构无冲突的账本数据,并且每个机构生成的账本数据能够进行合并,是利用了唯一地址的特点,通过在地址中包含机构具有的唯一机构标识(ID),从而使每个机构生成的账本数据的地址是逻辑隔离的,也即每个机构生成的UTXO链是隔离的,所以账本数据可以直接合并也不会有任何冲突,但跨链交易需要隔离的逻辑链相互连接,所以需要相关的交易方式。
本公开实施例可以使用承诺地址的交易方式,即将用户的一个交易拆分为发送者与机构和机构与接收者的两个交易,或者拆分为发送者与机构A、机构A与机构B、机构B与接收者的三个交易,相当于跨了私有链A和私有链B;如果跨多个私有链,也即多个机构,则是拆分为更多个交易。
例如,如果是在一个机构内交易,则可包括发送者与机构的中间交易和机构与接收者的混淆交易1;如果是跨链交易,则可包括发送者与机构A的中间交易、机构A与机构B的混淆交易2和机构B与接收者的混淆交易1,其中可以加入多个混淆交易2(加入的混淆交易2的输入为前一个混淆交易2输出的跨链交易地址),也即可以跨多个链(机构)交易。
上述中间交易是由用户(发送者)生成,输入引用的是未花费交易输出的用户地址,其中包含解锁脚本,输出是中间交易地址,以及接收用户的承诺地址集合;混淆交易是由机构生成,输入引用的是多个中间交易的输出地址(或混淆交易2输出的跨链交易地址),输出包括第二机构的跨链交易地址、第二用户的输出承诺地址,以及包含多个锁定脚本,锁定脚本对应的是接收者的用户地址并通过输出承诺地址相关联。
中间交易和混淆交易的数额都可使用同态加密方式保密,例如使用佩德森承诺(Pedersen Commitment),并且可以通过范围证明(Range Proof)证明所承诺的数额在一定范围内,以避免出现负数或溢出。所以可以通过地址承诺和同态加密保护用户数据隐私,同时其他人可以对交易进行验证。
上述混淆交易2和混淆交易1类似,区别包括其中混淆交易2的输出是跨链交易地址,通过该地址相当于标识了跨链的行为,使机构之间逻辑隔离的UTXO链相连接。交易所包含的合约只能由相关用户和机构解密查看,其他机构和用户都不能解密因此也不能验证。能够公开验证的包括但不限于以下一种或多种:验证交易的地址规则是否正确(例如输入引用地址和输出地址是否包含待验证机构的标识,和/或,跨链交易地址是否包含接收机构的标识);验证交易数据是否正确(包括但不限于以下一种或多种:所引用的未花费交易输出是否存在、有无双花、pedersen承诺(同态加密)的交易数额是否正确、解锁脚本是否有效、承诺地址是否正确等);验证输入引用的跨链交易地址是否是上链联盟链的未花费交易输出,验证输入引用的非跨链交易地址是否是待上链联盟链的未花费交易输出或者是上链联盟链的未花费交易输出。因为合约是否正确只需要相关用户验证即可,其他用户或机构都不需要关心,因此后续在验证UTXO链正确且符合规则后便能够直接合并账本,也即合并逻辑隔离的UTXO链。
机构的私有链交易数据中涉及的地址包含但不限于以下地址的一种或多种:发行地址、回收地址、用户地址、中间交易地址、跨链交易地址等,不同类型的地址长度可以不同,但都包含机构对应的唯一机构ID。
发行地址和回收地址格式例如可以是“地址类型+机构ID+唯一序号”,比如发行地址A2300001,其中A是发行地址类型,23是机构ID,00001是机构发行token的唯一序号。通过序号可以方便查找对应机构所有的发行或回收交易。发行或回收的token数额是明文,但只能知道联盟链内所有机构的token总额,因为跨链交易的token数额并不公开。也即联盟链内的token总量是公开且确定的,但某个私有链内的token总量是不确定的。
用户地址格式例如可以是“地址类型+机构ID+交易方式(可选)+一次地址”,所述一次地址是由用户的一次公钥生成的地址,例如通过用户签名公钥派生一次公钥后,再进行哈希运算得到的地址即为一次地址,例如:一次地址Lb=HL(Qb),其中Qb是用户的一次公钥,可称为一次地址对应的公钥,Qb=kb*Pb,Pb是用户的签名公钥,kb是中间值,HL是地址散列函数。以用户地址为12317466924e4f854afd8e494fa657a4为例,其中1是用户地址类型,23是机构ID,1是承诺地址交易方式,其余是一次地址。该一次地址需对应一个用户一次公钥,引用地址的解锁脚本需给出一次公钥或承诺地址运算(也即承诺地址与用户一次公钥相关联)得到该一次地址,并且需用该一次公钥所对应的私钥签名完成解锁。本示例是通过机构生成的混淆交易输出唯一的用户地址,也即用户的一次地址需保证在机构内部唯一。但为避免不同机构生成的用户一次地址相同,所对应的一次公钥和私钥也相同,所以HL地址散列函数可以加上机构ID,即Lb=HL(ID,Qb),这样不同机构即使生成了相同的用户一次地址Lb,所对应的一次公钥Qb和私钥也是不同的,所以不同机构相互也无法解锁对方相同的用户一次地址的输出。
中间交易地址格式例如可以是“地址类型+机构ID+交易方式(可选)+唯一数”,比如42317466924e4f854afd8e494fa657a4,其中4是中间交易地址类型,23是机构ID,1是承诺地址交易方式,其余是唯一数。唯一数可以是随机数,只需保证(至少在机构内部)是唯一的,可选地,可以使用所引用的一次地址作为中间交易地址,并替换地址类型,以得到唯一的中间交易地址,即保证私有链每个交易的输出地址都是唯一的。中间交易地址是机构的特殊地址,只需对应的机构签名即可完成解锁,可以输出到承诺地址相关联的用户地址。
跨链交易地址格式例如可以是“地址类型+机构ID+跨链机构ID+交易方式(可选)+唯一数”,比如623241c402262890e3,其中6是跨链交易地址类型,23是当前机构ID(生成未花费交易的机构),24是跨链机构ID,1是承诺地址交易方式,其余是唯一数。该地址能够表明所对应的交易数据是由机构23生成且其中某个输出是该地址,而该地址只能被机构24生成的交易引用且只能引用一次,只需对应的机构(本例中为机构24)签名即可完成解锁,可以输出到承诺地址相关联的用户地址。该输出对应的pedersen承诺数额,可由机构23秘密告知机构24,所以机构24可以知道所承诺的数额明文。该跨链交易方式中,机构23生成的交易不能引用该地址,只能是机构24生成的交易输入引用且只能引用一次,保证双方不会生成冲突的交易,同时相应的token数额从机构23转移到机构24,其他机构可以验证交易正确但不知道所承诺的数额明文。
在一示例性实施例中,跨链交易地址格式例如可以是“地址类型+机构ID+跨链机构ID+限制跨链区块高度+交易方式(可选)+唯一数”,比如623241e1c402262890e3,与上一示例中的跨链交易地址的区别在于增加了限制跨链区块高度,在本示例中为1e(再例如可以是00),可以为十六进制。该限制跨链区块高度可以有两种使用方式,第一种,如果该限制跨链区块高度为第一预设值(例如为0),则表示机构23生成的交易不能引用该地址,同时只能是机构24生成的交易输入引用且只能引用一次,以保证双方不会生成冲突的交易,也就是说,机构23和其它机构都不能够引用该地址。第二种,如果该限制跨链区块高度不为第一预设值,比如为1e(即m=30),则当前机构生成的第二交易上链后,在所述限制跨链区块高度内,由所述跨链机构引用,或者,在所述限制跨链区块高度之后,由所述当前机构引用。例如该交易如果在联盟链的区块高度为n上链,即联盟链区块高度为n包含该交易数据,则机构24所引用的交易必须在联盟链区块高度为n+m之前上链,否则n+m之后只能由机构23所引用,也即需在联盟链高度为n+m之前完成跨链,否则不能跨链只能由机构23引用(非跨链)。相当于限制了机构24引用该跨链交易的时机,即在第n个区块起始的m个区块这个窗口范围内完成跨链交易,也就是说,在第n+m个区块之前只能机构24引用,在n+m个区块之后只能机构23引用,总之该交易只能被机构23或机构24引用一次。
通过跨链交易地址可实现逻辑隔离的私有链进行互通,该地址只能被对应的跨链机构生成的交易引用且只能引用一次,所以能够确定且无冲突的实现跨链交易,并能将账本数据进行合并(逻辑隔离UTXO链之间的连接)。
上述示例中,各地址格式中的取值仅为示例,在其他实施例中可以使用其他取值。
上述示例中,地址格式的要求仅为示例,在其他实施例中可以有相应的变化,包括但不限于增加信息,或者减少信息,例如减少交易方式信息等。
在示例性实施例中,如果存在其它地址也可使用上述方式或类似方式生成,以确保机构生成的私有链交易数据形成的UTXO链不会冲突,以便可以进行合并。
每个机构内的地址是由机构自己保证唯一。每个机构的用户数据是由机构自己加密保护。例如上述跨链交易输出的承诺数额,可由机构23告知机构24否则机构24不会知晓,同时混淆交易1或2都是由机构生成,输出的承诺数额也是机构生成,所以只有机构和对应用户知晓。并且每个机构只能处理本机构管理的用户的数据,输出不能包含不包含自己机构ID的地址,输入引用除了包含自己机构ID的地址外,只能是跨链交易地址且地址中的跨链机构ID指明了自己。所以各个机构相互之间可以验证所生成的私有链账本数据是否正确,通过前述生成地址的方法(交易中输出的地址是新生成的唯一地址,每个地址都包含机构ID),以及引用地址的方式(引用地址只能引用本机构ID的地址,或者引用的跨链交易地址中指明了本机构ID,或者引用的跨链交易地址中指明了本机构的ID且在规定的限制跨链区块高度之前)确保交易数据不会冲突,以便能够通过私有链账本数据直接合并成为联盟链账本数据,也即将交易数据形成的UTXO链合并为一条更大的UTXO链。
通过在地址(包括离线交易地址)中包含每个机构具有的唯一机构ID,并且使用该包含机构唯一ID的地址参与交易(引用自己ID的地址或引用跨链交易地址中指明自己ID的地址),使机构生成的交易数据是逻辑隔离的,所以可以对机构的私有链验证正确后进行合并。某个机构的私有链包含的交易数据输出地址包括包含该机构ID的地址,输入引用地址包括包含该机构ID的地址外,或者为跨链交易地址且跨链交易地址中的跨链机构ID为该机构ID。所以每个机构能生成逻辑隔离的UTXO链并且能够直接合并账本。
私有链或联盟链的区块数据(账本数据即是依次连接的区块数据),包括区块头和区块体,其中区块体包含了事务数据集合,区块头数据中包含前一个区块头数据的指纹(区块头的散列值)和对应区块体数据的指纹(默克尔树根的散列值),通过区块头则能验证区块体的事务数据是否存在(成员证明)。每个机构的私有链验证通过后,每个机构的私有链直接合并可以是区块体中的交易数据直接合并打包,然后共识生成联盟链区块头(方式1);或者可以是通过每个机构的私有链区块头数据,共识生成联盟链区块体数据,即生成的区块体包含了私有链的区块头集合,联盟链的区块体数据可以顺序依次包含私有链的区块头数据。该方式相当于联盟链的区块体是中间层,即私有链区块头作为中间层数据,指向链下的私有链区块体账本数据,私有链区块体账本数据是联盟链的链下交易数据账本(方式2),如图3a和3b所示,联盟链区块数据的结构如图3a所示,一种示例如图3b所示。
每个机构的私有链验证通过后,对私有链的区块头数据进行共识得到联盟链的区块数据,联盟链的区块数据顺序包含私有链的区块头数据。该联盟链具有私有链区块头作为中间层数据,所指向的(私有链区块体)是联盟链的链下交易数据账本。私有链的区块头包含对应机构ID和交易数量并经过机构的签名。联盟链的区块头则包含区块体中私有链区块头的数量并经过多个机构的联合签名。所以同理可以将多个联盟链的中间层数据(私有链区块头)进行合并,从而成为一个更大的联盟链数据。
机构可以自行生成私有链,如果不需要跨链交易,可以不参与联盟链。如果需要跨链交易,则可以加入联盟链,并且无需作任何更改,其他机构验证私有链后即可加入联盟链,但加入时可能需要包含大量私有链的账本数据,所以使用区块头的合并方式(上述方式2)更有利于控制联盟链的大小。由于每个机构的私有链账本数据都是UTXO链,则可以通过DHT(Distributed Hash Table,分布式哈希表)使用连接存储的方式分布式存储并验证大规模的账本数据。所以也即每个机构的私有链可以使用DHT方式进行存储和验证,也就能够验证每个机构的私有链账本数据是否正确,如果验证正确,通过私有链的区块头数据共识生成联盟链区块数据。因为每个私有链数据都是UTXO链,具有前后依赖关系,所以打包某个私有链的区块头数据也必须依次包含。如果验证错误,则后续不能加入联盟链。如果没有跨链交易,这时机构生成的私有链即使没有共识生成联盟链区块数据,也不会对其他机构造成影响,所以机构内部可以使用高并发短延迟的共识算法生成私有链;如果存在跨链交易,所生成的私有链通过验证并共识生成联盟链区块数据后,其他机构才能够引用跨链交易地址。所以联盟链可以使用延迟较长的共识算法,所影响的只是输入引用跨链交易地址的交易完成时间。
上述通过私有链区块头共识生成联盟链的原因是,即使将私有链区块中的全部交易数据打包生成联盟链的账本数据,也是确定且无冲突的,是将每个机构逻辑隔离的UTXO链合并成为一个更大的UTXO链,所以其意义并不只是简单的对区块头数据进行打包,而是要将每个机构生成的交易数据共同打包成为更大的UTXO链,所以生成的联盟链区块体数据可以只是中间层,联盟链区块体数据指向链下私有链区块体账本数据。因此所有机构生成的交易数据都可以放在一个DHT中,通过联盟链的区块头对其进行验证,每个交易数据的(联盟链)成员证明都包含有两个验证路径和一个私有链的区块头数据(成员证明是通过区块头验证某个数据是否是区块体所包含的数据),例如包括通过私有链区块头中的第一Merkle Root(默克尔根)验证交易数据,以及通过联盟链区块头中的第二Merkle Root验证私有链的区块头数据。也即具有两层的成员证明,通过第一层成员证明证明交易包含在私有链区块中,通过第二层成员证明证明私有链区块头包含在联盟链区块中,所以最终证明交易包含在联盟链区块中。所以该合并方式实际是将私有链的交易数据合并成为一条更大的UTXO链,只是使用了私有链的区块头数据作为中间层。虽然私有链账本数据已经具备可以在不泄露隐私的情况下公开验证,但是机构还可以使用TEE(Trusted ExecutionEnvironment,可信执行环境)对账本数据进行隔离验证,因为机构之间只需相互验证账本后通过私有链区块头共识生成联盟链,并不一定需要获取私有链的账本数据。但是在跨链交易时,比如机构B引用了机构A的交易T中的跨链交易地址,则机构A需要将交易T以及所对应的联盟链成员证明发送给机构B进行验证,并且该交易数据也是保密的,机构A只告知机构B对应的承诺数额明文。所以机构的私有链账本数据完全可在机构自己控制下进行多层次的保护,仅需要在跨链交易时出示对应的交易数据。所以有利于无需信任的机构相互参与。
默克尔树(Merkle Tree)是一种二叉树,底端的叶子节点是数据(Data)的哈希值,中间节点对应的是两个子节点运算得到的哈希值。如果右边的子节点不存在则复制左边子节点的值,以此类推,最后生成顶端的根节点哈希值。可以看出如果底端的叶子节点数量和位置已知,则每个叶子节点到根节点的路径是固定的,也即路径序号的位长和奇偶是固定的。一个叶子节点的验证路径是从该叶子节点到根节点路径上的兄弟节点,所以可以用Merkle Tree验证叶子节点和对应的位置。也即当区块体中Data的数量和位置已知,Data所对应的验证路径的深度和方向是固定且已知的,不能用不同的路径替代,并且可以在计算哈希值时在路径数据之前添加路径所对应的序号。例如一个区块中包含n>0个Data,具有深度d=ceil(log2 n)且d>0,所以Hash(Data0)的路径序号是2^d,Hash(Data i)的路径序号是i+(2^d)。计算叶子节点的数据(Data)哈希值时可以包含数据的路径序号i+(2^d),计算中间节点的哈希值时可以包含节点所对应的路径序号。每运算一次则向上一层所对应的序号除以2(如图4中二进制数序号右移1),序号的奇偶则表示当前路径的右和左方向,直到序号等于1停止,也即得到Merkle Root。所以数据的路径序号二进制位数也即表示路径的高度。验证路径的序号则是当前路径序号与1异或,生成的区块头中则包含Data的数量n,并且可在Data数据之前添加对应的累计递增序号。因为区块头之间依次连接,所以当前区块中Data 0的累计递增序号也就是之前所有区块头中数量n的和。所以可以通过Merkle Tree验证数据Data的序号(也即位置)是否正确。在本公开实施例中,通过设置Merkle Tree每个路径具有对应的序号,以及每个数据Data具有唯一的序号,并且数据Data对应的路径序号和长度已知,因此可以结合区块头中的累计数量验证数据Data的序号以及验证路径和路径序号是否正确。一种包含序号的默克尔树示例如图4所示,图中10、11、100、101、110、111即为二进制数的路径序号,该路径序号可以通过所验证的数据位置(序号)计算得到,所以能够实现数据的成员证明和验证数据的位置是否正确。
对于加入联盟链的机构,由其他机构验证私有链区块数据中的交易,包括输入引用的跨链交易地址是上链联盟链的未花费交易输出(即具有联盟链的成员证明),输入引用的非跨链交易地址是待上链联盟链的私有链的未花费交易输出(只有私有链的成员证明)或者是上链联盟链的未花费交易输出。如果区块中的所有交易验证成功,则验证机构对区块头进行签名,并且验证和签名的过程都可以在可信执行环境TEE隔离执行,可以仅返回标记为有效并经过签名的区块头,当超过预设个数个验证机构验证通过,则验证为有效的区块头将按共识顺序上链联盟链,联盟链区块头则具有多个机构的联合签名。例如私有链和联盟链都采用PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识算法,不同之处在于私有链为一节点一票,当超过2/3节点数验证交易数据正确且投票后,该交易数据可以上链私有链账本;联盟链为一机构一票,当超过2/3机构数验证私有链区块头所对应的区块体数据正确且投票后,该私有链区块头数据可以上链联盟链账本。上链后私有链的区块头具有联盟链的成员证明,对应的交易数据也就能够具有联盟链的成员证明。
共识是以私有链区块数据为单位,而不是以交易数据为单位(根据UTXO交易的特征可以将一个区块看作包含多个输入和多个输出的一个事物数据)。超过比如2/3机构验证且共识通过即上联盟链。也即机构是联盟链的多个用户,而用户(机构)提交的“用户数据”是私有链的区块数据,通过可合并的区块数据(或者可合并的事物数据)共识得到联盟链。
本公开实施例方案的token具有标识,不同联盟链发行不同标识的token,一个机构A的私有链,可以同时参与两个或两个以上个不同的联盟链。不同联盟链发行的token具有标识。比如联盟1使用token1,联盟2使用token2,机构A可以发行token1,需经过联盟1验证(联盟1只需要验证机构A的私有链token1与自己具有跨链交易)且联盟1并不验证机构A发行的非token1,也不验证机构A的非token1交易,比如机构A生成的非token1与非联盟1进行交易;同理机构A可以发行token2,需经过联盟2验证(联盟2只需验证机构A的私有链token2与自己具有跨链交易)且联盟2并不验证机构A发行的非token2,也不验证机构A的非token2交易,比如机构A生成的非token2与非联盟2进行交易。所以机构A的私有链可以同时参与联盟1和联盟2,联盟1和联盟2只需要分别验证token1和token2交易的边界即可,能保证token1和token2分别在联盟1和联盟2内是确定的。同时隔离验证后生成联盟链能保证不泄露任何信息给其他联盟,因为跨链也只在本联盟内跨链,并且交易数据也不会有任何冲突。
如图5所示。图5中,每个机构管理一个自己的私有链(一个私有链可以包含多个节点),各机构的私有链是独立的、逻辑隔离的。机构可以同时参与多个联盟也可以不参与联盟。但如果要跨链交易,则需参与对应的联盟才能跨链。逻辑隔离的UTXO链通过跨链交易地址相连接。联盟内发行机构发行的token是确定的,只能在联盟内流转。例如非联盟机构4的私有链4如果要流转token1,则可加入联盟链1。图5中,机构6私有链6加入了联盟1和联盟2,机构6私有链6可以与联盟1内的机构流转token1,同理可以与联盟2内的机构流转token2,联盟1内的token1与联盟2内的token2总量都是确定的,并且可由联盟内的专门机构发行或回收token,联盟内的其他机构只流通token,所以私有链6可以同时参与合并为联盟链1和联盟链2。
私有链发行或回收交易的token数额都是明文,机构私有链上链联盟链之前可对机构中的token总额进行验证。所以需要某个机构发行的交易能够获得联盟链所有机构的自动验证方式。发行地址是发行交易的特殊输入地址并且唯一,没有引用的交易数据。所以可以由所有参与的机构签名一个链外的发行验证数据,该发行验证数据并不属于账本数据,即使修改也不会对私有链或联盟链产生改变,其作用仅在验证机构私有链时能对发行交易进行自动验证。例如当机构1为联盟链成员时,机构1发行token时,联盟链其他成员机构验证机构1发行的token数额,并签名对应的发行验证数据。该发行验证数据包含发行机构ID和发行数额等信息,还可以包含对应的发行地址,并且需要所有参与机构的联合签名,可以通过联盟链的公共服务提供链外的发行验证数据。联盟中的其他机构验证机构1发行的token数额(验证是否具有发行token数额的资格,例如验证是否有等价的信用资产),并签名该token对应的发行验证数据,验证通过并签名后,该私有链数据能够上链联盟链。运行中的私有链需要发行token时,也需要联盟链所有机构共同签名发行验证数据,才能够生成发行交易。同理,机构1也能够在其他联盟链成员机构发行token时,验证该成员机构发行的token数额,并签名token对应的发行验证数据。
本公开实施例方案可实现每个机构都能生成不会冲突的私有链账本数据,账本数据可通过地址承诺和同态加密或者其它加密方式(例如对称加密保护转账合约,其他机构并不能解密验证合约数据)进行保密,所以机构之间可以相互验证账本数据,并且可以使用具有可信执行环境的DHT集群对账本数据进行隔离验证,因为通过连接存储可以将庞大的UTXO链交易数据,通过键值方式在DHT集群中分布式存储和验证,每个节点只需存储和验证部分账本数据,就能共同验证整个账本数据。该DHT集群可以是联盟链的机构共同参与,能够共同验证每个机构的私有链账本数据,然后对私有链的区块头共识生成联盟链。并且通过可信执行环境TEE对私有链账本数据隔离验证,确保机构私有链的数据安全。该方式生成的联盟链相当于私有链区块头作为中间层数据,所指向的(私有链区块体)才是联盟链的链下交易数据账本。所以本公开方案能很大程度地保护机构数据安全,有利于无需信任的机构相互参与联盟链,并且是每个机构独立生成自己的私有链,验证通过后才使用私有链区块头共识生成联盟链,不会对机构内部的业务造成影响。
在示例性实施例中,还可以将多个联盟链的中间层数据(私有链区块头)进行合并,从而成为一个更大的联盟链数据。因为跨链需要等待联盟链生成后才能够进行,所以局部联盟链能够更快速的进行跨链。因为都是逻辑隔离的UTXO链账本数据,并且规定了跨链的连接方式,所以不会受到合并方式的影响。
如果需要更加透明的账本数据,可以直接合并私有链的交易数据,然后共识生成联盟链的区块头,账本数据可以公开验证和审查。因为交易数据也是加密保护的,只有对应的用户和机构才能够解密交易数额和合约明文等信息,其他人可以对账本数据进行验证,但并不知道交易信息。也即合约是机构内部的应用,私有链账本记录相应的结果,联盟内的不同机构可以根据不同业务自行处理不同的合约,联盟链账本验证私有链交易结果是否正确且合并账本。因为机构的私有链账本的交易数据是一个UTXO链的交易数据,机构内部的合约与该机构私有链账本的交易数据是分离的,交易数据中加密保护的合约信息只有对应的用户才能解密查看,并能验证合约结果是否正确。其他人和其他机构可以验证该机构私有链交易数据形成的UTXO链是否正确,也即token流转是否正确,合并后的联盟链也就能保证联盟内的token是正确的。
以机构1的用户Alice需要转账给机构2的用户Bob为例说明跨链交易的过程,包括以下步骤:
1、用户Alice生成与机构1的中间交易(例如图5中交易1);
中间交易输入引用Alice的未花费交易输出,输出机构1的中间交易地址Saddr,并包含Alice的承诺地址和Bob的承诺地址,还可包括加密的转账合约数据,用户发送交易的转账合约中包含转账给Bob的所属机构2的信息(可以是机构名称或标识),输出承诺数额是输入承诺数额的和。其中输出中间交易地址需确保唯一,所以可以使用所引用的用户地址(机构保证唯一)并替换类型为中间交易地址类型。因为机构1是不能够管理Bob的,所以机构1验证中间交易数据时,需要查询机构2用户Bob状态是否正常以及公钥是否正确,比如机构1将需要输出的跨链交易地址、输出的承诺地址(由Bob的公钥生成)、输出的承诺数额、跨链备注标签和跨链备注信息发送给机构2,机构2验证通过后对打包的跨链交易地址、输出承诺地址、输出承诺数额、跨链备注标签和加密的跨链备注信息签名后连同所使用的解密密钥一起返回给机构1。机构1验证后该打包信息即可作为机构1生成的混淆交易2的跨链输出。也即机构1生成的跨链输出的信息是经过机构2确认且签名的。
例如,Alice获取Bob的签名公钥Pb或Bob的派生公钥b*Pb、以及机构1的中间地址Saddr。Alice生成随机数ra1,ta1,rb1,tb1,ra1,ta1,rb1,tb1∈(0,n),并生成所有接收者的承诺地址集合,包括Alice的承诺地址Ca1=ra1*Pa+ta1*H和Bob的承诺地址Cb1=rb1*Pb+tb1*H。然后生成一个中间交易,交易输出地址为Saddr,该地址是特殊的中间交易地址,只能使用该地址转账到关联了用户承诺地址(Ca1和/或Cb1)的输出地址上。Alice使用中间交易所引用的未花费交易输出地址对应的私钥对中间交易进行签名并生成解锁脚本。Alice提交中间交易,并告知机构1承诺地址的系数ra1,ta1,rb1,tb1,机构1对承诺地址进行验证。
用户的承诺地址可采用以下方式生成:C=r*P+t*H,其中C为用户承诺地址,P是该用户的签名公钥,H为第一生成元,r为第一系数,t为第二系数。在其他实施例中,可以使用用户的签名派生公钥b*P计算承诺地址,即C=r*(b*P)+t*H,其中b是第四系数。r,t,b都是随机数,且r,t,b∈(0,n)。签名派生公钥(简称派生公钥)由用户的签名公钥P与系数b运算得到,还可以出示一个生成参数a,其中b可以是由a与用户生成密钥s运算得到的哈希值,比如b=H3(s,a),其中H3是散列函数。所以用户可以根据生成参数a得到自己的派生公钥,但只知道派生公钥和生成参数,无法推断是由谁的签名公钥运算得到。用户签名公钥P=d*G,d是对应的私钥,G是椭圆曲线上的一个生成元。H是椭圆曲线上的另一个生成元,且所有人不知道H相对于G的私钥,即无法找到一个标量x,使得H=x*G。承诺地址减去t*H,即可得到用户签名公钥P生成的一次公钥,例如C-t*H=r*P。
2、机构1生成混淆交易1或生成混淆交易2;
如果Bob是机构1的用户,则是生成混淆交易1(用户与机构之间的交易),其中引用Alice与机构1的中间交易输出地址Saddr,输出包括Alice的找零输出和Bob的转账输出,输出的用户地址由机构1保证唯一,并与输出承诺地址相关联,输出的数额是通过中间交易的转账合约得到,并使用承诺数额方式。
例如,在交易的多个输入中有一个输入引用Saddr,并在输入中包含需要转账的承诺地址,比如Ca1和Cb1,该承诺地址只能是所引用Saddr的中间交易所包含的承诺地址集合中的元素,并分别为每个承诺地址添加一个由S生成的承诺地址和签名,比如Ca1添加Ca2和签名,组成输入承诺地址对(Ca1,Ca2),其中Ca2=ra2*Pa+ta2*H。同样Cb1添加Cb2和签名,组成输入承诺地址对(Cb1,Cb2),其中Cb2=rb2*Pb+tb2*H,ra2,ta2,rb2,tb2是由S生成的数值。所有的输入承诺地址与所有的输出承诺地址通过运算相等。
如果Bob是机构2的用户,则是生成混淆交易2(机构与机构之间的交易,例如图5中交易2),与混淆交易1相比,只是Bob的输出不是用户地址,而是跨链交易地址。该地址包含生成该混淆交易2的机构ID(本例中为机构1),以及跨链机构ID(本例中为机构2)。输出信息是机构2返回的签名打包信息,即包括跨链交易地址、输出承诺地址、输出承诺数额、跨链备注标签(可选)、加密的跨链备注信息(可选)以及机构2的签名。Alice的加密备注信息中可以包含机构2返回的所使用解密备注信息的密钥和随机数r2。混淆交易2输出的跨链交易地址与中间交易输出的中间交易地址类似,同样包含了用户的承诺地址和承诺数额,可以作为下一个混淆交易(如混淆交易1或混淆交易2)的输入,所引用的机构签名即可完成解锁,并且中间可以包含多个混淆交易2,实现跨多个机构交易。并且所引用的跨链交易的输出中已经包含跨链备注标签(r2*G和r2*Pb,其中Pb是用户Bob的公钥)和加密的跨链备注信息,所以Bob可以找到该标签并解密,解密的密钥可以在备注信息中(同样Alice的解密密钥也在备注信息中)。
例如,如图6所示,混淆交易2的输出包括Alice的找零输出地址即Alice的一次地址:La=HL(Ca3-va*H),Alice的输出承诺地址Ca3=(ra1+ra2)*Pa+va*H,CValueA即Alice的输出承诺数额,包含Range Proof证明。混淆交易2的输出还包括跨链交易地址,Bob的输出承诺地址Cb3=(rb1+rb2)*Pb+vb*H,跨链交易的输出承诺数额valueB,包括Range Proof证明。交易的附加信息包括参数t,t是所有输入承诺地址的H系数之和减去所有输出承诺地址的H系数之和。所以可以验证输入承诺地址之和与输出承诺地址之和加t*H是否相等。也即Ca1+Ca2+Cb1+Cb2+…是否等于Ca3+Cb3+…+t*H,其中t=ta1+ta2-va+tb1+tb2-vb+…。在本示例中,混淆交易2中还包括备注,备注的标签为r*G或r*Pb,其中r=Hs(sa,Cb1)mod n,Hs是散列函数,sa是Alice的加密密钥。S随机生成一个加密密钥es,使用es加密跨链转账备注信息,使用ea加密随机工作密钥es,其中ea=Hs(sa,r*Pb)为Alice的加密密钥(式中Pb可以用G代替),备注信息可以是(Alice)跨链交易(跨链机构ID,Bob)和转账给Bob的数值(value)。
3、机构2生成混淆交易1;
机构1将生成的混淆交易2以及对应上链信息即交易在联盟链中的成员证明出示给机构2,机构2验证相关数据正确后,生成混淆交易1(例如图5中交易3),其中包含输入引用的跨链交易地址。所生成的Bob的备注标签使用所引用的跨链备注标签(r2*G和r2*Pb),备注信息中包含对应的跨链备注信息的解密密钥。Bob可以根据Pb对应的私钥db验证db*(r2*G)=r2*Pb,所以Bob可以找到该跨链备注信息并解密,然后Bob可以验证输出承诺数额是否正确。
所以跨链交易的发送者Alice(包括机构1)可以查看整个过程的信息并验证,确认接收者Bob收到了相应的数额。但Alice或机构1都不知道Bob的输出地址,而Bob或机构2都不知道Alice的输入地址,也不知道Alice的输入数额,保护了机构和用户数据的隐私。双方可以知道跨链交易地址,该地址只是跨链交易的输入和输出地址,并不是用户的输入和输出地址。并且跨链输出的信息经过双方机构的签名(交易数据中包含的输出信息经过机构2签名,交易数据经过机构1签名),所以能确保跨链输出信息的正确性。
同理离线交易也都具有机构ID,比如离线交易地址是(机构ID+离线交易签名公钥),所以不同机构的用户在离线情况下也能进行交易。比如机构1的用户Alice生成中间交易,合约为Alice的离线交易请求,包含Alice的离线交易签名公钥和派生公钥,可延迟参数为Alice离线发送交易的日志信息;机构2的用户Bob同样生成离线交易请求,包含Bob的离线交易签名公钥和派生公钥。
Alice与Bob生成线下的离线交易数据,日志信息是发送者Alice的离线交易地址,Bob的承诺地址和nonce随机数以及Alice离线交易签名私钥的签名。线下的离线交易数据需具有交易双方用户的签名。Alice同步离线交易数据给机构1,离线发送交易日志作为离线交易请求合约的可延迟参数,加密存储在Alice与机构1的在线混淆交易的备注信息中,与机构1的转账数额为Alice离线发送交易的花费总额。
同理Bob同步离线交易数据给机构2,离线接收交易日志作为离线交易(记录)的备注信息加密,备注中的承诺地址之和作为离线交易(记录)输入中的承诺地址,并与机构2生成的附加承诺地址组成输入承诺地址对,输出与在线混淆交易一致,但可以不需要混淆,因为离线交易(记录)只有机构和一个用户,并不与其他用户相关联,所以不混淆也不会泄露用户隐私。离线交易(记录)的输入数额是机构2的未花费交易输出,所以是机构2转账给用户Bob,输出数额是Bob离线接收交易的收入总额。
离线交易双方用户如果是在同一个机构,则机构可以直接处理双方的离线交易数额;如果是在不同的机构,则还需要机构之间相互确认,由离线发送交易的机构跨链转账给离线接收交易的机构。所以联盟链的用户也可以线下进行离线交易,并且在链上完整记录日志信息,如果存在双花则由机构对用户进行追责。
本公开实施例将用户的一个交易数据拆分为两个或多个交易数据。比如发送者与机构的中间交易,以及机构与接收者的混淆交易1。可以在混淆交易1输出中包含跨链交易地址(混淆交易2),对应的跨链机构生成的混淆交易1输入引用该跨链交易地址,跨链交易地址的输出信息可以包含机构2签名,也即该输出信息获得双方机构的确认。所以在中间可以包含一个或多个混淆交易2,实现跨一个或多个链(机构)交易。混淆交易2可以包含中间交易地址(非用户地址),可以是非跨链交易输出。
本公开一示例性实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现前述一个或多个示例性实施例提供的方法,例如,执行如图1至图2所示方法中的一个或多个。所述计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。
本公开一示例性实施例还提供了一种计算机装置(或称计算机设备)。所述计算机设备可包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时可实现本公开中私有链机构所执行的操作(例如实现图1或图2方法)。下面通过一个示例对上述计算机装置的结构进行说明。
如图7所示,在一个示例中,计算机设备可包括:处理器101、存储器102、总线系统103和收发器104,其中,该处理器101、该存储器102和该收发器104通过该总线系统103相连,该存储器10用于存储指令,该处理器101用于执行该存储器102存储的指令,以控制该收发器104发送信号。
应理解,处理器101可以是中央处理单元(Central Processing Unit,简称为“CPU”),处理器101还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器102可以包括只读存储器和随机存取存储器,并向处理器101提供指令和数据。存储器102的一部分还可以包括非易失性随机存取存储器。例如,存储器102还可以存储设备类型的信息。
总线系统103除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图7中将所有总线都标为总线系统103。
在实现过程中,该计算机设备所执行的处理可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。即本公开实施例所公开的方法的步骤可以体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等存储介质中。该存储介质位于存储器102,处理器101读取存储器102中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些组件或所有组件可以被实施为由处理器,如数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上显示和描述了本申请的基本原理和主要特征和本申请的优点。本申请不受上述实施例的限制,上述实施例和说明书中描述的只是说明本申请的原理,在不脱离本申请精神和范围的前提下,本申请还会有各种变化和改进,这些变化和改进都落入要求保护的本申请范围内。
Claims (16)
1.一种链式结构中地址生成方法,包括:
确定第一机构的唯一标识;
生成地址,所述地址中包含所述地址的类型以及所述第一机构的唯一标识;所述地址用于所述第一机构参与交易时使用,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UTXO交易数据链逻辑隔离;
所述第一机构的私有链根据是否需要流转联盟的token,选择是否加入所述联盟;当需要流转多个联盟的token,则加入多个联盟链,成为多个联盟链成员;所述联盟的token只能在所述联盟的联盟链内流转;
所述第一机构为联盟链成员时,所述第一机构通过跨链交易使逻辑隔离的UTXO交易数据链相连接,形成联盟链的UTXO交易数据链;
其中,所述UTXO交易数据链是通过引用前向的一个或多个未花费输出变为已花费,并创建一个或多个新的未花费交易输出,且不断循环的向后延伸,从而形成的一个有向无环图,是具有多个输入和多个输出的复杂链式结构,所述UTXO交易数据链是逻辑链;
其中,联盟链的机构的私有链验证通过后,对所述私有链的区块头数据进行共识得到联盟链的区块数据,所述联盟链的区块数据顺序包含所述私有链的区块头数据,所述联盟链具有私有链区块头作为中间层数据,所指向的私有链区块体是联盟链的链下交易数据账本,所述私有链的区块头包含对应机构ID和交易数量并经过机构的签名,所述联盟链的区块头包含区块体中私有链区块头的数量并经过多个机构的联合签名,通过合并账本数据实现合并账本的交易数据,从而实现交易数据形成的且是逻辑隔离的UTXO交易数据链的合并。
2.根据权利要求1所述的方法,其特征在于,所述第一机构参与的交易包括:所述第一机构管理的第一用户与所述第一机构之间的第一交易,以及所述第一机构根据所述第一交易生成的与第二机构之间的第二交易,所述第二交易用于使所述第二机构生成与所述第二机构管理的第二用户之间的第三交易,以实现所述第一用户与第二用户之间的交易。
3.根据权利要求2所述的方法,其特征在于,所述第一交易的输入为所述第一用户的未花费交易输出,第一交易的输出包括中间交易地址、第一用户的承诺地址和第二用户的承诺地址。
4.根据权利要求2所述的方法,其特征在于,所述第二交易的输入包括一个或多个第一交易的引用,所述第二交易的输出包括第二机构的跨链交易地址和第二用户的输出承诺地址,所述跨链交易地址用于所述第二机构在所述第三交易的输入中引用,通过跨链交易地址将逻辑隔离的UTXO交易数据链进行连接,实现逻辑隔离的私有链进行互通,并使逻辑隔离的UTXO交易数据链合并后成为一条更大的联盟链的UTXO交易数据链,所述跨链交易地址只能被对应的跨链机构生成的交易引用且只能引用一次,以实现无冲突的跨链交易。
5.根据权利要求1或2所述的方法,其特征在于,所述第一机构为联盟链成员时,所述方法还包括:
合并第一机构生成的UTXO交易数据链与所述联盟链其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链。
6.根据权利要求5所述的方法,其特征在于,所述合并第一机构生成的UTXO交易数据链与所述联盟链其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链,包括:
合并所述第一机构的私有链账本数据和所述联盟链其他成员机构的私有链账本数据,生成所述联盟链的账本数据;所述私有链账本数据中包含机构生成的交易数据,所述UTXO交易数据链由所述交易数据形成。
7.根据权利要求6所述的方法,其特征在于,
所述合并所述第一机构的私有链账本数据与所述联盟链其他成员机构的私有链账本数据,包括:
所述第一机构的私有链账本数据中的区块体数据包含的交易数据被其他成员机构验证通过,所述区块体数据对应的私有链区块头数据被其他成员机构验证通过并签名,所述私有链区块头数据包含机构的唯一标识,对验证通过的所述第一机构的私有链区块头数据与其他成员机构的被验证通过的私有链区块头数据进行合并且共识,合并的私有链区块头数据作为所述联盟链的区块体数据。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
所述第一机构验证与所述第一机构属于同一联盟链的其他成员机构的私有链账本数据中的区块体数据包含的交易数据,以及所述区块体数据对应的私有链区块头数据,其中对所述区块体数据中的交易数据的验证包括以下一种或多种:
验证交易数据是否正确;输入引用地址和输出地址是否包含被验证机构的标识,跨链交易地址是否包含接收机构的标识,输入引用的跨链交易地址是否是上链联盟链的未花费交易输出。
9.根据权利要求1所述的方法,其特征在于,所述地址包括用户地址,生成的所述用户地址包括:用于表示当前地址为用户地址的地址类型、当前机构的唯一标识和所述用户的一次地址。
10.根据权利要求1所述的方法,其特征在于,所述地址包括跨链交易地址,生成的所述跨链交易地址包括:用于表示当前地址为跨链交易地址的地址类型、当前机构的唯一标识、跨链机构的唯一标识和唯一数,通过跨链交易地址将逻辑隔离的UTXO交易数据链进行连接,实现逻辑隔离的私有链进行互通,并使逻辑隔离的UTXO交易数据链合并后成为一条更大的联盟链的UTXO交易数据链,所述跨链交易地址只能被对应的跨链机构生成的交易引用且只能引用一次,以实现无冲突的跨链交易。
11.根据权利要求10所述的方法,其特征在于,生成的所述跨链交易地址还包括:限制跨链区块高度,当前机构生成的第二交易上链后,在所述限制跨链区块高度内,由所述跨链机构引用,或者,在所述限制跨链区块高度之后,由所述当前机构引用。
12.一种交易数据处理方法,其特征在于,所述方法包括:
第一机构参与交易生成交易数据,所述交易数据中包含所述第一机构的唯一标识,以使所述第一机构生成的UTXO交易数据链与其他机构生成的UXTO交易数据链逻辑隔离;
所述第一机构的私有链根据是否需要流转联盟的token,选择是否加入所述联盟,当需要流转多个联盟的token,则加入多个联盟链,成为多个联盟链成员;所述联盟的token只能在所述联盟的联盟链内流转;
所述第一机构为联盟链成员时,合并所述第一机构生成的UTXO交易数据链与和所述第一机构属于同一联盟链的其他成员机构生成的UTXO交易数据链,通过跨链交易使逻辑隔离的UTXO交易数据链相连接,形成所述联盟链的UTXO交易数据链,其中,所述UTXO交易数据链是通过引用前向的一个或多个未花费输出变为已花费,并创建一个或多个新的未花费交易输出,且不断循环的向后延伸,从而形成的一个有向无环图,是具有多个输入和多个输出的复杂链式结构,所述UTXO交易数据链是逻辑链;其中,联盟链的机构的私有链验证通过后,对所述私有链的区块头数据进行共识得到联盟链的区块数据,所述联盟链的区块数据顺序包含所述私有链的区块头数据,所述联盟链具有私有链区块头作为中间层数据,所指向的私有链区块体是联盟链的链下交易数据账本,所述私有链的区块头包含对应机构ID和交易数量并经过机构的签名,所述联盟链的区块头包含区块体中私有链区块头的数量并经过多个机构的联合签名,通过合并账本数据实现合并账本的交易数据,从而实现交易数据形成的且是逻辑隔离的UTXO交易数据链的合并。
13.根据权利要求12所述的方法,其特征在于,
合并所述第一机构生成的UTXO交易数据链与和所述第一机构属于同一联盟链的其他成员机构生成的UTXO交易数据链,形成所述联盟链的UTXO交易数据链,包括:
合并所述第一机构的私有链账本数据和所述联盟链其他成员机构的私有链账本数据,生成所述联盟链的账本数据;所述私有链账本数据中包含机构生成的交易数据,所述UTXO交易数据链由所述交易数据形成。
14.根据权利要求13所述的方法,其特征在于,
所述合并所述第一机构的私有链账本数据与所述联盟链其他成员机构的私有链账本数据,包括:
所述第一机构的私有链账本数据中的区块体数据包含的交易数据被其他成员机构验证通过,所述区块体数据对应的私有链区块头数据被其他成员机构验证通过并签名,所述私有链区块头数据包含机构的唯一标识,对验证通过的所述第一机构的私有链区块头数据与其他成员机构的被验证通过的私有链区块头数据进行合并且共识,合并的私有链区块头数据作为所述联盟链的区块体数据。
15.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1-11或12-14中任一项所述的方法。
16.一种计算机装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-11或12-14中任一项所述方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474716.5A CN113127908B (zh) | 2021-04-29 | 2021-04-29 | 链式结构地址生成、交易数据处理方法、装置及存储介质 |
PCT/CN2022/070736 WO2022227694A1 (zh) | 2021-04-29 | 2022-01-07 | 链式结构地址生成、交易数据处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110474716.5A CN113127908B (zh) | 2021-04-29 | 2021-04-29 | 链式结构地址生成、交易数据处理方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127908A CN113127908A (zh) | 2021-07-16 |
CN113127908B true CN113127908B (zh) | 2024-04-26 |
Family
ID=76780544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110474716.5A Active CN113127908B (zh) | 2021-04-29 | 2021-04-29 | 链式结构地址生成、交易数据处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127908B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022227694A1 (zh) * | 2021-04-29 | 2022-11-03 | 郑杰骞 | 链式结构地址生成、交易数据处理方法、装置及存储介质 |
CN113610643A (zh) * | 2021-08-13 | 2021-11-05 | 郑杰骞 | 链结构处理、交易数据处理、数据验证方法、装置和介质 |
US20230342774A1 (en) * | 2022-03-28 | 2023-10-26 | Guardtime Sa | Atomic Multi-Unit Transfer of Single-Instance Data Units in Sharded Blockchain |
CN115914249B (zh) * | 2022-12-05 | 2023-09-29 | 淮阴工学院 | 基于区块链块分类的冷链数据存储与查询方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701136A (zh) * | 2016-03-28 | 2018-10-23 | 黑金币公司 | 用于提供基于区块链的多因素个人身份验证的系统和方法 |
CN111292190A (zh) * | 2020-01-23 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 交易生成方法、区块创建方法及相关装置、设备 |
CN111383018A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150356523A1 (en) * | 2014-06-07 | 2015-12-10 | ChainID LLC | Decentralized identity verification systems and methods |
-
2021
- 2021-04-29 CN CN202110474716.5A patent/CN113127908B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108701136A (zh) * | 2016-03-28 | 2018-10-23 | 黑金币公司 | 用于提供基于区块链的多因素个人身份验证的系统和方法 |
CN111292190A (zh) * | 2020-01-23 | 2020-06-16 | 腾讯科技(深圳)有限公司 | 交易生成方法、区块创建方法及相关装置、设备 |
CN111383018A (zh) * | 2020-05-28 | 2020-07-07 | 支付宝(杭州)信息技术有限公司 | 在联盟链网络中创建节点组、基于节点组的交易方法 |
Non-Patent Citations (3)
Title |
---|
DessisPetrova-Antonova.Using Big Data Value Chain to Create Government Education Policies.CompSysTech '18: Proceedings of the 19th International Conference on Computer Systems and Technologies.2018,42–49. * |
区块链技术原理与应用综述;郭上铜等;计算机科学;20210205;第48卷(第2期);271-281 * |
基于区块链的数字作品交易系统的研究;曹迪龙等;计算机技术与发展;20210410;第31卷(第4期);192-197 * |
Also Published As
Publication number | Publication date |
---|---|
CN113127908A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111159288B (zh) | 链式结构数据存储、验证、实现方法、系统、装置及介质 | |
CN113127908B (zh) | 链式结构地址生成、交易数据处理方法、装置及存储介质 | |
CA3015697C (en) | Systems and methods for distributed identity verification | |
WO2019174430A1 (zh) | 区块链数据处理方法、管理端、用户端、转换装置及介质 | |
CN111819827B (zh) | 用于控制区块链上的资源的访问和完整性的方法和系统 | |
CN110875821A (zh) | 密码学区块链互操作 | |
US20100083001A1 (en) | Auditor Assisted Extraction And Verification Of Client Data Returned From A Storage Provided While Hiding Client Data From The Auditor | |
CN109450843B (zh) | 一种基于区块链的ssl证书管理方法及系统 | |
JP7201624B2 (ja) | ブロックチェーンネットワークにおける階層型トークン分配のためのシステム及び方法 | |
CN112348677B (zh) | 地址生成、区块链在线离线交易方法、装置、系统及介质 | |
CN109547218B (zh) | 一种改进bip协议的联盟链节点秘钥分配及备份系统 | |
EP3721582B1 (en) | Blockchain-implemented security systems and methods for blinded outcome selection | |
CN113610643A (zh) | 链结构处理、交易数据处理、数据验证方法、装置和介质 | |
JP7414795B2 (ja) | アセット混合のための、コンピュータにより実施されるシステム及び方法 | |
CN116250210A (zh) | 用于网络化的数据交易的认证和授权的方法、装置和计算机可读介质 | |
KR20230093432A (ko) | 서비스 거부 공격들의 식별 | |
US20240179211A1 (en) | Computer-implemented system and method for controlling processing steps of a distributed system | |
CN110912688B (zh) | 基于联盟链的抗量子计算私钥备份、挂失及恢复方法及系统 | |
Glauser | Self-Sovereign Identities in Cardossier | |
GB2610560A (en) | Generating shared cryptographic keys | |
WO2022227694A1 (zh) | 链式结构地址生成、交易数据处理方法、装置及存储介质 | |
CN111224776B (zh) | 基于联盟链的私钥备份、挂失及恢复方法及系统 | |
Irvin et al. | Designing for Privacy and Confidentiality on Distributed Ledgers for Enterprise (Industry Track) | |
GB2614913A (en) | Generating shared private keys | |
CN116795924A (zh) | 基于区块链的数据共享方法及装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |