主页 > imtoken苹果闪退 > 随机数在区块链中的应用

随机数在区块链中的应用

imtoken苹果闪退 2023-03-28 06:17:37

摘要:在人们的生活中以太坊私钥生成过程,很多场景都需要用到随机数,比如福利彩票、车牌摇号、公房分配等。互联网的发展使得人们越来越依赖中心化系统来使用随机数。数字,但大多数中心化系统生成伪随机数并且存在作弊

随机数在区块链中的应用和生成机制

在人们的生活中,很多场景都需要用到随机数,比如福利彩票、车牌摇号、公房分配等。互联网的发展使得人们对随机数的使用越来越依赖中心化系统,但是大多数中心化系统生成伪随机数,存在作弊风险。

区块链的出现,让人们看到了产生更加公平的随机数的可能性。 而随机数在区块链本身也起到了非常重要的作用,那么随机数在区块链中的应用场景有哪些呢? 区块链如何产生更可靠的随机数?

随机数在区块链中的应用

私钥

任何拥有加密货币的人都知道私钥的重要性。 谁拥有你的私钥以太坊私钥生成过程,谁就拥有你的加密资产。 私钥的生成需要依赖随机数,因此能否保证随机数不可预测和被破解,关系到加密资产的安全。

比特币私钥使用由 SHA-256 生成的 256 位随机数。 这个随机数的取值范围是0~22??-1。 2的256次方大约是10的77次方。 以现有的算力,想要对取值范围非常大的数字进行暴力破解几乎是不可能的。

无法通过暴力破解,但是如果产生随机数的随机数发生器是可以被操纵的,并且产生的随机数是可以预测的,那么你的私钥就有可能被破解,加密资产的安全就得不到保障。

猜谜应用

在竞猜应用中,需要随机数来保证结果的随机性,避免人为干预,影响结果的公平性。

在中心化环境下,参与竞猜的用户需要向系统提交竞猜指令,系统根据规则收集用户信息,然后生成竞猜结果。 整个过程中,客户端不会参与猜测结果的计算,猜测结果本质上是系统生成的一串随机数。 当巨大利益的诱惑出现时,系统可能会通过欺骗来谋取利益。

在去中心化的环境中,没有唯一的中心,所有节点都可以共同参与随机数的产生。

可以有效保证随机数的公平性。 但在去中心化的环境中,黑客更容易攻击随机数并从中获利。 到目前为止,区块链随机数的安全性仍然是一个需要突破的技术难题。

2018年8月,曾经风靡一时的Fomo3D游戏被黑客利用其随机数漏洞在游戏中获取巨额利润。 继Fomo3D之后,EOS上的很多热门DAPP,尤其是猜谜类游戏,如EOS.WIN、EOSDice等,也因为随机数生成的缺陷而遭到黑客攻击。

POS共识机制

区块链是一种去中心化的分布式记账技术。 在去中心化的环境中,要实现正确的记账,随机选择簿记员是非常关键的。 因为只有在随机条件下,才能保证记账权的公平分配和挖矿奖励的合理分配。

POW 的共识机制是通过算力竞争计算出一个非常难的哈希值来随机决定谁来记账。 使用POS的共识机制,需要通过随机数随机选择一个节点记账。

大多数 POS 协议会根据持有者持有的代币数量选择一组矿工和验证者共同完成链上交易的验证和出块。 为了随机选择矿工和验证者并确保奖励的公平分配,算法必须包含一些公平和无偏见的随机数源。 因此,在很多POS共识机制中,随机数是一项非常关键的技术。

真随机数和伪随机数

随机数分为真随机数和伪随机数。 真随机数序列是完全不可预测的,只存在于真实的物理世界中,例如放射性衰变、电子设备噪声、宇宙射线的触发时间等。我们可以通过收集这些数据来获得真随机数序列。 伪随机数是使用随机数算法通过获得一系列真随机数(通常称为随机数种子)来计算的。 只要得到随机数种子,就可以得到相同的伪随机数序列。

因此,真正的随机数只存在于真实的物理世界中,而计算机中的随机数大多是伪随机数。 如果要保证伪随机数的安全性,就需要一个有效的随机数种子和一个安全的随机数生成器。

如何在区块链中生成随机数

区块链是一个分散的系统。 理论上,产生的随机数比中心化系统更公平。 但是,在去中心化的环境下,如果有巨额利润,就更容易被黑客攻击。 因此,为了保证区块链随机数的安全性,催生了各种随机数生成机制。

VRF(可验证随机函数)

VRF(Verifiable Random Function)是可验证的随机数

生成方法。 目前主要被基于POS共识算法的区块链项目使用,包括Algorand和Cardano。

在 Algorand 和 Cardano 中,VRF 是产生随机数的关键。 VRF 可以根据任何输入输出一个随机数。 VRF中专门设计了一个非交互式的零知识证明过程,可以用来验证随机数的正确性,验证某个随机数是由某个节点产生的。

VRF主要包括四个环节:

l 生成公私钥对

l 生成随机数输出

l 计算零知识证明

l 验证随机数输出

随机数在区块链中的应用和生成机制

生成随机数的节点使用自己的私钥作为输入的一部分生成随机数,然后在本地输出随机数和零知识证明。 其他节点可以使用生成随机数的节点的公钥、输入和输出来验证随机数的真实性和生成者的身份。

随机数在区块链中的应用和生成机制

得到随机数后,需要使用生成的随机数来选择参与出块的节点。 最简单的方法是在整个网络中设置一个公认的临界值M。 假设一个节点产生的随机数R大于临界值M,系统允许该节点参与下一次区块生成任务。 但是这种方案没有办法防止女巫攻击,所以现在大多数VRF抽签方案都是根据权益分配选票,然后设计抽签算法来完成后续的共识过程。

乱道

Randao 基于区块链技术,提供开源、去中心化、可证明公平的随机数生成服务。 Randao 的目标是满足随机数生成不可控、不可预测的基本特性,同时使个人能够参与随机数的生成,保证随机数的可参与性,利用随机数的透明不可逆特性区块链确保结果的可靠性 证明公平性。

Randao主要使用Commit Reveal和BLS。 Commit Reveal 的主要缺点是它生成随机数的速度很慢。 在以太坊中,从收到一个随机数生成请求到生成一个随机数至少需要10个区块以上,目前需要3分钟以上; 由于参与者需要多次发送交易提交数据,其生产和使用成本较高。 但该方案的优点是其参与门槛基本为零,任何人都可以随时加入随机数生成过程,在防止共谋和可证明公平性方面具有一定的优势。

BLS签名方案是对Commit Reveal的补充,由于生成过程组织在链外,响应速度快,通常只需要一个区块就可以生成一个随机数; 消费者发起随机数生成请求,生产者在下一个区块中写入随机数,只需要发送两笔交易即可完成随机数的生成和调用。 生产和使用成本非常低,适用于对反串通要求不高的高频场景。

门限签名方案

Dfinity是一个公链项目,目标是成为一台“互联网计算机”,在其公有云中实现软件和服务的运行。 在 Dfinity 中,随机数是整个共识机制正常运行的核心。 采用的门限签名机制结合了VRF和BLS签名机制,是一种有效的随机数生成方式。

门限签名机制主要由输入、输出和门限机制三部分组成。 输入是一个群成员的私钥,输出是一个随机数。 阈值机制可以保证的是,只要从成员那里得到的输入数量超过设定值,就可以得到一个确定的随机数,但是只有当输入数量小于设定值时,才能预测出输出的随机数获得。 在输出随机数的过程中使用了VRF,在门限机制中使用了BLS签名机制。

门限签名机制结合了 VRF 和 BLS。 VRF 使生成的随机数可验证。 BLS签名机制使得签名过程中没有节点可以提前预测签名结果,实现了随机数的不可控性,难以串通,是一种很好的随机数生成机制。

NULSRNG

NULSRNG是全球开源社区项目NULS,基于其POC(Proof of Credit)共识算法,专为DAPP设计的随机数种子生成机制。

NULSRNG的实现是基于POC共识的两阶段随机种子提交生成机制。 即每个节点在出块的同时生成一个随机种子,并对随机种子进行加密,将生成的密文包含在区块头中,得到本节点上次生成的256位随机种子明文。 结合区块头中的明文和密文,可以对节点产生的随机数种子进行验证,确保不可篡改。

随机数在区块链中的应用和生成机制

NULSRNG基于底层共识实现,所有共识节点参与。 这种方法增加了节点合谋的难度。 种子密文和明文两阶段提交,可以实现种子可验证不可篡改。

随机数在区块链中的应用和生成机制

在NULS上开发的DAPP可以直接使用底层提供的接口获取随机种子,然后使用自己的随机算法生成需要的随机数序列,既可以提高随机数的安全性,又可以灵活使用使用方便。

结语

1、在区块链中,随机数有很多应用场景。 随着区块链技术的不断发展和完善,随机数在区块链中的应用将不断增加;

2、在区块链领域,已经有很多不同的随机数生成机制,它们都有自己的特点;

3. 越来越多的技术团队和项目方意识到随机数的重要性,开始研究更好的随机数生成机制。 未来,将会有更加完善的区块链随机数生成机制。

关于作者:

黄连金

著名区块链专家,Nucleus Chain首席科学家,美国DistributedApps CEO,中国电子学会区块链分会专家委员,NULS顾问。

项文博

Java软件工程师,Cryptotech-Writer,NULS核心团队成员。 专注于区块链技术研究和区块链解决方案。

参考:

“Randao:可验证的随机数生成”;

“可验证随机函数”Silvio Micali、Michael Rabiny、Salil Vadhanz;

DFINITY 技术概述系列共识系统 Timo Hanke、Mahnush Movahedi、Dominic Williams。