APP下载

区块链与挖矿技术研究

2023-06-20邢志鹏黄晶晶

关键词:挖矿矿工合约

邢志鹏,李 昕,黄晶晶

区块链与挖矿技术研究

邢志鹏1,李 昕1,黄晶晶2

(1.辽宁工业大学 电子与信息工程学院,辽宁 锦州 121001;2.辽宁工业大学 实业总公司,辽宁 锦州 121001)

总结了当前区块链技术的研究方向与研究成果,之后从区块链出发,给出了当前区块链系统的结构、使用的常见共识算法、区块链的未来发展前景,并介绍了区块链、虚拟币、挖矿之间的关系,阐述了虚拟币市场的现状和未来发展趋势,通用的挖矿协议以及当前挖矿泛滥所产生的危害。

区块链;挖矿;虚拟币;共识算法;挖矿木马

区块链技术是一种去中心化的、数据难以被篡改的技术,与这项技术一起诞生的虚拟币市场的主要货币之一—比特币,如今的市值已经达到了惊人的上万亿美元,每日的交易量更是接近300亿美元,1枚比特币的价格从10年前不到10美元,到如今已经价值为5~6万美元。

一方面,由于虚拟币在短时间内呈现出的暴利,导致近些年来掀起了多次“挖矿”的热潮,使用不法手段的个体黑客、APT组织尤其热衷于此,因而也导致各种挖矿木马的诞生,与通过“正当”途径挖矿的人群混杂在一起,共同组成了庞大的挖矿集体。另一方面,区块链技术又在其他多个领域相继发挥了多方面的正面作用。

1 研究现状

当前对于区块链的研究正处于发展阶段,区块链的共识机制已经基本完善,目前国内外主要集中在区块链的扩容、智能合约的设计、区块链的安全问题、区块链与其他领域的结合这几点。文献[1-5]中对于区块链共识机制与架构做出了完整的总结,对当前区块链区块的结构、区块链的架构以及区块链的共识机制做出梳理;文献[6-9]中,对当前区块链的扩容做出了研究,将社区发现等算法融入到区块链中;文献[10-12]对区块链安全隐私问题做出了总结,并提出了针对区块链的安全监测模型;文献[13-14]中探讨了区块链的可修改性,并在当前区块链结构与机制下加入了单陷门函数,成功实现了对区块链内容的修改,但并未在较大的规模与吞吐量中做出验证,仍有较大的改进空间;文献[15]探讨了当前区块链的焦点问题——智能合约的设计,并提出了自己的设计方案;文献[16-17]主要集中在语义区块链方面;文献[18-22]中,对区块链与其他领域,如工业互联网、慈善捐赠、医疗等结合,设计出一套相关领域的系统,但仍然缺乏实际的完整应用过程验证,且并未提出对于挖掘区块成本问题的解决方案;文献[23]中对于当前恶意挖矿中的网页挖矿行为进行了研究,并设计了恶意挖矿的检测模型,将机器学习融入到区块链安全当中。

2 区块链

区块链使用一种经过特定的加密方式(主要是SHA256)的链式结构来验证和存储信息,并在分布式网络中通过共识机制来生成和更新其中的数据。本质上是一个去中心化的共享数据库,在区块链组成网络中,每个节点都参与区块的产生,每一个区块的产生都需要经过严格的验证,每个区块的内容都难以篡改,因此,区块链所存储的信息是可信的,这也为未来社会发展中会出现的信任危机提供了一个良好的解决方案。

2.1 区块链结构

当前所有的区块链系统一般都可以划分为以下几个部分:数据层、网络层、共识层、合约层以及应用层,如图1所示。

(1)数据层:主要包含数据区块结构,所使用的加密技术、时间戳等。

(2)网络层:这一层规定了区块链的分布式组网的具体机制,数据传输通信的机制和验证机制。

(3)共识层:区块链系统的核心层,封装有区块链网络节点的共识算法。

(4)激励层:主要包含发行货币机制和区块链的奖励机制、分配机制等。

(5)合约层:主要有各类脚本和智能合约,为区块链的可编程性质提供了技术支撑。

(6)应用层:这一层是区块链在各类场景中的应用。

2.2 区块链共识协议

区块链共识协议制定了一个区块链系统的区块生成与更新的规则,每一个在区块链网络中的节点都必须遵守这个规则,严格保证区块的产生是合法的,内容是经过验证的,是能够被每个节点所接受的,目前在虚拟币领域常用的共识机制是工作量证明机制(POW),也有部分虚拟币系统使用权益证明(POS),其余共识机制虽然也存在虚拟币系统使用,但并不是当前区块链系统的主流共识机制。

(1)工作量证明

工作量证明机制,也即POW机制,这是在目前的区块链算法中最为常见、应用最广泛的共识机制。工作量证明中最常用的技术是SHA函数。也即输入任意一个值,会产生一个对应的哈希函数结果(),当变动一个bit,其结果()都将产生巨大变化,几乎无法从()回推。在POW中,每一个参与区块链网络的“矿工”,都会收到系统指定的一个计算难度,所有“矿工”的任务就是计算出一个以0为开头的符合条件的哈希值,同时为了保证每个“矿工”都能够有产生区块的可能性,系统会动态的调整这个难度值,以保证区块的产生速度,以及相关矿工的算力的巨大差异而导致的收益极度不均衡问题。

为了保证区块链数据的安全性,这种算法也产生了很多问题,一方面,对算力的巨大需求会浪费电力和硬件资源;另一方面,这种共识算法的平均区块输出时间长达10 min,系统的吞吐量极低,因此无法应用于低延迟和高效率的领域。

(2)权益证明

权益证机制,即POS(Proof-of-stake)机制,这是在区块链发展过程中,由于POW造成的算力和电力资源浪费问题而提出,在POW的基础上引入“币龄”的机制,每一个想要参与使用POS机制的区块链网络的“矿工”,都必须交付一定量级的押金,才能够有资格参与这个区块链网络的区块产生与验证。

同时,验证区块的工作由原来的每一个参与者调整为随机节点,被选择的节点会暂时获得产生区块的权利,其余的节点则会验证产生区块内容的合法性,一旦某些参与者不能够再承担产生区块的权利,那么就会被调整为验证人员,在原有的验证人员中再随机选出一个新的人员晋升为区块的产生人员。

以太坊(一个开源的且有智能合约的公有区块链平台)在2022年的10月份开始,会逐步调整共识机制,由原来的POW调整至POS,以解决未来以太坊在发展过程中的区块产生速率问题、电力和算力浪费问题、智能合约的发展问题。

(3)实用拜占庭容错

实用拜占庭容错算法,简称PBFT(practical byzantine fault tolerance)算法。PBFT算法的提出要远早于区块链的产生,主要是为了解决在分布式的系统中的一致性问题,提高整个系统的容错性。在该算法中,有3个节点,最多允许其中的个节点不诚实。同时,对每一个节点,输入一个相同的信息,都会得到同样的结果。

PBFT算法主要有3个阶段:前期准备、准备、提交确认。第一阶段,客户端发送请求给主节点。第二阶段,主节点广播客户端发送的请求给其他节点,每一个收到信息的节点都会给予相同的回应。第三阶段,客户端收到+1个节点的相同的消息后,通过验证。

在使用PBFT算法的系统中,优点很明显,少量节点可以快速达成共识,不需要耗费大量的算力和电力资源。但是缺点也很明显,频繁的网络通信使得整个网络的规模受到限制,没加入一个节点,整个网络的节点通信产生的开销也会呈指数级增长,相对的一次验证的响应时间也会变长,所以这种共识机制并不适合规模较大的公有区块链网络,只适合小规模的区块链网络。

2.3 智能合约

智能合约是典型的数字协议,使用算法和程序来编译合同条款,并部署在区块链上,能够根据某些规则和模式自动执行。区块链实现了去中心化的存储,智能合约依靠它实现了去中心化的计算。

起草和经过验证的智能合约由多方签署,然后通过P2P网络部署在区块链上,P2P网络实时监控区块链的状态,当检测到智能合约中预先封装的一些状态和触发规则时,便激活合约。智能合约的工作原理如图2所示。当达到智能合约的触发条件,智能合约便会做出响应,一般来讲,合约的执行结果往往会导致区块链中的某些账户和区块的状态发生改变,比如,账户资金的增长和减少,区块上新增某笔交易。

目前智能合约的发展并不完善,还存在很多问题和漏洞,主要体现在以下几个方面:函数重入、整数溢出、时间戳依赖和调用栈深度溢出。因此,有必要对代码进行测试和审计。

图2 智能合约运行原理

在以太坊白皮书中,智能合约应用分为3类:金融场景、半金融场景和非金融场景,如图3所示,其中列出了几个主要应用场景。包含场景非常广泛,涵盖医疗、能源、教育、物联网等多个领域。

3 挖矿

在计算哈希难题的过程中,所有节点都在比拼自己掌握的算力,只有第一个解决难题的节点才能打包一个新的区块并将其添加到区块链上,并获得系统给与的一定量的奖励(包括区块的产生奖励和后续其他节点使用这个区块转账的“手续费”)。但是某些矿工本身的算力是有限的,单凭自己并没有办法和一些手握大算力的矿工竞争,矿池便应运而生,矿池的主要作用便是将多个矿工的算力集合到一起,作为一个大的整体去参与挖矿,一旦获得挖矿的奖励,便根据每一个矿工的算力和电力贡献来分配拿到的奖励。因此,很多个体挖矿用户往往会选择矿池加入,来稳定获取收益,当然矿池服务也不会是免费的,第三方矿池服务商会在分配的奖励中抽成作为服务费用。

3.1 挖矿协议

矿机和矿池之间常见的通信协议包括stratum tcp、getwork。矿机向矿池发起任务订阅、身份认证、提交结果等请求,矿池向矿机下发难度调整、反馈提交结果、反馈任务分配结果等。每个矿池都会有自定义部分,但总体上还是采用了这2种协议。

Stratum的工作流程大致如图4所示,可以简单描述为5步。

图4 stratum tcp工作流程

(1)任务订阅。矿工首先用mining.subscribe方法连接到指定矿池,用于在矿池登记并订阅挖矿任务。矿池用mining.notify返回订阅号、难度值、难度值补充字段。

(2)矿工登录。矿工使用mining.authorize方法,通过账户和密码作为验证,登录矿池(密码可以为空)。

(3)任务分配。由矿池使用mining.notify方法发送给矿工有关本次任务的相关信息。当矿工订阅并登录后,矿池不断使用mining.notify方法返回任务状态。在mining.notify方法中包含任务状态的标志位:如果为true,矿工放弃正在执行的任务,立即开始在新的区块上开启新的任务;如果为false,则等待当前任务完成后再开始新任务。

(4)提交结果。当矿工找到满足难度的哈希计算结果时,使用mining.submit方法将计算结果提交给矿池。如果矿池返回true,说明结果符合预期,提交成功,如果失败,则会有具体的错误原因返回。

(5)难度调整。矿池用mining.set_difficulty方法,将难度调整的指令下发到本矿池中的所有矿工,告知当前应该使用的难度值(nonce字段),矿工使用新的难度作为计算的依据之一,开始新一轮的计算。

GetWork是早期挖矿协议,那时ASIC矿机尚未大规模部署,当ASIC时代来临后由于其效率低下早已淘汰。但是,目前矿机内部的通信方式与GetWork依然类似。

(1)发起RPC请求

{"method":"getwork","params":[],"id":1}

(2)RPC响应

{"id":"1","result":{"hash1":"","midstate":"","target":""}, "error": null}

其中,target为目标难度,hash1为固定值,可以忽略掉。data段大小为128字节,块头大小为80字节,因为采用了SHA256算法,该算法会将输入数据分割为512 bits来处理,若输入长度不是512的整数倍,则会补零,512 bits是64字节,那么块头为80字节,需要补齐为1 024 bits(512的倍数)。SHA256补零规则:首先填1 bit的1,再填入个零,最后8字节为数据总长度。

3.2 挖矿的危害

一方面,“挖矿”活动耗费大量电力,能耗和碳排放强度高,对我国碳中和、碳峰值目标的实现产生较大影响,加大了部分地区能源保障的供应压力,加剧了相关电子信息产品的供需矛盾;另一方面,虚拟币投机交易扰乱了中国正常的金融秩序,催生了违法犯罪活动,大量的挖矿木马、蠕虫在网络上传播,造成的影响异常恶劣。

虚拟币的价格是极不稳定的,以比特币为例,比特币的供应每4年就会减半,每4年供求关系的平衡就会被打破,供应变得紧缺,而需求仍然持续增加,因而比特币的价格会迎来一次次的暴涨。过去的2次减半,都导致了比特币暴涨。每4年就相当于1个周期,如果5个周期以后,也即20年以后,比特币就可以涨到1.6亿元人民币。如果是线性增长,从4年前,也即2018年开始算起,比特币的价格约为4万元人民币,假设每个周期仅仅需要涨到5.25倍。4年后,比特币价格会达到21万元;8年后,比特币价格110万元;12年后比特币价格579万元;16年后,比特币价格3 039万元;20年后,比特币价格1.6亿元。实际上在2022年初期时,比特币的价格是远超过这个计算的,一度达到了45 000美元(约合人民币250 000元),但在2021年年底时,便已经达到了63 000美元(约合人民币420 000元)。

虚拟币价格虽然极其不稳定,但是长期来看已经是属于体量逐年暴涨的行业,大量黑客也在2017年前后开始投放挖矿木马、蠕虫,利用各种漏洞将挖矿软件植入受害者终端。经过多年的更新换代,当前网络上常见的挖矿木马如下。

(1)DTSleater(永恒之蓝下载器):利用“驱动人生”软件的更新链接和永恒之蓝漏洞进行大范围传播,后续又产生了多个变种,新增了窃密、内网扫描、僵尸网络等各种恶意功能。

(2)WannaMine病毒:主要针对政府、企业、学校、医院等单位,扫描445端口的“永恒之蓝”漏洞,进入主机后会在内网做横向传播。

(3)Sysrv-hello病毒:该病毒与以上2个病毒只针对Windows平台不同,也涵盖Linux平台,自带漏洞利用与扫描功能,针对政府、企业、学校等单位,一旦进入受害者主机,便会建立守护进程,不间断地使用挖矿程序。

(4)H2Miner病毒:起初是针对Linux平台的挖矿病毒,后续又涵盖了Windows平台,主要手段是通过僵尸网络与远程代码执行进入目标主机。

4 结束语

对现有的主流虚拟币的核心技术—区块链技术的运行原理进行了总结,并说明了当前虚拟币的过度发展对于国家和社会稳定的危害,对未来区块链技术的发展做出了说明,区块链技术是一项具有革新意义的技术,在未来一定会被更广泛地应用到各领域之中,但是对区块链技术的错误使用,会严重危害经济发展与社会稳定。

[1]Satoshi Nakamoto. Bitcoin: A Peer-to-Peer Electronic Cash SystemBitcoin: A Peer-to-Peer Electronic Cash System [EB/OL]. [2008-10-31]. https://bitcoin.org/bitcoin.pdf.

[2] 夏清, 窦文生, 郭凯文, 等. 区块链共识协议综述[J]. 软件学报, 2021, 32(2): 277-299.

[3] 邵奇峰, 金澈清, 张召, 等. 区块链技术: 架构及进展[J]. 计算机学报, 2018, 41(5): 969-988.

[4] 张亮, 刘百祥, 张如意, 等. 区块链技术综述[J]. 计算机工程, 2019, 45(5): 1-12.

[5] 曹傧, 林亮, 李云, 等. 区块链研究综述[J]. 重庆邮电大学学报: 自然科学版, 2020, 32(1): 1-14.

[6] Zhang Can, Xu Chang, Kashif Sharif, et al. Privacy-preserving contact tracing in 5G-integrated and blockchain-based medical applications[J]. Computer Standards & Interfaces, 2021, 77.

[7] 姜承扬, 庞俊, 贾大宇, 等. 结合社区发现和局部恢复码的区块链扩容研究[J]. 计算机工程与应用, 2023, 59(5): 297-304

[8] 王慧, 王励成, 柏雪, 等. 区块链隐私保护和扩容关键技术研究[J]. 西安电子科技大学学报, 2020, 47(5): 28-39.

[9] 刘晶, 朱炳旭, 梁佳杭, 等. 基于主侧链合作的区块链访问控制模型策略[J/OL]. 计算机工程: 1-9. [2021-12-06].

[10] 叶聪聪, 李国强, 蔡鸿明, 等. 区块链的安全检测模型[J]. 软件学报, 2018, 29(5): 1348-1359.

[11] 孙国梓, 李芝, 肖荣宇, 等. 区块链交易安全问题研究[J]. 南京邮电大学学报: 自然科学版, 2021(2): 41-53.

[12] 孙国梓, 王纪涛, 谷宇. 区块链技术安全威胁分析[J]. 南京邮电大学学报: 自然科学版, 2019, 39(5): 48-62.

[13] 任艳丽, 徐丹婷, 张新鹏, 等. 可修改的区块链方案[J]. 软件学报, 2020, 31(12): 3909-3922.

[14] 任艳丽, 徐丹婷, 张新鹏, 等. 基于门限环签名的可删除区块链[J]. 通信学报, 2019, 40(4): 71-82.

[15] 张富利, 侯培宇, 李杉杉, 等. 一种智能合约微服务化框架[J]. 软件学报, 2021, 32(11): 3423-3439.

[16] 沈海波, 陈强, 黄海. 语义区块链研究综述[J]. 计算机应用研究, 2021, 38(7): 1937-1942.

[17] 韩宁, 李希萌, 张倩颖, 等. 以太坊中间语言的可执行语义[J]. 软件学报, 2021, 32(6): 1717-1732.

[18] 于金刚, 赵培培, 仲启强, 等. 基于区块链的工业互联网安全平台[J]. 计算机系统应用, 2021, 30(11): 91-98.

[19] 于金刚, 王海汀, 赵培培, 等. 基于区块链的新型存储模型慈善系统[J]. 计算机系统应用, 2021, 30(11): 112-117.

[20] 陈先来, 赵晓宇, 曾工棉, 等. 基于区块链的患者在线交流模型[J]. 计算机科学, 2021, 48(11): 28-35.

[21] 张辰, 马素刚, 李宥谋, 等. 基于区块链的医疗系统[J]. 现代电子技术, 2021, 44(4): 133-137.

[22] Rosa Bruno M G, Anastasova Salzitsa, Yang Guang Z. NFC-Powered Implantable Device for On-Body Parameters Monitoring With Secure Data Exchange Link to a Medical Blockchain Type of Network[J]. IEEE transactions on cybernetics, 2021, (99): 1-13.

[23] 黄子依, 秦玉海. 基于多特征识别的恶意挖矿网页检测及其取证研究[J]. 信息网络安全, 2021, 21(7): 87-94.

Research on Blockchain and Mining Technology

XING Zhi-peng1, LI Xin1, HUANG Jing-jing2

(1. Electronics and Information Engineering College, Liaoning University of Technology, Jinzhou 121001, China; 2. Liaoning University of Technology Industrial Corporation, Jinzhou 121001, China)

The article summarizes the current research direction and research results of blockchain technology, after that starting from blockchain, it explains the structure of current blockchain system, common consensus algorithms used, the future development prospect of blockchain, and introduces the relationship between blockchain, virtual coin and mining, elaborates the current situation and future development trend of virtual coin market, common mining protocol and the harm caused by the current mining proliferation.

blockchain; mining; virtual coins; consensus algorithms; mining trojans

10.15916/j.issn1674-3261.2023.03.006

TP311

A

1674-3261(2023)03-0169-05

2022-10-24

邢志鹏(1998-),男,山东泰安人,硕士生。

李昕(1966-),男(满族),辽宁锦州人,教授,博士。

责任编辑:孙 林

猜你喜欢

挖矿矿工合约
合力攻坚 全面治理高校“挖矿”
多措并举 全流程整治“挖矿”
金牌挖矿工
挖矿木马的攻击手段及防御策略研究
老矿工的家国情怀
矿工老李
誓词
合约必守,谁能例外!——对“情势变更”制度不可寄于过高期望