BTC网络是如何运行的
经过前面几节的介绍,我们了解了区块链的基本运作方式以及BTC的交易模式,今天我们来聊一些BTC网络是如何运行的?阅读有困难的朋友可以去此专栏下看前几期的文章
1. 签名交易,广播交易
BTC网络的作用就是处理交易(UXTO的输入和输出),所以交易数据是BTC网路要处理的核心数据
发起一笔BTC交易,就是 用户签名交易,钱包把交易发送到相连接的节点。钱包并不是只会把交易发送到一个节点上,而是尽可能多的向周围的节点广播。而节点收到广播后再广播给自己周围的节点。
2. 节点收集并验证交易
节点将验证每一笔的交易(输入是否充足,签名是否正确,如何验证我们之后有新篇章去讲),将验证通过的交易收集到一个区块中。
3. 节点计算区块调节值(工作量证明)
BTC网络大概每10分钟产生一个区块,所以产生区块不是每个节点随意产生的,需要计算区块的调节值(工作量证明)
BTC工作量证明步骤:
- 构建区块头,矿工收集并组装待打包的交易信息和一些其他元数据,包括**前一区块的哈希值、时间戳、随机数(Nonce)**等。这些信息一起构成了区块头。
- 计算SHA-256散列值: 矿工通过将区块头的数据输入SHA-256哈希函数来计算散列值。由于SHA-256的性质,即使区块头中的微小变化也会导致完全不同的散列值。挖矿的目标是找到一个符合特定条件的散列值,通常是以一定数量的前导零开头。
- 尝试不同的Nonce: 由于SHA-256散列值的随机性,矿工会不断尝试不同的Nonce值,重新计算散列值,直到找到一个符合条件的散列值。
- 成功挖矿: 一旦矿工找到了满足条件的散列值,他们就会将这个区块广播到网络上。其他节点验证该散列值是否符合规则,如果通过验证,该区块就被添加到区块链中,矿工获得相应的奖励。
4. 其它节点接收区块并验证
节点提交工作量证明,就是把区块扩散到其它节点。挖矿的奖励同样也是UXTO,当其它节点同意将区块添加到链上时,区块奖励和手续费就已经输出到矿工的UXTO上了。