区块链及数字货币中的双花问题指的是在交易过程中,一个人花费了同一笔数字货币两次或多次,这是一种欺诈行为,会导致交易的不可逆转性受到威胁,为了防范双花问题,区块链技术采用了共识机制,如工作量证明或权益证明,通过验证交易的合法性和确保交易的唯一性,数字货币交易中的双花问题也需要用户们保持警惕,使用可信的交易平台或钱包,并确保交易信息的安全和隐私保护,以避免个人账户被攻击造成的双花问题,下面看下详细内容。
双花问题的定义意义何在
什么是区块链及数字货币中的双花问题?提到双花问题,很多投资者可能会感到困惑,甚至有些投资者从未听说过双花问题。实际上,加密货币领域一直存在着双花攻击的案例,比如2018年发生的比特币黄金双花攻击。然而,大多数投资者并不关注这方面的新闻,因此也无法了解双花问题的含义。那么,区块链及数字货币中的双花问题到底是什么意思呢?下面我们将通俗地解释区块链及数字货币中的双花问题。
区块链及数字货币中的双花问题是什么意思?
数字货币是二进制代码,可以复制的数据,因此存在着重复使用数字资产的情况,这就是所谓的“双花”。一笔资产可以被花费两次甚至多次。
我们知道,作为中心化的支付平台,第三方保留交易总账以确保每笔数字现金只被花费一次。而在去中心化的区块链中,双花问题是如何出现的呢?
让我们假设一个场景:
场景1:诈骗者使用数字货币购买数字产品,比如购买一本电子书,价格为1个EOS。他先将EOS发送给商家,这笔交易记为tx1;然后同时将相同数量的EOS发送给自己的另一个钱包地址,这笔交易记为tx2。商家的网站程序在检测到交易tx1后认为没有问题,自动发送电子书;然而,由于交易tx1和交易tx2相冲突,矿工只会在某个时间点打包一个交易。如果不小心将两笔交易都打包了,其他节点的矿工会验证并拒绝这个区块的打包成功。因此,如果交易tx2成功打包,交易tx1将被作废,这种情况下,诈骗者成功地双花了EOS,既买到了电子书,又收回了自己的EOS。
解决办法:对于这种场景下的双花问题,较好的解决方法是,在商家网站程序自动发送电子书之前,先让区块链确认交易,至少需要一个区块的确认。只有经过至少一个区块的确认的交易,才会盖上时间戳且之前从未存在过,才会被认为是有效的交易。比特币的交易需要经过6个区块的确认才算是安全、有效和可靠的,以避免出现孤立区块的情况;而EOS的充值确认在币安交易所中需要至少32个区块的确认。
另外一种场景中,诈骗者可以是矿池或矿工。
场景2:诈骗者矿工先构造交易tx1和tx2,tx1的手续费很低,将tx1发送给商家购买电子书,但是交易tx2被隐藏起来不广播,只保留在自己的区块中。由于tx1的手续费很低,所以其他节点的矿工不愿打包;而tx2被隐藏起来,因此区块链浏览器不可能发现存在相冲突的交易,商家也就无法发现。当商家认为这是一笔正常交易并发货后,诈骗者矿工将在自己挖到的区块中打包这个交易,然后广播这个区块,所有节点都会发现tx1是非法的,直接作废掉,商家就无法收到货币。
解决办法:要想防范这种双花攻击,就需要依赖其他矿池和矿工的协作。因为诈骗者构造的tx2交易不会被广播,只有打包进诈骗者矿池挖到的区块,其他矿池才会发现该交易。如果其他矿池针对这种包含延迟交易(tx2)的区块进行孤立处理,那么诈骗矿池的这个区块就无效,损失区块奖励,这是一种非常严重的情况。具体来说,可以设定矿池在超过一定时间(比如10秒内)没有接收到交易(tx2)时,就将这个区块孤立处理,在这个区块的前一个高度上进行挖矿。
如果执行这种孤立政策的算力超过51%,那么基本上没有矿池敢发起这种隐藏交易(tx2)来攻击零确认交易。
比特币如何防范双花问题?
首先,要检查所使用的资金是否未被花费。方法是查看你的交易的来源是否在未花费交易列表(UTXO)中。不需要追溯到挖矿生成的Coinbase交易。
然后要检查你提交的交易是否包含有效的鉴权信息。例如,如果之前通过P2PKH交易向你付款,那么要检查交易中是否包含了该地址对应私钥的签名。P2SH、P2MS类型的交易的鉴权规则类似。
如果你使用同一个UTXO构造了两笔交易,分别付给A和B,那么比特币核心客户端的规则(截至2016年2月)是只转发先获取到的那笔交易。而哪笔交易将被包含在未来的区块中,取决于矿工的选择。
矿工的挖矿程序通常是定制开发的,他们可以在这两笔交易中自由选择。例如,有些矿工会选择第一个接收到的交易,而有些矿工会选择交易手续费更高的那笔。
当两笔相矛盾的交易中的一笔被写入区块链并达到6个确认后,可以认为该交易已经获得最终确认。在等待6个确认的情况下,比特币几乎不可能遭受双花攻击。如果不等待任何确认,那么很有可能受到双花攻击。通常来说,3个确认已经相当安全。
实际上,避免数字货币的双花问题主要取决于交易成功后的区块确认数。比特币的区块确认数达到6时相当安全,几乎不可能发生双花问题,除非矿池的算力超过50%,那就可以随心所欲地进行攻击。此外,判断交易的合理性不仅是矿池节点的责任,任何一个核心节点都会进行判断。它们会查询历史区块链,判断交易的输出是否小于或等于输入。
以上就是区块链及数字货币中双花问题是什么意思以及如何防范双花问题的详细内容。如欲了解更多关于双花问题的信息,请关注康耐德知识库的其他相关文章!