区块链技术笔记三

区块链底层技术模型

区块链技术的模型是由自下而上的数据层、网络层、共识层、激励层、合约层和应用层组成。

首先是“数据层”,封装了底层数据区块的链式结构,以及相关的非对称公私钥数据加密技术和时间戳等技术,这是整个区块链技术中最底层的数据结构。

数据层主要描述区块链技术的物理形式。区块链的名称包含了两个特点:数据区块和链式结构。区块链技术的物理实现是一个由规格相同的区块通过链式结构组成的链条。系统设计人员建立链条的创世节点,之后根据规则,区块链网络中的节点产生新的区块,并在经过验证后,将新区块链接在主链条上。随着系统运行时间的延续,主链条会不断延长。

例如比特币区块链的主链已经有415291个区块。这些区块中包含具体应用需要记载的信息。例如比特币区块链中存储交易信息。每一个区块为了确保安全,采用了很多技术,例如采用时间戳技术确保每一个区块按照时序链接,采用哈希函数确保交易信息不被篡改,采用merkle树记录具体的交易信息,采用非对称加密实现身份认证。上述的区块结构是一种基本格式,在不同的区块链应用中会针对性变化。针对区块节点内部具体结构会在区块链应用中描述。

其次是“网络层”,包括P2P组网机制、数据传播机制和数据验证机制等。

网络层的主要目的是实现区块链网络中节点之间的信息交流。区块链网络本质上是一个P2P网络。每一个节点既接收信息,也产生信息。节点之间通过维护一个共同的区块链来保持通信。在区块链网络中,每一个节点都是公平的,都可以创造新的区块,节点创造新的区块后,通过广播的形式发送给其他节点,其他节点会对区块信息进行验证,只有当51%的用户验证通过,这个新区块才被认可。网络中的节点会将此区块链接在主链表上。验证的方法取决于共识机制。

第三层“共识层”,封装了网络节点的各类共识机制算法。共识机制算法是区块链的核心技术,因为这决定了到底是谁来进行记账,而记账决定方式将会影响整个系统的安全性和可靠性。目前已经出现了十余种共识机制算法,其中比较最为知名的有工作量证明机制(PoW,Proof of Work)、权益证明机制(PoS,Proof ofStake)、股份授权证明机制(DPoS,Delegated ProofofStake)等。

比特币区块链采用高度依赖节点算力的工作量证明(POW)机制来保证比特币网络分布式记账的一致性。核心思想是将一段时间内的交易打包成一个区块,针对区块信息的特性,设计一个求解复杂但验证容易的SHA256数学难题。节点利用算力求解这个难题,第一个的算出解的用户将信息广播给其他节点,其他节点进行验证,如果51%的用户验证通过,这个用户就成为这个区块的受益人,并将区块链接到主链。这种机制确保了每个区块的生成都包含了大量的计算过程,当有人对区块链进行攻击的时候,必须重新计算攻击区块以及后续区块所有的计算过程。POW机制正是依靠强大的计算量确保区块链的安全性。但是POW机制也有明显的缺陷,例如工作量证明导致大量的资源浪费(电能),同时这种共识机制需要的等待时间较长,例如比特币平均需要10分钟才能达成共识。后续,研究人员又设计许多新的共识机制,比如利用权益证明代替工作量证明的POS机制,类似于董事会决策的DPOS机制。不同的机制各有特点,需要根据应用环境进行选择。

第四层“激励层”,将经济因素集成到区块链技术体系中来,包括经济激励的发行机制和分配机制等,主要出现在公有链当中。在公有链中必须激励遵守规则参与记账的节点,并且惩罚不遵守规则的节点,才能让整个系统朝着良性循环的方向发展。而在私有链当中,则不一定需要进行激励,因为参与记账的节点往往是在链外完成了博弈,通过强制力或自愿来要求参与记账。

激励层目的是提供一定的激励措施鼓励节点参与区块链的安全验证工作。区块链的安全性依赖于众多节点的参与。例如比特币区块链的安全性是基于众多节点参与工作量证明带来的巨大的计算量,使得攻击者无法提供更高的计算量。节点的验证过程通常需要耗费的计算资源和电能。为了鼓励节点参与,区块链通常会采用电子货币的形式奖励参与人员,比特币、莱特币、以太币都是这种机制的产物。以比特币为例,奖励机制包括了两种,第一种是新区快产生后系统生成的比特币,第二种是每笔交易会扣除万分之一比特币作为手续费。在前期,每一个区块的创建者都会获得一定数量的比特币,创世区块提供50个比特币,之后随着系统中比特币数量的持续增加,这种模式提供的比特币数量会持续减半。当比特币总量达到2100万时,新产生的区块将不再生成比特币。这时主要依靠第二种手续费作为奖励机制。

第五层“合约层”,封装各类脚本、算法和智能合约,是区块链可编程特性的基础。

比特币的交易依赖于脚本的内容,脚本规定了交易的方式和各项细节,这种特性使比特币成为一种可以编程的货币。传统的纸质货币交易,一旦货币交到收款方,交易即结束。而通过合约层的脚本技术,可以通过设置时间条件,实现延时支付,收款方收到钱却不能立即使用,必须等待时间结束。通过规定接受者和担保人必须共同私钥签名才能支配一笔比特币, 可以实现担保交易; 通过设计一种可根据外部信息源核查某概率事件是否发生的规则并作为解锁脚本附着在一定数量的比特币交易上, 即可实现博彩和预测市场等类型的应用。

第六层“应用层”,封装了区块链的各种应用场景和案例,比如搭建在以太坊上的各类区块链应用即部署在应用层,而未来的可编程金融和可编程社会也将会是搭建在应用层。

(数据层、网络层、共识层是构建区块链技术的必要元素,缺少任何一层都将不能称之为真正意义上的区块链技术。

激励层、合约层和应用层不是每个区块链应用的必要因素,一些区块链应用并不完整的包含后三层结构。)

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180129G1F93J00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券