{"content":{"title":"随机数与去中心化网络：实际应用","body":"作者: MixBytes 团队\r\n\r\n![](https://img.learnblockchain.cn/2025/03/09/04.jpg)\r\n\r\n## 介绍\r\n\r\n**“随机数生成过于重要，不应仅靠运气”**\r\n\r\n—— 罗伯特·R·科夫尤，1970年\r\n\r\n在本文中，我们将重点讨论在不可信环境中使用集体随机数生成方案的解决方案及其实际应用。简而言之，随机性在区块链中的使用方式和原因，以及如何区分“好”随机性和“坏”随机性。密码学家们长期以来一直在研究真正随机数的生成，而即使在单独的计算机上达到这一点也是极其困难的。更不用说在去中心化网络中，随机数的生成变得更加复杂和重要。\r\n\r\n在参与者相互不信任的网络中，生成一个不容置疑的随机数的可能性可以有效地解决诸多重要问题，并显著改善现有方案。此外，游戏、赌博和彩票实际上并非唯一的目标，尽管这对新手读者来说可能乍看之下是这样。\r\n\r\n## 随机数生成\r\n\r\n计算机无法自行生成随机数，它们需要外部帮助。计算机可以从称为熵源的不同来源接收一些随机值，例如：鼠标移动、已用内存量、处理器引脚的寄生电流等。这些值并非完全随机，因为它们有一定的范围或可预测的变化机制。为了将这些数字转变为在给定范围内的统计随机数，应用了加密变换。最终，我们从非均匀分布的熵源值中获得均匀分布的伪随机值。\r\n\r\n所获得的值被称为伪随机，因为它们并不是真正随机的，而是从熵中确定性地推导出来的。通过加密数据，任何好的加密算法生成的密文在统计上与随机序列无显著差异。因此，要生成随机数据，可以选择确保良好的不可重复性和小范围内值的不可预测性的熵源，其余的位的混淆和扩散工作将由加密算法处理。\r\n\r\n在这段简短的培训结束时，我必须说，即使在单独的设备上，随机数生成也是数据安全的重要支柱，因为生成的伪随机数用于在各种网络中建立安全连接、生成加密密钥、负载均衡、完整性监控等。许多协议的安全性依赖于生成可靠、外部不可预测的随机性的能力，保存它并且在下一个协议步骤之前不披露，否则安全性将受到破坏。对伪随机生成器的攻击极其危险，威胁着现代大多数加密软件。\r\n\r\n如果你上过基础的密码学课程，你必须知道这一点，所以让我们继续讨论去中心化网络中的随机性。\r\n\r\n## 区块链中的随机性\r\n\r\n首先，我将讨论支持智能合约的区块链，因为它们可以充分利用高质量不容置疑随机性的机会。这些算法称为“公共可验证随机信标”，为简便起见，我将在后续称之为 PVRB。由于区块链是网络，任何参与者都可以检查数据，因此名称的关键部分是“公共可验证”，即通过计算，任何人都可以获得证据，证明区块链中生成的随机数具有以下属性：\r\n\r\n- 结果应从可证明均匀分布中抽取，即基于已知而强大的密码学。\r\n\r\n- 无法控制结果的任何单个比特。因此，结果无法提前预测。\r\n\r\n- 鉴于未参与协议或通过洪水攻击消息来破坏生成协议是困难的。\r\n\r\n- 以上所有应能抵御可接受数量的不诚实协议参与者的合谋，例如，1/3 的参与者。\r\n\r\n如果一个阴谋的小组参与者生产一个可控的偶数/奇数随机数的可能性是一个安全缺陷。任何该小组停止随机数生成的可能性都是一个安全缺陷。好吧，这一领域有许多重要的问题，这远非一件简单的任务...\r\n\r\n看起来 PVRB 的重要应用主要是游戏、彩票和任何基于区块链的赌博。确实，这是一个重要的领域，但区块链随机性在其他更重要的领域也得到了应用。让我们来看一下它们。\r\n\r\n## 共识算法\r\n\r\nPVRB 在网络共识组织中起着重要作用。区块链中的交易由发送者的签名保护，攻击交易的唯一方法是将其包含或排除在区块中（或若干个区块中）在不同的时间点。因此，共识算法的主要功能是确定交易和包含它们的区块的顺序。此外，区块链的一个基本特征是最终性——网络能够同意到达最终块的链是最终的，并在出现新分叉的情况下永远不会被排除。通常，为了同意一个区块是有效的，最重要的是最终的，需收集最多区块生产者（以下简称 BPs）的签名，这至少涉及将区块链传递给所有 BPs 并**在所有 BPs 之间分配签名**。随着 BPs 数量的增加，所需网络消息的数量呈指数增长；因此，要求最终性的共识算法，例如在 Hyperledger 中使用的已经不适用于几十个 BPs，因为需要进行大量交互。\r\n\r\n如果网络有一个不容置疑且公平的 PVRB，则可以从 BPs 中选择一个并在一个协议回合中将其指定为“领导者”。如果我们有 N 个 BPs，其中 M: M > 1/2 N 是诚实的：它们不审查交易并且不构建链分叉以执行“双重消费”攻击，那么使用均匀分布的不容置疑 PVRB 将允许你以 M / N 的概率选出一个诚实的领导者（M / N > 1/2）。如果每个领导者在其可产生区块并验证链的时间段内分配一个时间槽，并且这些槽相等，则诚实 BPs 的区块链将比恶意 BPs 形成的链更长，而依赖于链长度的共识算法将简单地丢弃“坏”链。这种为每个 BP 分配相等时间槽的原则首次在 Graphene（EOS 的前身）中得到应用，允许以单个签名批准大部分区块，这大大减少了网络负载，并确保了高共识速度和稳定性。然而，在 EOS 中，必须使用特殊区块（最后不可逆区块），这些区块通过 2/3 + 1 的 BP 签名确认。这些区块用于确保最终性（即在最后一个最后不可逆区块之前不可能出现链分叉）。\r\n\r\n另外，在实际用例中，协议方案更复杂 - 对建议区块的投票涉及多个阶段，以支持在缺少区块和网络问题的情况下的网络；但即使考虑到这一点，使用 PVRB 的共识算法在 BPs 之间需要的消息显著减少，使得其速度快于传统的 PBFT 或其各种变种。\r\n\r\n此类算法的突出例子是：由 Cardano 团队开发的 [Ouroboros](https://eprint.iacr.org/2016/889.pdf)，宣布具有经过数学证明的抵抗 BP 合谋的能力。\r\n\r\n在 Ouroboros 中，PVRB 被用于定义所谓的“BP 日程表”，根据该日程表为每个 BP 分配区块发布的时间槽。PVRB 的一个重要优势是 BP 的“平等”（根据其余额大小）。PVRB 公平性保证恶意 BP 不能控制时间槽的日程表，因此不能操纵链，提前准备和分析链分叉。选择一个分叉只需依靠链长度，而不需要复杂计算 BP 的“效用”或其区块的“权重”。\r\n\r\n总的来说，如果需要在去中心化网络中选择一个随机参与者，PVRB 通常优于基于区块哈希的确定性变体。如果没有 PVRB，影响参与者选择的能力会导致攻击，当多个可选项中，攻击者选择下一个腐败参与者或其中一些，以确保在决策中拥有更大的权力。PVRB 给予这些攻击汲取恶果。\r\n\r\n## 扩展与负载均衡\r\n\r\nPVRB 可以帮助减轻负载和支付扩展。首先，我建议阅读 Rivest 的 [文章](https://people.csail.mit.edu/rivest/pubs/Riv97b.pdf)《电子彩票作为微支付》。信息是，与其处理 100 笔每笔金额 1 分的微支付，不如进行一个公平的彩票游戏，奖金为 1 美元 = 100 美分，买方为每笔 1 分的付款发送他 100 张“彩票”中的一张给银行。这些票据中的一张在银行赢得了 1 美元，而收款人可以在区块链中记录这张票。据说最重要的是，剩下的 99 张彩票在接收者和买方之间直接转移，没有任何外部参与者，通过私人通道以任何所需的速度进行交换。这一方案在 Emercoin 网络中基于该方案的协议有一个很好的描述[在这里](https://learnblockchain.cn/article/12511)。\r\n\r\n这个方案存在几个问题（例如，收件人在收到赢钱票后可能立即停止服务买方），但在某些特殊应用中可以忽略，例如每分钟费用或对服务的电子订阅。然而，彩票的公平性仍然是首要要求，而 PVRB 对实现其至关重要。\r\n\r\n选择随机参与者对于旨在横向扩展区块链的分片协议也极为重要，允许不同的 BP 只处理其自己的交易范围。这是一个极其繁琐的任务，尤其是在分片组合安全方面。与共识算法一样，选择一个随机 BP 来给他负责特定分片也是一个 PVRB 任务。在中心化系统中，分片是由平衡器分配的：它简单地计算请求哈希并将其发送到所需的执行者。在区块链中，影响这一指定的能力可能导致共识攻击。例如，攻击者可以控制交易的内容，监控哪些交易进入分片并操纵其区块链。有关在以太坊中使用随机数进行分片的讨论可以在[这里](https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-is-the-randomness-for-random-sampling-generated)找到。\r\n\r\n分片是区块链上最雄心勃勃和严肃的任务之一；其解决方案将允许构建具有出色性能和容量的去中心化网络。PVRB 只是解决这一问题的重要组成部分。\r\n\r\n## 游戏、经济协议、仲裁\r\n\r\n随机数在游戏行业中的作用难以高估。它们在在线赌场中显然被使用，并且隐含地用于计算玩家行为的影响。对于去中心化网络来说，这些问题极其复杂，因为它们无法依赖于中心化随机源。然而，随机选择可以解决许多经济问题，并帮助建立更简单、更有效的协议。假设在我们的协议中就某些低成本服务的支付存在争议，这些争议发生相对较少。在这种情况下，如果存在不容置疑的 PVRB，客户和卖方可以就争议的随机解决达成一致，但按给定概率。例如，客户获胜的概率为 60%，卖方获胜的概率为 40%。乍一看，这种荒谬的做法可以自动解决争议，并对赢/输的份额进行完全可预测的划分，满足双方的需求，而无需第三方参与和浪费时间。此外，概率比率可以是动态的，依赖于一些全球变量。例如，如果某公司经营良好，争议数量较少且盈利能力较高，该公司可以自动将争议解决的概率转向客户，例如70/30或80/20；若争议需要花费很多资金，并且存在欺诈或不当行为，概率可以转移到另一个方向。\r\n\r\n大量有趣的去中心化协议，比如代币策划注册、预测市场、融资曲线等，都是经济游戏，促进良好行为并惩罚不当行为。它们通常存在安全缺陷，而保护措施往往是矛盾的。针对拥有数十亿代币的“鲸鱼”（“大额筹码”）攻击的保护措施可能在数千个小额账户（“虚假筹码”）的攻击面前显得脆弱。为了防止单一攻击采取的措施，例如创建非线性佣金，使大额筹码不再盈利，通常会因另一种攻击受到诘难。既然这是一个经济游戏，相应的统计权重可以提前计算，可以简单地用具有适当分布的随机数替换常规佣金。这种概率佣金的实现非常简单：如果区块链有一个可靠的随机生成源而又不需要复杂的计算，则可以避免“鲸鱼”和“虚假筹码”带来的困扰。\r\n\r\n与此同时，请注意，控制单个随机比特会导致欺诈，降低和翻倍概率。因此，公平的 PVRB 是此类协议中最重要的组成部分。\r\n\r\n## 在哪里找到公平的随机性？\r\n\r\n理论上，去中心化网络中的公平随机性能为几乎任何协议提供可证明的防共谋安全性。该证明相当简单——如果网络一致同意一个比特 0 或 1 且不到一半的参与者是不诚实的，那么经过足够多的迭代，网络保障将在固定概率下就这个比特达成共识。这是因为公平随机机制在 51% 的情况下选择 100 个参与者中的 51 个。但这只是理论上的做法，因为在真正的区块链中确保这种安全水平需要在主机之间进行大量消息传递，以及复杂的密码学和多种交互。在实际网络中，任何协议增强立即增加潜在攻击向量，因此实际实施需要更多的协议增强，以确保在现实中是安全的。\r\n\r\n这就是为什么在区块链上仍然没有稳定的 PVRB 能够通过实践测试、多次审计、负载测试和真实攻击，而没有这些，很难称一个产品真正安全。\r\n\r\n然而，有几个有前景的方法在许多细节上有所不同，我们相信其中之一将解决此问题。凭借现代计算资源，密码学理论能够转化为实际用例。在未来，我们将很高兴告诉你 PVRB 的实施情况：现在有几种每种都有其自身的重要属性、实施特点和良好的理念。由于只有少数团队在研究随机性，因此每项研究都极为重要。我们希望我们的信息能让其他团队借鉴前人的经验加快进程。\r\n\r\n- 谁是 MixBytes？\r\n\r\n\r\n[MixBytes](https://mixbytes.io/) 是一支由区块链审计和安全研究专家组成的团队，专注于为 EVM 兼容和 Substrate 基础项目提供全面的智能合约审计和技术咨询服务。加入我们，关注 [X](https://twitter.com/MixBytes)，及时了解最新的行业趋势和洞察。\r\n\r\n>- 原文链接： [mixbytes.io/blog/random-...](https://mixbytes.io/blog/random-numbers-decentralized-networks-practical-application)\r\n>- 登链社区 AI 助手，为大家转译优秀英文文章，如有翻译不通的地方，还请包涵～"},"author":{"user":"https://learnblockchain.cn/people/24680","address":null},"history":null,"timestamp":1741523957,"version":1}