Состоялся релиз Bitcoin Core 0.19.0: Что нового?
В это воскресенье состоялся официальный релиз Bitcoin Core 0.19.0, девятнадцатый крупный выпуск оригинального программного обеспечения биткоина, запущенного Сатоши Накамото почти 11 лет назад и по-прежнему остающегося основной программной реализацией для взаимодействия с сетью ведущей криптовалюты. Текущая версия официально носит название Bitcoin Core 0.19.0.1, так как на последней стадии релиза 0.19.0 возникли непредвиденные затруднения.
Как и прежде, разработку Bitcoin Core курирует Владимир ван дер Лаан, а в подготовке его последней версии принимало участие более сотни человек. Всего в течение полугода было оформлено 550 запросов на добавление кода, что вылилось в ряд улучшений производительности, модернизаций, фиксов и прочих изменений, пишет Аарон ван Вирдум для Bitcoin Magazine.
Bech32-адреса по умолчанию в графическом интерфейсе
Формат адресов bech32 был включён в релиз Bitcoin Core 0.16.0, состоявшийся в начале 2018 года, однако теперь он впервые был активирован в качестве опции по умолчанию в графическом интерфейсе пользователя (GUI).
Bech32-адреса начинаются с префикса «bc1» и позволяют пользоваться преимуществами технологии Segregated Witness (SegWit).
Поскольку не все биткоин-кошельки в настоящее время поддерживают отправку средств на bech32-адреса, пользователи Bitcoin Core 0.19.0 по-прежнему смогут создавать PS2H-адреса для приёма транзакций при помощи опции в графическом интерфейсе.
Обеспечение дополнительного подключения к внешним нодам
Сеть биткоина может подвергаться различным атакам, в том числе «атаке разделения». Если злоумышленник будет контролировать достаточное число нод, потенциально он сможет «отсекать» определённые ноды, препятствуя их участию в формировании консенсуса. Затем отделённая часть сети может быть переведена в меньшую цепь, что откроет возможности для повторного воспроизведения транзакций.
Проблема может быть решена, если отделённая нода будет поддерживать соединение с хотя бы одной честной нодой в основной сети. Для усложнения осуществления атак разделения целесообразно обеспечить подключение ноды к более чем одной ноде в сети. Именно это делается в Bitcoin Core 0.19.0, где по умолчанию нода поддерживает соединение с двумя другими участниками сети, которые передают ей только данные о блоках, но не о транзакциях или дополнительную информацию. Таким образом удаётся достичь минимального повышения требований к пропускному соединению и снизить риски атак.
Отключение Bloom-фильтров
Bitcoin Core является имплементацией полной ноды, осуществляющей скачивание и верификацию всех блоков в сети. Она обладает оптимальным уровнем безопасности, но плохо подходит для низкопроизводительных устройств, таких как мобильные телефоны. Мобильные кошельки, как правило, являются легковесными клиентами, которые скачивают только транзакции, имеющие непосредственное отношение к ним.
Для решения поставленной задачи используется криптографический приём под названием «фильтры Bloom», который позволяет легковесным клиентам запрашивать необходимую информацию у более или менее случайных нод в сети. Со временем выяснилось, что такой подход влечёт негативные последствия в контексте приватности, так как раскрывает все адреса пользователя полной ноде. Кроме того, использование этих фильтров требует дополнительных расходов ресурсов CPU и пространства для хранения полной ноды, не предоставляя ей никаких прямых преимуществ.
Из-за этого было принято решение отключить поддержку запросов фильтров Bloom в Bitcoin Core 0.19.0 по умолчанию.
Расширение поддержки компактной фильтрации блоков на стороне клиента
Альтернативой Bloom-фильтров является более новое решение под названием «компактная фильтрация блоков на стороне клиента». Она полностью меняет концепцию Bloom-фильтров, заставляя полные ноды вместо легковесных клиентов создавать фильтры для каждого блока.
Bitcoin Core 0.19.0 расширяет возможности этого подхода, позволяя пользователям создавать такие фильтры через удалённый вызов процедур (RPC) для приложений, работающих на базе полной ноды, например кошельков. Пока владельцы полных нод не могут передавать фильтры другим пользователям кошельков биткоина, но такая возможность может появиться в дальнейшем.
Отключение платёжного протокола BIP 70 в GUI
Платёжный протокол BIP 70 был создан несколько лет назад с целью улучшения пользовательского опыта при осуществлении биткоин-платежей. Помимо самого платежа пользователь или продавец могут передать сопутствующую информацию, например адрес для возврата платежа в случае возникновения проблем.
Разработчики Bitcoin Core интегрировали платёжный протокол в графический интерфейс, однако стандарт так и не получил широкого распространения. Кроме того, с ним оказался связан ряд уязвимостей в контексте безопасности и приватности. Тем не менее, протокол был принят популярным процессинговым сервисом BitPay, что затормозило процесс отказа от него. В Bitcoin Core 0.19.0 после всех размышлений BIP 70 был удалён из графического интерфейса пользователя. Его активация потребует особой настройки ноды.
Прочие улучшения
Помимо вышеупомянутых обновлений Bitcoin Core 0.19.0 включает в себя множество более мелких улучшений и модернизаций.
Теперь ограниченную ноду можно запустить сразу же с момента установки, что заинтересует пользователей с небольшим объёмом жёсткого диска. Bitcoin Core 0.19.0 предлагает новые возможности для протокола частично подписанных биткоин-транзакций (PSBT), что может быть полезно при использовании транзакций с мультиподписью и CoinJoin-транзакций. Были введены дополнительные дескрипторы кошельков для разработчиков приложений.
Полная документация Bitcoin Core 0.19.0 доступна по ссылке.
Фото: Ink Drop
Источник: ttrcoin.com