CN111277409A - 一种区块链节点共识防作弊的方法 - Google Patents

一种区块链节点共识防作弊的方法 Download PDF

Info

Publication number
CN111277409A
CN111277409A CN202010054826.1A CN202010054826A CN111277409A CN 111277409 A CN111277409 A CN 111277409A CN 202010054826 A CN202010054826 A CN 202010054826A CN 111277409 A CN111277409 A CN 111277409A
Authority
CN
China
Prior art keywords
block
information
random number
transaction information
target
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.)
Withdrawn
Application number
CN202010054826.1A
Other languages
English (en)
Inventor
杨柳青
吴伟
宫文博
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Longji Technology Co Ltd
Original Assignee
Hangzhou Longji Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Longji Technology Co Ltd filed Critical Hangzhou Longji Technology Co Ltd
Priority to CN202010054826.1A priority Critical patent/CN111277409A/zh
Publication of CN111277409A publication Critical patent/CN111277409A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint

Abstract

本发明公开了一种区块链节点共识防作弊的方法,步骤1:出块节点提出出块建议,调用随机数模块生成随机数,将出块建议和随机数作为出块信息进行签名后发送到共识网络;步骤2:任一共识节点通过接收的签名后的出块信息生成投票,通过目标历史交易计算方法确定本地区块链中的目标交易信息,发送目标交易信息的数字摘要和投票到共识节点网络;步骤3:通过目标历史交易计算方法模块确定本地区块链中的验证交易信息,判断验证交易信息和目标交易信息间的数字摘要是否一致,若是,则投票消息有效,否则无效;在共识过程中,可以避免投票抄袭的情况,从而可以避免不存储账本或只存储最新部分账本的不诚实行为。

Description

一种区块链节点共识防作弊的方法
技术领域
本发明属于区块链领域,具体来说涉及一种区块链节点共识防作弊的方法。
背景技术
区块链技术的发展越来越受到关注,作为区块链的共识算法也由POW更多转向POS系列,POS,DPOS,PBFT及其变种,共识过程都有对区块提议投票的环节,激励机制会奖励投票者。
但是,一些不诚实的节点可能会为了快速投票获取奖励而采取一些作弊行为:
1.不保存全账本,投票时直接投赞成票,因为绝大多数的提议都是正确的,尤其是联盟链场景下;
2.不保存或者只保存最新账本,投票时跟随其他节点投一样投票。
发明内容
本发明的目的之一在于提供一种区块链节点共识防作弊的方法,以解决背景技术中现有的不诚实的节点为了快速投票获取奖励采取作弊行为的问题。
为实现上述目的,本发明提供技术方案如下:
一种区块链节点共识防作弊的方法,所述方法包括以下步骤:
步骤1:出块节点提出出块建议,调用随机数模块生成随机数,将出块建议和随机数作为出块信息进行签名后发送到共识网络;
步骤2:任一共识节点通过接收的签名后的出块信息生成投票,以共识节点的公钥和出块信息中的随机数为参数,通过目标交易信息计算方法确定本地区块链中的目标交易信息,发送目标交易信息的数字摘要和投票到共识节点网络;
步骤3:出块节点以随机数和发送投票的共识节点的公钥为参数,通过目标交易信息计算方法确定本地区块链中的验证交易信息,判断验证交易信息和目标交易信息间的数字摘要是否一致,若是,则投票消息有效,否则无效。
优选地,所述步骤1中,随机数模块为随机可验证函数。
优选地,所述步骤1中,出块节点提出的出块建议包括合法交易集合、出块节点地址。
优选地,所述步骤1中,对区块信息签名包括对出块信息进行哈希计算得到出块信息摘要,对出块信息摘要通过出块节点的私钥加密得到出块信息签名。
优选地,所述步骤2中,任一共识节点通过接收的签名后的出块信息生成投票,包括以下步骤:
步骤2.1.1:通过出块信息签名判断出块信息是否被篡改,若是,则执行步骤2.1.2,否则生成反对消息并执行步骤3.1.3;
步骤2.1.2:判断出块信息是否有效,若是,则生成赞成消息,否则生成反对消息;
步骤2.1.3:对赞成消息或者反对消息利用私钥加密得到投票。
优选地,所述步骤2中,通过目标交易信息计算方法确定本地区块链中的目标交易信息包括以下步骤:
步骤2.2.1:共识节点通过公钥对出块信息中的随机数进行运算生成结果随机数;
步骤2.2.2:通过结果随机数的前若干位数字确定目标历史区块的高度,得到目标历史区块;
步骤2.2.3:通过结果随机数后若干位数字确定目标历史区块中目标交易信息的位置索引,通过位置索引得到目标交易信息。
优选地,所述步骤3中,通过目标交易信息计算方法确定本地区块链中的验证交易信息包括以下步骤:
步骤3.1:出块节点调用发送投票信息的共识节点的公钥对出块信息中的随机数进行运算生成检验随机数;
步骤3.2:通过检验随机数的前若干位数字确定验证历史区块的高度,得到验证历史区块;
步骤3.3:通过检验随机数后若干位数字确定验证历史区块中验证交易信息的位置索引,通过位置索引得到验证交易信息。
优选地,当目标历史区块或者验证历史区块的高度大于对应的本地区块链的当前高度,则目标历史区块或者验证历史区块为对应的本地区块链的当前区块。
优选地,当目标交易信息或者验证交易信息的位置索引大于对应区块中的合法交易总数,则选择对应区块中的第一个目标交易信息或者验证交易信息。
优选地,所述步骤3中,若出块节点无法对投票消息进行解密,则投票消息为无效,否则有效。
与现有技术相比,本发明的有益效果为:
在共识过程中,生成随机数信息,将随机数和节点公钥映射为该节点应提供的历史区块的交易信息,节点投票过程需额外提供特定的历史交易信息,方为有效投票,由于每个节点公钥不同,其应提供的历史交易信息也不相同,可以避免投票抄袭的情况,由于无法提前预测,从而可以避免不存储账本或只存储最新部分账本的不诚实行为。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合附图,对本发明具体实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施方式,而不是全部实施方式。基于本发明中的具体实施方式,本领域普通技术人员在没有创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
一种区块链节点共识防作弊的方法,所述方法包括以下步骤:
步骤1:出块节点提出出块建议,调用随机数模块生成随机数,将出块建议和随机数作为出块信息进行签名后发送到共识网络;
步骤2:任一共识节点通过接收的签名后的出块信息生成投票,以共识节点的公钥和出块信息中的随机数为参数,通过目标交易信息计算方法确定本地区块链中的目标交易信息,发送目标交易信息的数字摘要和投票到共识节点网络;
步骤3:出块节点以随机数和发送投票的共识节点的公钥为参数,通过目标交易信息计算方法确定本地区块链中的验证交易信息,判断验证交易信息和目标交易信息间的数字摘要是否一致,若是,则投票消息有效,否则无效。
本发明中,区块链网络中包括若干共识节点,而出块节点为若干共识节点中的其中一共识节点,举例来说,若一个区块链网络中包括了500个共识节点,那么出块节点为这500个共识节点中的其中一个节点;对任一区块来说,可以分为1个出块节点和499个共识节点;对于不同的两区块,其出块节点不一定相同,举例来说,高度为50的区块,其出块节点为A,而高度为90的区块,其出块节点为B,当区块高度为180时,其出块节点仍可能为A,具体由哪一个共识节点作为出块节点,由具体的区块链共识机制决定,此为本领域普通技术人员的公知常识。
所述步骤1中,出块节点提出的出块建议包括合法交易集合、出块节点地址。
所述步骤1中,不同的区块链中的出块建议具体内容不同,一般包括合法交易集合和出块节点地址等,此为本领域普通技术人员的公知常识,本领域技术人员可根据实际情况自行设置。
作为本发明的其中一具体实施方式,所述步骤1中,随机数模块可以为普通随机数生成函数,如函数rand()、srand()等随机函数。
所述步骤1中,随机数模块为随机可验证函数。
调用随机可验证函数生成随机数的过程如下:将出块建议作为输入,通过SHA256算法计算得到摘要,所述摘要为256位的字符串,通过出块节点的私钥对该256位的字符串加密得到得到随机数,此为本领域普通技术人员的公知常识,本领域技术人员可根据实际情况自行设置。
所述步骤1中, 对区块信息签名包括对出块信息进行哈希计算得到出块信息摘要,对出块信息摘要通过出块节点的私钥加密得到出块信息签名。
所述步骤2中,任一共识节点通过接收的签名后的出块信息生成投票,包括以下步骤:
步骤2.1.1:通过出块信息签名判断出块信息是否被篡改,若是,则执行步骤2.1.2,否则生成反对消息并执行步骤3.1.3;
步骤2.1.2:判断出块信息是否有效,若是,则生成赞成消息,否则生成反对消息;
步骤2.1.3:对赞成消息或者反对消息利用私钥加密得到投票。
本发明中,不管出块信息是否被篡改,共识节点都要发送一个投票消息给出块节点,但是针对出块信息被篡改与否以及出块信息是否有效,其具体的投票消息是不同的,对于具体的赞成消息和反对消息,是预先设定的值,其可根据实际情况自行设置,只要可以表达赞成及反对的意思即可。
所述步骤2.1.1包括以下步骤:
步骤A:对出块信息进行哈希计算得到哈希值;
步骤B:对出块信息签名利用出块节点的公钥进行解密,得到解密结果;
步骤C:判断哈希值与解密结果是否一致,若是,则出块信息未被篡改,否则,出块信息被篡改。
本发明中,首先,任一共识节点收到签名后的出块信息后,利用出块节点的公钥对出块信息签名进行解密得到解密结果;然后,对出块信息中的出块建议和随机数作为哈希函数的参数输入,输出一个哈希值;最后,判断解密结果和哈希值是否一致,若是,则说明出块信息为该出块节点发送的,且该出块建议和随机值正确、没有被篡改,验证通过,否则说明出块建议和随机值出现错误。
所述步骤2.1.2中,判断出块信息是否合法为本领域的公知常识,举例来说,若交易集合中有交易消息:A转账给B共计10块,那么需要判断A的账户金额是否大于10元,若是,则说明该交易信息有效,否则该交易信息无效。
所述步骤2中,通过目标交易信息计算方法确定本地区块链中的目标交易信息包括以下步骤:
步骤2.2.1:共识节点通过公钥对出块信息中的随机数进行运算生成结果随机数;
步骤2.2.2:通过结果随机数的前若干位数字确定目标历史区块的高度,得到目标历史区块;
步骤2.2.3:通过结果随机数后若干位数字确定目标历史区块中目标交易信息的位置索引,通过位置索引得到目标交易信息。
所述步骤3中,通过目标交易信息计算方法确定本地区块链中的验证交易信息包括以下步骤:
步骤3.1:出块节点调用发送投票信息的共识节点的公钥对出块信息中的随机数进行运算生成检验随机数;
步骤3.2:通过检验随机数的前若干位数字确定验证历史区块的高度,得到验证历史区块;
步骤3.3:通过检验随机数后若干位数字确定验证历史区块中验证交易信息的位置索引,通过位置索引得到验证交易信息。
作为本发明的其中一具体实施方式,共识节点M通过自己的公钥对出块信息中的随机数进行异或运算后,得到结果随机数,所述结果随机数由若干比特位组成;共识节点M将前6个比特位的数字转换成十进制得到的具体数值即为目标历史区块高度,根据目标历史区块高度从共识节点M的本地区块链中找到目标历史区块;共识节点M将最后的6个比特位的数字转换成十进制得到的具体数值即为目标交易信息信息在目标历史区块中的合法交易集合中的具体位置,如后6个比特位转换得到的数值为25,则目标历史区块中的合法交易结合中第25条交易信息即为目标交易信息信息。当出块节点利用共识节点M的公钥对随机数进行异或运算后,得到验证随机数,若通过前6个比特位和后6个比特位分别转换十进制后得到的验证交易信息的摘要与目标交易信息信息的摘要不同,则认为投票无效。
作为本发明的另一具体实施方式,可将异或运算改为VRF运算得到结果随机数;此为本领域公知常识。
当目标历史区块或者验证历史区块的高度大于对应的本地区块链的当前高度,则目标历史区块或者验证历史区块为对应的本地区块链的当前区块。举例来说,如果目标历史区块或者校验历史区块的高度为1200,而区块链中的区块高度并没有达到1200,那么就选择区块链中当前区块的高度,也即当前区块链中最后一个区块。
当目标交易信息或者验证交易信息的位置索引大于对应区块中的合法交易总数,则选择对应区块中的第一个目标交易信息或者验证交易信息。举例来说,如果目标历史区块或者校验历史区块中的目标交易信息或者验证交易信息的位置索引为25,而该区块中记载的合法交易集合的数量为20,那么就选择该区块中第一个合法交易信息作为目标交易信息或者验证交易信息。
作为本发明的其中一具体实施方式,所述目标交易信息的数字摘要为将目标交易信息进行哈希计算得到的结果;所述验证交易信息的数字摘要也是进行哈希计算的结果。
所述步骤3中,若出块节点无法对投票消息进行解密,则投票消息为无效,否则有效。

Claims (10)

1.一种区块链节点共识防作弊的方法,特征在于,所述方法包括以下步骤:
步骤1:出块节点提出出块建议,调用随机数模块生成随机数,将出块建议和随机数作为出块信息进行签名后发送到共识网络;
步骤2:任一共识节点通过接收的签名后的出块信息生成投票,以共识节点的公钥和出块信息中的随机数为参数,通过目标历史交易计算方法确定本地区块链中的目标交易信息,发送目标交易信息的数字摘要和投票到共识节点网络;
步骤3:出块节点以随机数和发送投票的共识节点的公钥为参数,通过目标历史交易计算方法确定本地区块链中的验证交易信息,判断验证交易信息和目标交易信息间的数字摘要是否一致,若是,则投票消息有效,否则无效。
2.如权利要求1所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤1中,随机数模块为随机可验证函数。
3.如权利要求1所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤1中,出块节点提出的出块建议包括合法交易集合、出块节点地址。
4.如权利要求1所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤1中,对区块信息签名包括对出块信息进行哈希计算得到出块信息摘要,对出块信息摘要通过出块节点的私钥加密得到出块信息签名。
5.如权利要求,4所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤2中,任一共识节点通过接收的签名后的出块信息生成投票,包括以下步骤:
步骤2.1.1:通过出块信息签名判断出块信息是否被篡改,若是,则执行步骤2.1.2,否则生成反对消息并执行步骤3.1.3;
步骤2.1.2:判断出块信息是否有效,若是,则生成赞成消息,否则生成反对消息;
步骤2.1.3:对赞成消息或者反对消息利用私钥加密得到投票。
6.如权利要求1所述的一种区块链节点共识防作弊的方法,其征在于,所述步骤2中,通过目标历史交易计算方法确定本地区块链中的目标交易信息包括以下步骤:
步骤2.2.1:共识节点通过公钥对出块信息中的随机数进行运算生成结果随机数;
步骤2.2.2:通过结果随机数的前若干位数字确定目标历史区块的高度,得到目标历史区块;
步骤2.2.3:通过结果随机数后若干位数字确定目标历史区块中目标交易信息的位置索引,通过位置索引得到目标交易信息。
7.如权利要求6所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤3中,通过目标历史交易计算方法确定本地区块链中的验证交易信息包括以下步骤:
步骤3.1:出块节点调用发送投票信息的共识节点的公钥对出块信息中的随机数进行运算生成检验随机数;
步骤3.2:通过检验随机数的前若干位数字确定验证历史区块的高度,得到验证历史区块;
步骤3.3:通过检验随机数后若干位数字确定验证历史区块中验证交易信息的位置索引,通过位置索引得到验证交易信息。
8.如权利要求7所述的一种区块链节点共识放作弊的方法,其特征在于,当目标历史区块或者验证历史区块的高度大于对应的本地区块链的当前高度,则目标历史区块或者验证历史区块为对应的本地区块链的当前区块。
9.如权利要求8所述的一种区块链节点共识防作弊的方法,其特征在于,当目标交易信息或者验证交易信息的位置索引大于对应区块中的合法交易总数,则选择对应区块中的第一个目标交易信息或者验证交易信息。
10.如权利要求1所述的一种区块链节点共识防作弊的方法,其特征在于,所述步骤3中,若出块节点无法对投票消息进行解密,则投票消息为无效,否则有效。
CN202010054826.1A 2020-01-17 2020-01-17 一种区块链节点共识防作弊的方法 Withdrawn CN111277409A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010054826.1A CN111277409A (zh) 2020-01-17 2020-01-17 一种区块链节点共识防作弊的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010054826.1A CN111277409A (zh) 2020-01-17 2020-01-17 一种区块链节点共识防作弊的方法

Publications (1)

Publication Number Publication Date
CN111277409A true CN111277409A (zh) 2020-06-12

Family

ID=71001704

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010054826.1A Withdrawn CN111277409A (zh) 2020-01-17 2020-01-17 一种区块链节点共识防作弊的方法

Country Status (1)

Country Link
CN (1) CN111277409A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885050A (zh) * 2020-07-21 2020-11-03 腾讯科技(深圳)有限公司 基于区块链网络的数据存储方法、装置、相关设备及介质
CN112307447A (zh) * 2020-11-03 2021-02-02 平安科技(深圳)有限公司 一种锚节点作假检测方法、装置、介质及设备
CN112804333A (zh) * 2021-01-15 2021-05-14 北京百度网讯科技有限公司 出块节点的异常处理方法、装置、设备和存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111885050A (zh) * 2020-07-21 2020-11-03 腾讯科技(深圳)有限公司 基于区块链网络的数据存储方法、装置、相关设备及介质
CN112307447A (zh) * 2020-11-03 2021-02-02 平安科技(深圳)有限公司 一种锚节点作假检测方法、装置、介质及设备
WO2022095428A1 (zh) * 2020-11-03 2022-05-12 平安科技(深圳)有限公司 一种锚节点作假检测方法、装置、介质及设备
CN112804333A (zh) * 2021-01-15 2021-05-14 北京百度网讯科技有限公司 出块节点的异常处理方法、装置、设备和存储介质
CN112804333B (zh) * 2021-01-15 2022-10-11 北京百度网讯科技有限公司 出块节点的异常处理方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
CN111277409A (zh) 一种区块链节点共识防作弊的方法
CN112789824B (zh) 区块链系统及信息传输方法、系统、装置、计算机介质
CN109523683B (zh) 一种基于区块链技术的不记名电子投票方法
Noizat Blockchain electronic vote
KR102128210B1 (ko) 정보 보호를 위한 시스템 및 방법
CN108074081A (zh) 一种虚拟资源的转移方法和装置
EP3746966A1 (en) System and method for secure transaction verification in a distributed ledger system
CN112199736B (zh) 一种基于区块链的有序多重签名方法
CN111464518A (zh) 一种跨链通信数据的发送、验证方法及装置
CN110912705B (zh) 一种基于区块链的分布式电子投票方法及系统
CN109861829B (zh) 支持动态更新的云数据公正审计系统及其审计方法
CN109542883A (zh) 一种基于区块链的信息查重方法
CN109981690B (zh) 一种基于区块链智能合约的防篡改定时数据保密传输方法
CN108667717A (zh) 基于即时通信消息记录的区块链处理方法、介质、装置和计算设备
CN113411188B (zh) 电子合同签署方法、装置、存储介质及计算机设备
CN111815321A (zh) 交易提案的处理方法、装置、系统、存储介质和电子装置
CN112769548A (zh) 一种区块链数值信息传输方法、系统、装置及计算机介质
CN111865595B (zh) 一种区块链的共识方法及装置
CN111612457A (zh) 基于区块链的电子投票方法、装置及存储介质
CN110602190B (zh) 区块链共识的方法及区块链节点和存储装置
Schaffner Scaling public blockchains
CN113055178B (zh) 区块链系统及数值信息传输方法、系统、装置、介质
Wang et al. Consensus algorithm based on verifiable randomness
CN110457956B (zh) 面向数据监管的区块链网络的共识监管方法及其监管系统
CN114629663A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20200612