Представляем MVP проверяемых SHO DAO

DAO MAKER RU
DAO MAKER RU
Published in
5 min readSep 9, 2021

Мы c гордостью представляем вам MVP процесса проверки лотерей для будущих SHO. Недавно мы наняли новых членов команды, которые будут сосредоточены исключительно на повышении прозрачности, эффективности и справедливости дистрибуции наших SHO & Venture Yield.

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

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

Сегодня мы представляем вам первый шаг к нашей новой цели: полностью проверяемых лотерей. Хотя все выигрыши SHO всегда производились в блокчейне, только опытные специалисты по данным могли проверить справедливость нашей лотерейной системы. С нашей новой системой пользователи не только смогут легко проверить процесс лотереи сами, но даже смогут наблюдать за процессом выбора в режиме реального времени.

Как использовать MVP для проверки победителей SHO Chronicle:

Доступ к MVP и списку победителей SHO Chronicle

По ссылке выше вы найдете список всех кошельков, зарегистрированных в SHO Chronicle, с траншами, в которых они участвуют. Список зарегистрированных кошельков отсортирован по алфавиту.

Требуемое количество DAO для каждого транша показано на вкладке «Overview».

Столбец C представляет приоритетное преимущество кошельков, которое планируется реализовать на следующей неделе. Чтобы узнать больше о системе приоритетов и о том, как она работает, прочтите нашу последнюю статью здесь.

Наконец, в столбце D представлены выбранные победители. Начальный ввод представляет собой одноразовый номер (noncе) первого блока, сгенерированного при закрытии регистраций. В случае с Chronicle это произошло в 12:00 UTC (15:00 мск), номер блока 13184969 (с nonce 0xacd1aeecdd2b36ba).

В примере с Chronicle мы взяли последние 10 цифр одноразового номера (noncе) и использовали их как десятичное число в таблице. Пользователи могут сами попробовать это в Windows, перейдя в калькулятор — programmer → EC DD2B 36BA — hex(DEC) — 1017322878650

Когда пользователи нажимают «Выполнить» (“RUN”) с идентичным вводом начального числа, код будет выполнен, и будут выбраны те же кошельки, если исходный ввод не изменится.

Кодовая база:

function run_lottery() {

var sheet = SpreadsheetApp.getActiveSheet();

sheet.getRange(“D2:D”).clearContent();

var tranches = sheet.getRange(“B2:B”).getValues();

var cumulative_weighting = [];

for (var i = 0; i < tranches.length; i = i + 1) {

if (typeof tranches[i][0] == “number”) {

if (tranches[i][0] == 0) {

var weight = 1;

} else if (tranches[i][0] == 1) {

var weight = 4.5;

} else if (tranches[i][0] == 2) {

var weight = 9.5;

} else if (tranches[i][0] == 3) {

var weight = 24;

} else {

throw new Error(“incorrect tranche no”);

}

if (cumulative_weighting.length == 0) {

cumulative_weighting.push(weight);

} else {

cumulative_weighting.push(cumulative_weighting[cumulative_weighting.length — 1] + weight);

}

} else if (!(sheet.getRange(“A” + (i + 2)).isBlank())) {

throw new Error(“incorrect tranche no”);

}

}

var M = 2147483647;

var A = 16807;

var Z = (sheet.getRange(“G2”).getValues()[0][0] * Math.exp(1)) % 1;

Z = ((M * A * Z).toFixed(0) % M) / M;

var ticket_max = sheet.getRange(“F2”).getValues()[0][0];

var ticket = 0;

while (true) {

if (ticket >= ticket_max) {

break;

}

Z = ((M * A * Z).toFixed(0) % M) / M;

for (var j = 0; j < cumulative_weighting.length; j += 1) {

if ((Z * cumulative_weighting[cumulative_weighting.length — 1]) <= cumulative_weighting[j]) {

if (sheet.getRange(“D” + (j + 2)).isBlank()) {

sheet.getRange(“D” + (j + 2)).setNumberFormat(“@STRING@”).setValue(“=CHAR(10003)”)

ticket += 1;

}

break;

}}}}

Объяснение значения переменных веса:

Вес var представляет собой увеличенную вероятность выигрыша транша. Транш 0 (t0) представляет ранних участников и имеет вес 1. Транш 1 (t1) = 4,5, что означает, что у пользователей в 4,5 раза больше шансов на победу, чем у пользователей в t0. Важно отметить, что пользователи в t1 должны хранить в 4 раза больше DAO. Пользователи транша 2 (t2) должны иметь в 8 раз больше DAO, чем пользователи в t0, и имеют в 9,5 раз больше шансов на выигрыш и так далее.

Затем выбранные кошельки переносятся в блокчейн командой разработчиков DAO: https://etherscan.io/tx/0xcf125c31613186b75c70fbbfc3dad3d52de6e3f3041b7b3cf327a40f7004c81c.

Обратите внимание, что начиная со следующей недели мы удалим контракт пре-депозитов, и победители должны будут вручную отправить свои USDC. Как только новая система станет активной, все предоплаченные средства будут возвращены пользователям.

Обратите внимание, что это всего лишь минимально жизнеспособный продукт ( Minimal Viable Product — MVP), который мы улучшим и интегрируем в платформу DAO. На данный момент мы хотели убедиться, что логика верна.

Мы ценим Ваши отзывы. Если у вас есть какие-либо конкретные комментарии к базе кода, свяжитесь с @Pau97 в личном сообщении в нашем основном чате Telegram.

Что нового?

Наша новая система переменных гарантирует, что пользователи, которые хранят больше DAO, имеют немного нелинейный более высокий шанс на победу, чем пользователи более низких траншей. Новая система не только препятствует мультиаккаунтам на нашей платформе, но и создает стимулы для объединения токенов в один кошелек. Это само по себе увеличивает шансы на победу у пользователей, которые участвуют честно с течением времени, поскольку все мультиаккаунтеры закроют свои учетные записи и начнут использовать только 1 кошелек. В отношении мультиаккаунтеров еще многое предстоит сделать, однако мы считаем, что это хороший первый шаг.

Пользователи самого высокого транша получают самый высокий бонус. Некоторые могут посчитать это несправедливым, однако в действительности все холдеры DAO будут получать выгоду от системы, стимулирующей пользователей покупать больше DAO.

Наконец, как указывалось ранее, DAO Maker увеличил минимально требуемый стекинг до 2000 DAO для новых участников, представленный траншем 1 (t1). Все стейкеры со стейком менее 2000 DAO, которые отправляли токены DAO в стекинг до 1 сентября, не исключаются из участия в SHO, но им предоставляется собственный транш t0.

Что дальше?

Нашим следующим шагом по улучшению нашей лотерейной системы будет внедрение системы приоритетов. Хотя победители будут по-прежнему выбираться случайным образом, система приоритетов гарантирует, что у пользователей, которые никогда не выигрывали, будет больше шансов на победу. Всем пользователям будет предоставлена ​​новая переменная под названием Priority. Наша команда по математике и анализу данных в настоящее время работает над оптимальным решением для наших пользователей и холдеров DAO. Если вы заинтересованы в рассмотрении процесса, вы можете взглянуть на самую последнюю версию нашей имитационной модели. Обратите внимание, что эта модель может быть уже устаревшей к тому моменту, когда вы это читаете.

Улучшение нашего кода MVP и интеграция нашей системы проверки в DAO Pad. Мы создадим фиксированный протокол для выбора начального числа для SHO и даже покажем выбор кошельков в прямом эфире, чтобы наше сообщество могло смотреть в режиме реального времени.

--

--

DAO MAKER RU
DAO MAKER RU

Официальный русскоязычный канал DAO MAKER