双花是什么?

学院 Smith 11006 浏览

双重支付

双重支付又名“双花”,也就是双重花费的意思。

如果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美元。

这就是双花问题。


声明:本文为文章作者或转发者向区势传媒的投稿,观点绝不代表区势传媒立场,亦不构成任何投资意见或建议。

下一篇文章

Fomo3D核心开发者Inventor因健康原因离开

Team Just团队声明:核心成员Inventor因健康原因离开团队。此后,Inventor将不再担任Fomo3D项目的Solidity开发,并不再参与Team Just团队的项目。

RatingToken 2018-12-06 17:46 10451

评论(0)

最新评论