运行公共以太坊节点是不是安全?

Posted

技术标签:

【中文标题】运行公共以太坊节点是不是安全?【英文标题】:Is it secure to run public ethereum node?运行公共以太坊节点是否安全? 【发布时间】:2018-05-20 03:45:21 【问题描述】:

我正在用松露创建我的第一个以太坊合约。我希望 Web 应用程序可以在没有 MetaMask 的情况下使用,所以我想知道运行我自己的私有节点是否是个好主意 像这样从前端连接:

this.web3 = new Web3(new Web3.providers.HttpProvider('http://my-public-ip:8545'));

这种方法是否存在安全风险?

【问题讨论】:

【参考方案1】:

我正在回答我自己的问题,因为似乎很多人都犯了和我一样的错误并失去了他们的以太!

    我确实像这样设置了可公开访问的节点:

    geth --mine --nodiscover --maxpeers 0 --networkid 1 --rpc --rpccorsdomain "*" --rpcaddr "my-public-ip" --rpcapi="db,eth,net,web3,个人,web3"

    我创建了新的以太坊账户,该账户将成为我的“合约所有者”账户

    我在“合约所有者”账户中转移了少量以太币,这样我就有足够的 gas 来部署我的新合约 我确实设置了 truffle 以连接到我的以太坊节点 我使用 truffle 控制台解锁了我的帐户 我收到错误“错误:超出块气体限制”

此时我很困惑,因为我在 etherscan 上看到我的账户中有大约 10 美元的以太币,足以部署我的合约

我再次检查了 etherscan,我看到“传出”交易从以太坊地址耗尽了我所有的钱

经过一番研究,钱是这样被盗的:

    一个机器人发现了我的公共以太坊节点 已连接并请求账户列表+账户余额 它开始不停地发送“sendTransaction”请求 当我在公共节点上解锁我的账户以部署我的合约时 - 使用同一节点的机器人也可以访问我的账户并从我的账户转移资金

我写这篇文章是为了防止其他开发者犯同样的错误。机器人地址是: https://etherscan.io/address/0x957cd4ff9b3894fc78b5134a8dc72b032ffbc464#comments

有大量的 cmets 从他们身上偷走了他们的以太币。而且我不是在谈论我的 10 美元,到目前为止,机器人已经偷走了:

ETH Balance:    37,070.060208365548676156 Ether
ETH USD Value:  $16,642,974.23 (@ $448.96/ETH)

这应该在 *** 上,因为我在遵循网络教程时遇到了这种情况,没有人解释风险和可能发生的情况

【讨论】:

以上是关于运行公共以太坊节点是不是安全?的主要内容,如果未能解决你的问题,请参考以下文章

通过Nginx用密码保护以太坊JSON-RPC API

以太坊源码分析--p2p节点发现

以太坊:从入门到实践

ETH vs EOS以太坊放出大招:Sharding(分片)技术!

以太坊系节点RPC端口开放被攻击的网络安全配置

以太坊系节点RPC端口开放被攻击的网络安全配置