认识区块链的特点与架构
先前我们简易的介绍了区块链是什么样的一个系统,以及区块链为何而诞生,那区块链这个系统有哪些特点呢?这个系统要怎么取得大家的信任?
在我们曾经所举过的分布式系统的例子当中,任何人的交易纪录都要存在大家的帐本上,那存在帐本上的这被记录的交易要能永久的被大家所信任,这笔交易就必须具有区块链的第一个重要的特点:不可篡改性,那要如何达成不可篡改性呢?就要先从区块链的架构到底长怎么样讲起。
区块链的不可篡改性
区块链故名思义就是区块和链,所以其实外观看起来就是很多个区块串在一起串成一个链,那区块是什么呢?区块其实就是「帐本」,每个区块上都纪录了很多的交易纪录。
在每一个区块链网络中会有一条公共区块链,这条区块链可以想像成一个公共的帐本,所以在前一章举的分布式系统的例子当中,谁和谁做了交易后,这笔交易其实是会先被记录到这条公共区块链、这个公共帐本上,而在记录很多笔交易后,这些交易纪录就可以包成了一个区块(以比特币为例,比特币的区块链上每个区块包含了大约500笔交易),如上图中所示,累积了许多交易纪录后包在一起成为2号区块,每当一个区块被包了出来后,所有人就会开始验证看看这一个区块中的这些交易纪录到底是不是都是正确的,这个验证的过程也会在之后的文章详细做说明(数字签名)。
在验证完这个区块的交易之后,会在这个区块的尾端放上一个密码,并在下一个区块的开头也放上一样的密码,当这两个密码相同时这两个区块就可以连接在一起,可以想像成钥匙和钥匙孔的概念,钥匙和钥匙孔刚好匹配时才能刚好接在一起,而这个密码是如何产生的呢?是利用一个叫hash算法 (中译:哈希法或随机法)的方式所产生的。
Hash算法
hash算法能将任意的一串文字转成一段固定长度的密码,hash算法有四个重要的特点:
- 不论输入的文字是如何,经由hash算法输出的密码长度永远都固定
- 两段输入的文字有任何一处不同,甚至其中一段文字只是比另一段文字多一个空格这种轻微的差异,这两段文字经由hash算法产生的密码就会差异很大,也没办法从产生密码的规律性上推测原先的输入文字是什么
- 由第2点可以知道不同输入文字输出密码一定会不同,让我们反过来想,若有两段文字经由hash算法得出的密码一模一样,代表这两段文字本身一定也一模一样
- hash算法是不可逆的运算,没有任何方法可以单从输出结果回推原先的输入是什么
区块链的交易数据
每个区块尾端的这组密码,便是把整个区块的交易数据,全部送进hash算法得出的结果,这组密码当然也等同于,在下一个区块开头的那组密码,而为何要在下一个区块的开头也放上相同的密码呢?这是因为当前一块区块的交易数据,只要任一笔有一丁点的更动,根据上方所列举的第二项hash算法的特点,最后算出来的密码就会有巨大的变动,跟下一个区块开头的密码就对不上了,也就像是钥匙孔改变了,后一个区块的钥匙当然就插不进已经变更过的钥匙孔当中了,因此只要当有这种情况发生,整条区块链就会直接断开,而在断开的链结以后的区块们,因为已经接不上原本的母链,就会被抛弃,因为大家知道会断开的区块一定是因为其中的交易被动了手脚,所以这些区块就不会再受到大家的信任。
随后,才会把这笔交易加到自己个人的帐本上,所以其实每个人的个人帐本等于都是从公共帐本上复制下来的,这样能保证所有人的个人帐本纪录的内容一定都是一模一样的。
区块链的特点整理
根据归纳整理的这些区块链的简易介绍,可以大致整理出几项区块链的特点:
- 去中心化( 分布式帐本的特点,会在后续文章仔细说明此特点)
- 所有交易公开透明
- 已被纪录到帐本上的交易不可被篡改
- 可追溯性,因为已经放到链上的交易不会被篡改,可以随时查阅过去的某一笔交易纪录
- 每个人的分布式个人帐本一定都会完全一模一样,也一定会和链上的一样
首先了解这5个区块链的主要特点,后面将有更多偏向区块链的技术性讨论,让大家更熟悉区块链的生态!
本文链接地址:https://www.wwsww.cn/qkl/1379.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。