主页 > imtoken国际版 > 以太坊硬分叉后重磅“重放攻击”

以太坊硬分叉后重磅“重放攻击”

imtoken国际版 2023-01-18 22:53:27

介绍

以太坊硬分叉之后,出现了很多“重放攻击”。一些交易所声称丢币,用户丢币的案例也更多。那么究竟什么是重放攻击呢?

计算机术语中的“重放攻击”

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

传统术语“重放攻击”:指身份欺诈。维基百科上有明确的定义,如下,

假设 Alice 向 Bob 证明了自己的身份。Bob 询问她的密码作为身份证明。同时,伊芙窃听两人的通讯,并记录下密码。Alice 和 Bob 完成通信后,Eve 联系 Bob 并伪装成 Alice。当 Bob 要求输入密码时,Eve 发送 Alice 的密码AE币硬分叉,Bob 认出与他通信的人是 Alice。

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

以太坊硬分叉后重磅“重放攻击”

以太坊在区块高度 192 万处硬分叉,产生两条链,分别称为 ETH 链和 ETH Classic 链,上述代币分别称为 ETH 和 ETHc。这两条链上的地址和私钥生产算法相同,交易格式也相同,因此一条链上的交易很可能在另一条链上是完全合法的。因此,您在一条链上发起的交易可以在另一条链上重新广播,并可能得到确认。这是一种“重放攻击”。

以本次以太坊硬分叉后发生的“重放攻击”为例:

1.以太坊在1920000区块高度硬分叉两条链,分别称为ETH链和ETH经典链,上述代币分别称为ETH和ETHc。

2.硬分叉前的所有ETH在分叉后的两条链上都是有用的,即分叉前持有的ETH自动获得等量的ETHc。

3.用户持有硬分叉高度之前的ETH,用户将硬分叉高度之前的ETH通过自己控制私钥的本地钱包(不管是ETH链还是ETH经典链钱包都一样)向交易所发送交易以将 ETH 充值到他们的帐户。但是ETH链和ETH Classic链都可以识别这个交易,都是合法交易,会被打包。也就是说,用户最初在一条链上广播交易,但可以在另一条链上“重播”广播。(你可以用你的钱包广播,或者有人或某个程序可能会找到你的交易信息并为你广播)

4.因为用户的充值账户属于交易所,所以是用户的链下钱包。如果交易所不给你,那么你就失去了应该属于你的 ETHc。

5.如果用户在硬分叉高度之前将ETH存入交易所,原则上交易所应该给用户2个币。当用户从交易所提现ETH到本地钱包时,刚刚从交易中提现的币就是硬分叉高度之前的币。并且你在自己的电脑上安装了两个钱包,分别是ETH链钱包和ETH Classic链钱包,在ETH链钱包上生成提现地址,然后通过导入私钥。在钱包上。当您提币时,您可以在两条链上广播您的提币交易,这样您的本地钱包可以收到相同数量的币。

6.在第5步,如果用户只安装了一个钱包,比如ETH链钱包,另一个ETHc不会收到,但不会丢失,因为你的收币私钥是一样的你的 ETH 链是一样的,只要你提取私钥并导入 ETH Classic 链钱包。

7.第5步,如果用户提现ETH,则充值到另一个交易所,比如从云币提现ETH到P网。此时,P网只给用户一种货币,即ETH,那么用户将失去ETHc,谁将失去它,在P网手中。如果用户回去向云币交易所索要一份ETHc,云币很有风度,很负责,真的给,那么云币就等于丢了一个ETHc币。

8.任何区块高度920万的币,情况都比较复杂。例如,如果一个硬币从硬分叉之前发送到硬分叉之后的地址 1,那么这个地址 1 在 ETH 和 ETHc 中都有效。然后你在 ETH 链上收到的币再次从地址 1 发送到地址 2,我们将此交易记录为交易 2。此交易在 ETH Classic 链中也是有效的,可以重放。我们将重放的事务记录为事务 2'。但是如果有办法让交易 2 发送有效,但让交易 2' 无效,即 ETH 链上的币从地址 1 发送到地址 2 成功,但从地址 1 发送到地址 2 失败ETH 经典链。在这种情况下,

9.第8步,什么情况下事务2'发送失败?也就是说,我们如何解决重放攻击?其中一种方法是在交易2'发送后0确认交易2'成功之前对交易2'发起双花攻击,而交易2'失败。从那时起,地址2的币在ETH上都没有ETH Classic 链上地址 3 的币不能重玩。

交易 2' 不能在 ETH Classic 链上广播吗?不AE币硬分叉,如果你不播,有人会为你播。交易信息未加密。谁知道是哪个狗日的坏人找到了你的交易信息并广播给你,你的分行的币就会被发送到这条链的地址2。

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

但是对于用户来说,你可以用这个方法把你的ETH和ETHc分开,让两者位于不同的地址,这样你以后就不用考虑在一条链上做交易了。我需要重新加载到另一个链中吗?但问题又来了,谁会发起零确认交易的双花攻击?好像很难,所以我觉得普通用户基本做不到。交易所应该。

10.还有一种方法,对其中一条链发起51%攻击,直接摧毁其中一条链,使其算力降为零,从此高度不再上升,也就是这种连锁死亡。这完全解决了问题。

或者让其中一条链的价格降到一个非常低的水平,大家都不再关心,懒得处理重放交易。

以太坊经济生态系统中的每个节点都受到重放攻击的影响

对于用户来说,以太坊目前的问题是非常大的,因为ETH和ETHc都有很好的经济价值,如果用户不能解决自己的币被重玩的可能性,他想卖掉其中的一个,同时保留另一个。一枚硬币,很难实现。或者它只能在良心交流的帮助下完成。

如果用户可以忽略其中一种硬币而只爱另一种。例如,如果只使用了 ETH,而没有使用 ETHc,那么对于用户来说,重放攻击是不存在的。但是有几个人能做到,明知道重播交易可以卖更多的钱,谁也不在乎!

如果是新用户不迷茫,新用户购买了其中一个币,他很难通过重播交易获得另一个币。原本用户可以免费获得一枚ETHc,现在要小心处理自己的币,以免被重放丢失。

目前,ETH和ETHc的经济活动基本还保留在交易所。从新闻报道来看,交易所基本能够解决重放交易。之前的损失也和用户分了赔偿和责任。只要任何 ETH 和 ETHc 通过交易所,用户就只有一种货币。但问题是交易所如何解决重放交易。解决办法有两种:不作恶和作恶。可怕的是,作恶也是合法的(根据以太坊区块链的法律)。

一个好的交易所在收到用户的 ETH 或 ETHc 时会尝试将交易重播到另一条链。如果重播成功,则给用户充值两币,如果重播不成功,则给用户充一币。然后,硬币在交易所内完全分离,因此只存在一条链。一个糟糕的交换是用户只存入他们充值的任何货币,然后重播交易。

交易所也会分为智能和傻瓜,一个智能交易所将用户充值的两个币完全分开。当用户购买其中一个硬币并提取它们时,交易无法重播到另一条链。愚蠢的交换不会将两个硬币分开。当用户提取一枚硬币时,交易将被重播到另一条链,如果成功,这笔钱将是免费的。

那么矿工和矿池呢?没关系,他们挖 ETH 就不能挖 ETHc。对他们来说,重放攻击不是什么大问题,新挖出来的币是无法重放的。哪个更有利可图,哪个更有利可图并不重要。

以太坊经济生态系统中仍有开发者。目前,以太坊基金会的态度是拥抱 ETH Classic。

基于以上分析,在以太坊经济生态系统中,由于重放攻击的存在,用户是最麻烦的;交流受良心和技术的考验;矿工和开发商似乎影响不大。