Источник: forklog.com
Разработчики Bitcoin Core, наиболее популярного клиента биткоина, готовятся к релизу новой крупной версии программного обеспечения, которая будет содержать целый ряд новых интересных и ожидаемых функций.
Несмотря на то что точная дата релиза пока не объявлена, предвыпускная версия Bitcoin Core 0.17.0 уже доступна на Github, и в настоящий момент ведется ее тестирование с целью выявления возможных багов и ошибок.
В частности, релиз будет направлен на улучшение нативного кошелька, где хранятся приватные ключи.
С этой целью в Bitcoin Core 0.17.0 появится новый язык, облегчающий перенос ключа из одного кошелька в другой.
Для этого используются так называемые дескрипторы выходных каналов — изначально предложенный Питером Велле метод, который поможет обеспечить сохранение информации при совершении multisig-транзакций (то есть транзакций, требующих нескольких подписей) или, например, при Lightning-платежах.
Дескрипторы выходных каналов снабжают ключи в сети биткоина — как публичные, так и приватные — специальной меткой, в которой описывается, кто может ими пользоваться.
«Это нечто новое, это меняет все наше представление о ключах, адресах и кошельках» — так прокомментировал метод Питер Велле инженер Chaincode Джон Ньюберри, недавно выступивший в Лондоне с презентацией Bitcoin Core 0.17.0.
Ньюберри также отметил, что предстоящий релиз нового клиента будет лишь первым маленьким шагом, направленным на практическое применение этого языка.
Как ожидают разработчики, в будущих версиях он будет уже изначально присутствовать в кодовой базе.
Частично подписанные транзакции
Другое нововведение Bitcoin Core 0.17.0, которое, как рассчитывают разработчики, в будущем приведет к чему-то большему, заключается в поддержке BIP-174 (Partially Signed Bitcoin Transactions — PSBT).
Новый формат транзакций разработал Эндрю Чоу, и его суть заключается в возможности отправки транзакции еще до того, как она полностью подписана.
Как говорится в описании метода, он предназначен для упрощения процессов в ситуациях, когда в транзакции участвует несколько сторон.
В качестве примеров снова приводятся multisig-транзакции, а также микширование (CoinJoin) и аппаратные кошельки.
Упоминание аппаратных кошельков действительно интересно.
Существующие сегодня аппаратные кошельки (Ledger, Trezor, KeepKey и т. д.), возможно, и предлагают повышенную безопасность хранения средств, однако каждый из них по-своему взаимодействует с программным обеспечением и не всегда с ним совместим.
Например, популярный Trezor поддерживает только Electrum и не имеет возможности установить соединение с Bitcoin Core или другим ПО.
Именно эту проблему и устраняет BIP-174, превращаясь таким образом в стандарт, который может использовать любой кошелек.
Предложенный метод уже нашел отклик среди производителей: не дожидаясь релиза Bitcoin Core 0.17.0, технологию частично подписанных транзакций внедрил COLDCARDWALLET от команды Opendime.
Динамическое создание кошельков
Еще одна новая функция предусматривает возможность динамической загрузки и создания кошельков.
Если в текущей версии создание нескольких кошельков возможно только при запуске клиента Bitcoin Core, для чего необходимо указать требуемые опции в конфигурации, то с выходом нового релиза это можно будет делать и во время его работы.
Coin selection
Когда на адрес поступает несколько платежей, монеты из этих отдельных платежей можно потратить отдельно, однако из-за того, что адреса при этом связываются, под угрозой оказывается приватность пользователей.
Решить эту проблему призвана функция “Coin Selection” (выбор монет) — в будущем релизе появится опция avoidpartialspends, выбор которой будет означать, что кошелек будет всегда тратить существующие неизрасходованные выходы транзакций (UTXO) на один и тот же адрес, даже если это приведет к более высоким комиссиям.
Апгрейд до HD-кошельков
Начиная с Bitcoin Core 0.13.0 поддерживается создание новых иерархически детерминированных (HD) кошельков, однако апгрейд старых кошельков до HD-версии был невозможен.
Теперь это можно будет сделать при помощи опции -upgradewallet в командной строке.
Предварительный бэкап кошелька является обязательным, отмечают разработчики.
Индекс транзакций
Индекс транзакций теперь создается отдельно от ноды, и это означает, что включение или отключение опции -txindex можно производить без полной индексации блокчейна.
Если bitcoind работает с включенной опцией -txindex на ноде, которая уже полностью или частично синхронизировалась, индекс транзакций проводится в фоновом режиме и будет доступен по завершении процесса.
В случае отключения -txindex база данных индекса транзакций не будет автоматически удалена и к ней можно будет вернуться в будущем без необходимости новой синхронизации.
Размер блока
Поддержка опции -blockmaxsize, которая позволяет майнерам ограничивать размер блока, была прекращена с версии 0.15.1, и теперь эта функция полностью удалена.
Вместо этого майнерам, если они хотят ограничить вес своего блока, следует использовать опцию –blockmaxweight.
Это далеко не все новые функции, которые будут включены в Bitcoin Core 0.17.0.
Полный их список будет доступен в сопроводительной информации к релизу уже после его официального выпуска.