UASF: Очередной поворот в дебатах о размере блока




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

СегВит – обновление протокола Биткойна, предложенное командой разработчиков Bitcoin Core, предполагает увеличение лимита размера блока почти в два раза, а так же закладывает основу для будущих решений масштабирования Биткойна. Но это предложение, требующее для активации поддержки 95% хэширующей мощности сети, слишком медленно получает признание среди майнеров. И нет никаких признаков, что такое положение вещей изменится в ближайшем будущем.

Теперь же, возможно, найден альтернативный путь активации.

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

И ещё:

“Обсуждаемая здесь альтернатива – «активация в назначенный день», когда полные узлы начинают принудительное использование нового кода в заранее оговоренное в будущем время”.

Эта альтернатива – “Софт-форк, активируемый пользователями”, или сокращённо “UASF”.

Софт-форки с активацией на основе хэширующих мощностей

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

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

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

СегВит, в том виде, как был предложен командой Bitcoin Core, это софт-форк. Но вместе с предложением софт-форка, в частности, активация на основе хэширующих мощностей выглядит похоже на процесс выборов. Shaolinfry оспаривает, что на самом деле это не так:

“Проблема с голосованием супер-большинством хэширующей мощности в том, что оно привлекает к майнерам совершенно излишнее внимание, которое может иметь политическую подоплёку. С присутствующим неправильным пониманием того, что майнеры и есть голоса, на майнеров может быть оказано давление ‘принять решение’ от лица сообщества: внимание общественности фокусируется на том, кто и как голосует, и это может оказать на майнеров давление к которому они совершенно не готовы”.

Следовательно, предложение shaolinfry состоит в том, чтобы выбрать в качестве метода активации UASF.

UASF

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

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

Еще читать  Регулирование криптовалют в России: итоги конференции

Чтобы заработать вознаграждение за создание блока, которое имело бы какую-то ценность, майнерам, следовательно, пришлось бы делать то, что от них требует экономика, – утверждает shaolinfry:

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

Как и все софт-форки, UASF по-прежнему будет преложен в качестве выбора для обычных пользователей, при условии, что его активация пойдёт гладко. Но, например, если каким-то пользователям не нравится SegWit, они могут отказаться от обновления [своего программного обеспечения]. В то же время, другие пользователи смогут пользоваться преимуществами, предложенными SegWit.

Недостатки

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

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

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

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

“После развертывания софт-форка BIP66 в 2015, 95% хеширующих мощностей заявили, что они приняли BIP66, установив версию блока в ‘3’. Теоретически, установив версию блока в ‘3’, майнер соглашается с сетью считать блоки версии ‘2’ недействительными, и майнить исключительно на правильных форках. Будучи частью 5%, которые не обновили программное обеспечение, и не создавали блоки версии ‘3’, майнинг-пул BTCNuggets создал блок версии ‘2’, который был недействителен для всех новых клиентов Bitcoin Core (> = 0.9.5), но действителен для более старых версий старых клиентов. Пулы Antminer и F2Pool, составлявшие в общей сложности около 40% хэширующей мощности сети на тот момент, создавали блоки версии ‘3’, но ни один из них не валидировал предыдущие блоки. В результате, Antminer и F2Pool создали следующий блок на основе блока версии ‘2’ BTCNuggets и породили неправильный fork. Более 40% мощности сети майнило на версии ‘2’, несмотря на то, что 95% «согласились» не делать этого. Это привело к форку с цепочкой длинной в 6 блоков, которая была отброшена после обращения к владельцам пулов F2Pool и Antminer.

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

 

Источник

 

Источник


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

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

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