Как устроена платформа

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

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

Proof of Stake

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

В консенсусе PoS право выпуска блока определяется псевдослучайным образом: следующий майнер вычисляется на основе данных предыдущего майнера и балансов всех пользователей сети. Это возможно, благодаря детерминированному вычислению генерирующей подписи блока, которая получается путем хэширования генерирующей подписи текущего блока и публичного ключа аккаунта. Первые 8 байт полученного хеша преобразуются в число Xn , которое указывает на следующего майнера. Время генерации блока для аккаунта 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 - константа, равная и предназначенная для регулировки значения BaseTarget (5E17).

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

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 = максимальное уменьшение сложности, когда время генерации блока в сети превышает 40 секунд (90);

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

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

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

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

Подробное описание технических особенностей и доработок классического алгоритма PoS для блокчейн-платформы Waves Enterprise приведено в этой статье.

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

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

Leased Proof of Stake

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