比特币挖矿是怎么一会事儿

比特币 挖矿


什么是比特币

都 2020 年了,比特币这个词儿大家肯定不陌生。经过各方面的宣传炒作,比特币这个概念本身已经被赋予了很多玄乎的职能。有关比特币具体的技术细节有很多,这次我们只探讨“挖矿”相关的部分。
要想解释清楚挖矿,你首先要知道,比特币是一个去中心化的分布式自治网络。或者可以这么理解,比特币是个大型账本,还是个分布式的账本,也就是说,比特币网络上有许许多多的节点,每个节点的任务就是记账。

为什么比特币要挖矿

因为比特币是个去中心化的分布式网络,而且大家都能加入这个网络中,所以就可能存在恶意节点,这些节点就是不按规矩来捣乱的。
必须有个办法来增加捣乱的成本,让恶意节点自己觉得不值得,这样才能使整个网络正常发展下去。
比特币网络中增加捣乱成本的方案就是“挖矿”。

怎么挖矿

这里不讨论比特币是怎么做节点发现的,假设这个分布式网络已经运行起来了,节点之间可以进行消息广播。当有人想要转账,那么就需要把转账信息在节点之间进行广播,节点收到之后就会把转账信息记下来。
挖矿马上就要开始了 --- 节点刚收到转账信息(下文称为交易)后,仅仅是放在内存池里,真正想让交易生效,需要经过一系列步骤

  1. 先从内存池中取出一些交易,计算这些交易的 hash 值
  2. 将交易 hash 值与一个随机数一起进行 hash,也就是 hash(hash(交易) + 随机数)
  3. 判断上一步 hash 的结果的开头几位是不是有很多 0,具体要有多少个 0 是动态调整的
  4. 如果 0 的数量不够,则换一个随机数,不断重复尝试,直到 0 的个数足够多
  5. 找到随机数之后,将这个随机数与交易的 hash 值,以及交易本身,一起打包成一个数据包,称之为一个区块,把区块广播出去
  6. 各个节点收到后,也来拿这个随机数 hash 验证一下是不是真的有那么多 0,如果验证成功,则记录下来

这个过程一般都叫它交易打包,或者说挖出了一个区块。可以看出来这个操作是比较累的,为了不让节点白干活,在交易列表中会有一笔特殊的转账,内容就是从天而降一笔比特币,转给打包的节点。
所以挖矿是个形象的比喻,随机数尝试的过程就好比在矿坑中乱挖,运气好就能敲到矿,所以你现在知道有人说挖矿赚了多少多少是什么意思了吧。

block

区块链

为了增加篡改难度,前一个区块的 hash 值也需要记录在区块中,相应的碰撞随机数的算法就会改进成 hash(hash(交易) + 前一个区块的 hash + 随机数)
这样新的区块指向前一个区块,所有的区块看起来就串成了一个链。
如果有人想篡改区块链中的某个区块中的交易,那么交易 hash 值就会发生变化,那么原来的随机数就不能满足要求,篡改者就要重新计算随机数,整个区块的 hash 自然也会跟着改变,
由于后一个区块头里记录着前一个区块正确的 hash,所以篡改者还要把后面所有的区块都篡改了,重新去计算所有的随机数,成本大大增加。
所以在挖矿过程中,如果有人抢先挖出一个区块,那么你就得停下计算,因为上一个区块的 hash 已经过时了,需要把新的区块作为上一个区块,然后能继续开始尝试。

blockchain

矿挖完了怎么办

为了避免比特币无限制的增加,在经过一定时间后,比特币的出块奖励将会减半,最终不再有挖矿奖励。
不过虽然挖出区块的奖励没有了,但是区块是依然能够继续挖出来的,那矿工怎么赚钱呢,这个时候就只能靠手续费了。
每一笔交易都会设定一个手续费,成功打包的矿工将获取这次打包交易中的手续费,所以矿工打包的时候肯定是先挑内存池中手续费高的出来进行打包,
为了每次打包赚得更多,可以一次打包很多的交易,不过打包的交易多了,计算 hash 的速度就会慢,区块大了网络中传输的速度也会慢,可能在你计算的时候,别人抢先打出一个小区块你就白忙活了,
所以最终选择打包多少交易,就是个平衡的结果。

计算机性能提升对挖矿有啥影响

随着计算机硬件的发展,计算 hash 的时间肯定会越来越短,为了让每次碰撞成功的时间大致相同,0 的个数具体是多少个就需要根据最近一段时间内出块的速度进行动态调整。
当前全网计算机的算力越强,那么难度就会提升,也就是需要的 0 的个数就会越多,碰撞的难度就会越高。结果就是不管你算的多快,难度系数的上升会让出块时间维持在同一个水平。

结尾

上面说到的算法只是个大概说个原理,并不是比特币实际使用的算法。

本人也是刚接触这块知识,还处于学习过程中,文中难免出现错误,欢迎各位指正。
有机会可以再来探讨下这些问题,
如何判断你的比特币是不是属于你?智能合约是个啥?
比特币为啥要等待多个交易确认?分叉重组是啥?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345