1.本说明书实施例属于区块链技术领域,尤其涉及一种区块链系统中的交易执行方法、装置及区块链系统。
背景技术:2.区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
技术实现要素:3.本发明的目的在于提供一种区块链系统中的交易执行方法、装置及区块链系统。
4.第一方面,提供了一种区块链系统中的交易执行方法,所述区块链系统中包括第一节点和多个第二节点,所述方法应用于所述第一节点的可信执行环境的外部。所述方法包括:在接收到多个交易的第一密文后生成共识提议,并与所述多个第二节点中的至少部分第二节点对所述共识提议进行共识,其中所述共识提议包括各个所述第一密文以及其排列顺序;在对所述共识提议达成共识的情况下,向所述第一节点的tee提供所述共识提议和共识凭证,使所述tee在基于所述共识凭证确认对所述共识提议达成共识后,对第一密文进行解密以获得各个所述交易,并向所述tee的外部提供各个所述交易;执行各个所述交易。
5.第二方面,提供了一种区块链系统中的交易执行方法,所述区块链系统中包括第一节点和多个第二节点,所述方法应用于所述第一节点和所述多个第二节点中至少部分第二节点各自的tee。所述方法包括:从所述tee的外部获取共识凭证和由所述第一节点生成的共识提议,其中所述共识提议包括由所述第一节点接收的多个交易的第一密文以及其排列顺序;基于所述共识凭证验证所述第一节点与所述至少部分第二节点是否对所述共识提议达成共识;如果是,对各个所述第一密文进行解密以获得其各自对应的解密结果,所述第一密文的解密结果中至少包括其对应的交易;向所述tee的外部提供各个所述交易,以便在所述tee的外部执行各个所述交易。
6.第三方面,提供了一种区块链系统中的交易执行装置,所述区块链系统中包括第一节点和多个第二节点,所述装置部署在所述第一节点的tee的外部。所述装置包括:共识处理单元,配置为在接收到多个交易的第一密文后生成共识提议,并与所述多个第二节点中的至少部分第二节点对所述共识提议进行共识,其中所述共识提议包括各个所述第一密文以及其排列顺序;交互处理单元,配置为在对所述共识提议达成共识的情况下,向所述第一节点的可信执行环境tee提供所述共识提议和共识凭证,使所述tee在基于所述共识凭证确认对所述共识提议达成共识后,对第一密文进行解密以获得各个所述交易,并向所述tee的外部提供各个所述交易;交易执行单元,配置为执行各个所述交易。
7.第四方面,提供了一种区块链系统中的交易执行装置,所述区块链系统中包括第
一节点和多个第二节点,所述装置部署在所述第一节点和所述多个第二节点中至少部分第二节点各自的tee中。所述装置包括:交互处理单元,配置为从所述tee的外部获取共识凭证和由所述第一节点生成的共识提议,其中所述共识提议包括由所述第一节点接收的多个交易的第一密文以及其排列顺序;验证处理单元,配置为基于所述共识凭证验证所述第一节点与所述至少部分第二节点是否对所述共识提议达成共识,如果是则触发解密处理单元;所述解密处理单元,配置为在所述共识验证单元的触发下对各个所述第一密文进行解密以获得其各自对应的解密结果,所述第一密文的解密结果中至少包括其对应的交易;所述交互处理单元,还配置为向所述tee的外部提供各个所述交易,以便在所述tee的外部执行各个所述交易。
8.第五方面,提供了一种区块链系统,包括第一节点和多个第二节点,其中:所述第一节点在接收到多个交易的第一密文后生成共识提议,并与所述多个第二节点中的至少部分第二节点对所述共识提议进行共识,其中所述共识提议包括各个所述第一密文以及其排列顺序;对所述共识提议达成共识的所述第一节点和所述第二节点,向其各自的可信执行环境tee提供所述共识提议和共识凭证,使其各自的tee在基于所述共识凭证确认对所述共识提议达成共识后,对各个所述第一密文分别进行解密以获得解密结果,所述第一密文的解密结果中至少包括所述第一密文对应的交易;以及,在其各自的tee的外部执行各个所述交易。
9.第六方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行第一方面或第二方面中任一项所述的方法。
10.第七方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面中任一项所述的方法。
11.上述实施例中,作为共识提议节点的第一节点并不直接接收由用户设备获取的交易,而是接收与交易对应的第一密文,进而基于其接收的多个第一密文生成共识提议并与其余共识节点对该共识提议进行共识。当且仅当共识提议节点的tee中基于相应的共识提议验证对共识提议达成共识的情况下,才在tee中对共识提议所包括的各个第一密文进行解密以得到各个第二密文分别对应的交易,进而将在tee中解密获得的各个交易交由tee的外部执行。如此,共识提议节点无法预知需要执行的各个交易,进而无法通过对不同的交易进行区分服务以使得某些特定交易被优先执行或推迟执行,区块链系统具有更高的公平性。。
附图说明
12.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
13.图1为本说明书实施例中示例性提供的pbft共识算法中的共识过程示意图;
14.图2为本说明书实施例中示例性提供的区块链系统的示意图;
15.图3为本说明书实施例中示例性提供的一种区块链系统中的交易执行方法的流程
图;
16.图4为本说明书实施例中示例性提供的用户设备向第一节点传输数据的过程示意图之一;
17.图5为本说明书实施例中示例性提供的用户设备向第一节点传输数据的过程示意图之二;
18.图6为本说明书实施例中提供的一种区块链系统中的交易执行装置的示意图之一;
19.图7为本说明书实施例中提供的一种区块链系统中的交易执行装置的示意图之二。
具体实施方式
20.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
21.区块链系统是通过多个节点(node)来建立的分布式网络,区块链系统中的不同节点间通过对等(peer-to-peer,p2p)网络实现在应用层的连接。区块链系统利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,将交易打包成区块并基于相同交易的执行结果更新世界状态。其中当前主流的共识机制包括但不限于:工作量证明(proof of work,pow)、股权证明(proof of stake,pos)、委任权益证明(delegated proof of stake,dpos)、实用拜占庭容错(practical byzantine fault tolerance,pbft)算法,蜜獾拜占庭容错(honeybadgerbft)算法等等。
22.图1为本说明书实施例中示例性提供的pbft共识算法中的共识过程示意图。如图1所示,根据pbft共识算法可将共识过程划分为请求、预备、准备和提交四个阶段。假设区块链系统中包括节点n1~节点n4等四个共识节点,其中节点n1例如为主节点/共识提议节点(下文中也将共识提议节点表述为第一节点),节点n2~节点n4例如为从节点,根据pbft算法在节点n1-节点n4中可容忍f=1个恶意节点。具体是,在请求阶段,节点n1例如可以接收区块链系统的用户通过其用户设备向区块链系统发送的请求,该请求例如为区块链交易的形式。在预备阶段,节点n1在接收到来自若干用户设备的多个交易之后,可将该多个交易打包为共识提议,并将该共识提议及节点n1对该共识提议的签名发送给其他共识节点(即节点n2-节点n4),以用于生成区块,该共识提议中可以包括该多个交易以及其提交顺序等信息。在准备阶段,各个从节点可对共识提议进行签名并发送给其他各个节点。假设节点n4为恶意节点,节点n1、节点n2和节点n3在分别接收到2f=2个其他共识节点的对共识提议的签名之后,可确定准备阶段完成,可进入提交阶段。例如节点n1在接收到节点n2和节点n3的签
名之后,验证节点n2和节点n3的签名都是正确的对共识提议的签名,则确定准备阶段完成,节点n2在接收到节点n3的签名和预备阶段节点n1的签名并验证通过之后,确定准备阶段完成。在提交阶段,各个共识节点对共识提议进行提交阶段的签名并发送给其他各个共识节点,各个共识节点在接收到2f=2个其他共识节点的提交阶段的签名之后,可确定提交阶段完成,共识成功。例如,节点n1在接收到节点n2和节点n3的提交阶段的签名并验证之后,确定提交阶段完成,从而节点n1可根据共识提议执行其包含的多个交易,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。类似地,节点n2和节点n3在确定提交阶段完成之后,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。通过上述过程,实现了节点n1、节点n2和节点n3存储的数据的一致性。也就是说,节点n1-节点n4在存在一个恶意节点的情况下仍可以实现对共识提议的共识成功,完成对多个交易的执行。
23.前文虽然示例性描述了节点n1~节点n4执行共识机制的过程,然而可以理解的是区块链系统中可以包括更多的共识节点,甚至还可以包括除共识节点以外的若干非共识节点,例如参照图2所示的区块链系统,其还可以包括作为非共识节点的节点n5。非共识节点可以从共识节点同步区块和世界状态,例如节点n5可以从节点n1接收共识结果,该共识结果例如是节点n1生成的区块或节点n1~节点n4达成共识的共识提议,进而使得节点n5可以基于共识结果获得相应的区块并对应更新其存储的世界状态,保证不同节点存储的数据的一致性。
24.参照前文所述,共识提议节点接收的是由用户设备生成的交易,并对其接收的多个交易按照某种顺序进行打包以生成共识提议。如果共识提议节点是恶意节点,则其可能根据交易中暴露的发送方字段(from)、接收方字段(to)或者其它信息,对不同的交易进行区分服务;例如将某个交易优先或推迟打包到共识提议中、有选择的将某个交易排列在共识提议中靠前或靠后的位置,以便某个交易被优先执行或推迟执行,影响区块链系统的公平性。
25.图3为本说明书实施例中提供的一种区块链系统中的交易执行方法的流程图。该方法至少涉及区块链系统中的第一节点(共识提议节点)和多个第二节点(除共识提议节点以外的其余节点),如图3所示,该方法可以包括但不限于如下方法步骤31~步骤39。
26.在步骤31,第一节点在其tee的外部接收到多个交易的第一密文后生成共识提议后,与多个第二节点中的至少部分第二节点对该共识提议进行共识。其中前述至少部分第二节点是指区块链系统中除第一节点以外的其余共识节点。
27.第一密文可以由用户设备对其获取的交易进行加密以生成。或者为了防止用户设备和第一节点联合作恶,导致第一节点预先获知特定交易的第一密文而优先或推迟执行该交易,可以要求用户设备将其获取的交易发送至与其连接的第二节点,或者要求用户设备对其获取的交易进行加密后发送至与其连接的第二节点;进而,可以由位于用户设备与第一节点间的通信链路上的某个第二节点来生成该交易的第一密文,例如由位于该通信链路上的某个第二节点在其tee中生成该交易的第一密文。
28.当由某个用户设备获取的交易的第一密文由第二节点来生成的情况下,该交易的第一密文具体可以是在该第二节点的tee中或tee的外部,对该第二节点的标识和该交易进行加密以生成的;或者,该交易的第一密文具体可以是在该第二节点的tee中或tee外部,对
该用户设备与第一节点间的通信链路上的每个第二节点各自的标识以及该交易进行加密以生成的。其中第二节点的标识可以是其tee外部无法伪造的标识,例如其可以是利用第二节点的私钥对其余节点均知悉的数据的签名,具体例如为第二节点对某个常数或者其自身的公钥的签名,避免某个第二节点仿冒其它节点伪造相关于某个交易的密文。
29.例如请参见图4,用户设备与节点n5连接,则该用户设备与节点n1间的通信链路至少包括节点n5;该用户设备可以向节点n5发送其获取的交易tx1或者交易tx1的密文e1(key1,tx1),其中key1表征该用户设备对交易tx1进行加密时使用的密钥,e1表征该用户设备对交易tx1进行加密时使用的加密算法。接着节点n5可在其tee中对交易tx1或者密文e1(key1,tx1)进行处理以得到新的密文e2(key2,n5,tx1),无论节点n5与节点n1间的通信链路上是否还包括其它第二节点,密文e2(key2,n5,tx1)均可以被直接的作为交易tx1的第一密文被发送至节点n1,其中key2表征节点n5对节点n5的标识n5和交易tx1进行加密时使用的密钥,e2表征对节点n5的标识n5和交易tx1进行加密时使用的加密算法。需要说明的是,当节点n5从用户设备接收的是交易tx1的密文e1(key1,tx1)而不是交易tx1时,节点n5可在其tee中利用与密钥key1相对应的解密密钥对密文e1(key1,tx1)进行解密以获得交易tx1。
30.例如请参见图5,用户设备与节点n1间的通信链路上除了与该用户设备连接的节点n5以外,还可能包括节点n2和节点n3等其它第二节点。与前文示例性描述的节点n5处理密文e1(key1,tx1)的过程类似,节点n2可以在其tee中利用密钥key3将来自节点n5的密文e2(key2,n5,tx1)处理为密文e2(key3,n2,tx1)或者密文e2(key3,n2,n5,tx1),节点n3可以在其tee中利用密钥key4将来自节点n2的密文e2(key3,n2,tx1)或者密文e2(key3,n2,n5,tx1)处理为密文e2(key4,n3,tx1)或者密文e2(key4,n3,n2,n5,tx1),节点n3获得的密文e2(key4,n3,tx1)或者密文e2(key4,n3,n2,n5,tx1)可以被作为交易tx1的第一密文发送至节点n1。
31.此外第二节点在生成或解密相关于某个交易的密文时,不仅可以使用相同的对称加密算法,而且不同节点生成或解密密文时所使用的密钥可以完全相同,以便节约tee的计算量。换而言之,前述各个示例中的key2、key3和key4均可以是tee外部无法获知的相同的对称密钥。
32.第一节点与至少部分第二节点对共识提议进行共识的过程中,可以采用前文描述的各种共识机制,例如第一节点和至少部分第二节点可以采用与前述图1中预备、准备和提交等阶段相似的过程完成对共识提议进行共识,此处不再赘述。需要特别说明的是,在对共识提议达成共识的情况下,参与对共识提议进行共识的第一节点和至少部分第二节点均可能获得由第一节点和至少部分第二节点生成的至少q个表征赞同共识提议的签名,该至少q个表征赞同共识提议的签名可以作为表征对共识提议达成共识的共识凭证,其中q的取值基于第一节点和至少部分第二节点的总量进行确定,例如第一节点和至少部分第二节点的总量可以为3f+1或者3f+2个,则q的取值应当不小于2f。此外前述表征赞同共识提议的签名,例如为前述示例的pbft共识算法中,第一节点和至少部分第二节点在提交阶段生成的相关于共识提议的正确签名。
33.第一节点和至少部分第二节点中对共识提议达成共识的每个节点,均可继续执行后续步骤33~步骤39,换而言之即如下步骤33~步骤39可以由对共识提议达成共识的任意节点执行。
34.在步骤33,向其tee提供共识提议和共识凭证。换而言之即对共识提议达成共识的每个节点,其各自的tee将会从其各自的tee的外部获取到共识凭证和共识提议。
35.在步骤35,在其tee中基于共识凭证验证是否对共识提议达成共识。例如验证共识凭证中是否包括由第一节点和至少部分第二节点生成的至少q个表征赞同tee获取的共识提议的签名。
36.如果共识凭证在第一节点或某个第二节点的tee中未能通过验证,则说明第一节点和至少部分第二节点实质上并未达成对tee实际获取的共识提议达成共识,tee中无需对其从tee外获取的共识提议所包括的各个第一密文进行解密;反之则继续执行如下步骤37。
37.在步骤37,在其tee中对共识提议所包括的各个第一密文进行解密,获得各个第一密文分别对应的解密结果。其中单个第一密文的解密结果中至少包括该第一密文对应的交易。
38.当允许用户设备直接生成由第一节点接收的第一密文的情况下,可以直接执行步骤39。
39.当不允许用户设备直接生成由第一节点接收的第一密文,而是要求第一节点接收的第一密文由第二节点生成的情况下,参照前文由第二节点生成第一密文的过程可知,第一密文的解密结果中还应当包括至少一个第二节点的标识。进而,如果某个第一密文的解密结果中并并未包含至少一个第二节点的标识,则说明该第一密文可能由用户设备直接发送至第一节点,存在用户设备与第一节点联合作恶而恶意的优先或推迟执行该第一密文所对应的交易的可能性;此种情况下,执行步骤37的节点还可以在其tee中判断通过前述步骤37获得的每个解密结果中是否均包含至少一个第二节点的标识,如果是则执行后续步骤39。更具体地说,可以要求用户设备与第一节点间的通信链路上的第二节点的数量不小于预定数值,如此当要求交易的第一密文是由某个第二节点对用户设备与第一节点间的通信链路上的每个第二节点各自的标识以及该交易进行加密以生成时,第一节点可以判断解密结果中包含的第二节点的标识的数量是否达到预定数值,如果是则继续执行步骤39,如此可以防止用户通过包含第一节点在内的预定数值个节点联合作恶。
40.在步骤39,向其tee的外部提供在其tee中获得的各个交易,并在tee的外部执行各个交易。
41.通过本说明书实施例中提供的前述各个方法实施例,共识提议节点并不直接接收由用户设备获取的交易,而是接收与交易对应的第一密文,进而基于其接收的多个第一密文生成共识提议并与其余共识节点对该共识提议进行共识。当且仅当共识提议节点的tee中基于相应的共识提议验证对共识提议达成共识的情况下,才在tee中对共识提议所包括的各个第一密文进行解密以得到各个第二密文分别对应的交易,进而将在tee中解密获得的各个交易交由tee的外部执行。如此,共识提议节点无法预知需要执行的各个交易,进而无法通过对不同的交易进行区分服务以使得某些特定交易被优先执行或推迟执行,区块链系统具有更高的公平性。
42.对于区块链系统中除共识提议节点以外的其余共识节点而言,其同样需要在其tee中基于相应的共识提议验证对共识提议达成共识的情况下,才能在tee中对共识提议所包括的各个第一密文进行解密以得到各个第二密文分别对应的交易,进而将在tee中解密获得的各个交易交由tee的外部执行。如此,未作为共识提议节点的其余共识节点同样无法
预先获知需要执行的各个交易,极大的降低了未作为共识提议节点的其余共识节点与共识提议节点联合作恶的可能性,有利于提高区块链系统的公平性。
43.对于共识提议节点接收的交易的第一密文,其可以由区块链系统中除共识提议节点以外的其它节点生成而并非由用户设备基于其获的交易直接生成,使得用户设备无法预先告知共识提议节点需要优先或推迟处理的交易的第一密文,可避免用户设备与共识提议节点联合作恶以导致某些特定交易被优先执行或推迟执行。
44.与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的交易执行装置,所述区块链系统中包括第一节点和多个第二节点,所述装置部署在所述第一节点的tee的外部。如图6所示,所述装置包括:共识处理单元61,配置为在接收到多个交易的第一密文后生成共识提议,并与所述多个第二节点中的至少部分第二节点对所述共识提议进行共识,其中所述共识提议包括各个所述第一密文以及其排列顺序;交互处理单元63,配置为在对所述共识提议达成共识的情况下,向所述第一节点的可信执行环境tee提供所述共识提议和共识凭证,使所述tee在基于所述共识凭证确认对所述共识提议达成共识后,对第一密文进行解密以获得各个所述交易,并向所述tee的外部提供各个所述交易;交易执行单元65,配置为执行各个所述交易。
45.在一种可能的实施方式中,所述第一密文由所述第二节点发送至所述第一节点,由对应的第二节点在其tee中对所述对应的第二节点的标识和对应的交易进行加密以生成。
46.在一种可能的实施方式中,所述对应的交易由用户设备或所述多个第二节点中的其它第二节点发送至所述对应的第二节点。
47.在一种可能的实施方式中,所述对应的交易由所述对应的第二节点在其tee中对所述对应的交易的第二密文进行解密以获得,所述第二密文由用户设备或所述多个第二节点中的其它第二节点发送至所述对应的第二节点。
48.在一种可能的实施方式中,所述共识凭证包括由所述第一节点和所述至少部分第二节点生成的至少q个表征赞同所述共识提议的签名,其中q的取值基于所述第一节点和所述至少部分第二节点的总量确定。
49.与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的交易执行装置,所述区块链系统中包括第一节点和多个第二节点,所述装置部署在所述第一节点和所述多个第二节点中至少部分第二节点各自的tee中。如图7所示,所述装置包括:交互处理单元71,配置为从所述tee的外部获取共识凭证和由所述第一节点生成的共识提议,其中所述共识提议包括由所述第一节点接收的多个交易的第一密文以及其排列顺序;验证处理单元73,配置为基于所述共识凭证验证所述第一节点与所述至少部分第二节点是否对所述共识提议达成共识,如果是则触发解密处理单元75;所述解密处理单元75,配置为在所述共识验证单元的触发下对各个所述第一密文进行解密以获得其各自对应的解密结果,所述第一密文的解密结果中至少包括其对应的交易;所述交互处理单元71,还配置为向所述tee的外部提供各个所述交易,以便在所述tee的外部执行各个所述交易。
50.在一种可能的实施方式中,所述验证处理单元73,还配置为确定每个所述解密结果中是否均包含至少一个所述第二节点的标识。
51.在一种可能的实施方式中,所述验证处理单元73,具体配置为验证所述共识凭证
中是否包括由所述第一节点和所述至少部分第二节点生成的至少q个表征赞同所述共识提议的签名,其中q的取值基于所述第一节点和所述至少部分第二节点的总量确定。
52.与前述方法实施例基于相同的构思,本说明书实施例中还一种区块链系统,包括第一节点和多个第二节点。其中:所述第一节点在接收到多个交易的第一密文后生成共识提议,并与所述多个第二节点中的至少部分第二节点对所述共识提议进行共识,其中所述共识提议包括各个所述第一密文以及其排列顺序;对所述共识提议达成共识的所述第一节点和所述第二节点,向其各自的tee提供所述共识提议和共识凭证,使其各自的tee在基于所述共识凭证确认对所述共识提议达成共识后,对各个所述第一密文分别进行解密以获得解密结果,所述第一密文的解密结果中至少包括所述第一密文对应的交易;以及,在其各自的tee的外部执行各个所述交易。
53.在一种可能的实施方式中,所述第二节点在其tee中对所述第二节点的标识和所述交易进行加密以生成所述交易对应的第一密文;所述第一节点从所述第二节点接收所述第一密文。
54.在一种可能的实施方式中,生成所述第一密文的第二节点从用户设备或所述多个第二节点中的其它第二节点接收所述交易。
55.在一种可能的实施方式中,生成所述第一密文的第二节点从用户设备或所述多个第二节点中的其它第二节点接收所述对应的交易的第二密文,并在其tee中对所述第二密文进行解密以获得所述对应的交易。
56.在一种可能的实施方式中,对所述共识提议达成共识的所述第一节点和所述第二节点,在其各自的tee中确定每个所述解密结果中是否均包含至少一个所述第二节点的标识。
57.在一种可能的实施方式中,对所述共识提议达成共识的所述第一节点和所述第二节点,在其各自的tee中验证所述共识凭证中是否包括由所述第一节点和所述至少部分第二节点生成的至少q个表征赞同所述共识提议的签名,其中q的取值基于所述第一节点和所述至少部分第二节点的总量确定。
58.虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
59.本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
60.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
61.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
62.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
63.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
64.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
65.本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
66.本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
67.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
68.以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。