美文网首页
开发者眼中的区块链:一图看懂什么是区块链

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

作者: 财神下山 | 来源:发表于2018-12-07 22:36 被阅读0次

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

    一、什么是区块链

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