找回密码
 立即注册
  • QQ空间
  • 回复
  • 收藏

科普区块链

qukuailian 2019-12-9 11:25 111316人围观 百科

说起区块链是什么,很多朋友其实是有一些想法的,比如区块链是一个账本,区块链不可篡改,区块链公开透明,以及比特币是区块链的第一个应用等等。

但是要是问起,区块链为什么有这些功能,又为什么能不可篡改公开透明,区块链能做什么,区块链又不能做什么,以及比特币和区块链的关系到底是什么样的?很多朋友可能只隐隐约约有个轮廓,还没来得及细细梳理清楚。

今天借着这个机会,我想给大家讲一讲,区块链到底是什么?区块链为什么公开透明,不可篡改,又能做到什么,做不到什么。让大家做到,知其然,也知其所以然。


区块链,如果用学术标准定义,目前通用的定义为:区块链是一种按照时间顺序的串联而成的分布式链式存储结构。这个定义听起来略有拗口,别急,让我们用通俗易懂的语言解释一下。

很多人把区块链比作是账本,是没有问题的。区块链最初的应用就是记账,为比特币记账。但是账本大家都见过,比如纸质的账本,电子的账本。但是账本这东西,似乎谁都可以删减呀。如果我改的技术高超一些,那么其他人是根本看不出来的。

比如说,账本上有一笔:小李花费11元买入了一本书,只要我把1稍微描一描,就可以变成小李花费17元买入了一本书,这不是随便改嘛。另外,即便是电子账本,就比如Excel,我改掉其中一个单元格的数据,再另存为一份,这样改得神不知鬼不觉,谁也不知道?

为什么区块链的账本就没法修改呢?

其实,区块链既有技术创新,又有机制创新——传统的账本通常是一个人记录,这叫单点记账,就比如上述例子中小李的账本一样。他自己随便怎么修改,别人是无可奈何的。

不过,现在通行的记账法则变成了复式记账,账本可能一式两份,一份三份,同时考虑"资产=负债+所有者权益"。如果两份对账对不上,那么可能就有某些环节出了纰漏。

但是这些账本都是修改的。可以修改,就给想要作恶的人带来很大的作恶空间,或者中心化的故障会带来很大的问题。

比如在一个中美洲国家,当地居民非常依赖当地的银行系统。但是由于水灾影响,大量银行记录遗失,不少居民的相关信用记录就受到了严重影响。这就是传统记账模式的弊端。

但是区块链通过分布式记账解决了这个问题——(对于公有链来说),所谓的分布式就是指账本是完全公开的,任何人都可以下载一份。一个区块链系统可以拥有成千上万个备份,并分布在全球各地。换言之,无论是1份账本遗失了、10份账本遗失,还是100份账本遗失,都不会有任何一丝一毫的影响,账本还将有成千上万个。

我们以区块链第一个应用比特币为例,根据统计,截至2019年12月,比特币网络中有9400多个节点,换言之,比特币的账本总量达到9400个。

在如此多的账本数量之下,任何地区、个人的账本如果不慎遗失了,任何人都可以随时再下载回来。

换言之,如果区块链发展足够知名,有足够多备份之后,区块链账本可以几乎不可能会遗失。

同理,想要篡改账本也不可能的,虽然每个人都可以修改自己的账本,但是他是没法篡改其他人的账本的。即便再厉害的黑客,也无法控制所有人都按照他的思路去修改整个账本。

如果某个人试图修改自己的账本,那么其他人也可以和其他成千上万的备份去比较,在压倒性的证据面前,某人修改了的账本是无处遁形的。

这也就是为什么区块链是公开透明和无法篡改的。

当然,这也带来了另外一个有趣的问题,既然区块链账本者们难篡改,但是如何决定谁来记账呢?似乎有一个人能够让所有人都能服众呀!

这就是区块链账本最有趣的设定——共识机制。

什么是共识,所有人都接受的条件就是共识。它也许不能每个人的利益都最大化,但它总是让一群人的总的群体利益最大化。

比如,公司同事讨论中午吃什么,大家事先商量好,大家投票,最后结果少数服从多数。那么"少数服从多数"这条规则,就是共识。

再比如,同学们有个私人Party,大家都同意:邀请新人加入,必须得到每个人的同意,那么"新人加入必须得到每个人同意"这条规则,就是共识。

同样,区块链的每一个账本所有人必然是"众口难调"的。因此,区块链的世界里,必须也有一条共识机制,作为规则引领所有完成记账。

在比特币系统中,它的共识机制是,所有人都必须计算一道非常难以计算的题目,这道题目非常困难,以至于只能通过不断的依次带入数字去试。

但是,第一个计算出结果的节点,可以公布它的答案,并且获得记账权。可以记录一定数量的内容,例如交易数量、转账地址、密码学签名等。

这些被记录内容,在区块链世界里,也被叫做"区块"。对于比特币来说,一个"区块"大概是1 MB大小,通常可以存储2000-3000笔交易。

同时,题目的计算大约每10分钟就能解出一道,然后再计算新的题目。因此,"区块"们也是每10分钟产生一个。区块实际上就类似于账本上的"一页纸"一样。

每过10分钟,新的"区块"就会按照时间顺序接到上一个"区块"上。这样,区块们就按照时间"链"接了起来,形成了一个长链,那么这个长链再被很多很多的节点分布式存储着,那么这就是一条"区块链"。

老实说,区块链这个词翻译得不够好,其实最早是没有区块链这个词的。最早只有比特币,比特币系统在2008年正式开始落地,在它的白皮书中,包括"Block"和"Chain"两个词。

2015年的时候,大家才逐渐从比特币白皮书中提取出了两个词,并组合成了"Blockchain",中文直译就变成了区块链。

(文章转载,如有侵权,请联系删稿)

我有话说......
相关文章