区块链运行原理

区块链的工作流程

在本章开头讲述的故事中,由岛上居民交易信息依序组成的账本可以看作是区块链的雏形。严格来说,区块链是一种信息 组织结构,我们不妨将其看作是一条由存有交易信息的各个区块按照交易发生的时间先后顺序依次连接而成的数据链。我们可以用计算机技术中的“栈”来理解区块 之间的连接关系:如果将区块链看作一个垂直的栈,那么位于栈底的是首区块,之后每个区块按次序叠放。区块链上的区块从后向前有序地嵌在整个链条之中,每个 区块都指向其前序区块。

以比特币为例,作为区块链的基本结构单元,区块由包含元数据的区块头和一系列交易数据的区块主体构成,它是一个记 录交易信息的数据容器。其中,区块头由三组元数据构成:第一组是索引父区块哈希值的数据,它用于链接前面的一个区块;第二组是与挖矿有关的难度目标、时间 戳和Nonce数据,其中Nonce是用于工作量证明算法的计数器;第三组是Merkle树根数据,它能够总结区块中的所有交易并快速归纳和校验大规模数 据的完整性。每个区块头都拥有各自的哈希值,通过识别哈希值可以识别出相应的区块。区块与区块之间通过父区块哈希值的索引建立起对应的连接关系,进而组成 一条完整的区块链。

比特币的工作流程见图3-7。

沿着区块链中的任何一个节点向上游回溯,总能到达区块链的源头,也就是区块链中的第一个区块。在比特币的区块链 中,第一个区块产生于2009年,它是比特币的区块链中全体区块的共同祖先,人们也称其为创世区块。在创世区块的基础之上,区块链中的用户通过不断计算随 机数的哈希值,寻找满足与特定的SHA-256哈希值对应的数值解。这个寻找随机数的过程好比矿工在茫茫矿区挖掘金矿,因此也被称作“挖矿”。当区块链中 的某个用户找到符合要求的数值解后,该用户在全网范围内发布广播,网络中的其他节点都能够收到这条广播并加以验证。一旦验证为真,其余节点会自动停止计 算,并将新创建的区块加入到前序区块之后。随着一个又一个哈希值数值解被找到,越来越多的用户加入到寻找数值解的队伍中,该哈希散列的难度会相应提高,以 保证数值解不会很快被找到。通过调整SHA-256随机散列的难度,区块链中的用户寻找数值解所耗费的时间将变得可控。在对于上述过程的不断重复中,新的 区块不断生成、验证、加入,最终形成一条长链。

image.png

图3-7 比特币的工作流程

在实际交易中,区块链的生成过程包括节点的连接、交易和记账等基本步骤。例如,在比特币系统中,创建区块的过程叫 作“挖矿”,参与挖矿过程的用户则被称为“矿工”。比特币系统能够通过这一过程来实现交易:系统中存在两个用户——用户A与用户B,他们之间想要发生一笔 交易。不妨假设用户A想要转移一笔资金给用户B,在区块链网络中这笔交易的全部信息存储在一个新建的区块之中。该区块发布广播给区块链网络中的所有用户, 全网用户通过验证哈希值认可交易的有效性。得到了全网用户的一致认可后,这个存有交易信息的区块加盖时间戳,继而被添加到区块链上,成为了一条永久而又透 明的交易记录。在分布式账本中关于用户个人资产的记录项中,用户A与用户B的个人资产分别增减,交易从而得以实现。

区块链的工作原理见图3-8。

在这样的发展过程中,区块链通常是一串直线的连续区块组合链条。但在一些特殊情形下,如网络中不同节点的信息同步 不及时,区块链会产生“分叉”,即在区块链的末端出现两个互相冲突的区块,这两个区块记录了不同的交易信息。在这种时候,区块链由用户来投票决定哪一个交 易有效。具体说来,投票方法是每一个用户在其认为有效的区块后继续开采新区块,而最终最长的那条区块链将被认定是唯一有效的。

综上所述,最终生成的区块链账本数据是全网共同认证和确认的结果,一旦区块链上的全体用户达成共识,交易信息就具有了全网一致性和不可更改性。区块链的这一特点可以完美解决点对点通信中经典的拜占庭将军问题和双花问题。

image.png

图3-8 区块链的工作原理

拜占庭将军问题

拜占庭将军问题是一个共识问题,首先由莱斯利·兰伯特等人在1982年提出,又名拜占庭容错问题、两军问题。对于 该问题的非正式描述是:拜占庭帝国想要进攻一个强大的敌人,为此派出了十支军队去包围这个敌人。这个敌人的实力虽然无法与拜占庭帝国相匹敌,但也足以抵御 五支常规拜占庭军队的同时袭击。基于某些原因,这十支军队不能集合在一起单点突破,只能在分开的包围状态下同时攻击。他们任一支军队单独进攻都毫无胜算, 除非有至少6支军队同时袭击才能打败敌人的进攻。这些军队分散在敌人的四周,依靠军中信使相互通信来协商进攻意向及进攻时间。眼下困扰这些将军的问题是, 他们不确定军中信使是否绝对忠诚。信使中一旦混入敌国奸细,就可能擅自改变进攻意向或者进攻时间并将错误传递给其他将军,阻碍军事行动的顺利进行。在这种 状态下,拜占庭将军们该如何找到一种分布式的协议来让他们远程协商、赢取战斗呢?

将上述概念引入到P2P通信网络中,则可以理解为在分布式网络中,处于不同地理位置的计算机通过讯息交换尝试达成 共识,但有时候系统中的协调计算机(Coordinator/Commander)和成员计算机(Member/Lieutanent)可能由于系统错误 而交换错的讯息,影响最终的系统一致性。

区块链通过对这个系统做出一个简单的修改,解决了拜占庭将军问题。以比特币系统为例,比特币的区块链通过基于哈希 算法的工作量证明机制为发送信息加入了成本,进而降低了信息传递的速率,并引入了随机元素以保证在一个时间之内只有一个城邦(即用户)可以进行广播。那台 成功计算出有效哈希值的计算机将所有之前的信息汇聚在一起,再将自己的信息附于末尾,加之以数字签名,向网络中的其他机器广播出去。只要网络中的其他机器 接收到并验证了这个正确的哈希值和附着在上面的信息,它们就会停止当下的计算,使用新的信息更新各自手中持有的账本副本,然后在更新后的账本的基础上开始 新一轮的哈希值计算。如此这般,所有网络上的计算机都能够保证使用着同一版本的账本,拜占庭将军问题得以完美解决。

双花问题

双花问题是指一笔数字现金在交易中被重复使用的现象。和其他数字资产一样,加密数字货币具有无限可复制性。如何确认一笔加密数字货币在实际的交易中只被支付一次成为数字货币必须解决的问题。

在传统的交易管理中,可信赖的第三方机构持有并保管交易账本,从而保证每一笔现金只能够被花掉一次。而依靠区块链技术构建的交易系统,则在分布式的网络形式中用全网记账的机制代替了传统交易中第三方机构的职能。

与中心机构验证确认支付信息的机制不同,全网记账需要在整个网络中达成共识。以比特币交易为例,在交易发生的那一 刻起,比特币的交易数据就被盖上了时间戳。当交易数据被打包到一个区块中后,交易就算被初步确认了。当区块链接到前一个区块之后,交易会得到进一步的确 认。在连续得到六个区块确认之后,这笔交易基本上就不可逆转地得到确认了。除了上文提到时间戳的作用之外,一笔交易所需的确认时间也进一步增强了交易的安 全机制,有效避免了双花问题的产生。例如,当一笔货币企图被用来支付两次交易时,较长的确认时间可以使后一笔交易先于前一笔得到确认的难度增加。货币在第 一次交易得到确认后支付有效,第二笔交易因此而无法得到确认。区块链的共识机制解决了长期存在于加密数字货币行业的双花问题。

区块链的共识机制

区块链的自信任主要体现于分布于区块链中的用户无须信任交易的另一方,也无须信任一个中心化的机构,只需要信任区 块链协议下的软件系统即可实现交易。这种自信任的前提是区块链的共识机制(consensus),即在一个互不信任的市场中,要想使各节点达成一致的充分 必要条件是每个节点出于对自身利益最大化的考虑,都会自发、诚实地遵守协议中预先设定的规则,判断每一笔记录的真实性,最终将判断为真的记录记入区块链之 中。换句话说,如果各节点具有各自独立的利益并互相竞争,则这些节点几乎不可能合谋欺骗你,而当节点们在网络中拥有公共信誉时,这一点体现得尤为明显。区 块链技术正是运用一套基于共识的数学算法,在机器之间建立“信任”网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。

现今区块链的共识机制可分为四大类:工作量证明机制(PoW)、权益证明机制(PoS)、股份授权证明机制(DPoS)和Pool验证池。

工作量证明机制

工作量证明机制即对于工作量的证明,是生成要加入到区块链中的一笔新的交易信息(即新区块)时必须满足的要求。在 基于工作量证明机制构建的区块链网络中,节点通过计算随机哈希散列的数值解争夺记账权,求得正确的数值解以生成区块的能力是节点算力的具体表现。工作量证 明机制具有完全去中心化的优点,在以工作量证明机制为共识的区块链中,节点可以自由进出。大家所熟知的比特币网络就应用工作量证明机制来生产新的货币。然 而,由于工作量证明机制在比特币网络中的应用已经吸引了全球计算机大部分的算力,其他想尝试使用该机制的区块链应用很难获得同样规模的算力来维持自身的安 全。同时,基于工作量证明机制的挖矿行为还造成了大量的资源浪费,达成共识所需要的周期也较长,因此该机制并不适合商业应用。

权益证明机制

2012年,化名Sunny King的网友推出了Peercoin,该加密电子货币采用工作量证明机制发行新币,采用权益证明机制维护网络安全,这是权益证明机制在加密电子货币中的首次应用。

与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运 作方式是,当创造一个新区块时,矿工需要创建一个“币权”交易,交易会按照预先设定的比例把一些币发送给矿工本身。权益证明机制根据每个节点拥有代币的比 例和时间,依据算法等比例地降低节点的挖矿难度,从而加快了寻找随机数的速度。这种共识机制可以缩短达成共识所需的时间,但本质上仍然需要网络中的节点进 行挖矿运算。因此,PoS机制并没有从根本上解决PoW机制难以应用于商业领域的问题。

股份授权证明机制

股份授权证明机制是一种新的保障网络安全的共识机制。它在尝试解决传统的PoW机制和PoS机制问题的同时,还能通过实施科技式的民主抵消中心化所带来的负面效应。

股份授权证明机制与董事会投票类似,该机制拥有一个内置的实时股权人投票系统,就像系统随时都在召开一个永不散场 的股东大会,所有股东都在这里投票决定公司决策。基于DPoS机制建立的区块链的去中心化依赖于一定数量的代表,而非全体用户。在这样的区块链中,全体节 点投票选举出一定数量的节点代表,由他们来代理全体节点确认区块、维持系统有序运行。同时,区块链中的全体节点具有随时罢免和任命代表的权力。如果必要, 全体节点可以通过投票让现任节点代表失去代表资格,重新选举新的代表,实现实时的民主。

股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。

Pool验证池

Pool验证池基于传统的分布式一致性技术建立,并辅之以数据验证机制,是目前区块链中广泛使用的一种共识机制。

Pool验证池不需要依赖代币就可以工作,在成熟的分布式一致性算法(Pasox、Raft)基础之上,可以实现秒级共识验证,更适合有多方参与的多中心商业模式。不过,Pool验证池也存在一些不足,例如该共识机制能够实现的分布式程度不如PoW机制等。


来源:我是码农,转载请保留出处和链接!

本文链接:http://www.54manong.com/?id=651

'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646208", container: s }); })();
'); (window.slotbydup = window.slotbydup || []).push({ id: "u3646147", container: s }); })();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值