主页 > 最新版imtoken官网 > 第 17 课交易延展性攻击

第 17 课交易延展性攻击

最新版imtoken官网 2023-08-29 05:08:32

或扫描下方二维码:

这里写图片描述

2014年2月25日,日本时间上午11点,MT.GOX交易所(俗话说门头沟)暂停交易。众所周知,MT.GOX曾经是最大的比特币交易所,交易量一度达到所有比特币交易量的80%,也是运营时间最长的交易所。

门头沟的关闭源于黑客攻击。总共丢失了 850,000 个比特币,按照目前的价格,这些丢失的硬币价值近 4. 54 亿美元。

而这就是我们今天要讲的,著名的“交易延展性攻击”。

Transaction Malleability,译为“事务延展性”,也叫“事务延展性”,其实是一个比喻。现实生活中,一枚金币在使用的时候2014年比特币交易所,用锤子砸了几下,就不是很圆了。这枚金币的基本含金量并没有改变,只是外观与标准金币有些不同。这枚金币至今仍是公认的金币。这就是“金币的可锻性”。

交易延展性,或“交易延展性”,是指比特币支付交易在发送之后和确认之前可以被修改(准确地说是伪造和复制)的事实。

为什么交易发送后可能被篡改,不是有签名吗?原因之一是大多数挖矿程序使用openssl库来验证用户签名,而openssl兼容多种编码格式2014年比特币交易所,以及椭圆曲线数字签名算法(ECDSA)本身,签名(r,s)和签名( r ,-s(mod n)) 都是有效的。因此,对签名字符串本身的表示进行了一些调整,仍然是有效的签名。

我们知道,每个 Transaction 都有一个 Transaction ID,它是整个交易的 Hash,是 Transaction 的唯一标识。现在您已经调整了签名,签名仍然有效,但交易 ID 已更改!!!

黑客利用此功能攻击了交易所。我们来看看攻击过程:

Step1:黑客拥有一个账户,在交易所开一个账户,然后将他的比特币转入其中。

Step2:申请提现,交易所发起交易。

Step3:交易被广播到网络,然后被打包到区块链中。黑客接收到 Transaction,稍微改变 scriptSig 的格式,生成新的交易进行广播。此时,Transaction id 已更改。

Step4:这个来自黑客的新交易被区块链接收。然后向交易所投诉它没有收到钱。交易所根据自己生成的Transaction Id查询交易,发现在网上查询不了,又会转给黑客,也就是双提现!相同数额的钱被黑客提取了两次,甚至多次!交易所损失惨重。

总结:

交易延展性攻击的发生是因为 Transaction ID 的变化(这是一个 Transaction 的唯一标识符),而 Transaction ID 的变化是因为其中的 scriptSig 可以调整。

如果有办法保证在整个交易过程中Transaction ID不能被改变,那么这个问题就迎刃而解了,这就是后面要讲的“隔离见证”。

相关链接:

《闪电网络第十六课HTLC》