1. Proof of Stake: Как я научился любить слабую субъективность
Proof of Stake продолжает оставаться одним из самых противоречивых обсуждений в криптовалютном пространстве. Хотя эта идея имеет много неоспоримых преимуществ, в том числе эффективность, больший запас безопасности и будущую защищенность от проблем с аппаратной централизацией, алгоритмы доказательства кола, как правило, значительно сложнее, чем доказательства альтернатив, основанных на работе, и существует большое количество Скептицизм по поводу того, что доказательство заинтересованности может сработать вообще, особенно в отношении якобы фундаментальной проблемы «ничего не поставлено на карту». Однако, как выясняется, проблемы разрешимы, и можно привести строгий аргумент, что доказательство заинтересованности со всеми его преимуществами может быть успешным, но за умеренную цену. Цель этого поста - объяснить, какова эта стоимость и как можно минимизировать ее влияние.
Во-первых, введение. Цель алгоритма консенсуса, в общем, состоит в том, чтобы обеспечить безопасное обновление состояния в соответствии с некоторыми конкретными правилами перехода состояний, где право на выполнение переходов состояний распределяется среди некоторого экономического набора. Экономический набор - это набор пользователей, которым может быть предоставлено право коллективно выполнять переходы с помощью некоторого алгоритма, и важное свойство, которое должен иметь экономический набор, используемый для достижения консенсуса, заключается в том, что он должен быть надежно децентрализован - это означает, что ни один субъект, или сговор актеров может занять большую часть съемок, даже если у актера достаточно большой капитал и финансовые стимулы. До сих пор нам известно о трех надежно децентрализованных экономических наборах, и каждый экономический набор соответствует набору согласованных алгоритмов:
Обратите внимание, что в последнее время предпринимались попытки разработать согласованные алгоритмы на основе традиционной византийской теории отказоустойчивости; однако все такие подходы основаны на модели безопасности M-of-N, и сама по себе концепция «византийской отказоустойчивости» все еще оставляет открытым вопрос о том, из какого набора следует выбирать N. В большинстве случаев используемым набором являются заинтересованные стороны, поэтому мы будем рассматривать такие парадигмы нео-BFT просто как умные подкатегории «доказательства заинтересованности».
Доказательство работы имеет приятное свойство, которое значительно упрощает разработку эффективных алгоритмов для него: участие в экономическом наборе требует потребления ресурса, внешнего по отношению к системе. Это означает, что, внося свою работу в блокчейн, майнер должен сделать выбор, в какой из всех возможных форков внести свой вклад (или попытаться ли запустить новый форк), и различные варианты являются взаимоисключающими. Двойное голосование, включая двойное голосование, когда второе голосование проводится через много лет после первого, невыгодно, поскольку оно требует, чтобы вы разделили свои полномочия на майнинг между различными голосами; доминирующая стратегия всегда заключается в том, чтобы направить свою силу майнинга исключительно на тот форк, который, по вашему мнению, скорее всего выиграет.
Однако с доказательством кола ситуация иная. Хотя включение в экономический набор может быть дорогостоящим (хотя, как мы увидим, это не всегда так), голосование бесплатное. Это означает, что алгоритмы «наивного доказательства кола», которые просто пытаются скопировать доказательство работы, превращая каждую монету в «симулированную буровую установку» с определенной вероятностью в секунду превращения учетной записи, которой она может быть использована для подписания блока, имеют фатальный недостаток: если есть несколько вилок, оптимальная стратегия - голосовать за все вилки одновременно. Это ядро «ничего не поставлено на карту».
Обратите внимание, что существует один аргумент в пользу того, почему для пользователя может не иметь смысла голосовать за один ответвление в среде доказательства кола: «альтруизм-премьер». Альтруизм-прайм - это, по сути, комбинация фактического альтруизма (со стороны пользователей или разработчиков программного обеспечения), выражающаяся как в прямой заботе о благосостоянии других и сети, так и в психологическом моральном сдерживании против совершения чего-то, что явно является злом (двойное голосование), а также «фальшивый альтруизм», возникающий из-за того, что держатели монет хотят, чтобы стоимость их монет не снизилась.
К сожалению, на альтруизм-прайм нельзя полагаться исключительно, потому что ценность монет, возникающих из-за целостности протокола, является общественным благом и поэтому будет недопоставляться (например, если есть 1000 заинтересованных сторон, и каждый из их видов деятельности имеет 1% -ную вероятность того, что «Ключевой» в содействии успешной атаке, которая сбивает ценность монеты до нуля, тогда каждая заинтересованная сторона получит взятку, равную только 1% их владений). В случае распределения, эквивалентного блоку происхождения Ethereum, в зависимости от того, как вы оцениваете вероятность того, что каждый пользователь будет иметь ключевое значение, требуемое количество взяток будет равно где-то между 0,3% и 8,6% от общей суммы (или даже меньше, если атака несмертельна для валюты). Тем не менее, альтруизм-премьер все еще является важной концепцией, которую разработчики алгоритмов должны иметь в виду, чтобы максимально использовать ее в случае, если она работает хорошо.
Если мы сфокусируем наше внимание именно на вилках ближнего действия - вилках, которые имеют длину меньше некоторого количества блоков, возможно, 3000, то на самом деле есть решение проблемы «ничего не поставлено на карту»: депозиты безопасности. Чтобы иметь право на получение вознаграждения за голосование по блоку, пользователь должен внести залог, и если пользователь пойман либо голосует по нескольким вилам, то подтверждение этой транзакции может быть помещено в исходную цепочку, принимая награда прочь Следовательно, голосование только за один форк снова становится доминирующей стратегией.
Другой набор стратегий, называемый «Slasher 2.0» (в отличие от Slasher 1.0, оригинального алгоритма доказательства ставки на основе гарантийного депозита), предусматривает простое наказание избирателей, которые голосуют не на той развилке, а не избирателей, которые голосуют дважды. Это существенно упрощает анализ, поскольку устраняет необходимость предварительного выбора избирателей за много блоков заранее, чтобы предотвратить вероятностные стратегии двойного голосования, хотя у него есть цена, что пользователи могут не захотеть подписывать что-либо, если есть две альтернативы блока на данной высоте. Если мы хотим дать пользователям возможность подписываться в таких обстоятельствах, можно использовать вариант правил логарифмической оценки (см. Здесь для более подробного исследования). Для целей этого обсуждения Slasher 1.0 и Slasher 2.0 имеют идентичные свойства.
Причина, по которой это работает только для вилок ближнего действия, проста: пользователь должен иметь право в конечном итоге снять гарантийный депозит, и после того, как депозит снят, больше нет никаких стимулов не голосовать за запуск форка с дальнего расстояния. далеко назад во времени, используя эти монеты. Один класс стратегий, которые пытаются справиться с этим, - сделать депозит постоянным, но у этих подходов есть своя собственная проблема: если ценность монеты постоянно не растет, чтобы постоянно принимать новых подписчиков, набор консенсуса в конечном итоге превращается в осси вид постоянного дворянства. Учитывая, что одной из основных идеологических претензий, которая привела к популярности криптовалюты, является именно тот факт, что централизация имеет тенденцию к превращению в дворянства, которые сохраняют постоянную власть, копирование такого свойства, вероятно, будет неприемлемым для большинства пользователей, по крайней мере для блокчейнов, которые предназначены для быть постоянным Модель благородства вполне может быть правильным подходом для эфемерных блокчейнов специального назначения, которые должны быстро умирать (например, можно представить, что такой блокчейн существует для раунда игры, основанной на блокчейнах).
Один класс подходов к решению этой проблемы состоит в том, чтобы объединить описанный выше механизм Slasher для вилок ближнего действия с резервной копией транзакций в качестве доказательства ставки для вилок большого радиуса действия. TaPoS, по сути, работает, считая комиссию за транзакцию как часть «оценки» блока (и требуя, чтобы каждая транзакция включала несколько байтов недавнего хэша блока, чтобы сделать транзакции нетривиально переносимыми), согласно теории, успешный форк атаки должен тратить большое количество сборов догоняющих. Однако этот гибридный подход имеет фундаментальный недостаток: если мы предположим, что вероятность успеха атаки близка к нулю, то у каждого подписавшего стороны есть стимул предложить услугу повторной подписи всех своих транзакций на новую цепочку блоков в обмен на небольшая плата; следовательно, нулевая вероятность успеха атак не является теоретически стабильной. Каждый пользователь, настраивающий свое собственное web-приложение node.js для получения взяток, звучит нереально? Что ж, если так, то есть гораздо более простой способ сделать это: продать старые, больше не используемые, частные ключи на черном рынке. Даже без «черных рынков» система доказательств кола навсегда оказалась бы под угрозой тех людей, которые первоначально участвовали в предварительной продаже и имели долю в выпуске блоков генезиса, которые в конечном итоге нашли друг друга и собрались вместе, чтобы запустить форк.
Из всех приведенных выше аргументов мы можем с уверенностью заключить, что эта угроза для злоумышленника, создающего разветвление с произвольно большого расстояния, к сожалению, является фундаментальной, и во всех невырожденных реализациях эта проблема является фатальной для доказательства успеха алгоритма кола в доказательстве. модели безопасности труда. Однако мы можем обойти этот фундаментальный барьер с помощью небольшого, но, тем не менее, фундаментального изменения в модели безопасности.
Хотя существует много способов категоризации консенсусных алгоритмов, разделение, на котором мы сосредоточимся до конца этого обсуждения, заключается в следующем. Во-первых, мы представим две наиболее распространенные сегодня парадигмы:
Системы, которые используют социальные сети в качестве своего набора консенсуса (например, Ripple), все обязательно субъективны; злоумышленник может убедить новый узел, который ничего не знает, кроме протокола и данных, в том, что его 100000 узлов заслуживают доверия, и без репутации невозможно справиться с этой атакой. Подтверждение работы, с другой стороны, является объективным: текущее состояние - это всегда состояние, которое содержит наибольшее ожидаемое количество доказательств работы.
В этой модели мы можем четко видеть, как прекрасно работает доказательство ставки: мы просто запрещаем узлам возвращать больше, чем N блоков, и устанавливаем N равным длине страхового депозита. То есть, если состояние S было действительным и стало предком по меньшей мере N действительных состояний, то с этого момента ни одно состояние S ’, которое не является потомком S, не может быть действительным. Атаки на большие расстояния больше не являются проблемой, по той простой причине, что мы просто сказали, что вилки с большой дальностью недопустимы как часть определения протокола. Это правило явно слабо субъективно, с дополнительным бонусом, который X = 100% (т.е. никакая атака не может вызвать постоянное нарушение, если оно не длится больше чем N блоков).
По сути, мы явно штрафуем вилки, которые приходят позже. ESS обладает тем свойством, что, в отличие от более наивных подходов к субъективности, он в основном избегает постоянного разделения сети; если время между первым узлом в сети, слушающим о блоке B, и последним узлом в сети, слышащим о блоке B, представляет собой интервал из k блоков, то разветвление будет неустойчивым, если длины двух вилок не останутся навсегда в пределах примерно k процентов друг от друга (если это так, то разная плотность вилок обеспечит, что половина сети будет всегда видеть одну вилку как более высокую оценку, а другая половина будет поддерживать другую вилку). Следовательно, ESS слабо субъективен, и X приблизительно соответствует тому, насколько близко к сети 50/50 может быть создан злоумышленник (например, если злоумышленник может создать разделение 70/30, то X = 0,29).
В общем, правило «максимум возвращаемых N блоков» является превосходным и менее сложным, но ESS может оказаться более целесообразным в ситуациях, когда пользователи в порядке с высокими степенями субъективности (т. Е. N малы) в обмен на быстрое восхождение к очень высокая степень безопасности (т. е. невосприимчива к атаке 99% после N блоков).
Так как же будет выглядеть мир, основанный на слабо субъективном консенсусе? Прежде всего, узлы, которые всегда находятся в сети, будут в порядке; в этих случаях слабая субъективность по определению эквивалентна объективности. Узлы, которые подключаются к сети время от времени или, по крайней мере, один раз каждые N блоков, также будут в порядке, потому что они смогут постоянно получать обновленное состояние сети. Однако новые узлы, присоединяющиеся к сети, и узлы, появляющиеся в сети через очень долгое время, не будут иметь согласованного алгоритма, который надежно их защищал бы. К счастью, для них решение простое: при первой регистрации, и каждый раз, когда они остаются в автономном режиме в течение очень очень долгого времени, им нужно только получить недавний хеш-блок от друга, исследователя блокчейна или просто их программного обеспечения. провайдер, и вставьте его в свой блокчейн-клиент в качестве «контрольной точки». После этого они смогут безопасно обновлять свое представление о текущем состоянии.
Это предположение о безопасности, идея «получить хеш-код от друга», может показаться многим несправедливым; Разработчики биткойнов часто подчеркивают, что если решением для атак на большие расстояния является какой-то альтернативный механизм принятия решения X, то безопасность блокчейна в конечном итоге зависит от X, и поэтому алгоритм в действительности не более безопасен, чем прямое использование X - подразумевая, что большинство X, включая наш подход, основанный на социальном согласии, небезопасны.
Однако эта логика игнорирует, почему согласованные алгоритмы существуют в первую очередь. Консенсус - это социальный процесс, и люди довольно хороши в достижении консенсуса самостоятельно без какой-либо помощи алгоритмов; возможно, лучший пример - это камни Rai, где племя в Япе, по сути, поддерживало запись блокчейна об изменениях в владении камнями (используемыми как биткойн-подобный актив с нулевой внутренней стоимостью) как часть его коллективной памяти. Причина, по которой необходимы консенсусные алгоритмы, заключается в том, что люди не обладают бесконечными вычислительными возможностями и предпочитают полагаться на программные агенты, чтобы поддерживать консенсус для нас. Программные агенты очень умны, в том смысле, что они могут поддерживать консенсус в чрезвычайно больших состояниях с чрезвычайно сложными наборами правил с идеальной точностью, но они также очень невежественны, в том смысле, что у них очень мало социальной информации, и проблема согласованных алгоритмов заключается в создании алгоритма, который требует минимального ввода социальной информации.
Слабая субъективность - абсолютно правильное решение. Он решает долгосрочные проблемы с доказательством заинтересованности, полагаясь на управляемую человеком социальную информацию, но оставляет алгоритму консенсуса роль увеличения скорости достижения консенсуса со многих недель до двенадцати секунд и разрешения использования очень сложных наборов правил и большое государство. Роль человеческого консенсуса сводится к поддержанию консенсуса по блочным хэшам в течение длительных периодов времени, в чем люди совершенно преуспели. Гипотетическое угнетающее правительство, которое является достаточно мощным, чтобы фактически вызвать путаницу в отношении истинной ценности хеш-блока, полученного год назад, также было бы достаточно мощным, чтобы подавить любой алгоритм доказательства работы или вызвать путаницу в правилах протокола цепочки блоков.
Обратите внимание, что нам не нужно исправлять N; Теоретически, мы можем предложить алгоритм, который позволяет пользователям хранить свои депозиты заблокированными дольше, чем N блоков, а затем пользователи могут воспользоваться этими депозитами, чтобы получить более детальное представление об уровне безопасности. Например, если пользователь не выполнил вход в систему с тех пор, как T блокировался назад, и 23% депозитов имеют длину термина больше, чем T, то пользователь может придумать свою собственную функцию субъективной оценки, которая игнорирует подписи с более новыми депозитами, и, таким образом, быть защищенной против атак до 11,5% от общей ставки. Растущая кривая процентных ставок может быть использована для стимулирования более долгосрочных депозитов по сравнению с более короткими, или для простоты мы можем просто положиться на альтруизм-прайм.
Одно из возражений против долгосрочных депозитов состоит в том, что это стимулирует пользователей держать свой капитал взаперти, что является неэффективной, точно такой же проблемой, что и доказательство работы. Однако есть четыре контрапункта этому.
Во-первых, предельные издержки не являются общими затратами, и отношение общих затрат, деленное на предельные издержки, намного меньше для доказательства заинтересованности, чем для доказательства работы. Пользователь, скорее всего, почти не испытывает боли от блокировки 50% своего капитала в течение нескольких месяцев, небольшую боль от блокировки на 70%, но при этом блокирование более чем на 85% недопустимо без большой награды. Кроме того, разные пользователи имеют разные предпочтения относительно того, насколько они готовы заблокировать капитал. Из-за того, что эти два фактора вместе взятые, независимо от того, что в итоге приводит к равновесной процентной ставке, подавляющее большинство капитала будет заблокировано по ценам намного ниже предельных
Во-вторых, блокирование капитала является частной издержкой, но также и общественным благом. Наличие заблокированного капитала означает, что для транзакционных целей доступно меньше денежной массы, и поэтому стоимость валюты будет увеличиваться, перераспределяя капитал всем остальным, создавая социальную выгоду. В-третьих, гарантийные депозиты являются очень надежным средством сохранения стоимости, поэтому (i) они заменяют использование денег в качестве инструмента личного страхования от кризиса, и (ii) многие пользователи смогут брать кредиты в той же валюте, обеспеченной ценными бумагами. депозит. Наконец, поскольку доказательство заинтересованности может фактически отнимать депозиты за ненадлежащее поведение, а не только за вознаграждение, оно способно достичь уровня безопасности, намного превышающего уровень вознаграждений, тогда как в случае доказательства работы уровень безопасности может только равный уровень вознаграждений. Невозможно доказать протокол работы, чтобы уничтожить ASIC, ведущие себя плохо.
К счастью, есть способ проверить эти предположения: запустить монету с доказательством кола с вознаграждением в размере 1%, 2%, 3% и т. Д. В год и посмотреть, насколько большой процент монет становится депозитом в каждом случае. Пользователи не будут действовать против своих собственных интересов, поэтому мы можем просто использовать количество средств, потраченных на консенсус, в качестве показателя того, насколько неэффективен алгоритм консенсуса; если доказательство заинтересованности имеет разумный уровень безопасности при гораздо более низком уровне вознаграждения, чем доказательство работы, то мы знаем, что доказательство заинтересованности является более эффективным механизмом консенсуса, и мы можем использовать уровни участия на разных уровнях вознаграждения, чтобы получить точное представление о соотношении между общей стоимостью и предельной стоимостью. В конечном счете, могут потребоваться годы, чтобы получить точное представление о том, насколько велики затраты на блокировку капитала.
В целом, теперь мы знаем наверняка, что (i) доказательство алгоритмов кола может быть сделано безопасным, а слабая субъективность является достаточной и необходимой в качестве фундаментального изменения в модели безопасности, чтобы избежать проблем, связанных с поставленной целью, для достижения этой цели, и (ii) есть существенные экономические причины полагать, что доказательство доли на самом деле гораздо более экономически эффективно, чем доказательство работы. Доказательство кола не является неизвестным; прошедшие шесть месяцев формализации и исследований точно определили, в чем заключаются сильные и слабые стороны, по крайней мере, в такой же степени, как и в доказательстве работы, где неопределенности в централизации майнинга могут существовать вечно. Теперь это просто вопрос стандартизации алгоритмов и предоставления разработчикам блокчейна выбора.
Сообщения из Facebook