图文详解比特币04-如何挖比特币
什么是挖矿?
挖矿是将交易添加到区块链的过程。
它是如何工作的?
比特币网络上的每个节点都共享有关新交易的信息。他们将这些交易存储在他们的内存池中。
内存池是节点用于交易数据的临时存储区域。
每个节点还可以选择尝试将其内存池中的交易“挖掘”到一个文件中。这个文件是每笔比特币交易的账本,被称为区块链。
您可以将内存池视为“浮动”交易,将区块链视为“存档”交易。
然而,要将交易从内存池添加到区块链,节点必须使用大量的计算机处理能力。
这种处理能力是由内存池中存在的挑战强制执行的。
这个挑战是什么?
好吧,假设你是一个节点。您可以随时将内存池中的交易压缩成数字和字母的“字符串”。
该字符串表示内存池中的所有事务。
现在你的目标是用另一个数字散列这个字符串,以尝试得到一个以一定数量的零开头的新字符串。
大多数时候你会得到一个甚至不接近的结果。
但如果你继续前进,你可能会偶然发现一个有效的数字。
现在,这听起来很容易,但实际上很难。这完全是随机的,您只能希望通过反复试验找到获胜的结果。这就是挖矿过程。计算大量散列(使用大量计算机处理能力)并希望获得好运。
但是如果你有幸找到了一个成功的哈希结果比特币的挖矿难度由什么决定,你的内存池中的交易就会被添加到区块链中,网络上的每个其他节点都会将你的交易块添加到他们的区块链中。
您的努力还将获得 25BTC 的奖励,以及您刚刚添加到区块链的交易所附加的任何费用。
“一定数量的零”来自困难。这是由网络设置的,并且根据矿工的数量而有所不同——挖矿的人越多,难度就越高,你需要从更多的零开始(这使得找到获胜的结果变得更加困难)。
这是如何将块添加到区块链的稍微简化的版本。查看块以获取更多详细信息。
为什么需要我的?
好问题。为什么不直接将交易添加到区块链中?
因为挖矿允许整个比特币网络就哪些交易“存档”达成一致,这就是防止数字货币欺诈的方式。
当您进行比特币交易时,网络上的节点不会立即听到它。相反,交易通过从一个节点传递到下一个节点来遍历比特币网络。
但是,实际上可以使用相同的比特币进行另一笔交易并将该交易也插入网络。例如,你可以用一些比特币购买啤酒,然后快速尝试用相同的比特币购买一块披萨。
换句话说,这是一个精心设计的骗局。
一些节点将首先获得比萨交易(并忽略啤酒交易),而其他节点将首先获得啤酒交易(并忽略比萨交易)。
但是,即使您在啤酒交易后交易比萨饼,由于交易如何通过比特币网络传播,网络也会在您应该获得啤酒还是比萨饼的问题上存在分歧。
那么网络如何决定进行哪项交易呢?
当然是挖矿。
如果网络上的一个节点完成了挑战,其内存池中的交易将被添加到区块链中。
如果具有披萨交易的节点成功挖出一个区块,则该交易被添加到区块链中,并且啤酒交易从网络中消失。
我知道,这在选择交易时可能看起来有点不正统,但这是比特币网络在处理冲突信息时用来达成共识的解决方案。
从好的方面来说比特币的挖矿难度由什么决定,将每个新的交易块添加到区块链只需要大约 10 分钟,因此您只需要等待 10 分钟即可确认比特币已经“到达”新地址(并且还没有)发送到另一个地址)。
挖矿的另一个好处。
如果您想尝试和控制添加到区块链中的区块(即交易),您必须与比特币网络上的所有其他挖矿节点竞争以解决区块难题。
换句话说,你需要一台具有足够处理能力的计算机来超越所有其他比特币矿工的综合处理能力。
如何开始挖矿?
想要破解 25BTC 的奖励吗?
要开始挖掘,请在比特币客户端中拨动开关。
但是,由于尝试使用笔记本电脑上的 CPU 挖掘比特币效率极低,因此“挖掘”开关已从软件界面中移出。
不过不用担心,因为功能还在……你只需要输入一个命令:
转到:帮助 > 调试窗口 > 控制台
并输入以下命令:
setgenerate true
这是命令“开始挖矿”。您的客户端现在将从内存池中的交易生成(交易)块并开始对它们进行哈希处理。
你会知道它正在工作,因为你的处理器会开始嗡嗡作响,因为它会在它生成的块上散列以尝试获得有效的结果。
它可能无法解决障碍(这将是一个奇迹),但尝试起来很有趣。
关闭挖矿:
setgenerate false