开发者眼中的区块链:一图看懂什么是区块链

今天突然被支点授予【区块链达人】的头衔,好吧,趁本期热点话题,来谈谈什么是区块链,财神站在一个开发者的角度解释,希望读者看完后非常清晰。

一、什么是区块链

区块链本质上是一种电子帐本,所有矿工基于数学公式达成了一种共识,各自出力维持这个大帐本,这个帐本是由一个又一个Block(区块)链接而成,在这些Block里面记录了过去一段时间的帐本流水,一量写入到Block里,便很难以更改。

因为每个矿工都具有一份完整的帐本,任何一个新的矿工加入,都会从其它的矿工那里下载帐本,因此完整的帐本存在了世界的各个角度,因此区块链也叫“分布式大帐本”。

这个帐本公开,人人可查帐,所有交易信息一目了解,且不可更改,因此解决了信任问题。

一个帐本技术,有这么大的威力吗?

当然,所谓的货币发展史,不过就是帐本技术的迭代,从原始的打绳结记帐,到用竹子记帐,用纸记帐,中央银行的电子记帐,再到去中心化的区块链式记帐。

区块链长啥样

每一个区块包括两部分:

区块头

1. 哈希ID: 就是这个区块的哈希值,就像身份证一样,唯一的

2. 前一区块哈希ID: 上一个区块的哈希值

3. 当前区块的高度: 代表这是第几个区块了

4. 默克尔树根: 将所有交易的哈希值生成一颗Merkle树,不懂没关系

5. 时间戳: 区块生成的时间,用数字表示

6. 随机数: 一个随机数,或挖矿找到的方程解

...

区块体

当前区块打包的所有交易信息

财神画一个图,看完就基本上懂了,假如还没懂,再看一遍。

为什么说区块链不可更改?

奥秘就在当前区块的哈希值的生成有关。

哈希函数是一个非常有意思的函数,任何数据经过哈希函数计算后,都会得到一个长度固定的字符串,而且这个计算是单向的,且两个输入值只要有一点点不同,出来的结果也是相差很多。

而一个区块的哈希值,是将区块头里的{ 区块高度+时间截+随机值+默克尔树根 +前一区块高度的哈希值}为输入,再经过 哈希函数 计算得出一个新的哈希值。

试想,如果你去修改一个区块高度100的Block里的信息,比如常说的篡改交易信息,只要有一笔交易有变化,那默克尔树根 就有变化,那么区块100的哈希值就会有变化,否则矿工验证一个区块的时候就会发现不对。

而区块100的哈希值变化后,区块101的哈希值也要跟着变化,因为上面的公式里写了,哈希计算要包括前一区块高度的哈希值。

这样,如果你要修改区块高度为100里的任何信息,就必须修改100以后所有区块的哈希值,就是说你必须战胜所有矿工,连续出块,这在算力很小的情况下不可能,就和你连续中500万是一个道理。

因此,区块链变得不可篡改。不可篡改的帐本,往往具有高度的可信度。因此,我们信任区块链技术,正如「 In Math We Trust 」一样。

这仅仅是区块链里的一部分知识,别急,关注财神下山了解更多。原创不易,转帖请注明。

END

近期精选

如果说人生就是一本账,

那一定是区块链式的账本~

昨天,已经写入区块链中,无法纂改;

今天,正在全力哈希计算,慢一点就被别人抢了先;

明天,无法提前预测,它依赖于前一个结果。

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181207G1NJO600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券