前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1.5 比特币的原理-为什么记账(挖矿)

1.5 比特币的原理-为什么记账(挖矿)

作者头像
Meet相识
发布2018-09-12 17:06:56
1.7K0
发布2018-09-12 17:06:56
举报
文章被收录于专栏:技术专栏技术专栏

1.5 比特币的原理-为什么记账(挖矿)

之前在将账户如何验证的时候,其实是把账户地址,交易信息进行hash打包的过程。这个过程是需要消耗计算机资源的,既然要消耗资源,那么节点为什么要参与记账呢。在比特币系统里面,完成记账的节点,他是可以获得一定数量的比特币奖励的,这个奖励其实也就是比特币的发行过程。

  • 规则

由于记账是有奖励的,每一次记账,是先发行一定数量的比特币到记账的账户,当前的一次记账的奖励是12.5个比特币,这样的话,就会出现大家都会去争相记账,如果大家同时去记账的话,就会引起一个问题,就是出现记账不一致的情况,这样的话必须有一个规则来限制。

这个规则是这样的:

  • 一段时间只能有一个节点记账成功 (这个时间会和第二点的密码学难道相互影响)
  • 通过解决密码学难题(即工作量证明)竞争获得唯一记账权
  • 其他的节点只是复制计算结果

由于在解决密码学难题的时候有一定的随机性,这个记账又可以获得奖励,因此大家形象的把记账的过程,形象的成为挖矿

  • 工作量证明

之前在将账本记账的时候降到是把上一个hash值和这段时间的交易信息一起作为原始信息进行hash,如果只是这样的话,显然每个人都可以轻松的完成记账,而为了保证一段时间内,只有一个人能记账的话,就需要提高记账的难度。

比特币里是这样规定的,每次hash运算的hash值,必须满足一定的条件,即必须以n个0开头,为了满足这个条件,在计算hash的时候,就必须引入一个随机值变量(之前讲到hash函数任何一个微小的参数变化都会使得结果变化很大),因此在计算hash的时候,不断的去改变这个随机数的值,每次都可以得到一个全新的hash值,只要不停的尝试改变这个hash值,总能找到符合条件的结果

image.png

现在的电脑通常要得到一个四个0开头的hash值,通常需要一两分钟的时间,由于现在参与挖矿的计算机非常多,算力很大,所以现在的挖矿难度,是以18个0开头,率先满足这个条件的节点,就可以获得唯一的记账权

  • 交易的记录集

交易的记录集是这样得到的:

  1. 首先会收集广播中还没有被记录账本的交易
  2. 然后会进行交易的有效性验证(验证签名,余额是否足够)
  3. 添加一笔给自己转账的交易(挖矿奖励)(添加一个给自己的地址转12.5(现在)的比特币,如果一个节点能够比其他的节点更快的人找到这个hash值,那么整个交易就会被打包成区块到区块链中,打包的节点就获得了这个奖励)
  • 工作量分析

image.png

以上是一个真实的区块hash的例子,hash值是一个16进制的数,每一每得到一个0位,他的概率是1/16,得到18个0,他的概率就是1618,这个概率是非常小的,所以难度实现相当大的。

现在已经没有单独的节点(旷工)来挖矿了,因为基本办不到,一般都是多个节点组成矿池一起挖,然后按照算力进行收益的分成。

在将一个和技术无关的话题,从经济角度来讲,只要挖矿还有收益,总会有新的旷工参与来加剧竞争,提高算力的难度,而挖矿就会消耗更多的算力和电力,而最终这个成本是接近收益的,这是一个经济学的角度 我们国家由于电力成本比较低,所以收益相对较高,所以中国的算力会占据整个节点的一半以上。

  • 总结

因为记账是需要消耗资源的,因此比特币系统里面会奖励参与记账的人,同时又引入了工作量证明来引入记账冲突的问题

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.08.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.5 比特币的原理-为什么记账(挖矿)
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档