CN111311415B - 松散耦合的区块链交易方法、交易节点 - Google Patents
松散耦合的区块链交易方法、交易节点 Download PDFInfo
- Publication number
- CN111311415B CN111311415B CN202010127698.9A CN202010127698A CN111311415B CN 111311415 B CN111311415 B CN 111311415B CN 202010127698 A CN202010127698 A CN 202010127698A CN 111311415 B CN111311415 B CN 111311415B
- Authority
- CN
- China
- Prior art keywords
- transaction
- loose coupling
- node
- version number
- consensus
- 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 53
- 238000010168 coupling process Methods 0.000 claims abstract description 208
- 238000005859 coupling reaction Methods 0.000 claims abstract description 208
- 230000008878 coupling Effects 0.000 claims abstract description 203
- 230000006870 function Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 16
- 238000012790 confirmation Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 12
- 230000002708 enhancing effect Effects 0.000 abstract description 9
- 230000008569 process Effects 0.000 abstract description 9
- 230000003993 interaction Effects 0.000 abstract description 7
- 238000012795 verification Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 12
- 239000000872 buffer Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000003672 processing method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 238000004873 anchoring Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 239000008194 pharmaceutical composition Substances 0.000 description 2
- 230000001737 promoting effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 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
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Abstract
本发明提出的松散耦合的区块链交易方法、交易节点,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
Description
技术领域
本发明属于区块链技术领域,具体地讲,设计一种松散耦合地区块链交易方法、交易节点。
背景技术
随着互联网从信息互联向价值互联再到秩序互联的跨越,区块链技术应运而生。区块链技术是一种去中心化的共识记账技术,具有去中心化、不可篡改、公开透明等特点。为了避免中心节点控制网络,区块链网络采用群体共识的方法保证交易的一致性。区块链网络具有若干共识记账节点,每个节点参与共识记账,存储全量账本,但单个节点对全量账本的修改无法影响群体共识的决策,从而保证了交易结果的安全可靠。
作为去中心化的网络系统,区块链网络中的共识记账节点要在共识完成后增加区块来确保网络中各节点的信息完备性。然而,在实际交易发生时,不是所有交易都要进行全网共识,甚至在大多数情况下,交易只在有限的范围内发生,这种情况下,上述传统区块链的交易方式则不灵活且效率低。
发明内容
本发明提供了一种松散耦合的区块链交易方法、装置和系统,以至少解决现有技术中在交易发生时需要进行全网共识从而导致效率低下地问题。
根据本发明的一个方面,一种松散耦合的交易方法,包括:
获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,所述松散耦合交易圈,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
若共识通过,调用所述应用级智能合约执行所述当前交易;并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
一实施例中,还包括:
建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
一实施例中,建立每个松散耦合交易圈,并用版本号唯一标识对应的松散耦合交易圈,包括:
广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
一实施例中,所述松散耦合交易请求还包括交易节点地址信息;各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点,包括:
各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
一实施例中,所述与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识,包括:
连同处于所述松散耦合交易圈内的其他交易节点,采用拜占庭容错算法对当前交易请求报文进行共识。
一实施例中,所述根据当前交易的hash值,计算得到当前区块所述交易hash集中对应最新版本号的hash值,包括:
将用户提供的一公钥,上一区块的hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
根据本发明的另一个方面,一种松散耦合的交易节点,包括:
最新版本号获取模块,获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,所述松散耦合交易圈,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
共识模块,若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
交易数据写入模块,若共识通过,调用所述应用级智能合约执行所述当前交易;并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
生成模块,根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
一实施例中,还包括:
松散耦合交易圈建立模块,建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
一实施例中,所述松散耦合交易圈建立模块,包括:
松散耦合交易请求广播单元,广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
通知回应信息接收单元,连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
版本号广播单元,连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
一实施例中,所述松散耦合交易请求还包括交易节点地址信息;其中各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
一实施例中,所述共识模块连同处于所述松散耦合交易圈内的其他交易节点,采用拜占庭容错算法对当前交易请求报文进行共识。
一实施例中,所述生成模块将用户提供的一公钥,上一区块的hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
根据本发明的另一个方面,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述所述松散耦合的区块链交易方法。
根据本发明的另一个方面,一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述所述松散耦合的区块链交易方法。
本发明提出的松散耦合的区块链交易方法及交易节点,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例中一种基于松散耦合的区块链多重交易示意图。
图2示出了本发明实施例中一种基于松散耦合的区块链多重交易账本区块示意图;
图3示出了本发明实施例中一种基于松散耦合的区块链多重交易账本区块验证示意图;
图4示出了本发明实施例中一种基于松散耦合的区块链多重交易账本交易认证示意图;
图5示出了本发明实施例中一种基于松散耦合的区块链中交易请求报文格式示意图;
图6示出了本发明实施例中一种基于松散耦合的区块链多重交易账本版本分发流程图;
图7示出了本发明实施例中一种基于松散耦合的区块链多重交易账本区块交易认证流程图;
图8示出了本发明实施例中一种基于松散耦合的区块链多重交易账本共识存储流程图;
图9示出了本发明实施例中一种松散耦合的交易方法流程示意图;
图10示出了本发明实施例中一种松散耦合的交易节点流程示意图;
图11示出了适用于本发明实施例的计算机设备结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
区块链网络中的共识记账节点要在共识完成后增加区块以确保网络中个节点的信息完备性。然而,在实际交易发生时,并不是所有交易都需要进行全网共识,而是交易只需要在有限的范围内发生共识,因此,为了解决传统的区块链需要进行全网共识的问题,本发明提供了一种松散耦合交易圈,其构建在传统的区块链网络上,与传统的区块链交易相比,松散耦合交易圈无需事先锚定联盟成员以组成相对稳固的网络。本发明提出的方法引入了松散耦合共识智能合约和应用级智能合约的概念,其中,松散耦合共识智能合约执行松散耦合协议,根据松散耦合交易圈的范围,锚定交易的参与方所属的节点,实现在有限范围内的共识记帐,应用级智能合约负责在执行业务交易时调用松散耦合共识智能合约。松散耦合协议支持任意数量的交易方自主加入和撤出交易联盟,构建灵活生态。
区块链经过一系列交易后,达到最终的交易状态,其中,状态用σ表示,包括区块链交易的账户余额、顺序号、时间戳、交易对手等数据;区块链交易用T表示,是连接前后两个状态的合法规则,状态在形式上的表示如下:
σt+1=γ(σt,T)
其中,γ表示状态转移函数。为了区别于传统的区块链交易,在状态转移函数中引入版本号v,即γv,且v∈N,v≥0,当v=0时,γv表示传统区块链交易;当v>0时,γv表示执行松散耦合交易。需要指出的是,版本号v在全网唯一,使用的版本号v在全网共识记帐节点存证,用于区分不同松散耦合交易圈的智能合约状态转移函数。具体如下:
σt+1=γv(σt,T)
上述关系形式化表现为:
执行松散耦合智能合约状态转移函数γv后,交易信息只物理存储在交易方所属节点。
本发明中,所述的交易节点,即为交易方的验证节点,例如对于参与方A是一银行机构,则其对应的验证节点是参与方A的处于区块链网络中的客户终端。
如图1所示,一种松散耦合的区块链自主交易系统和方法示意图包括:区块链基础设施云(BaaS)1、区块链共识记账节点2、松散耦合交易圈3、松散耦合交易圈4、交易方5。其中,松散耦合交易圈3和4的本质都一样,只是具有不同的交易方数量。
区块链基础设施云(BaaS)1:负责根据用户的组网资源请求,提供分配网络资源、计算资源和存储资源,创建区块链组网服务,支持根据用户的区块链产品标准,选择区块链产品镜像,创建虚拟节点。
区块链共识记账节点2:区块链网络具有若干个区块链共识记账节点,作为区块链计算节点,主要负责区块链交易接入和处理,提供智能合约执行、交易共识和交易记账。在区块链基础设施云(BaaS)1中,区块链共识记账节点均为虚拟计算节点。
松散耦合交易圈3:在区块链基础设施云1中,由交易方临时组成的交易圈。进一步的,交易方根据交易需要,任意选择其它交易方组建的临时交易圈,为达成交易,执行局部共识协议,交易数据只存储在交易方所在节点,并不像传统区块链网络那样扩散到全网节点。本松散耦合圈由3个交易方构成:参与人A、参与人B、参与人C。
松散耦合交易圈4:在区块链基础设施云1中,由交易方临时组成的交易圈。进一步的,交易方根据业务需要,任意选择其它交易方组建的临时交易圈,为达成交易,执行局部共识协议,交易数据只存储在交易方所在节点,并不像传统区块链网络那样扩散到全网节点。本松散耦合圈由3个交易方构成:参与人D、参与人E。
交易方5:执行区块链共识交易的交易参与方。
与传统区块链交易相比,松散耦合交易圈构建在传统区块链网络基础上,无须事先锚定联盟成员以组成相对稳固的网络,且只有交易方所属共识记帐节点存储交易账本,提高了数据存储效率;松散耦合交易还具有交易方式灵活、执行效率高等特点,但同时也面临多重性交易,偶发性发生,认证过程复杂等难点。
为此,本发明的核心构思在于通过增强区块中的松散耦合Hash索引进一步提高多个松散耦合交易圈的安全性和效率。
具体而言,本发明首先对区块链中的区块结构进行了修改,以版本号为唯一标识,锚定交易群组,每个交易群组表示一个松散耦合交易圈,例如版本号为V0表示区块链的全网共识时的交易圈,此时松散耦合交易圈被界定为区块链全网,版本号为V1表示A、B以及C组成的松散耦合交易圈3。
如图2所示,一种基于松散耦合的区块链多重交易账本区块示意图包括:区块20、前项交易Hash集201、交易数据集202、时间戳203、交易Hash集204、前项交易根PHash(v=0)2011、交易根Hash(v=0)2041、区块链交易21、区块链交易Hash22。
区块20:区块是永久记录区块链交易数据的文件,一个区块记录最近发生的交易信息,譬如一页分类账或登记簿。每当一个区块完成,就会链接到区块链的尾端,实现交易数据的永久存储。
前项交易Hash集201:采用keccak-256算法计算前项区块的Hash值,根据版本号v分别存储,形式上,表示为PHv。
交易数据集202:采用keccak-256算法计算交易的Hash值,根据版本号v分别存储,形式上,表示为THv。
时间戳203:一个其值等于UNIX函数Time()的数量值,表示产生区块的时间戳。
交易Hash集204:采用keccak-256算法计算区块的Hash值,根据版本号v分别存储,形式上,表示为Hv。
前项交易根Hash(v=0)2011:采用keccak-256算法计算版本号v为0的前项交易根Hash值Hv。形式上,
TRIE(LS(σV))≡σ[a]S
其中,TRIE表示梅克尔.帕特里夏树(Merkle Tree)模型,LS(σV)表示版本号为v的前项交易树的根Hash值,σ[a]S表示账号a的状态σ根Hash。
交易根Hash(v=0)2041:采用keccak-256算法计算版本号v为0的交易根Hash值Hv。形式上,
TRIE(LS(σV))≡σ[a]S
其中,TRIE表示梅克尔.帕特里夏树(Merkle Tree)模型,LS(σV)表示版本号为v的交易树的根Hash值,σ[a]S表示账号a的状态σ根Hash。
设Tp表示应用级智能合约交易,Ts表示松散耦合共识智能合约交易,扩展得到以下式子:
σt+1=∏(σt,B)
其中,
B=(...,(Tp,1,Ts,1),(Tp,0,Ts,0),...)
∏(σ,B)≡Ω(B,γ(γ(σ,(Tp,0,Ts,0)),(Tp,1,Ts,1))...)
Ω表示最终状态,B表示交易序列,Tp,0,Tp,1分别表示第0,1个应用级智能合约交易序列,Ts,0,Ts,1分别表示第0,1个松散耦合共识智能合约交易序列,(Tp,0,Ts,0)表示一个由应用级和松散耦合共识智能合约交易构成的组合。
为了验证交易的正确性,须满足以下关系式:
Hv=TRIE(LS(∏(σ,β)))
区块链交易21:表示区块链交易TX1。
区块链交易Hash 22:表示Hash0和Hash1的Hash值。
通过上述区块结构设置,可以增强hash索引,进而能够提高多重松散耦合交易圈的安全性和效率。
在具体应用过程中,如图3所示,对于一交易节点的账本,包括:区块(1)31、区块(2)32、区块(3)33、区块(4)34、区块(5)35、交易根Hash321、版本号(v0)322、版本号(v1)323、区块链交易324。
区块(1)31:表示区块1,交易群组的初始版本号V为0。
区块(2)32:表示区块2,交易群组新增了版本号V为1。
区块(3)33:表示区块3,版本号V0的交易群组中,新增交易Hash,与区块2链接。
区块(4)34:表示区块4,版本号V0的交易群组中,新增交易Hash,与区块3链接。
区块(5)35:表示区块5,版本号V1的交易群组中,新增交易Hash,与区块4链接。
交易根Hash321:采用keccak-256算法计算交易的Hash值,版本号v为1的根Hash。
版本号(v0)322:表示版本号v为0的交易群组。
版本号(v1)323:表示版本号v为1的交易群组。
区块链交易324:表示版本号为v1的区块链交易。
以区块2和区块3作为示例,区块2相对于区块3是上一区块,假设当前区块是区块3,根据图中的区块2的V0交易组链接到区块3中的V0交易组,表示当前交易对应的最新版本号为V0,区块3中的V0交易组对应的hash值是根据当前交易的hash值以及区块2的hash值计算生成的,此处的理解请参见图2部分,在记账时,若对于版本号V0的hash值来说,其是由hash0至hash3的交易hash值计算生成的。也即对于当前区块3而言,由于多了一笔交易,此时V0交易群组的hash值是通过hash1至hash(N-1)与hashN计算得到。对于区块4以及区块5等类似,在此不做赘述。
通过上述区块账本的结构设置,可以知晓,本发明通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
下面对采用本发明进行应用说明,图9示出了本发明实施例中的区块链交易方法,如图9所示,包括:
S1:获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,所述松散耦合交易圈,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈。
具体的,版本号可以是V0、V1至Vn,每个交易请求需要针对特定的松散耦合交易圈的节点完成共识,因此每个交易请求中对应一个所要求执行的松散耦合交易圈,每个版本号限定了一个松散耦合交易圈。例如一交易请求中对应版本号V0,则表示该交易需要全网共识;一交易请求对应V1,则表明需要借助于上述的松散耦合交易圈3来进行。
S2:若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识。
在区块链中,由一个上传交易请求的节点将交易请求广播给其他所有交易节点,显然大多数情况下上传的节点一般属于对应的松散耦合交易圈,因此上传的节点无需进行判断,对于其他节点,则需要判断自身是否属于松散耦合交易圈内的节点。
可以理解,本发明所述的处于所述松散耦合交易圈内的其他交易节点与执行步骤S2的节点共同组成松散耦合交易圈。
具体而言,可以通过交易请求中的交易方地址信息来判断,如图5所示的交易请求报文格式。
处于所述松散耦合交易圈内的所有节点共同执行共识操作。具体的,采用拜占庭容错算法对当前交易请求报文进行共识。
S3:若共识通过,调用所述应用级智能合约执行所述当前交易;并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值。
当共识通过后,需要调用应用级智能合约执行所述当前交易,并写入区块,区块的结构如上述所示,其包括hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值。
S4:根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
根据上述的发明构思可以知晓,具体的,将用户提供的一公钥,上一区块的hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
如图4所示的交易群组集,交易Hash值4212:表示当前交易的Hash值,形式上为HV,通常由前项区块Hash、B1公钥4211、当前交易群组Hash共同产生的Hash而成,HV满足如下关系:
HV=kec(PHV,THV,Ou)
其中,kec表示采用keccak-256算法计算的Hash函数,PHV表示前项区块Hash,THV当前交易群组Hash,Ou表示B1公钥(u=B1)。
交易群组(V0)和交易群组(V1)存在于同一个区块中,彼此物理隔离。交易群组内各交易通过用户数字签名和验签,能够确保交易的真实性。以版本号v为1的交易群组为例,各模块的关系如下:
用户B1提供B1公钥4211Ou,与前项区块Hash值PHV、当前交易群组Hash值THV(T=T0)共同产生交易Hash值4212,形式上表示为:
HV=kec(PHV,THV,Ou)
其中,kec表示采用keccak-256算法计算的Hash函数,PHV表示前项区块Hash,THV当前交易群组Hash,Ou表示B1公钥(u=B1)。
用户A1提供私钥,采用签名函数sign对HV进行签名,具体如下:
HV=sign(HV,Pu)
其中,Pu表示拥护A1的私钥(u=A1)。
验签时,用户B1提供公钥Ou(u=B1),采用验签函数verify对HV进行验签,具体如下:
R=verify(HV,Ou)
其中,R表示验证反馈结果,成功反馈0,失败返回1。
在一些实施例中,本发明还包括:
建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
具体而言,每个交易圈的建立步骤如下:
S01:广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
S02:连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
S03:连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
可以理解,连同即共同的意思,在此不做赘述。
在一些实施例中所述松散耦合交易请求还包括交易节点地址信息;各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点,包括:
各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
从上述描述可知,本发明提供的区块链交易方法,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
下面结合具体场景对本发明进行详细说明。
形成松散耦合交易圈
如图6,步骤S600:交易方A通过向其它交易方发送松散耦合请求广播,实现松散耦合。请求广播消息报文包含目标交易方的地址信息,本例的交易方包括交易方B、C。设PT表示交易T的松散耦合交易报文,形式上:
PT=(v,n,(ρ1,ρ2,...,ρn),...,chksum)
其中,v是版本号,n是交易方数量,ρ1,ρ2,...,ρn表示1到n个交易方的id号和IP地址,chksum是校验位。
步骤S601:交易方B接收交易方A发送的版本号申请共识请求;
步骤S602:解析版本号申请共识请求报文,提取交易方地址信息。判断包含本地址,向交易方A、C、D发送共识请求。
步骤S603:交易方C接收交易方A发送的版本号申请共识请求;
步骤S604:解析版本号申请共识请求报文,提取交易方地址信息。判断包含本地址,向交易方A、B、D发送共识请求。
步骤S605:交易方D接收交易方A发送的版本号申请共识请求;
步骤S606:解析版本号申请共识请求报文,提取交易方地址信息。判断包含本地址,向交易方A、B、C发送共识请求。
步骤S607:接收交易方A、B、C的通知回应消息,检查校验通知信息的合法性和签名信息。
步骤S608:向交易方B、C、D发送版本号申请成功确认信息;
步骤S609:接收交易方A、C、D的通知回应消息,检查校验通知信息的合法性和签名信息。
步骤S610:向交易方A、C、D发送版本号申请成功确认信息;
步骤S611:接收交易方A、B、D的通知回应消息,检查校验通知信息的合法性和签名信息。
步骤S612:向交易方A、B、D发送版本号申请成功确认信息;
步骤S613:接收交易方A、B、C的通知回应消息,检查校验通知信息的合法性和签名信息;
步骤S614:向交易方A、B、C发送版本号申请成功确认信息。
步骤S615:交易方A接收版本号共识确认通知,广播当前最新版本号。
步骤S616:交易方B接收版本号共识确认通知,广播当前最新版本号。
步骤S617:交易方C接收版本号共识确认通知,广播当前最新版本号。
步骤S618:交易方D接收版本号共识确认通知,广播当前最新版本号。
步骤S619:接收当前最新版本号。
步骤S620:流程执行结束。
交易执行
如图7所示,步骤S700:获取全网最新的版本号;
步骤S701:交易方A通过所在验证节点向交易方B、C发送局部共识请求,因交易方D未松散耦合交易圈,故交易方A所在验证节点不再向交易方D发送松散耦合请求;
步骤S702:交易方A所在验证节点侦听并接收来自交易方A的松散耦合消息请求,并进行消息安全性校验;
步骤S703:交易方A所在的验证节点解析并提取局部共识交易的消息请求报文,获取松散耦合交易圈的交易方,本例为A、B、C;采用PBFT(拜占庭容错)算法,在A、B、C所在的验证节点中进行交易共识。
步骤S704:交易方B所在验证节点侦听并接收来自交易方A的松散耦合消息请求,并进行消息安全性校验;
步骤S705:交易方B所在的验证节点解析并提取局部共识交易的消息请求报文,获取松散耦合交易圈的交易方,本例为A、B、C;采用PBFT(拜占庭容错)算法,在A、B、C所在的验证节点中进行交易共识。
步骤S706:交易方C所在的验证节点侦听并接收来自交易方A的松散耦合消息请求,并进行消息安全性校验;
步骤S707:交易方C所在的验证节点解析并提取局部共识交易的消息请求报文,获取松散耦合交易圈的交易方,本例为A、B、C;采用PBFT(拜占庭容错)算法,在A、B、C所在的验证节点中进行交易共识。
步骤S708:在交易方A所在的验证节点,接收来自其他节点的交易信息,并根据版本号V,对存量的交易进行校验。为了验证交易的正确性,须满足以下关系式:
Hv=TRIE(LS(∏(σ,β)))
设Tp表示应用级智能合约交易,Ts表示松散耦合共识智能合约交易,扩展得到以下式子:
σt+1=∏(σt,B)
其中,
B=(...,(Tp,1,Ts,1),(Tp,0,Ts,0),...)
∏(σ,B)≡Ω(B,γ(γ(σ,(Tp,0,Ts,0)),(Tp,1,Ts,1))...)
Ω表示最终状态,B表示交易序列,Tp,0,Tp,1分别表示第0,1个应用级智能合约交易序列,Ts,0,Ts,1分别表示第0,1个松散耦合共识智能合约交易序列,(Tp,0,Ts,0)表示一个由应用级和松散耦合共识智能合约交易构成的组合。
步骤S709:若智能合约认证成功,发送通知广播。
步骤S710:在交易方B所在的验证节点,接收来自其他节点的交易信息,并根据版本号V,对存量的交易进行校验。具体参考步骤S708。
步骤S711:若智能合约认证成功,发送通知广播。
步骤S712:在交易方B所在的验证节点,接收来自其他节点的交易信息,并根据版本号V,对存量的交易进行校验。具体参考步骤S708。
步骤S713:若智能合约认证成功,发送通知广播。
步骤S714:执行智能合约交易,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。形式上表示为:
HV=kec(PHV,THV,Ou)
其中,HV表示为当前交易的Hash值,kec表示采用keccak-256算法计算的Hash函数,PHV表示前项区块Hash,THV当前交易群组Hash,Ou表示用户公钥(u=B1)。
步骤S715:执行智能合约交易,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。具体参考步骤S714。
步骤S716:执行智能合约交易,将用户提供公钥、前项区块Hash、当前交易Hash共同形成Hash,同时,检查局部共识消息,在本地存储交易信息。具体参考步骤S714。
局部共识
如图8所示,包括布署合约、成员服务、局部共识3个阶段。具体步骤如下:
一、布署合约阶段
步骤S800:交易方通过验证节点布署智能合约,向虚拟机桥接模块发起布署智能合约申请。
步骤S801:虚拟机桥接模块发出虚拟机容器创建指令,创建虚拟机容器,并准备接受来自虚拟机容器的消息。
步骤S802:虚拟机容器创建成功后,向智能合约仓库发出智能合约装载指令。
步骤S803:根据S802的智能合约装载指令,从智能合约仓库调取智能合约,并装载到虚拟机容器的缓存中。
步骤S804:校验智能合约,检查其合法性。
步骤S805:虚拟机桥接模块将检查结果,布署成功消息反传验证节点。
步骤S806:验证节点侦听并接收智能合约布署结果的消息。
成员服务阶段
步骤S807:交易方通过验证节点发起智能合约调用申请,向虚拟机桥接模块发起布署智能合约申请。
步骤S808:虚拟机桥接模块根据S807提供的智能合约调用申请,生成智能合调用指令。
步骤S809:根据S808的智能合约调用指令,从智能合约仓库调取智能合约,并装载到虚拟机容器的缓存中。
步骤S810:检查智能合约的合约类型及版本号,根据合约类型判断,分别执行应用级智能合约和松耦共识智能合约。
步骤S811:在虚拟机容器中执行执行传统共识处理,向全网广播交易共识报文。
步骤S812:在虚拟机容器中执行松耦共识处理,向特定交易方发送交易共识请求,组成松耦交易共识圈。详情参考图6操作步骤。
步骤S813:虚拟机容器将执行松耦共识处理的执行结果、状态等通知消息返传给虚拟机桥接模块。
步骤S814:验证节点侦听并接收从虚拟机桥接模块返传的通知消息。
二、局部共识阶段
在执行步骤S814后,松散耦合交易圈已经形成,局部共识阶段在松散耦合交易圈进行。
步骤S815:交易方通过验证节点向智能合约桥接模块发起局部共识请求;
步骤S816:智能合约桥接模块向松散耦合交易方所在的验证节点发送局部共识请求;
步骤S817:松散耦合交易方所在的验证节点通过PBFT(拜占庭容错)算法实现交易共识,并返传共识消息。
步骤S818:局部共识成功后,根据交易信息局部存储策略存储交易信息和世界状态。
从上述场景描述可以知晓,本发明通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。本发明有以下优点:
1、通过松散耦合共识智能合约和应用级智能合约的相互作用,实现交易方在执行基于区块链的交易共识过程中自主锚定任意数量的交易方,形成松散耦合交易圈,提高了交易方自主加入、退出交易的自主性;
2、通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证;
3、通过提供基于版本号的交易群组,使区块链交易网络形成多个并发执行的交易圈,提高了系统灵活性和并发执行效率,有利于高效联盟生态的发展;
4、由于基于版本号的交易群组物理隔离,有效地防范了交易隐私和信息泄露,具有较高的安全性。
基于相同的发明构思,如图10所示,本发明另一方面实施例提供一种松散耦合的交易节点,包括:
最新版本号获取模块1,获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,所述松散耦合交易圈,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
共识模块2,若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
交易数据写入模块3,若共识通过,调用所述应用级智能合约执行所述当前交易;并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
生成模块4,根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
一实施例中,还包括:
松散耦合交易圈建立模块,建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
一实施例中,所述松散耦合交易圈建立模块,包括:
松散耦合交易请求广播单元,广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
通知回应信息接收单元,连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
版本号广播单元,连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
一实施例中,所述松散耦合交易请求还包括交易节点地址信息;其中各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
一实施例中,所述共识模块连同处于所述松散耦合交易圈内的其他交易节点,采用拜占庭容错算法对当前交易请求报文进行共识。
一实施例中,所述生成模块将用户提供的一公钥,上一区块的hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
本发明提出的松散耦合的区块链交易节点,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
从硬件层面来说,为了解决合约容器间缓存数据的一致性问题,本发明提供一种用于实现所述区块链交易处理方法中的全部或部分内容的电子设备的实施例,所述电子设备具体包含有如下内容:
处理器(processor)、存储器(memory)、通信接口(Communications Interface)和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述通信接口用于实现服务器、装置、分布式消息中间件集群装置、各类数据库以及用户终端等相关设备之间的信息传输;该电子设备可以是台式计算机、平板电脑及移动终端等,本实施例不限于此。在本实施例中,该电子设备可以参照实施例中的区块链交易处理方法的实施例,以及,区块链交易处理装置的实施例进行实施,其内容被合并于此,重复之处不再赘述。
图11为本发明实施例的电子设备9600的系统构成的示意框图。如图11所示,该电子设备9600可以包括中央处理器9100和存储器9140;存储器9140耦合到中央处理器9100。值得注意的是,该图11是示例性的;还可以使用其他类型的结构,来补充或代替该结构,以实现电信功能或其他功能。
一实施例中,区块链交易处理功能可以被集成到中央处理器9100中。例如,中央处理器9100可以被配置为进行如下控制:
S1:获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,所述松散耦合交易圈,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
S2:若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
S3:若共识通过,调用所述应用级智能合约执行所述当前交易;并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
S4:根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
从上述描述可知,本发明的实施例提供的电子设备,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
在另一个实施方式中,区块链交易处理装置可以与中央处理器9100分开配置,例如可以将区块链交易处理配置为与中央处理器9100连接的芯片,通过中央处理器的控制来实现区块链交易处理功能。
如图11所示,该电子设备9600还可以包括:通信模块9110、输入单元9120、音频处理器9130、显示器9160、电源9170。值得注意的是,电子设备9600也并不是必须要包括图11中所示的所有部件;此外,电子设备9600还可以包括图11中没有示出的部件,可以参考现有技术。
如图11所示,中央处理器9100有时也称为控制器或操作控件,可以包括微处理器或其他处理器装置和/或逻辑装置,该中央处理器9100接收输入并控制电子设备9600的各个部件的操作。
其中,存储器9140,例如可以是缓存器、闪存、硬驱、可移动介质、易失性存储器、非易失性存储器或其它合适装置中的一种或更多种。可储存上述与失败有关的信息,此外还可存储执行有关信息的程序。并且中央处理器9100可执行该存储器9140存储的该程序,以实现信息存储或处理等。
输入单元9120向中央处理器9100提供输入。该输入单元9120例如为按键或触摸输入装置。电源9170用于向电子设备9600提供电力。显示器9160用于进行图像和文字等显示对象的显示。该显示器例如可为LCD显示器,但并不限于此。
该存储器9140可以是固态存储器,例如,只读存储器(ROM)、随机存取存储器(RAM)、SIM卡等。还可以是这样的存储器,其即使在断电时也保存信息,可被选择性地擦除且设有更多数据,该存储器的示例有时被称为EPROM等。存储器9140还可以是某种其它类型的装置。存储器9140包括缓冲存储器9141(有时被称为缓冲器)。存储器9140可以包括应用/功能存储部9142,该应用/功能存储部9142用于存储应用程序和功能程序或用于通过中央处理器9100执行电子设备9600的操作的流程。
存储器9140还可以包括数据存储部9143,该数据存储部9143用于存储数据,例如联系人、数字数据、图片、声音和/或任何其他由电子设备使用的数据。存储器9140的驱动程序存储部9144可以包括电子设备的用于通信功能和/或用于执行电子设备的其他功能(如消息传送应用、通讯录应用等)的各种驱动程序。
通信模块9110即为经由天线9111发送和接收信号的发送机/接收机9110。通信模块(发送机/接收机)9110耦合到中央处理器9100,以提供输入信号和接收输出信号,这可以和常规移动通信终端的情况相同。
基于不同的通信技术,在同一电子设备中,可以设置有多个通信模块9110,如蜂窝网络模块、蓝牙模块和/或无线局域网模块等。通信模块(发送机/接收机)9110还经由音频处理器9130耦合到扬声器9131和麦克风9132,以经由扬声器9131提供音频输出,并接收来自麦克风9132的音频输入,从而实现通常的电信功能。音频处理器9130可以包括任何合适的缓冲器、解码器、放大器等。另外,音频处理器9130还耦合到中央处理器9100,从而使得可以通过麦克风9132能够在本机上录音,且使得可以通过扬声器9131来播放本机上存储的声音。
本发明的实施例还提供能够实现上述实施例中的区块链交易处理方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中区块链交易处理方法的全部步骤。
从上述描述可知,本发明的实施例提供的计算机可读存储介质,支持交易方在交易的过程中自主锚定任意数量的参与者,形成松散耦合交易圈,并通过松散耦合智能合约和应用级智能合约的相互作用确保交易共识限制在松散耦合交易圈的范围内执行。本方法提高了交易方的自主性和共识效率,并且通过增强区块中的松散耦合Hash索引,支持交易方所属节点对多个松散耦合交易圈所产生的多重交易进行认证,促进交易的安全性和效率提升。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(装置)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种松散耦合的区块链交易方法,其特征在于,包括:
获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,每个所述松散耦合交易圈中的节点数量小于等于区块链网络中全部节点数量,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
若共识通过,调用所述应用级智能合约执行所述当前交易,并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
2.根据权利要求1所述的交易方法,其特征在于,还包括:
建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
3.根据权利要求2所述的交易方法,其特征在于,建立每个松散耦合交易圈,并用版本号唯一标识对应的松散耦合交易圈,包括:
广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
4.根据权利要求3所述的交易方法,其特征在于,所述松散耦合交易请求还包括交易节点地址信息;各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点,包括:
各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
5.根据权利要求1所述的交易方法,其特征在于,所述与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识,包括:
连同处于所述松散耦合交易圈内的其他交易节点,采用拜占庭容错算法对当前交易请求报文进行共识。
6.根据权利要求1所述的交易方法,其特征在于,所述根据当前交易的hash值,计算得到当前区块所述交易hash集中对应最新版本号的hash值,包括:
将用户提供的一公钥,上一区块对应最新版本的交易群组hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
7.一种松散耦合的区块链交易节点,其特征在于,包括:
最新版本号获取模块,获取当前交易请求报文对应的最新版本号,每个版本号与一松散耦合交易圈一一对应,每个所述松散耦合交易圈中的节点数量小于等于区块链网络中全部节点数量,所述松散耦合交易圈包括多个交易节点,每个交易节点对应的容器内部署有应用级智能合约和松散耦合共识智能合约,所述松散耦合共识智能合约用于通过共识确定所述松散耦合交易圈;
共识模块,若自身属于所述最新版本号对应的松散耦合交易圈内的节点,与处于所述松散耦合交易圈内的其他交易节点共同对当前交易执行共识;
交易数据写入模块,若共识通过,调用所述应用级智能合约执行所述当前交易,并将交易数据写入对应区块的交易数据集,所述区块还包括:hash索引集以及交易hash集,所述hash索引集包括上一区块中每个版本号对应的交易群组hash值,所述交易hash集包括当前区块中每个版本号对应的交易群组hash值;
生成模块,根据当前交易的hash值和hash索引集中上一区块对应最新版本的交易群组hash值,计算得到当前区块所述交易hash集中对应最新版本号的交易群组hash值。
8.根据权利要求7所述的交易节点,其特征在于,还包括:
松散耦合交易圈建立模块,建立多个松散耦合交易圈,并用版本号唯一标识每个松散耦合交易圈。
9.根据权利要求8所述的交易节点,其特征在于,所述松散耦合交易圈建立模块,包括:
松散耦合交易请求广播单元,广播松散耦合交易请求,以使各交易节点根据收到的松散耦合交易请求判断自身是否为松散耦合交易圈内的节点;所述松散耦合交易请求包括一唯一版本号;
通知回应信息接收单元,连同其他判断自身属于所述松散耦合交易圈内的节点,接收非自身交易节点发送的达成松散耦合的通知回应消息;
版本号广播单元,连同其他判断自身属于所述松散耦合交易圈内的节点,发送版本号申请成功确认信息并广播所述版本号,以告知所述松散耦合交易圈内的非自身节点。
10.根据权利要求9所述的交易节点,其特征在于,所述松散耦合交易请求还包括交易节点地址信息;其中各交易节点判断自身地址信息是否包括于松散耦合交易请求中的地址信息中,若包括则确定自身为松散耦合交易圈内的节点。
11.根据权利要求7所述的交易节点,其特征在于,所述共识模块连同处于所述松散耦合交易圈内的其他交易节点,采用拜占庭容错算法对当前交易请求报文进行共识。
12.根据权利要求7所述的交易节点,其特征在于,所述生成模块将用户提供的一公钥,上一区块对应最新版本的交易群组hash值以及当前交易的hash值输入至预设hash函数,得到所述最新版本号对应的交易群组hash值;所述预设hash函数基于keccak-256算法设置。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至6中任意一项所述松散耦合的区块链交易方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述松散耦合的区块链交易方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127698.9A CN111311415B (zh) | 2020-02-28 | 2020-02-28 | 松散耦合的区块链交易方法、交易节点 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010127698.9A CN111311415B (zh) | 2020-02-28 | 2020-02-28 | 松散耦合的区块链交易方法、交易节点 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111311415A CN111311415A (zh) | 2020-06-19 |
CN111311415B true CN111311415B (zh) | 2023-11-24 |
Family
ID=71147805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010127698.9A Active CN111311415B (zh) | 2020-02-28 | 2020-02-28 | 松散耦合的区块链交易方法、交易节点 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111311415B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111767569A (zh) * | 2020-06-23 | 2020-10-13 | 中国工商银行股份有限公司 | 区块链的访问授权方法及节点 |
CN111813441B (zh) * | 2020-09-10 | 2021-02-02 | 腾讯科技(深圳)有限公司 | 智能合约发布方法、装置、计算机可读介质及电子设备 |
CN112231731B (zh) * | 2020-10-23 | 2023-12-15 | 中国工商银行股份有限公司 | 松散耦合的区块链交易方法和区块链节点 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360248A (zh) * | 2017-07-31 | 2017-11-17 | 众安信息技术服务有限公司 | 用于配置局部共识的方法和装置及计算机可读存储介质 |
CN109472568A (zh) * | 2018-10-23 | 2019-03-15 | 顺丰科技有限公司 | 一种区块链交易方法、装置、管理系统、设备及存储介质 |
WO2019147295A1 (en) * | 2018-01-29 | 2019-08-01 | Ubiquicorp Limited | Proof of majority block consensus method for generating and uploading a block to a blockchain |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
-
2020
- 2020-02-28 CN CN202010127698.9A patent/CN111311415B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360248A (zh) * | 2017-07-31 | 2017-11-17 | 众安信息技术服务有限公司 | 用于配置局部共识的方法和装置及计算机可读存储介质 |
WO2019147295A1 (en) * | 2018-01-29 | 2019-08-01 | Ubiquicorp Limited | Proof of majority block consensus method for generating and uploading a block to a blockchain |
CN109472568A (zh) * | 2018-10-23 | 2019-03-15 | 顺丰科技有限公司 | 一种区块链交易方法、装置、管理系统、设备及存储介质 |
CN110650189A (zh) * | 2019-09-20 | 2020-01-03 | 深圳供电局有限公司 | 一种基于中继的区块链的交互系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111311415A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111311415B (zh) | 松散耦合的区块链交易方法、交易节点 | |
CN110288345B (zh) | 跨链通信方法、装置、主链节点及存储介质 | |
CN112615871B (zh) | 一种跨链发送可认证消息的方法和装置 | |
CN112862612A (zh) | 一种跨链发送资源的方法和装置 | |
CN111275555B (zh) | 区块链交易处理方法、交易节点以及区块链系统 | |
CN111240732B (zh) | 分布式微服务的发布方法、装置、设备及存储介质 | |
CN110430235B (zh) | 跨链发送可认证消息的方法、装置、存储介质和计算设备 | |
CN111767569A (zh) | 区块链的访问授权方法及节点 | |
CN108764875B (zh) | 区块链的转账方法、装置、系统和计算机可读存储介质 | |
CN111932239B (zh) | 业务处理方法、装置、节点设备及存储介质 | |
CN110889761A (zh) | 一种跨链交易方法及存储介质 | |
CN113474804A (zh) | 数字货币的交易和账户验证方法,装置及存储介质 | |
CN111709053B (zh) | 基于松散耦合交易网络的作业方法及作业装置 | |
CN111401888B (zh) | 一种生成多重签名钱包的方法及装置 | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN116886718A (zh) | 基于交易权重的数据存储方法及装置 | |
CN111340491B (zh) | 一种松散耦合的区块链自主交易方法、装置和系统 | |
CN110930133A (zh) | 一种基于区块链的电子货币处理方法及存储介质 | |
Paavolainen et al. | Decentralized beacons: Attesting the ground truth of blockchain state for constrained IoT devices | |
US20220004541A1 (en) | Device for carrying out transactions and operating method therefor | |
CN116743377B (zh) | 基于区块链密钥的数据处理方法、装置、设备及存储介质 | |
CN116777631B (zh) | 基于区块链的交易上链方法及装置、设备、介质 | |
CN114881643A (zh) | 银行卡挂失方法、装置及系统 | |
CN116910146A (zh) | 区块链的信息验证方法、装置及设备 | |
CN116523519A (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 |