首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

你真以为“全民记账”就是记账?白眼……

前情回顾:《听完哈希值,还不加把火搞懂区块链的“去中心”》

面对二叔提出的 “猫腻!” ,我这就让二叔看看全民记账的力量。

四、全民记账(分布式记账)的力量!

二叔气得跺脚,“你们就没猫腻了?”

我哈哈一笑,“当然没有,看来你还是不懂「全民记账」的力量!”

我说,

“可不是,每个人都记账,咱一桌就四个人,一把谁赢谁输多少各自心里都有数。”

“这一把我胡了多少,我就说多少,你们也有数对上了承认了,就定了,这叫透明。打完这局,算完账之后,每个人的帐本都定了,也互相确认过了,这叫公正。”

“如果这一屋子像互联网一样,每个人都算着账,还都对得上。

你要想搞猫腻,你得把每个人都搞定,之前你想从中作梗只需要改改你这个大帐本里的数,现在你得改所有人的帐本了。”

二叔突然打断了我,

“不对,我找到了破绽!”

“如果有个人站起来,瞎喊他赢了一千,你们这屋子人不就乱了?”

面对二叔的找茬儿,我也上头了,

“刚跟你说互联网和麻将不一样,互联网是一个大桌,不是几个桌,更不只是一个村!”

“我再揭揭你伤疤,比如你借给隔壁老王钱的时候,就立个规矩,下一次村里有借钱行为的时候要记录时间,这样的话不仅以后全民记账,更重要的是,出了问题还能全民查账。”

这里提到了「分布式记账(全民记账)」

其实「分布式记账(全民记账)」只是一种类比,可以用记账来形容,但并不是说是真的记账,大家理解成记录更恰当一些。

先给大家解释一下概念,然后再用容易理解的案例比喻一下。

区块链由一个个区块(block)组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。

每个区块包含两个部分。

区块头(Head):记录当前区块的特征值

区块体(Body):实际数据

区块头包含了当前区块的多项特征值:

生成时间

实际数据(即区块体)的哈希

上一个区块的哈希(第一讲:入门必懂哈希值)

区块与哈希是一一对应的,每个区块的哈希都是针对"区块头"(Head)计算的。

也就是说,把区块头的各项特征值,按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希。

注意,这个公式里面只包含区块头,不包含区块体,也就是说,哈希由区块头唯一决定。

前面说过,区块头包含很多内容,其中有当前区块体的哈希,还有上一个区块的哈希。

这意味着,如果当前区块体的内容变了,或者上一个区块的哈希变了,一定会引起当前区块的哈希改变。

这一点对区块链有重大意义。如果有人修改了一个区块,该区块的哈希就变了。

为了让后面的区块还能连到它(因为下一个区块包含上一个区块的哈希),该人必须依次修改后面所有的区块,否则被改掉的区块就脱离区块链了。

由于后面要提到的原因,哈希的计算很耗时,短时间内修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。

正是通过这种联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。

每个区块都连着上一个区块,这也是"区块链"这个名字的由来。

接下来给大家用案例比喻一下。

假设有一个账页序号为0的账页记录(原始数据)如下:

余额备注:王二收到张三货款100元

记账时间为:2017-10-22 10:22:02

区块链在记账是会把账页信息的原始信息(包含序号、记账时间、交易记录)进行Hash, 得到一个Hash值,如:787635ACD。

用函数表示为:Hash(序号0、记账时间、交易记录) = 787635ACD

账页信息和Hash值组合在一起就构成了第一个区块。

比特币系统里约10分钟记一次账,即每个区块生成时间大概间隔10分钟。

在记第2个账页的时候,会把上一个块的Hash值和当前的账页信息一起作为原始信息进行Hash,即:

Hash(上一个Hash值、序号1、记账时间、交易记录) = 456635BCD

这样第2个区块不仅包含了本账页信息,还间接的包含了第一个区块的信息。

依次按照此方法继续记账,则最新的区块总是间接包含了所有之前的账页信息。

所有这些区块组合起来就形成了区块链,这样的区块链就构成了一个

1. 便于验证(只要验证最后一个区块的Hash值就相当于验证了整个账本)

2. 不可更改(任何一个交易信息的更改,会让所有之后的区块的Hash值发生变化,这样在验证时就无法通过)

的总账本。

二叔又要拍大腿,我赶紧继续说,“但是吧,这样大家都很累”。

话音刚落,屋子里所有人都感受到了二叔心情的大起大落。

二姨看着最后几堆牌,搓了搓手说,“……”

我一拍大腿,没错,这就是币的意义。

二姨到底说了一句什么,让我茅塞顿开,请看下集《二姨的话》

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180317G0XCTS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券