什么是区块链
区块链(Blockchain)是一种分布式账本(DSL, Distributed Ledger),由一系列区块串成一条链。
一个区块(Block)主要包含有区块数据,区块哈希值,以及上一区块的哈希值。
区块数据即区块链上存储的内容,一般称为交易(Transaction)。如比特币链上的转账交易。
区块哈希值是区块全部数据的指纹摘要。一旦区块数据变化区块哈希值也随之变化。区块哈希值通常采用单向哈希函数SHA256计算,SHA256具有确定性的固定大小输出。
上一区块的哈希值被包含在本区块的内容中,这样就实现了单向链状数据结构。
第一个区块因不存在上一区块哈希值,通常填充全0值,被称为创世区块(Genesis Block)。
一条区块链就形成了。
区块链的特性
防篡改(Tamper Proof)
对区块数据内容进行修改会引起区块哈希值变化,导致后面区块的“上一区块哈希值”不匹配,就无法形成链。
那么将篡改数据后面所有的区块都重新计算呢?区块链就合法了,可见只有哈希值是不够的。
工作量证明(Proof of Work)要求区块哈希值必须满足一定难度(Difficulty ),难度是根据区块链网络的算力计算,这样就可以控制区块按稳定的时间间隔产生。
如比特币网络通过工作量证明机制使得每个区块的生产时间约为10分钟,要实现篡改数据理论上需要51%以上算力,并且耗费大量时间。
去中心化(Decentralization)
区块链是建立在对等网络(P2P, Peer to Peer)上的,节点(Node)是维护区块链账本的单元,对等网络中的任意节点都可以独立验证并保存完整的区块链数据。
当新的区块产生时,区块通过对等网络广播到所有网络节点。
节点独立验证新区块的有效性并添加到本地链上。
这个过程即为共识(Consensus)。
公开透明(Transparent)
区块链账本数据信息对所有参与节点公开,任意节点可以对数据进行检查、审计和追溯。
参考资料: