映月读书网 > 图说区块链:神一样的金融科技和未来社会 > 讲一个故事,什么是区块链 >

讲一个故事,什么是区块链

区块链与骑自行车的人

2016年,包括摩根大通、花旗集团、高盛集团、纳斯达克等在内的金融巨头,都表达了对区块链技术的热衷。这些巨头们热衷的区块链技术,又被称为分布式账本,那么分布式账本究竟是什么呢?我们先从另外一件事说起。

在纳斯达克成立之前,人们用自行车驮着装满债券的包,在华尔街骑来骑去,目的就是尽快完成清算。后来业务越来越多,自行车就忙不过来了。20世纪60年代,华尔街每周只交易4天,每天4个小时,就是为了能让清算速度跟上交易量。

图2–1华尔街上骑自行车的人

这样发展下来,大家觉得不行啊,自行车肯定跑不过计算机。1971年,有人就开会说,咱们想想办法吧,于是提出了DTC(美国存管信托公司)清算系统。这个系统的办法就是所有的交易都要在系统内进行,包括经纪人也要接入这个系统,现在纳斯达克还在用。

很明显,它的问题只是换了一辆可以踩油门的自行车。我们常常看到一些影视剧里,皇上、一家之主的去世导致整个国家和民族陷入混乱甚至崩溃,根本原因就在于中央集权这种系统是没办法长存的。当交易足够多、经纪人足够多的时候,我们发现,这个系统也有瘫痪甚至崩盘的危险。

图2–2 中心化的DTC清算系统

于是专家们想,自治式、分布式的系统会不会好一点呢?答案是肯定的。区块链就是一个分布式的账本,每个节点都可以显示总账,然后维护总账,而且不能篡改账本,除非你控制了超过51%的节点,但这是不可能的。

再简单一点,假如你们家里有个账本,让你来记账。在以前,就是爸爸妈妈把工资交给你,让你记到账本上——想想还是有点小激动的。中间万一你贪吃,想买点好吃的,可能账本上的记录会少十几块,然后你想买个手机,账本上就少记录几千块。这只是举一个例子,我相信小时候大家都想从爸爸妈妈的口袋里拿点钱来花。

图2–3 中心化的家庭账本

但有了分布式账本后,这些问题就不会有了,因为你在记账,你爸爸也在记账,你妈妈也在记账,他们都能看到总账,你不能改,爸爸妈妈也不能改,这样想买烟抽的爸爸和想贪吃的你都没办法啦。

区块链本质上是一个去中心化的分布式账本,其本身是一系列使用密码学而产生的互相关联的数据块,每一个数据块中包含了多条经比特币的网络交易有效确认的信息。

图2–4分布式家庭账本

中心化与去中心化

前面我们说到了区块链的本质是一个去中心化的分布式账本,那么,所谓的中心化又是什么呢?我们首先思考这样一个问题,你要在网上买一本书,交易流程是什么?

第一步:你下单之后把钱打给了支付宝。

第二步:支付宝收款后通知卖家可以发货了。

第三步:卖家收到通知后给你发货。

第四步:你收到货之后很满意,于是确认收货。

第五步:支付宝收到了你的通知并打钱给卖家。

图2–5 中心化的交易流程

我们可以看出,在这个过程中,虽然你是在和卖家交易,但是整个交易都是围绕支付宝展开。因此,如果支付宝系统出了问题,比如天上降下来一块陨石,把支付宝的服务器全砸了,或者由于全球经济危机支付宝倒闭了,无奈的支付宝只好淡然地表示不存在这笔交易,那么这笔交易就会以失败告终,到时候买家卖家就会纠缠不清,双方无法自证。

图2–6 中心节点毁坏会导致交易失败

模拟一个区块链小城市

为了说明去中心化的区块链是如何运行的,我们先把整个去中心化的分布式结构简化为一个极端的情况来探究。我们假设有一个去中心化的小城市,在这个城市里有5个可爱活泼的小伙伴,他们互相借钱的时候,是这么干的:

假设B向A借了1块钱,这个时候,城市里的人怎么办呢?A在人群中大喊:“我是A,我借给了B1块钱!”B也在人群中大喊:“我是B,A借给了我1块钱!”

此时城市里的其他人C、D、E都听到了这些消息,他们拿出了手中的小账本并默默记下:“某年某月某日,A借给了B1块钱。”

图2–7 去中心化城市的记账

当我们把一个去中心化的模型极度简化之后,我们就会发现,在这个只有5个人的城市中,已经建立了一个去中心化的系统,这个系统不需要银行,也不需要支付宝。这个模型不需要信任关系,也不需要一个拥有公信力的组织。当分布式结构中的每个人都记账的时候,篡改账本是不可行的。比如B突然不认账了:“我不欠A的1块钱!”这个时候,人民群众C或D或E就会站出来说:“不对,我的账本上明明记录了你在某年某月某日向了A借了1块钱,并且没有查到你还款的记录。”

图2–8 去中心化账本无法篡改

说到这里,你有没有发现一个问题,在这个模型中,所谓的1块钱根本不重要,也没有人在意,“1块钱”已经变成了一个变量,它可以被替换成任何概念,只要大家承认这是一个有价值的东西即可。

比如A在这个城市中大喊一声:“我创造了一个巴拉拉能量!”城市中的其他人都听见了,于是大家纷纷在自己的小本子上记下“某人有一个巴拉拉能量”,大家甚至不用知道巴拉拉能量是什么,A竟然真的有了一个巴拉拉能量。之后呢?A还能干什么呢?A可以再大喊一声:“我给了B一个巴拉拉能量。”

图2–9 巴拉拉能量的流通

只要城市中的B、C、D、E,即城市里的所有人都承认了这个交易,那么这个交易就真的成立了,虽然现实生活中并没有巴拉拉能量。

小城市里的几个问题

当然,区块链的世界不会这么简单,它还有其他的规则来相互制约,我们先来解决下面这几个问题:

问题一:凭什么帮你记账?

凭什么你对着天空大喊一声,别人就要帮你记账,别人的时间不要钱吗?别人的小本子不要钱吗?于是,为了让大家都帮我记账,我增加了一条新的规则,我决定给第一个听到我喊话并且将其记录在小本子上的人奖励。奖励机制也很简单,第一个听到我喊话并记录下来的人,可以得到一个巴拉拉能量的奖励。

这个巴拉拉能量不是白给的,是对你劳动的报酬,就像打工可以挣钱一样,你帮我记账,整个系统都会给你报酬。你要做的事情,有这样几点:首先,你要抢在所有人之前听到了我的喊话并记在了自己的小本子上;记录之后,你还要马上告诉整个城市里的人——这句话我记录完了,你们再记录也没有用了,别人就会放弃这笔赚钱的生意;与此同时,你还要做一件事,就是给自己的记录加一个独一无二的编号,然后把记录和编号一起喊出来,于是,下一个人再记录的时候,就会带着这个记录和独一无二的编号继续下去。

图2–10 记账获得奖励

在这条新的规则开始实行之后,一定会有这样一些人,他们为了得到巴拉拉能量,开始屏气监听周围发出的各种声音,只为了能在第一时间记下一条新的记录。

这个时候,对区块链有所了解的读者是不是想到了这样的名词——“比特币挖矿”。没错,这就是比特币挖矿的简单说明。

关于比特币挖矿的话题,知乎用户“玲珑邪僧”的一篇文章举过一个更生动的例子,大致是这样的:单身男士们要找女朋友,“国民岳母”说,我有好多肤白貌美、乖巧可爱的女儿,这样吧,我给你们出一个旷世难题,解出一个就给你们其中一个姑娘的微信号。

1. 新的交易向全网进行广播;

2. 每一个节点都将收到的交易信息纳入一个区块中;

3. 每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明;

4. 当一个节点找到了一个工作量证明,它就向全网进行广播;

5. 当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;

6. 其他节点表示他们接受该区块,而接受的方法则是跟随在该区块的末尾,制造新的区块以延长该链条,并将该区块的随机散列值视为新区块的随机散列值。

也就是说,交易发生的一刻起,比特币的交易数据就被盖上了时间戳;而当这笔交易数据被打包到一个区块中后,就算完成了一次确认;在连续进行6次确认之后,这笔交易就不可逆转了;在比特币中,每一次确认都需要“解决一个复杂的难题”,也就是说每一次确认都需要一定的时间。

图2–15 6次确认后不可逆转

在这种情况下,当我试图于把一笔资金进行两次支付交易的时候,因为确认时间较长,后一笔交易想要与前一笔交易同时得到确认几乎是不可能的,而这笔资金在第一次交易确认有效后,第二次交易时就无法得到确认。区块链的全网记账需要在整个网络中达成共识,双花问题是无法产生的。

图2–16 双花问题无法产生