区块链和比特币

区块链和比特币发明的初衷是希望可以创建一套新型的电子支付系统,这套系统“基于密码学原理而不是基于信用,使得任何达成一致的双方能够直接进行支付,从而不需要第三方中介参与”。

  • 区块链是由一个个区块组成的,区块上面可以记录数据。区块有前后顺序,后一个连着前一个,好像一个链,所以叫区块链。
  • 随着要存储的数据增加,区块链的区块数量也会增加,这样区块链就越来越长,寻找新的区块的过程叫挖矿,挖到矿(寻找到新区块)会给予一定量比特币奖励。
  • 交易数据如果存储在第三方服务器上,如银行的服务器,银行服务器一旦被黑客攻破,那数据就有可能被修改或损坏。银行的服务器如果坏了,那这个银行的所有数据就丢失了。但是区块链上记录的数据不会,因为区块链不是存储在某几台计算机上的,互联网上数万亿台计算机上都有数据备份,任何人只要连接互联网随时都可以读取上面的数据。这样做的好处是:数据不会丢失(除非互联网上所有计算机都坏了);黑客没法攻击(除非黑客能攻击互联网上大多数计算机)。这样区块链就构成了一个不依赖于第三方机构(去中心化)的可靠的数据存储系统。

既然区块链是存储在互联网上的,并且随着要存储的数据量的增加需要增加新的区块,那这个新区块是由谁提供的呢?答案是谁都可以寻找。那以谁找的为准呢?答案是区块链用一种技术来保证一段时间内只有一个人能够找到符合要求的新区块,这样就不会存在冲突。实际上区块链的区块平均每10分钟能找到一个。

比特币是一种虚拟货币,就像QQ币。基于比特币进行的所有交易都会记录在区块链上面。

比特币系统设计了一套规则,规则如下:

  • 一个区块是谁挖到的,系统给予区块提供者(矿工)一定量的比特币奖励。另外凡是记录在这个区块上的交易,交易的手续费也归这个矿工。
  • 一个区块能够记录很多基于比特币的交易记录,包括挖到本区块的系统奖励记录。
  • 一个区块除了存储交易记录外,还包含上一个区块的一些信息,还有一个随机数。挖矿就是寻找这个随机数的过程,要求区块上的信息和这个随机数拼接成的字符串通过一个哈希算法,得到的值的前n位数必须为0。(第一个区块不包含上一个区块的信息,因为对第一个区块来说没有上一个区块)

为了获取挖矿的奖励(截止到2018年初大概几十万到数百万人民币),矿工们都会积极的挖矿,但是由于这个新区块产生是有要求的(新区块hash值前n位必须为0),所以这个区块很难算出来,区块链就是靠这个来保证产生新区块的速度的。每算出这样一个新区块需要的计算量大概是世界上所有寻找新区块计算机的计算力总和计算10分钟的计算量。

获取比特币只有两种情况:

  1. 寻找新区块并找到新区块,那么系统会自动将一定数量的比特币打入你的账户。
  2. 和别人进行比特币交易,这种情况比特币只会从一个人的账户转到另一个人的账户,你俩的比特币总量是不变的(忽略手续费的情况下。实际情况还可能会有一部分手续费进入矿工的账户,但是比特币量不会减少)。

由于区块链上记载着比特币产生以来全部的交易记录,所以每一个账户的比特币余额都是可以计算出来的。而且所有账户的比特币总和是一定的,等于系统奖励给矿工的全部比特币数。

挖矿的规则还规定,随着区块链越来越长,挖到矿获得的系统奖励会越来越少。具体是:每增加21万个区块,挖矿奖励减半。最开始奖励是50个比特币,大概3年10个月减半一次,截止到编辑本文,挖矿的奖励是12.5个比特币。也就是说,越往后挖矿奖励越少,全世界的比特币总数不会超过2100万个,有点像地球上的黄金总是是固定的。到那时候挖矿系统就不会给比特币奖励了,那人们挖矿的动力是什么呢?虽然挖矿不再给系统奖励了,但是挖到的区块上记录的交易的交易手续费还是会给矿工的。

开始的时候,挖矿的人不多,随着时间的推移挖矿的人越来越多,那整个寻找新区块的计算机群的运算能力也就越来越大,怎么保证平均每10分钟计算得到一个新区块呢?答案是我们可以通过调整区块产生规则,前面说了,新区块要求区块本身的hash值前n位数必须为0。我们如果规定前1位为0需要的运算量和规定前10位为0需要的运算量是不同的(详细原理参考hash算法)。所以我们可以通过隔一段时间调整一次n的值来保证区块产生的平均速度。

如果同一时间产生了两个区块都符合要求怎么办?这种情况总可能会发生。如果同一时刻产生了两个区块,那区块链就分叉了,这时候我们还无法决定究竟以哪个为准,这时候需要等待下一个区块产生。由于新区块记录了上一个区块的信息,新区块会以区块链分支中的某一个分支为基础计算产生,这时有很多矿工是基于第一个分支计算新区块的,有另一些矿工是基于另一条分支计算新区块的,最终看下一个产生的新区块是基于哪个分支的,就以那个分支为准。若再分叉就再等下一个区块产生,总有不冲突的时候出现,便决定了哪个分支是有效的,其余分支就标记为无效。也就是说区块链的有效分支总是最长的那一支。

一笔比特币的交易可能需要在产生数个新区块后才能确认(因为有分叉情况可能会出现)。虽然长远来看区块链是唯一的,但是如果出现了分叉短时间内无法确定以哪一个分支为准,所以需要等待能确定的时候才能真正的确认区块链上记录的交易。

这样通过以上这些规则就可以建立起一套去中心化的记账系统,而且自带虚拟货币,也就是比特币。原则上我们就可以不需要银行或支付宝等这类第三方机构来统一管理交易了,也不存在数据丢失或者被黑客攻击的风险,也不需要政府国家来统一发行管理货币,因为货币发行管理规则是系统创立的时候就定好的。

这将是一个改变世界的发明。

当然目前还存在很多问题,比如一个区块能记录的交易记录数是很有限的,渐渐已不能满足越来越大的交易量要求。而且交易的确认也比第三方机构管理的交易确认需要更多时间。所以还需要新的数学算法来优化和推进区块链技术的发展。

虽然存在诸多不足,但是其优势也是巨大和明显的。如因为整套规则都是基于算法,不需要第三方中介机构的参与,可以节省大量的人力成本,而且不存在数据被篡改、破坏或丢失的风险;货币的发行和流通也摆脱了国家的操纵,也不存在汇率转换等问题,流通起来更加方便容易等。总之这项发明未来将给世界带来不可估量的价值。

猜你喜欢

转载自blog.csdn.net/xuejianbest/article/details/80403758