如何理解挖矿(挖矿的原理是什么)

在文章的留言中,很多朋友会用比特币来解释区块链。区块链和比特币有什么关系?答:区块链是分布式存储,比特币是基于这种存储的应用。其他电子货币应用程序,如莱特币和以太坊,都是基于区块链的。理论上,用上层应用来解释底层存储是不合适的。
如上图,mysql是底层存储,微信是上层应用,用微信来解释mysql是不合适的。今天,从技术的角度,让我们来谈谈区块链的“采矿”是什么。先说结论。区块链矿业的本质是什么?答:生成块并将其链接到区块链的过程就是挖掘。矿工是挖掘矿井的人。什么是街区?答:如《1分钟了解区块链的本质》中所述,块是可以存储数据的存储空间。
如上所示,块分为块头和块体。体内储存了什么?答:你想保存的内容和上层应用有关,就像你想在mysql中保存的内容取决于上层应用一样。比如比特币使用的区块链,里面存储了比特币的交易记录。头中存储了什么?答:与这个块和区块链相关的一些元数据存储在块头中。
如上所示,块标题中有三个常见属性:
前一个块的哈希值什么是区块链?这些积木是如何连接在一起的?a:结构节点{ node * prev//前一个节点int时间;//timestamp int nonce;//随机数void * node _ body//存储数据}节点;
链表,节点指针可以作为这个节点的唯一标识符,下一个节点通过存储上一个节点的指针来链接链表。
类似的,一个块的哈希可以作为一个块的唯一标识,下一个区块链通过存储前一个块的哈希来对这些块进行处理。这是区块链。说完了区块和区块链的概念,我们再来说说挖掘,也就是区块的生成。在此之前,我们先来说说区块链的三个特点:
历史区块是无法改变的,也就是“区块链只能写成日志,不能像mysql那样随机”。新块只能在最新块之后生成,即“必须完成同步全网最新区块链数据的工作,才能开始新块生成。”很难生成新的块,只有满足一定条件的新块才会有效。如果最新的区块链数据已经同步,在生成新数据块之前必须满足什么条件?答:对最新的块头进行两次SHA256计算,得到256位的哈希结果。高阶48位必须是0x00000000FFFF,这样挖掘才会成功。画外音:这句话很重要,也是本文的核心。为什么大家都说“挖矿”难?从限定的hash值反推出块头,填入对应的“前一个块hash值”、“时间”、“随机数”不就可以了吗?答:嗯,这个,哈希(SHA256是一种哈希算法)是不可逆的。例如,MD5md5(string)=md5_result众所周知:
从字符串中很容易计算出相应的md5值,但是从md5值推导出字符串是不可能的。可以认为哈希结果是完全随机的。要得到第一个48位的哈希结果必须是0x00000000FFFF,就像连续掷硬币48次,每次都得到想要的结果一样,概率是(1/2) 48。如你所见,这就像在山上捡起一块石头,那只是一块石头。那么应该如何找到合格的块头,才能顺利挖到矿呢?答:穷举法。块头中有一个随机属性nonce。该属性从0开始,遍历到2 ^ 32,计算块头的哈希值。如果哈希结果满足条件,则挖掘成功。伪代码如下:byte[32]=prev block hash;//前一个块的Hash(int I=0到2 32){//遍历所有整数int time=now();//时间戳blockheader=new (byte [32],time,I);//生成块头hashResult=sha 256d(block header);//计算hash值if(hash result 208==0x 00000000 ffff){//hash符合预期的echo“bingo”;//挖到矿}}看上面的算法。只要程序运行的时间足够长,就可以一直挖到矿?答:错了。如果别人有很强的计算能力,在你挖矿之前,如果别人的老师变成了新块,播到了区块链网,而你所在的地方不是最新的区块链,你挖的矿就作废了。这时候你就要放弃之前所有的工作,先把最新的数据和网络同步,然后重新开始挖。有什么方法可以加快挖矿速度?答:从建筑的角度来看
“缓存”无效:每个块的哈希值不一样,每个时间戳也不一样。历史上计算出来的值并不能通过“查表”来节省时间。放大是有效的:增强单CPU的计算能力,用GPU代替CPU,用专用芯片计算SHA256D等。都是有效的,但是扩大规模总是有一个极限,单台机器总是会遇到瓶颈。横向扩展是有效的:单机不行,我们并行运行吧,一台机器。
如上图,这是青藏高原上的比特币矿。廉价的电力吸引了无数矿工。总之,什么是区块链的采矿?答:在最新区块链的数据上,生成一个合格区块并链接到区块链的过程就是挖掘。关于区块链和采矿,可能还有许多问题:
如何保证数据的一致性?这TM怎么了?挖这个东西有什么意义?这不是纯粹浪费电吗?这和比特币有什么关系?比特币如何保证总量有限……这些疑惑,下一分钟给你解释。希望在这短短的一分钟里,大家明白挖矿的本质。

其他教程

尼罗河惨案 豆瓣(尼罗河惨案系列电影)

2022-8-28 21:43:55

其他教程

安徽省新发展理念(新阶段现代化美好安徽建设)

2022-8-28 21:46:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索