比特币实际上是一种电子货币或者叫数字货币,它是基于密码学的货币。这种货币跟我们以前用银行卡里面那个货币不太一样,它的出现是一种传奇。
2008年,全球处于金融危机,当年11月1日,有一个网络极客,他化名叫中本聪(到目前为止也不知道他到底是谁),他在网络上发表的一篇文章,这篇文章我们现在管它叫比特币白皮书,全名叫《比特币——一种点对点的电子现金系统》。他在这个白皮书里面提出了这样一种构想,就是说我们可以设计一种去中心化的电子记账系统。

去中心化电子记账系统
我们在进行交易的时候,最重要的一件事就是记账。比如说我付给你多少多少钱,我要检查我自己的银行卡里还有没有这么多钱,我付给你之后还剩多少钱,这就叫记账。
我们现在的记账是谁来记呢?是银行。我们不管是用信用卡还是用支付宝或者微信,都是银行来记账。我们信任银行,因为银行的背后是国家的信用。
而这个中本聪就说,其实我们并不需要一种中心化的记账系统,我们可以去中心化,每一个人的账本都是让别人去看,都是公开的,这就叫去中心化电子记账系统。
举个例子,比如说有这么几个小朋友,分别叫A、B、C、D,他们进行交易,买东西卖东西之类的,所以相互之间就要进行支付。支付的时候,比如说有一次A先支付了10个比特币给B,这件事情要记账,记账了之后你不能自己留着,你自己留着别人不信,所以你要把这个账单广播出去要告诉所有人,所以说A把这账单告诉B、告诉C、又告诉D,广播到网络上所有人。
过了一会,B也要进行支付,比如说B支付了5个比特币给C,同时B把这个账单告诉D、告诉A,再告诉C。然后这个C又支付,比如支付了2个比特币给D,同时C也要把这个账单告诉其余的所有的人。
那么这个账单我们会把它进行打包,打包成一个块,这个块我们就叫它区块。一个区块的大小大概是一兆,我们可以存4000条左右的交易记录,有时候多一点,有时候少一点,是取决于每一条记录的大小。这个块打包完了之后,我们再把这个块链接到以前的交易记录上,形成了一条链,就把这个块接到以前的块上,然后过一会再把新的块接到它后面,就叫区块链。
我们有了这么一个系统之后就要解决几个问题:
第一个问题,账单以谁为准?因为每个人的账单可能是不一样的。比如说A他可能会先记录A把10个比特币给B这件事,后记录B把5个比特币给C这件事,但是因为网络的延迟效应,D这边可能不是这样,D的顺序可能是先记录B付5个比特币给C,然后A又付了10个比特币给B,每个人的账单可能不太一样,你到底是以谁为准?
第二个就是,我们为何要记账。凭什么你广播给我,我就要收着呢?凭什么我要去花我自己的电脑资源记录一个跟我无关的账目呢?
第三个问题就是如何防伪。比如说B广播的一条消息说A支付了10个比特币给他,但实际上A并没有支付给他,那这就是一个伪造的记录。我们怎么去防伪,怎么去防止篡改,之前的记录被人改掉了怎么办?
还有很多很多其他的问题,比如说如何防止双重支付,一个人同时发给两个人10个比特币,但它实际上一共就只有10个比特币。还有就是如何进行保密,这个信息都是公开的,那别人不就知道你有多少钱了嘛。
我们首先来说一下为什么要记账,是因为记账有奖励。
记账的奖励——挖矿
每一个比特币系统中的用户都可以去记账,如果他记了账,第一,他有手续费收益。手续费什么意思?就是A付10个比特币给B的话,A必须要多付出那么一点点,这一点点就是给这个打包的人,作为给记账的人的一个手续费。你用银行卡的话其实也有手续费,而且还挺高的,如果你用比特币,手续费就低了,这就是记账的第一个收益。
第二个收益就是打包的那个人,他有一个打包奖励。打包的奖励只给其中一个打包的人,奖励是多少?中本聪在2008年提出这个系统的时候,他设计了这样一个方案,就是每十分钟打一个包,最开始这一个包会奖励打包者50个比特币;过了4年之后每打一个包会奖励25个比特币;再过4年就奖励12.5个,也就是每过4年之后它会减半。
咱们来算一算比特币一共有多少个。首先每过十分钟会打一个包,这一个包有50个比特币的奖励。一个小时6个10分钟,可以打包6次。每天有24个小时,每年有365天,前4年的时候都是这样,我再乘个4年。但第二个4年就不是了,第二个4年会减半。因此,我们需要乘以第一个4年,第二个4年乘以1/2,第三个4年乘以1/2的平方,第四个4年乘以(1/2)^3……依此类推。如果将它们全部计算出来,最后大约只有2100万个比特币,通过打包奖励的方式将它们发出去。
这里涉及到一个问题:由于手续费和打包奖励的存在,每个人都想去打包。但是,如果每个人都去打包,以谁为准呢?奖励只给一个人。于是中本聪想出了一种方法,叫做工作量证明。
工作量证明的意思是,每个参与的用户都要做一个非常困难的数学题。只有当你做出了这个题,你才有权利去打包。如果你进行打包,你就会获得手续费和打包奖励。这个问题非常难,无法通过脑力计算,只能一个一个地尝试,直到找到正确答案,这个过程也被称为挖矿。
如果你成功地解决了这个数学问题,你就获得了打包奖励,其中包括几十个比特币。而这个数学问题的难度很高,只能通过计算机进行尝试。因此,挖矿的原理就是基于SHA256算法的哈希运算,尝试不同的随机数,直到找到符合条件的哈希值。谁的计算能力更强,谁就更有可能去挖到这个矿。
你没有办法让自己运气变得更好,你能够做得就是买更多的矿机,然后拼命的去挖矿,这样你就有可能得到这个比特币奖励。
如何防止伪造记录
我们首先来说一下如何保证比特币的交易记录是真实的,也就是如何进行身份认证。
我们必须保证每一条记录都是由比特币持有者所发出的,而不是由其他人伪造的,那么传统的记录认证方式有哪些?比如说可以刷脸,人脸识别,第二个就是签名,我们可以在某个文件上签字,表示认可这份文件,或者再狠一点,我们搞指纹,每个人的指纹不一样,你按了手印就表示你认可。
但是这些方式在电子支付系统上都不能实现,因为无论是人脸、签名,还是指纹,利用计算机系统都可以拷贝,所以我们必须对这种传统的身份认证方式进行更改。
怎么改呢,就是电子签名。首先一个比特币用户他在注册的时候,系统会生成一个随机数,然后通过这个随机数会产生一个叫做私钥的字符串,这个私钥又可以产生一个叫做公钥的字符串。私钥和公钥是对应的,同时又可以产生一个地址,这些东西的重要性是不一样的。
首先私钥你必须保存好了,他是你私有的、保密的,如果你的私钥丢了,那你的所有比特币就都不见了。所以有些人把私钥放在一个不联网的电脑里,也有人把它背下来记到脑子里。
而公钥和地址都是公开的,如果你想让别人给你钱的话,你把你的地址告诉他就可以了。如果你想给别人钱,你要把你的公钥和地址一起发送过去,但这两个都是公开的,没有关系,通过公钥反算不出来私钥,因为SHA256算法只能正着算,反着算不出来,私钥可以推导出公钥,公钥无法推导出私钥,这就是一种加密手段。
那私钥和公钥有什么作用呢?私钥可以对一串字符进行加密,而公钥可以把这个私钥加密之后的数据进行解密,加密和解密它对应的钥匙不一样,这种加密方法我们称之为非对称加密,最典型的非对称加密就是RSA加密。
比特币使用了非对称加密,它加密的时候使用私钥,解密的时候使用公钥,只有你能够加密,而任何人都可以解密你加密之后的信息。
假如有一个人A,他想付给B 10个比特币,他该怎么办?首先他写一条记录,就是A付给B 10个比特币这么一条记录,写完记录之后,他把这条记录进行数字摘要,也就是哈希运算,通过SHA256算法算出来一个摘要,然后再通过自己的私钥进行加密,加密完了之后就会产生一个密码,然后他把A给B 10个比特币这件事儿对全网进行广播,同时还要把自己的公钥广播出去,同时他还要把刚才经过加密之后的这个密码也广播出去。
别人拿到他的广播之后就去要验证是不是真的,怎么验证?首先其他接收到这条消息的人会对这条信息做哈希运算,得出一个摘要来,如果这个摘要和A自己算出来摘要完全一样,就认为这个确实是A的广播,如果不一样,那就说明这条消息是伪造的,所有用户都会拒绝这条消息。
这样一来就保证了所有A发给B的消息都是由A签发的,这种方式我们就称之为电子签名,是利用了哈希运算的办法来进行签名。其实我们的银行卡很多的时候也是用这种方法进行签名的,原理差不多。
如何解决双重支付问题?
我们首先先来说一下如何进行余额检查。什么叫余额检查?就是说你本来只有10个比特币,你非要付给别人20个,那我就要拒绝。我怎么去拒绝这件事?
我们知道区块链是把很多交易信息一个一块打包,再把它穿一个串链起来的,而且每一个人在使用这个区块链的时候,他都会下载所有信息,就是从第一个创世区块开始,一直到后面所有的信息他都知道。
如果有一天A说我要付给B十个比特币,并且把这件事给广播出去,别人接触到这个信息之后就去检查,去找A的比特币从哪来的,比如是通过挖矿获得了50个比特币,然后他已经支付了20个,这样一来人们一算他现在还剩30个,所以他付给B 20个这没问题,于是这条消息就会被网络所接受。
如果A说要付给B 60个比特币,那么别人一算发现你只剩30个,别人会拒绝这条消息,所以它不会被确认,A把它发出去也没有用,因为不能被确认。什么时候被确认?直到这条消息被别人接受了,并且打包到一个新的区块里边才确认。
这样就可以解决余额的问题,方法就是通过追溯以前的区块信息。
那么第二个问题,如果A进行了双重支付怎么办?
什么叫双重支付?比如生活中有这样一种人,他卖房子的时候同时跟两个买家签约,他把一个房子卖了两次,这就叫双重支付。
同样在比特币上也存在这样一个问题,假如有一个人A他本来只有10个比特币,但他几乎同时发了两条消息,第一条消息是A付了10个比特币给B,第二条消息是A付了10个比特币给C,那么这会有什么结果呢?
每一个在这个网络上的接收者接收到A的消息之后,都会去算A的余额还够不够,如果有人接触到第一条消息,他再接受第二条消息就会拒绝。当然也有一些人可能先接触到第二条消息,这样一来他自然会拒绝第一条消息,但此时无论第一条消息还是第二条消息都还没有被确认。
什么时候确认呢?直到有一个幸运儿找到了那道数学题的解,打包了一个新的块,这个区块里边就包含“A付了10个比特币给B”这个消息,这时候第一条消息被确认了,第二条消息就被抛弃了。
同样道理,如果第二条消息优选被打包确认了,那么第一条消息就会被放弃。所以当我们接收到别人给我们付款的时候,我们不能当时就认为钱已经到账了,我们必须等一下,等到这个块已经形成了,这条消息已经被记录到主链上了,才能认为这个钱真正打给我们了。
如何防止篡改?
比如说有一个人想篡改记录,他不可能伪造别人的签名,但他可以删掉某一条记录,比如说他本来付给了别人10个比特币,现在他想把这个记录删掉,篡改一下这个纪录。那我怎么防止这件事?
比特币有个原则,叫最长链原则。就是说这是一个区块链,很多矿工在那拼命地找方法去打包一个新块,结果很有意思的是,几乎同时有两个矿工分别找到了一个新的块,然后把新的信息向周围人广播,广播了之后有些人一看,上面这个已经有人找到新块了,底下人一看也有一个人找到块了,那么现在有这两拨人,每一拨人都以自己接收到的第一个新块为准,当然他也知道好像还有个分支,那怎么办?
他们先不管,先按照自己的接受到的块继续往下算,直到某个时候有个幸运儿算出来了下一个块,于是就在自己战队的排列上又加了一个块,此时大家一看其中一条链比另一条链长了,当他把这条消息广播出去之后,全网都知道了更长的这条链,这样一来这些人就会重新站队跑到更长的那条链下面去,然后大家再继续往下去算。那刚才找出短链的这个矿工就失败了,他算出的结果被废弃了。
有人说我就在我这条链继续往下走,那也可以,但问题是全网的基本原则都是找最长链,如果你认为你自己一个人可以对抗其余所有的人,你到最后造的这个链比刚才那个链还要长很多,那也行,你就继续挖你的。什么时候你算的比全世界算的还要长了,那么全世界的人都会来跟随你,你就伪造就成功了。
也就是说,理论上讲是可以篡改记录的,但改动之后别人不承认,除非你的计算能力超过了世界上其余所有的人。那有人说万一就有这样一个坏人,他控制了全世界50%以上的电脑,然后就为了改掉一个区块链的记录。
如果一个人他有很多钱的话,他就不会甘当一个小偷。同样道理,如果有一个人能够控制全世界50%以上电脑的话,那么他不会去通过这种办法就为了抹掉自己的一条记录,他还不如努力挖矿赚更多的奖励,让自己变得更有钱。
所以,比特币就是通过这样的方法来防止篡改的,就是你一旦想篡改,你是跟全世界的人对抗,你需要链接很长的链,还要战胜全世界其他所有的人,这件事的可能性是非常非常低的。而且随着后续链的增加,改动的难度就越来越大。
所以一般大额的交易都要多等几个块,比如等6个块之后,我们就认为基本上没有可能再去进行篡改了。
结语
比特币作为一种技术手段是非常新颖而且漂亮的,它没有一个中心发行机构,不用担心主权危机,总量固定不会存在滥发的风险,天生具有防伪属性,而且可以追溯,交易手续费也很低。由于有这么多优点,有人甚至提名中本聪应该获得诺贝尔经济学奖。
但是又因为比特币是一种匿名货币,它在交易的时候只需要一个公钥和一个地址,你不知道这公钥和地址背后到底是谁,所以就给很多犯罪分子提供了可乘之机,比如有人利用比特币进行敲诈、贩毒、洗钱等,因此受到了一些政府部门的打击。
还有一些人把比特币当作一种投机手段,比特币暴涨暴跌造成了许多人一夜暴富,也有许多人倾家荡产。大家应该把比特币看作是一种技术手段,如果要购买比特币,也应该从投资而不是投机的角度,因为从长期来看,任何投机行为都会使你输得倾家荡产,而只有投资才能使你稳定获益。
文章内容仅供参考,不构成投资建议,投资者据此操作风险自负。转载请注明出处:天府财经网