主页 > 华为手机怎么安装imtoken > 以太币被盗问题详解

以太币被盗问题详解

华为手机怎么安装imtoken 2023-08-09 05:12:44

以太坊被盗问题解答

最近在网上遇到了很多以太坊被盗的问题。这种盗窃场景经常发生在刚接触以太坊的同学身上。今天就简单总结一下这种盗窃的原因和场景。

被盗现场

下面是一个在线论坛问的一个问题,也是我们今天要讲的典型的以太币盗窃场景。

以太坊钱包是什么_以太坊钱包被盗_以太坊在线钱包

1、前一天晚上,我们使用本地代码连接阿里云以太坊节点(公链)服务器进行交易。私钥文件(A 地址)保存在服务器上。当交易失败时,去etherscan查看交易时发现ether被转移到了一个未知地址(H地址),此时我并没有意识到被盗,怀疑是代码有问题。

2、第二天,我将一些以太币转移到地址A,然后在服务器的命令行上进行了交易。ether命令行查询账号正常。解锁账户后,交易失败。当我在 etherscan 上查看交易时,发现 ether 币被转移到了昨天的地址(H 地址),待处理。

以太坊钱包被盗_以太坊钱包是什么_以太坊在线钱包

3、我们分析到私钥泄露,密码很简单,所以我们在服务器上新建了一个地址(B地址)以太坊钱包被盗,密码变复杂了,我们转了一些以太币来更新以太坊客户端(更新从 1.7.3 到 1.8.1),也在服务器的命令行上进行交易,从命令行查询账户的以太币,以及解锁账户后,交易再次失败,以太币被转移(H地址)并挂起。

4、这个分析可能是服务器感染了病毒,所以格式化服务器,重建环境,创建账户,转账以太币,命令行进行交易。再次出现同样的问题,转以太币(K地址),待处理

以太坊钱包被盗_以太坊在线钱包_以太坊钱包是什么

这是什么问题,哪位大神遇到过以太坊钱包被盗,请帮忙解答,小弟万分感激!!!

问题恢复与解答

以太坊钱包被盗_以太坊钱包是什么_以太坊在线钱包

看到很多掉入这个坑的朋友可能已经知道被盗的原因了,现在就来分析一下,免得后来者重蹈覆辙。

其实这个问题的原因很简单,问题出在以太坊转账的解锁机制上。显然,这位同学的以太坊节点可以在公网上访问,并且对网络ip没有限制。我们都知道,发起转账交易时,需要解锁。看一下解锁码:

以太坊钱包被盗_以太坊钱包是什么_以太坊在线钱包

func (s *PrivateAccountAPI) UnlockAccount(addr common.Address, password string, duration *uint64) (bool, error) { const max = uint64(time.Duration(math.MaxInt64) / time.Second) var d time.Duration if duration == nil { 
        d = 300 * time.Second 
    } else if *duration > max { return false, errors.New("unlock duration too large") 
    } else { 
        d = time.Duration(*duration) * time.Second 
    } 
    err := fetchKeystore(s.am).TimedUnlock(accounts.Account{Address: addr}, password, d) return err == nil, err 
}

从源码中可以看出,如果不传递解锁时间参数,系统默认解锁发起交易的账户300秒。而以太币被盗就发生在这可怕的300秒内,在没有任何安全保护的节点服务器上,这意味着在5分钟内,任何人都可以调用转账方法将这个账户的以太币转移到其他账户。黑客通过该工具检测到某个地址被解锁,并立即调用该服务的地址以高额费用将余额全部转走。

概括

以上是新手常见的盗窃场景之一。可能你还在疑惑,为什么我发送交易的时候code提示转账手续费不足,而你的ether在这之前就消失了。针对这个问题最简单的防御措施是确保服务器访问限制。至于更高级的安全防护新手难做,也是个大话题,会在后面的文章中讲解。