在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
比特币是什么?比特币这个概念诞生于2008年,那时候的人们一定没有想到,比特币现在的价值常常可以和黄金做比较。随着比特币挖矿的大火,人人都开始关注比特币。然而大众对于比特币的概念依然停留在虚拟货币上,本文就来详细为大家分析一下比特币的原理,希望可以帮助大家更加深入认识比特币。
1、什么是比特币
比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。
2、比特币生成原理
比特币网络通过 挖矿 来生成新的比特币。 所谓 挖矿 实质上是用计算机解决一项复杂的数学问题,来保证比特币网络分布式记账系统的一致性。比特币网络会自动调整数学问题的难度,让整个网络约每10分钟得到一个合格答案。随后比特币网络会新生成一定量的比特币作为赏金,奖励获得答案的人。
3、如何发行
p2p网络每一台电脑都在确认交易,确认交易的方式是运算一个很复杂的数学问题。谁最先算出来,谁就把消息广播出去,经过全网络确认之后,他会凭空得到一些比特币。这个过程叫挖矿。矿工在这里就充当了货币发行方的角色。
这个过程实际就是试错的过程,一台计算机每秒产生的随机哈希碰撞次数越多,先计算出正确哈希值的概率就越大。最先计算出正确数值的矿工可以将比特币交易打包成一个区块,然后记录在整个区块链上,从而获得相应的比特币奖励。这就是比特币的发行过程,同时它也激励着矿工维护区块链的安全性和不可篡改性。
简单的说,大概每十分钟发行一次。中本聪在设计比特币之初就将其总量设定为2100万枚,并且根据全网的挖矿算力调整计算哈希数值的难度,将出块时间维持在10分钟左右。
新比特币在每个网络节点在解决了一定的数学计算(比如,创建新的 block)后生成。这个生成过程被认为是难以重现和 proof of work 的。解决问题后得到的回报是 automatically adjusted,因此在比特币网络的头 4 年,将会产生总额为 10,500,000 BTC 的比特币。这个数量每隔 4 年就自动减半,也就是说在第 4 至第 8 年会产生 5,250,000 BTC,第 8 至 12 年则只有 2,625,000 BTC,如此类推。到最后,总共产生的比特币数量为接近21,000,000 BTC.
另外,伴随着网络一同建立的还有一个系统。平均每隔 10 分钟,该系统就尝试去收集网络上产生的 block 里面的新比特币。创建新比特币的难度系数是随着参与尝试产生新比特币的人数而变化的。整个网络一致认可基于产生最前面的 2016 个 block 所花的时间实现这些行为。因此,难度系数与产生这些最早的 block 所花的时间内投入到产生这些新的比特币的平均计算资源有关。某个人"发现"一个 block 的可能性是他所用的计算资源和所有同时在网络上生成 block 的计算资源的比值。
4、发行期限
最开始每个争取到记账权的矿工都可以获得50枚比特币作为奖励,之后每4年减半一次。到目前,比特币已经挖出了总量的80%,每个区块的挖矿奖励也减半至12.5枚比特币。预计到2140年比特币将无法再继续细分,从而完成所有货币的发行。
以上就是比特币的原理分析。想必大家对比特币的概念已经有了一定的了解,如果还想深入学习区块链的知识,可以在博学谷搜索相关关键词,有优质的视频学习资源等着大家。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
挖矿木马到底是什么?它有多大危害?
近来有报告称,反病毒软件探测到的挖矿木马增长了8500%,基于挖矿木马快速增长的状态,小编整理了总结性的分析研究,帮助大家清晰认识挖矿木马到底是什么?它有多大危害?
20566
2019-07-18 23:40:46
区块链是怎么运作的?区块链工作流程分析
区块链是怎么运作的?要解决这个问题,我们首先要分析一下区块链的工作流程。本文将从区块链的概念出发,为大家娓娓道来。
7525
2019-07-31 14:35:25
密码学怎么学?零基础密码学入门教程
学习区块链开发就绕不开学习密码学技术,对于零基础入门的同学来说,密码学是一个重难点。因此本文将和大家分享零基础密码学入门教程,希望能够减轻大家在学习路上的负担。
10617
2019-08-09 10:41:46
区块链有哪些特性?应用领域有哪些?
学习区块链前,了解区块链是什么很重要,下面我们一起来看看什么是区块链。区块链是由一个个记录着各种信息的小区块链接起来组成的一个链条,类似于我们将一块块砖头叠起来,而且叠起来后是没办法拆掉的,每个砖头上面还写着各种信息,包括:谁叠的,什么时候叠的,砖头用了什么材质等等,这些信息你也没办法修改。
3812
2020-06-17 15:13:50
Golang开发工程师需要掌握哪些技能?
Golang开发工程师需要掌握哪些技能?Golang开发工程师要掌握Golang语言核心语法知识、解析并实现简单业务需求、培养Golang分析及解决问题能力、为继续学习Golang高级课程,成为Golang工程师打下坚实基础。
5917
2020-07-31 16:28:32