门罗币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

流程图

posted @ 2019-12-27 16:05  反光  阅读(3973)  评论(0编辑  收藏  举报