Перейти к содержанию

Достоверный механизм выбора победителя в крипто лотереях


Garrett

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

В ходе недавней дискуссии в этой теме https://forum.bits.media/index.php?/topic/9194-kripto-lotereia/

У меня возникло понимание необходимости сделать механизм выбора победителя, абсолютно достоверный и прозрачный для всех участников лотереи.  Как обеспечить выбор победителя крипто-лотереи без сомнения честно, публично, проверяемо, т.е. математически?

 

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

 

Итак, суть.

 

Участники лотереи отправляют на некий адрес взносы по X EMC (или BTC, LTC механизм работает для любой крипты)
По условиям, желающие могут сделать несколько взносов на этот адрес, но в фиксированной сумме. Таким образом покупая один или несколько "билетов".
Взносы должны быть отправлены до наступления особого момента - появления в сети блока N (скорость появления блоков известна и можно приблизительно задать время лотереи)
С этого момента начинается вычисление победителя:

 

Мы берем TXID (Идентификатор транзакций, как его найти - тут) в том порядке в котором они поступали на адрес и составляем таблицу:

 

355e8aeb17c089ede2a5f0a60b44ef87ce9d19b91a501c74eeb712ef07af541d
c6718b5d71efe9f78bf75cad00d888b455eb7ecbadf13ef814954363e57aa100
b52006948fdb8cc602a094a4dac1e0e34fe4d3210daebc8f8767f065c62efa6d
....
ce64911d80279310b85c8c1fc28e3862a4334703d8354824e3287d934317c63f

 

Затем мы производим операцию XOR c каждым TX ID по порядку. Первая со второй, результат с третьей, результат с четвертой... и так до конца.
Затем полученное 256 битное число мы объединяем (XOR) с хешем того самого блока N.
Полученное число делится на восемь 64-битных целых чисел, которые объединяются все тем-же методом XOR.
Полученное число делится на число "билетов" с вычислением остатка. Полученное число является номером той TX ID которая победила. Разумеется, адрес победителя нам тоже автоматически известен.

Объявляется победитель, на адрес с которого был отправлен взнос переводится сумма приза.

Можно сделать несколько победителей (хоть 3, хоть 30) для этого из списка TX-ID нужно выдергивать последний выигрышный номер транзакции и заново прогонять алгоритм.

 

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

 

Для проверки предлагаю прогнать пару тестовых лотерей:

 

На блокчейне EmerCoin и Bitcoin.

 

Для EmerCoin кошелек для взноса EXUr7Qjgsh6LYeWkBm1fFZn5WYjD323RCk

Стоимость одного билета 100 EMC (Меньшая сумма не принимается за взнос. Большая принимается, но билет все же один)

Можно покупать сколько угодно билетов, перечисляя на вышеуказанный адрес по 100 EMC в течении времени пока не появится в сети:

Финишный Блок N = 57,374 (~1,5 неделя от 1 сентября 2014 )

Сервис для онлайн просмотра блокчейна - http://darkgamex.ch:2752/chain/Emercoin

 

 

Аналогичные условия для BitCoin лотереи:

 

Кошелек для взноса 1B26Gk6bKm7WvK1AJokhrWEuhKi4YUao2u

Стоимость одного билета - 0.01 BTC

Финишный Блок N = 320487 (~2 недели от 1 сентября 2014)

Сервис для онлайн просмотра блокчейна - https://blockchain.info

 

По достижению финишных блоков, производим расчет и определяем победителей!

 

Выигрыш будет разделен следующим образом 70% - 1 победитель

20% - второй победитель 7% - третий победитель 3% - на проект emerfor.org, комиссии и организационные издержки.

 

Давайте начнем! Можно участвовать в какой-то одной, можно в обеих сразу.

После совершения перевода пишите TX ID в комментариях к этому посту.

 

Если не наберется больше 10 участников в одной из лотерей - взносы возвращаются участникам в полном объеме.

 

Ну и вопросы, разумеется.

 

PS: Я тоже играю и буду делать несколько ставок   нет, делаю по 1 ставке в каждую, ниже объясню почему.

 

EmerCoin lotary:

 

1) Garrett - 20623515ff4b96c611af1437edad15f19f3d4beaca8b2ea273777babf0cd6e12

2) Nanna - 1f1ed9488eb799be17d4ee96998f8b9d51a274141300195c452910af518e2ae2

 

BitCoin lotary:

 

1) Garrett - 53b39efc779be4bff3881c475cbb2d15d84bf5c4f3485e18ab3ccbf10508c349

Изменено пользователем Garrett
Ссылка на комментарий
Поделиться на другие сайты

 

 

Затем мы производим операцию XOR c каждым TX ID по порядку. Первая со второй, результат с третьей, результат с четвертой... и так до конца. Затем полученное 256 битное число мы объединяем (XOR) с хешем того самого блока N. Полученное число делится на восемь 64-битных целых чисел, которые объединяются все тем-же методом XOR. Полученное число делится на число "билетов" с вычислением остатка. Полученное число является номером той TX ID которая победила. Разумеется, адрес победителя нам тоже автоматически известен.

А почему нельзя хеш блока тупо  разделить на число билетов?

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

А почему нельзя хеш блока тупо  разделить на число билетов?

 

Можно и так.

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

звучит как кручу-верчу, запутать хочу)

 

тем более гаррет,  емц это твоя монета - как захочешь, так и накрутишь)

 

по ссылке у меня в подписи ты усираешься - против лотерей, а тут воришка ты себя проявил))) 

 

Говори сразу - ты не понял алгоритма. Будем разбирать по пунктам.

 

Я ссылку на твою лотерею в самом начале поста привел, если что. Так что у читателей есть выбор в какой участвовать.

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

 

 

Можно и так.

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

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

Во-первых, я очень извиняюсь, но что такое TX ID и где (как) его посмотреть? (в гугле не банили, но ооочень лениво искать)

 

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

На начальном этапе, в рамках форума, можно этот изъян не учитывать, апеллируя к репутации организатора и небольшому числу участников, но в идеале нужна система разбора конфликтных ситуаций, строго (т.е. математически) подтверждающая порядковый номер билета. Например, при покупке нового билета участнику выдаётся подпись к сообщению (номер билета || TXID). Или же можно под подпись включать всю цепочку предыдущих TXID-ов.

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

@Nanna, TX ID это идентификатор транзакции. Найти ее очень просто. Открываем клиент EmerCoin, идем на вкладку "Транзакции",  выбираем нужную транзакцию, кликаем правой мышью и открываем менюшку. В ней в самом низу выбираем, "Показать детали...". Открывается окно, в нем типа такого:

 

Статус: 4/не подтверждено, разослано через 4 узлов
Дата: 01.09.2014 10:27
Дебет: -100.00 EMC
Кредит: 100.00 EMC
Комиссия: -0.01 EMC
Общая сумма: -0.01 EMC
Идентификатор транзакции: 20623515ff4b96c611af1437edad15f19f3d4beaca8b2ea273777babf0cd6e12

 

Последнее это то, что нам надо.
 

Во-вторых, в схеме есть один сомнительный момент: порядковые номера билетов не подтверждаются математически. То есть, гипотетически, у организатора есть возможность слегка "переставить" участников пост-фактум (и кто вспомнит, какая там была таблица?).

 

На начальном этапе, в рамках форума, можно этот изъян не учитывать, апеллируя к репутации организатора и небольшому числу участников,

 

Нет, тут все в порядке. Каждая транзакция имеет поле "confirmations" (число подтверждений) - т.е. какое количество блоков назад она получена. Единственный момент, когда несколько транзакций идут в одном блоке, но на это есть поле "time", оно позволяет оценить, какая была раньше.

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

Изменено пользователем Garrett
Ссылка на комментарий
Поделиться на другие сайты

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

 

Так проще считать, это точно. Но вот как ты оцениваешь предсказуемость? Почему, если мы на искомый хеш наксорим 100 чисел перед тем как разделить, результат будет более предсказуем? Чем больше случайных переменных участвовало, тем "более случаен" результат, разве не так?

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

Что ж, давайте сыграем :)

 

1f1ed9488eb799be17d4ee96998f8b9d51a274141300195c452910af518e2ae2

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

 

PS: Я тоже играю и буду делать несколько ставок   нет, делаю по 1 ставке в каждую, ниже объясню почему.

 

Объясняю.

 

Если энтузиазм участников будет мал, например 2-3 человека сделают ставки, то я могу, например, ближе к концу сделать 7 ставок. И закрыть минимальное число билетов 10.  Тогда с вероятностью 7 из 10 я выиграю 1 приз, и вероятностью 6 из 9 второй. Это не является мошенничеством, потому что все ставки рискуют, но специально уменьшать шансы первопроходцев я не хочу.

 

Отсюда может вылиться следующее явление: игроки будут стараться заполучить больше преимущества выкупая все больше билетов, увеличивая свои шансы, и уменьшая шансы противников. Например кто-то ставит сразу 15 билетов в надежде легкой победы, а другой 50 и так далее. Похоже это будет действительно азартная игра.

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

путанные правила нужны только чтобы запутать людей

 

@temrus63, Ничего сложного в них нет, вон, даже девушка Nanna разобралась, а она в крипту на года на два позже тебя пришла :)

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

Моя ставка:

 

20623515ff4b96c611af1437edad15f19f3d4beaca8b2ea273777babf0cd6e12  EMC

53b39efc779be4bff3881c475cbb2d15d84bf5c4f3485e18ab3ccbf10508c349  BTC

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

Оказывается, в списке консольных команд Биткоина (последней версии включительно) нет таких, которые бы позволяли увидеть статистику чужого адреса! Т.е. я могу вывести список транзакций командой listtransactions [account] [count=10] [from=0] но только своих.

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

Мы решили добавить консольную команду выборки списка транзакций, совершенных на произвольный EMC-адрес в интервале блоков.

gettxlistfor [start Block] [finish Block] <Emercoin adress>  с ее помощью любой пользователь EmerCoin сможет проверить порядок поступления транзакций на адрес и убедиться, что он одинаков для всех.

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

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

Команда  gettxlistfor <from block> <to block> <address> [type=0] [verbose=0] доступна в релизе 0.2.4

Если вы введете в консоли отладке (либо в терминале)

 

gettxlistfor 50000 55943 EXUr7Qjgsh6LYeWkBm1fFZn5WYjD323RCk 1 1

 

Вы получите список всех транзакций на адрес нашей лотереи.

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

@Nanna, похоже, затея никому не интересна, ну да и ладно эксперимент есть эксперимент.

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

Осталось ~500 блоков до конца, но так-как никто не присоединился. Возвращаю @Nanna, ее взнос +150 EMC сверху - за смелость :) -  673d389e50a08ff227c8e30130c8c4b5291ad3094af58f63679fcef27027efbb

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Similar Topics

    • Механизм Proof of History: все особенности синхронизации на примере Solana

      Алгоритм консенсуса – ключевая для блокчейна категория. Именно она описывает устройство конкретной децентрализованной сети. Один из вариантов такого устройства, механизм Proof of History (PoH), используется в блокчейне Solana. Начнем с определения. В белой книге Solana сказано, что Proof of History – доказательство проверки порядка и течения времени между событиями. Строго говоря, PoH – это не алгоритм консенсуса, а механизм, позволяющий за счет нового способа фиксации периодичности событий

      в Новости криптовалют

    • Юрист Джон Дитон раскритиковал WorldCoin за отказ раскрыть механизм распределения WLD

      Американский юрист, специализирующийся на защите криптовалютных компаний, раскритиковал сооснователя Worldcoin за отказ рассказать о токеномике популярного криптопроекта. Джон Дитон (John Deaton) прокомментировал интервью, в котором ведущий попросил создателей Worldcoin Алекса Бланию (Alex Blania) и Сэма Альтмана (Sam Altman) подробнее рассказать о распределении токенов WLD. Однако Блания отказался ответить на этот вопрос, сославшись на регуляторную неопределенность в США.   Джон Дито

      в Новости криптовалют

    • Bitget обновила механизм сжигания BGB и проводит листинг токена на Bitfinex

      В обновленной Белой книге BGB представлены новые функции токена и механизм сжигания. Bitget также проводит листинг BGB на Bitfinex для повышения ликвидности и доступности токена. Одна из крупнейших бирж по торговле криптодеривативами и копитрейдингу Bitget выпустила обновленную версию Белой книги для своего токена BGB. В новом документе излагаются преимущества, которые BGB предоставляет в качестве полезного актива в рамках платформы Bitget, а также инструменты, на которые могут рассчитывать

      в Новости криптовалют

    • В криптокошельке MetaMask появится механизм отслеживания стоимости NFT

      Компания ConsenSys сообщила о выборе NFTBank для предоставления информации о ценах для более чем 5 000 коллекций NFT, которыми владеют пользователи криптовалютного кошелька MetaMask. Признавая важность информации о ценах на невзаимозаменяемые токены, MetaMask запустил портфолио NFT, которое информирует пользователей об их активах и их текущей стоимости.    В основу решения NFTBank вошла статистическая система, основанная на машинном обучении и способная генерировать прогнозы цен для о

      в Новости криптовалют

    • Бенджамин Коуэн: «Биткоин приближается к точке выбора тренда»

      Криптовалютный аналитик считает, что нынешнее поведение биткоина демонстрирует динамику, наблюдавшуюся накануне роста в 2013 году и падения в 2018-м. Бенджамин Коуэн (Benjamin Cowen) в подкасте на YouTube предупредил инвесторов, что биткоин приближается «к точке выбора направления тренда». Коуэн уточнил, что подобное уже происходило:   «В 2013 году биткоин установил минимум, затем второй, третий и в конце концов начал расти. А затем в 2018 году, когда были более высокие минимумы, мы

      в Новости криптовалют

×
×
  • Создать...