风险提示:理性看待区块链,提高风险意识!
分布式和区块链系统中的双花问题:为什么我们需要工作量证明?
首页 > 币界资讯 > 区块链新闻 2018-08-22 17:21:24
摘要
双花问题如果Alice钱包里面有10美元,她可以去购买等值的物品。如果Alice去商店后,发现台灯和桌子都是10美元,那么她只能买其中一样东西。而我们所说的双花问题,正好与之相反,同样的10美元,你可以购买两样东西。不过,双花问题在我们生活中其实不会发生,因为你在购买东西的同时,也同时进行了支付(也 。
币界网报道:

双花问题

如果Alice钱包里面有10美元,她可以去购买等值的物品。如果Alice去商店后,发现台灯和桌子都是10美元,那么她只能买其中一样东西。

而我们所说的双花问题,正好与之相反,同样的10美元,你可以购买两样东西。

不过,双花问题在我们生活中其实不会发生,因为你在购买东西的同时,也同时进行了支付(也就是说,这是个中心化系统)。换句话说,如果Alice花费10美元购买台灯,那么这10美元就不属于她了。

但是在分布式系统中,问题会有些不同。

对于分布式系统来说,交易记录会广播给网络中所有节点(也就是说,Alice会在网络广播交易信息,从而网络中的每个节点都会知道“Alice已经花费10美元来购买台灯”)。

每个节点都会记录这个交易信息,然后将信息传输给网络中的下个节点,并且这个过程会持续直到网络中的所有节点已经记录了这条信息“Alice已经使用了10美元来购买台灯”。

但是,在信息通过庞大网络进行传输的时候,以下问题也会出现:

• 当信息在网络中传播的时候,路径不同,并且在不同时间到达不同节点。

• 由于节点会失效,有些节点也许不能将信息传递给下个节点,然后这个消息就会丢失。

因此,在某个时间会发生这种情况,某些节点知道Alice已经花费了10美元购买台灯,但是某些节点却不知道这一消息。

对于那些不知道Alice花费10美元购买台灯的节点来说,这条信息还没有传达给他们;他们仍然会认为,Alice还有闲置的10美元可以购买任何其他东西。

因此,对于Alice来说,很可能她会向网络中传播另一个消息“Alice已经花费了10美元来购买桌子”,并且如果这个信息在“Alice花费了10美元来购买台灯”这个消息之前达到节点,那么这个节点就会认为Alice已经花了10美元来买桌子。

这就有可能造成这种情况,Alice能够花费10美元买桌子,并且花费同样的10美元来买台灯;这是违背常理的,因为Alice只有10美元,并不是20美元。

这就是双花问题。

双花问题会在分布式系统中出现,是因为交易信息在庞大的网络中传输需要花费时间。

由于网络中信息传输的时间差,无法保证信息达到节点的顺序和信息创建的顺序是相同的。

注意:有人会说,转账信息中会包含通用的时间戳,同时还有哈希值来保证数据的完整性,这就很容易解决转账信息会按照不同时间达到某个节点。

但是,Alice可以在签署信息之前造假时间戳,同时把第二条信息放入更早的时间戳,给网络造成疑惑。

从更深层次来看,现在网络处于不一致的状态,其中有些节点已经验证“Alice花了10美元买灯”,其他节点验证了“Alice花了10美元买桌子”。

为了解决网络中状态的不统一性(很少节点会验证某个交易,并且其他节点已经验证一个相反的交易),我们需要某个共识机制,确保交易的顺序,从而将网络带回统一的状态。

分布式账本技术和区块链技术的共识机制

“真理不是事情的真相或者原因。简单来说,就是每个人都同意这个事情。”

― Gregory Maguire, 坏女巫:新绿野仙踪

这种共识的形成有两种方法。

基于投票的共识(需要信任的联盟节点或者私有分布式网络,例如,超级账本):网络中的每个节点都是互相认识的,而且每个节点会进行投票,从而对交易进行验证。最后,通过多数人投票选举和担保政策(例如,实用性拜占庭容错算法)来实现交易,而且担保政策可以使得只要全网2/3节点通过的前提下,就可以让交易有效。

基于抽奖或者竞争的共识(公链或者无需信任节点网络,比如以太坊):网络中基于工作量证明或者权益证明选出的成员,可以决定交易是否有效,并且这个决定需要被全网都认可。无论谁赢得了这个奖励,全网都会同意由获胜节点验证的转账是有效的。

这种通过竞争选出的下个节点的方式,通常是通过解决加密数学难题来实现,例如工作量证明,或者是根据对网络投资的贡献,来得到更高的获胜概率,例如权益证明。

共识机制(不论是投票还是抽奖),都是让网络决定哪个交易是有效的。网络中所有的节点然后再去验证这个交易,这些只会通过有效交易的共识来进行处理。

有意思地是,有效交易可能并不是正确的交易。在我们的例子中,如果群体共识投票“Alice花费10美元买了桌子”作为有效交易,那么正确的交易“Alice花费10美元买灯”就会被网络所有节点认为无效。

其实,共识算法的目标并不是确定两个交易之间,哪个是正确的。共识算法是为了防止分布式网络中的双花问题(也就是说,在我们的例子中,通过共识机制,我们可以确保Alice可以消费10美元,并且只消费了一次);而且保证全网只会同意某个交易信息,并且任何不同的交易信息都会被网络认为是无效的。

在“无需信任的网络”构建“信任”

Bodhi:“你不信任我吗?”

Johnny Utah:“你需要去获得信任。”

— 惊爆点(1991)

通过工作量证明算法,获胜者可以通过解决数学难题,从整个网络脱颖而出,而且获胜者可以去决定网络中哪些交易是有效的,并成为区块链中下个区块的一部分。

但是问题来了,为什么我们需要节点互相竞争来解决复杂的加密数学难题,再选出获胜者? 也就是说,为什么我们需要复杂的工作量证明?任何节点可以被随机选择并称为下个获胜者吗(随机选择)?同时,这个节点还要被选举出来,并对有效的交易做出决定。

答案如下。

如果彩票获奖者并不是通过计算量选拔出来并且添加区块(或者有些代币是需要算力,例如权益证明),那么对于任何节点来说就会很容易将下个区块添加到区块链上。

这意味着很多人都可以添加他们认为的区块到区块链上,并且拥有最强算力的人能够扩大区块链,并且获得最长的链。

中本聪对这个问题的解决方案“在无需信任的网络中构建信任”,也是为了确保对于任何人或者团体(只要团体算力小于50%)都无法通过算力来控制整个网络,也就是控制区块链上区块的创建,同时维持区块链上最长的链。

因此,基本原理是,如果想在区块链中添加区块,需要通过难度很高的计算,并且引进某种机制来完成。这些机制中,最常见的,就是工作量证明算法。

但是,其实也有消逝时间证明(PoET)机制,这种算法需要在区块链上加入下个区块之前,“等待”一段时间,从而再次人为地将添加区块的计算难度变得很困难。

对于权益证明算法,代币的抵押机制可以选出创建区块的下个人,这也让任何个人都很难去持有足够的代币,来控制整体网络。

上一篇: 欧洲版以太坊AE,能否超越EOS成为下一个百倍币?
下一篇: BTC突破短线压力,多头走势或将确立?!
推荐专栏
Boss Wallet Web3 Econom Pass
专注币圈最新资讯
通俗浅显地聊透Web3大事小情
读懂区块链生态与未来,尽在币界网!
热门币种
更多
币种
美元价格
24H涨跌幅
BTC比特币
60,963.61 USDT
¥435,103.38
-2.72%
ETH以太坊
3,368.69 USDT
¥24,042.67
-0.3%
BNB币安币
570.68 USDT
¥4,073.00
-0.28%
USDT泰达币
1.02 USDT
¥7.25
-0.19%
SOL
135.96 USDT
¥970.36
+7.66%
USDC
1.00 USDT
¥7.15
-0.01%
TON
7.59 USDT
¥54.14
+4.55%
XRP瑞波币
0.47720 USDT
¥3.41
+0.48%
DOGE狗狗币
0.12210 USDT
¥0.87140
+2.43%
ADA艾达币
0.39050 USDT
¥2.79
+3.88%
热搜币种
更多
币种
美元价格
24H涨跌幅
Solana
180.72 USDT
¥1,310.49
+0.29%
比特币
66129.12 USDT
¥479,535.31
-0.07%
Curve
0.2568 USDT
¥1.86
-0.43%
Filecoin
4.3437 USDT
¥31.50
-1.79%
FTX Token
1.3892 USDT
¥10.07
-2.35%
比特币SV
51.0769 USDT
¥370.38
-0.68%
狗狗币
0.1252 USDT
¥0.91
-2.03%
柚子
0.5812 USDT
¥4.21
+1.82%
Yield Guild Games
0.474 USDT
¥3.44
-2.03%
奇亚
18.7015 USDT
¥135.61
-0.22%
Conflux
0.167 USDT
¥1.21
+1.09%
Shiba Inu
1.632E-5 USDT
¥0.00
-1.33%
最新快讯
更多
链上数据分析平台Arkham集成Blast链数据
2024-07-31 10:48:39
MellowProtocol已经接入OKXWeb3钱包
2024-07-31 10:41:48
Paradigm于8小时前将39,068枚ETH存入托管平台AnchorageDigital
2024-07-31 10:38:36
ZKX24小时跌逾34%
2024-07-31 10:34:00
币界网晨间分析:以太坊ETH价格行情预测
2024-07-31 10:30:08
币界网实时行情早报:BNB币安币价格突破588.4美元/枚,日内涨1.01%
2024-07-31 10:29:32
Movement已上线公共测试网
2024-07-31 10:27:02
下载币界网APP