CN112231731B - 松散耦合的区块链交易方法和区块链节点 - Google Patents
松散耦合的区块链交易方法和区块链节点 Download PDFInfo
- Publication number
- CN112231731B CN112231731B CN202011152064.5A CN202011152064A CN112231731B CN 112231731 B CN112231731 B CN 112231731B CN 202011152064 A CN202011152064 A CN 202011152064A CN 112231731 B CN112231731 B CN 112231731B
- Authority
- CN
- China
- Prior art keywords
- node
- consensus
- circle
- participants
- loosely coupled
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 238000010168 coupling process Methods 0.000 claims abstract description 93
- 238000005859 coupling reaction Methods 0.000 claims abstract description 93
- 230000008878 coupling Effects 0.000 claims abstract description 74
- 238000012795 verification Methods 0.000 claims abstract description 54
- 238000001341 grazing-angle X-ray diffraction Methods 0.000 claims abstract 24
- 238000013475 authorization Methods 0.000 claims description 49
- 230000006870 function Effects 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 20
- 238000012545 processing Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 11
- 238000012546 transfer Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 6
- 230000006854 communication Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000009472 formulation Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- NAWXUBYGYWOOIX-SFHVURJKSA-N (2s)-2-[[4-[2-(2,4-diaminoquinazolin-6-yl)ethyl]benzoyl]amino]-4-methylidenepentanedioic acid Chemical compound C1=CC2=NC(N)=NC(N)=C2C=C1CCC1=CC=C(C(=O)N[C@@H](CC(=C)C(O)=O)C(O)=O)C=C1 NAWXUBYGYWOOIX-SFHVURJKSA-N 0.000 description 1
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 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/604—Tools and structures for managing or administering access control systems
-
- 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
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Automation & Control Theory (AREA)
- Medical Informatics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本公开提供了一种松散耦合的区块链交易方法以及一种区块链节点,属于区块链领域。该方法应用于松散耦合共识圈中的第一节点。其中,该方法包括:侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求,其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识。
Description
技术领域
本公开区块链技术领域,更具体地,涉及一种松散耦合的区块链交易方法和一种区块链节点。
背景技术
区块链网络中的共识记账节点要在共识完成后增加区块以确保网络中个节点的信息完备性。虽然区块链网络具有多个参与方及其参与记帐的共识节点,但大多数情况下交易只发生在少数交易方之间,例如:私人物品交易、专属信息分享、数据转移等,交易范围有限。传统的区块链会将有限交易所产生的交易信息传递到全网,既增加了隐私数据泄露的风险,又降低了交易并发的效率。为此相关技术中提出了松散耦合共识圈的概念,即通过自主选择合作伙伴,形成的临时性的共识交易圈。松散耦合共识圈具有临时性、不确定性、一致性的特点,交易方可以自主选择加入或退出时机,在规模、生存周期、交易类型等存在不确定性,却需要在有限范围内保证群体共识的一致性。
在松散耦合共识圈中交易或者访问交易信息时,通常依赖于认证中心CA的集中授权和验证,容易引起交易授权系统损坏,降低授权效率。
发明内容
有鉴于此,本公开实施例提供了一种提高授权认证效率的松散耦合的区块链交易方法和装置。
本公开实施例的一个方面,提供了一种松散耦合的区块链交易方法。该方法应用于松散耦合共识圈中的第一节点,所述第一节点为所述松散耦合共识圈中的多个节点中的任意一个;其中,所述松散耦合共识圈是由区块链网络中执行松散耦合交易的节点构成的共识圈。所述方法包括:侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求;其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识。
根据本公开的实施例,所述基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识包括:解析所述松散耦合消息请求,得到所述松散耦合共识圈内的所有参与方的信息、以及所述所有参与方各自所在的节点的哈希标识;根据所述所有参与方的信息,获取所述所有参与方各自所在的节点的所述唯一标识GID;对所述所有参与方各自所在的节点的所述唯一标识GID进行所述哈希运算,得到所述所有参与方各自所在的节点的标识验证信息;以及基于所述所有参与方各自所在的节点的标识验证信息、和所述所有参与方各自所在的节点的哈希标识的对比,所述第一节点得到自己对所述松散耦合消息请求的验证结果。
根据本公开的实施例,所述方法还包括:在所述松散耦合共识圈通过对所述松散耦合消息请求中的交易信息的局部共识后,存储所述松散耦合消息请求中的交易信息。
根据本公开的实施例,所述方法还包括:获取全局参数GP,其中,所述全局参数GP为所述区块链网络中的任意一个节点执行初始化程序GlobalSetup()、并通过所述区块链网络共识得到的参数;基于所述全局参数GP得到双射群G,其中,所述全局参数GP被表示为所述双射群G的秩N和所述双射群G的生成元g的集合,其中,N=p1p2p3,其中,p1,p2,p3为3个质数;以及通过引入标准的哈希函数H:{0,1}*→G,设置所述哈希运算。
根据本公开的实施例,所述方法还包括:侦听并接收来自访问者的用于访问所述松散耦合共识圈内的目标交易信息的访问请求;其中,所述访问请求通过授权密钥加密,所述授权密钥为对所述松散耦合共识圈中的一个节点的所述唯一标识GID进行所述哈希运算得到的,其中,所述访问者为接入所述区块链网络的任意一个参与者;基于所述第一节点自己的所述唯一标识GID以及所述哈希运算,验证所述访问请求;以及在所述第一节点验证通过时,向所述访问者发送用于访问所述目标交易信息的信息。
根据本公开的实施例,所述方法还包括在接收到来自所述访问者的注册请求时,向所述访问者颁发所述授权密钥。
根据本公开的实施例,所述授权密钥为:KGID=gαH(GID)β,其中,GID为所述第一节点的所述唯一标识GID;α,β组成所述第一节点的私钥SKGID,为所述第一节点执行AuthoritySetup()算法得到的,其中,AuthoritySetup(GID,GP)→PKGID,SKGID;其中,PKGID={e(g,g)α,gβ},SKGID={α,β}。
本公开实施例的另一方面,提供了一种区块链节点,属于松散耦合共识圈中的节点,其中,所述松散耦合共识圈是由区块链网络中执行松散耦合交易的节点构成的共识圈。所述区块链节点用于:侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求;其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识。
根据本公开的实施例,所述区块链节点还用于:获取全局参数GP,其中,所述全局参数GP为所述区块链网络中的任意一个节点执行初始化程序GlobalSetup()、并通过所述区块链网络共识得到的参数;基于所述全局参数GP得到双射群G,其中,所述全局参数GP被表示为所述双射群G的秩N和所述双射群G的生成元g的集合,其中,N=p1p2p3,其中,p1,p2,p3为3个质数;以及通过引入标准的哈希函数H:{0,1}*→G,设置所述哈希运算。
根据本公开的实施例,所述区块链节点还用于:侦听并接收来自访问者的用于访问所述松散耦合共识圈内的目标交易信息的访问请求;其中,所述访问请求通过授权密钥加密,所述授权密钥为对所述松散耦合共识圈中的一个节点的所述唯一标识GID进行所述哈希运算得到的,其中,所述访问者为接入所述区块链网络的任意一个参与者;基于所述区块链节点自己的所述唯一标识GID以及所述哈希运算,验证所述访问请求;以及在所述区块链节点验证通过时,向所述访问者发送用于访问所述目标交易信息的信息。
本公开实施例的另一方面,提供了一种电子设备。所述电子设备包括一个或多个存储器、以及一个或多个处理器。所述存储器上存储有计算机可执行指令。所述处理器执行所述指令,以实现如上所述的松散耦合的区块链交易方法。
本公开实施例的另一方面,提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的松散耦合的区块链交易方法。
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的松散耦合的区块链交易方法。
上述一个或多个实施例具有如下优点或益效果:可以在松散耦合共识圈的作为属性授权中心的每个区块链节点中引入H(GID)函数,对松散耦合共识圈中的每个节点的唯一标识GID运用哈希函数生成哈希标识H(GID)。在松散耦合共识圈中进行交易的过程中,或者圈内圈外的访问者访问松散耦合共识圈中的交易信息的过程中,基于H(GID)进行信息的验证,可以管理多家授权机构的共谋风险,实现了松散耦合共识圈中和圈外的多参与方的信息授权和保护,提升了系统的健壮性和可扩展能力。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的区块链网络的示意图;
图2示意性示出了根据本公开一实施例的松散耦合的区块链交易方法的流程图;
图3示意性示出了根据本公开一实施例的松散耦合共识圈中的消息报文格式;
图4示意性示出了根据本公开一实施例的松散耦合的区块链交易方法中在松散耦合共识圈中进行交易共识的过程;
图5示意性示出了根据本公开另一实施例的松散耦合的区块链交易方法的流程图;
图6示意性出了根据本公开一实施例的对松散耦合共识圈交易信息的访问示意图;
图7示意性示出了根据本公开一实施例的松散耦合共识圈外的访问者访问松散耦合共识圈内的交易信息的流程图;
图8示意性示出了根据本公开一实施例的区块链节点的内部结构框图;
图9示意性示出了根据本公开一实施例的区块链网络处理信息的流程图;
图10示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节执行数据处理的流程图;
图11示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节进行数据解密的流程图;
图12示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节授权圈外的访问者访问圈内的交易信息的流程图;以及
图13示意性示出了适于实现根据本公开实施例的松散耦合的区块链交易方法的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在区块链网络中,一个交易或一系列交易簇可以用T表示,区块链网络的状态用σ表示,交易前后区块链网络的状态满足式(1):
σt+1=γ(σt,T) (1)
其中,γ表示状态转移函数。
在区块链网络中建立有松散耦合共识圈的情况下,为了区别于传统的区块链交易,在状态转移函数中引入全局唯一交易圈标识号v,状态转移函数即表示为γv,且v∈N,v≥0。当v=0时,γv表示传统区块链交易的转移函数;当v>0时,γv表示执行松散耦合共识圈v的交易的状态转移函数。需要强调的是,对于每一个松散耦合共识圈,其交易圈标识号v在全网公开且唯一,使用的全局唯一交易圈标识号v在全网共识记帐节点中存证,用于区分不同松散耦合共识圈的智能合约状态转移函数。具体如下式(2):
σt+1=γv(σt,T) (2)
上述关系形式化表现为式(3):
执行松散耦合智能合约状态转移函数γv后,交易信息只存储在交易方所在的节点中。其中,区块链网络中的每个节点具有全网唯一标识GID,而且该标识GID全网公开。该标识GID形式化表示为如下式(4):
GID={id|v,i,0≤i≤N} (4)
随着松散耦合共识圈的建立,参与方的交易数据具有隐私性和保密性,交易数据拥有者允许授权给有权人访问,需要通过加密属性及加密策略对访问者进行验证和许可,同时还要防止合谋,信息泄露,外部攻击等风险。为提高验证授权的效率以及可靠性,本公开提供了松散耦合的区块链交易方法以及相应的区块链节点,能够使松散耦合共识圈中的任意参与方通过申请而成为属性授权中心,而且在交易执行的共识验证以及访问授权时属性授权中心彼此独立,无需关心彼此的存在性,解除了相互协同的限制和依赖,提高了松散耦合共识圈的健壮性和可扩展能力。
具体地,本公开的实施例提供了一种松散耦合的区块链交易方法,应用于松散耦合共识圈中的第一节点,所述第一节点为所述松散耦合共识圈中的多个节点中的任意一个。其中,所述松散耦合共识圈是由区块链网络中执行松散耦合交易的节点构成的共识圈。所述方法包括:侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求;其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识H(GID),其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及基于对所述所有参与方各自所在的节点的所述哈希标识H(GID)的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识。
本公开实施例可以在松散耦合共识圈的作为属性授权中心的每个区块链节点中引入哈希函数,对松散耦合共识圈中的每个节点的唯一标识GID运用哈希函数生成哈希标识H(GID)。与传统方法采用全局唯一标识GID不同,哈希标识H(GID)可以管理多家授权机构的共谋风险,从而实现了松散耦合共识圈内和圈外的多交易方的信息授权和保护,提升了区块链网络系统的健壮性和可扩展能力。
需要说明的是,本公开实施例松散耦合的区块链交易方法和区块链节点可用于金融领域,也可用于除金融领域之外的任意领域(例如,物流领域、医疗领域等)。本公开对本公开实施例松散耦合的区块链交易方法和区块链节点的应用领域不做限定。
图1示意性示出了根据本公开实施例的区块链网络100的示意图。
如图1所示,该区块链网络100可以包括区块链基础设施云(BaaS)1、区块链节点2、松散耦合共识圈3、松散耦合共识圈4、参与方A~E。其中,松散耦合共识圈3和4的本质都一样,只是具有不同的交易参与方。
区块链基础设施云(BaaS)1:负责根据用户的组网资源请求,提供分配网络资源、计算资源和存储资源,创建区块链组网服务,支持根据用户的区块链产品标准,选择区块链产品镜像,创建虚拟计算节点。
区块链节点2:区块链网络具有若干个区块链节点,作为区块链网络100的计算节点,主要负责区块链交易接入和处理,提供智能合约执行、交易共识和交易记账。在区块链基础设施云(BaaS)1中,区块链节点2均为虚拟计算节点。在接入松散耦合共识圈后,作为松散耦合共识圈的节点,为接入的参与方提供属性加密、解密服务。
松散耦合共识圈3:在区块链基础设施云1中,由参与方A、B、C临时组成的交易圈。参与方根据交易需要,任意选择其它参与方组建的临时交易圈,为达成交易,执行局部共识协议,交易数据只存储在参与方所在节点,并不像传统区块链网络那样扩散到全网节点。
松散耦合共识圈4:在区块链基础设施云1中,由参与方D、E临时组成的交易圈。进一步的,参与方根据业务需要,任意选择其它参与方组建的临时交易圈,为达成交易,执行局部共识协议,交易数据只存储在参与方所在节点,并不像传统区块链网络那样扩散到全网节点。
参与方A~E:执行区块链共识交易的交易参与方。本例中,参与方A~E分别通过一个区块链节点2接入区块链网络100,执行交易,加密、授权交易信息等处理。
以下结合区块链网络100对本公开实施例的方法和区块链节点仅是示例性说明。
图2示意性示出了根据本公开一实施例的松散耦合的区块链交易方法的流程图。
如图2所示,该松散耦合的区块链交易方法包括操作S210和操作S220。根据本公开的实施例,该方法可以由松散耦合共识圈内的任意一个区块链节点(例如,称为第一节点)来执行。例如以图1中松散耦合共识圈3为例,第一节点可以是交易方A所在的区块链节点。
在操作S210,侦听并接收来自所述松散耦合共识圈3内的交易方发起的松散耦合消息请求。其中,所述松散耦合消息请求包括所述松散耦合共识圈3内的所有参与方(参与方A、B、C)各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息H(GID),其中每个节点的所述唯一标识GID在所述区块链网络中公开。
图3示意性示出了根据本公开一实施例的松散耦合共识圈中的消息报文格式。
如图3所示,松散耦合交易共识圈中的消息报文(例如,上述的松散耦合消息请求)包括了松散耦合共识圈的全局唯一标识v、以及对各个参与方所在节点的GID进行哈希运算得到的哈希标识H(GID)。例如发起方所在节点H(GID)、参与方A所在节点的H(GID)、参与方所在节点B的H(GID)、参与方C所在节点的H(GID)等。另外,还可以包括各个参与方的公钥PK、各个参与方的地址、校验位等信息。
在操作S220,基于对所述所有参与方各自所在的节点的所述哈希标识H(GID)的校验,在所述松散耦合共识圈3中对所述松散耦合消息请求进行交易共识。
例如,参与方A在获得松散耦合消息请求后,首先可以从报文中各个参与方的信息获取到各个参与方地址、各个参与方所在节点的哈希标识H(GID);接着可以根据各个参与方地址从区块链网络100中获取到各个参与方所在的节点的GID;接下来参与方A可以按照哈希运算自行对各个节点的GID进行计算,得到各个参与方所在节点的标识验证信息;然后将自行计算得到的标识验证信息与从松散耦合消息请求中得到的H(GID)对应比较,以此来校验接收到的松散耦合消息请求是否被篡改等。
此后,参与方A可以将基于对所述所有参与方各自所在的节点的所述哈希标识H(GID)的校验后得到的验证结果广播到松散耦合共识圈3中,并接收到松散耦合共识圈3中其他参与方B、C以与参与方A同样的方式对松散耦合消息请求的验证结果,采用局部共识算法(例如,PBFT拜占庭容错算法),对该松散耦合消息请求进行交易共识。
进一步地,在所述松散耦合共识圈通过对所述松散耦合消息请求中的交易信息的局部共识后,执行交易并存储所述松散耦合消息请求中的交易信息。其中交易信息仅存储在参与松散耦合共识交易的节点,而不扩散至全网。
图4示意性示出了根据本公开一实施例的松散耦合的区块链交易方法中操作S220中在松散耦合共识圈中进行交易共识的过程。
如图4所示,根据该实施例操作S220可以包括操作S401~操作S404。
在操作S401,解析所述松散耦合消息请求,得到所述松散耦合共识圈3内的所有参与方A~C的信息(例如,各个参与方的地址)、以及所述所有参与方A~C各自所在的节点的哈希标识H(GID)。
在操作S402,根据所述所有参与方A~C的信息(例如,各个参与方的地址),获取所述所有参与方各自所在的节点在区块链网络100中的唯一标识GID。
在操作S403,对所有参与方A~C各自所在的节点的所述唯一标识GID进行所述哈希运算,得到所述所有参与方各自所在的节点的标识验证信息。
在操作S404,基于所述所有参与方各自所在的节点的标识验证信息、和从松散耦合消息请求中得到的所有参与方各自所在的节点的哈希标识H(GID)的对比,所述第一节点得到自己对所述松散耦合消息请求的验证结果。
图5示意性示出了根据本公开另一实施例的松散耦合的区块链交易方法的流程图。
如图5所示,结合图2,根据本公开实施例,该松散耦合的区块链交易方法除了操作S210和操作S220以外,还可以包括操作S510~操作S530。
在操作S510,获取全局参数GP,其中,所述全局参数GP为所述区块链网络100中的任意一个可以作为属性授权中心的节点执行初始化程序GlobalSetup()、并通过所述区块链网络100共识得到的参数。形式上如式(5)所示。
GlobalSetup(λ)→GP (5)
其中,其中,λ表示预设的安全参数,全局参数GP通过区块链网络广播到全网。
在操作S520,基于所述全局参数GP得到双射群G,其中,所述全局参数GP被表示为所述双射群G的秩N和所述双射群G的生成元g的集合,其中,N=p1p2p3,其中,p1,p2,p3为3个质数。
在操作S530,通过引入标准的哈希函数H:{0,1}*→G,设置所述哈希运算。该哈希运算将广播到区块链网络100的全部节点。从而,可以用于属性授权中心的任意一个节点都可以通过该哈希函数H:{0,1}*→G对自己或者其他节点的GID进行哈希运算,得到相应的信息H(GID)。
以此方式,本公开实施例可以在松散耦合共识圈中的作为属性授权中心的区块链节点中引入H(GID)函数,对松散耦合共识圈中的每个作为属性授权中心的区块链节点的唯一标识GID运用哈希函数生成哈希标识H(GID),以此方式可以管理多家授权机构的共谋风险,从而实现了松散耦合共识圈内多交易方的信息授权和保护。
图6示意性出了根据本公开一实施例的对松散耦合共识圈交易信息的访问示意图。
如图6所示,结合图1,假设区块链网络100除了包括图1所示的松散耦合共识圈3以外,还可以包括如图6所示的松散耦合共识圈20。以访问松散耦合共识圈3内的交易信息为例,进行访问的访问者可以分为圈内的访问者(例如,参与方A~C任意一个),以及圈外的访问者(例如,松散耦合共识圈20中的参与方21等)
根据本公开的实施例,松散耦合共识圈3中的三个节点vp0~vp2任意一个可以申请成为属性授权中心。从而接收来自圈内或圈外的访问者的访问请求,并访问请求进行属性访问授权验证,在授权验证通过运行访问者对松散耦合共识圈3内的信息进行访问。
图7示意性示出了根据本公开一实施例的松散耦合共识圈外的访问者访问松散耦合共识圈内的交易信息的流程图。
如图7所示,结合图2,根据本公开实施例该松散耦合的区块链交易方法除了操作S210和操作S220以外,还可以包括操作S710~操作S730。以访问者访问松散耦合共识圈3内的交易信息进行说明,其中,第一节点为属性授权中心,该第一节点例如可以是参与方A所在的节点(即,图6所示的节点vp0)。
在操作S710,第一节点(例如,节点vp0)侦听并接收来自访问者的用于访问所述松散耦合共识圈内的目标交易信息的访问请求。其中,所述访问请求通过授权密钥加密,所述授权密钥为对所述松散耦合共识圈中的一个节点的所述唯一标识GID进行所述哈希运算得到的。
根据本公开的一个实施例,访问者要访问松散耦合共识圈3时需要先注册。具体地,在操作S710之前松散耦合共识圈3中的区块链节点vp0可以接收访问者向松散耦合共识圈3广播的注册请求。区块链节点vp0在接收到来自所述访问者的注册请求时,首先确定出访问者要访问的是否是自己所在的松散耦合共识圈3,若是则验证访问者的属性访问权限,验证通过后,可以向所述访问者颁发所述授权密钥。该所述授权密钥例如可以是通过如下式(6)表示:
KGID=gαH(GID)β (6)
其中,GID为第一节点的唯一标识GID;α,β组成所述第一节点的私钥SKGID,为所述第一节点执行AuthoritySetup()算法得到的,其中,AuthoritySetup(GID,GP)→PKGID,SKGID;其中,PKGID={e(g,g)α,gβ},SKGID={α,β}。
此后,在操作S710中访问者可以使用式(6)所示的授权密钥对访问请求加密。访问者可以向区块链网络100广播其访问松散耦合共识圈的访问请求,其中,访问请求的报文格式例如可以如图3所示,其中显示有要访问的松散耦合共识圈3的全局唯一标识。当非松散耦合共识圈3内的节点接收到该访问请求时,会根据该标识v判断出该访问请求与自己无关而直接丢弃。而松散耦合共识圈3内的节点(例如,A、B、C)则会对该访问请求进行进一步的验证。
在操作S720,第一节点基于所述第一节点自己的所述唯一标识GID以及所述哈希运算,验证所述访问请求。第一节点利用哈希函数H:{0,1}*→ G对自己节点的GID进行哈希运算,并利用自己的私钥按照式(6)所示的方式进行计算,并基于结算结果与访问者提供的访问请求中的授权信息进行比较,来验证访问请求。
在操作S730,在所述第一节点验证通过时,向所述访问者发送用于访问所述目标交易信息的信息。
若第一节点验证不通过时,则第一节点向访问者返回空值。在这种情况下,若松散耦合共识圈3内的其他某个节点对访问请求验证通过时,则该节点可以向访问者发送用于访问所述目标交易信息的信息;若松散耦合共识圈3内的其他所有节点均验证失败,则访问者访问松散耦合共识圈3失败。
以此方式,在对圈外的访问者的访问请求进行验证授权时,任意参与方可以申请成为属性授权中心,而且各属性授权中心彼此独立,无需关心彼此的存在性,解除了相互协同的限制,提高了系统的健壮性和可扩展能力。
根据本公开的一个实施例,在松散耦合共识圈3中存储的交易信息是将明文加密后得到的密文。该用于访问所述目标交易信息的信息例如可以是属性密钥Su,该属性密钥Su可以作为交易信息的密文进行解密的参数之一。属性密钥Su形式上可以表示为式(7):
其中,
PKu为访问者所在节点的公钥;
H为哈希函数H:{0,1}*→G;
Γ表示属性访问策略矩阵,可以形式化表示为式(8):
其中,S1,S2,...,SN表示Γ中数量为N的属性集合,算法对j=1,2,...,N个属性集合进行遍历,产生N个属性集合的并集。
图8示意性示出了根据本公开一实施例的区块链节点的内部结构框图。
如图8所示,该区块链节点800例如可以是图1中所示的任意一个区块链节点的一个具体实施例。该区块链节点800可以包括主控单元80、初始化单元81、属性执行处理单元82、交易信息收发单元83。该区块链节点800例如可以用于执行根据本公开实施例的松散耦合的区块链交易方法。
主控单元80:负责数据传递以及各处理模块的总体调用。
初始化单元81:用于执行如式(5)所示的Global Setup()算法初始化变量,输入安全参数λ,输出全局参数GP。
属性执行处理单元82:负责执行Encrypt()算法为参与方提供交易数据加密,执行属性设置AuthoritySetup()算法为区块链节点800提供成为属性授权中心的授权功能,执行KeyGen()算法为交易数据访问者提供基于属性的授权密钥KGID,以及执行属性授权验证等。
其中,Encrypt()算法可以是Encrypt(M,(Γ,ρ),GP,{PK})算法。其中,各个参数分别是:加密算法输入明文M、属性访问策略矩阵Γ(如式(8)所示)、用于将Γ的行映射到属性集合的参数ρ、全局参数GP、以及区块链节点的公钥PK。对交易信息明文加密后得到的密文TC形式化表示如下式(9):
AuthoritySetup()算法用于为属性授权中心生成公私钥对(PK,SK),具体方法是对每个属于授权中心的属性i选择,随机选择指数α,β∈N,计算区块链节点800的与属性i对应的公钥PK为式(10)所示:
PK={e(g,g)α,gβ} (10)
计算区块链节点800的与属性i对应的私钥SK为:
SK={α,β} (11)
KeyGen()算法具体如前述式(6)所示,在接收到访问者的注册请求时,计算授权密钥KGID,并反馈访问者。
属性执行处理单元82可以包括交易信息加密子单元821、请求属性验证子单元822、属性授权子单元823、属性权限验证子单元824和交易信息解密子单元825。
交易信息加密子单元821:负责对交易信息进行属性加密。执行Encrypt()算法进行属性加密:输入元组(GP,M,Γ,PK),返回如式(9)所示的密文TC。
请求属性验证子单元822:执行如式(10)和(11)所示的AuthoritySetup()算法,为区块链节点800输出公钥和私钥对(PK,SK).
属性授权子单元823:执行如式(6)所示的KeyGen()算法,为访问者提供基于属性的授权密钥KGID。
属性权限验证子单元824:执行RequestAttribute()算法,验证访问者是否具备访问权限。若检测失败,返回false。若检测成功,则向访问者返回如式(7)所示的属性密钥Su。
交易信息解密子单元825:执行Decrypt()解密算法,接收全局参数GP,密文TC,和基于属性的授权密钥KGID,区块链节点800的全局位移标识GID,当访问者的属性满足属性策略式,输出明文M,否则解密失败。
其中,Decrypt()解密算法形式上可以表示为如下式(12)
Decrypt(Tc,GP,{Su})→M (12)
交易信息收发单元83:用于接收访问者提出的访问请求报文,在访问者的属性权限验证成功时向访问者发送属性密钥Su;在访问者的属性权限验证失败向访问者返回false。
图9示意性示出了根据本公开一实施例的区块链网络处理信息的流程图。
如图9所示,该方法流程可以包括步骤S900~S919,以区块链网络100为例。该区块链网络100包括了5个参与方A~E,该方法例如可以由松散耦合共识圈3内的参与方A~C节点执行。
步骤S900:获取全网最新的全局唯一交易圈标识号v;
步骤S901:参与方A通过所在节点向参与方B、C广播局部共识请求,因参与方D和E未松散耦合共识圈3,故参与方A所在节点不再向参与方D和E发送松散耦合请求;松散耦合请求的报文格式如图3所示,包含参与方B、C的地址信息。设PT表示交易的松散耦合请求交易报文,形式上如式(13)所示:
PT=(v,n,(ρ1,ρ2,...,ρn),...,chksum) (13)
其中,v是全局唯一交易圈标识号,n是参与方数量,ρ1,ρ2,...,ρn表示1到n个参与方的id号和IP地址,chksum是校验位。
步骤S902:参与方A所在的节点侦听并接收来自参与方A的松散耦合消息请求,并进行消息安全性校验;
步骤S903:参与方A所在的节点解析该松散耦合消息请求并提取局部共识交易的消息请求报文,从中获取到松散耦合共识圈3的所有参与方的信息(即,参与方A、B、C)。然后采用PBFT(拜占庭容错)算法,在参与方A、B、C所在的节点中对参与方A发起的松散耦合消息请求进行交易共识。
步骤S904:参与方B所在节点侦听并接收来自参与方A的松散耦合消息请求,并进行消息安全性校验;
步骤S905:参与方B所在的节点解析该松散耦合消息请求并提取局部共识交易的消息请求报文,从中获取到松散耦合共识圈3的所有参与方的信息(即,参与方A、B、C)。然后采用PBFT(拜占庭容错)算法,在参与方A、B、C所在的节点中对参与方A发起的松散耦合消息请求进行交易共识。
步骤S906:参与方C所在的节点侦听并接收来自参与方A的松散耦合消息请求,并进行消息安全性校验;
步骤S907:参与方C所在的节点解析该松散耦合消息请求并提取局部共识交易的消息请求报文,从中获取到松散耦合共识圈的所有参与方的信息(即,参与方A、B、C)。然后采用PBFT(拜占庭容错)算法,在参与方A、B、C所在的节点中进行交易共识。
步骤S908:参与方A所在的节点接收来自其他节点的交易信息,并根据全局唯一交易圈标识号v,对存量的交易进行校验。为了验证交易的正确性,须满足以下式(14):
Hv=TRIE(Ls(Π(σ,β))) (14)
设Tp表示应用级智能合约交易,Ts表示系统级智能合约交易,扩展得到以下式(15):
σt+1=Π(σt,B) (15)
其中,
B=(...,(Tp,1,Ts,1),(Tp,0,Ts,0),...) (16)
Π(σ,B)≡Ω(B,γ(γ(σ,(Tp,0,Ts,0)),(Tp,1,Ts,1))...) (17)
Ω表示最终状态,B表示交易序列,Tp,0,Tp,1分别表示第0,1个应用级智能合约交易序列,Ts,0,Ts,1分别表示第0,1个系统级智能合约交易序列,(Tp,0,Ts,0)表示一个由应用级和系统级智能合约交易构成的组合。
步骤S909:若智能合约认证成功,参与方A所在的节点发送通知广播。
步骤S910:参与方B所在的节点接收来自其他节点的交易信息,并根据全局唯一交易圈标识号V,对存量的交易进行校验。具体校验过程与参与方A所在节点一致,参考步骤S908。
步骤S911:若智能合约认证成功,参与方B所在的节点发送通知广播。
步骤S912:参与方C所在的节点,接收来自其他节点的交易信息,并根据全局唯一交易圈标识号V,对存量的交易进行校验。具体校验过程与参与方A所在节点一致,参考步骤S908。
步骤S913:若智能合约认证成功,参与方C所在的节点发送通知广播。
步骤S914:参与方A所在的节点执行如式(5)所示的GlobalSetup()智能合约,产生全局参数GP,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。形式上表示为式(18):
HV=kec(PHV,THV,Ou) (18)
其中,HV表示为当前交易的Hash值,kec表示采用keccak-256算法计算的Hash函数,PHV表示前项区块Hash,THV当前交易群组Hash,Ou表示用户公钥。
步骤S915:参与方B所在的节点执行GlobalSetup()智能合约,产生全局参数GP,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。具体参考步骤S914。
步骤S916:参与方C所在的节点执行GlobalSetup()智能合约,产生全局参数GP,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。具体参考步骤S914。
步骤S917:参与方A所在的节点负责对参与方A的交易信息进行加密处理。具体是执行如前所述的Encrypt()算法,对交易信息明文M进行加密,产生如式(9)所示的密文TC。并在本地存储GP及交易信息TC。
步骤S918:参与方B所在的节点负责对参与方B的交易信息进行加密处理。具体是执行如前所述的Encrypt()算法,对交易信息明文M进行加密,产生如式(9)所示的密文TC。并在本地存储GP及交易信息TC。
步骤S919:参与方C所在的节点负责对参与方C的交易信息进行加密处理。如前所述的Encrypt()算法,对交易信息明文M进行加密,产生如式(9)所示的密文TC。并在本地存储GP及交易信息TC。
图10示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节执行数据处理的流程图。
如图10所示,该数据处理流程可以包括步骤S1010~步骤S1040,其中,该数据处理方法流程可以由松散耦合共识圈3内的参与方A~C节点任意一个节点执行,结合图6对本方法处理流程示例性说明如下。
步骤S1010:执行初始化程序GlobalSetup(),接收安全参数λ,输出全局参数GP,通过区块链网络与到其他记账节点共享。设G表示一个秩为N的双射群,N=p1p2p3,其中,p1,p2,p3为3个质数。全局参数GP表示为N、以及G的生成元g的集合。同时,引入标准的随机哈希函数H:{0,1}*→G,实现从全局唯一标识GID到G的影射。
步骤S1020:参与方A所在的节点申请成为属性授权中心。具体地,执行如式(10)和(11)所示的AuthoritySetup()算法,接收全局参数GP,生成属性授权中心公钥PK和私钥SK。
步骤S1030:访问者向属性授权中心进行注册,申请授权密钥KGID,执行如式(6)所示的KeyGen()算法。
步骤S1040:属性授权中心向访问者提供属性权限验证,数据加密和解密服务,其中:
(1)属性权限验证。访问者向属性授权中心提交信息访问请求,该交易访问请求为基于授权密钥KGID得到的。属性授权中心执行RequestAttribute()算法,验证交易信息请求方是否具备访问权限。若检测失败,返回false。否则向交易信息请求方返回如式(7)所示的属性密钥Su。
(2)数据加密。属性授权中心执行Encrypt()算法,对交易信息的明文M进行加密,产生如式(9)所示的密文Tc。
(3)数据解密。属性授权中心执行如式(12)所示的Decrypt()解密算法,接收全局参数GP,密文TC,和属性密钥Su,全局标识GID,进行解密,得到交易明文M。
图11示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节点进行数据解密的流程图。
如图11所示,该方法可以包括步骤S1110~步骤S1130。结合图6中的松散耦合共识圈3内的参与方A~C为例,该方法流程示例了松散耦合共识圈3内的参与方A~C任意一个节点进行数据解密,访问交易信息的流程。以参与方A为例说明如下。
步骤S1110:松散耦合共识圈3内的访问者通过区块链节点向属性授权中心申请交易数据访问权限。例如。参与方A向自己所在的节点vp0提交访问交易信息申请,节点vp0将访问请求发送给松散耦合共识圈3属性授权中心(例如,可以是参与者A所在的节点vp0,也可以是其他节点vp1或vp2),申请访问权限。其中,该访问请求通过参与方A的授权密钥KGID加密得到。
步骤S1120:属性授权中心执行RequestAttribute()算法,验证访问请求是否具备访问权限。若检测失败,返回false;若检测成功,则产生参与方A的属性密钥Su,并反馈给参与方A所在的节点。
步骤S1130:圈内的访问者执行解密算法Decrypt(),对本地存储的交易信息的密文进行解密,读取交易信息的明文。例如,参与方A所在的节点vp0执行解密算法Decrypt(),对本地存储的交易信息的密文TC进行解密,读取交易信息的明文。
图12示意性示出了根据本公开一实施例的区块链网络中松散耦合共识圈内的区块链节授权圈外的访问者访问圈内的交易信息的流程图。
如图12所示,该流程示意了圈外的访问者访问松散耦合共识圈内的交易信息的流程。例如松散耦合共识圈3外的访问者(例如图6中接入区块链网络的参与方21)访问松散耦合共识圈3内部的信息的流程示例如下。
步骤S1210:松散耦合共识圈3外的访问者向区块链节点vp0提交访问请求。
步骤S1220:属性授权中心(vp0~vp2中任意一个执行了AuthoritySetup()算法的节点)执行算法RequestAttribute(),对访问者进行权限检查。验证交易信息请求方是否具备访问权限。
步骤S1230:判断算法RequestAttribute()执行情况,若检测失败,返回Null值。否则向访问者返回属性密钥Su。
步骤S1240:若算法RequestAttribute()返回false,则表明访问者不具备交易信息访问权限,从而结束本流程。
步骤S1250:若算法RequestAttribute()返回属性密钥Su,则属性授权中心进一步向访问请求所请求范文根的交易信息所在的记账节点(例如,vp0~vp2中任意一个)申请访问交易信息。
步骤S1260:记账节点向属性授权中心返传交易信息的密文TC。
步骤S1270:属性授权中心接收密文格式的交易信息,执行解密算法Decrypt(),生成明文M。
步骤S1280:访问者侦听和接收明文信息M。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,主控单元80、初始化单元81、属性执行处理单元82、交易信息收发单元83中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例交易信息加密子单元821、请求属性验证子单元822、属性授权子单元823、属性权限验证子单元824和交易信息解密子单元825中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,交易信息加密子单元821、请求属性验证子单元822、属性授权子单元823、属性权限验证子单元824和交易信息解密子单元825中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图13示意性示出了适于实现根据本公开实施例的松散耦合的区块链交易方法的计算机系统1300的方框图。图13示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图13所示,根据本公开实施例的计算机系统1300包括处理器1301,其可以根据存储在只读存储器(ROM)1302中的程序或者从存储部分1308加载到随机访问存储器(RAM)1303中的程序而执行各种适当的动作和处理。处理器1301例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1301还可以包括用于缓存用途的板载存储器。处理器1301可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1303中,存储有计算机系统1300操作所需的各种程序和数据。处理器1301、ROM 1302以及RAM 1303通过总线1304彼此相连。处理器1301通过执行ROM 1302和/或RAM1303中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1302和RAM 1303以外的一个或多个存储器中。处理器1301也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,计算机系统1300还可以包括输入/输出(I/O)接口1305,输入/输出(I/O)接口1305也连接至总线1304。计算机系统1300还可以包括连接至I/O接口1305的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1306;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1307;包括硬盘等的存储部分1308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1309。通信部分1309经由诸如因特网的网络执行通信处理。驱动器1310也根据需要连接至I/O接口1305。可拆卸介质1311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1310上,以便于从其上读出的计算机程序根据需要被安装入存储部分1308。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1309从网络上被下载和安装,和/或从可拆卸介质1311被安装。在该计算机程序被处理器1301执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1302和/或RAM 1303和/或ROM 1302和RAM 1303以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种松散耦合的区块链交易方法,应用于松散耦合共识圈中的第一节点,所述第一节点为所述松散耦合共识圈中的多个节点中的任意一个;其中,所述松散耦合共识圈是由区块链网络中执行松散耦合交易的节点构成的共识圈;所述方法包括:
侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求;其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及
基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识;
其中,所述基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识包括:
解析所述松散耦合消息请求,得到所述松散耦合共识圈内的所有参与方的信息、以及所述所有参与方各自所在的节点的哈希标识;
根据所述所有参与方的信息,获取所述所有参与方各自所在的节点的所述唯一标识GID;
对所述所有参与方各自所在的节点的所述唯一标识GID进行所述哈希运算,得到所述所有参与方各自所在的节点的标识验证信息;以及
基于所述所有参与方各自所在的节点的标识验证信息、和所述所有参与方各自所在的节点的哈希标识的对比,所述第一节点得到自己对所述松散耦合消息请求的验证结果。
2.根据权利要求1所述的方法,其中,所述方法还包括:
在所述松散耦合共识圈通过对所述松散耦合消息请求中的交易信息的局部共识后,存储所述松散耦合消息请求中的交易信息。
3.根据权利要求1所述的方法,其中,所述方法还包括:
获取全局参数GP,其中,所述全局参数GP为所述区块链网络中的任意一个节点执行初始化程序GlobalSetup()、并通过所述区块链网络共识得到的参数;
基于所述全局参数GP得到双射群G,其中,所述全局参数GP被表示为所述双射群G的秩N和所述双射群G的生成元g的集合,其中,N=p1p2p3,其中,p1,p2,p3为3个质数;以及
通过引入标准的哈希函数H:{0,1}*→G,设置所述哈希运算。
4.根据权利要求3所述的方法,其中,所述方法还包括:
侦听并接收来自访问者的用于访问所述松散耦合共识圈内的目标交易信息的访问请求;其中,所述访问请求通过授权密钥加密,所述授权密钥为对所述松散耦合共识圈中的一个节点的所述唯一标识GID进行所述哈希运算得到的,其中,所述访问者为接入所述区块链网络的任意一个参与者;
基于所述第一节点自己的所述唯一标识GID以及所述哈希运算,验证所述访问请求;以及
在所述第一节点验证通过时,向所述访问者发送用于访问所述目标交易信息的信息。
5.根据权利要求4所述的方法,其中,所述方法还包括:
在接收到来自所述访问者的注册请求时,向所述访问者颁发所述授权密钥。
6.根据权利要求5所述的方法,其中,所述授权密钥为:
KGID=gαH(GID)β
其中,GID为所述第一节点的所述唯一标识GID;
H()为所述哈希运算;
α,β组成所述第一节点的私钥SKGID,其中SKGID={α,β},为所述第一节点执行AuthoritySetup()算法得到的:AuthoritySetup(GID,GP)→PKGID,SKGID;其中,公钥PKGID={e(g,g)a,gβ}。
7.一种区块链节点,属于松散耦合共识圈中的节点,其中,所述松散耦合共识圈是由区块链网络中执行松散耦合交易的节点构成的共识圈;所述区块链节点用于:
侦听并接收来自所述松散耦合共识圈内的交易方发起的松散耦合消息请求;其中,所述松散耦合消息请求包括所述松散耦合共识圈内的所有参与方各自所在的节点的哈希标识,其中,所述哈希标识为对每个节点在所述区块链网络中的唯一标识GID进行哈希运算得到的信息,其中每个节点的所述唯一标识GID在所述区块链网络中公开;以及
基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识;
其中,所述基于对所述所有参与方各自所在的节点的所述哈希标识的校验,在所述松散耦合共识圈中对所述松散耦合消息请求进行交易共识包括:
解析所述松散耦合消息请求,得到所述松散耦合共识圈内的所有参与方的信息、以及所述所有参与方各自所在的节点的哈希标识;
根据所述所有参与方的信息,获取所述所有参与方各自所在的节点的所述唯一标识GID;
对所述所有参与方各自所在的节点的所述唯一标识GID进行所述哈希运算,得到所述所有参与方各自所在的节点的标识验证信息;以及
基于所述所有参与方各自所在的节点的标识验证信息、和所述所有参与方各自所在的节点的哈希标识的对比,所述区块链节点得到自己对所述松散耦合消息请求的验证结果。
8.根据权利要求7所述的区块链节点,其中,所述区块链节点还用于:
获取全局参数GP,其中,所述全局参数GP为所述区块链网络中的任意一个节点执行初始化程序GlobalSetup()、并通过所述区块链网络共识得到的参数;
基于所述全局参数GP得到双射群G,其中,所述全局参数GP被表示为所述双射群G的秩N和所述双射群G的生成元g的集合,其中,N=p1p2p3,其中,p1,p2,p3为3个质数;以及
通过引入标准的哈希函数H:{0,1}*→G,设置所述哈希运算。
9.根据权利要求8所述的区块链节点,其中,所述区块链节点还用于:
侦听并接收来自访问者的用于访问所述松散耦合共识圈内的目标交易信息的访问请求;其中,所述访问请求通过授权密钥加密,所述授权密钥为对所述松散耦合共识圈中的一个节点的所述唯一标识GID进行所述哈希运算得到的,其中,所述访问者为接入所述区块链网络的任意一个参与者;
基于所述区块链节点自己的所述唯一标识GID以及所述哈希运算,验证所述访问请求;以及
在所述区块链节点验证通过时,向所述访问者发送用于访问所述目标交易信息的信息。
10.一种电子设备,包括:
一个或多个存储器,其上存储有计算机可执行指令;
一个或多个处理器,所述处理器执行所述指令,以实现根据权利要求1~6中任一项所述的松散耦合的区块链交易方法。
11.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~6中任一项所述的松散耦合的区块链交易方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011152064.5A CN112231731B (zh) | 2020-10-23 | 2020-10-23 | 松散耦合的区块链交易方法和区块链节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011152064.5A CN112231731B (zh) | 2020-10-23 | 2020-10-23 | 松散耦合的区块链交易方法和区块链节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231731A CN112231731A (zh) | 2021-01-15 |
CN112231731B true CN112231731B (zh) | 2023-12-15 |
Family
ID=74110002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011152064.5A Active CN112231731B (zh) | 2020-10-23 | 2020-10-23 | 松散耦合的区块链交易方法和区块链节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231731B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113034135A (zh) * | 2021-02-08 | 2021-06-25 | 中国工商银行股份有限公司 | 基于区块链的信息处理方法、装置、设备、介质和产品 |
CN112804260B (zh) * | 2021-03-17 | 2023-04-07 | 中国工商银行股份有限公司 | 基于区块链的信息传递方法和节点 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111311415A (zh) * | 2020-02-28 | 2020-06-19 | 中国工商银行股份有限公司 | 松散耦合的区块链交易方法、交易节点 |
CN111340491A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 一种松散耦合的区块链自主交易方法、装置和系统 |
CN111709053A (zh) * | 2020-06-11 | 2020-09-25 | 中国工商银行股份有限公司 | 基于松散耦合交易网络的作业方法及作业装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11422981B2 (en) * | 2019-04-09 | 2022-08-23 | International Business Machines Corporation | Information management and access control in a database |
-
2020
- 2020-10-23 CN CN202011152064.5A patent/CN112231731B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111340491A (zh) * | 2020-02-25 | 2020-06-26 | 中国工商银行股份有限公司 | 一种松散耦合的区块链自主交易方法、装置和系统 |
CN111311415A (zh) * | 2020-02-28 | 2020-06-19 | 中国工商银行股份有限公司 | 松散耦合的区块链交易方法、交易节点 |
CN111709053A (zh) * | 2020-06-11 | 2020-09-25 | 中国工商银行股份有限公司 | 基于松散耦合交易网络的作业方法及作业装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112231731A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110875821B (zh) | 密码学区块链互操作 | |
US20230023857A1 (en) | Data processing method and apparatus, intelligent device, and storage medium | |
WO2021184963A1 (zh) | 调用合约的方法及装置 | |
Choudhuri et al. | Fairness in an unfair world: Fair multiparty computation from public bulletin boards | |
Tian et al. | A blockchain-based machine learning framework for edge services in IIoT | |
WO2021184973A1 (zh) | 访问外部数据的方法及装置 | |
CN112804064B (zh) | 基于区块链的属性加密访问控制系统及方法 | |
US8010782B2 (en) | Method and system for mediated secure computation | |
CN109617699A (zh) | 一种密钥生成方法、区块链网络服务平台及存储介质 | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN110785782A (zh) | 使用区块链网络的多轮令牌分发系统和方法 | |
CN112231731B (zh) | 松散耦合的区块链交易方法和区块链节点 | |
CN110096894B (zh) | 一种基于区块链的数据匿名共享系统及方法 | |
CN115049398A (zh) | 一种完备的数据资产可信管理和价值流转系统和方法 | |
CN114565386A (zh) | 多方协同隐私保护的区块链托管交易方法及系统 | |
CN113393225B (zh) | 数字货币加密支付方法及系统 | |
CN116074023A (zh) | 一种认证方法和通信装置 | |
CN112804260B (zh) | 基于区块链的信息传递方法和节点 | |
Hu et al. | Privacy-preserving combinatorial auction without an auctioneer | |
CN111709053B (zh) | 基于松散耦合交易网络的作业方法及作业装置 | |
CN114710370B (zh) | 基于雾区块链和属性加密的细粒度访问控制方法及系统 | |
CN113761513A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN115599773B (zh) | 分布式资源转移方法、装置、系统与计算机设备 | |
Li et al. | A trusted and regulated data trading scheme based on blockchain and zero‐knowledge proof | |
Duan et al. | A Blockchain-Based Privacy Protection Application for Logistics Big Data |
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 |