Наука спорного кода




Разработчики Биткойна разведывают глубже проблему реализации и проведения хард-форка, спорного инструмента обновления, который оставался в сердце самого разделяющего спора за всю историю почти 16-миллиардной индустрии.

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

Не говоря уже о том, что все хард-форки имеют одинаковые последствия.

Интересно, что два последующих хард-форка сети Эфириума прошли согласно плану, так как они были не-спорными изменениями, внесёнными ради устранения атак на сеть, возможно, это продемонстрировало, что они могут проходить без проблем, если все участники согласны.

Тем временем, несмотря на подобную историю, некоторые участники сообщества давно призывали к увеличению транзакционной пропускной способности путём увеличения такого параметра, как размер блока, до 2 Мб и более, с Bitcoin Unlimited в качестве последней версии софта, призванного исполнить призыв к действию.

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

Джеймс Хиллард, из BitmainWarranty, который тестировал код для Bitcoin Core, сказал, что он в общем “консервативен” относительно проблемы хард-форка (как и самые активные участники), в будущем может быть потенциальная необходимость его проведения, ведь это единственный способ внести некоторые типы изменений.

Хиллар сказал:

“Я думаю, что исследование вопроса полезно, оно приближает нас к возможности проводить хард-форки безопасно”.

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

Разработчики Биткойна, кажется, весьма осторожно подходят к форкам, указывая на некоторые опасения, например – как провести подобное изменение безопасно.

Предложения хард-форков

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

Возможно, самый заметный случай – участник Bitcoin Core Джонсон Лау, который был, в некотором смысле, самым плодотворным в плане отправки постов-предложений о хард-форках в рассылки для разработчиков, накодировал второй экспериментальный хард-форк под названием “Spoonnet”, с новыми фишками, которых нет у Биткойна в данный момент. Он указал, что активация его прямо сейчас, без единогласного консенсуса, не приведёт к позитивным результатам.

“Попытка его активации в Testnet приводит к тому, что вас забанят. Попытка активации его в Mainnet в обход достижения консенсуса чревата потерей денег”, – написал он.

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

Другое предложение хард-форка от Лау, названное Forcenet, кодирует такой тип хард-форка, который можно назвать “софт-хард форк”, он делает старые узлы способными использовать новые правила, основанные на более раннем предложении разработчика Bitcoin Core, Люка младшего. Помимо прочего, он реализует практику нового формата заголовка блока, который уменьшает общий размер блока.

Люк младший опубликовал два предложения о проведении хард-форка, одно из которых предлагает уменьшение размера блока, а затем постепенное увеличение до 31 Мб.

Еще читать  Google – не то, чем кажется

Хиллард указал, что исследование хард-форка касательно конкретно увеличения размера блока длится уже давно. В феврале 2016, он написал собственное предложение хард-форка, хотя, возможно, благодаря скорости научных исследований, он сказал, что не будет голосовать за него, так как это “слишком сложное решение”.

Опасности учитываются

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

Одно из таких предложений для “системы оповещения о хард-форков”, с которым кошельки и майнеры могут предупредить других в случае хард-форка.

“С системой оповещения о хард-форках, пользователи и торговцы могут перестать торговать, если в сети замечена ненормальная активность, до тех пор, пока они не смогут принять информированное решение”, – объяснял Лау, упоминая, что это возможно было бы полезным в свете непреднамеренных разделений Биткойна, а также и Эфириума.

Далее, replay attack, или атака повторением, нашумевшая после проведения хард-форка Эфириума, ставшая возможной в результате разделения блокчейна. Внутри ореховой скорлупы: так как транзакционная история была одинакова в каждой из цепей, пользователи могли отправлять транзакции в обеих сетях, что вызвало затруденение – по крайней мере, пока проблема не была исправлена. Предложения от Люка младшего и Лау позволяют справиться с проблемой, используя разные методы.

Интересно, что даже детали этой защитной меры были причиной разногласия, когда программист Bitcoin Core Мэтт Коралло спорил в ответ на предложение по улучшению Биткойна (BIP), предложенном Лау, что защита от атаки повторением должна быть добровольной, а не включённой изначально. Хиллард заметил, что другая мера безопасности состоит в том, чтобы иметь “рационально долгий” период активации, год или около того.

Препятствие для масштабирования

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

Он добавил:

“Вопрос не в том, “должен ли Биткойн масштабироваться”, вопрос в том, “Как мы можем масштабировать Биткойн, и при этом не сломать его”?

Выяснение путей, с помощью которых можно безопасно проводить хафрд-форки, может быть выгодным. Нет других путей внесения определённых изменений в Биткойн.

“Исправление технических проблем будет хорошей причиной, по моему мнению”, – сказал Хиллард.

Он указал на длинный список исправлений багов и других потенциальных изенений в так называемом “списке желаний по хард-форку”, включая изменения в формате заголовка, которые сделают так, что “майнеры, работающие с пулами, не смогут удерживать блоки”. Другая подобная поправка может обратиться в то, что Лау называет “вторичным заголовком блока”, который мог бы хранить новые данные. Такие заголовки могут потенциально улучшить безопасность SPV узлов (которые хранят меньше данных, чем обычные узлы).

“Никто из разработчиков ядра на самом деле не выступает против хард-форков, просто они консервативны”, – сказал Хиллард.

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

“Когда подавляющее большинство пользователей Биткойна поверят, что система слишком неэффективна (во многих аспектах, не только скорость обработки транзакций), и что выгод будет значительно больше, чем рисков, произойдёт хард-форк”, – сказал он.

Хиллард, тем не менее, не похож на торопливого человека, подмечая, что на нахождение решения, с которым все согласятся, может потребоваться много времени.

Он заключил:

“Я недостаточно убеждён, что нам вообще стоит проводить его в ближайшем будущем”.

 

Источник

Источник


Комментарии:

Добавить Комментарий

Яндекс.Метрика