zoukankan      html  css  js  c++  java
  • 门罗币XMR最新挖矿算法RandomX设计原理

    Randomx算法-门罗币XMR的挖矿新算法

    RandomX算法设计目标是抗ASIC+降低GPU优势。

    Monero门罗币XMR计划于2019年的10月份启用最新的RandomX 算法以取代原来的CryptoNight挖矿算法,以继续优化抗ASIC+降低GPU优势来保持门罗POW网络的分散性
     
    算法流程分析

    最外层循环8次

    内层循环2048次

    0.输入0-60字节的K、任意长度字符串H(包含nonce)。

    1.使用K初始化Dataset。

    2.使用HHash512(blake2b)算法生成种子seed1

    3.设置生成器AesGenerator1R参数为seed1

    4.使用生成器fillAes1Rx4参数seed1生成Scratchpad和参数seed2

    5.设置生成器AesGenerator4R参数为seed2

    6.设置浮点默认舍入模式。

    7.1使用生成器fillAes4Rx4参数seed2生成 entropy128字节 + program(2K=8*256)8*RANDOMX_PROGRAM_SIZE (执行参数和随机代码) 。

    7.2 解析参数entropy

    7.3 JIT编译program为机器码。

    8.执行虚拟机。

    9.使用虚拟机regfile和Hash512(blake2b)算法生成种子seed2

    10.使用seed2设置生成器gen4的状态。

    11.重复7-10步骤RANDOMX_PROGRAM_COUNT(8)次,最后一次执行时跳过9、10步骤。

    12.调用hashAndFillAes1Rx4算法计算Scratchpad的特征值A

    13.将特征值A覆盖regfile的一部分。

    14.使用虚拟机regfile和Hash512(blake2b)算法生成哈希结果R

    流程图

  • 相关阅读:
    设计模式 --单例模式
    Neor Profile SQL 中文汉化
    office online server 安装部署整合到到C#项目
    C# 线程池
    WinForm版 屏幕截图
    golang-nsq高性能消息队列
    【Go Time】Go语言里的条件语句else、switch
    【Go Time】Go语言常量定义关键字const
    【Go Time】Go定义变量
    【Go Time】Go语言里的空接口
  • 原文地址:https://www.cnblogs.com/fanguang/p/12107860.html
Copyright © 2011-2022 走看看