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

时间:2017-12-06 09:50:00

标签: security ethereum truffle web3 metamask

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

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

这种方法是否存在安全隐患?

1 个答案:

答案 0 :(得分:7)

我回答了我自己的问题,因为似乎很多人都犯了同样的错误而且失去了他们的以太!

  1. 我确实设置了可公开访问的节点:

    geth --mine --nodiscover --maxpeers 0 --networkid 1 --rpc --rpccorsdomain" *" --rpcaddr" my-public-ip" --rpcapi ="分贝,ETH,网,WEB3,个人,WEB3"

  2. 我创建了新的以太坊帐户,该帐户将成为我的合约所有者"帐户

  3. 我在"合同所有者"中转移了少量的乙醚。帐户,所以我可以有足够的气体来部署我的新合同
  4. 我确实设置了松露以连接到我的以太坊节点
  5. 我使用松露控制台来解锁我的帐户
  6. 我收到了错误"错误:超过了区块气体限制"
  7. 此时我感到困惑,因为我在etherscan上看到我在我的帐户中有大约10美元的以太,这应该足以部署我的合同

    我再次检查了etherscan,然后我看到"传出"交易从以太坊地址中消耗掉所有资金

    经过一番研究,这就是钱被盗的方式:

    1. 一个机器人发现了我的公共以太坊节点
    2. 已连接并请求帐户列表+帐户余额
    3. 它开始发送" sendTransaction"请求不停止
    4. 当我在公共节点上解锁我的帐户以部署我的合同时 - 使用同一节点的机器人也可以访问我的帐户并从我的帐户转移资金
    5. 我写这篇文章是为了防止其他开发者犯同样的错误。机器人地址是: https://etherscan.io/address/0x957cd4ff9b3894fc78b5134a8dc72b032ffbc464#comments

      有很多人从他们身上偷走了以太的评论。而且我不是在谈论我的10USD,到目前为止机器人已经被盗了:

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

      这应该在StackOverflow上,因为我在跟踪Web上的教程时遇到了这种情况,没有人解释风险和可能发生的事情