主页 > imtoken钱包官方网址 > 比特币创世区块挖矿奖励挖矿是什么意思?

比特币创世区块挖矿奖励挖矿是什么意思?

imtoken钱包官方网址 2023-03-22 07:46:52

译者:申屠青青博士深圳大学国防科技重点实验室ATR新浪微博@我看听币

注:本文可随意转载,请留下译者信息,如果您觉得本文对您有用,请捐赠给译者,以便翻译更多比特币核心资料捐赠地址:1faVxBp2KmST98p3tJjx2MQP98JLLnF2Q

比特币在国内已经家喻户晓,但技术研究还没有得到有效开展。 大多数人都知道并理解它。 目前比特币圈内很多人都不太了解比特币能做什么。 一个重要的原因是,比特币的大部分核心资料都是英文的,很少有人能够从容地阅读如此复杂的英文资料。 我的博士论文的研究方向是翻译一些重要的资料,让更多业内人士在学习其英文技术的同时,更好地了解比特币。

本文主题为比特币区块技术资料、比特币创世区块挖矿奖励区块、挖矿原理、难度等,综合比特币威客官方上的诸多资料翻译而成。

比特币网络中的数据以文件的形式永久记录,我们称之为块。 一个区块是比特币最新的部分或全部交易的记录集,并且没有被之前的其他区块记录过。 一个街区可以想象成一座城市。 记录员日志中的一页(记录对房地产所有权的更改)或证券交易所的分类账。 在大多数情况下,新块被添加到记录的末尾(以比特币命名:

),一旦写入,就不能更改或删除。每个块记录在它被创建之前发生的所有事件

每个区块都包含一些或所有最近的交易、对先前区块的引用以及其他数据。 它还包括挖矿难度的关键——每个区块都是独一无二的。 没有正确的密钥,新块就无法发送到网络——”

“这个过程本质上是在竞赛中‘解决’当前区块的每个区块中的数学问题,但一旦找到有效的解决方案比特币区块挖矿奖励是多少,其他网络节点可以很容易地验证解决方案的正确性。对于给定的区块,一个区块可能有多个有效的解决方案 - 但要解决的块只需要一个解决方案

因为每解决一个区块,你都会得到一个新产生的比特币奖励。 每个区块包含一条记录,即有权接收比特币奖励的地址。 这条记录被称为生产交易,或者交易,往往是每个区块的第一笔交易产生每个区块50个比特币,每210,000个区块后减少一半(时间约为4年)

发送方在网络中广播比特币交易,所有试图解出区块的矿工节点收集这些交易记录,并将其添加到矿工节点正在解出的区块中

挖矿难度由比特币网络自动调整,达到平均每小时6个区块。 每2016个区块后(约两周),所有客户端将新区块的实际数量与目标数量进行比较,并根据差异的百分比调整目标HASH值,以增加(或减少)出块难度

因为所有块都包含对前一个块的引用,所以可以说所有现有块的集合形成了一条链。 然而,一条区块链有可能暂时分叉——例如,如果两个矿工同时为一个区块产生不同的有效解决方案,两者并不知道 P2P 网络会在短时间内消除这些分叉,并且链条中只有一个分支幸存下来

客户端接受“最长”的区块链为有效链,整条区块链的“”指的是难度最高的链,而不是区块数最多的区块链,这样可以防止有人制造大低难度区数 区块故意分叉区块链,让网络接受它为“最长”的区块链

挖矿比特币是骗局吗_比特币区块挖矿奖励是多少_比特币挖矿是记账吗

(译者注:以下非标准块内容来自,稍作修改)

非标准区块:指包含非标准交易的区块交易是否标准,请参考比特币客户端源码中的IsStandard()函数 联合将合法的非标准交易添加到区块中形成非标准块,客户端在计算最长难度的区块链时会考虑非标准块。

(1) 目前有多少块?

(2) 最大块数是多少?

没有最大数量的区块以平均每10分钟一个的速度连续添加到区块链的末端

(3) 2100万个比特币都挖完了,还没有最大数量吗?

是的,区块是用来确认某个时间交易存在的 即使所有的比特币都被开采出来,交易仍然会发生 所以只要人们还在交易比特币,区块仍然会被创建

(4) 生成一个区块需要多少时间?

没有人能准确回答这里是一个可以告诉你可能需要多长时间的人

(5) 如果我计算完一个块的 1% 进度...

如果不解决 1% 的块,您将不会在解决块方面取得任何进展。 工作 24 小时后,您解决问题的机会与 24 小时前相同。 如果你不相信比特币,那就是众所周知的赌徒谬误。

这就像同时抛 53 枚硬币,让它们都正面朝上,每次尝试成功的机会都是一样的。

(6) 我能找到更多的技术细节吗

挖矿比特币是骗局吗_比特币区块挖矿奖励是多少_比特币挖矿是记账吗

在下文中,有更多的技术细节

比特币创世区块挖矿奖励区块是指区块链的第一个区块。 当前比特币客户端版本设置区块号为0,之前版本设置区块号为1。

以下是比特币创世块挖掘奖励块的表示,因为它出现在之前比特币代码的注释中(),第一个代码段定义了创建块所需的所有变量第二个代码段是标准块类格式并且还包含来自第一个代码段的数据的缩短版本

coinbase 参数(参见上面的十六进制)包含以下段落:

“2009年1月3日,总理第二次紧急救助濒临倒闭的银行”是当天头版文章的标题。 这应该是该区块创建于2009年1月3日或之后的证明,也是对银行体系采用部分准备金制度造成的不稳定的解释。

Bitcoin Genesis Mining Reward 区块奖励区块不能花费,因为 Bitcoin Genesis Block Mining Reward 区块是用代码表示的(这种巧合可能是故意的),它的 50BTC 奖励仍然发送到地址:。

(译者注:挖出比特币创世区块的奖励无法花费,原因如下:比特币客户端将区块和交易分别存储在两个数据库中,当客户端发现区块数据库为空时,使用代码来直接生成一个比特币创世块挖矿奖励块,但是并没有生成这个交易,所以客户端中的交易数据库并没有发送到上面的地址,所以一旦收到,收益就会被花费掉,交易会被拒绝,所以50没有任何确认就不能花费硬币。这种情况很可能是中本聪故意的)

比特币创世块挖矿奖励块的原始十六进制看起来是这样的:

比特币创世块挖矿奖励块的JSON版本如下(译者注:JSON表示是译者为了方便读者对比研究而加上的):

共享交易数据库 这些节点参与基于比特币协议的比特币网络。区块链包含每

根据这些信息,任何时候都可以找到

每个区块都包含前一个区块的值,这就构成了一个从当前区块到当前区块的区块链。 每个区块必须按照时间顺序跟在前一个区块之后,因为如果不知道前一个区块的 HASH 值,就无法生成当前区块。 更改已经在区块链中一段时间​​的块在计算上是不可行的,因为如果它被更改,则之后的每个块都必须随之更改。 这些属性使比特币变得非常困难。 区块链是比特币最伟大的创新。

如果一个区块是最长区块链的最后一个区块,诚实矿工只会根据这个区块生成后续区块(创建新区块时引用该区块)。 “长度”计算为链的组合难度而不是块的数量,尽管这种区别仅在防御少数潜在攻击时有用如果其中的所有块和交易都是有效的,则块链是有效的而且它必须从比特币创世区块挖矿奖励区块开始。

比特币挖矿是记账吗_挖矿比特币是骗局吗_比特币区块挖矿奖励是多少

对于区块链中的任何区块,只有一条通往比特币创世区块挖掘奖励区块的路径。 但是,从比特币创世块的挖矿奖励块开始,可能会出现分叉。 当两个区块之间的时间差只有几秒时,可能会产生包含一个区块的分叉。 当出现上述现象时,矿工节点会根据收到区块的时间,在较早收到的区块的基础上继续挖矿。先出现的区块的后续区块会被纳入主链,因为这条区块链是更长。 修正了需要向后兼容的程序错误后,出现了比较严重的分叉。

短区块链(或有效区块链)中的区块无效。 当比特币客户端转向另一条长区块链时,该短区块链中的所有有效交易将被重新加入交易队列池,并被计入另一区块中短区块链中区块的收益不会出现在长链,所以这些好处实际上都失去了。 这就是比特币网络强化的 100 个区块成熟时间存在的原因。

短链中的区块通常被称为“孤儿”区块。 这是因为长链中的生产交易没有父块,因此这些生产交易在交易列表 RPC 调用中表现为孤儿。 矿池误解了这些信息并将这些块称为“孤儿”,而实际上这些块有父块,可能还有子块。

因为一个区块只能引用一个父区块,不可能合并两条分叉的区块链。

您可以将区块链算法用于非金融用途,请参见:。

区块链以泛洪协议广播到网络上的所有节点。 请参阅:

Time),意味着矿工在生成一个新区块后必须等待100个区块才能获得25BTC的收益,然后才能使用这些币; 这100个区块时间就是收到100个确认的时间,这就是为什么要设置这个区块成熟时间的原因?如果这个区块在分叉的时候变成了孤立区块,那25个BTC的收益就会消失。 如果矿工挖到比特币后可以马上花掉,会导致后续一系列的接收者丢失比特币。 因此,设置了 100 次确认的限制之后,造成分叉的可能性很小。 即使出现分叉,也只会影响矿工的收益,不会影响其他人

在挖矿的时候,你经常会散列区块头。 您正在挖掘的区块也会不时更新。 区域标题包含以下数据项:

更新软件后,它分配了一个新的版本号

基于一个区块中所有交易的 256 位 HASH 值。

自 00:00 UTC 以来的当前时间戳(以秒为单位)

A 生成HASH时(HASH的随机数每次都需要增加)

一个区块包含很多交易,因为所有的交易都不能直接HASH,所以通过Merkle根节点间接HASH,HASH一个包含一个交易的区块和HASH一个包含10000笔交易的区块所花费的时间是一样的。

挖矿比特币是骗局吗_比特币区块挖矿奖励是多少_比特币挖矿是记账吗

目标HASH值的压缩格式是一种特殊的浮点编码类型。 第一个字节是指数(只用到最低5位),最后3个字节是尾数比特币区块挖矿奖励是多少,可以表示一个256位的值。 区块头的 SHA256 值必须小于或等于目标 HASH 值,区块才能被网络接受。 目标 HASH 越低,产生新区块的难度就越大。

上面的大部分数据项对于所有用户都是一致的,只是时间戳有所不同。 (译者注:本段以下内容出自:)如果当前区块的时间戳大于前11个区块的平均时间戳且小于“网络调整时间(Network-AdjustedTime)”+2小时,则被认为是 时间戳有效 其中“网络调整时间”是指所有连接到您的节点的平均时间。 当节点A连接到节点B时,A从B获取一个UTC标准时间戳,A先将其转换为本地UTC标准时间并保存。 网络调整时间等于所有节点的本地UTC时间+所有连接节点的平均偏移量。 值,但是网络时间绝不会调整为超过本地系统时间超过 70 分钟。

Nonce随机数通常是不同的,但严格线性增长,从0开始,每次HASH增长,当Nonce溢出时(这种情况经常发生)生产交易的extraNonce项会增长,这会改变根节点默克尔树

假设对于这些数据项,人们往往会单独生成相同序号的哈希值 。 最快的 CPU 通常获胜。但是,两个人基本上(或几乎)不可能生成相同的 Merkle 根节点,因为区块中的第一笔交易是生产交易并“发送”你唯一的比特币地址,因为你的区块是和别人的块不一样,生成的HASH肯定(大约)不一样

比特币使用:SHA256(SHA256(区块头))计算HASH,但要注意字节顺序

例如:下面的python代码用于计算某个区块的HASH值,使用2011年6月区块号125552的最小HASH在上述6个数据项之上构建区块头,并使用小十六进制价值端到端连接

注意:实际的HASH值是一串256位的值,头部有很多0。 存储零移动到最后。 例如:如果表示为字节串 - 最低(或开始)字节串地址显示最小位的个数,这是小端表示。输出将HASH值显示为大端值,因为数字的表示通常是 - 第一个数字是最大的数字,从左到右阅读

另一个例子:没有任何优化、线程或错误检查的纯 C 版本

下面是相同的例子,用 PHP 编写,没有任何优化。

难度是衡量挖矿难度的指标,即计算出满足给定目标的 HASH 值的难度。 比特币网络存在全球区块难度。 有效区域必须有一个HASH值,并且HASH值必须小于给定的目标HASH。 矿池也会有一个自定义的共享难度来设置生成共享的最低难度限制。 .

衡量难度的方法有很多种,得出的 difficulty_1_target 也可能不同。 传统上表示一个HASH值,前32位为0,后面的部分为1(称为:矿池难度或pdiff),比特币协议将目标HASH表示为固定精度的自定义浮点类型。 因此,比特币客户端使用这个值来估计难度(称之为:bdiff)

难度往往存储在区块中,每个区块存储一个十六进制目标HASH(称为:Bits)的压缩表达式。 可以使用预定义的公式计算目标 HASH。 例如:如果区块中的压缩目标HASH为0x1b0404cb,则16进制的目标HASH如下:

而0xFFFF0000是比特币网络使用的浮点编码类型,后面的数字被缩短

比特币挖矿是记账吗_挖矿比特币是骗局吗_比特币区块挖矿奖励是多少

这里有一个快速计算比特币难度的方法,它的算法使用修改后的泰勒序列(你可以在维基百科上看到教程)并依靠记录来转换难度计算。

如果想看看上面一般难度计算的数字原理,下面是python代码:

通过即可获得当前难度,通过该难度可获得下一个难度。 您可以查看难度的变化。

难度根据前 2016 个块的生成时间每 2016 个块更改一次。 预计每 10 分钟生成一个块,因此生成 2016 个块需要 2 周的时间。 如果第一个 2016 块是在两周前生成的,则难度会降低; 否则,难度会增加。

为了找到新的区块,区块的HASH值必须小于目标HASH值,目标HASH值实际上是02^256-1之间的一个随机数。 难度1的offset为:

在难度 D 下,我们期望计算出一个新区块的哈希数是

难度设置是每10分钟出一个块的速度生成2016个区块,所以我们在600秒内计算(D * 2^48 / 0xffff) HASH,也就是生成2016个区块的网络HASH率(算力)的是

上面的公式有更好的精度

难度1下,算力为7Mhashes/秒。 译者在翻译这篇文章的时候,难度是5,006,860,589,意思是找到之前2016个区块的平均算力:35.840PHash/s。

可以使用以下公式估算找到块的平均时间:

其中difficulty是你矿机算力当前的难度算力,hashes/s是时间单位是你找到的两个区块之间的平均时间。 例子:用Python计算算力为1Ghashes/s的矿机,在20000时很难出新块(其中**表示索引):

含义:找到一个新区块需要将近 1 小时

,这里有一些统计数据可以帮助您预测收入。

请记住:这只是一种可能性,并不能保证你每天都会找到新的区块。建议加入矿池,通过分享区块收益获得稳定和长期的收益