比特币挖矿多久产生一个区块?

比特币选择10分钟来产生区块,也就是1/600 BPS (Blocks/Sec),这个是根据具体设计而制定的, 也是人为的选择。而比特币的交易处理速度最高为:7 TPS (Transactions/Sec), 这个是整个交易验证机制、共识机制,和P2P通讯机制,以及代码实现后所达到的一个技术上限。相比而言,以太坊目前是1/20 BPS和20 TPS,维基链是1/10 BPS和1000+TPS。对于POW共识机制的公链来说,BPS是通过变更挖矿的难度系数来动态调节的。然而对于DPOS机制的公链,BPS是恒定的。

那么具体谈一下比特币的BPS设计选择来由: 由于比特币采用了POW共识机制,也就是人人都可以成为矿工参与挖矿,而且可以随时退出挖矿。这样就导致了整个网络里面参与挖矿的矿工算力是动态变化的。当参与挖矿人数少的时候,算力低,挖矿难度系数根据算法相应自动降低;反之,当参与挖矿人数增多,算力增强,挖矿难度系数会根据固定算法来自动提升。通过难度系数的调整来确保相对固定的出块时间。但是由于难度系数不是在实时调整的,而是根据设计和代码实现每隔了2016块调整的,也就是差不多2周的时间(假如说绝对均匀时间出块:2*7天*24小时/天*3600/小时/600秒/块 = 14*24*6=2016)所以调整难度系数有滞后,无法及时掌握总体算力的变化而调整,导致了每次算力调整后出块的时间有长有短,但是总体上是上下围绕10分钟波动的,而且不会有太大的偏差,也就是实现了一种统计学上的守衡。