前沿资讯网>区块链>正文

区块链技术应用架构与关键讲解,公有链、联盟链和私有链的问题

摘要
区块链技术应用架构与关键讲解,公有链、联盟链和私有链的问题,本节使用比特币和以太坊的区块链架构为实例,详细描述区块链技术的基础架构、基本原理以及核心技术。

    区块链技术应用架构与关键讲解,公有链、联盟链和私有链的问题,本节使用比特币和以太坊的区块链架构为实例,详细描述区块链技术的基础架构、基本原理以及核心技术。比特币和以太坊是2种具代表性的区块链技术应用,一个是区块链技术的起源,另一个是区块链2.0的代表应用,市面上其他使用区块链技术的数字货币大都与之雷同,所以,比特币和以太坊的基础架构是研究学习区块链技术的重要实例。


区块链技术应用,区块链技术,区块链应用,区块链是什么


    比特币和以太坊的基础架构如图1所示。图1中虚线表示的是以太坊与比特币的不同之处。总体来说,数字货币的区块链系统包含底层的交易数据、狭义的分布式账本、重要的共识机制、完整可靠的分布式网络、网络之上的分布式应用这几个要素。底层的数据被组织成区块这一数据结构,各个区块按照时间顺序链接成区块链,全分布式网络的各个节点分别保存一份名为区块链的分布式账本,网络中使用P2P协议进行通信,通过共识机制达成一致,基于这些基础产生相对高级的各种应用。在该架构中,不可篡改的区块链数据结构、分布式网络的共识机制、工作量证明机制和愈发灵活的智能合约是具代表性的创新点。


    11.jpg


    区块链基础架构


    底层数据


    在区块链系统中,底层数据并不是存储在区块链中的数据,这些原始数据需要进一步加工才能被写入区块内。底层数据最根本的是交易记录,其他的数据只是为了对消息记录进行封装。


    交易数据:交易数据是带有一定格式的交易信息,以比特币为例,一条比特币交易信息应包含以下字段:4 B的版本信息,用来明确这笔交易参照的规则;1~9 B的输入计数器,表示被包含的输入数量;变长字节的输入,表示一个或多个交易输入(地址);1~9 B的输出计数器,表示被包含的输出数量;变长字节的输出,表示一个或多个输出(地址);4 B的时钟时间,表示一个UNIX时间戳或区块号。


    时间戳:时间戳被用来加盖在区块头中,确定了区块的写入时间,同时也使区块链具有时序的性质,时间戳可以作为区块数据的存在性证明,有助于形成不可篡改不可伪造的分布式账本。更为重要的是,时间戳为未来给予区块链技术的互联网和大数据增加了时间维度,使通过区块数据和时间戳来重现历史成为可能。


    SHA256算法:区块链不会直接保存明文的原始交易记录,只是将原始交易记录经过散列运算,得到一定长度的散列值,将这串字母与数字组成的定长字符串记录进区块。比特币使用双SHA256散列函数,将任意长度的原始交易记录经过2次SHA256散列运算,得到一串256 bit的散列值,便于存储和查找。散列函数具有单向性、定时性、定长性和随机性的优点。单项性指由散列值无法反推得到原来的输入数据(理论上可以,实际几乎不可能),定时性指不同长度的数据计算散列值所需要的时间基本一样,定长性指输出的散列值都是相同长度,随机性指2个相似的输入却有截然不同的输出。同时,SHA256函数也是比特币所使用的算力证明,矿工们寻找一个随机数,使新区块头的双SHA256散列值小于或等于一个目标散列值,并且加入难度值,使这个数学问题的解决时间平均为10 min,也就是平均每10 min产生一个新的区块。


    Merkle树:Merkle树是区块链技术的重要组成部分,将已经运算为散列值的交易信息按照二叉树形结构组织起来,保存在区块的块体之中。Merkle树的生成过程:将区块数据分组进行散列函数运算,将新的散列值放回,再重新拿出2个。


    数据进行运算,一直递归下去,直到剩下唯一的“Merkle根”。比特币采用经典的二叉Merkle树,而以太坊采用了改进的Merkle Patricia树。Merkle树的优点:良好的扩展性,不管交易数据怎么样,都可以生成一颗Merkle树;查找算法的时间复杂度很低,从底层溯源查找到Merkle根部来验证一笔交易是否存在或合法,时间复杂度为lb N,极大降低运行时的资源占用;使轻节点成为可能,轻节点不用保存全部的区块链数据,仅需要保存包含Merkle根的块头,就可以验证交易的合法性。


    分布式记账本


    这里使用分布式记账本来代替区块链,是为了区别狭义的区块链和广义的区块链技术,前者是分布式记账本这一时序链式数据结构,后者是个完整的带有数学证明的系统框架。狭义的区块链结构如图2所示,每个区块分为块头和块体两部分,所有区块按照时序相链接,形成狭义上的区块链。


    区块头:区块头的内容有上一区块头的散列值、时间戳、当前 PoW 计算难度值、当前区块PoW问题的解(满足要求的随机数),以及Merkle根。以比特币为例,具体的数据格式为:4 B的版本字段,用来描述软件版本号;32 B(256 bit)的父区块头散列值;32(256 bit)字节的Merkle根;4 B的时间戳;4 B的难度目标;4 B的Nonce(随机数,问题的解)。区块头设计是整个区块链设计中极为重要的一环,区块头包含了整个区块的信息,可以唯一标识出一个区块在链中的位置,还可以参与交易合法性的验证,同时体积小(一般不到整个区块的千分之一),为轻量级客户端的实现提供依据。


    区块体:区块体包含了一个区块的完整交易信息,以Merkle树的形式组织在一起。如图2所示,Merkle树的构建过程是一个递归计算散列值的过程,以图中为例,交易1经过SHA256计算得到Hash 1,同样算得Hash 2,将2个散列值串联起来,再做SHA256计算,得到Hash12,这样一层一层地递归计算散列值,直到最后剩下一个根,就是Merkle根。可以看到,Merkle树的可扩展性很好,不管交易记录有多少,最后都可以产生Merkle树以及定长的Merkle根。同时,Merkle树的结构保证了查找的高效性,N个叶子节点的Merkle树最长查找路径长度为lb N,这种高效在大交易规模中异常明显。


    区块链技术应用,区块链技术,区块链应用,区块链是什么22.jpg


    分布式记账本模型


    链式结构:除了创世区块以外,所有区块均通过包含上一区块头的散列值的方法构成一条区块链。同时,由于包含了时间戳,区块链还带有时序性。时间越久的区块后面所链接的区块越多,修改该区块所花费的代价也就越高,这里借用一个形象的比喻,区块链就好比地壳,越往下层,时间越久远,越稳定,不会轻易发生改变。区块链在增加新区块的时候,有很小的概率发生“分叉”现象,即同一时间挖出2个符合要求的区块。对于“分叉”的解决方法是延长时间,等待下一个区块生成,选择长度最长的支链添加到主链,“分叉”发生的概率很小,多次分叉的概率基本可以忽略不计,“分叉”只是短暂的状态,最终的区块链必然是唯一确定的最长链。


    创世区块:每一个区块链都有一个特殊的头区块,不管从哪个区块开始追溯,最终都会到达这个头区块,即创世区块。这里不得不提到比特币的创世区块,它在北京时间2009年1月4日02∶15∶05被中本聪生成,是比特币诞生的里程碑,也是数字货币的新纪元。中本聪在比特币创世块中留下了一句话“The Times 03/Jan/2009 Chancellor on brink of second bailout for bank”,是当天的头版文章标题。中本聪的引用,既是对该区块产生时间的说明,也是对旧有银行系统面对金融危机脆弱表现的冷嘲。


    组网方式和核心机制


    狭义的区块链,即分布式账本的内容上面已经介绍完毕,将这个账本用起来才是区块链技术的关键所在。基于分布式账本之上的区块链网络,采用对等式网络——P2P网络(peer-to-peer network)将所有节点连接在一起,设计PoW或其他共识机制使无信任基础的双方在不需要第三方的情况下建立互信,使用广播的方式传播交易信息,加上激励机制来保证节点提供算力以维持整个网络的顺利运行。


    P2P网络:区块链网络的去中心化来自于采用P2P组网方式,网络中每个节点均地位对等且以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点和层级结构,每个节点均会承担网络路由、验证交易信息、传播交易信息、发现新节点等工作。


    广播机制:区块链网络公布交易信息的方式是广播,生成交易信息的节点先将信息广播到相连接的节点,节点验证通过后就会再进行广播,信息会以极快的方式被全网中的节点接收。实际上,并不需要全部节点都保留这条交易信息,只要保证大多数(51%)节点接收到,就可以认为交易通过。如果这条交易信息有问题,如交易者的余额不足以支付,接收到错误消息的节点验证不通过,就会废弃该交易数据,不会对它再进行广播。新区块的生成也是通过广播来确认的,找到满足条件的随机数后进行广播,记过验证后确认新区块的记账权,生成新的区块,全网进行同步,将该块添加到主链上。


    共识机制:分布式网络的核心难题是如何高效地达成共识,就好比现有的社会系统,中心化程度高的、决策权集中的社会更容易达成共识,像独裁和专制,但是社会的满意度很低;中心化程度低的、决策权分散的社会更难达成一致,像民主投票,但是整个社会的满意度更高。“任何基于网络的数据共享系统,都最多拥有以下3条中的2条:1) 数据一致性(C);2) 对数据更新具备高可用性(A);3) 能容忍的网络分区(P)”,即CAP理论,分布式网络已经带有了P,那么C或A只能在两者中选择一条。如何在一致性和可用性之间进行平衡,在不影响实际使用体验的前提下还能保证相对可靠的一致性,是研究共识机制的目标。早期的比特币采用高度依赖节点算力的 PoW 机制来保证比特币网络分布式记账的一致性,随着各种竞争币种的发行,更多相似的共识机制得以出现,PoS就是一种基于PoW并且进行改进的共识机制。


    PoW共识机制:PoW机制是由中本聪所设计的适用于比特币系统的共识机制,其核心思想是通过引入分布式节点的算力竞争来保证数据一致性和共识的安全性。在比特币中,所有参与“挖矿”的节点都在遍历寻找一个随机数,这个随机数使当前区块的区块头的双SHA256运算结果小于或等于某个值,找到符合要求的随机数的节点获得当前区块的记账权,获得一定数额的比特币作为奖励。另外,引入动态难度值,使求解该数学问题所花费的时间在10 min左右。PoW共识机


    制具有十分重要的意义,将比特币的发行、交易和记录完美地联系起来,同时还保证了记账权的随机性,确保比特币系统的安全和去中心化。


    GHOST(Greedy Heaviest Observed Subtree)协议:GHOST协议是为了解决比特币使用PoW算力竞争引起的高废块率带来的算力浪费问题。废区块指的是在新块广播确认的时间里“挖”出的符合要求的区块。GHOST协议提出在计算最长链时把废区块也包含起来,即在比较哪一个区块具有更多的工作量证明时,不仅有父区块及其祖先区块,还添加其祖先区块的作废后代区块来计算哪个块拥有最大的工作量证明。在以太坊中,采用了简化版GHOST协议,废区块只在五代之间参与工作量证明,并且废区块的发现者也会收到一定数量的以太币作为奖励。


    PoS共识机制:PoW共识机制有明显的缺点,算力资源被过多地浪费掉,PoS共识机制是为了解决PoW的缺陷而提出的替代方案。PoS本质上是采用权益证明来代替PoW的算力证明,记账权由最高权益的节点获得,而不是最高算力的节点。权益证明就是资源证明,拥有最多资源的节点挖矿的难度最小。以太坊目前采用的仍然是PoW,但是正在开发的下一版本将会转为PoS共识机制。


    激励机制:激励机制是区块链技术中的重要一环,以比特币为例,开采出新的区块的节点会得到一定数量的比特币和记账权,记账权使节点在处理交易数据的时候得到交易费用。比特币的交易费用基于自愿原则,提供交易费用的交易会被优先处理,而不含交易费用的交易会先放在交易池中,随时间的增加而增加其优先级,最终还是会被处理。激励机制保证了整个区块链网络的保持向外扩张,促使全节点提供资源,自发维护整个网络。以比特币为例,目前整个比特币网络的算力已经达到800 000 000 Gh/s,超过了全球Top 500超级计算机的算力总和,想要对整个比特币网络做出影响几乎不可能。


    区块链节点


    在最初的区块链网络设计中,不存在任何中心化的特殊节点和层级结构,每个节点完全对等,承担着网络路由、验证交易信息、传播交易信息、发现新节点等工作。但是实际上物理设备是存在明显性能差距的,以比特币网络为例,可作为节点的设备有个人计算机、服务器、专为比特币挖矿设计的矿机,以及移动端,它们提供的算力相差了几个数量级,并且存储空间也不同。目前市面上可见的移动端存储空间最大不过100 GB左右,而存有全部数据的区块链数据总量已经超过60 GB,想要将移动端作为全节点无疑是不现实的。于是有了全节点和轻型节点,全节点是传统意义上的区块链节点,包含有完整的区块链数据,支持全部区块链节点的功能。全节点通常是高性能的计算设备,比特币刚面世时依靠CPU来提供算力,后来使用GPU,发展到现在是专门设计将SHA256算法固化到硬件的矿机,算力成几何增长趋势。轻型节点是依靠全节点存在的节点,不用为区块链网络提供算力,只保存区块链的区块头,由于区块头包含了Merkle根,可以对交易进行验证。轻型节点多为移动端,如智能手机、平板电脑、移动计算机等。


    智能合约


    区块链技术的智能合约是一组情景——应对型的程序化规则和逻辑,是部署在区块链上的去中心化、可信息共享的程序代码。签署合约的各参与方就合约内容达成一致,以智能合约的形式部署在区块链上,即可不依赖任何中心机构自动化地代表各签署方执行合约。智能合约具有自治、去中心化等特点,一旦启动就会自动运行,不需要任何合约签署方的干预。


    智能合约的运行过程如下。智能合约封装预定义的若干状态、转换规则、触发条件以及对应操作等,经过各方签署后,以程序代码的形式附着在区块链数据上,经过区块链网络的传播和验证后被记入各个节点的分布式账本中,区块链可以实时监控整个智能合约的状态,在确认满足特定的触发条件后激活并执行合约。


    智能合约对区块链有重要的意义,智能合约不仅赋予了区块链底层数据可编程性,为区块链2.0和区块链3.0奠定了基础;还封装了区块链网络中各节点的复杂行为,为建立基于区块链技术的上层应用提供方便的接口,拥有了智能合约的区块链技术前景极为广阔。例如,对互联网金融的股权招募,智能合约可以记录每一笔融资,在成功达到特定融资额度后计算每个投资人的股权份额,或在一段时间后未达到融资额度时将资金退还给投资人。还有互联网租借的业务,将房屋或车辆等实体资产的信息加上访问权限控制的智能合约部署到区块链上,使用者符合特定的访问权限或执行类似付款的操作后就可以使用这些资产。甚至与物联网相结合,在智能家居领域实现智能自动化,如室内温度湿度亮度的自动控制、自动门允许特定的人进入等。


    现有水平的智能合约及其应用本质逻辑上还是根据预定义场景的“IF-THEN”类型的条件响应规则,能够满足目前自动化交易和数据处理的需求。未来的智能合约应具备根据未知场景的“WHAT-IF”推演、计算实验和一定程度上的自主决策功能,从而实现由目前“自动化”合约向真正“智能”合约的飞跃。


    上层应用


    前文系统地介绍了区块链技术,有了一个比较全面的系统性概念之后,可以更为深入地研究基于区块链技术的上层应用。目前的区块链应用都具有相似的架构,各家的重心在于研发不同的上层应用。比特币是经典区块链应用,所使用的区块链技术十分具有研究学习价值。然而,比特币本身作为一种数字货币来说存在局限性,虽然可以用很低的成本开发出其他的数字货币(实际市面上存在很多类似的竞争币),但是很难开发出除了数字货币之外的应用。以太坊是另一个使用区块链技术的产品,不仅在底层解决了区块链原有的一些问题,更是把区块链技术进行封装,降低区块链和具体上层应用的耦合性。以太坊提供功能强大的智能合约语言来进行上层应用的设计,开发者们通过部署智能合约可以方便快捷地开发区块链应用。以太坊的最终目标是将所有节点连接起来,成为一台拥有恐怖算力的虚拟机,虚拟机上运行着各种各样的分布式应用,彻底改变现有的网络架构。


    区块链技术存在的问题


    毋庸置疑任何技术都存在局限性,虽然区块链技术有自身的独特优势,但也不是解决所有问题的灵丹妙药。区块链技术还处在发展初期,存在诸多问题。本节从各个角度描述目前区块链技术有待解决的问题。


    1.效率问题


    效率是区块链技术可用性的保证,目前区块链的效率问题表现为以下几点。


    分布式记账本数据量问题。分布式记账本记录了整个区块链网络从诞生到当前时间节点的一切交易记录,在保证区块链数据不可篡改的同时,带来了存储和同步的问题。上文提到过,目前比特币的数据量已经超过了60 GB,数据量巨大,更令人头疼的是比特币从诞生到现在才不过短短7年,按照比特币愈发活跃的走势来看,账本过大是一个急需解决的问题。


    同步时间问题。截至目前为止,比特币网络已经有43万个区块被开采出来,新添加进网络的节点同步账本所花费的时间就长达几天。如果没有改进的方案,时间越往后增加,新节点的代价就越大,甚至会阻碍区块链网络的扩张。


    交易效率问题。以比特币为例,一秒只能处理7笔交易,而确定交易则要等待下一个区块产生,平均为10 min。这种交易效率远远无法满足需求,虽然现在有了些研究成果,如闪电网络(lightning-network),但仍然缺少全面解决效率问题的方法。


    2.中心化问题


    算力证明导致节点的不对等。理论上,在区块链网络中每个节点被平等地对待,但是为了挖矿获得经济回报,开始进行硬件竞赛,导致节点之间的不对等(使用矿机的节点自然比使用CPU的节点更容易挖到矿)。目前,使用CPU挖比特币,理论概率几乎等于 0。区块链记账权的随机性受到破坏,违背了设计初衷。


    算力证明导致的产业化趋势。同样,也是为了挖矿获得经济收益,产生了矿池。矿池指的是产业化规模化挖矿,通常在地理位置上选择靠近水电站的地区,在硬件上选择专门用于挖矿的矿机,几千上万台机器集群,试图用较低的成本来挖矿获得收益。以比特币为例,据统计,有约60%的算力来自中国的矿池,比较有名的三大矿池是F2Pool、BTCChina Pool以及Huobi Pool。算力的集中破坏了分布式设计,并且带来了著名的“51%攻击”威胁。51%攻击问题。简单地说,就是在投票制中掌握了半数以上的选票,可以使任何提案得到通过,放在比特币环境下就成为实现双重支付的手段,一笔交易只要半数以上的节点通过,那么对整个网络来说就是合法有效的。虽然理论上掌握分布式网络的大多数算力是几乎不可能的事,但是矿池的出现使“51%攻击”具备了实施的可能,并且算力的集中破坏了去中心化,带来种种安全隐患,所以开发新的共识机制是目前区块链研究的一个主要方向。


    中心化趋势。分布式网络的中心化趋势也是一大问题,前面所说矿池的出现不仅带来了“51%攻击”的威胁,也影响了整个分布式网络的稳定性,如果一个矿池发生问题(如停电、火灾等),整个网络都会受到影响,削弱了分布式网络的优势。


    3.隐私和安全问题


    虽然区块链技术采用密码学相关技术,具有很高的安全性,但是整个区块链网络在隐私和安全方面仍然存在薄弱环节。


    数据隐私问题。以比特币为例,比特币使用地址进行交易,具有匿名性,但是交易记录却完全公开,一个地址的所有交易记录全部都可以被查到,一旦将地址与真实身份联系起来,后果十分严重。


    使用安全问题。区块链技术本身的安全性很高,采用非对称密钥机制,保证了安全性和有效性。但是对私钥的使用和保存状况却令人堪忧,即使256 bit的私钥表现成50个字符长度形式,依然难以记忆,使用其他软件进行辅助交易是必然的选择,但这类软件的安全性就值得商榷,交易网站或者个人的比特币被盗的消息络绎不绝,使用安全问题需要引起人们的重视。


    4.公有链、联盟链和私有链的问题


    根据区块链网络中心化程度的不同,分化出3种不同应用场景下的区块链。


    1. 允许任何节点都可以加入区块链网络,查看区块链上任意信息的区块链被称为公有链,最初的区块链都是公有链,如比特币。


    2.允许授权的节点加入网络,可以根据权限查看信息,往往被用于几个公司或机构之间的区块链被称为联盟链或行业链。


    3. 所有网络中的节点都被掌握在一家公司或机构手中,被称为私有链、不管是公有链,联盟链还是私有链都是区块链技术在不同场景下的应用,还处于发展初期的区块链技术在发挥其独特优势的同时,也带来了诸多挑战。公有链的问题在上面已经简要描述过,在此不再赘述。


    联盟链的问题。联盟链作为一种带有权限机制的区块链,需要考虑的问题有很多。首先,是准入权限问题,一个节点如何被通过允许加入区块链,是人工鉴别还是采用身份验证机制;其次,是区块链数据的查阅权限问题,很明显企业和机构的数据都是存在保密等级的,拥有不同等级权限的节点只能看到本层及本层以下的数据,如何进行查阅权限的分配和数据保密等级的划分是主要问题;再次,联盟链中是否应该存在一种机制,保证等级较低的节点无法直接与等级高的节点进行交易,就像在生活之中,普通人去银行办业务,只会去找柜员而不是去找行长一样,一旦出现这种跨等级的交易,应该有特别措施进行处理;最后,是匿名性和数据透明性以及审计便利性的综合问题,如果需要保留匿名性,各个公司的审计就无法开展。如果为了方便审计不保留匿名性,就需要降低数据的透明性(毕竟一个公司并不想其他公司知道自身的准确数据),如将交易数据进行加密,但这样就增加了审计的工作量,总之是一个需要综合考虑的问题。


    私有链的问题。私有链多用于一个公司或机构的内部,也存在与联盟链类似的问题。首先,是细粒度的可视权限分配问题,即对数据的访问权限要细化到每一个账户,跟联盟链的查阅权限类似;其次,是效率问题,私有链的节点都是被掌握的可信节点,自然不需要PoW共识机制,不仅浪费算力,还不够高效,考虑使用其他高性能分布式一致性解决方法;最后,是私有链本身的安全问题,过于集中的私有链抵御攻击的能力跟前2种区块链相比差很多,尤其是如果攻击来自内部,修改“理论上不可篡改”的区块链也是可以做到的。


    5.区块链技术应用结束语


    自2009年到2016年,区块链技术已经走过了经历了区块链1.0时代,目前处于区块链2.0,正在向区块链3.0稳步迈进。区块链1.0更适合被称作狭义区块链技术的时代,其代表为比特币;区块链2.0是功能强大的智能合约时代,可以实现更为高级更为复杂的功能,大大扩宽区块链技术的应用场景;至于区块链3.0,是将区块链技术的去中心化和共识机制发展到新的高度、影响全人类意识形态的时代。


    【免责声明】以上文章是今日小编为您介绍区块链技术应用的个人观点,请读者仅作参考,投资有风险,入市须谨慎!本站不拥有所有权,不承担相关法律责任。如需了解“区块链技术”请关注:【什么是区块链 http://www.whw999.com/chain/】,如若转载,请注明。


2019区块链市场再迎融资热潮

上周(2019年4月8日至4月14日)国内共计发生59起投融资事件,从行业分布来看,硬件服务是获投事件最多的行业,共计8起投资,其次为本地生活、企业服务和医...

04月15日 14:13

区块链软文范例,三问区块链400字经典范文

精品软文范例有很多,其实软文是最有效的营销方法,可以通过新闻报道、深度文章、付费短文广告、案列分析等方法促进企业销售产品。一篇好的软文可以比拟古战争时代的千...

03月26日 02:56

2019区块链应用发展与落地趋势汇总

在2019年之前的几年时间里,提起“区块链”一词,人们联想到最多的就是加密数字货币,大家对于区块链本身的关注度并不高。随着2018年加密数字货币市场的整体表...

03月11日 03:49

摩根大通宣布正式发行数字货币

历来对数字货币持排斥态度的世界第一银行摩根大通日前态度发生迅疾逆转,不仅宣布与加密货币“联姻”,而且还推出名为“JPM Coin”的自家虚拟货币。摩根大通是...

02月26日 11:08

“区块链”热潮席卷全球,不少上市公司一头扎入其中

近年来,“区块链”热潮席卷全球,不少上市公司也一头扎入其中。去年1月份,在区块链与加密数字货币价格位居高点时,多家上市公司宣布进军区块链,彼时市场曾出现一天...

02月16日 21:34