29

什么是比特币的记账与发行机制

 4 years ago
source link: https://news.huoxing24.com/20200222094531427729.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

比特币的支付需要有人记账,区块链账本是一个去中心化的账本,谁都可以参与记账。那么,为什么就有人来记比特币的账呢?既然谁都可以记账,那又以谁的账为准呢?怎么确保账目的真实性呢?

AbmAnmR.jpg!web

首先,记账是有奖励的 。一部分奖励是被打包区块里用户自己出的手续费,手续费用比特币支付,这个手续费可高可低,给得高,记账者就倾向于先记这笔手续费高的账。另一部分奖励则是区块奖励,打包一个区块,就获得一定的区块奖励。比特币诞生之初,区块奖励为50个比特币,按比特币程序设定,每出 210000个区块后,奖励减半,现在已经经历了两次减半,预计 2020年5月时会发生第三次减半。区块奖励一方面调动了大家去记账,另一方面也解决了比特币的发行问题。按照上述规则,我们可以按这个公式计算比特币的总量,就是 210000×50×(1+1/2+1/4+……),总共 2100万个。

有了奖励,而且奖励颇丰,大家当然抢着去记账 。为了确定以谁的账本为准,比特币又设定: 记账者要先把收集到的账单打包成一个区块 ,区块由区块头和区块体组成,区块头里有个记账者自定的随机数,记账者换上不同的随机数,对区块头进行哈希运算,谁先试出符合要求的哈希值,他就将这个区块广播全网,大家都以他的账本为准。

区块头和区块体是什么关系呢? 区块体里记录了具体的账单,包括记账者自己所得奖励和手续费的账单。 区块头则相当于该区块的身份信息,里面有上一个区块头的哈希值、时间戳、哈希运算的难度目标、随机数等信息,还有一个Merkle树哈希值,Merkle树哈希值由区块体里的账单经过一系列哈希运算得到,相当于区块体里那些账单的摘要信息,只要账单稍有变化,Merkle树哈希值就会大不相同。

哈希算法又被称为摘要算法,输入任何数据,经过哈希运算后,都会得到一个固定长度的输出值 称为该输入数据的哈希值 。哈希运算有两大特点 第一,只要输入数据稍有变动,哈希值就会大不相同,比如输入一本书的内容,只要多加一个字,哈希值都会面目全非。第二,哈希运算只能正向算,不能反向算,输入数据后可以很快算出哈希值,但给出哈希值,就没法反推它的输入数据,要想知道输入数据就只能一次次输入不同数据去尝试,直到试出为止。这可能比较难理解,这就好比可以轻易地算出29179×87013=2538952327,但要是问你 2538952327是哪两个数的乘积,你就只能一个数一个数地试。

争夺比特币记账权时算的哈希值是个256位的二进制数,符合要求的哈希值,就是小于某个特定数值的哈希值,这个特定数值也就是区块头里的难度目标,可以简单地将其视作前面数位都是 0的哈希值(当然后面数位的大小也有要求,这里为简便起见只谈论前面数位为 0的情况)。例如,难度目标要求哈希值前面 70位都是 0,在计算过程中,记账者手头的账单、时间戳等信息都是固定的,记账者能改变的只有随机数,他就加上不同的随机数去试。算出的哈希值是毫无规律的,哈希值每个数位上出现 1和 0的概率各是 1/2,一次就试出前面 70位都是 0的哈希值,概率是 1/2^70,想增大试出的概率只能做更多哈希运算。全世界想获得比特币奖励的人都会收集网络上的比特币账单,打包成区块,进行哈希运算。谁先试出了前面 70位都是 0的哈希值,他就立马将自己的区块广播全网。大家一接收到该区块,验证无误后,就以该区块的账单为准,在此基础上继续收集账单继续计算,争夺下一个区块的记账权。这 种试出符合要求的哈希值并获得比特币奖励的行为,也被称为挖矿,专门进行这种计算的机器,就被称为矿机,参与挖矿活动的人,称作矿工,记账的手续费,就叫矿工费。

YJZbIvq.jpg!web

至于到底要求哈希值前面要有多少个零,则是由系统每隔2016个区块就自动调节一次的,增加一个 0就会在原来基础上增加 1倍计算难度,反之同理,总之就是要让平均 10分钟左右能出一个块。这样一来,谁的计算能力强,谁在单位时间内计算次数多,谁就有更大的概率试出符合要求的哈希值,得到丰厚的比特币奖励,这种模式也被称为工作量证明。世界各地的矿工竞相寻找便宜的电力,修建矿场,布置矿机,就形成了目前浩浩荡荡的挖矿局面。由于现在全网算力很高,单枪匹马已经很难挖到矿了,于是大家把算力集中起来,就形成了一个个矿池,矿池出块的概率就提高了,然后再按各自贡献的算力大小相应分配收益,矿池会收取一定的手续费。

从上文可以看出,比特币的账本是传遍了全网的,保存在全网的,大家都验证过了的,公正可靠,无法篡改,且根本无法销毁。比特币用于转账和支付只需发出一条信息就行了,可以轻易地在全世界流通。

我们也可以看出,给出哈希值,想试出它的输入数据有多么困难,只要求哈希值前面70位是零,都要试上 2^70≈1.18×10^21次才有一次机会,若想试出整个哈希值,全世界所有超级计算机计算能力翻一亿倍,一起算上几十亿年,也试不出来。 这些算法,就是比特币安全性的保障

所以,比特币的价值之一在于其发行机制,可以规避传统法币容易发生的通货膨胀,希望读过这篇文章的朋友可以向你的朋友们科普一下比特币的价值,也可以简单地将此篇文章转发给你的朋友,并关注1TMine,每周我们将为大家带来一篇区块链科普文章,每周学一点区块链,共同成长!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK