Вы здесь

Шардинг: PoW против PoS

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

Шардинг: PoW против PoS

Однако сетевые узлы часто имеют неодинаковые возможности. В стандартной схеме Накамото производительность сети ограничена производительностью самых слабых полных узлов сети.

Одним из наивных подходов к масштабированию блокчейна является ограничение участия в сети слабых узлов. В этом случае сеть полагается только на так называемые «сильные узлы» (tall nodes) с широкими и быстрыми сетевыми соединениями, которые могут обрабатывать большой объем данных.

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

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

Такие проекты, как Ethereum 2.0, Algorand, Cardano, Near и Zilliqa разработали свои собственные блокчейн-проекты, основанные на шардинге. Однако все эти проекты имеют схожую структуру своих конструкций. Все они полагаются на алгоритм консенсуса «Доказательство доли владения» (PoS) и псевдослучайный выбор валидаторов для комитетов стейкеров шард (шард-комитеты).

Для участия в процессе валидации блоков в рамках подхода «PoS-шардинга» каждый участник блокирует некоторое количество монет у себя на счету (формирует т.н. «долю»). Например, в Ethereum 2.0 одна доля, состоящая минимум из 32 монет, соответствует 1 голосу в раунде проверки блока.

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

Некоторые сторонники PoS-шардинга часто путают понятие «доля» с понятием «валидатор». Я думаю, многие читатели видели броские заголовки о том, что некая тестовая сеть coin X привлекла более 20 тысяч «валидаторов».

Однако в данном контексте речь идет не о количестве участников, а о количестве долей. Выяснить, кто владеет этими долями, невозможно. Тут может быть тысяча или сотня владельцев. Также не исключено, что большая часть долей контролируется одним субъектом. В этом случае очевидно, что сеть централизованная.

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

Наш подход заключается в том, чтобы отделять участников от их долей. Для иллюстрации проведем некоторые расчеты. Предположим, что в сети имеется количество D различных шардов и некий участник ставит количество S долей.

В этом случае вероятность того, что этот участник будет избран в качестве валидатора с одним или несколькими голосами в конкретном шарде по идеальной псевдослучайной функции, равна:

null-d143vmm.png

Кроме того, это математическое ожидание функции, которая достигает 1, если участник является валидатором, и 0 в противоположном случае. Сумма этих функций по всем шардам – это число шардов, которые проверяются участниками.
Таким образом, математическое ожидание числа шардов, проверяемых участником, задается формулой:

ELy3D5qjIEQPxlfLdReo0aw5TNx2-q11q3vcc.png

Например, в тестовой сети Ethereum 2.0 число шардов D равно 64. Согласно формуле участник, который блокирует 44 доли, будет проверять в среднем 32 шарда.

ELy3D5qjIEQPxlfLdReo0aw5TNx2-f92m3vod.png

Это означает, что в среднем этот участник будет управлять 32 шардами, или ровно половиной данных в сети. Этот участник будет загружать и обрабатывать половину данных в сети. Можно возразить, что половина – это не вся сеть. PoS-шардинг был объявлен крупным достижением, призванным ослабить нагрузку на слабые узлы в системе.

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

Можно возразить, что нет никакой необходимости блокировать 44 доли. Если у участника ограничены ресурсы, он может заблокировать одну или две доли и обработать один или два шарда. К сожалению, схема PoS-шардинга предполагает, что шард-комитеты изменяются в течение каждого «комитетного периода» (т.н. «эпоха») во избежание атак со стороны адаптивных противников.

Адаптивные противники повреждают целевые узлы, например, путем DDoS-атак или атак eclipse. Поврежденные узлы теряют свои доли из-за предусмотренных штрафных санкций и покидают комитет. В результате злоумышленник может получить контроль над всем комитетом. Напротив, в системе PoW узел может продолжить свою работу сразу же после атаки.

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

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

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

Давайте проведем некоторые расчеты. Предположим, что каждая доля блокирована примерно на 180 дней, и каждая доля выбирается в качестве валидатора один раз в день. Обратите внимание, что приведенная выше формула прекрасно работает и в этом случае. Мы установили D=64 и S=180.

ELy3D5qjIEQPxlfLdReo0aw5TNx2-an5y3v9h.png

В среднем такой участник будет в итоге загружать состояние по 60 из 64 шардов. А это почти вся сеть. Вот еще один пример. Предположим, что участник заблокировал 4 доли. Затем, через 11 дней, он загрузит почти 32 шарда, что составляет половину состояния сети.

Однако мы рассматриваем нагрузку, которую несут стейкеры с незначительной долей владения. В противовес им – крупные стейкеры с множеством долей. Представьте себе сервер с 64 процессорами, которые проверяют 64 шарда, где каждый процессор проверяет соответствующий ему шард. Управление этим сервером – достаточно простая задача.

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

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

Тут можно было бы возразить, что 60 – это меньше, чем 64, а половина состояния – это еще не все состояние. Тем не менее, это не то долгожданное решение, которое стоит «миллиардного бюджета и 10 лет развития».

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

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

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

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

Еще одним преимуществом PoW-шардинга является отсутствие проблем, типичных для PoS, а именно: проблема nothing at stake и stake grinding. В итоге, доказательство работы лучше, чем доказательство доли, если говорить о масштабировании.

Категория: 
Биткоин для "чайников"
1
Ваша оценка: Нет Средняя: 1 (1 оценка)
15978 / 0
Аватар пользователя Serg Demin
Публикацию добавил: Serg Demin
Дата публикации: ср, 06/17/2020 - 09:40

Что еще почитать: