Меня дразнят за то, что я говорю людям, что хранить приватные ключи в открытом виде — это плохо. Но вот мы в 2026 году, и я все еще борюсь с людьми, которые говорят, что это нормально, в то время как утечки ключей были источником №1 для взломов в прошлом году. Позвольте мне объяснить распространенные возражения, которые я получаю, и почему они неверны. 👇
1. "Это просто мой ключ развертывания, а не мой административный ключ" Лучшей практикой при разработке смарт-контрактов является передача прав собственности на смарт-контракт в другой кошелек, отличающийся от того, с которым вы развернули контракт. Мы рекомендуем включить скрипты развертывания в область аудита для проверки этого.
Наличие такого временного кошелька — это хорошо, но он все равно оставляет вас уязвимым: - адреса развертывателей часто помечаются на обозревателях для повышения доверия - у вас все еще есть деньги в них, которые могут быть украдены - мы видели МНОГО атак, когда кто-то забыл передать право собственности
Я был на звонках в warroom, где ответ был: "ключ развертывания был администратором, и он был скомпрометирован". Большинство проектов не проверяют свои скрипты развертывания. Поэтому, когда вы говорите: "это всего лишь мои ключи развертывания", я отвечаю: "вы не проверили свое развертывание, вы все испортите"
И наконец, если вы используете ключи развертывания в .env, вы привыкаете к тому, чтобы быть в порядке с открытыми ключами. Помните это: "Что вы практикуете в разработке, вы будете делать в продакшене" И если у вас есть открытые приватные ключи, я уверен, что вы все равно не осторожны.
2. "Я использую .gitignore, я не буду это отправлять в исходный код" Ужасный ответ. React, solana/web3js и npm были взломаны в прошлом году, и некоторые из взломов искали в ваших файлах конфиденциальную информацию в .env файлах. Если вы запустили "npm install" - вы могли попасть в беду.
Не говоря уже о вредоносных расширениях IDE и другом вредоносном ПО, которое вы можете установить и которое также проходит через ваши файлы. Люди с таким возражением обычно говорят: "Я не новичок, я буду осторожен", но, очевидно, они не понимают, как работает цепочка поставок программного обеспечения.
3. "Это слишком хлопотно, просто удобнее использовать открытые ключи" Что ж, жизнь становится более удобной, когда у тебя $0, тебе не нужно беспокоиться о том, как сохранить свои деньги, когда у тебя нет денег. Так что, думаю, это хороший аргумент.
Но серьезно, есть вещи, которые вы можете сделать. Большинство фреймворков для разработки смарт-контрактов имеют инструменты шифрования, такие как foundry, moccasin и hardhat. Все они позволяют вам зашифровать ваши ключи одной командой и расшифровать с помощью пароля при выполнении скрипта. Это очень удобно.
Все, о чем я прошу, это не нормализовать открытые приватные ключи. Вы не получаете те сообщения, которые я и SEAL получаем от тех, кто потерял все. Боль реальна, не нормализуйте это. LLM обучены на этой плохой практике и все еще рекомендуют ее, мы должны остановиться, чтобы LLM остановились.
485