💯 Как на самом деле работают квадратичные начисления Голоса? 2х(50\50)
Многие слышали о том, что на Голосе квадратичные начисления выплат за посты. Однако подавляющее большинство не знает, как это работает точно.
Перейду сразу к делу. Разберем на упрощенных примерах.
Блокчейн Голоса работает с очень большими числами, которые именуются rshares, но для наглядности примера я буду работать с маленькими и называть их Силой Голоса.
Допустим, что имеется 4 участника. У каждого сила голоса 1, 2, 3, 4 соответственно. Квадратичное вознаграждение будет считаться по формуле
(1 + 2 + 3 + 4) * (1 + 2 + 3 + 4) = 10 * 10 = 100
.
Т.е. считается именно квадрат суммы, а не сумма квадратов(12 + 22 + 32 + 42) = 30
. Например, в вышеуказанном корректном примере, без участника с СГ 4 результат составит всего лишь 36 вместо 100, т.е. на 64% меньше. В некорректном примере участник с СГ 4 всегда будет давать 42=16 независимо от предыдущих начислений. Именно поэтому чем больше текущая выплата за пост, тем больше каждый участник дает начислений при одинаковой Силе Голоса. В этом вся мощь квадрата суммы выплат.
Давайте представим, что нам нужно разделить в правильной пропорции долю каждого, внесенную в общую выплату. Тогда будем считать по формуле:(Доля участника / Сумма всех долей) * 100%
Т.е. в нашем примере доля участника с СГ 4 равна
( 4 / (1 + 2 + 3 + 4)) * 100 = 40%
В связи с вышесказанным - интересная информация к размышлению. Если у одного участника сила Голоса 10, а у другого в десять раз больше - 100 и они проголосуют за нулевой пост, то первый даст 100, а второй 10000, т.е. не в 10, а в 100 раз больше.
Данный упрощенный пример показан для наглядности. В исходном коде блокчейна Голос на языке программирования с++, точная выплата вычисляется немного по - другому.
((net_rshares + 2000000000000) * (net_rshares + 2000000000000)) - (net_rshares - (2000000000000)2)
После чего все это безобразие перемножается на total_reward_fund_steem, а после чего делится на total_reward_shares2, которые можно посмотреть в API Голоса. В результате мы получаем точную выплату в Голосах. После чего Она делится между автором и кураторами и часть потом переводится в ГБГ по фиду, устанавливаемому делегатами. Однако точные формулы лежат за рамками данной статьи.
Константа 2000000000000 - на вид кажется большой, но на самом деле оказывает самое незначительное влияние на выплату и предназначена для того, чтобы поднять сумму самых маленьких выплат, т.к. обычная квадратичная функция слишком плавно стартует с нуля.
Если что - то не понятно, спрашивайте в комментариях. Следующие статьи на эту тематику будут о том, как вычисляется сумма rshares и кураторские выплаты.
Всем проголосовавшим за пост - 100% возврат GBG