Представляем Casper

Привет, это Влад. Я работаю над созданием спецификации блокчейн-архитектуры с подтверждением владения с сентября 2014 года. Хотя у нас с Виталиком еще есть некоторые разногласия, нам удалось достичь согласия по поводу многих свойств протокола PoS, который, скорее всего, будет реализован в Serenity. Он называется «дружелюбное привидение» Casper, потому что он представляет собой адаптацию некоторых принципов PoW-протокола GHOST (Greedy Heaviest-Observed Sub-Tree) к PoS. В этом сообщении я расскажу о том, каким, вероятно, будет Casper. В настоящее время мы работаем над формальной верификацией и моделированием Casper и опубликуем результаты, когда они будут готовы, а пока можете ознакомиться с этим неформальным описанием.

Безопасность и проверка подлинности на основе залогового депозита

Casper — это протокол достижения экономического консенсуса, основанный на залоговом депозите. Это означает, что узлы  — так называемые «инспекторы, связанные залоговым обязательством» (bonded validators), — обеспечивающие консенсус и генерирующие блоки, должны предоставить залоговый депозит. Контроль над этими депозитами является в Casper главным способом поддержания мотивации инспекторов. Если инспектор выдаст результат, который Casper признает «недействительным», депозит будет конфискован, а инспектор будет лишен права участвовать в обеспечении консенсуса. Использование залоговых депозитов решает проблему «nothing at stake», которая заключается в том, что плохое поведение ничего не стоит инспектору. Требование депозита означает, что инспектору будет что терять в случае ненадлежащего выполнения обязанностей.

Подпись инспектора экономически значима только в том случае, если в текущее время его депозит находится у Каспера. Это означает, что клиенты могут полагаться на подписи только тех инспекторов, которые в текущий момент связаны залоговым обязательством. Следовательно, когда клиенты получают состояние консенсуса и проверяют его подлинность, их цепочка проверки подлинности завершается списком инспекторов, связанных в текущий момент залоговым обязательством, тогда как при PoW-консенсусе она завершается генезис-блоком. Иначе говоря, при PoW-консенсусе вы можете проверить консенсус, если вам доступен генезис-блок, а при PoS-консенсусе для этого нужен список инспекторов, связанных в текущий момент залоговым обязательством. Клиент, которому недоступен такой список, должен проверить подлинность консенсуса по внешнему каналу. Это ограничение проверки консенсуса решает проблему «longe range attack», требуя, чтобы каждый проверял консенсус по текущей информации.

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

Это свойство, требующее хотя бы однократной проверки подлинности списка инспекторов по внешнему каналу, Виталик называет слабой субъективностью. В данном контексте информацию называют «объективной», если ее можно проверить в соответствии с протоколом, и «субъективной», если ее необходимо проверить с помощью средств, внешних по отношению к протоколу. В протоколах консенсуса со слабой субъективностью правило выбора форка сохраняет состояние (forkchoice rule is stateful), и клиенты должны инициализировать (и, возможно, иногда обновлять) информацию, которую их правило выбора форка использует для проверки подлинности консенсуса. В нашем случае это включает идентификацию инспекторов, связанных в текущий момент залоговым обязательством (или, скорее, проверку криптографического хеша списка таких инспекторов).

Ставки на консенсус

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

Если инспектор слишком радикально изменяет свои ставки (например, ставит на высокую вероятность признания одного блока после того как ранее поставил на высокую вероятность признания другого блока), он подвергается суровому наказанию. Это гарантирует, что инспектор будет указывать высокую вероятность только тогда, когда он будет уверен, что другие инспекторы также поставят на высокую вероятность. Этот механизм гарантирует, что ставки никогда не будут сходиться к другому значению, если они уже сошлись к первому (при условии достаточно активного участия инспекторов в ставках).

Консенсус PoW также основан на ставках: майнер делает ставку на то, что его блок попадет в главную цепь. Если он оказывается прав, он получает токены. Если же он оказывается неправ, он не получает никакой компенсации расходов на электричество. Консенсус поддерживается, пока все майнеры ставят свою хеш-мощность на одну цепочку, которая «впитывает» бОльшую часть проделанной работы (это является непосредственным результатом скоординированных ставок). Экономическая стоимость этих ставок суммируется в PoW в количестве подтверждений линейно, тогда как в Casper инспекторы смогут скоординированно инвестировать в подтверждение блоков экспоненциально растущую долю своих депозитов, очень быстро достигая максимальной безопасности.

Консенсус по высоте

Инспекторы делают независимые ставки на блоки при каждой высоте блокчейна (т. е. при каждом номере блока), назначая блоку вероятность и публикуя ее в качестве ставки. При каждой высоте блокчейна инспекторы выбирают один-единственный блок, и итеративные ставки определяют порядок, в котором выполняются транзакции. Если инспектор когда-либо сделает ставки с вероятностями, дающими в сумме при конкретной высоте блокчейна более 100% или менее 0%, либо поставит более 0% на недействительный блок, Каспер конфискует его депозит.

Финализация транзакций

Если каждый участник квалифицированного большинства инспекторов, связанных залоговым обязательством (группа инспекторов, на долю которых приходится от 67% до 90% общего объема депозитов — пороговое условие протокола), ставит на блок с очень высокой (скажем, > 99,9%) вероятностью, правило выбора форка никогда не примет форк, в котором данный блок не выигрывает, и тогда мы говорим, что этот блок является окончательным. Кроме того, если клиент видит, что каждый блок ниже некоторой высоты H является окончательным, клиент никогда не выберет форк с другим состоянием на высоте H – 1. Такое состояние является окончательным.

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

Устойчивость к цензуре

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

Для защиты от атак со стороны коалиций большинства Casper рассматривает процесс достижения консенсуса как кооперативную игру и гарантирует, что каждый узел получает наибольшую прибыль, если он состоит в коалиции, включающей 100% узлов, достигших консенсуса (по крайней мере, если их мотивация складывается преимущественно из наград, предусмотренных протоколом). Если p% инспекторов участвуют в коненсус-игре, они получают f(p) ≤ p процентов от той прибыли, которую бы они получили, если бы в консенсусе участвовали все 100% инспекторов (для некоторой возрастающей функции f).

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

Будет ли возможно большее количество транзакций в секунду?

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

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

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

Восстановление от разделов сети

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

Восстановление от массовых сбоев

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

Что такое Каспер в неэкономическом смысле?

Каспер — это основанный на блокчейне согласованный во времени протокол достижения консенсуса, в котором доступности отдается приоритет над согласованностью (см. теорему CAP). Он устойчив по отношению к непредсказуемому времени доставки сообщений, потому что узлы достигают консенсуса посредством реорганизации транзакций после получения задержанных сообщений. Отказоустойчивость Каспера составляет 50% в том смысле, что форк, созданный более чем половиной правых узлов, ценится выше, чем любой форк, созданный остальными потенциально неправыми инспекторами. Следует иметь в виду, однако, что клиенты не могут быть уверены в том, что форк, созданный 51% участников не будет обращен, потому что они не знают, не являются ли некоторые из этих узлов византийцами. Следовательно, клиенты считают блок окончательным только в том случае, если его создало квалифицированное большинство инспекторов.

Каково быть инспектором, связанным залоговым обязательством?

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

Инспектору потребуется как можно более надежный и постоянный доступ к Интернету для максимизации прибыли. Рекомендуется приобрести средства защиты от DDoS-атак. Кроме того, ваша прибыль будет зависеть от эффективности работы и доступности других инспекторов, связанных залоговыми обязательствами. Это означает, что контролировать некоторые факторы риска вы не сможете. Вы даже можете потерять деньги из-за плохой работы (но вы потеряете еще больше денег, если не будете участвовать в обеспечении консенсуса после предоставления залога). Однако дополнительный риск также часто связан с более высокой средней прибыльностью — особенно если риск очевиден, но не реализуется в реальности.

Что это значит для приложений и пользователей?

Приложениям и их пользователям переход от PoW на Casper очень выгоден. Меньшие задержки значительно улучшают впечатления от работы с системой. В нормальных условиях транзакции будут финализироваться очень быстро. В случае разделов сети транзакции все же будут обрабатываться, но пользователи будут получать ясную информацию о потенциальной возможности их обращения. Таким образом, разработчикам приложений придется учитывать вероятность форка (как и при PoW), но сам протокол консенсуса будет предоставлять им ясные сведения о возможности обращения любой конкретной транзакции.

Когда мы узнаем больше?

Следите за новостями! В ближайшие месяцы мы обнародуем дополнительные сведения о спецификации Casper. Кроме того, вы получите данные моделирования, формальной верификации и реализаций Casper! Будьте, однако, терпеливы: мы не знаем, сколько времени потребуется на исследования.

Влад Замфир (Vlad Zamfir), 1 августа 2015 г.

Источник: blog.ethereum.org

Реклама
1 comment

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: