Опасность использования любых криптовалютных кошельков, обращающихся к внешним серверам для проведения транзакций, давно стала очевидной. Тем не менее кошелек Electrum остается популярным и считается довольно безопасным решением. Закрытые (приватные) ключи пользователей этого кошелька хранятся локально и никогда не передаются на внешние сервера. Но как это работает?

«Толстые» и «тонкие» кошельки
Electrum относится к так называемым «тонким» кошелькам, которые не хранят на компьютере пользователя полную версию блокчейна биткоина (размер блокчейна биткоина составляет несколько сотен гигабайт). Вместо этого они загружают только необходимые для работы данные и периодически синхронизируется с серверами, содержащими информацию о состоянии блокчейна.
«Толстые» кошельки, соответственно, хранят на компьютере полный блокчейн и обращается непосредственно к нему для проведения транзакций. Это может быть в некоторых случаях быстрее и практически всегда безопаснее, поскольку серверы третьей стороны не участвуют вовсе. Но платить за это приходится удобством, ресурсами компьютера и необходимостью постоянно держать включенным компьютер, на котором установлен кошелек. В противном случае потом придется долго подгружать недостающие части блокчейна.
Seed-фраза Electrum
Закрытый мастер-ключ, сгенерированный кошельком Electrum, кодируется с помощью seed-фразы из 12 слов. Эту фразу кошелек просит владельца сохранить где-нибудь в надежном месте (например, на бумажном листочке где-нибудь в сейфе). Она позволит в любой момент и на любом устройстве получить доступ к кошельку.
В дальнейшем Electrum работает как типичный HD-кошелек (иерархически детерминированный): создает дерево закрытых и открытых ключей, причем открытые ключи могут создаваться без доступа к открытым.
Как подписываются транзакции?
Для отправки любой транзакции в блокчейне биткоина требуется цифровая подпись, подтверждающая, что транзакция подлинная и никак не изменялась.
При создании транзакции пользователь предоставляет свои приватный и публичный ключи. При этом приватный ключ будет считаться правильным, только если при вычислении хэш-функции из него вновь получится тот публичный ключ, который был предоставлен.
Далее, программа-кошелек (не только Electrum, но и любой другой) генерирует подпись - хэш-сумму транзакции и правильного закрытого ключа. При этом, при внесении в транзакцию любых, даже самых незначительных изменений, подпись изменится.
Почему приватные ключи не попадают на сервер?
Electrum отправляет на сервера уже «готовые», подписанные транзакции. В них содержится только подпись транзакции и публичный ключ, приватного ключа в них нет. Так что безопасность вашего ключа, по факту, обеспечивает не столько Electrum, сколько сам биткоин - у кошелька нет необходимости посылать кому-либо ключ. Более того, существует возможность подписывать транзакции на другом устройстве, не подключенном к интернету.
Создание неподписанных транзакций в Electrum
Electrum позволяет создать «холодный» кошелек на компьютере, не подключенном к интернету, перенести публичный мастер-ключ на другую машину и с его помощью создать так называемый watching-only кошелек. Он может только следить за историей транзакций - потратить деньги, используя только этот кошелек, не получится. Watching-only кошелек формирует транзакцию, но не может ее подписать. Файл транзакции нужно перенести на компьютер с приватным ключом, подписать, вернуть на подключенную к интернету машину и отправить.
Данный метод не только гарантирует, что приватный ключ не попадет на сервер, но и полностью исключает кражу ключа при атаке на подключенный к интернету компьютер.
Шифрование кошелька и ключей
В качестве дополнительной меры безопасности seed-фраза, приватные ключи и сам кошелек Electrum зашифрованы. Шифрование кошелька хоть и включено по умолчанию, но от его использования можно отказаться в настройках. Используется при этом асимметричная схема шифрования ECIES - она позволяет не хранить пароль для открытия зашифрованного кошелька в памяти компьютера, дополнительно снижая риск взлома.
Приватный ключ постоянно зашифрован с использованием функции AES-256-CBC и расшифровывается только на короткий период для подписания транзакции. Это сокращает до минимума время хранения ключа в памяти компьютера в незашифрованном виде.
Риски синхронизации с сервером
Наиболее значимая и принципиально неустранимая уязвимость любого «тонкого» биткоин-кошелька - необходимость синхронизации с серверами для передачи транзакций и получения сведений об актуальном состоянии блокчейна.
Это создает целый набор потенциальных уязвимостей, так как информация о транзакциях передается на серверы, принадлежащие третьей стороне. Поэтому надежность тех кошельков, которые передают ключи на серверы для подписи транзакций, стремится к нулю. Помимо этого, существует вероятность атаки со стороны серверов на компьютеры пользователей.
Впрочем, в случае Electrum, ключи серверам не достаются, а опасность атаки снижается использованием вышеупомянутого «холодного» кошелька. Кроме того, все данные от серверов проверяются с использованием процедуры Simple Payment Verification, предложенной еще при создании биткоина. Серверы, в качестве доказательства включения транзакции в блокчейн, предоставляют часть дерева Меркла. Благодаря этому верификация транзакций работает надежно во всех случаях, кроме успешной атаки 51%, которая биткоину уже не слишком угрожает.
В середине февраля была опубликована альфа-версия Electrum Personal Server, который позволяет использовать весь дополнительный функционал Electrum (восстановление из seed-фразы, мультиподписи, подпись транзакций вне сети и т. д.). При этом теряется возможность мгновенного запуска кошелька, но радикально повышается уровень безопасности кошелька.
Комментарии:
lupine
#
Хороший биткоин-кошелёк, много про него читал хороших отзывов, но конечно следует строго соблюдать меры безопасности при использовании electrum да и любого другого кошелька хранящего криптовалюты
пн, 08/13/2018 - 21:47
asessor
#
Биткоин-кошелек Electrum довольно неплох, но если в наличии имеется биткоинов на приличную сумму, то уж лучше использовать либо бумажный, либо аппаратный кошельки.
пн, 11/26/2018 - 14:54
Gurum
#
Электрум - наверно лучший криптовалютый кошелек для хранения и транзакций биткоина в своем классе. Пользуюсь им давно и никаких проблем по настоящее время не возникала. Он отлично подходит даже для новичков, все интуитивно понятно, так что рекомендую.
пн, 12/03/2018 - 15:32
MarcoPolo
#
Electrum один из самых надежных криптовалютных кошельков. Благодаря seed-фразе взломать его нереально, если только она на попала в руки злоумышленников, а это уже зависит от вас самих. Но если следовать изложенным здесь советам, проблем точно не возникнет.
вс, 01/13/2019 - 22:36
Иван Петров
#
Чем надежней и популярней кошелек, тем изощренней фишинг.
пн, 01/14/2019 - 05:19