Алгоритм консенсуса LPoS

Доказательство доли владения с правом аренды. В PoS (Proof of Stake) системах создание блока не требует энергозатратных вычислений, задача майнера — создание цифровой подписи блока.

Proof of Stake

Механизм распределения прав создания блоков основан на количестве токенов на счету пользователя. Чем больше у пользователя токенов, тем выше вероятность, что он сможет создать блок.

В консенсусе Proof of Stake (доказательство доли) право выпуска блока определяется псевдослучайным образом, поскольку зная предыдущего майнера и балансы всех пользователей в системе можно вычислить следующего майнера. Для этого вычислите генерирующую подпись следующего блока, как sha256 hash от генерирующей подписи этого блока и публичного ключа аккаунта. Первые 8 байт полученного хеша будут указателем на следующего майнера. Время генерации блока для аккаунта i, рассчитывается как:

\[T_i = T_{min} + C_1 \log (1 - C_2 \frac{\log \frac{X_n}{X_{max}}}{b_i A_n})\]

где:

  • bi - это стейк (доля баланса участника от общего баланса системы);

  • An - baseTarget, адаптивный коэффициент, регулирующий среднее время выпуска блока;

  • Xn - генерирующая подпись;

  • Tmin - 5 секунд, константа, определяющая минимальный временной интервал между блоками;

  • C1 - константа, равная 70 и корректирующая форму распределения интервала между блоками;

  • C2 - константа, равная 5E17 и предназначенная для регулировки значения baseTarget (сложности).

Из приведенной формулы легко убедиться, что вероятность выбора участника зависит от доли активов участника в системе: больше доля — выше шанс. Минимальное количество токенов на балансе для майнинга — 50 000 WEST. BaseTarget — сложность вычислений, параметр, удерживающий время генерации блоков в заданном диапазоне. BaseTarget в свою очередь вычисляется как:

\[(S > R_{max} \rightarrow T_b = T_{p} + max(1, \frac{T_p}{100})) \wedge (S < R_{min} \land \land T_{b} > 1 \rightarrow T_b = T_p - max(1, \frac{T_p}{100}))\]

где

  • R max = 90 - максимальное уменьшение сложности, когда время генерации блока в сети превышает 40 секунд;

  • Rmin = 30 - минимальное увеличение сложности, когда время генерации блока в сети меньше 40 секунд;

  • S - среднее время генерации, как минимум для трех последних блоков;

  • Tp - предыдущее значение baseTarget;

  • Tb - вычисленное значение baseTarget.

Глубокое описание технических особенностей и доработок классического PoS алгоритма вы можете найти в этой статье.

Преимущества перед PoW

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

Leased Proof of Stake

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