我觉得区块链可以用三句话来描述:
1,区块链是一个放在非安全环境中的分布式数据库(系统)。
这里关键词:非安全环境,分布式
2,区块链采用密码学的方法来保证已有数据不可能被篡改。
这里关键词 密码学,不可篡改
3,区块链采用共识算法来对于新增数据达成共识。
关键词 共识
1,区块链是一个放在非安全环境中的分布式数据库(系统)。
这里的要点有两个:(1)分布式,(2)非安全环境。
首先,这是一个分布式的,去中心化的系统。所以,有一个中心服务器或者节点的,不是区块链。节点都是安全的,无恶意的,那这不是区块链。同理,从应用的角度讲,如果你的应用必须要使用中心节点或者没必要考虑节点不安全的情况(例如某个安全的工厂里的传感器),那么并不需要考虑区块链技术。
用比特币举例的话,1,它是一个完全去中心化的系统,2,它放在一个非安全的环境,它并不要求所有使用比特币的人都没有恶意。
2,区块链采用密码学的方法来保证已有数据不可能被篡改。
这个部分的两个核心要点是:(1)密码学哈希函数,(2)非对称加密。
简单来说下:
(密码学)哈希函数:一个函数Y=H(X),有如下性质:
1,有X可以很容易算出Y;
2,有Y不可能算出X;
3有Y不可能找到另一个X'使得H(X')=Y;
4.如果X和X'相差很小,H(X)和H(X')则完全不相关。
这东西主要用于验证信息完整性——在一个信息后面放上这个信息的哈希值,这个值很小,例如256bit,而且计算方便。收到信息之后收信人再算一遍哈希值,对比两者就知道这条信息是否被篡改过了。如果被篡改过,哪怕只有一bit,整个哈希值也会截然不同。而根据哈希函数的性质,没有人能够伪造出另一个消息具有同样的哈希值,也就是说篡改过的数据完全不可能通过哈希校验。