挖矿技术,要从一个理工男的爱情故事讲起……
理工男的爱情故事小蓝是一个理工男,他喜欢上了小红。奈何小红追求者众,小蓝苦于不能脱颖而出。
到底选择哪个男生呢?公平起见,小红决定考察每个男生的诚意。
谁第一个解出方程,小红就选择谁。因为解高次方程没有固定公式,需要花费一定的时间、进行大量的计算,才能得出正确结果。愿意解方程的男生,自然最有诚意。而小红可以把结果带入方程式,简单地验证其是否正确。
那么问题来了:如果有人作弊,偷看了小蓝的答案,并且抢答怎么办?
要解决这个问题也容易,小红可以给每个男生编号,把编号作为方程第一项的系数。这样,每个人收到的方程式都是不同的,小蓝的答案对于其他人来说是错误的。
而且,小红可以通过结果验证,直接从方程第一项的系数得知,究竟是谁解出了方程。因此,作弊是没有用的。
从爱情故事到挖矿原理从小蓝的爱情故事中我们可以知道,要想达成目标,就得付出一定的工作量。通过工作量证明,可以有效验证每个人是否花时间做了计算。
有效的工作量证明:计算过程复杂,需要消耗一定时间;验证过程相对简单,甚至可以瞬间完成。
在比特币网络中,矿工挖矿也是一种工作量证明。当然,不能通过解高次方程来实现,因为这对人来说很难,对计算机来说却非常容易,可以在1秒内完成。
要对计算机进行工作量证明,必须找到一种工作量算法,让计算机无法在短时间内计算出来,这种算法就是哈希算法。
通过改变区块头部Nonce字段的值,计算机可以计算出不同的区块哈希值,直到计算出某个特定的哈希值时,计算结束。特定哈希和其他哈希的区别是,它的数值前面有多个“0”。
比特币挖矿的工作量证明:不断计算区块哈希,直到计算出一个特定的哈希值,它小于难度值。
比特币使用的SHA-256算法,可以看作对随机输入产生随机输出。例如,对字符串Hello再加上一个数字计算两次SHA-256,根据数字的不同,得到的哈希是完全无规律的256位随机数。
大约计算16次,可以在得到的哈希中找到首位是0的哈希值,因为首位是0的出现概率为1/16 。
如果要找到前两位是0的哈希值,理论上需要计算16^2=256次,实际计算44次。
如果要找到前三位是0的哈希值,理论上需要计算16^3=4096次,实际计算6591次。
如果要找到前四位是0的哈希值,理论上需要计算16^4即超过65000次,实际计算67000多次。
对于给定难度的SHA-256,假设我们用难度1表示必须算出首位1个0,难度2表示必须算出首位2个0,难度N表示必须算出首位N个0,那么每增加1个难度,计算量将增加16倍。
比特币挖矿,就是先给定一个难度值,然后不断变换Nonce,计算Block Hash,直到找到一个比给定难度值低的Block Hash,就算挖矿成功。
简单举例,如果要计算出连续17个0开头的哈希值,矿工首先应确定Prev Hash、Merkle Hash、Timestamp、Bits等参数,然后不断变化Nonce来计算哈希,大约需要16^17即2.9万亿亿次计算。
实际难度值是根据Bits值由公式计算而来的,比特币协议要求计算出的区块哈希值比难度值小,这个区块才算有效。
注意,Difficulty的值越小,说明哈希值前面的0越多,计算难度越大。
比特币网络的难度是不断变化的,它的难度保证大约每10分钟产生一个区块,难度值每2015个区块调整一次。如果区块平均生成时间小于10分钟,说明全网算力增加,难度也会增加;如果大于10分钟,说明全网算力减少,难度也会减少,难度随着全网算力的增减动态调整。
挖矿木马的危害黑客会使用各种手段将挖矿木马植入受害者的计算机中,在其不知情的情况下,利用计算机的算力挖矿,从而获得非法收益。目前有多个威胁组织(如H2Miner)进行挖矿木马的传播,致使大量受害者的系统资源被恶意占用,硬件寿命缩短,严重影响生产生活。
大量消耗计算机资源:挖矿木马普遍消耗大量计算机资源,使系统及其服务、应用运行缓慢,甚至可能使正常服务崩溃,造成数据丢失。降低设备性能和寿命:被植入挖矿木马的计算机普遍寿命较短,且性能严重下降。留置后门衍生僵尸网络:挖矿木马普遍会添加SSH免密登录后门、安装RPC后门、安装Rootkit后门、接收远程IRC服务器指令等。作为跳板攻击其他目标:挖矿木马可以控制受害者计算机进行DDoS攻击,以此作为跳板攻击其他计算机,或者释放勒索软件索要赎金等。碳排放造成环境污染:挖矿会消耗大量的电,造成巨大能源损耗,现阶段电能的主要来源是煤炭,加剧碳排放污染。 挖矿木马家族的特征2021年,大部分挖矿组织倾向于门罗币。门罗币是一种无法追踪的强匿名性货币,它的挖矿算法对CPU的利用效率更高,一般僵尸网络掌握的“肉鸡”性能不高(即缺少高性能显卡),挖取门罗币可以获得更多挖矿收益。同时,在比特币挖取难度日益增大的背景下,门罗币的价格在虚拟货币市场始终保持稳定,对应的挖矿收益相较比特币更加稳定,因此成为了攻击者的首选。
竞争性:通过检测并结束其他挖矿木马的进程,独占目标的计算资源。持久性:通过添加计划任务、创建服务、设置自启动、RootKit等手段,长期驻留目标。隐蔽性和对抗性:通过进程隐藏、命令替换、进程互锁等方式,实现对抗排查和处置。针对性:针对云服务器提供商在云主机上运行的安全检测程序,在脚本文件中添加能够将其结束并卸载的恶意代码,以此规避云主机的安全检测。除此之外,部分挖矿木马可以利用扫描工具,对云服务提供商的IP地址进行探测,如云铲、H2Miner等。集成性:挖矿木马除核心的挖矿模块外,还集成了端口扫描、漏洞利用、留置后门等组件,可以实现横向传播、广泛传播、构建僵尸网络,如Outlaw等。跨平台性:利用Web组件漏洞,结合恶意PowerShell、Shell等脚本,以及Python、Go语言编写的恶意程序,实现跨平台运行挖矿木马,如Sysrv-Hello、Satan DDoS等。 如何防御挖矿木马?方法一:安装杀毒软件,防御挖矿木马攻击。
方法二:及时为计算机的 *** 作系统打补丁,避免漏洞攻击。
方法三:下一代防火墙产品,具备防护挖矿木马的对应规则,可提供防护能力。
方法四:“鹰眼”全流量取证系统具备相关检测规则,可精准识别挖矿流量。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)