白话区块链入门085 | 比特币是如何维持平均10分钟出一个区块的_比特币:BSPT

作者 | 晏文春出品|白话区块链

之前有读者在《白话区块链入门038 |  比特币矿工一天赚多少钱?》留言区提问:

1、谁最先找出难题的答案,谁就获得了这一次的记账权,其中比特币系统出的难题是什么样子的?2、随全网算力的提高,难题的的难度系数亦提高,这是怎么实现的?

对于第一个问题,白话区块链曾在《一个经典的故事,让你3分钟搞懂比特币挖矿》一文给出过解释:

比特币系统给矿工出的难题就是让矿工找出符合要求的随机数。矿工构造区块,确定区块头中其他5个字段,另一个需要不断试错的变量就是随机数。只有符合要求的随机数才能召唤“神龙”。符合要求的意思是:对整个区块头取哈希值,使得该哈希值小等于难度目标(准确的说是小于目标值Target)。

Verto Exchange推出Web3执行机3EM:1月4日消息,基于Arweave生态的去中心化交易平台Verto Exchange宣布推出Web3 Execution Machine:3EM。3EM是一个安全的、增压的、多语言的SmartWeave合约执行环境,3EM的创建以安全性为重中之重,由于Arweave上的智能合约是惰性评估的,因此可以防止任何人将恶意代码注入另一个智能合约的执行路径中。

据悉,3EM评估合约的速度比Smart Weavev1快约75%(JavaScript Smart Weave合约需要(平均)2.60秒来评估,3EM在有缓存情况下评估同一个合约(平均)需要0.64秒,无缓存情况下为1.32秒)。目前,3EM支持用Solidity、Rust、C、JavaScript等语言编写的智能合约,这意味着用C语言编写的DeFi合约现在能够与用Rust编写的代币合约进行交互。[2022/1/4 8:23:21]

我们今天主要来回答第二个问题:比特币系统挖矿难度目标是什么,它是怎么调整的?

Paradigm联合创始人Matt Huang已加入支付公司Stripe的董事会:11月6日消息,Paradigm联合创始人兼管理合伙人Matt Huang已加入在线支付服务商Stripe的董事会,作为长期投资者和业内领先的加密专家,Matt的观点将对Stripe提供帮助。此前报道,Stripe正组建加密团队以构建Web3支付网络。[2021/11/6 6:35:01]

 01 什么是难度目标?

难度目标是比特币系统中调控挖出区块所用平均时间的参数,是区块头中6个字段之一。

比特币挖矿难度(Difficulty),是对挖矿困难程度的度量,挖矿难度越大,挖出区块就越困难。目标值(Target)与挖矿难度成反比。难度越高,目标值越小。而难度目标是目标值通过转化得到,是一个只有4个字节的字段(为了便于理解,本文将难度目标等同目标值处理)。比特币系统正是通过调整区块头中难度目标来控制挖出区块所需平均时间的。

Deeper Network:Bione Exchange未经官方授权强上DPR:Web3基础设施、去中心化网关Deeper Network(DPR)在推特上提醒称,加密货币交易所Bione Exchange强行上线DPR,并未与官方沟通,请投资者谨慎投资和交易。[2021/4/19 20:35:50]

目标值是个长度为256比特的字符串,换句话说目标值约有2^256种可能的取值。调整难度目标就是调整目标值在整个输出空间的占比。

举例说明:挖矿就如射击,所有射出去的子弹都会落在一个很大的靶子上。难度目标就是这个大靶子上圈出一个范围,这个范围越小,被射中的难度就越高。调节难度目标,就是调节这个圈在整个靶子上的占比。

金色相对论丨火币集团副总裁Will Huang:今年将提供更加多样的增值服务:在今日举行的金色相对论中,火币集团副总裁、火币钱包CEO Will Huang表示,2020 年火币钱包将通过三大发展规划,为全球用户打造最安全和领先的钱包产品。包括:坚持做安全易用的资产管理工具的初心;在合规的前提的下为用户提供更加多样的增值服务,包括法币交易数字资产、ETH2.0的Staking、第三方资产增益服务等;持续加强火币钱包多币种优势,将支持波卡、Kusama、Tezos 等热门主链。据悉,火币钱包最新版本已经支持了DASH,目前共支持 17条主链,多币种确实是火币钱包的一大优势。[2020/4/7]

挖矿算力增大,单位时间射击的次数就越多,目标范围被射中所需的时间就越短。反之,挖矿算力减小,目标范围被击中所需的时间就越长。而比特币系统追求的平均出块时间为10分钟,这时候就需要调整难度目标来实现。

 02 如何调整难度目标?

比特币系统是怎样调整难度目标的呢?在《白话区块链入门080 |数说比特币,了解比特币必须知道这10个数字》一文中,我们介绍了比特币系统每过2016区块(大约为14天时间),会自动调整一次难度目标。所有区块高度为2016整数倍的区块,系统就会自动调整难度目标。如果上一个难度目标调整周期(也就是之前2016个区块),平均出块时间大于10分钟,说明挖矿难度偏高,需要降低挖矿难度,增大难度目标(准确地说是目标值);反之,前一个难度目标调整周期,平均出块时间小于10分钟,说明挖矿难度偏低,需要缩小难度目标。

 03 难度目标的可调范围

比特币系统设定,难度目标上调和下调的范围都有4倍的限制。举例说明:假设上一个难度目标调整周期内的2016个区块,由于算力暴涨,只用7天就全部挖出来了,通过难度目标调整,将难度目标缩小一倍,可以将平均出块时间维持在10分钟左右,但如果算力暴涨,前2016个区块全部挖出只用了1天,那么难度目标最小只能调整为原来的四分之一。

 04 总结

比特币的算力是持续波动的,比特币系统通过难度目标的调整,使得平均出块时间维持在10分钟左右。难度目标和挖矿难度成反比,挖矿难度越大,难度目标越小。当区块高度为2016的整数倍时,比特币系统就会在该区块上,自动调整难度目标。如果上一个难度目标调整周期内,平均出块时间超过10分钟,那么降低挖矿难度,增大难度目标;反之则提高挖矿难度,减小难度目标。难度目标上调和下调的范围都有4倍的限制。

比特币每2016个区块(大约14天)调整一次挖矿难度,相比于BCH每个区块都调整(大约10分钟调整一次),有明显的滞后性。你认为是哪种调整方式更合理呢?为什么呢?欢迎在留言区分享你的观点。

——End——

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:15ms0-10:276ms