Proof-of-Stake

Что такое Proof-of-Stake?

Proof-of-Stake (PoS, Доказательство владения) относится к категории алгоритмов, которые используются для достижения консенсуса в системе блокчейна. Точнее говоря, Proof-of-Stake - это механизм предотвращения Sybil атак (т.е. он предотвращает маскировку одного участника под видом N других). В PoS голос участника в системе напрямую связан с количеством его токенов, поэтому человек, у которого всего 100 токенов, не может выдавать себя за 1000 разных людей с 100 токенов у каждого.

Чтобы блокчейн развивался, необходимо создать новые блоки и добавить их в цепочку. Кто имеет право создавать эти новые блоки? В системе Proof-of-Work за это право борются майнеры, затрачивая вычислительные мощности для решения рандомных (случайных) криптографических головоломок. Победитель получает возможность создать следующий блок и определённое вознаграждение за это. В данной парадигме, чем больше вычислительной мощности у майнера, тем выше вероятность, что он создаст следующий блок. Системы PoS, напротив, сосредоточены на идее о том, что чем больше коинов у майнера/валидатора/ производителя блоков, тем выше вероятность создания ими следующего блока.

В целом, существует 2 класса алгоритмов Proof-of-Stake:

  1. Proof-of-Stake на основе цепи

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

  2. Византийский отказоустойчивый (BFT) Proof-of-Stake

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

Какой алгоритм консенсуса используется в Tezos?

Для достижения консенсуса Tezos использует алгоритм PoS на основе цепи, который многие называют Liquid Proof-of-Stake. Чтобы понять этот алгоритм PoS, мы разделим его на три основных раздела:

  1. Создание Блока (Бейкинг)

    Создание блока - это способ, посредством которого прогрессирует блокчейн. В Tezos участников, которые создают блоки, называют бейкерами. Бейкеры вкладывают свои вычислительные мощности в сеть для подтверждения транзакций. За это они получают вознаграждение по протоколу в виде новоиспечённого XTZ (16 XTZ/блок).

    Чтобы считаться бейкером, у участника должно быть как минимум 10 000 XTZ (1 ролл). Чем больше у него роллов, тем больше шансов получить права на выпекание следующего блока. Если в какой-то момент будет активировано 10 роллов, и бейкеру принадлежит 2/10 этих роллов, у него есть 20% шанс на получение права создания следующего блока. Это значит, что если у бейкера есть 10 000 XTZ или 19 999 XTZ, ему предоставлены одинаковые права на бейкинг в системе.

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

    Priority1 = Roll 6
    Priority2 = Roll 9
    Priority3 = Roll 4
    Priority4 = Roll 3
    .
    .
    .
    Priority10 = Roll 7

    Таким образом, человек, которому принадлежит Ролл 6 (Roll 6), будет первым в приоритетной очереди на предложение блока. Если они не создают и не транслируют блок в течение 1 минуты, лицо, которому принадлежит Ролл 9 (Roll 9), может сменить владельца Ролла 6. Чем больше у вас роллов, тем больше шансов получить высокий приоритет.

    Чтобы иметь возможность выпекать, Вам необходимо будет внести залог (Ваш Proof of Stake) в размере 512 XTZ за созданный блок. Этот депозит будет заблокирован на 5 циклов (~ 14 дней). Депозит может быть сокращен, если бейкер выпекает дважды («Проблема Ничего на кону»).

  2. Делегирование

    Если у кого-то нет в распоряжении 10 000 XTZ или нет желания настраивать вычислительную инфраструктуру для выпечки блоков, он может делегировать свои коины бейкеру. Делегирование позволяет держателям коинов "одалживать" свои коины бейкеру. Так, у бейкера появляется больше шансов быть выбранным, и он, в свою очередь, делится дополнительным доходом с держателем коинов. Важно отметить, что этот процесс фактически не передает право собственности на коины. Бейкеры не могут потратить делегированный им XTZ, и сбежать с чужими деньгами.

    Появились группы, предлагающие конкурентные тарифы на свои услуги бейкинга; большинство из них взимают ~ 10-20% от вознаграждений, которые люди получают путем делегирования им. Полный список общедоступных услуг по бейкингу можно найти здесь.

  3. Правило выбора вилки

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

    Когда бейкер одобряет блок, который впоследствии становится каноническим, он получает некоторую награду XTZ. Следовательно, бейкеры заинтересованы в том, чтобы одобрить блок, который, как они полагают, будет также одобрен другими бейкерами; эти блоки также известны как высокоприоритетные блоки. Равно как и выпечка, одобрение блоков требует, чтобы бейкеры ставили 64 XTZ за одобрение. Это предотвращает проблему «Ничего на кону».

Резюмируя: Протокол PoS Tezos использует алгоритм PoS, основанный на цепях, в котором одобрения используются для расстановки цепей по приоритетности и определения, какая из них является каноническим. Бейкеры (люди, владеющие 10 000 XTZ) несут ответственность за создание и одобрение блоков. Они должны делать ставку на часть своего собственного капитала, чтобы стимулировать (мотивировать) честное поведение.

Что такое Проблема «Ничего на кону» и как её решает Tezos?

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

Чтобы решить эту проблему, протокол Tezos предлагает некоторые строгие условия. Бейкеры, которые выпекают или поддерживают несколько блоков одинаковой высоты (голосуют на нескольких форках), теряют свои гарантийные депозиты. Если кто-то уличает другого бейкера в «двойном бейкинге», он может включить обвинение, содержащее доказательства в будущий блок. Это приведет к тому, что «двойной бейкер» лишится своего страхового депозита и будущих вознаграждений вплоть до этой точки цикла. Половина будет сожжена, в то время как другая половина перейдет к обвинителю в виде награды за блок. Это стимулирует бейкеров следить за другими бейкерами и обвинять их в случаях двойного бейкинга. Из-за этого бейкеры лишены возможности выпекать и подтверждать блоки на нескольких вилках. Риск потери собственных коинов сводит к минимуму проблему «Ничего на кону».

Есть ли у транзакций Tezos законченность?

Нет. В текущем протоколе Tezos 30 подтверждений (~ 30 минут) можно считать приемлемым практическим правилом для того, чтобы транзакция считалась окончательной. Поскольку Tezos использует алгоритм консенсуса PoS на основе цепи, возможность реорганизации цепи остается после транзакции. Пользователям необходимо подождать несколько подтверждений, прежде чем они смогут быть абсолютно уверены в том, что транзакция не будет отложена.

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

Насколько масштабируемым является Tezos?

В настоящее время Tezos выполняет около 30-40 транзакций в секунду.

Какова дорожная карта (план действий) для улучшения масштабируемости Tezos?

Как таковой, "Дорожной карты" нет. Во встроенной системе управления Tezos бейкеры могут голосовать за предложения по обновлению протокола. Благодаря этому механизму, протокол консенсуса может быть заменен на голосование в цепи, без надобности хардфорка. Новые алгоритмы консенсуса, такие как Algorand или Tendermint, которые имеют окончательность и более высокую пропускную способность, будут использоваться на Tezos.

Предпринимаются многочисленные усилия для изучения новых алгоритмов консенсуса Tezos с быстрой законченностью. One effort включает использование Tendermint для принятия блока, что повлечет за собой Византийское Соглашение (и, следовательно, мгновенную законченность) для каждого блока. Еще один проект, Igloo, исследует Avalanche для Tezos.

Кроме того, в Корнеллском университете ведутся исследования в области шардинга Tezos, финансируемые за счет гранта Tezos Foundation.

Ещё одна идея, исследованная Артуром Брейтманом, содержится в блог-посте под названием «Scaling Tezos», в котором рассматривается идея поблочного использования рекурсивных zk-SNARK для существенного повышения масштабируемости.

Материалы разработаны TQ Tezos переведены на русский язык Tezos Ukraine