一秒通1MT.CN一秒通1MT.CN

理财、金融、保险、贷款、虚拟货币
等知识简单易懂一秒就通!

比特币和挖矿(什么是比特币挖矿)

比特币是系统自动生成的矿工';完成分配过程的奖励。矿工在这里扮演货币发行者的角色,他们获取比特币的过程也被称为"采矿"。

2022年9月24日

,人民';中国银行发布通知,进一步防范和应对虚拟货币交易中的投机风险。通知指出,虚拟货币不具有与法定货币同等的法律地位。

温馨提示:以上内容仅供参考,不做任何建议;投资有风险,入市需谨慎。

响应时间:2022

-12-17。请以平安银行在官网公布的最新业务变动为准。

区块链可以看作是记录所有交易的公共通用账本(清单),比特币网络中的每一个参与者都将其视为所有权的权威记录。

比特币没有中心组织,几乎所有完整的节点都有一份公共账本。这个总分类账可以被视为一个认证的记录。到目前为止,还没有一次对主干网区块链的成功攻击,一次也没有。

通过创造新的区块,比特币以一定但递减的速率被铸造出来。。大约每十分钟产生一个新块,每个新块都伴随着一定数量的新比特币从无到有。每开采21万块需要4年左右,货币发行率降低50%。

2016年的某个时候,在第420,000块之后挖掘出",降为12.5比特币/块。在第1323万块(2137年发掘)之前,新币的发行速度将"减半"指数增长64倍。。届时,每块发行的比特币数量将成为比特币的最小货币单位,——1丛。最终,1344万块之后,20.99999997.69亿丛比特币将全部发行完毕。换句话说,到2140年左右,将会有将近2100万个比特币。之后,新区块不再包含比特币奖励,矿工';收入来源于交易手续费。

每个节点接收到事务后,会在全网广播前检查这些事务,并在接收时按照相应的顺序进行。,为有效的新事务创建一个池(事务池)。

在验证每一笔交易时,每个节点都需要参考一长串标准:

交易的语法和数据结构必须正确。

输入和输出列表都不能为空。

事务的字节大小小于MAX_BLOCK_SIZE。

每个产值,以及总金额,必须在指定的范围内(少于2100万币。大于0)。

没有哈希等于0且n等于-1的输入(不应中继coinbase事务)。

nLockTime小于或等于INT_MAX。

事务的字节大小大于或等于100。

交易中的签名数应小于签名操作数的上限。

解锁脚本(Sig)只能将数字推入堆栈。,并且锁脚本(Pubkey)必须符合isStandard的格式(会拒绝不标准的交易)。

池或主分支块中必须存在匹配的事务。

对于每个输入,如果引用的输出存在于池中的任何事务中,则该事务将被拒绝。

对于每个输入,在主分支和事务池中找到引用的输出事务。如果输出事务缺少任何输入。,该事务将成为一个孤立的事务。如果匹配的事务没有出现在池中,它将被添加到隔离事务池中。

对于每个输入,如果引用的输出事务是coinbase输出。,输入必须至少获得COINBASE_MATURITY(100)个确认。

对于每个输入,引用的输出必须存在且未被消耗。

使用引用的输出事务获取输入值。,并检查每个输入值和总值是否在指定范围内(小于2100万个硬币,大于0)。

如果输入值之和小于输出值之和,事务将被中止。

如果交易成本太低,无法进入空区块,交易将被拒绝。

每个输入解锁脚本都必须根据对应的输出锁定脚本进行验证。

以下挖掘节点被命名为挖掘节点

挖掘节点总是在监听传播到比特币网络的新块。这些新添加的块对于挖掘节点具有特殊的意义。矿工之间的竞争随着新块的扩散而结束,就像宣布谁是最后的赢家。对于矿工来说,得到一个新的积木意味着参与者赢了,他们输了比赛。但是,一轮比赛的结束也代表着下一轮比赛的开始。

验证交易后,比特币节点会将这些交易添加到自己的内存池中。内存池也称为事务池。一个,用于临时存储尚未添加到块中的事务记录。[XY002][XY001]节点A需要为内存池中的每个事务分配一个优先级,选择优先级较高的事务记录来构建候选块。

事务希望成为"更高的优先级"。需要满足的条件:优先级值大于57,600,000,该值的生成依赖于三个参数:一个比特币(即1亿丛),一天的年龄(144块),交易大小250字节:

Highpriority100,000,000Satoshis*144blocks/250bytes=57,600,000

用于存储块中事务的前50K字节保留给更高优先级的事务。在填充这50k字节时,节点将优先考虑这些优先级最高的事务,而不管它们是否包括矿工';收费与否。这种机制使得高优先级事务甚至零矿工';费用,也可以先治疗。

然后,挖掘节点A将选择包含最小挖掘者的那些事务';的费用,并根据"矿工';每千字节的费用",并优先考虑与高矿工的交易';填充剩余区块的费用。

如果块中还有剩余空间,挖掘节点可以选择那些不包括矿工的事务';费用。一些矿商将尽力整合那些没有矿商的交易';费用,而其他人可能会选择忽略这些交易。

块填满后,内存池中的剩余事务将成为下一个块的候选。因为这些事务仍然在内存池中,所以当新的块被添加到链中时,这些事务引用的UTXO深度(即事务"阻止年龄")也会增加。。因为事务的优先级值取决于"阻止年龄"由它输入,这个事务的优先级值也增加了。最后,一个零矿工的优先值';的收费交易可能满足高优先级的阈值,并被免费打包到块中。

[Xy001]UTXO(未用交易输出):每笔交易都有若干笔交易输入,即资金来源,也有若干笔交易输出,即资金去向。一般而言每一笔交易都需要投入并产生产出,而产出就是"未使用的事务输出",也就是UTXO。

积木时代阻止年龄"UTXO的是自区块链记录UTXO以来经历的块数,即区块链中此UTXO的深度。

块中的第一个事务是一个特殊事务,称为硬币创建事务或硬币库事务。。该事务由挖掘节点构成,用于奖励矿工的贡献。假设此时一个区块的奖励是25个比特币,A的挖矿节点会创建一个"支付25.1比特币给A'地址(包括矿工';0.1比特币的手续费)"。,将生成交易的奖励发送到您的钱包。a挖出区块获得的奖励金额是coinbase奖励(25个全新比特币)和所有交易矿工的总和';整块收费。

一个节点构建了一个候选块。然后就轮到A'矿机到"我的这种新的区块和解决工作量证明算法,使这种区块有效。比特币挖掘过程中使用SHA256哈希函数。

最简单的来说,挖掘节点不断尝试。直到它找到使生成的散列值低于特定目标的随机调整。hash函数的结果是无法预先知道的,也没有模式可以得到一个具体的hash值。比如你一个人在屋里打台球,白球从a点到达B点。但是一个人推门进来,看到了B点的白球,但是他没有';不管怎样,我不知道如何从A地到B地。hash函数的这一特性意味着获取哈希值的唯一方法是不断尝试,每次都随机修改输入,直到出现合适的哈希值。

需要以下参数

?block的版本

?最后一个块的哈希值:prev_hash

?要写入的事务的哈希树的值:merkle_root

?更新时间:ntime

?当前难度:nbits

挖矿的过程就是找到x使得

sha256(sha256(版本prev_hashmerkle_rootntimenbitsx))目标

上式中x的取值范围为0~2^32,根据当前难度即可获得目标。

举个例子,想象一下,人们不断地掷出一对骰子来获得一个少于一定点数的游戏。第一局,目标是12。只要你不';不要扔两个六。,你会赢的。那么下一局的目标就是11。玩家只能投10分以下才能赢,但也很简单。如果几局后目标减少到5。现在有50%的几率上述骰子加起来超过5分,所以无效。随着目标越来越小,如果你想赢,掷骰子的次数将呈指数增长。最终,当目标是2(最小可能点数)时,平均投36次或2%次,只有一个人能赢。

如上所述,目标决定难度,进而影响求解工作量证明算法所需的时间。。那么问题来了:为什么这个难度值是可调的?谁来调节?怎么调整?

平均每10分钟产生一个比特币块。这是比特币的心跳,是货币发行率和交易速度的基础。不仅仅是短期内。相反,它必须保持几十年不变。在此期间,计算机性能会迅速提高。此外,参与挖掘的人和计算机也会不断变化。为了保持每10分钟产生一个新块的速度,挖掘的难度必须根据这些变化进行调整。实际上难度是一个动态参数,会定期调整,达到每10分钟一个新块的目标。简单来说,难点就是保持每10分钟新块的速率,不考虑开采能力。

因此,在完全分散的网络中,这种调整是怎么做到的?难度的调整在每个完整的节点中独立自动地发生。每2016块(2周内生成的块)中的所有节点都会调整难度。。难度的调整公式是将最近的2016块所用的时间与20160分钟(两个星期,即这些块以10分钟的速度所用的预期时间)进行比较得出的。根据实际持续时间与预期持续时间的比率来调整难度(或变得困难或容易)。。简单来说,如果网络发现块生成速率快于10分钟,会增加难度。如果发现慢于10分钟,难度会降低。

为了防止难度变化过快,每期的调整幅度必须小于一个因子(值为4)。。如果要调整的范围超过4倍,则调整4倍。因为下一个2016区块的周期不平衡会继续存在,下一个周期会进行进一步的难度调整。。因此,可能需要几个2016的块周期来平衡哈希计算能力和难度的巨大差异。

比如目前节点A正在挖掘277,316块,一旦完成挖掘节点A的计算,,立即将该块发送给它的所有邻居节点。在接收和验证这个新块之后,这些节点将继续传播这个块。当这个新块在网络中传播时,每个节点会将其作为第277,316个块(父块是277,315)添加到其自己节点的区块链副本中。当挖掘节点接收并验证这个新块时,它们将放弃先前构建这个具有相同高度的块的计算。,并立即开始计算区块链中的下一个块。

比特币共识机制的第三步是通过网络中的每个节点独立检查每个新块。当一个新的块在网络中传播时,每个节点将它转发给它的节点。,将进行一系列测试来验证它。这确保了只有有效的数据块才会在网络中传播。

每个节点对每个新块的独立验证保证了矿工无法作弊。在前一章中,我们看到矿工如何记录交易。来获得这个街区创造的新比特币和交易费。为什么唐';t矿工为自己录一笔交易获得几千比特币?这是因为每个节点根据相同的规则检查块。无效的coinbase事务将使整个块无效。,这将导致该冻结被拒绝,因此该交易不会成为总帐的一部分。

比特币去中心化的共识机制的最后一步,是在最大工作量证明下,将区块组装成链。一旦节点验证了新的块,它将尝试将新的积木连接到现有的区块链上,并进行组装。

节点维护三种类型的块:[XY002][XY001]。第一种连接主链,[XY002][XY001]。第二种是主链分支(备用链)。

第三是在已知链中没有找到已知的父块。

有时,由新块扩展的区块链不是主链,这一点我们将在下面看到"区块链分叉"。

如果节点收到有效块,但在现有区块链中找不到其父块,则该块被视为"孤立块"。孤儿被保留在孤儿池中,直到它们的父块被节点接收。一旦接收到父块并将其连接到现有的区块链。该节点将从孤立块池中取出孤立块,并将其连接到其父块,作为区块链的一部分。当两个块在短时间间隔内被挖出时,节点可能会以相反的顺序接收,此时就会出现孤块现象。

选择最难的区块链后,所有节点最终在全网达成共识。随着更多的工作量证明加入到链中,链中的暂时差异最终会得到解决。挖掘节点通过"投票"当他们挖出一个新块,延伸出一个链条,这个新块本身就代表了他们的一票。

因为区块链是一种分散的数据结构,所以它在不同的副本之间并不总是一致的。块可能在不同的时间到达不同的节点。,导致节点具有不同的区块链视角。解决方案是每个节点总是选择并试图扩展代表累积最大工作量证明的区块链,即最长或累积最多的难度链。

当两个候选块想要同时扩展最长的区块链时,,将发生分叉事件。在正常情况下,当两个矿工在短时间内制定出工作量证明解决方案时,就会出现分叉。两位矿工一在各自的候选区块中找到答案,就立即展开他们的"获胜"阻止网络。,先扩散到邻居节点再扩散到全网。接收到有效块的每个节点将合并它并扩展区块链。如果该节点随后接收到另一个候选块,并且该块具有相同的父块,则该节点将该块连接到候选链。。结果,一些节点接收到一个候选块,而其他节点接收到另一个候选块。这时,出现了两个不同版本的区块链。分叉前

分叉开始

我们看到两名矿工几乎同时在两个不同的街区挖掘。为了便于跟踪这一分叉事件,我们假设有一个来自加拿大的标为红色的区块和一个来自澳大利亚的标为绿色的区块。

假设加拿大的一名矿工找到了"红色"块并扩展了"蓝色"父块。几乎与此同时,一名澳大利亚矿工发现了解决这个"绿色"块并扩展了"蓝色"阻止。。所以现在我们有两个区块:一个是"红色"来自加拿大的区块;另一个是"绿色"来自澳大利亚。两个块都是有效的,都包含有效的工作负载证明解决方案,并扩展了相同的父块。这两个块可能包含几乎相同的事务。,只是交易顺序有点不同。

比特币网络中与加拿大相邻的节点(在拓扑上相邻,但在地理上不相邻)将收到"红色"先分块,建立一个累积难度最大的块。"红色"块是这个链中的最后一个块(蓝红色),忽略"绿色"稍后到达的块。相反,更靠近澳大利亚的节点将决定"绿色"块获胜,并将其作为延伸区块链(蓝绿色)的最后一块。,忽略了"红色"几秒钟后到达的块。那些接收"红色"blockfirst会立即将此块作为父块来生成新的候选块,并尝试找到此候选块的工作负载证明解决方案。类似地接受"绿色"block将开始以这个块作为链的顶点生成新的块,并扩展链。

分叉问题几乎总是在一个块中解决。网络中的一些计算能力集中在"红色"块作为父块。在其上创建一个新块;计算能力的另一部分集中在"绿色"阻止。即使计算能力在两个阵营之间平均分配,一个阵营总会在另一个阵营之前找到工作负载证明解决方案并传播出去。在这个例子中,我们可以做一个类比如果矿工在一个"绿色"阻止查找粉色"屏蔽并扩展区块链(蓝绿色粉色),他们会立刻传播这个新的屏蔽,整个网络都会认为这个屏蔽是有效的,如上图所示。

选择了"绿色"block作为上一轮的赢家,会直接把这个链条延长一个block。然而,那些选择"红色"作为获胜者的区块现在将看到两条链:蓝绿色粉色"和"蓝红色"。如上图所示这些节点会根据结果将蓝绿粉链设置为主链,蓝红链设置为备用链。这些节点接受了新的和更长的链,并被迫改变他们原来对区块链的看法,这被称为链重新一致。。因为"红色"当父块不再在最长的链上时,它们的候选块变成了"孤立块",所以现在任何原本想延长区块链的矿工蓝红色"链条会停下来。全网公认的"蓝绿色粉色"链为主链。"粉色"块是这个链中的最后一个块。所有挖掘者立即将他们生成的候选块的父块切换到"粉色"延长"蓝绿色粉色"链条。

理论上,两个块的分叉是可能的。这发生在因为之前的分歧而对立的矿工身上,几乎同时找到了两个不同区块的解。但是,这种情况发生的概率很低。单块分叉每周都会发生,双块分叉非常少见。

比特币将区块间隔设计为10分钟,这是在更快的交易确认和更低的分叉概率之间的折中。较短的块生成间隔会使交易清算更快,同时也会导致更频繁的区块链分叉。相反,较长的间隔将减少分叉的数量。,但会导致更长的清算时间。

比特币挖矿是通过计算机硬件计算比特币的位置并获取的过程。

接下来我重点讲一下什么是比特币挖矿,以及它的其他含义:

1。挖矿是在比特币系统中记录数据的激励过程。在比特币系统中,个人用户通过使用CPU或GPU进行哈希运算,计算出特定的哈希值后,有权打包分块。

为了奖励这位打包区块的用户,系统会给予一定数量的比特币作为奖励。因为这个过程非常类似于"采矿"现实生活中,大多数人称之为挖矿。除了比特币,其他电子虚拟货币也可以通过挖矿奖励获得。,比如以太坊,门罗币等等。

2。指的是争夺记账权,然后获得一个比特币的奖励。比特币是有限的,系统会每10分钟左右记账一次。用户需要使用自己的矿机来争夺记账权。矿机是指专门用于开采比特币的电脑。这种

电脑有专业的挖矿芯片,运行特定的算法进行计算要消耗很大的电量。

书面定义难以理解是正常的。我可以用一个例子来说明什么是挖矿:

不管我们现在有多少钱,都有专人记账。比如你卡里有一万块钱,银行会第一个帮你记账,你花了多少钱,花在哪里都有记录。。但在古代,就不一样了。没有金融体系,他们的货币非常简单。他们只是发现了一些大石头,并把它们作为货币放在那里。每次他们要交易,都要把所有人叫来,宣布这块石头现在属于谁。也就是说,那时候每个人都要记账,记得每个人';记住这笔钱属于谁。其实采矿也是一样的性质。比特币总数为2100万。严格来说应该是无限接近2000万但不到2000万。。过去使用手工记账,而"采矿"是由电脑完成的。在这里我说"电脑"而不是"电脑",这是本质上的不同。综上所述,这大概就是比特币挖矿的意思。希望能帮到你

比特币共识机制的第三步是通过网络中的每个节点独立检查每个新块。当一个新的块在网络中传播时,每个节点将进行一系列测试来验证它,然后将其转发给它的节点。这确保了只有有效的数据块才会在网络中传播。

独立验证也保证了诚实矿工产生的区块可以纳入区块链,从而获得奖励。不诚实的矿工产生的块将被拒绝,这不仅使他们失去了奖励,也浪费了寻找工作量证明解的机会。,导致其电量损失。

当一个节点收到一个新的块时,它将对照一长串标准来验证该块。如果未能通过验证,该块将被拒绝。。这些标准可以在比特币核心客户端

的CheckBlock函数和CheckBlockHead函数中获得,其中包括:

Whydon';t矿工为自己录一笔交易获得几千比特币?

这是因为每个节点根据相同的规则检查块。无效的coinbase交易会使整个块无效,从而导致该块被拒绝,因此该交易不会成为总帐的一部分。。矿工必须建立一个完美的区块,基于所有节点共享的规则,并根据正确的工作量证明的解决方案进行挖掘。他们不得不花费大量的电力去开采来做到这一点。如果他们作弊,所有的电和努力都白费了。。这就是为什么独立核查是分权共识的重要组成部分。

比特币去中心化的共识机制的最后一步,是在最大工作量证明下,将区块组装成链。一旦节点验证了新的块,它将尝试将新的积木连接到现有的区块链上,并进行组装。

节点维护三种类型的块:第一种连接到主链,第二种从主链分支(备用链),最后一种是在已知链中没有找到已知父块。。在验证过程中,一旦发现不符合标准的东西,验证就会失败,所以该块会被节点拒绝,所以不会加入任何链。

任何时候,主链都是积累困难最多的区块链。通常主链也是包含最多块的链,除非有两个长度相等的链,并且其中一个具有更多工作负载证明。主链也会有一些分支,这些分支中的嵌段和主链上的嵌段是"兄弟"街区。这些块是有效的,但它们不是主链的一部分。。保留这些分支的目的是,如果其中一个分支被扩展,并且在未来的某个时间点难度值超过了主链,那么后续的块将引用它们。

如果一个节点接收到一个有效的块,但是在现有的区块链中没有找到它的父块。那么这个块被认为是"孤立块"。孤儿被保留在孤儿池中,直到它们的父块被节点接收。一旦接收到父块并将其连接到现有区块链,节点将从孤立块池中取出孤立块,并将其连接到其父块。让它成为区块链的一部分。当两个块在短时间间隔内被挖出时,节点可能会以相反的顺序接收,此时就会出现孤块现象。

选出最难的区块链后,所有节点最终在全网达成共识。随着更多的工作量证明加入到链中,链中的暂时差异最终会得到解决。挖掘节点通过"投票"当他们挖掘出一个新的区块,延伸出一个链条。新的街区本身代表了他们的投票。

因为区块链是一种分散的数据结构,所以它在不同的副本之间并不总是一致的。数据块可能在不同的时间到达不同的节点,从而产生不同的节点区块链全景。

解决方案是每个节点总是选择并试图扩展代表累计最大工作量证书的区块链,即最长或最大累计工作链。。通过累积链上每个块的工作负载,节点获得建立该链要支付的工作负载证明的总量。只要所有节点选择累计工作时间最长的区块链,整个比特币网络最终会收敛到一致状态。分歧是不同区块链之间的暂时差异。当更多的块被添加到一个分叉时,这个问题就解决了。

有人提出,由于全球网络中的传输延迟,本节中描述的区块链分叉将自动发生。

但是,倒三角形块不会被丢弃。。它链接到星型链的父块,形成备用链。尽管节点X认为它已经正确地选择了获胜链,但是它也将保存"迷失"链,以便"迷失"链条最终会"赢"如果可能的话,它也有必要的信息重新包装。

这是链的新共识,因为这些节点被迫修改它们在区块链上的位置,并将它们自己包括在更长的链中。任何从事扩展星形倒三角形的矿工现在都会停止这项工作,因为他们的候选人是一个"孤儿>;因为他们的父母';倒三角不再是最长的链条。

";倒三角形"被重新插入内存池以包含在下一个块中,因为它们所在的块不再在主链中。

全网回到单链状态。,星形-三角形-菱形,"钻石"成为链中的最后一个块。所有矿工立即开始用"钻石"作为母块来扩展这个星形-三角形-菱形链。

理论上,两个块的分叉是可能的。这发生在因为之前的分歧而对立的矿工身上,几乎同时找到了两个不同区块的解。

但是,这种情况发生的概率很低。单块分叉每周都会发生,双块分叉非常少见。。比特币将阻塞间隔设计为10分钟,这是在更快的交易确认和更低的分叉概率之间的妥协。较短的块生成间隔会使交易清算更快,同时也会导致更频繁的区块链分叉。相反,较长的间隔将减少分叉的数量。,但会导致更长的清算时间。[XY002][XY001]自2012年以来,比特币挖矿开发了一种解决块头基本结构限制的方案。在比特币的早期,矿工可以通过遍历Nonce来挖掘出一个块,以获得符合要求的哈希。

难度增加后,矿工经常尝试40亿值仍然没有块。但是,这可以通过读取块的时间戳并计算经过的时间来轻松解决。因为时间戳是块头的一部分,所以它的改变可以使矿工用不同的随机值再次遍历它。。当挖矿硬件速度达到4GH/s时,这个方法就变得越来越难,因为随机数一秒就用完了。

当ASIC矿机出现并迅速达到TH/s的哈希速率时,挖矿软件试图寻找有效块。需要更多空间来存储nonce值。您可以稍微延迟时间戳,但是如果将来移动得太远,该块将会失效。

块头需要新的"改变"在信息源中。。解决方案是使用coinbase事务作为随机值的额外来源。因为coinbase脚本可以存储2-100字节的数据,所以矿工们开始使用这个空间作为额外随机值的来源。允许它们探索更大范围的块头值以找到有效块。这个coinbase事务包含在merkle树中,这意味着coinbase脚本的任何改变都会导致Merkle根的改变。

八个字节的额外随机数,加上四个字节的"标准"随机数,允许矿工在不修改时间戳的情况下每秒尝试2.96种可能性(8后跟28个零)。如果未来矿工通过了以上所有可能,也可以通过修改时间戳来解决。。同样,coinbase脚本中有更多的额外空间,为以后随机数的扩展做准备。

比特币的共识机制意味着矿工(或矿池)利用自己的计算能力试图作弊或破坏是非常困难的,至少在理论上是如此。。我们前面说过,比特币的共识机制依赖的前提是,大部分矿工为了自身利益最大化,会老老实实的挖矿来维持整个比特币体系。然而当一个或一群在整个系统中拥有大量计算能力的矿工出现时,他们可以攻击比特币的共识机制,以达到破坏比特币网络安全性和可靠性的目的。

值得注意的是,共识攻击只能影响整个区块链的未来共识。,或者说,最多能影响过去几个街区的共识(最多能影响过去10个街区)。而且,随着时间的推移,篡改整个比特币区块链的可能性越来越低。

理论上,区块链分叉可以变得很长,但实际上,实现非常长的区块链分叉需要很大的计算能力。随着整个比特币区块链的逐渐增长,过去的区块基本上可以认为是无法被分叉篡改的。

同时共识攻击不会影响用户';的私钥和加密算法(ECDSA)。

共识攻击可以';t从其他钱包中窃取比特币,无签名支付比特币,重新分配比特币,改变过去的交易或改变比特币持有记录。。共识攻击可能造成的唯一影响是影响最近的块(最多10个)和通过拒绝服务影响未来块的生成。

共识攻击的典型情况是"51%的攻击"。想象一下这样的场景。一群矿工控制了整个比特币网络51%的计算能力,他们联合起来攻击整个比特币系统。因为这群矿工可以产生大部分的区块,他们可以达到"双倍付款"通过故意在区块链创建一个分叉,或者通过拒绝服务来阻止特定的交易或攻击特定的钱包地址。

区块链分叉/双重支付攻击是指攻击者否认最近的一次交易。并在本次交易前重新构建一个新的区块,从而生成一个新的分叉,进而实现双重支付。在保证足够计算能力的情况下,攻击者可以一次性篡改最近的六个或更多块,从而使这些块中包含的事务消失。

值得注意的是,双重支付只能在攻击者拥有的钱包的交易上进行,因为只有钱包的所有者才能为双重支付交易生成合法的签名。攻击者对自己的交易进行了双重支付攻击。如果可以通过使交易无效来避免不可逆的购买,那么这种攻击是有利可图的。

袭击者马洛里买下了卡罗尔的大火';马洛里通过转移价值25万美元的比特币与卡罗尔进行了交易。。在等待一笔交易而不是六笔交易后,卡罗尔安全地包装了这幅团体画,并把它交给了马洛里。这时,马洛里';拥有强大计算能力的Paul将这笔交易写入了区块链。,开始了51%的攻击。

首先,Paul使用他自己的矿池的计算能力重新计算了包含该事务的块。而在新的块中,原来的事务被另一个事务取代(例如,它被直接转移到Mallory'其他钱包而不是卡罗尔';s),从而实现"双倍付款"。这"双倍付款"事务使用与原始事务一致的UTXO。,但收款人被马洛里';的钱包地址。

然后,Paul使用矿池在伪造块的基础上计算出一个更新块,这样包含这个"双倍付款"交易比原来的区块链高一个街区。希特雷托更高的分叉区块链取代了原来的区块链双倍付款"对卡罗尔来说,物物交换取代了最初的交易。卡罗尔没有收到价值25万美元的比特币,她原本拥有的三幅价值连城的画作也被马洛里白白拿走。

在整个过程中,其他矿工在保罗';s矿池可能没有注意到任何不寻常的这"双倍付款"事务,因为挖掘程序是自动运行的,不会一直监视每个块中的每个事务。

为了避免这种攻击,销售大宗商品的商家应该在交易得到全网确认后发货。或者,商家应该使用第三方的多方签名账号进行交易,等到交易账号已经全网确认后再发货。。交易的确认越多,攻击者就越难通过51%的攻击篡改交易。

对于大宗商品的交易,买卖双方使用比特币支付,即使付款后24小时才发货,也是方便高效的。24小时后,本次交易的全网确认次数将至少达到144次(可有效降低51%被攻击的可能性)。

需要注意的是,51%攻击顾名思义,并不需要至少51%的计算能力才能发动。事实上,即使它只有不到51%的系统计算能力,它仍然可以试图发动这样的攻击。它被命名为51%攻击只是因为当攻击者';的计算能力达到51%的阈值,他的攻击企图几乎肯定会成功。本质上,共识攻击,就像系统内所有矿工的计算能力分为两组,一组是诚实计算能力,一组是攻击者计算能力。双方都在争先恐后地计算区块链的新区块,但攻击者';的计算能力是精心构建的,包括或排除了一些事务。因此攻击者的计算能力越低,他在这场对决中获胜的可能性就越小。

另一方面,攻击者的计算能力越强,他有意创建的分叉区块链就越长。可能被篡改的最近的块或由它们控制的未来的块就越多。有安全研究机构利用统计模型得出结论,全网30%的计算能力足以发动51%的攻击。。全网计算能力的快速增长使得比特币系统不可能被一个挖矿者攻击,因为一个挖矿者不可能占据全网哪怕1%的计算能力。

待补

待补

比特币挖矿是对一段时间内比特币系统中发生的交易进行确认,并记录在区块链上形成新区块的过程。这些矿工被称为矿工。简单来说,挖矿就是记账的过程。矿工是簿记员,区块链是总账。成功攫取记账权的矿工。,你会从系统获得新的比特币奖励。

为了保护和运营支付系统而消耗能源并不是一种浪费。像任何其他支付服务一样,使用比特币会产生处理成本。运行当前流行的金融系统所必需的服务,如银行。信用卡和运钞车也消耗大量能源,尽管它们消耗的能源总量不像比特币那样透明和难以衡量。

比特币挖矿原理的设计使其能够通过使用特殊的硬件,随着时间的推移优化挖矿过程,从而消耗更少的能量。。采矿的运营成本仍然与需求成正比。当比特币挖矿竞争变得过于激烈,收入减少时,一些矿工会选择停止活动。另外,采矿所消耗的能量最终都会转化为热能,而获利最多的矿工就是那些能很好利用热能的人。。一个最优且高效的采矿网络不会消耗任何额外的能量。虽然这是一个理想的情况,但是采矿的经济学原理是个体矿工都在朝着这个理想的情况努力。

相关推荐
本文地址: http://www.1mt.cn/539269
文章来源: kk
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。 未经允许不得转载:
分享到: 更多
比特币和挖矿(什么是比特币挖矿)文档下载: PDF DOC TXT

一秒通1MT.CN | 理财、金融、保险、贷款、虚拟货币 等知识简单易懂一秒就通!

联系站长网站公告