- 区块链教程
- 区块链 - 首页
- 区块链基础
- 区块链 - 简介
- 区块链的历史
- 区块链 - 技术
- 区块链与密码学
- 区块链超越加密货币
- 区块链 - 高级概念
- 区块链 - 去中心化
- 区块链 - 去中心化应用(DApp)
- 区块链 - 去中心化金融(DeFi)
- 区块链 - 未来展望
- 区块链中的智能合约
- 区块链 - 里卡多合约
- 区块链 - 预言机
- 区块链 - 去中心化自治组织(DAO)
- 比特币
- 比特币 - 无形的黄金
- 比特币是如何工作的?
- 比特币 - 网络
- 比特币 - 钱包
- 比特币 - 创新
- 以太坊
- 以太坊替代加密货币
- 以太坊生态系统
- 以太坊虚拟机
- 高级以太坊
- 以太坊钱包
- 以太坊矿工节点
- 其他
- 区块链 - 双重支付
- 公钥密码学
- 区块链 - 哈希
- 比特币 - 挖矿
- 区块链 - 区块链
- 区块链 - 工作量证明
- 区块链 - 网络与挖矿
- 区块链 - 矿工激励
- 区块链 - 梅克尔树
- 区块链 - 支付验证
- 区块链 - 解决冲突
- 区块链 - 隐私
- 比特币 - 缓解攻击
- 区块链 - 结论
- 区块链资源
- 区块链 - 快速指南
- 区块链 - 资源
- 区块链 - 讨论
区块链 - 工作量证明
由于所有交易都带有时间戳,我们需要在点对点网络上实现一个分布式时间戳服务器。这需要一些额外的实现,那就是我将要描述的工作量证明。对于每个区块,我们现在添加一个名为**随机数(Nonce)**的项目,如下面的图所示:
随机数(Nonce)是一个数字,使得区块的哈希值满足某个特定条件。这个条件可能是生成的哈希值的前四位必须为零。
因此,生成的哈希值将类似于 000010101010xxx。通常,矿工从随机数(Nonce)值为 0 开始,并不断递增它,直到生成的哈希值满足指定的条件。
请注意,哈希生成是随机的,并且不受您的控制 - 也就是说,您无法强制哈希函数生成特定的哈希值。因此,可能需要多次迭代才能生成具有四个前导零的所需哈希值。比特币系统中生成一个区块的预期时间为 10 分钟。一旦矿工成功挖到区块,他就会将其发布到系统中,使其成为链中的最后一个区块。
请注意,有多个矿工在竞争生成合法的区块。比特币系统会奖励第一个成功挖到区块的矿工,给他一些比特币。一般来说,拥有更多计算能力的矿工可能是早期赢家。这可能会导致那些拥有巨大处理能力的人对整个系统发起攻击。我将在本教程的最后部分描述这些攻击以及如何缓解这些攻击。
广告