区块链通常被定义为去中心化的分布式记账系统,该系统中的节点无需互相信任,通过统一的共识机制共同维护一份账本。

        区块链是一种分布式、去中心化的计算与存储架构。

       
既然是分布式的数据存储,那么在各个节点之间就存在一个数据同步的问题,以谁的数据的为准,谁的数据是可信赖?既然各自保留对彼此的不信任,那就“无需信任”。“无需信任”技术上的解决方法就是假设互相不信任,每个节点都会存有一份完整的数据记录,每条新的交易都要重新验证。当一个节点重新加入网络并需要同步数据的时候,也是从其他节点同步数据,并重新计算验证,这就解决了分布式存储的可信任数据的问题。为了让数据验证能够高效可靠,区块链系统必须有一个好的数据结构来搭配。

        在我的第二篇文章中,(二)区块链的认识,理解“区块”和“链”
<https://blog.csdn.net/Lyon_Nee/article/details/83621144>
,我结合以太坊浏览器给大家介绍过这个数据结构的内容,这里我就简单概括了。




上图上我自己画的比特币区块链的数据结构图。系统中的交易被打包成区块(block),在系统的运行过程中,区块链每次只能生成一个块,且每个块中都包含了用于验证其有效链接于上一个区块后的数字凭证。区块链就是这样“一个个区块按照密码学算法连接在一起”。这样的结构设计能够很容易得验证数据是否篡改、追踪历史以及保证安全。

       
其次,区块链的架构是分布式、区中心化的。系统的各个节点组成了一个庞大的P2P网络,每个节点均分别执行、验证和记录相同的交易,并其会在本地存储完成的区块链数据。没有一个中心化机构可以干预执行顺序和结果。这样便实现了“去中心化”的目的。

       
最后要说的就是共识机制了,即一致性协议。常见的如比特币和以太坊使用的PoW,和以太坊后期计划使用的PoS机制,以及EOS平台使用的DPoS的机制。我的文章偏向与以太坊,所以这边我就先以PoW做简单描述,以后我会单独写博文,并以通俗易懂的大白话来给大家介绍其他的共识机制。PoW(Proof
Of
Work,工作量证明),简单理解就是一份证明,用来确认你做过一定量的工作。其实就是大家熟悉的挖矿,通过数学运算,计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储

为了激励大家能高效正确的记账,系统对记账节点有相应的奖赏,这样一来大家就会积极参与并贡献计算和存储资源来争夺记账权。同时其他节点对该节点的区块结果进行验证,通过后则接受这个区块。由于可以互相验证,也保证了数据的可靠性。PoW工作量证明是目前最流行的算法,应用于各种加密货币如比特币和以太坊,每个版本有各自的区别。可见一致性协议(共识机制)的设计既要安全,以保证全网中各个节点所存储的数据能达成共识;还需要需要有效的激励机制,来激励矿工以维持节点的运行。  

     
 一个示例简单总结一下。A要转账给B,他需要先创建一条交易,并确定付款人、收款人、转账金额信息。A确认后把“交易”发布到区块链网络中。这条交易信息会被节点验证并打包到当前“区块”后并向其他节点广播,通过其他节点共识达成全网数据一致。当A能在区块链中查询到这笔交易的时候,B则可以认为自己已经收到了A的转账。

     这里特别说明一下,比特币只是区块链技术的一个应用,数字货币并非区块链技术的真正价值体现。