主页 > token.im官网 > 比特币与挖矿的关系及挖矿原理解析

比特币与挖矿的关系及挖矿原理解析

token.im官网 2023-04-02 06:57:41

如果要学习区块链,比特币体系是我们肯定会面对的第一个大知识模块。 为什么会这样? 在昨天的分享中,我们提到了比特币是区块链的前身,区块链是比特币后来的提炼。 两者的逻辑关系决定了比特币是绕不开的家伙; 如果你在第一次接触比特币的时候,当你想和别人交流的时候,你面对的第一个概念可能就是挖矿。

那么问题来了? 挖矿是什么意思? 挖矿和比特币有什么关系? 挖矿的原理是什么? 等这些问题在学习区块链的过程中困扰了我很长时间。 接下来,让我们一一了解。

首先,让我们从比特币和挖矿的关系说起;

在开始这个话题之前,先问一个问题:你有没有想过为什么每个区块链系统都会发行自己的数字货币? 也就是前段时间的ICO热潮; 这就涉及到区块链的基础作用,就是实现社会价值在区块链上的自由流通(类比互联网的基础作用:实现信息的自由流通); 比如我可以开发汽车的车链,房子的房链,母猪的母猪链; ETC。; 如果一个组织或个人足够强大,它也可以为整个行业发布一条链。 估计只有央行能做到; 如果汽车、房子、母猪……想要在各自的链条上自由流通,从A的名字到B的名字,或者从C的名字到D的名字,就必须要有一个计量秤; 这个规模是通过花费相应的数字货币来完成的; 换言之,各链发行的数字货币作为链上价值流通的一般等价物; 打个现实的比方:也就是我们生活中用来交易的人民币、美元、泰铢、英镑等中央货币,在我们购物的时候起到作用的。 每个链条都可以比作一个国家。 每个国家都有自己的货币体系吗? 这样一想,是不是就很清楚为什么每条链都会发行数字货币,目的是为了促进链上资产的顺畅流通;

就数字货币而言,对于想做事的人来说,它充当了价值流通的一般等价物; 对于赚钱的人来说,它是一种收钱的工具;

下面进入正题:分析比特币与挖矿的关系; 说到两者的关系,就要说说区块链数字货币的发行模式;

从一般的角度来看:区块链发行链上的数字货币主要有两种形态:一种像比特币一样,通过挖矿节点消耗自身的算力,也就是连续挖矿的。 手段,换取比特币; 由于比特币系统是完全开源的,所以这套开源代码包含了挖矿的功能。 只要一个人看懂了代码,就可以编译部署这套代码,并将其添加到比特币系统中。 进入币网,开启挖矿功能,然后你的主机开始挖矿; 在比特币系统中,全网节点的挖矿难度可以通过自身算法动态调整,保证每10分钟,比特币网络中,就会有一个节点成功挖矿; 一旦有人挖矿成功,比特币系统就会奖励一定数量的比特币给这个人,这也是由算法控制的。 这个算法可以说:最初的头四年,每一个成功挖矿的人都会得到25个比特币的奖励,每四年衰减一半; 即未来四年奖励12.5比特币比特币和挖矿机有关系吗,未来四年奖励6.25比特币。 类推; 到2140年左右,区块链发行,总量约2100万枚比特币;

通过上面的讲解,大家应该明白挖矿和比特币的关系了吧。 这种关系是:挖矿是比特币系统发行自己的数字货币的唯一途径,也就是比特币。 比特币系统通过挖矿完成自身数字货币的发行; 发行数字货币的过程就是各个矿工竞争挖矿的过程。 每10分钟奖励一定数量的比特币,看谁先挖矿。 奖励过程就是比特币发行的过程; 每个挖矿节点在利益的驱使下也在不断想办法能够更快的挖矿,这也催生了市场上各种矿池节点;

刚才我们说了,数字货币的发行形式主要有两种; 比特币是其中之一; 另一个,我以国内的NEO为例; NEO的发行方式是:系统创建时,一次性在创世块中写入1亿个NEO; 借助ICO,用户可以直接用人民币认购和持有; 这种模式有点类似于央行发行人民币; 而比特币的发行模式与淘金非常相似;

刚才的分享中一直提到挖矿,那么比特币的低挖是怎么回事呢?

实际上,挖矿是比特币系统中的一种视觉表现形式; 其背后的真名是POW算法,也就是工作量证明算法; 工作量证明算法来自经济学; 它是1993年由两位经济学家提出的一种策略,是一种有效的阻断经济策略,以防止滥用服务或资源;

这种POW在比特币之前就已经被广泛使用; 其中比较有名的是谷歌邮件的反垃圾邮件系统; 谷歌如何使用它? 谷歌是这样做的:他要求每一个向谷歌邮件服务器发送邮件的其他服务器都完成一定量的计算工作; 这个计算对于对方的服务线程可能需要2到3秒; 2到3秒,如果是一个人发邮件是完全可以忍受的; 如果对方是发送垃圾邮件的脚本程序,他根本承受不了。 电子邮件脚本需要做的是每秒发送数百封电子邮件;

那么它在比特币系统中是如何使用的呢? 中本聪在设计和实现比特币系统时,希望每 10 分钟完成一次比特币的发行。 比特币网络中有数以万计的节点,应该向谁发币呢? 根据工作量证明的策略,即POW算法的思想,中本聪为比特币系统中的每个节点提出了一个问题。 请看语音下方的截图,这是一个区块头的数据结构,请注意,里面有一个Nonce字段; 中本聪的问题是:在其他字段的值不变的前提下,通过不断调整Nonce的值,来计算BlockHeader结构的值的Hash,需要找到一个Nonce值,使得计算出的哈希值小于或大于某个固定值。 这个固定值在BlockHeader结构中用Bits标记;

由于哈希算法是不可逆算法,不可能通过具体的哈希值来逆向原文; 这样,每个节点只能采用穷举法,即从1, 2 3 4 5开始。。不断向后尝试; 在这个过程中,开始测试各个节点的CPU计算速度。 计算快的话,很快就得到Nonce值,然后他把Nonce值放在结构体中,通过P2P网络广播出去; 各系统节点收到后发现Nonce值合法且符合要求,则认为挖矿成功; 对于那些计算了一半的节点,发现有人已经计算过了,就放弃这种穷举比特币和挖矿机有关系吗,然后开始穷举寻找下一个区块头的Nonce值;

这样大家就会明白,所谓挖矿就是计算机通过穷举法不断求出Nonce值并计算出Hash值的过程; 谁先找到,谁就挖矿成功。