当前位置:首页 > 知识 >

UENC公链DPOW算法的随机数生成方法解析

UENC公链采用随机选取、分片验证的方式进行交易确认,以确保每个节点参与验证的概率是均等的。但是,UENC中的随机数是真的随机吗?

UENC的随机数是通过选取硬件节点的Linux系统中的随机数。可以说,这些随机数是真正的随机数,而不是伪随机数。因此,UENC所用的随机数确实能够保证公平性。

此外,随机数在许多领域都有重要应用,如Monte Carlo模拟、密码学和网络安全。随机数的质量直接影响着网络安全系统的可靠性和安全性,以及Monte Carlo模拟结果的可信度。因此,寻求计算机生成高质量随机数序列的研究一直都是一个长期受关注的课题。

Linux内核从1.3.30版本开始实现了一个高强度的随机数发生器。根据Linux2.6.10内核的原理,可以简要介绍随机数的生成过程。

Linux内核使用熵来描述数据的随机性。熵是指描述系统混乱无序程度的物理量,熵越大,系统的有序性越差,即不确定性越大。在信息学中,熵用来表征一个符号或系统的不确定性,熵越大,系统所含有的有用信息量越少,不确定度越大。

计算机本身是可预测的系统,因此,用计算机算法无法产生真正的随机数。但是,机器的环境中充满了各种各样的噪声,例如硬件设备发生中断的时间、用户点击鼠标的时间间隔等,这些噪声是完全随机的,无法事先预测。Linux内核实现的随机数发生器就是利用系统中的这些随机噪声来生成高质量的随机数序列。

内核维护了一个熵池,用来收集来自设备驱动程序和其他来源的环境噪声。理论上,熵池中的数据是完全随机的,可以生成真正的随机数序列。为了追踪熵池中数据的随机性,内核在将数据加入池时进行熵估算,即估算数据的随机性。熵估算值描述池中包含的随机数位数,数值越大表示池中数据的随机性越好。

猜你喜欢

微信二维码

微信