首页 > 互联网 > 能让人一夜暴富,比特币是机会?还是陷阱?

能让人一夜暴富,比特币是机会?还是陷阱?

2009 年,比特币横空出世,绝大多数人对此全然不知。即便是在 10 年后的今天,对绝大多数人来说,比特币也依然神秘、很难清楚地理解它。随着越来越多关于比特币的信息被人们所知晓,不少人对比特币产生了好奇:比特币到底是什么?比特币能给我们的生活带来什么价值?比特币是否具有投资价值?很多问题接踵而来。本期文章将对比特币进行尽可能易懂的解读。


什么是比特币?

2008年爆发全球金融危机,2008年11月1日,一个自称中本聪(Satoshi Nakamoto)的网络极客在P2P foundation网站上发布了一份名为《比特币:一种点对点的电子现金系统》白皮书,比特币概念从此而来。中本聪的身份极其神秘,十几年过去了至今还没有人知道他的真实身份。

根据中本聪在白皮书上所描述,比特币(Bitcoin)是一种新型虚拟的加密数字货币,代表一种端到端(去中心化)的电子现金系统(电子记账系统)。

在现有交易体系中,无论是微信、支付宝还是银行卡都是由银行来进行记录(记账)的,我们先在银行开一个账户,最开始账户是清零的,然后我们往账户上存1000元,银行就会在账户上记录有1000元进账,账户余额就从零变成了1000元,如果我们取500元,银行就会记录减少500元,账户就变成了500元。而这种记录方式,是基于我们对银行的信任,相信银行不会记错账,也不会私自对账单进行更改。而我们记账用的货币则是依靠政府的法令使其成为合法通货的货币,也就是法定货币(简称法币),比如人民币、美元、卢布、日元等。

中本聪在白皮书上提及的电子记账系统是一种基于一系列加密手段从而实现安全可靠的去中心化的电子支付系统,允许任意双方在不需要信任银行等第三方金融机构的情况下直接交易。在这种交易中需要使用的货币就是比特币,与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法由系统自己生成。

去中心化交易

讲到这里大家最大的狐疑可能是 “你凭什么取代银行的电子记账系统?”,以及 “货币这东西你说发就发啊?”下面就为大家讲解中本聪为了说服大家进行的技术设计;这种点对点的电子记账系统工作原理是什么?也可以说比特币是怎么实现流通的?

按照中本聪的设计,我们在交易的时候可以去中心化,就是每一个人的账本都让别人去看,都是公开的。比如说有张三、李四、王五、赵六四个人进行交易,张三支付10个比特币(BTC)给李四,张三这时候需要记账,并且广播出去,把账单分别告诉李四、王五、赵六,这下大家就都知道了这笔交易的账单;假如这时候李四又支付5个BTC给王五,李四又把这个账单分别广播给张三、王五、赵六,这笔账单也被大家知道了;接着王五又支付2个BTC给赵六,王五也要把账单告诉所有人。

去中心化交易记账示意图

为了方便更好的管理,系统还会把这些账单进行处理,打包成一个块,这个块就是比特币的区块,这个块打包完,再将它链接到以前的交易记录上就形成了一条链,后面的交易账单打包好也要链接到这个区块上,这就形成了比特币的区块链。

比特币区块链示意图

搭建了这种去中心化的记账方式之后,还需要解决很多问题,比如为什么要去记账?以谁的账单为准?

为什么要去记账?

我们上面提到BTC的交易账单是对外公开的,会广播给每个用户,那么其它为什么要花自己的计算机资源去帮别人记录信息呢?按照中本聪的设计,系统会对记账的人给予奖励,这个奖励包括交易的手续费和每次记账(打包)时系统自动生成的BTC奖金。

按照设计,BTC的总个数是恒定的,大概2100万个,每个区块的第一笔交易是一个特殊的交易,它会生成新的BTC奖励给打包者,而且生成BTC的数量是按照一定规律变化的。在一个生产周期内,当BTC新生成的数量达到剩余数量的一半时,系统就降低BTC的产量(称为减产)。最开始每次打包会给打包者50个BTC,当生成的BTC达到2100万的一半(1050万)时,每次完成打包给到打包者的奖金就降为原来的二分之一也就是25个BTC,从而进入下一个阶段。在新的阶段生成的BTC达到1050万的一半(525万)时,每次的打包奖金又降低成25的二分之一12.5个BTC,再进入下一阶段,如此就可以一直循环下去,但也就意味着打包获得的奖励也会越来越少。

而另外一部分奖励手续费由支付方付出,手续费与单笔交易金额无关,所以支付10万比特币与发送1个比特币的手续费都是一样的。

某时间段打包奖励

有了奖励,愿意记账的人就多了,那么让谁记账,或者以谁记得的帐为准就成了问题。中本聪就设计了一个办法—工作量证明。工作量证明就是每一个想记账的用户都要去做一个很难的数学题,你把这个数学题做出来,你就去打包账单,赚取奖励。有人可能会好奇就做数学题那岂不是太简单了,其实不然,这个数学的复杂到没有一个人可以用脑子把它计算出来,必须要一个数一个数去尝试,直到最后尝试成功,才能获得记账的奖励。这个过程就是挖矿。

这个数学题根据哈希函数中一种sha-256的算法来设定。哈希函数又称散列函数,是把任意长度的输入(字符串)通过散列算法变换成固定长度的输出,该输出就是散列值(哈希值)。

sha-256是美国国家安全局发明的一种加密算法,如果把一个字符串输入到sha-256函数中,我们会得到一个256位二进制数,这个二进制数就是相应的哈希值,而且无论你是输入一个数字“1”还是输入一部10G的电影,结果都会得到一个相应的哈希值,但如果输入的字符串发生很小的变动,哪怕是加了一个标点符号,结果也会大不相同。sha-256函数最大的特点就是我们正向计算就比较容易,反向计算就非常的难,也就是说我们有输入值,算对应的256二进制数很容易,但是有二进制数去算输入了什么就非常困难。

友情提示:当你感觉有点懵的时候,请坚持读下去或反复读几遍,然后你可能就懂了...

比如说有这么一个函数:,那么,当我知道X的值,去算y是多少就比较容易,而我们知道y的值去算x就要难的多,sha-256比这个函数要复杂的多,所以想要进行方向计算基本上就不可能实现,只能去假设一个输入值,去认证输入值对不对,如果猜对了,那就计算成功,如果猜错了就换个字符串继续认证。

挖矿的具体原理是这样的:

根据要求,每一个比特币区块大概由头部信息和交易账单两部分组成,当一个区块链接完成,要开始进行下一个区块打包链接的时候,就有很多人拿着各自在网上收集的账单去做数学题。

这个数学题会给出输入字符串的格式,这个字符串主要由几部分组成,包括前一个块的头部信息、自己收集的账单记录、用于确定时间点的时间戳和对于做题挖矿最重要的随机数。这个字符串当中,其它内容都是固定不变的,只有随机数可以改变。

有了字符串以后,对该字符串进行两次sha-256运算,hash(哈希值)=sha-256(sha-256(字符串))。

要求算出来的哈希值符合一定的要求:前n位必须是零。比如说系统要求你算出的哈希值前9位必须都是零,当你把字符串输入之后,算出来的结果正好满足这个情况,那么你就获得了打包的权利,你把算出来的哈希值当做头部信息和你收集到的账单一起打包成一个新的区块链接到前一个区块上。如果算出来哈希值不满足前9位都是零,那就需要改变随机数重新计算,直到有人算对为止。

用十六进制表示的哈希值

这里需要注意的是,每个人在计算的时候,他的题目难度是不一样的,因为每个人的搜集到的账单可能是不一样的,开始的时间也可能是不一样的,种种原因会导致字符串不一致,所以算出来结果的难度也不一样。但是以整体情况平均来看,就是谁的计算能力更强,谁就更有希望打包这个块,得到这个奖励。

相对于用户之间的难度差异,系统出题时的难度也是变化的,出题难度的变化取决于对哈希值前几位为零,要求前多少位为零的数越大,算题的难度也就越大。因为这个计算无非反算,我们只能一个个之去试,由于输入的未知性,对于结果来说,每一位数字都可能为“0”或“1”,所以第一位为“0”的概率是,前两位都为“0”的概率是,前n位都为“0”的概率是。所以要求为零数n越大,计算成功的概率就越小,难度也就越大。

这里影响难度的主要因素还是算力的变化。中本聪当时设计的时候要求平均每十分钟打包一个块,如果全世界的算力增加,计算出结果的时间小于10分钟,系统就会改变n的数值,让n变大,增加难度。如果算力变小,计算时间超过十分钟,系统就会改变n的数值,让n变小,降低难度。

以目前全球矿机算力为参考,大概为120 EH/s,十分钟的算力已经超过120*60*10 =72000EH,也就是十分钟可以完成次哈希运算。所以n值大概需要满足=,n约等于76。这时候系统就会把n设置成76,第一个计算出哈希值前76位数都为零的人就获得记账的权利,所以选择谁去记账或者以谁的账单为准大致就是这个原理。

某一时间点的打包出块示意图

根据个人的理解,中本聪当时的定义的比特币更大程度上是一个记账系统,而为了把这个系统运转起来需要一种数字货币,也被称为了“比特币”,所以数字货币的价值就是背后这个电子记账系统技术价值的体现。

本期的内容就进行到这里,如果大家感觉文章有用请帮忙分享给他人,也欢迎大家在评论区交流指正。下期文章将为大家分享比特币是如何进行交易并对账单防伪的?

本文来自投稿,不代表本人立场,如若转载,请注明出处:http://www.souzhinan.com/hlw/374998.html