26 февраля состоялся официальный выпуск Bitcoin Core 0.16.0 — 16-го поколения оригинального программного обеспечения биткоина, которое более девяти лет назад было запущено Сатоши Накамото. Актуальный релиз, подготовленный под руководством ведущего специалиста по обслуживанию Bitcoin Core Владимира ван дер Лаана, разрабатывался примерно 100 участниками в течение пяти месяцев.
Как обычно, очередной выпуск программного обеспечения биткоина включает в себя улучшение производительности, исправление ошибок и прочую оптимизацию. В него также входит несколько дополнительных функций для интерфейса кошелька. В частности, Bitcoin Core 0.16.0 делает SegWit полностью доступным для пользователей кошельков.
Предлагаем вашему вниманию обзор некоторых наиболее заметных изменений.
SegWit в интерфейсе кошелька
SegWit был основным обновлением протокола биткоина не только в 2017 году, но и, пожалуй, за всё время его существования. Он ввёл новую структуру данных блоков для обновлённых узлов, в то время как необновлённые узлы могли функционировать как обычно. SegWit также заменил лимит размера блока на лимит по «весу», что позволило создавать блоки с данными транзакций до 4 Мб, тем самым увеличивая пропускную способность сети.
SegWit был впервые представлен в Bitcoin Core 0.13.1, выпущенном в октябре 2016 года. Обновление было активировано в августе 2017 года. Однако Bitcoin Core 0.16.0 — это первая версия, позволяющая пользователям кошельков создавать SegWit-адреса для получения платежей. Это означает, что если средства, полученные на эти адреса, позже будут потрачены, то пользователи кошелька Bitcoin Core смогут использовать дополнительное пространство блоков, предлагаемое SegWit. При прочих равных условиях они смогут платить более низкие комиссии по сравнению с транзакциями, не связанными с SegWit.
Bitcoin Core — не первый кошелёк, позволяющий активировать SegWit; за последние шесть месяцев некоторые кошельки уже ввели эту функцию. Поскольку обновление было создано и предложено командой Bitcoin Core, примечательно, что функция до сих пор не была доступна пользователям «родных» кошельков.
Bech32: новый формат биткоин-адресов
Внедрение SegWit для кошельков Bitcoin Core сопровождается новым форматом адреса, известным как bech32. Этот формат, разработанный бывшим техническим директором Blockstream Грегори Максвеллом и разработчиком той же компании Питером Уиллем, можно узнать по тому, что биткоин-адреса начинаются с «bc1» вместо обычных «1» или «3». Одно из удобств состоит в том, что адреса bech32 используют меньше символов, чем текущий формат, и больше нет различия между строчными и прописными буквами. Это уменьшает вероятность ошибок (например, если адрес проговаривается вслух). Адреса bech32 также препятствуют возникновению других типов ошибок, например, вызванных опечатками.
Кроме того, bech32 предлагает преимущества в контексте поддержки кошелька SegWit. До сих пор большинство кошельков, поддерживающих это обновление, делают это путём его «обертывания» в выходы P2SH (для адресов, начинающихся с «3»). Чтобы тратить монеты с такого адреса, пользователи должны раскрыть часть «сценария восстановления», показывая, что монеты действительно заблокированы на выходе SegWit. Новые адреса bech32 позволяют пропустить этот шаг, и это означает, что вывод денег с адреса SegWit потребует передачи меньшего объёма данных для блоков и биткоин-сети в целом.
Так как не все биткоин-кошельки поддерживают bech32, пользователи Bitcoin Core 0.16.0 смогут выбирать, какой получающий адрес генерировать: bech32 или P2SH (который по-прежнему будет значением по умолчанию). При этом, разумеется, Bitcoin Core поддерживает отправку транзакций на любой тип биткоин-адресов.
Тег «замена комиссии» в качестве опции отправки по умолчанию
Поскольку в последние пару лет блоки биткоина переполняются, не все транзакции в сети могут попасть в первый доступный блок. Поэтому майнеры обычно определяют как приоритетные те транзакции, которые предлагают наибольшую комиссию. Если пользователи хотят быстро подтвердить свои транзакции, они должны включать в них достаточно высокие сборы. Многие кошельки включают в себя алгоритмы оценки, которые позволяют рассчитать, сколько придётся платить за перевод, который может быть подтверждён в разные сроки.
Тем не менее для сети биткоинов характерна непредсказуемость с точки зрения скорости обнаружения блоков и количества транзакций, которые могут быть переданы в любое время. Это может затруднить включение правильной комиссии, то есть при предложенной сумме для подтверждения транзакции может потребоваться больше времени, чем предполагают пользователи.
Начиная с Bitcoin Core 0.15.0 пользователи кошелька могли добавлять в свои транзакции тег «замена комиссии». По нему узлы и майнеры узнают, что отправитель не против заменить транзакцию на новую — аналогичную, но с более высокой комиссией. Это позволяет пользователям кошелька Bitcoin Core ускорять сроки подтверждения своих переводов.
Bitcoin Core 0.16.0 впервые делает замену комиссии опцией отправки по умолчанию. Пользователи по-прежнему могут отказаться от тега, сняв соответствующий флажок, хотя конфигурация по умолчанию нацелена на сокращение сроков подтверждения транзакций.
По материалам Bitcoin Magazine