信息安全
挖矿协议
漏洞演示
以Spring Boot Actuator 未授权访问为入口
TMI木马安全事件分析报告
圣迪乐官网安全事件报告
本文档使用「觅思文档专业版」发布
-
+
首页
挖矿协议
# 挖矿协议 ## 一. Getwork 协议 Getwork 是通过 HTTP 传输发送的 JSON-RPC 方法。 主要意义:数据与计算彻底分离 使用 kanopool 矿池实验,现在大部分公共矿池只支持 stratum 协议  Miniminer 是一款用 C#实现的基于 CPU 的比特币矿工,使用 GETWORK 协议连接 到矿池。 实际上不适合挖掘 - 大多数矿池不再支持 GETWORK 协议   在 bitcoin 中,每一个 block 都包含: version 网络节点的版本号 prev_block 前一个 block hash,创世块没有 mrkl_root 默克尔树,记录每一笔交易信息 time 时间戳 bits 网络的难度 nonce 随机数 挖矿的工作就是找到一个合适的 nonce 回到 getwork 协议 当没有参数时 getwork 用于获取哈希的新工作。  hash1: 指上一个已出块的 block hash,采用的算法是 double sha256 data: 块信息,经过一次 sha256 target: 出块的目标值 midstate:计算 block hash 时,我们仅需要变换 nonce。提前处理好的 version, prev_block 等 getwork 请求发送工作证明  没有标准文档定义矿池返回的含义。每个矿池软件在某种程度上都可以随心所欲。 它主要被较新的 getblocktemplate 挖矿协议所取代,但数据格式仍然经常在某 些矿工结构内部使用。 ## 二.Getblocktemplate 协议 在 2012 年,getblocktemplate 协议被开发并取代了老的 getwork 协议 getblocktemplate 掌握区块链上与挖矿有关的所有信息 矿工向矿池请求初始模板,矿池会返回当前区块信息  Version 区块版本号 Previousblockhash 前一个区块 Hash Bits 难度 Transactions 交易信息集合 Target 区块目标值 当矿工找到满足要求难度的工作时,它可以将块作为共享提交给服务器  ## 三.stratum 协议 stratum 协议是目前最常用的矿机和矿池之间的 TCP 通讯协议 矿机启动,首先以 mining.subscribe 方法向矿池连接  矿池以 mining.notify 返回订阅号 紧接着,当矿机以 mining.subscribe 方法登记后,矿池会以 mining.notify 方 法返回该任务   bf 代表着任务号,然后是前个区块 hash 区块版本号:"00000002" nBit: "1c2ac4af" 当前时间: "504e86b9" 矿机使用 mining.authorize 方法登录,当返回 true 时登录成功  当矿机找到合法的 nonce,就以 mining.submit 方法向矿池提交任务  ## 四.从一些样本看协议 1.从 freebuf 看到的一个样本通过 ssh 爆破,植入的挖矿程序。 从入侵脚本中找到样本下载地址 http://www.tionhgjk.com:8220/tte2   这里的 keepalived 方法是用来判断连接是否还是存活的,一般现在矿池都支持这个方法  2.再看另一个门罗币挖矿的实例   3.通过 github 搜索可以找到一些挖矿源码   4.base64 加密  
胡文龙
2022年5月11日 16:13
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
Word文件
PDF文档
PDF文档(打印)
分享
链接
类型
密码
更新密码
有效期