区块链工作流程

区块链的工作流程主要包括如下步骤。

①发送节点将新的数据记录向全网进行广播。

②接收节点对收到的数据记录信息进行检验,比如记录信息是否合法,通过检验后,数据记录将被纳入一个区块中。

③ 全网所有接收节点对区块执行共识算法(工作量证明、权益证明等。

④区块通过共识算法过程后被正式纳入区块链中存储,全网节点均表示接受该区块,而表示接受的方法,就是将该区块的随机散列值视为最新的区块散列值,新区块的制造将以该区块链为基础进行延长。

节点始终都将最长的区块链视为正确的链,并持续以此为基础验证和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别,它们将在先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成长的链条。该僵局的打破需要共识算法的进一步运行,当其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。以上就是防止区块链分叉的整个过程。

所谓“新的数据记录广播”,实际上不需要抵达全部的节点。只要数据记录信息能够抵达足够多的节点,那么将很快地被整合进一个区块中。而区块的广播对被丢弃的信息是具有容错能力的。如果一个节点没有收到某特定区块,那么该节点将会发现自己缺失了某个区块,也就可以提出自己下载该区块的请求。

现在我们都知道了区块链网络里的记账者是节点,节点负责把数据记录记到数据区块里,为了鼓励节点记账,系统会按照规则随机地对记账的节点进行奖励。那么如何保证不会有人制造假数据记录或者说如何保证造假数据记录不被通过验证?这就涉及时间戳。这也正是区块链与众不同的地方。区块链不仅关注数据区块里的内容,也关注数据区块本身,把数据区块的内容与数据区块本身通过时间戳联系起来。时间戳为什么会出现?这是由区块链的性质规定的。节点把数据记入了区块,因此一个区块就相当于一页账簿,每笔数据在账簿中的记录可以自动按时间先后排列,那么账簿的页与页怎么衔接起来?也就是说,这一个区块与下一个区块的继承关系如何断定就成为问题。于是时间戳就出现了。

时间戳的重要意义在于其使数据区块形成了新的结构。这个新的结构使各个区块通过时间线有序连接起来,形成了一个区块的链条,因此才称为区块链。区块按时间的先后顺序排列使账簿的页与页的记录也具有了连续性。通过给数据记录印上时间标签,使每一条数据记录都具有唯一性,从而使数据记录本身在区块和区块上的哪个位置上发生可以被精确定位且可回溯,也给其他的校验机制协同发挥作用提供了极大的便利和确定性,使整个区块链网络能够确定性地验证某条数据记录是否真实。由于区块链网络是公开的,意味着系统知道过去发生的所有数据记录,而任何新的数据记录都继承于过去的数据记录,因为过去的数据记录是真实的,而且链条的各个区块记录由时间戳连接起来使之环环相扣,所以如果想要制造一个假的数据记录,就必须在区块链上修改过去的所有数据记录。尽管在挖矿的过程中,形成了多个链条,但因为最长的那个被诚实的节点所控制,所以想要修改过去的数据记录,首先就要从头构造出一个长度比之前最长的那个还要长的链条,在这个新的链条超过原来的那个链条后,才能制造双重支付的虚假数据。然而随着时间推移,制造新链条的难度和成本都是呈指数级上升的,而且随着链条越来越长,其难度也变得越来越大,成本也就越来越高。同时,因为去中心化的设置,区块链的各个核心客户端同时又是服务器,保存了区块链网络的完整数据,因此使对区块链网络的攻击很难像对传统的中央处理节点那样有效,一般情况下很难对区块链网络构成重大冲击。最终,区块链网络成为一个难以攻破的、公开的、不可篡改数据记录和制造虚假数据的诚实可信系统。

区块链保证数据安全、不可篡改以及透明性的关键技术包括两个方面:一是数据加密签名机制;二是共识算法。在数据加密签名机制中,首先,要有一个私钥,私钥是证明个人所有权的关键,比如证明某人有权从一个特定的钱包消费数字货币,是通过数字签名来实现的。其次,要使用哈希(Hash)算法。哈希散列是密码学里的经典技术,把任意长度的输入通过哈希算法计算,变换成固定长度的由字母和数字组成的输出,具有不可逆性。共识算法是区块链中节点保持区块数据一致、准确的基础,现有的主流共识算法包括工作量证明(PoW)、权益证明(PoS)、瑞波共识协议(RCP)等。以PoW为例,是指通过消耗节点算力形成新的区块,是节点利用自身的计算机硬件为网络做数学计算进行交易确认和提高安全性的过程。交易支持者(矿工)在电脑上运行比特币软件不断计算软件提供的复杂的密码学问题来保证交易的进行。作为对他们服务的奖励,矿工可以得到他们所确认的交易中包含的手续费,以及新产生的比特币。

posted @ 2018-05-15 15:18  链圈的链  阅读(2088)  评论(0编辑  收藏  举报