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

趁本期热点话题,来谈谈什么是区块链,财神站在一个开发者的角度解释,希望读者看完后非常清晰。

一、什么是区块链

区块链本质上是一种电子帐本,所有矿工基于数学公式达成了一种共识,各自出力维持这个大帐本,这个帐本是由一个又一个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 

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容