CN110232634A - 区块链共识方法、区块链共识***和计算机可读存储介质 - Google Patents
区块链共识方法、区块链共识***和计算机可读存储介质 Download PDFInfo
- Publication number
- CN110232634A CN110232634A CN201910488474.8A CN201910488474A CN110232634A CN 110232634 A CN110232634 A CN 110232634A CN 201910488474 A CN201910488474 A CN 201910488474A CN 110232634 A CN110232634 A CN 110232634A
- Authority
- CN
- China
- Prior art keywords
- block chain
- node
- block
- common recognition
- transaction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000012795 verification Methods 0.000 claims abstract description 18
- 238000001914 filtration Methods 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 238000012549 training Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 abstract description 16
- 238000004364 calculation method Methods 0.000 abstract description 9
- 238000005265 energy consumption Methods 0.000 abstract description 7
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000005457 optimization Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- RTZKZFJDLAIYFH-UHFFFAOYSA-N ether Substances CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 239000000463 material Substances 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 201000004569 Blindness Diseases 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000001154 acute effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000002699 waste material 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Economics (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请公开了区块链共识方法、区块链共识***和计算机可读存储介质。区块链包括多个节点,区块链共识方法包括:每个节点获取全部节点关于当前交易的评分信息;每个节点根据评分信息从全部节点中确定记账者和验证者;记账者将当前交易打包为区块并将区块发送给验证者;验证者在接收到区块后对区块进行验证以得到验证结果;验证者根据验证结果处理区块。如此,通过评分信息来确定记账者和验证者,并利用验证者来验证记账者打包的区块,在保证区块链中的节点维护同一账本以确保交易的完整性、正确性的同时,能够节约节点间竞争记账权消耗的大量算力、提高吞吐量、优化性能和降低能耗。
Description
技术领域
本申请涉及区块链技术领域,具体涉及一种区块链共识方法、区块链共识***和计算机可读存储介质。
背景技术
相关技术一般使用工作量证明(Proof of Work,POW)共识算法来竞争记账权。POW共识算法的核心思想是各个节点通过证明自己的算力来竞争记账权。POW共识算法能够保证账本的一致性,在恶意节点的算力小于50%的情况下,能够保证账本的账本的正确性,防止双重支付等问题。然而,在实际应用中,POW共识算法会产生算力竞争导致集中化矿池的产生、能源消耗、吞吐量低等问题。
发明内容
本申请提供了一种区块链共识方法、区块链共识***和计算机可读存储介质。
本申请实施方式提供一种区块链共识方法。所述区块链包括多个节点,所述区块链共识方法包括:
每个所述节点获取全部所述节点关于当前交易的评分信息;
每个所述节点根据所述评分信息从全部所述节点中确定记账者和验证者;
所述记账者将所述当前交易打包为区块并将所述区块发送给所述验证者;
所述验证者在接收到所述区块后对所述区块进行验证以得到验证结果;
所述验证者根据所述验证结果处理所述区块。
本申请实施方式提供一种区块链共识***。所述区块链包括多个节点,所述区块链共识***包括处理器和与所述处理器连接的存储器,所述存储器存储有区块链共识程序,所述区块链共识程序被所述处理器执行时实现上述的区块链共识方法。
本申请实施方式提供一种计算机可读存储介质。所述计算机可读存储介质上存储有区块链共识程序,所述区块链共识程序被处理器执行时实现上述的区块链共识方法。
本申请实施方式的区块链共识方法、区块链共识***和计算机可读存储介质,通过评分信息来确定记账者和验证者,并利用验证者来验证记账者打包的区块,在保证区块链中的节点维护同一账本以确保交易的完整性、正确性的同时,能够节约节点间竞争记账权消耗的大量算力、提高吞吐量、优化性能和降低能耗。
本申请的实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实施方式的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请实施方式的区块链共识方法的流程示意图;
图2是本申请另一实施方式的区块链共识方法的流程示意图;
图3是本申请又一实施方式的区块链共识方法的流程示意图;
图4是本申请再一实施方式的区块链共识方法的流程示意图;
图5是本申请另一实施方式的区块链共识方法的流程示意图;
图6是本申请又一实施方式的区块链共识方法的流程示意图;
图7是本申请再一实施方式的区块链共识方法的流程示意图。
主要元件符号说明:
区块链共识***100、处理器101,存储器102。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
在本申请的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接或可以相互通信;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
下文的公开提供了许多不同的实施方式或例子用来实现本申请的不同结构。为了简化本申请的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本申请。此外,本申请可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本申请提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
请参阅图1,本申请实施方式提供一种区块链共识方法。区块链包括多个节点,区块链共识方法包括:
步骤S12:每个节点获取全部节点关于当前交易的评分信息;
步骤S14:每个节点根据评分信息从全部节点中确定记账者和验证者;
步骤S16:记账者将当前交易打包为区块并将区块发送给验证者;
步骤S18:验证者在接收到区块后对区块进行验证以得到验证结果;
步骤S19:验证者根据验证结果处理区块。
本申请实施方式的区块链共识方法,通过评分信息来确定记账者和验证者,并利用验证者来验证记账者打包的区块,在保证区块链中的节点维护同一账本以确保交易的完整性、正确性的同时,能够节约节点间竞争记账权消耗的大量算力、提高吞吐量、优化性能和降低能耗。
在申请本实施方式中,区块链为联盟链。可以理解,在其他的实施方式中,区块链可以为公有链、私有链或其他类型的区块链。在此不对区块链的具体形式进行限定。
具体地,自从中本聪(Nakamoto)提出比特币的概念以来,以“区块”和“链”记录交易的方式便进入人们的视野。区块链的本质是将一个网络中点对点的交易记录通过特定的算法生成一个“区块”,再通过密码学技术,将这些“区块”链接起来,使得前后生成的区块环环相扣,因此被形象的称之为区块链。但Nakamoto并没有明确提出区块链的定义,比特币在当时也只是一种点对点的电子现金***。2013年,维塔利克·布特林(Vitalik Buterin)提出一种下一代加密货币与去中心化应用平台——以太坊 (Ethereum),宣布基于区块链技术的智能合约时代到来。“区块链”的概念开始被越来越多的提及,应用也越来越广泛。
在区块链技术中,最关键的问题是如何保证成千上万的节点存储的区块链是相同的,即所有节点都维持一个共同的账本,对同一笔交易保持相同态度。解决这个问题的算法就叫做共识算法。目前在比特币以及以太坊网络中,使用工作量证明(Proof of Work,POW)共识算法,其核心思想是各个节点通过证明自己的算力来竞争记账权。具体来讲分为以下几个步骤:(1)***产生一个难以计算但容易验证其正确性的问题,即找到一个字符串,使其哈希值的前缀具有指定长度的0;(2)参与竞争记账权的节点把Merkle根哈希及其他相关字段组装成区块头,将区块头的80字节的被使用一次的非重复的随机数值(Number usedonce, nonce)字段作为工作量证明的输入;(3)不停的变换nonce的数值,并对每次变更后的区块头做双重SHA256运算,将结果值与当前网络目标值作对比,如果小于目标值,则工作量证明完成。
POW共识算法能够保证账本的一致性,在恶意节点的算力小于50%的情况下,能够保证账本的账本的正确性,防止双重支付等问题。然而,在实际应用中,POW共识算法具有如下缺陷:(1)算力竞争导致集中化矿池的产生。虽然POW是为了保证区块链***的去中心化,但比特币***运行到现在已经形成了中心化程度很高的五大矿池,垄断了90%以上的算力,这违背了区块链技术的原则;(2)算力竞争导致的能源消耗。由于竞争记账权需要进行大量的哈希运算,这些计算没有产生任何的科学价值,反而消耗了大量的电力资源,造成严重的浪费;(3)吞吐量低。由于POW共识算法首先需要解决一个数学难题来竞争记账权,这导致***无法处理大量的交易业务,吞吐量很低。在比特币***中,每秒只能进行约7笔的交易,以太坊每秒10-20笔。
基于此,本申请实施方式的区块链共识方法,通过评分信息,而非工作量证明,来确定记账者和验证者,并利用验证者来验证记账者打包的区块,在保证区块链中的节点维护同一账本以确保交易的完整性、正确性的同时,能够节约节点间竞争记账权消耗的大量算力、提高吞吐量、优化性能和降低能耗。
本申请实施方式的区块链共识方法可按照一定的时间间隔进行。例如,每隔预设时长对一批交易打包记账,这批交易即为当前交易。在每轮记账的过程中,当前交易的数量可为一个,也可为多个。也即是说,每轮记账可包括多次交易。
在每轮记账的过程中,每个节点可以在一个当前交易中评分其他节点,也可在另一个交易中被其他节点评分。步骤S12中,每个节点获取的全部节点关于当前交易的评分信息,是指在每轮记账的过程中,全部节点产生的所有的评分信息。
每轮记账均可分为三个阶段:交易阶段、评分阶段和记账阶段。
在交易阶段,可将每次交易的双方节点分为服务提供者(Provider)和评分者(Rater)。其中,服务提供者是本次交易的发起方,评分者是本次交易的接收方。
在一个例子中,节点a向节点b请求一次交易,这个交易是转账操作,那么交易的发起方(也即是节点a)作为服务提供者,交易的接收方(也即是节点b)作为评分者对节点a进行评价。
在另一个例子中,节点c向节点d请求一次交易,这个交易是智能合约中的一次函数调用,那么交易的发起方(也即是节点c)作为服务提供者,交易的接收方(也即是节点d)作为评分者对节点c进行评价。
在评分阶段,评分者在完成本次交易后,将对服务提供者的评分信息附加在本次的交易信息之后,广播到全网,其余节点收到评分信息后存储该评分信息。也即是说,在每轮记账的交易阶段和评分阶段结束后,完成的交易进入区块链的交易池,交易池中积累了若干条待打包交易,每个节点自然也就收到了若干条其他节点对自己的评分(如果自己充当过服务提供者的话)以及其他节点之间的相互评分。另外,每个节点也能够获知他自己对其他节点的评分。因此,每个节点可以获取到全部的评分信息,这些评分信息都是关于本轮记账中的当前交易的。
具体地,本次的交易信息包括服务提供者ID、请求的内容、提供数据的哈希值、服务提供者签名以及时间戳。评分者广播的评分信息包括评分者ID、信誉评分、时间戳、收到数据的哈希值以及评分者签名。本次的交易信息和评分信息具体的数据结构如下表1所示:
表1
在记账阶段,每个节点根据获取到的全部的评分信息从全部节点中确定记账者和验证者。记账者将当前交易打包为区块并将区块发送给验证者。验证者在接收到区块后对区块进行验证以得到验证结果;验证者根据验证结果处理区块。
可以理解,本申请实施方式的区块链共识方法中的区块链,每个节点都是平等的。具体地,由于每个节点都能获取到本轮记账中全部的评分信息,且,每个节点都根据评分信息确定记账者,因此,每个节点都拥有平等的竞争记账者的资格。
另外,记账者在将当前交易打包为区块并将区块发送给验证者时,也将区块加入公共账本。区块链的每个节点可理解为一个计算机,记账者将区块加入公共账本可理解为记账者将区块存入硬盘。
请参阅图2,在某些实施方式中,区块链共识方法包括:
步骤S11:训练全部节点,以使每个节点具备根据接收到的当前交易对待评分节点进行评分的能力,接收到的当前交易由待评分节点发起。
如此,使得区块链中的全部节点都具备评分的能力。具体地,可采用监督学习算法对区块链中的全部节点进行训练。进一步地,可首先对节点的数据特征进行提取与分类,数据特征包括但不限于节点的吞吐量、往返时延等。然后使用K-近邻算法(k-NearestNeighbors,KNN)训练节点。
每个节点根据待评分节点的数据特征对待评分节点进行评分。也即是说,数据特征是每个节点对待评分节点进行评分时所考察的项目。
K-近邻算法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。也即是说,可使用K-近邻算法对节点进行训练,以使节点能够根据接收到的当前交易判断该当前交易的各数据特征所处的类别,从而实现对待评分节点进行评分。这样,经过训练的节点能够更加准确的为待评分节点进行评分,这样避免了盲目评分导致的记账人选举不公平。
另外,步骤S11可在本申请实施方式的区块链共识***启动时进行一次即可,不需要每轮交易的开始都进行。
请参阅图3,在某些实施方式中,区块链的交易池包括多个待打包交易,步骤S12包括:
步骤S122:每个节点过滤待打包交易以得到当前交易和评分信息。
如此,实现每个节点获取全部节点关于当前交易的评分信息。如前所述,在每轮记账的交易阶段和评分阶段结束后,完成的交易进入区块链的交易池,交易池中积累了若干条待打包交易。这些待打包交易可能因为各种原因并不适合被打包,因此,要对待打包交易进行过滤以得到本次打包的当前交易,从而保障本次打包的的安全性。可以理解,过滤得到当前交易,即可得到当前交易的评分信息。
具体地,可在每个节点上设置交易过滤器,交易过滤器是一种过滤的算法。在打包前,每个节点都会利用交易过滤器把本次打包的当前交易筛选出来。交易过滤器具体的过滤方法在接下来的实施方式中详细介绍。
可选地,区块链共识方法包括:初始化交易过滤器;和检测初始化是否正确以检查交易过滤器是否正确设置。可以理解,初始化交易过滤器只需进行一次。
另外,在检测初始化是否正确时,还可检查节点训练情况以保证节点具备评分的能力。
请参阅图4,在某些实施方式中,步骤S122包括:
步骤S1222:确定待打包交易的发起节点的身份状态;
步骤S1224:根据身份状态过滤待打包交易。
如此,实现每个节点过滤待打包交易以得到当前交易和评分信息。具体地,在步骤S1222中,身份状态包括:属于本区块链和不属于本区块链。在步骤S1224中,在待打包交易的发起节点的身份状态为不属于本区块链的情况下,不将该待打包交易选入当前交易。在待打包交易的发起节点的身份状态为属于本区块链的情况下,将该待打包交易选入当前交易。可以理解,这样可以防止区块链外部的恶意节点发送交易进行评分,扰乱本申请实施方式的区块链共识方法。
请参阅图5,在某些实施方式中,步骤S122包括:
步骤S1226:确定待打包交易的评分的重复状态;
步骤S1228:根据重复状态处理待打包交易的评分。
如此,实现每个节点过滤待打包交易以得到当前交易和评分信息。具体地,在步骤S1226中,重复状态包括:重复评分和未重复评分。重复评分指两个节点之间的评分在一轮交易中出现多次。未重复评分指两个节点之间的评分在一轮交易中出现一次。
可以理解,正常情况下,一轮交易中,某两个节点之间的评分在一轮交易中出现应当只出现一次。因此,在步骤S1228中,在重复状态为重复评分的情况下,根据最后一次的评分对待打包交易的评分进行更新。在步骤S1228中,在重复状态为重复评分的情况下,则不对待打包交易的评分进行更新。这样可以防止重复刷分。
在一个例子中,待打包交易是节点a向节点b请求一次转账操作,节点b作为评分者对节点a进行评价。有三次评分,该转账操作的评分的重复状态为:重复评分。具体地,第一次的评分是8分,第二次的评分是5分,第三次的评分是7分。则以7分作为转账操作的评分。
在一个例子中,待打包交易是节点c向节点d请求一次智能合约中的函数调用,节点d作为评分者对节点c进行评价。只有一次评分:8分。该函数调用的评分的重复状态为:非重复评分。则不对8分进行更新。
另外,在根据重复状态处理待打包交易的评分后,可将处理后的待打包交易选入当前交易。
请参阅图6,在某些实施方式中,步骤S122包括:
步骤S1221:确定当前交易的数量状态;
步骤S1223:根据数量状态过滤待打包交易。
如此,实现每个节点过滤待打包交易以得到当前交易和评分信息。具体地,在步骤S1221中,数量状态包括:达到预设阈值和未达到预设阈值。在步骤S1223中,在数量状态为达到预设阈值的情况下,不将该待打包交易选入当前交易。在数量状态为未达到预设阈值的情况下,将该待打包交易选入当前交易。
进一步地,预设阈值可为用户输入,也可为其他计算模型计算的结果。预设阈值可存储在区块链共识***中。用户可对预设阈值进行修改。在此不对预设阈值的具体来源进行限定。
可以理解,如前所述,本申请实施方式的区块链共识方法可按照一定的时间间隔进行。例如,每隔预设时长对一批交易打包记账,这批交易即为当前交易。在从交易池的待打包交易中选取当前交易时,通过当前交易的数量状态来过滤待打包交易,可以保证每隔预设时长打包的当前交易的数量是固定的,从而保证区块的规范性。交易池中剩余的交易可留在交易池中等待下一轮的打包。
在一个例子中,预设阈值是10,在过滤待打包交易A时,已选取了7个交易作为当前交易,当前交易的数量状态为未达到预设阈值,则将待打包交易A选入当前交易。接着,过滤待打包交易B,此时已选取了8个交易作为当前交易,当前交易的数量状态为未达到预设阈值,则将待打包交易B选入当前交易。接着,过滤待打包交易C,此时已选取了9个交易作为当前交易,当前交易的数量状态为未达到预设阈值,则可将待打包交易C选入当前交易。接着,过滤待打包交易D,此时已选取了10个交易作为当前交易,当前交易的数量状态为达到预设阈值,则不将待打包交易D选入当前交易,待打包交易D等待下一轮的打包。
请注意,可以在步骤S1222和步骤S1224、步骤S1226和步骤S1228、步骤S1221 和步骤S1223这三组步骤中选择一组步骤对待打包交易进行过滤;可以在上述三组步骤中选择两组步骤对待打包交易进行过滤;也可以选择上述三组步骤对待打包交易进行过滤。
在选择两组步骤对待打包交易进行过滤时,可以按照一定的顺序执行两组步骤,也可以以随机的顺序执行两组步骤。类似地,在选择三组步骤对待打包交易进行过滤时,可以按照一定的顺序执行三组步骤,也可以以随机的顺序执行三组步骤。
在此不对步骤S1222和步骤S1224、步骤S1226和步骤S1228、步骤S1221和步骤S1223之间的具体关系进行限定。
本申请实施方式中,根据步骤S1222和步骤S1224、步骤S1226和步骤S1228、步骤S1221和步骤S1223的顺序对待打包交易进行过滤。具体可参下文的伪代码:
输入:一系列的交易,用T={ti}表示
输出:过滤后的交易
请参阅图7,在某些实施方式中,步骤S14包括:
步骤S142:根据评分信息计算全部节点的信誉排名;
步骤S144:确定信誉排名为第一的节点是记账者;
步骤S146:确定信誉排名为非第一的节点是验证者。
如此,实现每个节点根据评分信息从全部节点中确定记账者和验证者。具体地,在步骤S142中,可根据评分信息计算除每个节点的信誉值;并根据每个节点的信誉值确定全部节点的信誉排名。
进一步地,可将每个节点的评分信息进行累加,以得到每个节点的总评分,并将总评分作为信誉值。当然,也可将每个节点的评分信息进行累加,以得到每个节点的总评分,再将总评分除以该节点的评分信息的数量以得到平均评分,并将平均评分作为信誉值。在此不对确定信誉值的具体方式进行限定。
在一个例子中,节点a对节点x的评分为2,节点b对节点x的评分为4,节点c 对节点x的评分为6,求得节点x的总评分为12,并将12作为信誉值。
在另一个例子中,节点a对节点x的评分为2,节点b对节点x的评分为4,节点c 对节点x的评分为6,求得节点x的平均评分为4,并将4作为信誉值。
在步骤S144和步骤S146中,确定信誉排名为第一的节点是记账者,确定信誉排名为非第一的节点是验证者。也即是说,在区块链的全部节点中,信誉排名为第一的节点是记账者,其他节点为验证者。
在一个例子中,信誉排名为:节点x,节点a,节点b。则确定节点x为记账者,节点a和节点b为验证者。
在某些实施方式中,步骤S18包括:
步骤S182:验证区块中的当前交易以得到第一验证子结果;
步骤S184:验证区块是否由信誉排名为第一的节点打包以得到第二验证子结果;
步骤S186:根据第一验证子结果和第二验证子结果确定验证结果;
验证结果包括第一结果和第二结果,步骤S19包括:
步骤S192:在验证结果为第一结果的情况下,验证者存储区块;
步骤S194:在验证结果为第二结果的情况下,验证者丢弃区块。
如此,实现验证者在接收到区块后对区块进行验证并根据验证结果处理区块。具体地,在步骤S182中,验证区块中的当前交易可包括验证包括交易运算的正确性、签名的正确性、签名者是否属于区块链成员等等。另外,由于每个节点都会计算信誉排名,因此,在步骤S184中,每个验证者可以根据自己计算的信誉排名来验证区块是否由信誉排名为第一的节点打包。
在本申请实施方式中,在第一验证子结果为通过且第二验证子结果也为通过的情况下,确定验证结果为通过。可以理解,在其他的实施方式中,也可以是在第一验证子结果和第二验证子结果中的至少一个通过的情况下,确定验证结果为通过。在此不对根据第一验证子结果和第二验证子结果确定验证结果的具体方式进行限定。
在本申请实施方式中,第一结果为“通过”,第二结果为“未通过”。当然,在其他的实施方式中,第一结果为“1”,表示通过,第二结果为“0”,表示未通过;或,第一结果为“0”,表示通过,第二结果为“1”,表示未通过;或,第一结果为“真”,表示通过,第二结果为“假”,表示未通过;或,第一结果为“假”,表示通过,第二结果为“真”,表示未通过。在此不对第一结果和第二结果的具体形式进行限定。
可以理解,在验证通过的情况下存储区块,在验证未通过的情况下丢弃区块,可保证区块的准确性和安全性。
另外,每个节点的验证是独立的,不影响到其他节点,也不受到其他节点的影响。在一个例子中,节点a对区块的验证通过,节点a将区块存储到节点a的硬盘;节点b 对区块的验证未通过,节点b丢弃区块。节点a和节点b的验证不相互影响。
在步骤S192中,验证者存储区块,可指将该区块加入公共账本,写入区块链,存入该验证者的硬盘中。这样,如果区块链中的每个节点都按照规则处理数据,则可以达成共识,维持一个全局的、统一的、分布式的账本。
本申请实施方式提供一种区块链共识***100。区块链包括多个节点,区块链共识***100包括处理器101和与处理器101连接的存储器102,存储器102存储有区块链共识程序,区块链共识程序被处理器101执行时实现上述任一实施方式的区块链共识方法。
本申请实施例还提出一种计算机可读存储介质,计算机可读存储介质上存储有区块链共识程序,区块链共识程序被处理器101执行时实现上述任一实施方式的区块链共识方法。
本申请实施方式的区块链共识***和计算机可读存储介质,通过评分信息来确定记账者和验证者,并利用验证者来验证记账者打包的区块,在保证区块链中的节点维护同一账本以确保交易的完整性、正确性的同时,能够节约节点间竞争记账权消耗的大量算力、提高吞吐量、优化性能和降低能耗。
本申请计算机可读存储介质的具体实施例与上述区块链共识方法的各个实施例基本相同,在此不做赘述。
综合以上,本申请实施方式的区块链共识方法、区块链共识***和计算机可读存储介质,对现有的区块链共识方法进行了改进,各个节点不再消耗算力竞争记账权,而是采用机器学习的算法,由评分者为服务提供者进行评分,由信誉排名最高的节点来进行记账。
本申请实施方式的区块链共识方法、区块链共识***和计算机可读存储介质的实现包含三个要点:(1)维护全局账本的一致。要想使全部节点维护同一个公共账本,必须要确定一个负责记账的节点。本方法选取一轮交易中信誉排名最高的节点作为记账者,其他节点作为验证者对打包的区块进行验证。(2)驱动节点发布区块。在相关技术的比特币网络的共识算法中,使用手续费(比特币)作为矿工竞争记账权的激励。在本申请实施方式的区块链共识方法、区块链共识***和计算机可读存储介质中,打包区块没有手续费,而是使用信誉值作为奖励。信誉值不能被消费或交易,信誉值高的节点意味着能够提供更好的服务,打包区块能够提高发布者总体的信誉值。(3)保证交易和区块的正确性。在联盟链中,每个参与者都拥有其他所有节点的公钥,恶意节点无法通过伪造身份对联盟链发起攻击。
本申请实施方式的区块链共识方法、区块链共识***和计算机可读存储介质的有以下有益效果:(1)节点之间能够以轻量级的方式,竞争区块链中账本记账权;(2)能够高效的处理交易,实现较高的吞吐量;(3)将节点反馈的评分作为选择记账节点的考虑因素,减少***的中心化;(4)能够以更完善的模型对节点信誉值进行评判;(5) 能够极大的减少由区块链共识带来的资源浪费。
在本说明书的描述中,参考术语“某些实施方式”、“一个实施方式”、“一些实施方式”、“示意性实施方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合实施方式或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施方式或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施方式或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (10)
1.一种区块链共识方法,其特征在于,所述区块链包括多个节点,所述区块链共识方法包括:
每个所述节点获取全部所述节点关于当前交易的评分信息;
每个所述节点根据所述评分信息从全部所述节点中确定记账者和验证者;
所述记账者将所述当前交易打包为区块并将所述区块发送给所述验证者;
所述验证者在接收到所述区块后对所述区块进行验证以得到验证结果;
所述验证者根据所述验证结果处理所述区块。
2.如权利要求1所述的区块链共识方法,其特征在于,所述区块链的交易池包括多个待打包交易,每个所述节点获取全部所述节点关于当前交易的评分信息,包括:
每个所述节点过滤所述待打包交易以得到所述当前交易和所述评分信息。
3.如权利要求2所述的区块链共识方法,其特征在于,每个所述节点过滤所述待打包交易以得到所述当前交易和所述评分信息,包括:
确定所述待打包交易的发起节点的身份状态;
根据所述身份状态过滤所述待打包交易。
4.如权利要求2所述的区块链共识方法,其特征在于,每个所述节点过滤所述待打包交易以得到所述当前交易和所述评分信息,包括:
确定所述待打包交易的评分的重复状态;
根据所述重复状态处理所述待打包交易的评分。
5.如权利要求2所述的区块链共识方法,其特征在于,每个所述节点过滤所述待打包交易以得到所述当前交易和所述评分信息,包括:
确定所述当前交易的数量状态;
根据所述数量状态过滤所述待打包交易。
6.如权利要求1所述的区块链共识方法,其特征在于,每个所述节点根据所述评分信息从全部所述节点中确定记账者和验证者,包括:
根据所述评分信息计算全部所述节点的信誉排名;
确定所述信誉排名为第一的所述节点是所述记账者;
确定所述信誉排名为非第一的所述节点是所述验证者。
7.如权利要求6所述的区块链共识方法,其特征在于,所述验证者在接收到所述区块后对所述区块进行验证以得到验证结果,包括:
验证所述区块中的所述当前交易以得到第一验证子结果;
验证所述区块是否由所述信誉排名为第一的所述节点打包以得到第二验证子结果;
根据所述第一验证子结果和所述第二验证子结果确定所述验证结果;
所述验证结果包括第一结果和第二结果,所述验证者根据所述验证结果处理所述区块,包括:
在所述验证结果为所述第一结果的情况下,所述验证者存储所述区块;
在所述验证结果为所述第二结果的情况下,所述验证者丢弃所述区块。
8.如权利要求1所述的区块链共识方法,其特征在于,所述区块链共识方法包括:
训练全部所述节点,以使每个所述节点具备根据接收到的所述当前交易对待评分节点进行评分的能力,所述接收到的所述当前交易由所述待评分节点发起。
9.一种区块链共识***,其特征在于,所述区块链包括多个节点,所述区块链共识***包括处理器和与所述处理器连接的存储器,所述存储器存储有区块链共识程序,所述区块链共识程序被所述处理器执行时实现如权利要求1至8中任一项所述的区块链共识方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有区块链共识程序,所述区块链共识程序被处理器执行时实现如权利要求1至8中任一项所述的区块链共识方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488474.8A CN110232634A (zh) | 2019-06-05 | 2019-06-05 | 区块链共识方法、区块链共识***和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910488474.8A CN110232634A (zh) | 2019-06-05 | 2019-06-05 | 区块链共识方法、区块链共识***和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110232634A true CN110232634A (zh) | 2019-09-13 |
Family
ID=67859332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910488474.8A Pending CN110232634A (zh) | 2019-06-05 | 2019-06-05 | 区块链共识方法、区块链共识***和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110232634A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674217A (zh) * | 2019-09-23 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、设备和介质 |
CN111104460A (zh) * | 2019-12-02 | 2020-05-05 | 远光软件股份有限公司 | 一种区块链共识方法、***、电子设备、存储介质 |
CN111242718A (zh) * | 2019-12-18 | 2020-06-05 | 深圳大学 | 基于区块链的数据交易方法、装置、设备及介质 |
CN111242630A (zh) * | 2019-12-19 | 2020-06-05 | 广州宏算信息科技有限公司 | 一种基于区块链的结算方法、装置及存储介质 |
CN111292098A (zh) * | 2020-01-15 | 2020-06-16 | 北京航空航天大学 | 一种面向可信服务供应链的区块链共识机制构建方法 |
CN111314436A (zh) * | 2020-01-20 | 2020-06-19 | 柏建华 | 一种分级区块链***及实现方法 |
CN111402079A (zh) * | 2020-03-24 | 2020-07-10 | 中国南方电网有限责任公司 | 电力区块的获取方法、装置、计算机设备和存储介质 |
CN111786772A (zh) * | 2019-12-10 | 2020-10-16 | 深圳启元信息服务有限公司 | 一种基于区块链的确定的非确定性选择方法、***及存储介质 |
CN111866162A (zh) * | 2020-07-28 | 2020-10-30 | 中国联合网络通信集团有限公司 | 一种业务分配方法及装置 |
CN112632186A (zh) * | 2020-12-23 | 2021-04-09 | 远光软件股份有限公司 | 区块链共识方法、计算机设备及区块链*** |
WO2021233048A1 (zh) * | 2020-05-21 | 2021-11-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据检测方法、装置及计算机可读存储介质 |
CN113949742A (zh) * | 2021-09-18 | 2022-01-18 | 深圳时空云科技有限公司 | 提高区块链的吞吐量的方法、装置 |
CN113965326A (zh) * | 2021-09-26 | 2022-01-21 | 北京岸思信息科技有限公司 | 一种抗并行攻击的轻量化区块链*** |
CN114140118A (zh) * | 2021-12-01 | 2022-03-04 | 浪潮云信息技术股份公司 | 一种分布式记账方法、装置及计算机可读介质 |
CN116361385A (zh) * | 2022-09-01 | 2023-06-30 | 矩阵时光数字科技有限公司 | 一种区块链的共识方法及*** |
CN117035785A (zh) * | 2023-08-09 | 2023-11-10 | 云海链控股股份有限公司 | 一种区块链共识方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-06-05 CN CN201910488474.8A patent/CN110232634A/zh active Pending
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110674217B (zh) * | 2019-09-23 | 2022-07-22 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、设备和介质 |
CN110674217A (zh) * | 2019-09-23 | 2020-01-10 | 百度在线网络技术(北京)有限公司 | 区块链数据处理方法、装置、设备和介质 |
CN111104460A (zh) * | 2019-12-02 | 2020-05-05 | 远光软件股份有限公司 | 一种区块链共识方法、***、电子设备、存储介质 |
CN111104460B (zh) * | 2019-12-02 | 2023-09-19 | 远光软件股份有限公司 | 一种区块链共识方法、***、电子设备、存储介质 |
CN111786772A (zh) * | 2019-12-10 | 2020-10-16 | 深圳启元信息服务有限公司 | 一种基于区块链的确定的非确定性选择方法、***及存储介质 |
CN111786772B (zh) * | 2019-12-10 | 2024-05-07 | 北京铭泰恒通信息技术有限公司 | 一种基于区块链的确定的非确定性选择方法、***及存储介质 |
CN111242718A (zh) * | 2019-12-18 | 2020-06-05 | 深圳大学 | 基于区块链的数据交易方法、装置、设备及介质 |
CN111242718B (zh) * | 2019-12-18 | 2024-01-19 | 深圳大学 | 基于区块链的数据交易方法、装置、设备及介质 |
CN111242630A (zh) * | 2019-12-19 | 2020-06-05 | 广州宏算信息科技有限公司 | 一种基于区块链的结算方法、装置及存储介质 |
CN111292098A (zh) * | 2020-01-15 | 2020-06-16 | 北京航空航天大学 | 一种面向可信服务供应链的区块链共识机制构建方法 |
CN111314436A (zh) * | 2020-01-20 | 2020-06-19 | 柏建华 | 一种分级区块链***及实现方法 |
CN111402079A (zh) * | 2020-03-24 | 2020-07-10 | 中国南方电网有限责任公司 | 电力区块的获取方法、装置、计算机设备和存储介质 |
WO2021233048A1 (zh) * | 2020-05-21 | 2021-11-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据检测方法、装置及计算机可读存储介质 |
CN111866162A (zh) * | 2020-07-28 | 2020-10-30 | 中国联合网络通信集团有限公司 | 一种业务分配方法及装置 |
CN112632186A (zh) * | 2020-12-23 | 2021-04-09 | 远光软件股份有限公司 | 区块链共识方法、计算机设备及区块链*** |
CN113949742A (zh) * | 2021-09-18 | 2022-01-18 | 深圳时空云科技有限公司 | 提高区块链的吞吐量的方法、装置 |
CN113949742B (zh) * | 2021-09-18 | 2023-11-10 | 深圳时空云科技有限公司 | 提高区块链的吞吐量的方法、装置 |
CN113965326A (zh) * | 2021-09-26 | 2022-01-21 | 北京岸思信息科技有限公司 | 一种抗并行攻击的轻量化区块链*** |
WO2023045962A1 (zh) * | 2021-09-26 | 2023-03-30 | 北京岸思信息科技有限公司 | 一种抗并行攻击的轻量化区块链*** |
CN114140118A (zh) * | 2021-12-01 | 2022-03-04 | 浪潮云信息技术股份公司 | 一种分布式记账方法、装置及计算机可读介质 |
CN116361385A (zh) * | 2022-09-01 | 2023-06-30 | 矩阵时光数字科技有限公司 | 一种区块链的共识方法及*** |
CN117035785A (zh) * | 2023-08-09 | 2023-11-10 | 云海链控股股份有限公司 | 一种区块链共识方法、装置、设备及计算机可读存储介质 |
CN117035785B (zh) * | 2023-08-09 | 2024-05-14 | 云海链控股股份有限公司 | 一种区块链共识方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110232634A (zh) | 区块链共识方法、区块链共识***和计算机可读存储介质 | |
CN109544334B (zh) | 一种网络可扩展性区块链实现方法 | |
Popov | The tangle | |
CN108985732A (zh) | 基于无区块的dag技术的共识和账本数据组织方法及*** | |
CN110868441B (zh) | 区块链公链的维护方法、装置、节点及区块链公链 | |
Maggi | The role of multilateral institutions in international trade cooperation | |
CN108647965B (zh) | 跨链交易方法、装置、存储介质及电子设备 | |
CN110009498A (zh) | 基于区块链的资源分配方法和装置 | |
CN110049029A (zh) | 共识节点确定方法、装置、计算机设备和存储介质 | |
CN108352009A (zh) | 区块链生成装置、区块链生成方法、区块链验证装置、区块链验证方法以及程序 | |
CN108292395A (zh) | 区块链生成装置、区块链生成方法、区块链验证装置、区块链验证方法以及程序 | |
CN105488675A (zh) | 一种区块链的分布式共享总账构建方法 | |
CN110046480A (zh) | 基于区块链的作品版权分配方法和装置 | |
CN110855432B (zh) | 基于可验证随机函数分配验证者奖励的异步bft&dpos共识机制 | |
CN109493062A (zh) | 一种基于信誉权益证明的区块链共识方法 | |
CN110351067A (zh) | 针对主从多链的区块链共识机制 | |
CN109639430A (zh) | 安全高速轻量级的区块链***及方法 | |
CN107977340A (zh) | 一种区块链交易网络节点的重要性排序方法 | |
CN109934662A (zh) | 基于区块链的共享资源租赁方法、装置和计算机设备 | |
Belotti et al. | Bitcoin pool-hopping detection | |
CN109981690A (zh) | 一种基于区块链智能合约的防篡改定时数据保密传输方法 | |
CN108596586A (zh) | 区块链运行方法及记账权节点 | |
CN109544157A (zh) | 交易处理方法、装置和*** | |
Zhang et al. | Code will speak: Early detection of Ponzi smart contracts on Ethereum | |
CN109345311A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190913 |
|
RJ01 | Rejection of invention patent application after publication |