区块链是什么?
最简单的说,区块链是分布式记账本。
也有人说区块链是分布式的数据库,但数据库与记账本是不同的,数据库包括增删改查的功能。但记账本只有增加和查询的功能。
不能修改也不能删除。所以将区块链说成是分布式的数据库并不准确。
区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取。
任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
区块链的大致流程如图。
区块链由一个个区块(block)组成。
每个区块包含两个部分。
区块头(Head):记录当前区块的元信息
区块体(Body):实际数据
区块头包含了当前区块的多项元信息。
生成时间
实际数据(即区块体)的 Hash
上一个区块的 Hash
区块链的可信性
区块链的数据只能增加、不能删除和修改。就意味着区块链数据的可信性。
区块链是分布式记账本,传统的记账是通过中心账本来记录,所以通过作弊手段更改中心账本是相对容易的。而区块链通过分布式记账,更改账本记录是根本不可能的。所以区块链是安全性相对较高的记账方式,具有可信性。
其实物联网领域一直希望通过RFID实现过程追溯,但如果过程中不能保证记录的不可更改,那么追溯的意义不大。
区块链不可更改是通过Hash来实现的。
区块与 Hash 是一一对应的,每个区块的 Hash 都是针对"区块头"(Head)计算的。
Hash = SHA256(区块头)
上面就是区块 Hash 的计算公式,Hash 由区块头唯一决定,SHA256是区块链的 Hash 算法。
这一点对区块链有重大意义。如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于后面要提到的原因,Hash 的计算很耗时,同时修改多个区块几乎不可能发生,除非有人掌握了全网51%以上的计算能力。
每个区块都连着上一个区块,这也是"区块链"这个名字的由来。
区块链的共识机制
区块链的分布式记账本中,共识机制是大部分(或全部)网络成员就某条数据或拟定交易的价值达成一致,并对此账本进行更新的机制。共识机制在参与节点之间管理一系列连贯事实的规则和程序。
共识协议或共识平台是分布式账本技术的核心,用以建立共识的算法多种多张,并建基于性能、可扩展性、一致性、数据容量、治理、安全性和失效冗余等方面的要求。
共识机制的基本决定参数:
1、去中心化治理
2、节点机构
3、身份验证
4、完整性
5、不可否认性
6、隐私性
7、容错性
8、性能。
分布式机制概览
领取专属 10元无门槛券
私享最新 技术干货