Разработчики Electrum опубликовали альфа-версию Electrum Personal Server

Команда разработчиков кошелька Electrum выпустила новый продукт Electrum Personal Server, находящийся на данный момент в альфа-версии. Он предназначен для того, чтобы обеспечить аппаратным и легким программных кошелькам биткоина безопасное соединение с полными узлами сети. 

Разработчиком продукта является программист Кристиан Белчер (Christian Belcher). Сервер Electrum Personal Server устраняет основные недостатки популярного кошелька Electrum, одновременно предоставляя пользователям возможность использования ресурсов сервера Electrum. Фактически, он представляет собой надстройку над полным клиентом Bitcoin Core, реализованную в виде набора скриптов.

По словам Белчера, для пользователей легких версий кошельков очень важно, чтобы их кошельки были соединены с надежными полными узлами сети, поскольку это обеспечивает их безопасность. 

«Если биткоин – это цифровое золото, то кошелек с полным узлом – это ювелир,  проверяющий за вас подлинность получаемых платежей», — объясняет Белчер.

Полные узлы и тонкие клиенты

Полные узлы в блокчейне биткоина представляют собой программы лиента, которые хранят полную копию блокчейна, проверяют и распространяют транзакции и блоки сети. Полные узлы помогают сети принимать транзакции и блоки от других полных узлов, подтверждая и обмениваясь ими с другими полными узлами. По сути, такие узлы выполняют роль управляющих блокчейном биткоина – они следят за соблюдением правил сети и игнорируют цепи, нарушающие данные правила. 

Несмотря на то, что полные узлы безопасны, они требуют наличия определенных ресурсов. Для функционирования одного узла сейчас необходимо около 156 ГБ дискового пространства, и эта цифра ежегодно увеличивается более чем на 50ГБ. На первую синхронизацию полного узла сети может уйти несколько дней, кроме того, он требует значительное количество пропускной способности сети и использует значительные ресурсы центрального процессора для проверки всех транзакций и блоков в сети. 

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

Кошелек Electrum

С 2011 года легкий кошелек Electrum является одним из самых популярных в сообществе биткоина. Он обладает удобным пользовательским интерфейсом, соединяется с аппаратными кошельками, имеет возможность восстановления забытых секретных фраз, предоставляет решения холодного хранения и решения на основе мультиподписей. Тем не менее, аналогично другим тонким клиентам, соединение легкого кошелька Electrum с блокчейном Биткоина не приносит никакой пользы для конфиденциальности, подтверждения транзакций и масштабированию сети.

По умолчанию кошелек Electrum отправляет все свои адреса биткоина на сервер Electrum, который направляет ему в ответ историю пользователя и информацию о его балансе. По словам Белчера, «это значит, что серверу Electrum известны криптовалютные адреса всех пользователей и он может за ними наблюдать, по сути видя все, что делает пользователь». Пользователям следует помнить о том, что если их криптовалютные адреса хранятся на сервере, их транзакции можно отслеживать.  

Так же как в случае с другими тонкими клиентами, если серверы Electrum должным образом не подтвердят правила блокчейна Биткоина, кошельки подвергаются угрозе взлома. Взлом сервера Electrum может привести к тому, что кошелек Electrum примет фальшивую транзакцию, которая не будет подтверждена полным узлом.

Кроме того, серверы Electrum хранят записи всех используемых в сети Биткоина адресов, что, по мере увеличения пользовательской базы, представляет дополнительные препятствия для масштабирования.

Единственным способом, при помощи которого пользователь в  экосистеме Electrum может избежать всех недостатков тонкого клиента Electrum, является запуск собственного сервера и соединение его со своим кошельком. Однако для этого требуется еще больше ресурсов, чем для запуска полного узла Биткоина – полновесный блокчейн Биткоина, полный индекс транзакций и индекс дополнительных адресов.

Решение на основе Electrum Personal Server

Персональный сервер Electrum Personal Server предоставляет пользователям легких кошельков повышенную эффективность, безопасность и конфиденциальность. В этой реализации протокола Electrum пользователи, желающие присоединиться к полному узлу, могут одновременно использовать  все традиционные функции кошелька Electrum. Кроме того, сервер может быть полезен для доверяющей друг другу группы пользователей. которые могут использовать один сервер совместно.

На данный момент реализация Electrum Personal Server находится в альфа-версии, поэтому в ней еще не реализованы многие функции, в частности поддержка HD-ключей и кодовых фраз, адреса необходимо импортировать индивидуально.

Эффективность

С точки зрения эффективности, соединение кошелька Electrum с полным узлом позволяет воспользоваться всеми преимуществами ресурсоэффективных функций Bitcoin Core, таких как  усечение блокчейна, и отключение функций txindex и blocksonly. Данные функции недоступны при подключении к централизованному серверу Electrum.

Пользователи также могут применять традиционный интерфейс и функции кошелька Electrum, например, интеграцию аппаратных кошельков, подпись в режиме оффлайн,  восстановление кодовой фразы и кошельки с мультиподписями. 

Безопасность и конфиденциальность

Поскольку пользователи соединяются с полным узлом, они не подвергаются ни одной из вышеперечисленных угроз безопасности и конфиденциальности, присутствующих в тонких клиентах.

Однако, и здесь есть одно но – при использовании полного узла наподобие Electrum Personal Server (EPS) пользователи теряют возможность использования популярной функции кошелька Electrum «instant-on» (мгновенное включение). До отображения баланса кошелька полному узлу необходимо синхронизироваться. В зависимости от скорости соединения и времени, прошедшего с момента последнего соединения, на этот процесс может потребоваться от нескольких минут до нескольких часов. Поэтому, узел с EPS рекомендуется держать на постоянно включенной машине.

Процесс запуска Electrum Personal Server очень прост. Для этого необходимо:

  1. Установить и синхронизировать кошелек Bitcoin Core или обеспечить надежное подключение к такому кошельку;

  2. Загрузить альфа-версию EPS;

  3. Конфигурировать Electrum Personal Server при помощи публичного мастер-ключа. Впоследствии полученные адреса импортируются в  кошелек Bitcoin Core как watch-only;

  4. Провести повторное сканирование кошелька на предмет старых транзакций, если они были. При создании нового пустого кошелька данный шаг не требуется.

Чем может быть полезен Electrum Personal Server

Белчер подчеркивает, что с момента появления сети Биткоина ее главная модель безопасности основывается на использовании полных узлов, а не подверженных уязвимостям тонких клиентов. В таком случае правильные транзакции биткоина всегда подтверждаются, а несоответствующие правилам протокола транзакции отклоняются, таким образом обеспечивается, в частности, лимит в 21 миллион биткоинов.

По мнению Белчера, если большая часть экономики Биткоина не перейдет к использованию  кошельков на основе полных узлов, «Биткоин в долгосрочной перспективе умрет».

Белчер надеется, что персональный сервер Electrum Personal Server будет действовать в качестве моста, связывающего легкие кошельки Биткоина с запущенными пользователями полными узлами. К примеру, кошельки Samourai Wallet или Breadwallet
для соединения с полным узлом могли бы  использовать сценарий, аналогичный Electrum Personal Server.