XMR新算法RandomX设计原理

RandomX设计

为了最小化专用硬件的性能优势,工作证明(PoW)算法必须通过定位现有通用硬件的特定功能来实现设备绑定。这是一项复杂的任务,因为我们必须针对来自不同制造商的不同架构的大类设备。

有两种不同类型的通用处理设备:中央处理单元(CPU)和图形处理单元(GPU)。RandomX针对CPU,原因如下:

  • CPU是一种不那么专业化的设备,它更普遍且可以广泛使用。CPU绑定算法更平等,允许更多参与者加入网络。这是原始CryptoNote白皮书[ 1 ] 中所述的目标之一。
  • 不同CPU架构之间存在大型公共硬件指令子集。关于GPU,同样不能说。例如,NVIDIA和AMD GPU没有通用的整数乘法指​​令[ 2 ]。
  • 所有主要的CPU指令集都有很好的文档,可以使用多个开源编译器。相比之下,GPU指令集通常是专有的,可能需要供应商特定的闭源驱动程序才能获得最佳性能。

1.设计考虑因素

CPU限制工作的最基本思想是“工作”必须是动态的。这利用了CPU接受两种输入的事实:数据(主输入)和代码(指定对数据执行的操作)。

相反,典型的加密散列函数[ 3 ]并不代表CPU的合适工作,因为它们的唯一输入是数据,而操作序列是固定的,并且可以通过专用集成电路更有效地执行。

 

2.虚拟机架构

本节介绍RandomX虚拟机(VM)的设计。

原文链接:https://github.com/tevador/RandomX/blob/master/doc/design.md

你可能感兴趣的:(XMR新算法RandomX设计原理)