CN113098677A - 基于区块链的挖矿方法、装置、计算机设备及存储介质 - Google Patents
基于区块链的挖矿方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113098677A CN113098677A CN202110368143.8A CN202110368143A CN113098677A CN 113098677 A CN113098677 A CN 113098677A CN 202110368143 A CN202110368143 A CN 202110368143A CN 113098677 A CN113098677 A CN 113098677A
- Authority
- CN
- China
- Prior art keywords
- block
- information
- interaction
- physical interaction
- generated
- 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 80
- 230000010399 physical interaction Effects 0.000 claims abstract description 95
- 238000009412 basement excavation Methods 0.000 claims abstract description 37
- 230000003993 interaction Effects 0.000 claims description 84
- 238000005065 mining Methods 0.000 claims description 47
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000012790 confirmation Methods 0.000 claims description 10
- 238000007789 sealing Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 3
- 238000007599 discharging Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 15
- 239000002609 medium Substances 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 230000002452 interceptive effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 229910052500 inorganic mineral Inorganic materials 0.000 description 2
- 239000011707 mineral Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000002427 irreversible effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000012120 mounting media Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009024 positive feedback mechanism Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例公开了一种基于区块链的挖矿方法、装置、计算机设备及存储介质。该方法包括:获取区块链发布的待生成区块的区块头信息;根据第一矿工的身份信息以及物理交互信息生成随机项;根据区块头信息和随机项计算哈希值;若哈希值满足出块条件,则生成待生成区块。本发明实施例所提供的技术方案,通过利用矿工之间的物理交互信息生成随机项代替传统方法中使用大量计算资源高速生成的随机项来进行区块链挖矿,基于真实世界物理交互的有限性和置信性来确保挖矿设备平等,降低了挖矿过程对计算资源的依赖,从而节约了计算资源和电力资源,而且挖矿方式便捷并降低了挖矿成本,从而可以提高用户参与挖矿的积极性。
Description
技术领域
本发明实施例涉及区块链技术领域,尤其涉及一种基于区块链的挖矿方法、装置、计算机设备及存储介质。
背景技术
区块链是一种基于P2P网络、共识机制、加密算法等技术的由许多网络节点共同参与和维护的分布式数据存储技术模式。其共识机制是指全部记账节点之间达成的共识,从而确定区块链内容的有效性,这是保证区块链稳定工作的重要机制。其中,最常用的共识机制为工作量证明机制(POW)、股权证明机制(POS)和委任权益证明(DPOS)等。其中,POW是最常用的,其核心设计思路是提出一个具有不对称特性的计算难题,即寻找出这个难题的答案是困难的,但将这个难题答案进行验证是非常容易的。适用于POW共识机制的挖矿算法大致分为两类,第一类叫做计算困难,第二类叫内存困难。虽然这两种方式算法简单,容易实现,但两者都不产生任何实际的社会价值,并且浪费了大量的计算资源和电力资源,区块的确认时间难以缩短。同时由于挖矿和计算资源密切相关,随着矿池的出现将计算资源集中,基于原有的POW共识机制方案设计的区块链系统也就容易受到比特币网络的算力攻击和分叉攻击。
发明内容
本发明实施例提供一种基于区块链的挖矿方法、装置、计算机设备及存储介质,以解决挖矿过程中造成的计算资源与电力资源浪费、计算难度大以及易于被攻击等问题。
第一方面,本发明实施例提供了一种基于区块链的挖矿方法,该方法包括:
获取区块链发布的待生成区块的区块头信息;
根据第一矿工的身份信息以及物理交互信息生成随机项;
根据所述区块头信息和所述随机项计算哈希值;
若所述哈希值满足出块条件,则生成所述待生成区块。
第二方面,本发明实施例还提供了一种基于区块链的挖矿装置,该装置包括:
信息获取模块,用于获取区块链发布的待生成区块的区块头信息;
随机项生成模块,用于根据第一矿工的身份信息以及物理交互信息生成随机项;
哈希值计算模块,用于根据所述区块头信息和所述随机项计算哈希值;
区块生成模块,用于若所述哈希值满足出块条件,则生成所述待生成区块。
第三方面,本发明实施例还提供了一种计算机设备,该计算机设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的基于区块链的挖矿方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的基于区块链的挖矿方法。
本发明实施例提供了一种基于区块链的挖矿方法,首先获取区块链发布的待生成区块的区块头信息,并根据矿工的身份信息以及与其他矿工之间的物理交互信息生成区块头中的随机项,然后根据该区块头信息和该随机项计算用于验证的哈希值,并当该哈希值满足出块条件时,生成所需的待生成区块。本发明实施例所提供的方法,通过利用矿工之间的物理交互信息生成随机项代替传统方法中使用大量计算资源高速生成的随机项来进行区块链挖矿,基于真实世界物理交互的有限性和置信性来确保挖矿设备平等,降低了挖矿过程对计算资源的依赖,从而节约了计算资源和电力资源,而且挖矿方式便捷并降低了挖矿成本,从而可以提高用户参与挖矿的积极性。同时,由于用户之间进行物理交互的次数有限,不容易出现超强算力节点,从而使得计算资源分散,可有效防范攻击。
附图说明
图1为本发明实施例一提供的基于区块链的挖矿方法的流程图;
图2为本发明实施例二提供的基于区块链的挖矿方法的流程图;
图3为本发明实施例三提供的基于区块链的挖矿装置的结构示意图;
图4为本发明实施例四提供的计算机设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的基于区块链的挖矿方法的流程图。本实施例可适用于使用普通移动设备通过物理交互的方式进行挖矿的情况,该方法可以由本发明实施例提供的基于区块链的挖矿装置来执行,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中,该计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。
如图1所示,具体包括如下步骤:
S11、获取区块链发布的待生成区块的区块头信息。
其中,区块头信息可以包括区块版本号、父区块哈希值、默克尔树根哈希值、时间戳、难度目标等等,根据该区块头信息可以确定出块条件。示例性的,基于比特币的出块算法,可以通过安全散列算法SHA-256对区块头进行哈希计算,则出块条件可以是计算产生的256位数值小于区块头信息中的难度目标。为了将出块时间控制在预设时间,可以定期调整挖矿难度,即重新确定所需的难度目标,示例性的,假设预设时间为K,并在每产生N个区块之后进行一次调整,则调整的周期约为K/1440N天,具体可以通过如下公式进行调整:
其中,target表示新难度目标,current_target表示原难度目标,actual_time表示真实平均出块时间,通过上述公式定期对难度目标进行上调或者下调,从而使得出块时间趋于稳定。同时,出块时间与用户规模相关,当用户规模大量增加后,总体发生物理信息交互量随之增加,得益于共识机制的保护,可以将出块时间下调,以使交易可以更快的被确认。
S12、根据第一矿工的身份信息以及物理交互信息生成随机项。
具体的,从第一矿工的角度为例进行说明,当第一矿工与其他矿工的距离在一定范围内时,第一矿工即可与其他矿工之间发生物理交互。其中,物理交互信息即为真实物理世界中两个用户发生的基于时间和/或空间的连接或检测。可选的,该物理交互的过程可以采取蓝牙、无线热点WIFI、红外以及近场通信NFC等方式,具体的,既可以是基于蓝牙扫描后产生的波形信息判断得到的物理交互,也可以是基于GPS和TCP网络的连接和扫描判断得到的物理交互。可选的,矿工之间可以通过TCP网络建立连接进行传输数据,而通过UDP网络互相广播进行节点发现。在获得第一矿工的物理交互信息之后,即可根据第一矿工的身份信息以及该物理交互信息生成随机项,该随机项可以与之前获取得到的区块头信息共同形成区块头。
由于物理交互信息存在实际有限性和多重置信性,能够分散计算资源,从而达到计算资源的公平性。其中,实际有限性体现在物理交互是基于时间、空间和人数三者结合的判定,一个出块时间段内的交互时间个数是有限的,交互空间是较小的,交互空间内所能容纳的人数是有限的,基于这三者的有限性和世界人口的有限性,每个人的交互次数不可能无限增长,并且全体用户交互次数等于每个用户节点发生交互的次数之和的一半,因此每个人的交互次数总是微小的。多重置信性指的是两个用户在发生物理交互时会产生很多相关的交互数据,这些数据可以被设备存储,以及被GPS、蓝牙和WIFI等各种信道检测,通过这些数据可以增强一个真实事件发生的真实性,特别的,可以通过对第一矿工历史的物理交互信息的概率分析来增强当前物理交互行为的置信度,示例性的,若用户A在某时刻与用户B发生交互,则一段时间内用户A再次与用户B发生交互的真实性便会增加,若用户A在某时刻与用户B发生交互,用户B在某时刻与用户C发生交互,则一段时间内用户A与用户C发生交互的真实性也会增加。进而可选的,可以利用区块链存储交互数据来保证数据的匿名性、真实性、可追溯性和不可篡改性,同时存储的交互数据又可以增加对应用户在后发生的物理交互的置信度,从而达到挖矿和交易相辅相成的状态。
可选的,在根据第一矿工的身份信息以及物理交互信息生成随机项之前,还包括:确定第一矿工与至少一个第二矿工发生密接交互,密接交互为在预设距离范围内持续预设时长的交互状态;物理交互信息包括至少一个第二矿工的身份信息、密接交互的时间以及物理交互数据中的至少一种。具体的,密接交互即可以是判定第一矿工与第二矿工在较小的距离范围(如3米内)发生持续一段时间(如5分钟)的交互状态维持,通过将判定真实世界的密接交互作为触发生成随机项进而计算哈希值的唯一条件,可以有效的避免伪造数据。物理交互信息可包括与第一矿工发生密接交互的第二矿工的身份信息、密接交互的时间以及第一矿工与第二矿工之间的物理交互数据等等,即可以通过第一矿工的身份信息、第二矿工的身份信息、密接交互的时间以及物理交互数据等来生成随机项,身份信息可用于标识参与随机项生成的矿工,以便于后续奖励的分配。
S13、根据区块头信息和随机项计算哈希值。
具体的,在获取到区块头信息和随机项之后,可以将区块头信息和随机项共同构成区块头,再通过安全散列算法SHA-256对区块头进行哈希值的计算。
S14、若哈希值满足出块条件,则生成待生成区块。
具体的,出块条件即可以是上述所确定的计算产生的256位数值小于区块头信息中的难度目标。在计算得到哈希值之后,即可判断该哈希值是否满足出块条件,若满足,则生成待生成区块,若不满足,则可以在重新判定发生密接交互之后进行下一次哈希值的计算并再次判断。其中,区块包括区块头和区块体,区块体主要包含交易信息,可选的,交易信息存储于默克尔树中,以便于节点对打包的交易数据进行验证。本方法可以采用P2P网络架构,基于网络中的新交易广播给网络内的全部节点,每个节点将新交易收集到一个区块中,在出块成功后再将出块信息广播,以便于其他节点通过共识机制对出块进行确认。
可选的,在若哈希值满足出块条件,则生成待生成区块之后,还包括:根据预设出块确认机制确认待生成区块完成出块;根据随机项对出块奖励进行结算。其中,预设出块确认机制可以是最长链原则,示例性的,当待生成区块后增加多个(如5个)区块后,可认为该待生成区块已经被全部节点确认;预设出块确认机制还可以是实用拜占庭(PBFT)共识机制,当超过(n-1)/3个节点确认该待生成区块则表明共识通过。在待生成区块的出块被确认之后,即可对该待生成区块的出块奖励进行结算,其中的出块奖励即为第一矿工发生物理交互后,成功生成随机项解决出块难题所得的奖励,该出块奖励可以为所有参与该次物理交互且参与随机项生成的用户共有,以增加出块奖励的不确定性,激发正常用户的积极性,具体可以根据生成随机项时所使用的矿工的身份信息来确定最终参与出块奖励分配的用户。可选的,还可以将出块奖励随机分配至参与物理交互的用户中不超过半数的人次,并在其中采取均分原则。
可选的,还可以设置打包奖励,即在出块成功对出块奖励进行分配的同时,可以根据用户所打包的交易总量获取一定的奖励,类似于以太坊系统的Gas机制,用户的交易可以通过提高支付的Gas值来获得更快被验证打包的概率,并将其中部分Gas作为打包奖励,其中更快被验证打包的概率是基于多数人更愿意优先打包可获得奖励更多的交易数据。
可选的,在根据随机项对出块奖励进行结算之后,还包括:在预设时间间隔内,限制第一矿工以及分配到出块奖励的第二矿工再次获得出块奖励或者再次进行挖矿。具体的,在一般情况下,用户需要等待出块被确认后即可进入下一轮的挖矿过程。但是为了进一步的减少采用非正常交互的挖矿行为(如矿机),则可以限制矿工在预设时间间隔内无法再进行挖矿或参与随机项生成过程的奖励分配,示例性的,可以限制同一用户每两次获取挖矿奖励的时间差需要大于一天。
可选的,在上述挖矿的过程中,可以通过智能合约自动计算生成的随机项是否可以解决出块问题,通过智能合约来确保算法的自执行性和不可逆转性,以避免伪造数据的技术进行区块链挖矿。具体的,可以在判定第一矿工发生密接交互时,触发智能合约的计算功能,从而确保获取的物理交互信息是唯一实现用户参与区块链挖矿的途径,即达到该智能合约的触发条件时,才可进行对应的挖矿操作,从而避免伪造密接数据导致的恶意挖矿。其中,智能合约是运行在区块链平台上的自校验、自执行且抗篡改的机器可读代码,其有自主的、分布式、可追踪和不可逆转的特点,由价值、地址、功能和状态四个部分组成,通过智能合约为后端的应用程序被称为去中心化应用(DAPP)。本方法即可基于一款移动终端安装的去中心化应用来实现,当用户安装该应用后,可以创建用户,并自动部署相应的智能合约,智能合约的创始者应设置为中央服务器管理的账户,并采用类似以太坊虚拟机(EVM)的指令运行智能合约。进一步可选的,可以在检测到物理交互信息时,由智能合约生成一段防伪序列码作为挖矿随机项的一部分参与验证,网络中的其他诚实节点亦可根据该随机项中是否包含特定序列码来评判物理交互数据是否为伪造。在执行智能合约时还可以通过多传感器交互数据和历史交互数据等信息构建模型和算法来确定物理交互的置信度,从而检测出可能存在的伪造数据。
本实施例所提供的方法可以通过节点状态机来实现,该节点状态机可以包括等待交互状态、交互进行状态、交互结算状态和奖励结算状态四个状态。以移动终端为例,首先创建普通用户,可以采用公私钥生成算法(如secp-256椭圆曲线)生成一组公私钥,公钥可以作为上述的矿工的身份信息参与随机项的生成,私钥与设备信息等个人信息绑定且不对外公开,用户可以通过账号密码登录用于交易的节点,可选的,交易节点可以与挖矿节点分离,并通过将挖矿节点的公私钥对的长度设置为交易节点的百倍级来提高挖矿节点的创建难度,从而限制用户通过创建多个挖矿节点来进行恶意挖矿。在用户注册并登录后,将进入等待交互状态,当使用该移动终端在真实世界中发生密接交互后,将通过蓝牙扫描等方式进行判定,若判定成功,则该移动终端与其他设备建立连接,此时便进入交互进行状态,并开启计时器。如果在计时器未达到密接交互的预设时长时失去交互信号,则返回等待交互状态,反之,如果达到预设时长,则进入交互结算状态,并计算区块头的哈希值。可选的,区块内打包的交易可以由用户从未确定交易池中指定选取,哈希计算后得到一个或多个结果,选取其中最小的结果来判断是否满足出块条件,如果满足,则可以完成出块预处理,由进行密接交互的矿工公开出块信息,并通过私钥进行数字签名,如果不满足,则计时器归零,进程回到交互进行状态以准备下一次交互。在完成签名之后,即可断开连接,进入奖励结算状态,等待奖励结算,在奖励结算状态下,当待生成区块的出块被确认后即可进入下一轮的等待交互状态。可选的,若被确认的区块中打包交易的时间戳的最小值与未确定交易池中遗存的时间戳最小值的时间差小于两个出块时间的长度,则该次出块将获得较低的收益。
分叉攻击是指在基于POW的区块链上,攻击者获得大多数挖矿计算资源,并根据需求使用这些计算资源来孤立包含挑战的区块,使分叉后形成的区块链成为最长合法链,从而达到交易回滚等目的。而本方法中计算资源分散,有效的防止了分叉攻击,本方法基于物理交互数据具有较强的置信性和有限性,即该数据由真实世界物理交互产生,物理交互次数与用户数量呈正相关,同时,我们可以选择通过密接交互获得物理交互信息,假设用户总数为N,每个用户当日密接交互的次数为M,则全部密接次数总和约为NM/2,若某组织想要发动51%攻击,则至少需要其密接次数大于全部其他用户的密接次数,当用户足够多时,根据物理交互信息的有限性,则被攻击的可能性很低。进一步的,如果正常用户试图通过增大移动速度等物理方式增大物理交互频率从而获得出块奖励,也可以通过增大时间间隔判定(在成功出块后暂时停止挖矿或单次物理交互需要满足一定时间要求等)等方式来限制单一用户的出块频率和出块奖励的上限。
本发明实施例所提供的技术方案,首先获取区块链发布的待生成区块的区块头信息,并根据矿工的身份信息以及与其他矿工之间的物理交互信息生成区块头中的随机项,然后根据该区块头信息和该随机项计算用于验证的哈希值,并当该哈希值满足出块条件时,生成所需的待生成区块。通过利用矿工之间的物理交互信息生成随机项代替传统方法中使用大量计算资源高速生成的随机项来进行区块链挖矿,基于真实世界物理交互的有限性和置信性来确保挖矿设备平等,降低了挖矿过程对计算资源的依赖,从而节约了计算资源和电力资源,而且挖矿方式便捷并降低了挖矿成本,从而可以提高用户参与挖矿的积极性。同时,由于用户之间进行物理交互的次数有限,不容易出现超强算力节点,从而使得计算资源分散,可有效防范攻击。
实施例二
图2为本发明实施例二提供的基于区块链的挖矿方法的流程图。本实施例的技术方案在上述技术方案的基础上进一步细化,可选的,可以通过设置志愿者用户,并将志愿者用户的物理交互次数作为标准来调整出块奖励的分配,从而进一步保证正常交互行为所获得的出块奖励更高,更符合当前的社会状态,保证了方法运行的稳定性。具体的,本实施例中,在获取区块链发布的待生成区块的区块头信息之前,还包括:创建志愿者用户,志愿者用户开启被获取实时物理交互次数的权限;从志愿者用户中随机选择至少一个样本作为基准志愿者用户;将基准志愿者用户的实时物理交互次数的中位数确定为基准交互次数;根据随机项对出块奖励进行结算,包括:根据随机项以及基准交互次数对出块奖励进行结算。相应的,如图2所示,具体可以包括如下步骤:
S21、创建志愿者用户,志愿者用户开启被获取实时物理交互次数的权限。
具体的,志愿者用户可以是普通用户向服务器申请分享奖励所获得的属性,是普通用户的同级用户,当接收到普通用户的申请后,可以为该普通用户创建相应的志愿者用户。在作为志愿者用户的期间,需要同意开启被记录及获取实时物理交互次数的权限,并受到对实时物理交互次数的真实性(是否被伪造)和可靠性(是否能代表群体实际密接交互频率)的验证。同时,志愿者用户可以随时取消其共享权限,主动更改为普通用户,则此时其实时物理交互次数将不再被公开。
可选的,在创建志愿者用户之后,还包括:获取志愿者用户的实时物理交互次数;将志愿者用户的实时物理交互次数分别与预设最大交互次数进行比较;若志愿者用户的实时物理交互次数超过预设最大交互次数,则将志愿者用户更改为普通用户,并忽略预设时间范围内的志愿者申请。具体的,如果某个志愿者用户的实时物理交互次数超过了预设最大交互次数,则超过了可接受的正常水平,判定为一次不合格分享,此时该志愿者提供的信息将不可靠,因此,可以将该志愿者用户更改为普通用户,同时忽略预设时间范围(如一个月)内的志愿者申请,以避免近期使用该志愿者用户作为标准。其中,预设最大交互次数可以取决于前一天同一时段全部被选中的志愿者日密接次数的3σ置信区间范围,特别的,当数据足够大时,全部志愿者用户的日密接次数将符合正态分布。
S22、从志愿者用户中随机选择至少一个样本作为基准志愿者用户。
具体的,在每一次出块开始时,可以从志愿者用户中随机选择一定样本作为基准志愿者用户。可选的,该样本可以采用基于Algorand技术的真实随机数的方式或DPOS的民主投票方式进行选取。通过每次出块之前的重新随机选取,可以避免某些用户长期作为基准志愿者用户被使用,使得每次所使用的标准更加真实可靠。
S23、将基准志愿者用户的实时物理交互次数的中位数确定为基准交互次数。
在确定了基准志愿者用户之后,可以将所有基准志愿者用户的实时物理交互次数中的中位数确定为基准交互次数,用于后续出块奖励的调整,所确定的基准交互次数可以记录在区块头信息中。
S24、获取区块链发布的待生成区块的区块头信息。
S25、根据第一矿工的身份信息以及物理交互信息生成随机项。
S26、根据区块头信息和随机项计算哈希值。
S27、若哈希值满足出块条件,则生成待生成区块。
S28、根据预设出块确认机制确认待生成区块完成出块。
S29、根据随机项以及基准交互次数对出块奖励进行结算。
具体的,在进行出块奖励结算时,出块奖励可以与参与物理交互的用户的交互次数相关,用户的平均交互次数越接近基准交互次数则可分配的出块奖励越高。同时可以将初始出块奖励设置为理想奖励值,每生成一定数量的区块时,可以将理想奖励值减半,并时刻控制实际出块奖励不高于理想奖励值。即每个用户可以获得的出块奖励为有差别的出块奖励,从而可以保证人群中大多数正常的交互行为所获得的出块奖励较高,而使较少参与交互(如关闭应用或少量交互接近于0)和较多参与交互(利用非正常手段进行挖矿)的节点获得较低的出块奖励。
可选的,在根据预设出块确认机制确认待生成区块完成出块之后,还包括:对基准志愿者用户的分享奖励进行结算。具体的,当一组志愿者用户被选中作为基准时,若成功完成出块,则该组志愿者用户可以获得一定的分享奖励。可选的,分享奖励可以随实际出块奖励进行线性变化,且作为中位数基准的一个或两个用户可以得到较大部分的奖励,而其余的基准志愿者可以得到较小部分的奖励。一般的,通过设立分享奖励数额,在隐私安全的前提下,用户将会更加自愿的去申请志愿者用户,通过这一正反馈机制,本方法中所获得的基准交互次数将更加符合当前社会状态,更加准确可靠,从而保证了方法运行的稳定性。
在上述挖矿的过程中,用户的物理交互次数可以通过智能合约进行统计,并可以采用链表进行存储,链表的每个节点仅包含发生物理交互的时间戳即可,每当发生物理交互并尝试生成一组随机项时,无论是否成功,智能合约均会将相应记录的交互次数加一。同时,还可以维护一个时间窗口,通过一个变量来维护链表的长度,当当前时间与链表中的第一个元素的时间差大于预设时间长度时,可以将链表中的第一个元素移除,从而实时获得过去的预设时间长度内每个节点发生的物理交互次数。
本发明实施例所提供的技术方案,通过设立志愿者用户,并在每次出块之前,从中随机选取基准志愿者用户,再将基准志愿者用户的实时物理交互次数的中位数确定为基准交互次数,进而根据该基准交互次数设置有差别的挖矿奖励机制,使得符合当前社会状态的物理交互次数可以对应更高的奖励,有效的防止了矿工之间通过频繁交互进行恶意挖矿。
实施例三
图3为本发明实施例三提供的基于区块链的挖矿装置的结构示意图,该装置可以由硬件和/或软件的方式来实现,一般可集成于计算机设备中,用于执行本发明任意实施例所提供的基于区块链的挖矿方法,该计算机设备可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备等。如图3所示,该装置包括:
信息获取模块31,用于获取区块链发布的待生成区块的区块头信息;
随机项生成模块32,用于根据第一矿工的身份信息以及物理交互信息生成随机项;
哈希值计算模块33,用于根据区块头信息和随机项计算哈希值;
区块生成模块34,用于若哈希值满足出块条件,则生成待生成区块。
本发明实施例所提供的技术方案,首先获取区块链发布的待生成区块的区块头信息,并根据矿工的身份信息以及与其他矿工之间的物理交互信息生成区块头中的随机项,然后根据该区块头信息和该随机项计算用于验证的哈希值,并当该哈希值满足出块条件时,生成所需的待生成区块。通过利用矿工之间的物理交互信息生成随机项代替传统方法中使用大量计算资源高速生成的随机项来进行区块链挖矿,基于真实世界物理交互的有限性和置信性来确保挖矿设备平等,降低了挖矿过程对计算资源的依赖,从而节约了计算资源和电力资源,而且挖矿方式便捷并降低了挖矿成本,从而可以提高用户参与挖矿的积极性。同时,由于用户之间进行物理交互的次数有限,不容易出现超强算力节点,从而使得计算资源分散,可有效防范攻击。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
密接交互确定模块,用于在根据第一矿工的身份信息以及物理交互信息生成随机项之前,确定第一矿工与至少一个第二矿工发生密接交互,密接交互为在预设距离范围内持续预设时长的交互状态;物理交互信息包括至少一个第二矿工的身份信息、密接交互的时间以及物理交互数据中的至少一种。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
出块确认模块,用于在若哈希值满足出块条件,则生成待生成区块之后,根据预设出块确认机制确认待生成区块完成出块;
出块奖励结算模块,用于根据随机项对出块奖励进行结算。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
志愿者用户创建模块,用于在获取区块链发布的待生成区块的区块头信息之前,创建志愿者用户,志愿者用户开启被获取实时物理交互次数的权限;
基准志愿者用户选择模块,用于从志愿者用户中随机选择至少一个样本作为基准志愿者用户;
基准交互次数确定模块,用于将基准志愿者用户的实时物理交互次数的中位数确定为基准交互次数;
出块奖励结算模块具体用于:
根据随机项以及基准交互次数对出块奖励进行结算。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
分享奖励结算模块,用于在根据预设出块确认机制确认待生成区块完成出块之后,对基准志愿者用户的分享奖励进行结算。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
交互次数获取模块,用于在创建志愿者用户之后,获取志愿者用户的实时物理交互次数;
交互次数比较模块,用于将志愿者用户的实时物理交互次数分别与预设最大交互次数进行比较;
志愿者用户罢免模块,用于若志愿者用户的实时物理交互次数超过预设最大交互次数,则将志愿者用户更改为普通用户,并忽略预设时间范围内的志愿者申请。
在上述技术方案的基础上,可选的,该基于区块链的挖矿装置,还包括:
限制挖矿模块,用于在根据随机项对出块奖励进行结算之后,在预设时间间隔内,限制第一矿工以及分配到出块奖励的第二矿工再次获得出块奖励或者再次进行挖矿。
本发明实施例所提供的基于区块链的挖矿装置可执行本发明任意实施例所提供的基于区块链的挖矿方法,具备执行方法相应的功能模块和有益效果。
值得注意的是,在上述基于区块链的挖矿装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
实施例四
图4为本发明实施例四提供的计算机设备的结构示意图,示出了适于用来实现本发明实施方式的示例性计算机设备的框图。图4显示的计算机设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。如图4所示,该计算机设备包括处理器41、存储器42、输入装置43及输出装置44;计算机设备中处理器41的数量可以是一个或多个,图4中以一个处理器41为例,计算机设备中的处理器41、存储器42、输入装置43及输出装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器42作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于区块链的挖矿方法对应的程序指令/模块(例如,基于区块链的挖矿装置中的信息获取模块31、随机项生成模块32、哈希值计算模块33及区块生成模块34)。处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述的基于区块链的挖矿方法。
存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于获取区块链发布的待生成区块的区块头信息以及产生与计算机设备的用户设置和功能控制有关的键信号输入等。输出装置44可用于将生成的区块进行广播等。
实施例五
本发明实施例五还提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机处理器执行时用于执行一种基于区块链的挖矿方法,该方法包括:
获取区块链发布的待生成区块的区块头信息;
根据第一矿工的身份信息以及物理交互信息生成随机项;
根据区块头信息和随机项计算哈希值;
若哈希值满足出块条件,则生成待生成区块。
存储介质可以是任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到计算机系统。第二计算机系统可以提供程序指令给计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于区块链的挖矿方法中的相关操作。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种基于区块链的挖矿方法,其特征在于,包括:
获取区块链发布的待生成区块的区块头信息;
根据第一矿工的身份信息以及物理交互信息生成随机项;
根据所述区块头信息和所述随机项计算哈希值;
若所述哈希值满足出块条件,则生成所述待生成区块。
2.根据权利要求1所述的基于区块链的挖矿方法,其特征在于,在所述根据第一矿工的身份信息以及物理交互信息生成随机项之前,还包括:
确定所述第一矿工与至少一个第二矿工发生密接交互,所述密接交互为在预设距离范围内持续预设时长的交互状态;所述物理交互信息包括所述至少一个第二矿工的身份信息、所述密接交互的时间以及物理交互数据中的至少一种。
3.根据权利要求2所述的基于区块链的挖矿方法,其特征在于,在所述若所述哈希值满足出块条件,则生成所述待生成区块之后,还包括:
根据预设出块确认机制确认所述待生成区块完成出块;
根据所述随机项对出块奖励进行结算。
4.根据权利要求3所述的基于区块链的挖矿方法,其特征在于,在所述获取区块链发布的待生成区块的区块头信息之前,还包括:
创建志愿者用户,所述志愿者用户开启被获取实时物理交互次数的权限;
从所述志愿者用户中随机选择至少一个样本作为基准志愿者用户;
将所述基准志愿者用户的实时物理交互次数的中位数确定为基准交互次数;
所述根据所述随机项对出块奖励进行结算,包括:
根据所述随机项以及所述基准交互次数对出块奖励进行结算。
5.根据权利要求4所述的基于区块链的挖矿方法,其特征在于,在所述根据预设出块确认机制确认所述待生成区块完成出块之后,还包括:
对所述基准志愿者用户的分享奖励进行结算。
6.根据权利要求4所述的基于区块链的挖矿方法,其特征在于,在所述创建志愿者用户之后,还包括:
获取所述志愿者用户的实时物理交互次数;
将所述志愿者用户的实时物理交互次数分别与预设最大交互次数进行比较;
若所述志愿者用户的实时物理交互次数超过所述预设最大交互次数,则将所述志愿者用户更改为普通用户,并忽略预设时间范围内的志愿者申请。
7.根据权利要求3所述的基于区块链的挖矿方法,其特征在于,在所述根据所述随机项对出块奖励进行结算之后,还包括:
在预设时间间隔内,限制所述第一矿工以及分配到出块奖励的所述第二矿工再次获得出块奖励或者再次进行挖矿。
8.一种基于区块链的挖矿装置,其特征在于,包括:
信息获取模块,用于获取区块链发布的待生成区块的区块头信息;
随机项生成模块,用于根据第一矿工的身份信息以及物理交互信息生成随机项;
哈希值计算模块,用于根据所述区块头信息和所述随机项计算哈希值;
区块生成模块,用于若所述哈希值满足出块条件,则生成所述待生成区块。
9.一种计算机设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的基于区块链的挖矿方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的基于区块链的挖矿方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110368143.8A CN113098677A (zh) | 2021-04-06 | 2021-04-06 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
PCT/CN2021/117928 WO2022213546A1 (zh) | 2021-04-06 | 2021-09-13 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110368143.8A CN113098677A (zh) | 2021-04-06 | 2021-04-06 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113098677A true CN113098677A (zh) | 2021-07-09 |
Family
ID=76674246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110368143.8A Pending CN113098677A (zh) | 2021-04-06 | 2021-04-06 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113098677A (zh) |
WO (1) | WO2022213546A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022213546A1 (zh) * | 2021-04-06 | 2022-10-13 | 南方科技大学 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
CN115189972A (zh) * | 2022-09-13 | 2022-10-14 | 四块科技(深圳)有限公司 | 保障节点安全挖矿的方法、装置及存储介质 |
WO2022247069A1 (zh) * | 2021-05-27 | 2022-12-01 | 南方科技大学 | 一种基于区块链的挖矿方法、装置、移动终端及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109087111A (zh) * | 2018-08-31 | 2018-12-25 | 深圳付贝科技有限公司 | 基于区块链的共识验证方法、挖矿机及区块链系统 |
GB2582978B (en) * | 2019-04-12 | 2022-05-04 | Nchain Holdings Ltd | Methods and devices for propagating blocks in a blockchain network |
CN111682946A (zh) * | 2020-05-29 | 2020-09-18 | 南方科技大学 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
CN113098677A (zh) * | 2021-04-06 | 2021-07-09 | 南方科技大学 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
-
2021
- 2021-04-06 CN CN202110368143.8A patent/CN113098677A/zh active Pending
- 2021-09-13 WO PCT/CN2021/117928 patent/WO2022213546A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022213546A1 (zh) * | 2021-04-06 | 2022-10-13 | 南方科技大学 | 基于区块链的挖矿方法、装置、计算机设备及存储介质 |
WO2022247069A1 (zh) * | 2021-05-27 | 2022-12-01 | 南方科技大学 | 一种基于区块链的挖矿方法、装置、移动终端及存储介质 |
CN115189972A (zh) * | 2022-09-13 | 2022-10-14 | 四块科技(深圳)有限公司 | 保障节点安全挖矿的方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022213546A1 (zh) | 2022-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Si et al. | IoT information sharing security mechanism based on blockchain technology | |
Zhang et al. | Double-spending with a sybil attack in the bitcoin decentralized network | |
Saad et al. | Exploring the attack surface of blockchain: A systematic overview | |
Li et al. | Proof of vote: A high-performance consensus protocol based on vote mechanism & consortium blockchain | |
CN113098677A (zh) | 基于区块链的挖矿方法、装置、计算机设备及存储介质 | |
US11487749B2 (en) | Method and system for verifying and maintaining integrity of data transactions using distributed ledger | |
Li et al. | Rational protocols and attacks in blockchain system | |
Eyal | The miner's dilemma | |
Alizadeh et al. | A survey of secure internet of things in relation to blockchain | |
Wen et al. | Attacks and countermeasures on blockchains: A survey from layering perspective | |
CN110032545A (zh) | 基于区块链的文件存储方法、系统及电子设备 | |
Jeon et al. | Block chain based data security enhanced IoT server platform | |
Dhumwad et al. | A peer to peer money transfer using SHA256 and Merkle tree | |
CN107360238A (zh) | 基于区块链cpow共识算法的智能合约网关 | |
WO2018153485A1 (en) | Method for mining a block in a decentralized blockchain consensus network | |
Paavolainen et al. | Security properties of light clients on the ethereum blockchain | |
Ye et al. | A trust-centric privacy-preserving blockchain for dynamic spectrum management in IoT networks | |
CN109951490A (zh) | 基于区块链的网页防篡改方法、系统及电子设备 | |
Pillai et al. | Burn-to-claim: An asset transfer protocol for blockchain interoperability | |
Sun et al. | RTChain: A reputation system with transaction and consensus incentives for e-commerce blockchain | |
Sayadi et al. | Blockchain challenges and security schemes: a survey | |
US11875188B2 (en) | Data processing system using directed acyclic graph and method of use thereof | |
Bashar et al. | Contextualizing consensus protocols in blockchain: A short survey | |
Yang et al. | Basing diversified services of complex IIoT applications on scalable block graph platform | |
Datta et al. | BSSFFS: blockchain-based sybil-secured smart forest fire surveillance |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20210709 |
|
WD01 | Invention patent application deemed withdrawn after publication |