主页 > imtoken最新app下载 > MtGox 停止提款白话比特币交易安全

MtGox 停止提款白话比特币交易安全

imtoken最新app下载 2023-09-08 05:13:15

文/pnig0s|小P

灵感来自知乎上的一个问题:

我们先来回顾一下这个事件的背景:

MtGox 2月7日发布公告,称发现大量无效提现请求,需要分析原因,暂停所有提现操作。 随后,bitstamp等多家知名比特币交易网站宣布暂停提现,引发投机者恐慌,比特币价格一度腰斩。 2月10日,MtGox再次发布公告称已查明原因,提现交易遭到“伪造交易ID”攻击比特币一次提现多少安全比特币一次提现多少安全,并表示将尽快恢复提现。 这起事件的罪魁祸首是“比特币交易的可延展性(transaction malleability)”,可延展性体现在“交易ID可伪造”,而“交易ID可伪造”的原因是签名算法不够健壮。

如果有小伙伴看上面这段话吃力,下面我来详细解释一下什么是“可伪造性”、“交易可延展性”和“交易ID伪造”,以及它们为什么能造成如此巨大的影响:

比特币提币和提现_比特币的的现有量_比特币一次提现多少安全

1. 关于“交易延展性”:

首先,我们知道金、银、铜、铁等金属是可以锻造的。 《龙门禁卫军》中的白景琦为了藏私房钱,将银锭打成银便壶,而银便壶与银锭的价值相当。 这是金属“延展性”的物理体现。

在一笔比特币交易中,第三方交易系统会将交易的发送方、接收方、交易金额、比特币钱包私钥等数据作为一笔交易发送到比特币网络,并在发送和签名前对这些交易信息进行加密,最后根据生成的签名得到哈希值,作为交易ID返回给提现用户(类似于我们平时网购的订单号)。

上图展示了在一个交易请求(比如提现)之后,交易系统对当前交易所做的工作。 省略了一些细节,但它反映了整个过程。 用户只收到一个交易ID,可以根据这个交易ID查询交易是否成功。

上图是知名在线比特币钱包区块链的交易请求之一。 绿色箭头两边是比特币钱包地址,上面的哈希值就是交易ID(TxID)。

比特币的的现有量_比特币提币和提现_比特币一次提现多少安全

当交易被发送到比特币网络时,网络中的每个节点都会根据之前生成的签名来验证交易的真实性。 这些做法是正确的,也是理所当然的。 问题出现在签名算法中。 由于现在使用的签名算法大多是基于OpenSSL的ECDSA(椭圆曲线数字签名),所以这种签名算法的一个问题是修改签名的某个字节可以使签名仍然有效。 验证成功,则交易在伪造签名后仍然可以成功进行。 如果单单在比特币网络中不是什么大事,最多也就是乱七八糟,但是对于第三方交易系统就不一样了,因为交易ID是根据签名生成的,伪造的签名会生成完全不同的交易。 ID,第三方交易系统如果判断两个ID不同,则判定本次交易失败,但实际上交易已经成功。 此时如果用户发现提现交易提示失败,可以重新发起提现交易。 第三方交易系统看到之前确实失败了,会再次提现。 这时,用户的比特币钱包会收到更多的比特币,也造成了第三方交易平台的资金损失。 交易的可伪造性体现在虽然签名被“伪造”(修改和伪造),但最终的交易仍然有效。

2. 为什么这样的攻击有效:

原理在前面已经讲清楚了,但是会有一个疑问。 我们的伪造交易请求是在正常交易请求之后发送的。 如果接受了正常的交易,那么我们伪造的交易如何运作呢? 这是比特币网络的一个特点。 发送比特币交易请求后,不会立即返回是否交易成功。 比特币网络会有处理延迟。 由于其自身的特点,所有的Transaction请求都是以网格形式随机处理的,两个transaction请求不会在队列中依次处理。 这为攻击者提供了可乘之机。 专业上讲叫时间条件比拼,通俗点说就是拼人品。 我们的伪造交易和正常交易都在比特币网络中,如果先处理伪造交易,那么攻击就成功了。

3.如何发起攻击:

1、首先,需要有足够多的比特币矿机接入网络,以增加伪造请求被优先处理的可能性。

比特币一次提现多少安全_比特币提币和提现_比特币的的现有量

2、攻击者在第三方交易平台提交提现请求,获取交易ID。

3. 根据交易信息伪造签名并生成完全不同的交易ID,发送伪造的请求。

4.如果优先处理伪造的交易,则原交易将失败。

5、我们可以再次提交提现请求,第三方交易平台在确认上次交易失败后,会再次发送提现交易。 至此,攻击成功。

攻击流程图如下:

比特币的的现有量_比特币一次提现多少安全_比特币提币和提现

4、如何预防:

不要太年轻太简单,只根据一个哈希值来判断交易的状态,使用双因素或多因素认证。 例如,可以根据用户比特币钱包的余额来判断用户是否有足够的余额进行交易。 或者跟踪每笔交易的信息,判断交易是否真的成功。

五、其他:

Mt.Gox此次暂停提币,也是为了追溯之前所有异常交易请求的来源,看看哪些是伪造交易ID攻击造成的。 由于数据量巨大,调查需要花费大量时间。

其实这个问题和51%矿池攻击一样早就有人提出来了,也有相应的防范措施,只是Mt.Gox等一些第三方平台并未关注。

比特币提币和提现_比特币的的现有量_比特币一次提现多少安全

货币安全大致分为两类:

1.货币安全。

2.货币交易安全

MtGox这次的问题基本上是币币交易的安全问题。 虽然签名算法不够健壮,但不影响整个比特币网络的安全。 因此,不能认为比特币是脆弱的,也没有必要看不起比特币。 就像如果国内的第三方支付平台出现了漏洞,我们也不能因此而看不起人民币。

6.结束结束:

对比特币感兴趣,想快速了解它的同学可以看FreeBuf字幕组翻译的视频《比特币的运行机制与原理》,比看各种资料更方便