一、区块链鼻祖比特币之8:分叉带来的双花支付、51%攻击与解决办法
分叉
前面讲到了比特币通过区块链+工作量证明的独特设计来解决了时间顺序,但是不能保证在同一时刻有两个节点算出了正确的解,虽然这种可能性很低很低。这就带来了区块的分叉。
虽然说几乎同时有两个节点计算出这一数学问题的可能性微乎其微,但是仍然存在这样的可能性,所以分叉就以为着同一个区块的后面可能会跟上两个不同的区块。
规则的打破一直要到下一个区块被人解开。则会立即转向最长的区块,而那些短的区块则会被抛弃。数学问题使得区块很难被同时拆解。要连续发生多次更是困难。最终区块链会稳定下来。也就是说所有人对最后几个区块顺序达成共识。分叉意味着,譬如,若你的交易出现在较短的支链,它就会失去进入区块链的位置。一般而言,只代表他会回到未确认交易池。然后被纳入到下一个区块。
比特币网络如何解决分叉带来的双花支付
可惜,交易失去区块位置的潜在可能,给了本来定序系统防范的重复支付攻击机会。考虑下面的一个攻击者A,其首先用自己的比特币交换B节点的货物,其立即又支付给自己。然后其通过努力的制造更长的链条来让自己的支付替代掉B节点的支付,从而实现了双重支付,B节点既得不到钱,还失去了货物。
这时交易会退回到未确认池中,因为A节点已经利用参照同样的input交易取而代之。节点就会认为Bob的交易无效。因为已使用掉。
你可能会猜测A节点会预先的计算出一支区块链,然后抓住时机发布到网络。但是每个区块的数学谜题阻挡了这个可能性。如前面所诉,解开区块是猜测出一个随机数的过程。一旦得出答案,解出的哈希值就会成为指纹一样的区块识别。只要区块内容有一丁点变化,下一个区块的参考值就会完全不同。此机制的结果就是无法在区块链中置换区块。在得到前一个区块之前,下位区块无法被解开。前一个区块的指纹也是杂凑函数的引数之一。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。我们将证明,设想一个较慢的攻击者试图赶上随后的区块,那么其成功概率将呈指数化递减。另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
如果有一台超级电脑,能够在区块解题中获胜?
即便是一台超级电脑,或者时几百上千台电脑也很难赢得解一个区块的胜利,因为竞争对手不是任一台电脑,而是整个比特币网络。你可以用买彩票来比拟。操作千百台电脑,如同买了千百张彩票一样。
51%攻击是指的什么
根据前面的例子,我们知道,要想有50%的概率领先其他人解题得到胜利,就需要掌握全网50%以上的算力。要连续领先他人解出区块,掌握的运算能力还需要高得多。所以区块链中的交易是受到数学竞赛所保护。恶意用户必须和整个网络较量。区块连接建立的结果,使得在支链越前方的交易越安全。恶意的用户必须在更长的时间赢过全网络,来达成重复支付,替换前面的区块链。所以,系统只有支端末尾易受到重复支付攻击。这也是为什么系统建议多等几个区块,才能确认收款成功。
个人博客:
二、什么是双花问题
双花问题指的是在区块链技术中的特定场景问题。
在区块链网络中,每个节点都有完整的账本副本,并共同维护网络的安全和稳定性。当网络中的两个或多个节点在同一时间段内被两个不同的交易同时触发,并且这些交易都尝试对相同的资源进行更改时,就会出现双花问题。具体来说,双花问题主要出现在以下场景:在区块链的共识达成之前,某个用户消耗了相同的数字资产两次或多次进行交易,如果这种情况没有被及时发现和纠正,可能会导致资产的不平衡和损失。
对于理解双花问题,需要了解以下几点:
1.双花问题的核心在于交易被确认前的状态。在传统的支付系统中,交易一旦被确认并完成,就无法更改。但在区块链技术中,交易需要经过网络节点的验证和共识过程才能最终确认。在这个过程中,如果恶意用户尝试对同一资产进行多次消费,就可能引发双花问题。
2.双花问题的存在与区块链技术的特性有关。由于区块链的去中心化特性,交易需要经过网络节点的共识才能生效。在这个过程中,如果网络延迟或其他因素导致交易未能及时被确认,就可能出现双花的情况。特别是在某些工作量证明的区块链系统中,由于挖矿竞争的存在,有可能出现短暂的交易确认延迟,增加了双花问题的风险。
总的来说,双花问题是区块链技术发展中需要解决的一个重要问题。随着区块链技术的不断成熟和完善,各种机制和策略也在不断被开发出来以解决双花问题,确保区块链系统的安全和稳定。对此问题还需要持续关注和研究新的解决策略与技术应对不断变化的网络环境和攻击方式。同时注重通过技术进步和应用场景的不断拓展来提升公众对区块链技术的认知和理解。
三、入门科普:什么是双花
入门科普:什么是双花?
01“双花”是什么?
双重支付,通常称为“双花”,指的是一种攻击手段,攻击者试图在一次交易中将同一笔数字货币用于两个不同的目的。这相当于在传统货币系统中,一个人试图用同一张钞票同时购买两件商品。
02双花问题是如何发生的?
双花问题可能发生在区块链系统中,尤其是在共识机制导致交易确认时间较长的情况下。攻击者可以利用这个时间差,尝试进行两次交易。另一种情况是,攻击者通过控制网络算力,创建一个更长的区块链,从而使之前的交易链变得无效,进而实现双花。
03比特币如何避免双花问题?
比特币作为一种去中心化的数字货币,采用了多种技术手段来防止双花问题的发生。每笔交易都需要验证之前的交易记录,确保UTXO(未花费的交易输出)的有效性。如果两笔交易同时发生,节点会选择先接收的那笔交易进行确认。此外,比特币网络会在发生分叉时,选择最长链上的交易进行确认,确保交易的最终一致性。一旦一笔交易被6个区块确认,它就得到了网络的最终认可。
四、双花是什么花区块链技术如何避免支付中的双花问题
“双花”是指在加密货币系统中,同一笔数字资产被重复使用的现象。例如,Alice钱包里有10美元,可以购买等值的物品。然而,在双花问题中,她可以同时购买两件价值10美元的物品。在日常生活中的中心化系统中,这种情况不会发生,因为支付后,资金不再属于购买者。但分布式系统中,交易记录被网络中的所有节点记录和传播,可能出现路径差异、节点失效导致信息传播延迟或丢失。这可能导致某个节点未收到Alice花费10美元购买台灯的信息,仍认为她有10美元购买其他物品,从而允许Alice在同一笔钱上进行双重消费。
避免双花问题的关键在于确保交易的唯一性和确定性。比特币的创始人中本聪提出,通过以下步骤实现这一目标:
1.新交易向全网广播。
2.节点收集交易信息并打包成区块。
3.节点寻找工作量证明。
4.找到工作量证明的节点广播区块信息。
5.其他节点确认交易的有效性和唯一性。
6.获得其他节点确认的节点通过扩展链接网络来确认交易。
通过上述步骤,交易被时间戳标记并在区块中打包,完成第一次确认。连续六次确认确保记录的不可篡改性。因此,尝试进行双重支付交易时,由于确认时间较长,后一交易几乎不可能与前一次交易同时确认,从而避免了双花问题。区块链技术通过全网记账和共识机制确保了交易的唯一性和安全性,有效防止了双花问题的产生。
五、比特币如何解决“双花”问题
比特币如何确保“双花”问题的解决是其核心优势之一。简单来说,"双花"即同一枚数字货币被两次消费,这是区块链面临的重大挑战。在传统银行体系中,由于中心化机构的存在,这种问题几乎不存在。然而,比特币的去中心化特性使得避免双花显得尤为重要。
首先,比特币依赖于时间戳机制和最长链原则。交易信息广播后,区块按照时间顺序记录,先被纳入区块的交易被视为有效,后续交易将被拒绝。比特币的确认过程通常建议等待六次,确保交易最终不可逆。最长链原则在POW共识机制中起着关键作用,矿工依据最长链进行挖矿奖励,形成网络的共同共识,即使部分节点试图篡改,也会因网络的自我校正而失效,防止双花发生。
每笔交易都需检查比特币的状态,如果已被标记使用,新交易将被系统拒绝。比特币通过这一机制确保了交易的唯一性,使得数字货币的交易得以安全、可靠地进行,这是比特币价值的核心体现。
了解更多区块链知识,可以关注望角号(wangjiaohao.com),获取实时资讯。
本站所有软件信息均由用户上传发布,版权归原著所有。如有侵权/违规内容,敬请来信告知邮箱:764327034@qq.com,我们将及时撤销! 转载请注明出处:https://www.ssyg068.com/biquanzx/20709.html
发表回复
评论列表(0条)