什么是重放攻击?

重放攻击(Replay
Attack)并非区块链技术所特有,其最初指在互联网中,攻击者将拦截到的数据再次原封不动发送给接收方的情况。只要攻击者知晓自己所拦截信息的用途,哪怕信息经过加密,其仍然可以发起重放攻击达到恶意目的,例如窃取存款、窃取账号等。而在区块链中,由于时间戳的存在,重放攻击的定义不同于传统互联网,其表现形式也有相应差异。

如果BTC分裂为一种或多种BTC,如BTC1/BTC2/BTC3等,每个BTC账户内将根据他的BTC余额,同时存在对应数量的所有分叉

由于每条链上的地址和私钥、算法等都相同,交易格式也完全相同,导致在其中一条区块链上发起的交易,完全可以放到另一条区块链上去重新广播,可能也会得到确认。这就是“重放攻击”。

讲解防止重放攻击?

由于重放攻击会导致链分叉时用户的资金安全性降低,为了保证资金安全,区块链项目多采用不同手段来防止恶意用户发起重放攻击。

首先最常用的方式便是完善交易格式,让分叉点之前即存在的资金所关联的交易只能在一条链上生效,这就要让分叉后的链条在交易结构上做出区别。

对于以升级为目的的分叉而言很容易就能达到,因为硬分叉升级将采用不同的客户端版本,交易的前缀中通常包含有发起交易客户端的版本信息。分叉后矿工为了避免打包旧客户端的“非法交易”(并非恶意交易,仅仅只是版本号过低不被其他节点所承认),通常会拒绝一定版本号以前的交易,保证恶意攻击者很难在硬分叉升级时通过重放攻击窃取资金。

以太坊硬分叉后发生的“重放攻击”和传统计算机术语不是一回事。

传统术语“重放攻击”:指的是身份欺诈。在维基百科上定义很清晰,如下,

假设Alice向Bob认证自己。Bob要求她提供密码作为身份信息。同时,Eve窃听两人的通讯,并记录密码。在Alice和Bob完成通讯后,Eve联系Bob,假装自己为Alice,当Bob要求密码时,Eve将Alice的密码发出,Bob认可和自己通讯的人是Alice。

以太坊硬分叉后产生的“重放攻击”并不是身份欺诈,是一条链上的交易在另一条链也往往是合法的,交易可以重新在另一链上广播,所以才被称为“重放攻击”,但这本质上并不是一种“攻击”。

以太坊在192万区块高度发生了硬分叉,产生了两条链,分别称为ETH chain和ETH Classic
chain,上面的代币分别称为ETH和ETHc。这两条链上的地址和私钥生产算法相同,交易格式也完全相同,导致在其中一条链上的交易在另一条链上很可能是完全合法的。所以你在其中一条链上发起的交易,就可以到另一条链上去重新广播,可能也会得到确认。这就是“重放攻击”。

我们使用例子来说,这次以太坊硬分叉后发生的“重放攻击”是这样的:

1.以太坊在第1920000区块高度上硬分叉出来两条链,分别称为ETH chain和ETH Classic
chain,上面的代币分别称为ETH和ETHc。

2.在硬分叉高度前的所有ETH都在分叉后的两条链上有用,即持有分叉前的ETH都自动被赠送等额ETHc。

3.某个用户持有在硬分叉高度前的ETH,该用户将自己的硬分叉高度前的ETH通过自己控制私钥的本地钱包(这个无论是ETH chain还是ETH
Classic chain钱包都是一样的)发一笔交易到交易所充值到其账户的ETH。但ETH chain和ETH Classic
chain都能够识别这一次交易,都是合法的交易,都会打包交易。也就是本来用户是在一条链上广播交易,但可以在另一条链上被“重放”广播了。(你可以自己用钱包去广播,也可能会有人或程序找到你的交易信息帮你去广播)

4.因为用户充值账户是交易所的,对用户来说是一个offchain钱包。如果交易所不给你,那你就丢掉了本来应该属于你的ETHc。

5.如果用户在硬分叉高度前是将ETH存放在交易所,原则上交易所应该是给用户两种币。当用户从交易所提取ETH到本地钱包时,刚好交易被提取的币是在硬分叉高度前的币。而且你又在你自己的电脑上装了两个钱包,分别是ETH
chain钱包和ETH Classic chain钱包,而且提币地址在ETH chain钱包上生成,然后通过导入私钥的形式钱地址导进ETH Classic
chain钱包上。那你提币的同时,可以在两条链上都广播你的提币交易,这样你的两个本地钱包都能收到等额的币。

6.步骤5里,如果用户只装了一个钱包比如ETH chain钱包,那另一份ETHc就会收不到,但并不会丢,因为你的收币私钥是和你的ETH
chain一样的,只要你提取出来这个私钥,然后导入ETH Classic chain钱包就可以了。

7.步骤5里,如果用户提走ETH,是充值到了另一个交易所,比如从yunbi提ETH到P网。这时候P网又只给用户一种币即ETH,那用户就会丢失掉ETHc,丢掉的在谁手上呢,在P网手上。如果用户又回去问yunbi交易所要一份ETHc,yunbi很人品好有担当,真给了,那云币就相当于赔了一份ETHc币。

8.任何持有920万区块高度后的币,情况要更复杂。比如有一笔币从硬分叉前发到硬分叉后的一个地址1上,这个地址1同时在ETH和ETHc都是有效的。那你在ETH
chain上收到的币从地址1再次发送到地址2,我们记这笔交易为交易2。这笔交易在ETH Classic
chain也是有效的,也是可以被重放的,我们记被重放的这笔交易为交易2'。但如果有办法让交易2发送有效,但让交易2'无效,即ETH
chain上的币从地址1成功发送到了地址2,但在ETH Classic chain上从地址1发送到地址2失败了。这种情况下,ETH
chain的地址2的币再次交易时就无法被重放到ETH Classic chain上了。

9.步骤8里,什么情况下能让交易2'发送失败呢?也就是怎么样才能解决掉重放攻击呢?其中一个办法就是在交易2'发送后,但0确认前,对交易2'发起双花攻击,即使用相当的私钥再签一次名发起交易2'',将币发到另外一个地址3,如果交易2''成功了,而交易2'失败了,从此ETH
chain上的地址2的币和ETH Classic chain上的地址3的币都无法被重放了。

能不能将交易2'在ETH Classic
chain上不广播呢?不能,你不广播,会有人帮你广播的,交易信息不是加密的。谁知道哪个狗日的坏人找到你的交易信息后给你广播一下,你的这条分支的币就被发到了这条链的地址2了。

但要想把所有ETH地址和ETHc地址(这两种地址是完全一样的,ETH地址也就是ETHc地址)做到你有币我就没有,那几乎是不可能做到的,地址太多了。也就是想用这个办法彻底解决掉重放问题是不可能的了。

但对于用户来说,你可以使用这个办法分离你的ETH和ETHc,使这两者分另处在不同的地址上,这样你以后就不需要想着在一条链上做了交易我是否需要重放到另一条链了。不过问题又来了,谁会发起双花攻击0确认的交易呢?好像很难啊,所以我认为普通用户基本上是做不到的。交易所应该会。

10.还有一种办法,对其中一条链展开51%攻击,直接消灭掉其中一条链就可以了,让其算力跌到零,从此高度不再上涨,也就是这种链死了。这样问题就彻底解决掉了。

或者让其中一条链的价格跌到很低很低,到底都不关心了,也就懒去理重放交易了。

免责声明: 文章源于会员发布,不作为任何投资建议

如有侵权请联系我们删除,本文链接:https://www.sws100.com/btc/196452.html

(0)
鸟叔鸟叔
上一篇 2023年 2月 6日
下一篇 2023年 2月 6日

相关推荐

  • 欧易如何进行币币杠杆交易?欧易进行币币杠杆交易操作教程

    币币杠杆交易,是指利用自持的本金通过平台借币,以撬动多倍资金赚取到更多的价差,最大地赋能“币币交易”。 目前币币杠杆交易最高可操作本金10倍仓位,使收益放大十倍,当然亏损的风险同时也会放大十倍,所以在使用杠杆交易时请把控好风险。 1.看涨某币种行情,您可以利用本金作为保证金加持杠杆借币,本金和借来的币都“买入”…

    2023年 4月 11日
  • 莱特币/LTC币是什么意思?LTC币是个什么项目?

    莱特币又名辣条,最早是从比特币的代码演化而来,主要是提高了出块确认速度,也曾经是币圈的搬砖利器,市值曾经进过币圈前五,不过现在几乎很少人还在用莱特币搬砖了,毕竟erc20的usdt更将方便,甚至还有基于波场的USDT几乎没有手续费,确认速度也更快。 莱特币由于代码上和比特币非常接近,早期一直都是比特币新技术的试验田,比如闪电网络隔离见证等都是现在莱特币上部署…

    比特币行情 2023年 1月 6日
  • 怎么注册比特币账户地址?

    大家好,句子百科网小编(sws100.com)下面围绕“btc地址申请”主题给大家详细介绍一下。 先要随机生成一个私钥,私钥通过椭圆曲线加密算法生成公钥,公钥再通过哈希算法生成地址。与银行开户不同,比特币的账户无需申请注册,可随机生成。你的私钥就相当于账户加密码,不能泄露给他人,地址相当于账户名,可以给别人。 在浏览器中输入比特币钱包的网址,可以百度一下比特…

    比特币行情 2023年 3月 25日
  • 比特币十年后价格走势 比特币十年后价格走势如何?

    比特币十年后价格走势如何?摘要:自2009年比特币上线以来,其价格波动不断。本文将深入分析比特币十年后价格的走势,并探讨其背后的原因。 第一章:比特币的发展历程2009年,一种新型的数字货币——比特币诞生了。作为第一种去中心化的加密数字货币,比特币的问世引发了全球经济、金融界的极大关注。十年来,比特币经历了几次重大波动——从2013年初的每个比特币15美元左…

    比特币行情 2023年 4月 27日
  • PART币可以持有吗

    part是一个基于比特币源码的去中心电子商务平台,重点在隐私保护这块,发布的保密交易(CT)为客户提供匿名服务,团队实力强,在密码学领域有着丰富的经验,目前平台已初步成型,也实现了部分功能,价格方面也表现不错,建议投资 PART(Particl)是基于比特币源码开发的一个去中心化私密电商平台。 1):PART可以归纳为匿名币,主网Particl是一个开源分布…

    比特币行情 2023年 4月 11日

联系我们

在线咨询: QQ交谈

邮件:k37759@foxmail.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信