要回答区块链是什么,先讲几个案例。
- 币小宝买彩票,每次都是买完后30分钟才开奖,我怀疑它有内幕,但又没有证据;
- 911事件中,纽约银行因为所有服务器放在大楼内,导致数据全部被毁,1个月后不得不破产清算;
- 老王欠了币小宝8000块,赖着不还,走司法程序吧太麻烦,我又无可奈何。
区块链可以解决上面的3个问题。
区块链是什么
区块链是一个分布式的数据库。如果把区块链比作一个账本,那么:
账本的每一页就是一个区块,
页面里的内容就是交易记录,
页码就是哈希值,
区块与区块之间通过父哈希链接在一起,构成“区块链”。
区块链示例
区块链是一个包含所有历史记录的总账本。以比特币(比特币用的是区块链技术)为例,从比特币发行至今的交易信息均被记录在区块链上,通过区块链浏览器可以查询。
每一个区块由区块头和区块体构成。区块头由父哈希(上一个区块的哈希值)、时间戳、难度目标等信息构成,区块体由交易记录和其他信息构成。区块头经过两次SHA256加密算法得到区块哈希值,哈希值是区块的身份标识符,与身份证号码类似,具有唯一性。严格来说,区块哈希值并不包含在区块结构内。
区块链的转账过程——以比特币为例
假设给老李转账0.1BTC。要分三步:
- 币小宝发起交易之后,转账消息会首先向区块链网络广播;
- 矿工(节点)对签名进行验证,验证成功后进入交易池,等待打包;
- 矿工打包并计入区块。矿工打包交易时优先选择矿工费高的、占用内存小的交易,当矿工挖矿成功时,会向全网广播该区块,通过验证后,该区块加到区块链上,开始下一轮的挖矿。
- 当区块成功上传至区块链网络后,币小宝这笔转账完成。
交易过程图示
备注:平时银行转账的验证由第三方机构银行来进行验证,而在区块链中由于没有第三方,验证工作由网络中的节点进行。
实际上,比特币区块大小被中本聪设定为1M,由于不同的交易记录大小不一样,每一个区块大约包含2000笔~3000笔交易。为了保证速度,比特币网络大约每10分钟就会产生一个区块。
区块链原理
(1)矿工与挖矿
矿工也被称为节点,所有的节点构成P2P(点对点)的区块链网络。这种分散的P2P网络,不需要任何第三方中央机构的信任便可完成交易。由于区块链网络没有中央服务器,即使遭遇不可抗力的事件,依然可以稳定运行。
(2)矿工为什么要记账呢?这里以比特币为例进行说明。
记账的过程就是挖矿的过程。挖矿可以获得奖励:一是手续费;二是新的区块奖励。
- 转账时用户自行设置手续费,手续越高,矿工会优先打包,意味着转账速度越快;
- 最初一个区块奖励50枚比特币,大约每4年减半一次,现在一个区块奖励6.25枚比特币。区块挖完之后,矿工只有手续费奖励。
比特币网络每10分钟会出一个区块,每一个区块只有一个矿工可以获得。为保证新块挖出的速度,比特币用难度系数调整挖矿难度。具体来说,挖的人越多(算力),难度越大,反之亦然。
(3)如何确定谁获得最新区块?
比特币使用一种被称为工作量证明的算法确定。每一个区块均有一个唯一的哈希值,这个哈希值哪一个矿工先算出来,这个区块就归谁。由于哈希值计算难度非常大,只能靠计算机程序枚举进行,换言之,需要计算机通过大量的运算求解,而且能否计算出来完全看运气。显然,谁的算力越强,算出来的概率也越高,这便是工作量证明。
(4)区块链是如何防伪的
每一个区块都包括前一个区块的信息,随着区块的增加,这个链条会越来越长。如果要修改其中一个区块的信息,必须把后面所有区块的信息都修改,这显然是不现实的。因为这意味着你的算力必须要超过网络上所有节点的算力,而且每一个区块都要超过全网算力,这几乎是不可能的。
总之,区块链是一种非常新颖的技术,对于本文开头提到的3个问题,可以利用区块链的透明、分布式、不可篡改等特性进行解决。区块链之所以能赚钱,是因为本身区块链是一种新技术,可以围绕这种技术产生很多应用,提升生产效率。比特币只是区块链的一个应用而已。
目前我国已经将区块链技术纳入“新基建”,全国各地也在大力发展相关产业。比如央行计划推出的DCEP,我国自主研发的BSN区块链设施网络,北京利用区块链技术提升政务服务效率等等,区块链的出现,必将改变一代人的生活方式。