主页 > imtoken官方下载 > 关于挖矿获取比特币

关于挖矿获取比特币

imtoken官方下载 2023-02-01 08:13:06

前言:在写这篇文章之前,我查看了比特币白皮书和一些网络博客。通过反复的理解和思考,现在简单说一下我对比特币的理解,也是对自己学习的一个总结。希望与大家分享。

首先我们要明白比特币和区块链是两个概念,区块链是一种技术,这种技术是一种去中心化的技术,而比特币就是这种技术。技术的首次应用。到底什么是去中心化?例如,传统银行和第三方支付机构使用中心化技术,它们的作用是信任中介。去中心化是一种直接的点对点交易,没有任何第三方。它基于密码学原理,不信任,消除了支付交易回滚的可能性,即应用区块链技术产生的交易无法回滚。

可能有些同学对比特币还是一知半解,我举个通俗易懂的例子,帮助大家在脑海中建立模型:

在一个封闭的小渔村里,渔民以捕鱼为生,现在小王想给小刘5条鱼:那么使用比特币的想法是:

小王先借给小刘5条鱼。把这件事告诉全村人;

村民们发现后,去小王家确认小王有足够的鱼给小刘吃,然后村民在笔记本上写下小王家少了5条鱼。给小刘家增加5条鱼;

然后村民们出去钓鱼,把小王借给小刘5条鱼的消息传了出去,大家都知道了。 , 以保证账本的一致性。

那么一定有一些渔民不愿意白做。为了解决这个问题,大佬们一致决定,谁先确认小王借了小刘5条鱼,分给了一条鱼。奖励,然后大家积极去做。

那么奖励是从哪里来的呢?这就是我们今天谈论的比特币一代。挖矿其实就是一个记录交易信息并打包成区块的过程。比特币系统每十分钟生成一个区块,第一个打包这个区块的人将获得一定的比特币奖励。

一共发行2100W比特币,每个区块产生10分钟,一个区块奖励一定数量的比特币。开始时,每个挖矿区块将获得 50 个比特币的奖励。之后,每 21,000 个区块奖励减半(奖励每 4 年减半一次)。现在,每个区块将获得 12.5 个比特币。每个区块的生成时间为10分钟,但随着计算机技术的发展,当前挖矿算力不断提升,因此生成一个区块的时间必须小于10分钟,这就需要一定的控制措施来保证这个时间这个衡量标准就是挖矿难度。如果每个区块的输出时间小于 10 分钟,则会增加挖矿难度,如果大于 10 分钟,则会降低挖矿难度。每次难度调整时间为2016个区块,即2周。

每2016个区块后,所有节点都会根据一定的公式自动调整挖矿难度。预计时间为 20160 分钟(两周)。

新难度 = 旧难度值 *(过去 2016 块花费的时间 / 20160 分钟)

然后有几个概念要理解: 比特币:本质上是一串数字 签名公钥:可以理解为比特币钱包的地址 私钥:可以理解为比特币钱包的密码

节点:比特币是一个分散的点对点网络,具有不同功能的节点。矿工:参与记录交易、打包区块、验证区块。节点可以获得比特币奖励

hash:可以理解为一种数据加密

交易

Owner1 向 Owner2 交易比特币:首先创建这个交易:用之前的交易和 Owner2 的公钥进行哈希,然后用这个哈希和 Owner1 的私钥进行签名。本次交易完成,然后向全网广播。

当全网节点收到这笔交易时,会首先进行验证。 Owner1在交易结束时会公布自己的公钥,并使用Owner1的公钥进行计算,得到的结果与本次签名一致,说明本次交易确实是Owner1签发的。拥有者 2 获得了支付记录,这意味着他拥有一定数量的比特币。他可以用别人的公钥创建一个新的记录来消费,但是这个记录包含你从别人那里收到的这个记录的信息。

如果您同时创建多条记录来花费您的比特币,系统就会出现混乱。为了解决这类问题,中本聪提出的解决方案是参考时间戳服务器来解决这类问题。这里的时间戳服务器不是一个中心化的东西。这也是对大多数人的正义。时间戳服务器会以块的形式对一组数据进行哈希处理,打上时​​间戳,然后将哈希值广播出去。因为时间戳是唯一的,所以可以判断该时间点的具体数据一定存在。每个时间戳将前一个时间戳合并到其哈希中,每个后续时间戳都对前一个时间戳进行扩充,从而形成一条链。

所有节点收到交易记录后开始打包,但每个人打包的交易记录可能不同,时间戳也可能不同,所以每个节点打包的hash不一样。这就需要所有节点达成共识,那么如何达成共识呢?解决方案是PoW,通过工作量证明来抢夺记账权。每个块由块头和块中包含的交易列表组成。解块头的大小为 80 字节,4 字节为版本号,32 字节为前一个块的哈希,32 字节为 Merkle 根哈希,4 字节为时间戳,4 字节为当前难度,4-字节随机数。块中包含的交易列表附加到块头中。第一笔交易是coinbase交易,是矿工获得奖励和费用的特殊交易。

80 字节的区块头是工作量证明的输入。双SHA256计算后,不断改变nonce,使最终结果小于当前网络的目标值,则问题成功解决,工作量完成。

上面提到的当前网络目标值的计算公式为:目标值=最大目标值/难度值

当一个节点找到工作量证明时,它会向全网广播,然后全网其他节点进行验证,如果该区块中的所有交易都有效且之前没有其他节点存在比特币最开始怎么得到,则该区块被认为是有效的。验证通过后,该节点将不再接受其他节点的相同区块,该节点将终止自己包含相同交易的计算。

其他节点通过移动到下一个工作量证明并使用该块的哈希作为下一个块的前一个哈希来表示它们接受该块。

节点总是认为最长的链是正确的链,并继续工作和扩展它。但是,如果两个节点同时广播不同版本的区块比特币最开始怎么得到,其他节点收到区块的时间可能会因网络原因而不同。一般来说,他们会处理最先收到的块,但也会保留另一个块(这里是块的不同版本),以防止它成为最长的块。直到找到下一个工作量证明,因为下一个块使用前一个块的哈希作为它的前一个哈希。因此,其中一条链被证明是最长的诚实链。然后在另一条分支链上工作的节点将切换到一边,开始为最长的链工作。