title: "我的 ETH 被盗了" date: 2023-06-11T15:30:00+08:00 tags: ["WEB3", "经验分享"] draft: false
最近 ETH 跌了,昨天晚上睡觉前看了一下自己的 ETH 钱包,结果看到一个转账通知,钱包内的 0.76 个 ETH 全部被转走了,转走的时间是前天晚上。
这篇文章主要是记录一下自己的经历,以及如何避免自己的钱包被盗。
周五在学智能合约,写了一篇《使用 HardHat 创建 NFT 智能合约》的文章,然后按照教程把代码上传到 GitHub 了,并且开源了。没有特意的去检查代码的环境变量。
然后周六晚上发现自己的钱包的 ETH 被盗了,第一时间以为是自己授权钱包给了不安全的网站,导致被盗了,但是仔细检查了一下,发现 MetaMask 的交易记录并没有被盗的那条记录。
然后我去看 Github 代码,被盗的时间在代码最后一次提交的时间前,然后再一看代码,发现自己傻逼了,把自己的私钥放到了代码里面,然后提交到了 Github 上面。
仓库里面有一个 .env.example
文件,hardhat 初始化的时候生成 .gitignore 文件,里面有 .env
,这一步是没问题的,但是我在创建 .env.example
的时候,使用的是 cp .env .env.example
,这样就把私钥也复制到了 .env.example
文件里面,也没去删除里面的私钥,也没确认,就提交到了 Github 上面。
那个时候赶着下班,提交代码就走了。
显然我之前对钱包私钥的重要性认识不够,导致了这次的损失。Web3 钱包的私钥(Private Key)非常重要。在区块链技术中,私钥就像是你的密码,具有以下重要性:
所以,保存好你的 Web3 钱包私钥并保证其安全是非常重要的,丢失或泄露私钥可能会导致你的资产被盗。
在使用 Web3 钱包的时候,一定要区分好钱包,你可以创建多个钱包,用于不同的场景,比如一个专门用来存储资产,一个专门用来开发测试,一个专门用来交易等等。
储存资产的钱包一定要保证私钥的安全,也不要乱授权,推荐使用硬件钱包来保证你的私钥安全。
在开发的时候,一定要注意环境变量的安全,不要把私钥等重要信息放到代码里面,也不要提交到 Github 上面。特别是开源项目,一定要注意。我能想到的方案:
这次事件,让我对 Web3 钱包的私钥有了更深的认识,也让我意识到了环境变量的重要性,以后一定要注意。周五的那篇文章价值 0.76 个 ETH,心在滴血。
希望大家能够引以为戒,不要重蹈我的覆辙。如果我的文章对有帮助到你,可以考虑打赏安慰一下我,非常感谢 🙏。
TRdBDpuSVffHfAD33SFVyc62hZe79msdcd
0xc1a3C8DF608F8D4a321fEC13e968327ccFd0bf74
附上学习资料:《区块链安全入门笔记》