力求用最简单的方式,讲解最基本的区块链,让毫无基础的人能够有一个初步的印象并产生兴趣
首先,区块链技术是在不断发展的,它不是为了解决某种问题而出现,它是在理念产生之后才被思考如何运用在各个领域,而这就表明了,区块链技术会根据需求不同做出不一样的改进,绝不会停留在现今阶段。
比特币理念并不等同与区块链理念
很多文章都从拜占庭问题、双花问题等概念讲起,我认为提高了理解的门槛的,而想要理解,最重要的是给予区块链一个定义。
区块链是由区块(数据)按时间顺序组成的数据库系统
它具有三个重要特性,也是它得以成名的重要原因
第一、可追溯
第二、不可篡改
第三、去中心化
也就是说,只要符合以上条件,我们都可以把它看做区块链技术。
区块
现在的区块结构大多相同,区块头是哈希值和矿工地址,然后是交易数据。但这不是不可改变的。
在未来,根据需求的不同,区块内的数据类型或许有天翻地覆的改变。所以,如果不是想要研究的初学者,那么只需要知道,现阶段,交易数据打成包,就是区块。
时间顺序
区块链的数据是由一个一个区块组成,而区块的生成需要时间,简单的说,区块的顺序就是时间的顺序,那么谁先谁后如何确定?每个区块出来的时候,啪,盖个时间戳,然后依次排列,同时,这一个区块会有上一个区块的哈希值,这就形成了一个链。
可追溯
可追溯的原因同上,从第二个区块开始,每个区块的第一部分有前一区块的哈希值。按图索骥,就可以往前一个一个的找,最终可以找到第一个区块。第一个区块叫创世区块,emmm,里面啥都可以有。
不可篡改
不可篡改现阶段是由密码学来保证的。其中牵扯到哈希函数与非对称加密。这两个概念网上有明确的解释。我大概讲一下非对称加密。
非对称加密需要两个密钥,公钥和私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密,反之亦然。用比特币举例,在比特币系统中,私钥由32字节的随机数组成,通过私钥可以算出公钥,公钥经过一系列哈希及编码算法就得到了比特币中的地址。而花费地址中的钱就是用私钥对交易签名。简单的说,公钥证明你有多少钱,私钥则可以让你动用这笔钱。
虽然看起来可以满足现阶段的需求,但是,私钥的保护,公钥的生成对于普通人难度较大,并不利于落地。在更复杂的系统中,公私钥的设计是否依然可行也不得而知。所以,我认为现在的方案不是最佳方案,是可以改进的。
去中心化
去中心化是分布式数据库带来的特性。
所有节点共同维护一个数据库,数据库中每一次变动需要所有节点的同意,节点可以是矿机,pc,手机,甚至是机器人。我想要知道现在数据库的数据,那么只需要成为区块链上的一个节点,就可以查询到从创世区块到现在所有的数据了,透明、开放。
如果有人不同意呢?这就牵扯到共识算法。
POW、POS、DPOS是现在主流的共识算法,但在我看来,这一部分却不是需要花大篇幅讲解的东西。为什么?
因为还不够完美。
上面我说了很多可以改进的方面,但共识算法是最需要改进的,我认为区块链是一个大时代,所以它就有很多需要成长的地方。
被很多人津津乐道,耗时耗力讲解的挖矿,其实就是逐利的算力战争、币龄分红。
扪心自问,它真的完美无缺吗?
用最白话的方式讲,共识算法解决的就是信任问题,在一个点对点的陌生系统里,你如何信任其他的节点?
所以,想要深入了解区块链的,请自行查询主流的共识算法,同时,请勿放弃思考,它需要很多人的智慧。
我希望这一篇能够给不懂的人有一个简单的印象,如果有什么问题欢迎私信。
网友评论