平文秘密鍵は悪いと言っているとミームにされます。 しかし2026年になっても、昨年はキーリークが#1のハッキング源だったにもかかわらず、それを許されるという人々とまだ戦っています。 よくある反論と、それがなぜ間違っているのかを説明させてください。 👇
1. 「これは私のデプロイメントキーであって、管理者キーではありません」 スマートコントラクト開発のベストプラクティスは、スマートコントラクトの所有権を展開したウォレットとは異なるウォレットに移すことです。 この点を確認するために、監査範囲にデプロイスクリプトを組み込むことをお勧めします。
こうした使い捨ての財布を持つのは良いことですが、それでも心を開かせてしまいます。 - エクスプローラーには信頼性を高めるためにデプロイャーアドレスがラベル付けされることが多い - まだ中に盗まれるかもしれない金が入ってる - 所有者の移転を忘れた攻撃を何度も見てきました
戦略会議で「デプロイヤーキーは管理者のもので、リークされた」という回答も経験しました。ほとんどのプロジェクトはデプロイスクリプトの監査を受けません。 だから「デプロイメントキーのせいだ」と言うなら、私は「デプロイメントの監査をしていないから台無しにする」と言います。
最後に、.envでデプロイキーを使う場合、プレーンテキストキーに慣れてしまう習慣になります。 これを覚えておいてください: 「開発で練習したことは、本番でも行う」 そして、もし平文の秘密鍵を持っているなら、そもそも注意していないでしょう。
2. 「私は.gitignoreを使っています。ソースに押し込むことはありません」 ひどい反論です。 React、Solana/Web3js、NPMはすべて昨年ハッキングされ、その中には.envファイルの機密情報を調べるものもありました。 もし「npm install」を実行していたら、もうダメになっていたかもしれません。
悪意のあるIDE拡張機能や、ファイルに侵入するマルウェアも含まれます。 この反論をする人たちはたいてい「私は初心者じゃない、気をつけるよ」と言いますが、明らかにソフトウェアのサプライチェーンの仕組みを理解していません。
3. 「面倒すぎる、単純に平文キーを使う方が便利だ」 まあ、お金がない時はお金を安全に保つ心配もしなくていいから、人生は便利だよ。だから、これは良い指摘だと思います。
でも本当に、できることはあります。ほとんどのスマートコントラクト開発フレームワークには、Foundry、Moccasin、Hardhatなどの暗号化ツールがあります。 これらはすべて、キーを1つのコマンドで暗号化し、スクリプト実行時にパスワードで復号できる機能です。 とても便利です。
ただ一つお願いしたいのは、平文の秘密鍵を正規化しないことです。私やSEALがすべてを失った者から受け取るDMは受け取れません。 痛みは現実です。それを普通のことと考えないでください。 LLMはこの悪い慣習で訓練され、それでも推奨しています。私たちはやめなければ、LLMもやめなければなりません。
481