主页 > imtoken下载链接 > 比特币挖矿如何运作一段时间
比特币挖矿如何运作一段时间
比特币挖矿
什么是比特币
现在是 2020 年,你一定对比特币这个词很熟悉。经过各种宣传和炒作,比特币这个概念本身已经被赋予了许多虚张声势的功能。比特币有很多具体的技术细节,这次我们只描述与“挖矿”相关的部分。
要解释清楚挖矿,首先要知道比特币是一个去中心化的分布式自治网络。或者可以这样理解,比特币是一个小账本或者分布式账本,也就是说比特币网络上有很多节点,每个节点的任务就是记账。
为什么要开采比特币
因为比特币是一个去中心化的分布式网络,大家都可以加入这个网络,所以可能会有恶意节点,这些节点就是不守规矩的乱搞。
必须有办法降低制造麻烦的成本,让恶意节点觉得不值得,这样整个网络才能正常发展。
降低破坏比特币网络成本的解决方案是“挖矿”。
如何挖矿
我们在这里不讨论节点如何发现比特币。假设这个分布式网络已经运行,消息可以在节点之间广播。当有人要汇款时,需要在节点之间广播汇款信息,节点收到后会记录汇款信息。
挖矿即将开始---节点收到汇款信息(以下简称交易)后,仅放入内存池。为了使交易生效,需要一系列步骤。
首先从内存池中取出一些交易,计算本次交易的hash值,用一个随机数对交易hash值进行hash,即hash(hash(transaction) + random number)判断上一步是哈希结果的前几位有很多 0?具体0的个数是动态调整的。如果 0 的个数不够,就换一个随机数,反复尝试,直到 0 的个数足够找到随机数。 , 将随机数、交易的哈希值、交易本身打包成一个数据包,称为区块比特币是如何被炒作起来的,收到区块后将区块广播给各个节点,并取这个随机数哈希来验证是否存在真的那么多0。如果验证成功,就会被记录下来。
这个过程通常被称为交易打包,或挖掘一个区块。可以看出,这个操作是相当累人的。为了不让节点白费,在交易列表中会有专门的汇款。内容是从天上掉下一个比特币,传送到打包好的节点。
所以挖掘是一种形象隐喻。尝试随机数的过程就像在矿井中随机挖掘一样。如果你很幸运,你只能得到我的,所以现在你知道当有人说你从采矿中赚了多少钱时是什么意思。来吧。
阻止
区块链
为了降低篡改难度,前一个区块的hash值也需要记录在区块中,相应的碰撞随机数算法也会改进为hash(hash(交易)+hash前一个区块的+随机数),
这个新的区块指向在前一个区块中,所有的区块看起来都串成了一条链。
如果有人想篡改区块链中某个区块中的交易,该交易的哈希值会发生变化,所以原来的随机数不能满足要求,篡改者必须重新估计随机数,哈希整个区块的大小自然会跟着变化,
由于前一个块的正确哈希值记录在后一个块的头部,因此篡改者不得不篡改之前的所有块,重新估计所有随机数,成本大大降低。
所以在挖矿过程中,如果有人挖出一个区块,那么你就得停止估算,因为前一个区块的hash已经过时了,你需要将新的区块作为前一个区块,然后可以继续尝试。
区块链
挖矿完成后要做什么
为了防止比特币无限减少,经过一定时间后,比特币出块奖励会减半,最终不会再有挖矿奖励了。
但是,虽然挖出块的奖励已经没有了,但是仍然可以挖出块。矿工如何赚钱?这时候只能靠手续费了。
每笔交易都会设置一个手续费,打包成功的矿工会收到本次打包交易的手续费,所以矿工打包打包时,必须先选择内存池中手续费较高的。
为了每次赚更多的钱,你可以一次打包很多交易,但是打包太多的交易,哈希计算的速度会变慢,而且块越大,越多网络将被传输。交易的速度也会很慢。也许当你估计时,当别人撞到一个新的村庄街区时,你会徒劳无功。
所以最终选择打包多少交易是一个平衡的结果。
电脑性能的提升对挖矿有什么影响
随着计算机硬件的发展,计算hash的时间肯定会越来越短,为了让每次成功碰撞的时间大致相同,具体0的个数需要根据速率动态调整最近一段时间的出块次数。
目前全网计算机的计算能力越强,难度就越高比特币是如何被炒作起来的,即需要的0越多,碰撞的难度就越高。结果是,无论你计算多快,难度系数的增加都会使出块时间保持在同一水平。
结束
上面提到的算法只是一个普遍的原理,并不是比特币实际使用的算法。
我是这方面的新手,我还在学习中。文中难免有错误。请原谅我。
有机会详细阐述一下这类问题,
如何判断你的比特币是否属于你?什么是智能合约?
为什么比特币要等待多个交易确认?什么是分叉重组?