Перейти к публикации
fxseminar

Ка могла бы быть организована лотерея в блокчейне?

Рекомендованные сообщения

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

 

Вопрос: как алгоритмически могла бы быть организована эта лотерея, чтобы минимизировать возможность этого майнера манипулировать её результатом? Можно ли полностью исключить эту возможность (манипуляции)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В названии темы "каК", конечно, извините!

 

Что касается задачи, то пока я вижу такое решение: обязать майнера использовать в качестве случайного значения (для розыгрыша лотереи) тот хэш, которым он "закрывает" этот блог. Поскольку КАК ПРАВИЛО (и в нынешнем состоянии таких блокчейнов, как Биткойн) от майнера требуется весьма много усилий, чтобы найти этот хэш, то можно надеяться, что он не будет отбрасывать это значение (и начинать искать другое) только потому, что ему не понравился исход лотереи.

 

Однако же видно что это решение не полностью исключает возможность манипуляции ... можно ли предложить  какое-то улучшение этого решения?

Изменено пользователем fxseminar

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вообще довольно находчивое решение заюзать nonce как способ однозначно выбрать победителя. И предсказать сложно, и проверить легко.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

Вопрос: как алгоритмически могла бы быть организована эта лотерея, чтобы минимизировать возможность этого майнера манипулировать её результатом? Можно ли полностью исключить эту возможность (манипуляции)?

Никак. Пул сам выбирает каким образом и какие транзакции добавлять.

 

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

Например, заявляете что победит транзакция с наименьшем значением номера транзакции txid, или с наибольшим, или третьем в порядке возрастания.   Это сильно сокращает возможность манипуляции.

 

Можно пойти дальше, txid победителя будет наименьшее значение, но больше меркл рута блока.  Тут уж точно подстроить практически нереально.

 

То есть берем все транзакции, txid которых больше чем меркл рут  и выбираем наименьшую из них.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я думал он не блок выбирает, а кого-то из блока.

 

с другой стороны майнер может майнить вообще только свои собственные транзакции именно ради лоттереи :D тут уж...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кого-то из блока, но выбрать кого-то из блока можно только в подтвержденном блоке. 

Потому как пока блока нет - майнинговый пул может делать все что угодно, чтобы увеличить вероятность нечестного выигрыша, зная заранее критерии лотереи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну допустим танцуем от nonce, который заранее не известен. тогда всё выглядит честно.

единственно, мйнер может обойти это увеличив число своих транзакций в блоке, как максимум - составить блок полностью из своих транзакций.

 

как вообще сегодня крипто-лоттереи работают? на честном слове?

Изменено пользователем igordata

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

майнер может майнить вообще только свои собственные транзакции именно ради лоттереи

 

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

 

Правда, можно модифицировать задачу, чтобы майнер, "закрывающий" блок N+1 разыгрывал эту лотерею между транзакциями, вошедшими в предыдущий блок N ...

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

 

txid победителя будет наименьшее значение, но больше меркл рута блока

 

-- правильно ли я предполагаю, что конкретно в Биткойне сейчас майнер тратит многократно больше вычислений на то, чтобы подобрать nonce, порождающий хэш блока (удовлетворяющий условию сложности), чем на то, чтобы построить дерево меркл из транзакций, помещаемых ИМ в блок? То есть поменять одну транзакцию и перестроить дерево ему намного легче, чем выкинуть найденный "сложный" хэш блока?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×