CN109409878B - 经由双层联盟链进行交易的方法 - Google Patents
经由双层联盟链进行交易的方法 Download PDFInfo
- Publication number
- CN109409878B CN109409878B CN201811183694.1A CN201811183694A CN109409878B CN 109409878 B CN109409878 B CN 109409878B CN 201811183694 A CN201811183694 A CN 201811183694A CN 109409878 B CN109409878 B CN 109409878B
- Authority
- CN
- China
- Prior art keywords
- transaction
- node
- witness
- data
- transaction data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
Landscapes
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Technology Law (AREA)
- Marketing (AREA)
- Economics (AREA)
- Computer Security & Cryptography (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本公开涉及经由双层联盟链进行交易的方法。一种经由包括多个见证人节点和多个业务节点的双层联盟链进行交易的方法,包括如下步骤:由见证人节点从交易的接收方业务节点接收经由交易的发起方和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据;交易见证;将包括经见证人节点签名的交易数据的经见证的交易数据直接推送到交易的发起方和接收方业务节点;通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及将所述指纹数据的区块被广播到所述双层联盟链。
Description
技术领域
本公开涉及经由双层联盟链进行交易的方法、装置及双层联盟链***。
背景技术
近年来,代替传统的中心化交易***,发展出了基于区块链技术以及基于分布式账本技术(DLT:Distributed Ledger Technology)的新的交易方式。
在利用区块链技术进行交易时,交易被打包进相应的区块,并且区块链上的所有节点都具有按时间顺序记录的交易的公共账本。根据区块链的性质,区块链上的区块前后锁定相连,这使得在不修改区块链中的其他区块的情况下,不能篡改区块中记录的数据。但是,当涉及需要安全保护或隔离的关键性业务数据时,只能通过密码学的各种加密算法或隐私保密算法进行逻辑隔离,然而在物理存储层面上,加密后、转换后或保护后的真实交易数据(包括要保护的关键性业务数据)仍然分布在区块链上的所有节点中。在这种情况下,如果密码学的公钥体系算法被攻破,则原来存储在各个节点本地的交易数据就可以被反向操作,从而获取明文数据。
在利用分布式账本技术进行交易时,通过公证人机制以及数据裁剪等(transaction tear-off,即把交易数据发给一个节点时,可以把不需要该节点知道的具体数据从发送的内容中删除,却仍然不影响他对整个交易数据签名)来实现交易双方的业务数据物理隔离。但是,在节点收到的交易数据为不完整交易数据的情况下,无法使用明文信息通过密码学的散列算法来校验该交易的确定性和唯一性,从而使得交易的可行信度大大降低,即:通过数据裁剪进行物理隔离,提升业务敏感信息安全性,但损失了交易的可验证性、降低了信用性。
在利用分布式账本技术进行交易时,交易数据在业务节点和公证人节点之间按照线性关系进行传递。如图1中箭头所示出的,业务节点A发起交易,将经A签名的交易数据发送到业务节点B,业务节点B在对交易数据进行签名后发送到公证人节点G,公证人节点在进行相应的处理后将交易数据发送回业务节点B,最后,再由业务节点B将交易数据发送回业务节点A以使得该交易最终被确认。这种线性关系使得数据不能快速被确认从而无法快速锁定落账。
鉴于以上,现有的基于区块链和基于分布式账本进行交易的技术均不能同时满***易数据的物理隔离以及交易的快速锁定落账。
另一方面,近年来密码学中关于隐私保护的算法有了进一步的发展。
例如,提出了一种简化群签名的环签名算法,该算法是一种签名者模糊的签名方案。但是,在通过该算法保护交易数据的情况下,如果环签名中构成环的数量少,那么将降低其安全性;如果环签名中构成环的数量大,那么第一,将增加单个交易消息的长度,第二,将降低整个***的执行效率。
再例如,提出了一种全同态算法。该算法使得可以在不解密的条件下对加密数据进行任何可以在明文上进行的运算,即:它允许对密文进行特定形式的代数运算得到仍然是加密的结果,并且将加密结果解密所得到的结果与对明文进行同样的运算结果一样。但是,全同态算法进行加减乘除的全面组合运算,这使得该算法的代码实现非常困难而且性能极为低下。该算法目前还并不具有真正的应用价值。
相比之下,零知识证明作为另一种隐私保护算法,具有安全效果强、较易于实现的优点。零知识证明指的是证明者(P)能够在不向验证者(V)提供任何有用的信息的情况下,使验证者相信某个论断是正确的。零知识证明实质上是一种涉及两方或更多方的协议,即两方或更多方完成一项任务所需采取的一系列步骤。证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。在零知识协议中,需要满足以下三个性质:
-正确性,即,P无法欺骗V。换言之,若P不知道一个定理的证明方法,则P使V相信他会证明定理的概率很低;
-完备性,即,V无法欺骗P。若P知道一个定理的证明方法,则P使V以绝对优势的概率相信他能证明;以及
-零知识性,V无法获取任何额外的知识。
大量事实证明,零知识证明在密码学中非常有用,在处理数据验证问题时,零知识证明尤其安全有效。
发明内容
本公开提供了能够有利地使交易数据物理隔离并且能够使交易快速锁定落账的方案。
根据本公开的一个方面,提供了一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在见证人节点处执行,其特征在于包括:交易数据接收步骤,其中,由所述多个见证人节点中由业务路由为所述交易规定的见证人节点从交易的接收方业务节点接收经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据;交易见证步骤,其中,利用见证算法对所述交易进行见证;交易数据推送步骤,其中,将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;指纹数据生成及广播步骤,其中,通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及交易入链步骤,将包含所述指纹数据的区块被广播到所述双层联盟链。
根据本公开的又一个方面,提供了一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在业务节点处执行,其特征在于包括:交易数据生成步骤,其中,基于与所述业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;交易数据发送步骤,其中,将经签名的交易数据发送到交易的接收方业务节点以便在由接收方业务节点签名后进一步发送到由业务路由指定的见证人节点,其中,在发送到见证人节点之前,由所述业务节点和接收方业务节点对交易数据进行零知识证明处理以隐藏至少部分业务数据;交易数据接收步骤,其中,接收从见证人节点推送的经见证人节点签名的交易数据;区块接收步骤,其中,从所述多个见证人节点中的领导节点接收广播的包含所述交易数据的散列值的区块。
根据本公开的另一个方面,提供了一种用于经由双层联盟链进行交易的装置,所述双层联盟链包括多个见证人节点和多个业务节点,所述装置包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得所述装置执行如上所述的方法。
根据本公开的再一个方面,提供了一种存储有计算机可执行指令的计算机可读介质,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如上所述的方法。
根据本公开的又一个方面,提供了一种用于交易的双层联盟链***,包括多个见证人节点和多个业务节点,所述多个见证人节点和多个业务节点中的每一个都包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得相应的见证人节点或业务节点进行如下操作:由发起方业务节点基于与所述发起方业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;发起方业务节点将经签名的业务数据发送到交易的接收方业务节点;接收方业务节点接收经发起方业务节点签名的业务数据并进行签名,随后根据业务路由,将经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据转发至见证人节点;在见证人节点处:-从接收方业务节点接收交易数据并利用见证算法对所述交易进行见证;-将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;-通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及-将包含所述指纹数据的区块被广播到所述双层联盟链。
附图说明
并入说明书中并且构成说明书的一部分的附图示出了本公开的实施例,并且与描述一起用于说明本公开的原理。
图1是说明现有分布式账本技术的线性关系的示意图;
图2是根据本公开的实施例的双层联盟链***的示意图;
图3是根据本公开的实施例的见证人节点的结构配置的示意图;
图4是根据本公开的实施例的见证人节点的示意性操作流程的流程图;
图5是根据本公开的实施例的业务节点的结构配置的示意图;
图6是根据本公开的实施例的业务节点的示意性操作流程的流程图;
图7是根据本公开的实施例的经由双层联盟链***进行交易的示意图;
图8是可以实现根据本公开的实施例的计算机设备的示例性配置图。
具体实施方式
下面将参考附图来详细描述本公开的优选的实施例。不是本公开必需的细节和功能被省略,以便不会混淆本公开的理解。
请注意,类似的参考数字和字母指的是图中的类似的项目,因而一旦在一幅图中定义了一个项目,就不需要在之后的图中讨论了。
本公开中,术语“区块链”包括但不限于关于分布式存储、点对点网络、共识机制、加密算法等的技术。术语“联盟链”通常是指由多个组织或机构通过联盟的形式组建的区块链,联盟参与者之间通过契约或其他形式建立了信任和共识机制,构造区块和链接功能仅限于联盟参与者,访问权限可以对外采取限制性开放。
图2示出了根据本公开的实施例的双层联盟链***。如图2所示,该双层联盟链***例如可以划分为由底层业务节点构成的业务层以及由顶层见证人节点构成的见证共识层。业务层例如负责根据用户提供的业务数据生成完整交易数据、发起交易、确认交易并对用户进行反馈等。业务层中的各个业务节点可以存储与该节点相关联的交易的完整交易数据。见证共识层例如负责对交易进行见证、将包含交易数据的散列值打包进区块、对区块进行共识并将达成共识的区块广播到双层联盟链上的所有节点(包括见证人节点和业务节点)等。要指出的是,对于某一交易,在见证共识层中除了对该交易进行见证的见证人节点之外,其他各见证人节点仅存储该交易的交易数据的散列值(根据散列运算的性质,散列值并不会泄露任何原数据信息),这使得完整的交易数据在业务层与见证共识层之间物理隔离,从而有效地保证了交易数据的隐私安全。下文将对此进行进一步的详细说明。
下面将结合图2描述根据本公开的实施例的经由双层联盟链***进行的交易。
例如,业务节点A可以根据用户提交的业务数据生成完整的交易数据。随后,业务节点A可以对该交易数据签名,并将经签名的交易数据发送到业务节点B。在接收到从业务节点A发送的交易数据后,业务节点B也对该交易数据进行签名,并将经双方业务节点签名的交易数据发送到由业务路由指定的见证人节点1。要指出的是,发送到见证人节点1的交易数据可以通过零知识证明处理来隐藏例如包括交易金额和/或交易者等的部分关键业务数据。在执行零知识证明处理的情况下,业务节点A和业务节点B双方都执行零知识证明处理。
见证人节点1在接收到经由业务节点A、业务节点B签名并且通过零知识证明处理隐藏了至少部分业务数据的交易数据后,利用见证算法对交易进行见证。关于见证的具体操作将在下文详细说明。
随后,见证人节点1将包含其签名的经见证的交易数据直接推送到业务节点A以及业务节点B双方,以便业务节点A、业务节点B能够快速确认交易并落账。
接下来,见证人节点1例如可以计算交易数据的散列值、对交易数据的散列值进行签名并将经见证人节点1签名的交易数据的散列值在见证共识层中的所有见证人节点中进行广播,例如,在图2的示例中,交易数据的散列值可以被广播到业务节点A、B以及见证人节点1-6。
随后,在见证共识层中,可以基于共识算法将该交易数据的散列值打包进区块并链接到区块链上,从而使得该区块被广播到整个双层联盟链(即,包括所有业务节点以及所有见证人节点)。例如,在图2的示例中,包含交易数据的散列值的区块被广播到了见证人节点1-6以及业务节点A、B。将包含交易数据的散列值的区块链接到区块链,使得能够借助区块链本身的特性(例如,链式结构、区块相连、前后锁定等),来保证交易不能被否认或篡改等。此外,由于业务节点也能够接收到包含交易数据的散列值的区块,这使得例如业务节点A或B在未能成功接收到由见证人节点1直接推送的交易数据的情况下,可以从区块中提取交易数据的散列值,散列值例如包括交易标识符(ID),并利用该交易标识符向见证人节点1请求拉取经见证的交易数据以确认交易并落账,从而提供了辅助交易落账的双重保障机制。关于交易入链的具体操作将在下文进一步说明。
以上结合图2说明了根据本公开的实施例的双层联盟链***,并简要说明了基于该***进行交易的示意性过程。下面,将结合附图详细说明本公开的实施例。
图3示出了根据本公开的实施例的见证人节点100的示意性结构配置。如图3所示,见证人节点100可以包括见证单元102、计算单元104、共识单元106以及可选的请求处理单元108。虽然图3例示了上述4个单元,但这仅仅是见证人节点示意性结构配置,见证人节点100还可以包括其他可能的单元,或者可以包括上述四个单元中任意单元的组合单元。
见证单元102例如被配置为利用见证算法对交易进行见证。见证过程例如至少包括以下几个操作:
-确定交易发起方的余额是否足够进行所述交易。例如,见证单元可以根据交易数据中包含的交易的发起者用户的标识符(例如,发起者用户的钱包地址),来验证与该标识符对应的账户的可使用的金额是否足够支付此次交易。
-验证交易的发起方业务节点的签名以及接收方业务节点的签名。例如见证单元102可以通过验证交易双方业务节点的签名来确定该交易是否是经双方业务节点授权的。例如,见证人节点处可以存储交易双方业务节点的公钥,并利用该公钥对经该业务节点私钥签名的交易数据进行解密,以验证交易是否被该业务节点授权。
-验证交易的接收方地址。例如,见证单元可以验证交易的接收方用户的钱包地址,以确保该接收方地址真实有效。
见证过程并不限于上述操作,见证单元102还可以根据实际需要进行其他见证处理,诸如验证交易的除金额之外的附加数据之类。
在一个实施例中,见证单元102对经零知识证明处理后的数据进行验证。如上文所描述的,零知识证明处理可以使得业务节点在不向见证人节点的见证单元泄漏任何关键业务数据(例如交易金额、交易者等)的情况下,仍然使见证单元能够验证该关键业务数据(例如,验证余额是否足够、接收方地址是否真实有效等)。因此,利用零知识证明处理,可以实现完整的交易数据在业务节点与见证该交易的见证人节点之间的逻辑隔离,从而有效地保障隐私安全。
计算单元104例如被配置为计算散列值、对数据进行签名等。例如,在由见证单元102对交易数据进行了如上所述的见证操作之后,计算单元104可以对交易数据进行签名从而构成经见证的交易数据,以便直接推送到交易双方的交易节点。
在一个实施例中,计算单元104可以计算交易数据的散列值并对该散列值进行签名,以便将经签名的交易数据的散列值广播到整个双层联盟链(即,包括所有见证人节点以及所有业务节点)。在下文中,经由见证人节点签名的交易数据的散列值也可以被称为指纹数据。在计算交易数据的散列值时,例如可以对从业务节点接收的整体数据(例如,包括经零知识证明处理后的交易数据以及交易双方业务节点的签名)进行散列运算来获取交易数据的散列值。计算单元104计算出的交易数据的散列值可以在被广播到双层联盟链后,由见证共识层中的见证人节点之一打包进区块并链接到区块链。
共识单元106例如被配置为进行交易入链操作,交易入链使得包含指纹数据的区块被广播到双层联盟链,即,被广播到双层联盟链上的所有见证人节点以及所有交易节点。
在一个实施例中,共识单元例如基于RAFT+BFT(拜占庭容错)混合共识算法来进行交易入链操作。基于该混合共识算法,见证共识层中的全部见证人节点中的一个见证人节点充当领导节点,负责区块的产生以及入链,除领导节点之外的其他所有见证人节点负责验证新产生的区块,并向领导节点进行反馈。
具体而言,例如,领导节点可以收集预定时间段(例如1秒)内广播的一个或多个交易的指纹数据,并将该预定时间段内收集到的所有指纹数据打包进一个区块。可替代地,领导节点可以收集所广播的预定量(例如500条)的一个或多个交易的指纹数据,并将该预定量的指纹数据打包进一个区块。这里,所收集的指纹数据是一定时间内在见证共识层中产生的所有指纹数据,因此,所收集的指纹数据可以是由见证共识层中的任一个见证人节点(包括领导节点本身)所广播的指纹数据。
在生成区块之后,领导节点将该区块广播到双层联盟链,以便其他所有见证人节点对该区块进行验证。例如,非领导节点的见证人节点在接收到广播的区块后,可以对区块的头部进行校验,以验证该区块是否有效(例如,进行校验运算以验证该区块是否满足区块链的构成规则),附加地,非领导节点还可以验证本地是否具有区块中的所有交易的指纹数据。验证完成后,非领导节点可以向领导节点进行反馈。例如,非领导节点可以仅在验证成功的情况下向领导节点进行验证通过的反馈。还例如,非领导节点可以在验证完成后,向领导节点反馈验证通过或验证不通过的反馈。
领导节点可以收集来自非领导节点对于刚刚生成的区块的反馈,并且在验证通过的反馈超过一定阈值(例如,见证共识层的所有见证人节点数目的一半)的情况下,向双层联盟链广播区块成功入链的通知。在接收到区块成功入链的通知后,双层联盟链上的所有节点(包括各见证人节点以及各业务节点)可以对该新生成的区块进行本地存储,从而保证区块链的公共账本的一致性。
领导节点并不是固定的,而是在一定时间内通过选举来产生。例如,当前活跃的领导节点可以向见证共识层的各见证人节点广播心跳信息,以证明其领导身份的活跃性。非领导节点如果在一定时间内没有接收到心跳信息,非领导节点还可以进行投票以选举新的领导节点。选举领导节点的过程可以基于RAFT算法来进行,在本文中不再详细描述。
特别地,基于共识算法的特性,在生成区块并使区块入链的过程中,还可以防止交易双花(即,同一笔电子资产被花费两次)、配平等问题。
请求处理单元108被配置为响应于业务节点的请求,将经见证的交易数据发送至该业务节点。例如,在由见证单元对交易数据进行见证并且由计算单元对该数据进行签名之后,经见证的交易数据可以存储在该见证人节点的存储器(未示出)中,或者,也可以存储在该见证人节点能与之通信的外部存储装置中。在一个实施例中,来自于业务节点的请求可以包括被请求的交易数据的散列值,例如,可以从在区块链上广播的区块来提取该交易数据的散列值。
下面,将结合图4说明根据本公开的实施例在见证人节点处进行的示意性操作流程200。
该操作流程在S202处开始。
在步骤S204处,见证人节点从交易的接收方业务节点接收经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据。如上文所述,零知识证明处理可以由交易的发起方业务节点和接收方业务节点中的任意一个业务节点进行。在一个实施例中,由于经零知识证明处理后的交易数据尺寸较大,因此业务节点还可以进一步对其进行压缩。在这种情况下,在步骤S204中,见证人节点在接收到压缩数据之后可以进行解压缩,以方便后续操作。
在步骤S206处,见证人节点对交易进行见证。如上文参考见证单元所描述的,见证人节点可以确定交易发起方的余额是否足够进行所述交易、验证交易的发起方业务节点的签名以及接收方业务节点的签名、验证交易的接收方地址是否有效以及进行可能的其他见证操作。在对交易进行了见证之后,见证人节点可以对交易数据进行签名,从而构成经见证的交易数据。
接下来,在步骤S208处,见证人节点将经见证的交易数据直接推送到交易双方的业务节点,以方便业务节点快速确认交易并落账。在一个实施例中,在步骤S204中交易数据的接收以及步骤S208中交易数据的推送都可以使用诸如安全传输层协议(TLS)之类的安全信道,以便保证交易数据传输时的安全。
随后,在步骤S210处,见证人节点生成交易的指纹数据(即,经见证人节点签名的交易数据的散列值)并将其广播到整个双层联盟链。可以如上文参考计算单元所描述的那样生成指纹数据。在一个实施例中,见证人节点可以具有并发处理能力,例如,步骤S208以及步骤S210可以并行执行,也就是说交易数据的直接推送与指纹数据的生成与广播可以并行执行。在一个实施例中,步骤S208与步骤S210的顺序可以调换,即,先生成指纹数据并广播后推送交易数据。
接下来,在步骤S212处执行交易入链。如上文参考共识单元所描述的,在该步骤中,见证共识层中的领导节点(可能是计算该交易数据的散列值的见证人节点,也可能是另一个见证人节点)将广播的一段时间内或一定量的交易的指纹数据打包成一个区块并广播到双层联盟链。非领导节点的见证人节点在接收到广播的区块后,验证该区块是否有效并向领导节点进行反馈。领导节点可以收集来自非领导节点对于刚刚生成的区块的反馈,并且在验证通过的反馈超过一定阈值的情况下,向双层联盟链广播区块成功入链的通知。在接收到区块成功入链的通知后,双层联盟链上的所有节点(包括各见证人节点以及各业务节点)可以对该新生成的区块进行本地存储,从而保证区块链的公共账本的一致性。
最后,该示意性操作流程200在S214处结束。
见证人节点的操作流程200仅仅是示意性的,该流程200还可以根据具体情况包括其他的步骤。例如,如上文参考请求处理单元所描述的,在交易入链步骤S212之后,见证人节点还可以响应于业务节点的请求,根据请求中包含的交易数据的散列值而将经见证的完整的交易数据发送至作出请求的业务节点。
以上说明了见证人节点的示意性结构配置和示意性操作流程。下面,将参考图5及图6对业务节点进行说明。
首先将参考图5说明业务节点300的示意性结构配置。如图5所示,业务节点300可以包括数据生成单元302、数据处理单元304、路由单元306、以及可选的请求单元308。虽然图5例示了上述3个单元,但这仅仅是业务节点示意性结构配置,见证人节点300还可以包括其他可能的单元,或者可以包括上述3个单元中任意单元的组合单元。
数据生成单元302例如被配置为生成交易数据。在一个实施例中,业务节点可以从与其相关联的一个或多个用户钱包收集由其中一个用户钱包提交的业务数据,并基于所述业务数据生成交易数据。
“钱包”例如可以是由双层联盟链提供的一种用于存放用户的数字资产的软件。在用户端,可以进行如下操作来使用钱包发起交易:
-注册:安装“钱包”软件、导入由双层联盟链CA颁发的用户证书和钱包私钥以完成用户钱包注册;
-创建:借助“钱包”软件,在用户钱包中创建一个或多个账户、生成针对每个账户的公私钥对、设定解密私钥用的对称加密密码、存储公钥和加密后该账户的私钥到指定路径;
-生成:使用该用户账户的公钥生成相应的钱包地址,用于锁定各种数据资产;
-签名:利用账户的私钥对交易的数字资产进行签名并利用钱包的用户证书私钥对整个业务数据进行签名;
-推送:推送签名完成的完整业务数据到相应的业务节点。
在一个实施例中,在接收到用户钱包提交的业务数据后,业务节点设备的数据生成单元302可以对该业务数据进行验证。例如,可以验证用户钱包的签名和/或账户的签名。在验证成功的情况下,数据生成单元302可以进一步基于接收到的业务数据生成交易数据。在一个实施例中,可以将业务数据整合成UTXO格式的交易数据。
数据处理单元304例如被配置为对交易数据进行一些运算操作。在一个实施例中,数据处理单元304可以对由数据生成单元302生成的交易数据进行零知识证明处理,以针对见证共识层中的各见证人节点隐藏至少部分关键业务数据,诸如交易者、交易金额之类。在又一个实施例中,数据处理单元304还可以对从另一个业务节点接收的完整交易数据进行零知识证明处理。
数据处理单元304还可以对由数据进行签名。例如,数据处理单元304可以对由数据生成单元302生成的交易数据进行签名。在一个实施例中,签名可以在零知识证明处理处理之前或之后进行。在又一个实施例中,数据处理单元304可以直接对由数据生成单元302生成的交易数据进行签名,并且不对交易数据进行零知识证明处理。在一个实施例中,数据处理单元304可以对从另一个业务节点接收到的交易数据进行签名。
可选地,数据处理单元304可以对数据进行压缩以减少要传输的数据的尺寸。例如,数据处理单元304可以对经零知识证明处理后的数据进行压缩。
路由单元306例如可以被配置为根据业务路由来确定要将交易数据转发至的下一个业务路径节点。在一个实施例中,业务路由是由双层联盟链预先规定并且随时进行更新的。例如,业务路由可以是存储了用户钱包的地址与业务节点标识符的对应关系的路由表,并且,业务路由还可以包括规定每个用户钱包的每个账户应当由哪个见证人节点见证的路由表。
例如,在业务节点300充当交易发起者的情况下,路由单元306可以根据用户钱包提交的业务数据(包括接收方用户的钱包地址)以及业务路由表来确定与交易的接收用户相关联的接收方业务节点,以便将经交易发起方业务节点签名的交易数据发送至该接收方业务节点。在业务节点300充当接收方业务节点的情况下,路由单元306可以根据业务路由表确定要见证该笔交易的见证人节点,以便向该见证人节点转发交易数据。
请求单元308例如被配置为向见证人节点请求经见证的交易数据。例如,业务节点300在接收到广播的区块时,可以查看该区块是否包含由业务节点300发起或转发的交易数据的散列值。在判断出区块包含当前交易数据的散列值但是业务节点还没有从见证人节点接收到经见证的交易数据的情况下,请求单元308可以向见证人节点请求拉取经见证的交易数据,以便业务节点确认交易并向相关的用户钱包反馈消息。
下面,将参考图6说明根据本公开的实施例在见证人节点处进行的示意性操作流程400。
该操作流程在S402处开始。
在步骤S404处,业务节点生成交易数据。如上文参考数据生成单元说明的,例如,在步骤S404处,可以基于与所述业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名。
随后,在步骤S406处,根据业务路由,业务节点将经其签名的交易数据发送到交易的接收方业务节点,以便在由接收方业务节点签名后进一步发送到由业务路由指定的见证人节点。上文已经参考路由单元说明了业务路由,这里不再赘述。
为了对见证交易的见证人节点隐藏完整的业务数据,可以向见证人节点发送经过零知识证明处理的交易数据。例如,在进行零知识证明处理的情况下,业务节点可以在步骤S404与步骤S406之间包含数据处理步骤,在该步骤中,如上文参考数据处理单元说明的那样对在步骤S404中生成的交易数据进行零知识证明处理。在一个实施例中,接收方业务节点和发起方业务节点可以分别在本地进行零知识证明处理,例如,发起方业务节点可以将经其签名的原始交易数据发送到接收方业务节点,并且双方业务节点可以基于要进行零知识证明处理的约定,分别在本地对原始交易数据进行零知识证明处理以隐藏信息,并且由接收方业务节点向见证人节点发送经过零知识证明处理的交易数据。
在一个实施例中,业务节点还可以对经过零知识证明处理的交易数据进行压缩。压缩操作例如可以由执行零知识证明处理的业务节点(发起方或接收方)来进行。
接下来,在步骤S408处,业务节点判定是否接收到由见证人节点直接推送的经见证的交易数据。在成功接收到交易数据的情况下,业务节点可以存储所述经见证的交易数据并向与所述交易相关联的用户钱包反馈消息以确认所述交易。例如,经见证的交易数据可以存储在业务节点处的存储器中,或者存储在业务节点可以访问的外部存储装置中。向用户钱包反馈的消息例如可以指示交易已经落账成功。随后,操作流程可以在S416处结束。
在步骤S408处未成功接收到交易数据的情况下,业务节点可以等待双层联盟链上的区块的广播。在步骤S410处接收到区块的情况下,业务节点可以从中提取交易数据的散列值,并且验证所提取的各个散列值中是否存在与正在进行的交易匹配的交易数据的散列值。在存在匹配的散列值的情况下,在步骤S412处,业务节点可以如上文参考请求单元说明的那样利用所提取的交易数据的散列值来请求从见证人节点拉取经见证的交易数据。随后,在步骤S414处,业务节点可以接收见证人节点响应于请求而发送的经见证的交易数据。接下来,业务节点可以如上所述存储所述经见证的交易数据并向与所述交易相关联的用户钱包反馈消息以确认所述交易。并且业务节点的操作流程在步骤S416结束。
在一个实施例中,在交易数据发送步骤S406以及交易数据接收步骤S408或S414中,使用诸如安全传输层协议(TLS)之类的安全信道,以便保证交易数据传输时的安全。
业务节点的操作流程400仅仅是示意性的,该流程400还可以根据具体情况包括其他的步骤。例如,业务节点还可以接收从见证人节点广播的指纹数据,并且可选地对指纹数据进行本地存储。
下面,将参考图7说明根据本公开的实施例的经由双层联盟链***进行交易的示意图。
如图7所示,由业务节点A发起交易。例如,业务节点A可以如上所述根据用户钱包提交的业务数据生成完整的交易数据,并且将经自身签名的交易数据发送到业务节点B。在接收到从业务节点A发送的交易数据后,业务节点B也对该交易数据进行签名,以便发送到见证人节点。如上文所述,为了对见证交易的见证人节点隐藏完整的业务数据,可以由业务节点A和业务节点B进行零知识证明处理。进一步地,如上文所描述的,在进行零知识证明处理后,业务节点(例如业务节点B)还可以对数据进行压缩以减小尺寸。
见证人节点在接收到经由业务节点A、业务节点B签名并且经零知识证明处理隐藏了至少部分业务数据的交易数据后,如上文说明的那样对交易进行见证。
随后,见证人节点将包含其签名的经见证的交易数据直接推送到业务节点A以及业务节点B双方,以便业务节点A、业务节点B能够快速确认交易并落账。
接下来,见证人节点例如可以如上文描述的那样计算交易数据的散列值以便生成交易的指纹数据,并且广播指纹数据以便如上文描述的那样构成区块链接到区块链上并在双层联盟链上广播该区块。要指出的是,图7中仅仅示出了一个见证人节点,实际上,如上文所述,将交易的指纹数据打包进区块并且使该区块加入到区块链上的过程可以由领导节点和非领导节点共同协作完成。
如图7所示,由于包含当前交易数据的散列值的区块被广播到了整个双层联盟链,因此业务节点A、B均可以接收到该区块。继而,在业务节点A或B在未能成功接收到由见证人节点推送的经见证的交易数据的情况下,可以从区块中提取交易数据的散列值,并利用该散列值向见证人节点请求拉取经见证的交易数据以确认交易并落账。
特别地,在特定情况下,可能发生电子资产在见证人节点之间的转移。例如,如上文说明的,业务节点B根据业务路由来确定应当由哪个见证人节点对该交易进行见证,业务路由可以规定每个用户钱包的每个账户应当由哪个见证人节点见证。当用户钱包具有多个账户,并且所述多个账户被业务路由规定由至少两个见证人节点见证的情况下,例如,业务路由规定用户钱包的账户x由见证人节点1见证,并且账户y由见证人节点2见证,那么,在这种情况下,当用户希望发起一笔交易,但是账户x以及账户y下的余额均不能足以支付该笔交易,但是这两个账户的总余额足够进行支付时,可以将账户x下的电子资产转移到账户y,换句话说,可以将账户x下的电子资产从见证人1转移到见证人2(即,更换规定的见证人)。更换见证人的情况不限于上述示例,例如,还可以基于隐私和效率等考虑来更换见证人。
在一个实施例中,在更换见证人节点时,以锁定方式将资产从为该资产指定的原见证人节点转移到另外的一个或多个见证人节点,使得在进行资产转移的同时,所转移的资产不能用于任何交易。这种锁定可以防止交易双花(即,同一笔电子资产被消费两次)的发生。
在上文的描述中,类似于操作***的总线调度,各个单元(例如见证单元、计算单元等)间服务接口统一总线注册、调度,从而解决了单元间的耦合性并提高了可扩展性。所存储的数据(例如在见证人节点处存储的经见证的交易数据等)例如可以进一步利用公钥密码体系来加密,可以使用例如国家密码局认定的国产密码算法(简称为国密)等来进行加解密操作,此外,数据的存储例如可以采用高性能的键值对数据库、扩展bucket封装,从而提升数据分类存储的便利性,并且可以进一步扩展关系型数据库的导出接口,从而提升数据监管以及再处理能力。操作流程中涉及的网络通信操作(例如,业务节点向见证人节点请求经见证的交易数据等)例如可以使用RPC协议,以保持恒定数量节点的长连接,此外,在网络通信时涉及的数据传输例如可以采用有向环图结合回声消除机制来提升数据传输效率。在涉及数据同步的操作(例如选举领导节点等)中,可以采用数据分片、多线程、节点随机的算法模型以实现数据的快速同步。在涉及事件触发的操作时,可以采用主动触发模式并且可以在监听端采用关系型数据库,从而快速处理数据并实现数据的高速统计。双层联盟链***还可以包括证书中心(例如,用于颁发钱包证书),例如可以采用证书链模式以提升审计审核的快捷性。
上文已经参考附图描述了根据本公开的实施例的经由双层联盟链进行交易的***、装置及方法。借助本公开的双层联盟链架构,完整的业务数据仅仅在业务层的业务节点处存储,在见证共识层中除了对该交易进行见证的见证人节点之外,其他各见证人节点仅存储该交易的交易数据的散列值(根据散列运算的性质,散列值并不会泄露任何原数据信息),这使得完整的业务数据在业务层与见证共识层之间物理隔离,并且见证交易的见证人节点仅保存零知识证明处理隐藏了关键业务数据后的交易数据(即,实现了与完整业务数据的逻辑隔离),从而使得完整交易数据的范围可控,保证了交易的隐私安全性。
借助本公开的双层联盟链架构,见证人在见证交易之后,直接将经见证的交易数据推送到交易双方的业务节点,从而能够实现交易的快速锁定落账。此外,包含交易数据的散列值的区块被广播到整个双层联盟链,这使得业务节点在未能成功接收到由见证人节点直接推送的交易数据的情况下,可以从区块中提取交易数据的散列值,并利用该散列值向见证人节点请求拉取经见证的交易数据,从而提供了辅助交易落账的双重保障机制。
本公开的双层联盟链架构还可以发挥区块链本身特性(例如,链式结构、区块相连、前后锁定等)的优势,从而可以保证交易不能被否认或篡改等。
在本公开的双层联盟链架构中,零知识证明处理仅在业务层进行并且在传送经零知识证明处理的数据时对该数据进行压缩,从而减小了零知识证明处理产生的数据的尺寸并限制了大尺寸数据在网络中的传送范围,进而提高了交易的执行效率。
图8示出了可以实现根据本公开的实施例的计算机设备2000的示例性配置。计算机设备2000是可以应用本公开的上述方面的硬件设备的实例。计算机设备2000可以是被配置为执行处理和/或计算的任何机器。计算机设备2000可以是但不限制于工作站、服务器、台式计算机、膝上型计算机、平板计算机、个人数据助手(PDA)、智能电话、车载计算机或以上组合。前述见证人节点设备和业务节点设备均可以全部或至少部分地由上述计算机设备2000或与其相似的设备或***实现。
如图8所示,计算机设备2000可以包括可能经由一个或多个接口与总线2002连接或通信的一个或多个元件。例如,计算机设备2000可以包括总线2002、一个或多个处理器2004、一个或多个输入设备2006以及一个或多个输出设备2008。总线2002可以包括但不限于,工业标准架构(Industry Standard Architecture,ISA)总线、微通道架构(MicroChannel Architecture,MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外设组件互连(PCI)总线等。一个或多个处理设备2004可以是任何种类的处理器,并且可以包括但不限于一个或多个通用处理器或专用处理器(诸如专用处理芯片)。输入设备2006可以是能够向计算机设备输入信息的任何类型的输入设备,并且可以包括但不限于鼠标、键盘、触摸屏、麦克风和/或远程控制器。输出设备2008可以是能够呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。计算机设备2000还可以包括或被连接至非暂态存储设备2010,该非暂态存储设备2010可以是任何非暂态的并且可以实现数据存储的存储设备,并且可以包括但不限于盘驱动器、光存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁性介质、压缩盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、缓存存储器和/或任何其他存储芯片或模块、和/或计算机可以从其中读取数据、指令和/或代码的其他任何介质。非暂态存储设备2010可以与任何接口可拆卸地连接。非暂态存储设备2010可以具有存储于其上的、用于实现前述经由双层联盟链进行交易的方法和/或步骤的数据/指令/代码。计算机设备2000还可以包括通信设备2012,该通信设备2012可以是能够启用与外部装置和/或网络通信的任何种类的设备或***,并且可以包括但不限于调制解调器、网络卡、红外线通信设备、无线通信设备和/或芯片集(诸如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)。
计算机设备2000还可以包括工作存储器2014。该工作存储器2014可以是能够存储对于处理器2004有用的指令和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器(RAM)和只读存储器(ROM)。
位于上述工作存储器上的软件元件可以包括但不限于操作***2016、一个或多个应用程序2018、驱动器和/或其他数据和代码。上述一个或多个应用程序2018可以包括用于执行如上所述的种经由双层联盟链进行交易的各方法及各步骤的指令。可以通过读取和执行一个或多个应用程序2018的处理器实现前述用于双层联盟链中的见证人节点设备/业务节点设备的部件/单元/模块。更具体地,例如,前述见证人节点设备200中的见证单元102可以由处理器2004在执行具有用于执行图4的步骤S206的指令的应用程序2018时实现。此外,例如,前述见证人节点设备200中的计算单元104可以由处理器2004在执行具有用于执行步骤S210的指令的应用程序2018时实现。此外,例如,前述见证人节点设备200中的共识单元106可以由处理器2004在执行具有用于执行步骤S212的指令的应用程序2018时实现。更具体地,例如在实现见证单元102的功能时,应用程序2018可以包括智能合约代码,并且可以实现相应的解释器来解释、执行所述代码。前述业务节点设备300的各个单元也可以用类似的方式实现。软件元件的指令的可执行代码或源代码可以存储在非暂态计算机可读存储介质(诸如如上所述的存储设备2010)中,并且可以通过编译和/或安装读入工作存储器2014中。还可以从远程位置下载软件元件的指令的可执行代码或源代码。此外,工作存储器中还可以存储参数配置文件,以便指定各个操作参数和/或数据的存储位置等。
应当理解,可以根据特定要求进行变型。例如,可以使用定制的硬件和/或特定元件可以以硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合的方式实现。此外,可以采用与其他计算机设备(诸如网络输入/输出设备)的连接。例如,本公开的方法和设备中的一些或全部可以根据本公开通过使用汇编语言编程硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)或软件编程语言(例如Golang,C++,java等)来实现。
应当进一步理解,计算机设备2000的元件可以分布在整个网络上。例如,可以在使用一个处理器执行一些处理的同时,使用其他远程处理器执行其他处理。计算机***2000的其他元件也可以类似地分布。因此,计算机设备2000可以被理解为在多个地点执行处理的分布式计算***。
可以通过许多方式来实施本公开的方法和设备。例如,可以通过软件、硬件、固件、或其任何组合来实施本公开的方法和设备。上述的方法步骤的次序仅是说明性的,本公开的方法步骤不限于以上具体描述的次序,除非以其它方式明确说明。此外,在一些实施例中,本公开还可以被实施为记录在记录介质中的程序,其包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于实现根据本公开的方法的程序的记录介质。
虽然已通过示例详细展示了本公开的一些具体实施例,但是本领域技术人员应当理解,上述示例仅意图是说明性的而不限制本公开的范围。本领域技术人员应该理解,上述实施例可以在不脱离本公开的范围和实质的情况下被修改。本公开的范围是通过所附的权利要求限定的。
本公开还涉及以下方案:
方案1.一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在见证人节点处执行,其特征在于包括:
交易数据接收步骤,其中,由所述多个见证人节点中由业务路由为所述交易规定的见证人节点从交易的接收方业务节点接收经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据;
交易见证步骤,其中,利用见证算法对所述交易进行见证;
交易数据推送步骤,其中,将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;
指纹数据生成及广播步骤,其中,通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及
交易入链步骤,将包含所述指纹数据的区块广播到所述双层联盟链。
方案2.如方案1所述的方法,其中,
所述方法还包括存储经见证的交易数据。
方案3.如方案2所述的方法,其中,所述方法进一步包括:
见证人节点基于与所述交易相关联的业务节点的请求,向该业务节点发送所存储的经见证的交易数据,其中,所述请求包括所述交易数据的散列值。
方案4.如方案1-3中任一项所述的方法,其中,
在交易数据接收步骤和交易数据推送步骤中,通过安全传输层协议TLS传输交易数据。
方案5.如方案1-3中任一项所述的方法,其中,所述方法进一步包括:
在更换见证人节点时,以锁定方式将资产从为该资产指定的原见证人节点转移到另外的一个或多个见证人节点,使得在进行资产转移的同时,所转移的资产不能用于任何其他交易。
方案6.如方案1-3中任一项所述的方法,其中,在交易数据接收步骤中,接收对经零知识证明处理后的交易数据进行了压缩的压缩交易数据。
方案7.如方案1-3中任一项所述的方法,其中,
所述见证算法包括:
-确定交易发起方的余额是否足够进行所述交易;
-验证交易的发起方业务节点的签名以及接收方业务节点的签名;以及
-验证交易的接收方地址。
方案8.如方案1-3中任一项所述的方法,其中,
基于包括RAFT+BFT混合共识算法来进行交易入链步骤。
方案9.如方案8所述的方法,其中,所述交易入链步骤进一步包括:
-在见证人节点是领导节点的情况下,生成包含所述指纹数据的区块、将所述区块广播到所述双层联盟链并收集其他见证人节点对于所述区块的反馈信息;
-在见证人节点不是领导节点的情况下,接收所广播的区块并向领导节点进行反馈。
方案10.如方案9所述的方法,其中,
在见证人节点是领导节点的情况下,所生成的区块包括预定时间段内的一个或多个指纹数据或预定量的一个或多个指纹数据。
方案11.如方案8所述的方法,其中,
在见证人节点不是领导节点的情况下,所述方法进一步包括:
接收心跳信息,所述心跳信息表示当前活跃的领导节点;以及
在预定时间内未接收到心跳信息的情况下,参加领导节点竞选和/或进行投票。
方案12.一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在业务节点处执行,其特征在于包括:
交易数据生成步骤,其中,基于与所述业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;
交易数据发送步骤,其中,将经签名的交易数据发送到交易的接收方业务节点以便在由接收方业务节点签名后进一步发送到由业务路由指定的见证人节点,其中,在发送到见证人节点之前,由所述业务节点和接收方业务节点对交易数据进行零知识证明处理以隐藏至少部分业务数据;
交易数据接收步骤,其中,接收从见证人节点推送的经见证人节点签名的交易数据;
区块接收步骤,其中,从所述多个见证人节点中的领导节点接收广播的包含所述交易数据的散列值的区块。
方案13.如方案12所述的方法,其中,所述方法还包括:
在未成功接收经见证的交易数据的情况下,利用从广播的区块中提取的所述交易数据的散列值来从所述见证人节点拉取经见证的交易数据。
方案14.如方案12或13所述的方法,其中,所述方法还包括:
在成功接收经见证的交易数据之后,存储所述经见证的交易数据并向与所述交易相关联的用户钱包反馈消息以确认所述交易。
方案15.如方案12或13所述的方法,其中,
所述交易数据生成步骤进一步包括将交易数据整合成UTXO格式的数据。
方案16.如方案12或13所述的方法,其中,
在交易数据发送步骤以及交易数据接收步骤中,通过安全传输层协议TLS传输交易数据。
方案17.如方案12或13所述的方法,其中,
交易数据发送步骤中,在对交易数据进行零知识证明处理后进一步进行压缩处理。
方案18.一种用于经由双层联盟链进行交易的装置,所述双层联盟链包括多个见证人节点和多个业务节点,所述装置包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得所述装置执行如方案1-17中任一项所述的方法。
方案19.一种存储有计算机可执行指令的计算机可读介质,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如方案1-17中任一项所述的方法。
方案20.一种用于交易的双层联盟链***,包括多个见证人节点和多个业务节点,所述多个见证人节点和多个业务节点中的每一个都包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得相应的见证人节点或业务节点进行如下操作:
由发起方业务节点基于与所述发起方业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;
发起方业务节点将经签名的业务数据发送到交易的接收方业务节点;
接收方业务节点接收经发起方业务节点签名的业务数据并进行签名,随后根据业务路由,将经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据转发至见证人节点;
在见证人节点处:
-从接收方业务节点接收交易数据并利用见证算法对所述交易进行见证;
-将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;
-通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及
-将包含所述指纹数据的区块被广播到所述双层联盟链。
Claims (20)
1.一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在见证人节点处执行,其特征在于包括:
交易数据接收步骤,其中,由所述多个见证人节点中由业务路由为所述交易规定的见证人节点从交易的接收方业务节点接收经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据;
交易见证步骤,其中,利用见证算法对所述交易进行见证;
交易数据推送步骤,其中,将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;
指纹数据生成及广播步骤,其中,通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及
交易入链步骤,将包含所述指纹数据的区块广播到所述双层联盟链。
2.如权利要求1所述的方法,其中,
所述方法还包括存储经见证的交易数据。
3.如权利要求2所述的方法,其中,所述方法进一步包括:
见证人节点基于与所述交易相关联的业务节点的请求,向该业务节点发送所存储的经见证的交易数据,其中,所述请求包括所述交易数据的散列值。
4.如权利要求1-3中任一项所述的方法,其中,
在交易数据接收步骤和交易数据推送步骤中,通过安全传输层协议TLS传输交易数据。
5.如权利要求1-3中任一项所述的方法,其中,所述方法进一步包括:
在更换见证人节点时,以锁定方式将资产从为该资产指定的原见证人节点转移到另外的一个或多个见证人节点,使得在进行资产转移的同时,所转移的资产不能用于任何其他交易。
6.如权利要求1-3中任一项所述的方法,其中,在交易数据接收步骤中,接收对经零知识证明处理后的交易数据进行了压缩的压缩交易数据。
7.如权利要求1-3中任一项所述的方法,其中,
所述见证算法包括:
-确定交易发起方的余额是否足够进行所述交易;
-验证交易的发起方业务节点的签名以及接收方业务节点的签名;以及
-验证交易的接收方地址。
8.如权利要求1-3中任一项所述的方法,其中,
基于包括RAFT+BFT混合共识算法来进行交易入链步骤。
9.如权利要求8所述的方法,其中,所述交易入链步骤进一步包括:
-在见证人节点是领导节点的情况下,生成包含所述指纹数据的区块、将所述区块广播到所述双层联盟链并收集其他见证人节点对于所述区块的反馈信息;
-在见证人节点不是领导节点的情况下,接收所广播的区块并向领导节点进行反馈。
10.如权利要求9所述的方法,其中,
在见证人节点是领导节点的情况下,所生成的区块包括预定时间段内的一个或多个指纹数据或预定量的一个或多个指纹数据。
11.如权利要求8所述的方法,其中,
在见证人节点不是领导节点的情况下,所述方法进一步包括:
接收心跳信息,所述心跳信息表示当前活跃的领导节点;以及
在预定时间内未接收到心跳信息的情况下,参加领导节点竞选和/或进行投票。
12.一种经由双层联盟链进行交易的方法,所述双层联盟链包括多个见证人节点和多个业务节点,所述方法在业务节点处执行,其特征在于包括:
交易数据生成步骤,其中,基于与所述业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;
交易数据发送步骤,其中,将经签名的交易数据发送到交易的接收方业务节点以便在由接收方业务节点签名后进一步发送到由业务路由指定的见证人节点,其中,在发送到见证人节点之前,由所述业务节点和接收方业务节点对交易数据进行零知识证明处理以隐藏至少部分业务数据;
交易数据接收步骤,其中,接收从见证人节点推送的经见证人节点签名的交易数据;
区块接收步骤,其中,从所述多个见证人节点中的领导节点接收广播的包含所述交易数据的散列值的区块。
13.如权利要求12所述的方法,其中,所述方法还包括:
在未成功接收经见证的交易数据的情况下,利用从广播的区块中提取的所述交易数据的散列值来从所述见证人节点拉取经见证的交易数据。
14.如权利要求12或13所述的方法,其中,所述方法还包括:
在成功接收经见证的交易数据之后,存储所述经见证的交易数据并向与所述交易相关联的用户钱包反馈消息以确认所述交易。
15.如权利要求12或13所述的方法,其中,
所述交易数据生成步骤进一步包括将交易数据整合成UTXO格式的数据。
16.如权利要求12或13所述的方法,其中,
在交易数据发送步骤以及交易数据接收步骤中,通过安全传输层协议TLS传输交易数据。
17.如权利要求12或13所述的方法,其中,
交易数据发送步骤中,在对交易数据进行零知识证明处理后进一步进行压缩处理。
18.一种用于经由双层联盟链进行交易的装置,所述双层联盟链包括多个见证人节点和多个业务节点,所述装置包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得所述装置执行如权利要求1-17中任一项所述的方法。
19.一种存储有计算机可执行指令的计算机可读介质,当所述计算机可执行指令被处理器执行时,使得所述处理器执行如权利要求1-17中任一项所述的方法。
20.一种用于交易的双层联盟链***,包括多个见证人节点和多个业务节点,所述多个见证人节点和多个业务节点中的每一个都包括存储有计算机可执行指令的存储器和处理器,当所述计算机可执行指令被所述处理器执行时,使得相应的见证人节点或业务节点进行如下操作:
由发起方业务节点基于与所述发起方业务节点相关联的用户钱包提交的业务数据生成交易数据,并对交易数据进行签名;
发起方业务节点将经签名的业务数据发送到交易的接收方业务节点;
接收方业务节点接收经发起方业务节点签名的业务数据并进行签名,随后根据业务路由,将经由交易的发起方业务节点和接收方业务节点二者签名、并通过零知识证明处理隐藏了至少部分业务数据的交易数据转发至见证人节点;
在见证人节点处:
-从接收方业务节点接收交易数据并利用见证算法对所述交易进行见证;
-将经见证的交易数据直接推送到交易的发起方业务节点以及交易的接收方业务节点,所述经见证的交易数据包括经见证人节点签名的交易数据;
-通过计算所述交易数据的散列值并对所述交易数据的散列值进行签名来生成指纹数据,并将所述指纹数据广播到所述双层联盟链;以及
-将包含所述指纹数据的区块被广播到所述双层联盟链。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811183694.1A CN109409878B (zh) | 2018-10-11 | 2018-10-11 | 经由双层联盟链进行交易的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811183694.1A CN109409878B (zh) | 2018-10-11 | 2018-10-11 | 经由双层联盟链进行交易的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109409878A CN109409878A (zh) | 2019-03-01 |
CN109409878B true CN109409878B (zh) | 2021-09-14 |
Family
ID=65466929
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811183694.1A Active CN109409878B (zh) | 2018-10-11 | 2018-10-11 | 经由双层联盟链进行交易的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109409878B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968899B (zh) * | 2019-11-27 | 2022-04-01 | 杭州趣链科技有限公司 | 一种基于区块链的数据分块确认方法、装置、设备和介质 |
CN111262853B (zh) * | 2020-01-14 | 2023-12-01 | 平安壹钱包电子商务有限公司 | 基于联盟链的信息传输方法、装置、计算机设备及存储介质 |
CN111415161B (zh) * | 2020-04-27 | 2024-03-19 | 财付通支付科技有限公司 | 基于区块链的数据验证方法、装置及计算机可读存储介质 |
CN111538792B (zh) * | 2020-07-10 | 2020-11-03 | 卓尔智联(武汉)研究院有限公司 | 一种联盟链数据处理方法、装置和电子设备 |
CN111861477A (zh) * | 2020-08-06 | 2020-10-30 | 深圳壹账通智能科技有限公司 | 基于区块链的交易后数据处理方法、装置和计算机设备 |
CN112241434B (zh) * | 2020-09-24 | 2021-06-22 | 华中农业大学 | 一种面向数据隐私保护的联盟区块链*** |
CN112565435B (zh) * | 2020-12-10 | 2021-08-17 | 广东投盟科技有限公司 | 基于事务链的业务处理方法、***及计算机可读存储介质 |
CN113254954A (zh) * | 2021-04-30 | 2021-08-13 | 中核武汉核电运行技术股份有限公司 | 一种基于区块链的核电数据安全方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107274184A (zh) * | 2017-05-11 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于零知识证明的区块链数据处理 |
CN107580767A (zh) * | 2015-03-12 | 2018-01-12 | 眼锁有限责任公司 | 使用生物特征来管理网络活动的方法和*** |
WO2018136944A1 (en) * | 2017-01-23 | 2018-07-26 | Hasan Syed Kamran | Universal bchain e3a connections (ubec) |
WO2018172966A1 (en) * | 2017-03-23 | 2018-09-27 | International Business Machines Corporation | Blockchain ledgers of material spectral signatures for supply chain integrity management |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170132621A1 (en) * | 2015-11-06 | 2017-05-11 | SWFL, Inc., d/b/a "Filament" | Systems and methods for autonomous device transacting |
-
2018
- 2018-10-11 CN CN201811183694.1A patent/CN109409878B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580767A (zh) * | 2015-03-12 | 2018-01-12 | 眼锁有限责任公司 | 使用生物特征来管理网络活动的方法和*** |
WO2018136944A1 (en) * | 2017-01-23 | 2018-07-26 | Hasan Syed Kamran | Universal bchain e3a connections (ubec) |
WO2018172966A1 (en) * | 2017-03-23 | 2018-09-27 | International Business Machines Corporation | Blockchain ledgers of material spectral signatures for supply chain integrity management |
CN107274184A (zh) * | 2017-05-11 | 2017-10-20 | 上海点融信息科技有限责任公司 | 基于零知识证明的区块链数据处理 |
Non-Patent Citations (1)
Title |
---|
区块链技术解决电子商务中信用问题的经济学分析;李颖雪;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20180615;I138-1017 * |
Also Published As
Publication number | Publication date |
---|---|
CN109409878A (zh) | 2019-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109409878B (zh) | 经由双层联盟链进行交易的方法 | |
CN107358424B (zh) | 一种基于数字货币的交易方法和装置 | |
CN107392603B (zh) | 使用数字货币的交易方法和装置 | |
WO2019080933A1 (zh) | 一种区块链交易隐私保护方法及*** | |
US8661240B2 (en) | Joint encryption of data | |
CN109919611B (zh) | 基于对称密钥池服务器的抗量子计算区块链交易方法和*** | |
CN111464315B (zh) | 数字签名处理方法、装置、计算机设备以及存储介质 | |
CA2554368A1 (en) | Group signature system, method, device, and program | |
CN110545169B (zh) | 基于非对称密钥池和隐式证书的区块链方法和*** | |
US9544144B2 (en) | Data encryption | |
CN115396115B (zh) | 区块链数据隐私保护方法、装置、设备及可读存储介质 | |
KR20230093432A (ko) | 서비스 거부 공격들의 식별 | |
CN116703593A (zh) | 基于区块链的电子保函业务监管审批方法及*** | |
CN118160275A (zh) | 阈值签名方案 | |
CN109687961B (zh) | 基于对称密钥池路由装置的抗量子计算区块链交易方法和*** | |
CN109660344B (zh) | 基于非对称密钥池路由装置的抗量子计算区块链交易方法和*** | |
US20230163977A1 (en) | Digital signatures | |
CN112417489B (zh) | 数字签名的生成方法、装置和服务器 | |
WO2022116175A1 (zh) | 数字签名的生成方法、装置和服务器 | |
CN113159767A (zh) | 基于区块链的转账处理方法、装置和*** | |
CN116346336B (zh) | 一种基于多层密钥生成中心的密钥分发方法及相关*** | |
US20220038267A1 (en) | Methods and devices for secured identity-based encryption systems with two trusted centers | |
WO2023072502A1 (en) | Generating shared keys | |
US20240214218A1 (en) | Nested threshold signatures | |
CN116938604B (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 | ||
CB02 | Change of applicant information |
Address after: 200120 T3, 1788, 1800 Century Avenue, free trade Experimental Zone, Pudong New Area, Shanghai Applicant after: Shanghai insurance exchange, Limited by Share Ltd Address before: 200120 Shanghai East Road Pudong New Area Financial Information Center 22 Applicant before: Shanghai insurance exchange, Limited by Share Ltd |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |