Имя: Пароль:
IT
 
Нужно придумать условия для онлайн подбрасывания монетки
,
0 Доктор Кто
 
14.09.18
20:17
Пример: Для чувака из разных городов решают спор подбрасыванием монетки. Но у них медленный или дорогой интернет, по скайпу не могут подбросить монетку, или не хотят.
Нужно придумать такой онлайн сервис, чтобы можно было его использовать для бросания монетки. Например один из чуваков зашел на сайт, нажал "бросить монетку", получил результат, и отправил этот результат корешу в доказательство.
Важно, чтобы было невозможно смухлевать, то есть бросить монетку несколько раз с разных IP или компов и отправить только выгодный для себя вариант.
Как это можно сделать? Или может уже существует?
1 Cyberhawk
 
14.09.18
20:23
Надо чтоб это происходило в онлайне для обеих сторон, а не для одной
2 Доктор Кто
 
14.09.18
20:25
(1) Онлайн конечно.
Есть вариант как это можно сделать не в реальном времени?
Например один бросил монетку сегодня, а второй проверил результат завтра.
3 Базис
 
naïve
14.09.18
20:26
Счётчик бросков каждого и лог.
Двухуровневая блокировка.
4 Злопчинский
 
14.09.18
20:31
а как же блокчейн
5 Asmody
 
14.09.18
20:31
На аккувевере оба подписываются на почасовой прогноз в каком-нибудь Кейптауне. И берут показания на 12 дня. Если градус температуры нечетный - "орел", иначе - "решка"
6 Доктор Кто
 
14.09.18
20:32
(3) А поподробнее?
(4) не окупится.
7 Denis_CFO
 
14.09.18
20:34
(0) Любой тотализатор, где динамика большая.
8 Доктор Кто
 
14.09.18
20:34
(5) Придется большой срок выбирать. Прогноз на ближайшее время можно с какой-то вероятностью предсказать.
9 Доктор Кто
 
14.09.18
20:35
(7) Желательно самим решать когда бросить монетку, а не ждать чего-то.
10 Доктор Кто
 
14.09.18
20:37
Я заранее придумал, но пока не скажу. Интересно кто еще что-то придумает
11 Denis_CFO
 
14.09.18
20:38
(10) а чем (4) не устраивает?
12 Доктор Кто
 
14.09.18
20:40
(11) Устраивает. Интересуют более дешевые варианты
13 Denis_CFO
 
14.09.18
20:47
(12) а что там дорого? Сервер на не заинтересованной стороне и (3)
14 Garykom
 
гуру
14.09.18
21:22
1-й "выбирает" (гуид на сайте генерит) монетку, 2-й ее "бросает" (по заданному гуид формирует случайное число), результат с гуидом сохраняются на сайте.

Как гуид от одного к другому передавать придумай сам, простейше через пинкод уникальный который первый сказал второму.
По пинкоду можно получить гуид+результат с момента выдачи до какого то срока (неделю или более).
15 Garykom
 
гуру
14.09.18
21:24
Еще лучше камень-ножницы-бумага реализовать, более интересно будет.
16 RomanYS
 
14.09.18
21:26
(9) Ну возьми котировки чего-нибудь, что торгуется круглосуточно. Последний знак - непредсказуем
17 Доктор Кто
 
14.09.18
22:16
(14) Да, с сохранением данных на сервере можно придумать очень много вариантов. С регистрацией пользователей, бросков монеты, и прочего.

А можно ли сделать без сохранения чего-либо на стороне сервера?
18 Доктор Кто
 
14.09.18
22:17
(15) Хорошая идея
19 Доктор Кто
 
14.09.18
22:18
(16) Было уже подобное два раза. Но хочу свой собственный сервис. Чтобы не зависел от чужих
20 RomanYS
 
14.09.18
22:28
(17) Есть ассиметричное шифрование, даже банального хеша достаточно. Загадали числа, обменялись хешами, обменялись числами, сложили - получили результат, проверили хеши.
21 Sapiens_bru
 
14.09.18
22:37
(0) Относительно просто.
1) Просим пользователя номер 1 зарегистрироватся в сервисе. Например указать свой е-мейл.
2) Юзер 1 жмет кнопку "бросить монетку" и получает на свой емейл ссылку с описанием "Попросите друга перейти по ссылке и нажать кнопку орел или кнопку решка"
3) Юзер 2 переходит по ссылке, жмёт вариант. В этот момент происходит вычисление вероятности и результат одновременно отражается на экране юзер2 и отправляется в почту юзер1

Хакать систему бессмысленно. Вероятность вычисляется случайно и рассылается двум юзерам одновременно. Второй видит свою победу или поражение сразу, первый - когда проверит почту.
22 Доктор Кто
 
14.09.18
22:40
(20) Да, подходит
23 Доктор Кто
 
14.09.18
22:44
(21) Да, можно. Но это хранение данных на сервере.
Можно упростить так:
Пользователь 1 дает свой имейл пользователю 2.
Пользователь 2 вводит его на сайте и получает результат сразу, а Пользователь 1 получает результат по имейлу.
24 Доктор Кто
 
14.09.18
22:46
+(23) Но это тоже вариант хранение данных на сервере, в данном случае на почтовом.
25 RomanYS
 
14.09.18
23:12
(21) (23) А если сервис выдаст не случайное число, а заказанный одним из участников результат. Типа джентльменам принято верить на слово?
26 Доктор Кто
 
14.09.18
23:17
(25) Типа того. А если числа загадывать, то очень большие? Иначе перебором можно узнать какое число загадал противник.
27 RomanYS
 
14.09.18
23:26
(26)
>> Типа того.  
так фигня же полная
>>А если числа загадывать, то очень большие?
что мешает к загаданному биту (0 или 1) добавить килобайт мусора. Перебор 2^(8*1024) вариантов задача абсолютно нереальная, а передача килобайта - абсолютно банальная
28 Доктор Кто
 
14.09.18
23:41
(27) Считаем что сервис независимый и ему можно доверять.
29 exwill
 
15.09.18
10:37
(0) Ответ специалиста по блокчейну.
Участник А "загадывает число", т.е. генерит произвольную последовательность из 64 байт (величина 64 не принципиальна, можно больше, можно меньше).
Участник А получает хэш этой последовательности, например по алгоритму SHA256.
Хэш отсылается участнику Б.
Участник Б пишет в ответ: "я добавляю к твоему загаданному числу 0" или "я добавляю к твоему загаданному числу 1"
Участник А отсылает участнику Б загаданную последовательность.

Монета подброшена.

У каждого из участников на руках результат (начальная последовательность плюс 0 или 1).
Каждый из участников может быть уверен в том, что этот результат был непредсказуем для обеих сторон.
30 exwill
 
15.09.18
10:38
+(29) Все это достаточно просто реализуется средствами 1С.
31 Cyberhawk
 
15.09.18
10:39
(29) Давай попроще и на конкретном примере
32 exwill
 
15.09.18
10:41
(31) Не понимаю - что здесь можно упростить.
Я описал - проще некуда. Какой момент тебе непонятен?
33 exwill
 
15.09.18
10:48
(28) В данном случае сервис делать бессмысленно. Два участника обойдутся без сервиса. Можно, разве что, сделать приложение, которое будет им помогать генерить произвольные последовательности и проверять хэши.
34 bse
 
15.09.18
10:48
Random.org
35 Cyberhawk
 
15.09.18
10:49
(32) Обойдись без слов "хэш" и "последовательность". Чтоб любой дошкольник мог понять.
36 exwill
 
15.09.18
10:51
(35) Замени "хэш" на "функция", а "последовательность" на "набор". Теперь все понятно?
37 Cyberhawk
 
15.09.18
10:53
Нет. Ты что-то тупишь - орел и решка понятно и ребенку, и старику. Объясни так же, чтоб им это было понятно.
38 Доктор Кто
 
15.09.18
10:54
(29) Это RomanYS ты называешь специалистом по блокчейну? ))
39 exwill
 
15.09.18
10:55
(38) Странный вопрос. Специалистом я называю себя.
40 Доктор Кто
 
15.09.18
10:58
(39) Но привет пример ответа Romanа
41 exwill
 
15.09.18
10:59
(37) Умному ребенку и умному старику должно быть понятно словосочетание "результат вычисления функции". Объяснять что-то неумному я не возьмусь, времени жаль.
42 exwill
 
15.09.18
11:00
(40) Так бывает.
43 RomanYS
 
15.09.18
11:06
(35) При таком подходе тебе придётся просто согласиться с (28)   :)
44 exwill
 
15.09.18
11:14
(37) Впрочем, ты прав.
Начальный пост (29) следует дополнить словами:

Участник А не может схитрить и отправить участнику Б не загаданный им набор байтов, а другой, выгодный ему. У участника Б есть результат вычисления функции SHA256. И он может проверить присланный ему набор байтов, вычислив результат функции SHA256 и сравнив с полученным ранее.

Хотя я и уверен, что 90 процентов детей и стариков оскорбились бы, читая это дополнение, но ты защитил права оставшихся 10.
45 Cyberhawk
 
15.09.18
11:15
(43) Нет, просто нужно, чтоб любой пользователь сервиса мог без напрягов понять, как этот сервис работает, чтобы ему можно было безоговорочно доверять
46 RomanYS
 
15.09.18
11:20
(45) Как раз (20) и (29) не предполагает наличие сервиса, но предполагает понимание смысла хэш-функции.
47 Cyberhawk
 
15.09.18
11:21
(46) Это не для народа (широких масс), поэтому неинтересно
48 RomanYS
 
15.09.18
11:23
(47) так и не спрашивай тогда, здесь в среднем одинесники))
49 PuhUfa
 
15.09.18
11:26
(0) пусть в Discord'е это делают. Там есть боты реализующие бросание кубиков (возможно даже и с монеткой есть)
50 Cyberhawk
 
15.09.18
11:42
(48) Что не спрашивать?
51 Доктор Кто
 
15.09.18
12:43
(49) А в скайпе есть такие боты?