区块链问世已经蛮长时间了,大家都搞清楚其为何物了吗?如果还有疑问的话,别担心,今天老蔡以讲故事的形式帮大家彻底搞明白区块链。区块链说白了就是区块 + 链,那我们就拆开来讲,什么是区块,什么是链。
要理解这两个概念,我们首先假定,你现在生活在一个落后的小村庄里,该村庄不存在任何实体货币,所有的物与物的交易都是靠大家记账来完成的。小明是靠卖猪肉为生的,有一天老王找小明买价值100块的猪肉,要记录该事件,小明和老王就都用广播的方式请众位乡亲作见证,大家证明老王的账户减少100块,而小明的账户增加了100块。好记性不如烂笔头,众位乡亲都各自拿出自己的账本记下了这一条交易信息。后来大家发现随时都要记账,是一件很麻烦的事,且大部分的账目与自身无关,因此大家就推举由村长来暂时充当记账先生。
此后,该村的所有交易就都由村长记录,每天的账目会定时公布供乡亲们核对。若大家对账目确认无误,就拿出各自的笔记本抄录一份带回家,并且写上当天的日期保存起来。这样一来,该村每天都会产生一个账本,且这些账本都是独立保存于乡亲们手中的分布式账本。我们将每个账本看作是一个区块,每个区块打包了一天的N条账目。当然,区块打包的间隔时间是可以改变的,比如10分钟、半小时打包一次并生成一个区块都是可以的。将相邻时间的账本区块连接起来就形成了区块链。相邻区块必须保证上一个区块的结算余额和当前区块的初始余额是一致的,这样才能保证个人在当前区块的开支是有理有据的,不会出现超支的情况。这个约束条件很好理解,对区块链来说也至关重要。
上述记账工作由村长来做,他付出了那么多,也需要生活吧,于是乡亲们决定每完成一笔交易就给村长支付一笔报酬,称之为交易的手续费。由于每天有太多笔交易需要记账,大家都很眼红村长的收入,都想抢着做记账赚钱。在一番讨论之后,大家决定用抛硬币的方式来决定谁来做当天的记账先生,规定每人抛硬币20次,谁抛出来的正面多,就由谁来做当天的记账先生。大家一致认同这个规则,最终达成共识。这种抛硬币选举记账先生的机制,为大家共同认可,称之为区块链中的共识机制。
再就前面提到的独立保存于乡亲们手中的分布式账本,试想下如果有人想要篡改该账本呢?不言而喻,其难度是极大的,这就意味着篡改者要将每个人手中的账本都改一遍。我们知道在现实世界中,账本往往由少数人掌管,是一种集中式的管理;而在该小村庄,由于每个人都有一个每天都同步的相同账本,并无单一核心,这就是去中心化的优势所在。
至此,我们来归纳下区块链的一些底层逻辑。每个村民都有打包账目的权利,实际由谁来打包通过共识机制选举出,并且选出的打包者可获得相应手续费;由于账本分布式保存且相邻区块结转余额的强制一致性,使得区块链的去中心化架构具备了账目可靠、公开透明、篡改难度极大的特点。至于区块链更深层次的技术细节,比如:密码学范畴的公、私密钥、哈希算法、共识机制算法、包括智能合约等等,就留给感兴趣的读者您去继续探索吧。