区块链工作流程
1.发送节点将新的数据记录向全网进行关闭
2.接受节点对收到的数据记录信息进行验证,比如信息是否安全合法,通过检验后,数据记录将被纳入一个区块中
3.全网所有接受节点对区块链执行共识算法(工作量证明,权益证明等)
4.区块通过共识算法过程后被正式纳入区块链存储,全网节点均表示接受改区块,而表示接受的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长
节点始终都是将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两个节点同时广播不同版本的区块链,那么其他节点在接受到该区块链的时间上将存在先后差别,它们将会在先收到的区块基础上进行工作,但是也会保留另外一条链,以防后者变成长的链。该僵局的打破需要共识算法的进一步运行,当其中的一条链被证实为是较长的一条,那么在另一条分支链上工作的节点将转换正营,开始在较长的链上工作。
所谓的“新的数据记录广播”,实际上不需要抵达全部的节点。只要数据记录信息能够抵达足够多的节点,那么将很快的被整合进一个区块中。而区块的广播对被丢弃的信息是具有容错能力的。如果一个节点没有收到某特定区块,那么改节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。
现在我们知道了区块链网络里的记账者是节点,节点负责把数据记录到数据区块里,为了鼓励节点记账,系统会按照规则随机的对记账节点进行奖励。那么如何保证不会有人制造假数据记录或者说如何保证造假数据记录不会通过验证? 这里就涉及时间戳,这也正是区块链与众不同的地方。区块链不仅关注数据区块里的内容,也关注数据区块本身,把数据区块的内容与数据区块本身通过时间戳联系起来。节点把数据记入了区块,因此一个区块就相当于一个账簿,每笔数据在账簿中的记录可自动按时间先后排列,账簿的页与页之间的衔接则可以通过是时间戳
时间戳的意义在于使其数据区块形成了新的结构 。这个新结构使各个区块通过时间线有序的连接起来,形成了一个区块的链条,因此才称为区块链。区块按时间的先后顺序排列使账簿的页与页的记录也具有了连续性。通过给数据记录印上时间标签,使每一条数据记录都具有唯一性。从而使数据记录本身在区块和区块上的那个位置上发生可以被精确定位且可回溯,也给其他的校验机制协同发挥作用提供了极大的便利和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。
由于区块链网络是公开的,意味着系统知道过去发生的所有数据记录,而任何新的数据记录都继承于过去的数据记录,因为过去的数据记录是真实的,而且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一个假的数据,就必须在区块链上修改过去的所有数据记录
区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:一是数据加密签名机制;二是共识算法。在数据加密机制中,首先,要有一个私钥,私钥是证明个人所有权的关键,比如证明某个人有权从一个特定的钱包消费数字货币,是通过数字签名来实现的。其次,要使用哈希算法。(哈希散列是密码学里的经典技术,把任意长度的输入通过哈希算法计算,变换成固定长度的由字母和数字组成的输出,具有不可逆性)。共识算法是区块链中节点保持区块数据一致、准确的基础,现有的主流的共识算法包括工作量证明(PoW)、权益证明(PoS)、瑞波共识协议(RCP)等。