Против показателя минимального большинства

Против показателя минимального большинства

Баладжи Шринивасан и Леланд Ли из компании 21 Inc. недавно выложили подробную статью об измерении децентрализации Биткойна. Ниже хочу разобрать некоторые вопросы, которые у меня вызвала их статья.

1. Название в честь Сатоши Накамото

В статье предлагается название для минимального числа людей в ряде групп, необходимого для того, чтобы представлять больше 50% в любой из этих групп. Предложенное название – «минимальный коэффициент Накамото».

Мне не нравятся названия в честь создателя Биткойна Сатоши Накамото. Я понимаю, что часто это делается из уважения к Накамото и тому, чего он достиг, изобретя, запрограммировав и обеспечив функционирование Биткойна, – но не реже это делается для продвижения продукта или идеи посредством ассоциации с заслуженной славой Накамото.

Я предлагаю называть продукты, идеи и другие вещи в честь тех, кто реально участвовал в их создании, либо использовать другие уникальные обозначения.

В данном случае уже существует слово для описания минимального числа людей в группе, необходимого для того, чтобы представлять больше 50% этой группы: большинство.

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

2. Измерение того, что не должно измеряться

Шринивасан и Ли для своего расчёта минимального большинства измеряют 6 показателей:

  1. Хешрейт по сообщаемому имени майнера;
  2. Полные узлы по сообщаемой версии;
  3. Разработчики по самостоятельно определённому участию;
  4. Полные узлы по IP-адресам (только узлы, получающие IPv4 и, возможно, IPv6);
  5. Биржи по сообщаемой оценке объёма;
  6. Баланс по самостоятельно выбранным адресам.

Я считаю примечательным то, что все эти шесть показателей не должны измеряться – и в идеале не измеряются. Давайте ещё раз пройдёмся по списку:

  1. Хешрейт измерим только потому, что майнеры включают своё имя в блок – тратя пространство блока и при этом делая себя мишенью для злоумышленников. В идеале должно быть множество малых и анонимных майнеров.
  2. Версии полных узлов сегодня регулярно подделываются в сети. В идеале следует перестать обращать внимание на эту статистику, чтобы разработчики могли использовать её, как и задумывалось, для определения того, какие версии всё ещё достаточно популярны, чтобы их поддерживать; если этого не произойдёт, данный показатель будет становиться всё более бессмысленным.
  3. Разработчики сами решают, что вводить в поле участия, и многие, помимо Накамото, указывают ложные имена или вообще случайные строки. В идеале изменения и анализ кода должны совершаться совершенно анонимно, по крайней мере до задействования изменений, чтобы не было причин компрометировать разработчиков.
  4. IP-адреса полных узлов также легко подделываются, хотя и с некоторыми затратами на каждый адрес IPv4. В идеале все должны использовать Tor или более сильную сеть для анонимной передачи данных.
  5. Биржи могут публиковать поддельные цифры объёма или изобретать политику, ведущую к высоким суммам объёма при отсутствии базового спроса. В идеале биржи не должны вести ненужный учёт активности своих клиентов.
  6. Баланс сегодня может быть намного более распределённым, учитывая, что создание новых адресов бесплатно, как и их использование при получении транзакции. В идеале Биткойн в будущем должен использовать нечто вроде конфиденциальных транзакций, чтобы третьи стороны не могли отслеживать баланс.

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

3. Необъективность

Так как имена майнеров, версии полных узлов, участие разработчиков, IP-адреса полных узлов и объёмы бирж можно подделать, необходима субъективная поправка с учётом такой возможной подделки. Это делает измерение более произвольным и затрудняет сравнение.

Например, собственный сервис мониторинга узлов компании 21 Inc. Bitnodes, используемый в качестве источника для двух показателей, считает только узлы, допускающие принимающие подключения. По некоторым оценкам это представляет меньше 5% всех узлов – но эта альтернативная оценка имеет свои проблемы, требующие поправки.

4. Зачем нужна децентрализация (основной момент)

Пользователи Биткойна хотят многого, но я думаю, что важнее всего то, что они не хотят, чтобы их биткойны исчезли из их кошельков или их невозможно было потратить. В Биткойне такое может произойти в двух случаях:

  1. Реорганизация блокчейна может отменить предыдущие транзакции, изъяв биткойны из кошельков тех, кто эти транзакции получил.
  2. Изменение консенсуса может признать недействительными биткойны, которые раньше считались действительными и могли тратиться.

Защита от реорганизации

Защитой от реорганизации является децентрализация майнинга (хешрейта). Большинство майнеров теоретически может реорганизовать блокчейн так, как захочет, сделав недействительными любые транзакции, причём (теоретически) без дополнительных затрат.

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

Вот график, составленный мною, когда вознаграждение за блок составляло 25 BTC и комиссия за транзакцию была ничтожно мала (так что я мог пренебречь ею, а также защитой от перехвата комиссий в Bitcoin Core):

 

Если никто из майнеров не контролирует более 1% хешрейта, транзакции с одним подтверждением вполне защищены от атакующих майнеров (но не от непреднамеренного ветвления). Если никто из майнеров не контролирует более 10% хешрейта, транзакции с 6 подтверждениями достаточно защищены.

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

Защита от изменения консенсуса

Если каждый пользователь Биткойна больше всего на свете хочет платить Алисе, то Алисе придётся определить правила консенсуса Биткойна – но это значит, что безопасность ваших биткойнов будет полностью зависеть от политики Алисы.

Но если половина пользователей Биткойна больше всего на свете хочет платить Алисе, а половина – Бобу, то Алисе и Бобу нужно либо договориться о правилах консенсуса, либо разделить сеть на две части с разными правилами. Так будет немного безопаснее: если Алиса решит украсть ваши биткойны, то, по крайней мере, есть вероятность, что Боб этого не захочет.

Если к Алисе и Бобу добавить Чарли, Дэна и других людей, которым кто-то хочет платить, то станет больше тех, кто участвует в определении правил консенсуса, – хотя в среднем влияние каждого из них меньше.

Чтобы объединить свои голоса, они могут выбрать ПО, автоматически обеспечивающее выполнение правил, которые они считают важными, и приемлемых правил, которые, по их мнению, другие считают важными [1]. Как раз это делают полные узлы, и чем больше людей, использующих полные узлы для получаемых платежей, тем сложнее изменить правила консенсуса Биткойна неблагоприятными для вас образом.

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

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

Мне не известны способы измерения экономического выполнения правил, кроме попыток изменить правила консенсуса Биткойна. К счастью, после того как люди несколько лет тратили на это существенные ресурсы, правила менялись только к лучшему и относительно незначительно (BIP66 Strict DER, BIP65 CLTV, BIP68/112/113 Sequence/RCLTV/Median-time и BIP141 Segwit).

Однако существует важный показатель, связанный с обеспечением неизменности экономического выполнения правил: стоимость операций узла (Cost Of Node OPeration (CONOP)), достаточно подробно описанная по ссылке.

Заключение

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

Альтернативная стратегия, до сих пор относительно успешно поддерживавшая децентрализацию Биткойна, состоит в том, чтобы стараться минимизировать известные проблемы, ведущие к централизации майнеров (например, изначальные протокол и сеть быстрой передачи блоков сократили высокий риск «осиротевших» блоков, позволивший GHash.io получить большинство хешрейта даже после проведения атаки двойного расходования на $100 000), и поддерживать низкую стоимость операций узла, чтобы гарантировать, что большое число людей сможет подтверждать получаемые ими транзакции с помощью собственных полных узлов.

Лично я подозреваю, что стабильно улучшающаяся конфиденциальность Биткойна будет препятствовать действительно объективному измерению децентрализации. Отказ от простого измерения в пользу лучшей конфиденциальности мне кажется хорошей сделкой.

[1] Пользователи полных узлов также должны обеспечивать выполнение приемлемых правил, которые, по их мнению, другие считают важными, чтобы образовать единый экономический союз. Например, если Алиса считает, что размер блока 1 МБ важен, но деление вознаграждения пополам ей безразлично, а Боб считает важным деление вознаграждения пополам, но размер блока 1 МБ ему безразличен, то они могут создать экономический союз, более сильный, чем каждый из них по отдельности, в каждом случае обеспечивая выполнение обоих правил.

Источник



Categories: Top, Безопасность

Tags: , , , , , , ,

Leave a Reply

Оставьте первый комментарий!

Notify of
avatar
wpDiscuz