Конкурсні ігри, що приймають одноліткові, без хазяїв? [зачинено]


15

Мені цікаво - чи були створені будь-які ігри, які є:

  • одноранговий, не маючи жодного однолітка як хоста
  • конкурентоспроможні (не кооперативні, гравці грають один проти одного)
  • очевидно справедливий (немає можливості будь-якого гравця обманювати)
  • Не дайте гравцеві більше інформації, ніж їм потрібно (наприклад, не розкривайте секрети інших гравців навіть запущеним програмам)

Прикладом такої гри може бути гра в покер, де кожен гравець та їхні ігри зможуть знати лише власну руку, але не руки інших гравців, не покладаючись на того, щоб хтось із них був господарем гри. Я знаю, що там є кілька ігор, які очевидно справедливі, але все, що я знаю, існує в конфігурації сервер-клієнт.


1
"одноранговий" і "немає можливості будь-якого гравця обманювати" - це неможливо.
Кікаймару

7
@Kikaimaru Ви неправі.
sam hocevar

@Kikaimaru Насправді у мене є якась концепція, як це могло б працювати, але я хотів би спершу поцікавитись, перш ніж можливо намагатися винаходити колесо (добре, в цьому випадку, можливо, літак).
ThePiachu

2
Я дуже сумніваюся, що існує метод, який би перешкоджав обману на рівні, який це робить сервер-клієнт. Наприклад, гравці можуть знати, що інші гравці обманюють і перестають грати - без необхідності будь-якого коду (або ви можете просто зупинити гру), але чи це "немає можливості обману"?
Кікаймару

@Kikaimaru Якщо протокол застосовує правильність, спроба обману є такою ж, як і зовсім не грати - якщо гравців більше ніж два, інші гравці можуть продовжувати грати, і спроба обману буде ігнорована, на відміну від недійсного пакета IP бути.
sam hocevar

Відповіді:


19

Я не знаю, чи створені такі ігри, але вони впевнені, що їх теоретизували. На цю тему опубліковано декілька робіт. Можливо, ви захочете дослідити розглянути схеми зобов’язань , які пропонують пояснення того, як дві сторони, що не погоджуються, можуть перевернути монету, перебуваючи на фізичному відстані (див. Також цю статтю 1981 року: Перегортання монети по телефону ).

Один дуже ретельний документ - це, наприклад, ігри з торговими картами Cheat-Proof Peer-to-Peer :

Ми пропонуємо непрофесійний протокол однорангових програм для впровадження онлайн-ігор на торгових картках. Ми розбиваємо дії, спільні для всіх TCG, і пояснюємо, як вони можуть бути виконані між двома гравцями без необхідності стороннього арбітра (для якого зазвичай потрібен неупереджений сервер). У кожній дії гравцеві або забороняється обманювати, або якщо вони читують, супротивник зможе довести, що зробив це . Ми закінчуємо, показуючи, наскільки ці методи безпечні та як вони можуть бути змішані для інших стилів TCG та інших ігор однолітків.

Також Cheat-Proof Playout для централізованих і однорангових ігор :

Ми пропонуємо протокол, який є . Зокрема, ми надаємо протокол доказування нульових знань, щоб гравці знаходились у визначеному діапазоні один від одного, інакше не мали поняття про їх відстань. Наші претензії на ефективність підкріплені аналізом з використанням моделювання на основі реальних слідів гри. гарантії проти обману, є надійно безпечним і живим , але за це страждає штраф. Потім ми розробляємо розширену версію цього протоколу, яка називається асинхронною синхронізацією, яка дозволяє уникнути покарання, без серверів, пропонує гарантії протидії обману, є надійною при наявності втрати пакету і забезпечує значне підвищення продуктивності зв'язку. Ця методика застосовна як до загальних ігрових особливостей, так і для кластеризації та методів на основі клітин для масово багатокористувацьких ігор


1
Також дивіться сторінку Mental Poker у Вікіпедії - en.wikipedia.org/wiki/Mental_poker . На форумі Bitcoin відбулася дискусія щодо потенційних програм цього bitcointalk.org/index.php?topic=1487.0
liamzebedee

Чудове посилання @liamzebedee. Ця стаття має в значній мірі точний алгоритм, який змушує покер працювати добре однолітком.
captncraig

4

Хоча це не гра в випадковість, я розробляю гру AIR, близьку до ваших потреб.

  1. Розроблено за допомогою мультимедійного протоколу RTMFP Flash. Жоден клієнт не вважається господарем.
  2. Конкурентна система, заснована на фізиці.
  3. Перевіряє введення противника та дискваліфікує гру на недійсних даних.
  4. Не передає певну фізичну інформацію з причин пропускної здатності / затримки (це також відключило певні методи обману).

Однак зверніть увагу ...

Я вважаю "відсутність можливості ... обману" помилковою заявою. Якщо ви не контролюєте всі аспекти (апаратне та програмне забезпечення), то обман можливий.

Хоча це не гра, я думаю, що мережа Bitcoin - це прекрасний приклад того, що ви шукаєте.

Редагувати

Я збираюся трохи розширити ваше головне питання.

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

По-друге, найкраща прикладна гра, яку я можу придумати, - це ранні ігри на Pokemon. Незважаючи на те, що внутрішня логістика мережі не могла бути одноранговою, вона дотримується того самого принципу.

Нарешті, мобільні платформи спеціально підходять для ігор однолітків. Я вважаю, що це поле дуже бракує, тому зараз я розробляю лінійку ігор однолітків.


Так, у мене може бути досвід роботи з Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu

1

Кілька фрагментів, які можуть допомогти, залежно від випадків використання:

Якщо вам потрібно одночасно отримувати дані від користувачів без можливості передчасного використання інформації на їх користь, ви можете використовувати схему зобов'язань. По суті це:

  1. Обидва гравці пропонують хеш дій, які вони хочуть зробити.
  2. Після того, як обидва забезпечили свою прихильність, обидва можуть надати свої дії в прямому тексті.
  3. Простий текст можна порівняти з хешами, щоб переконатися, що ніхто не змінив їх відповідь, дізнавшись дії іншої людини.

Це може використовуватися для різних речей, включаючи спільне випадкове число (обидва надають ціле число за допомогою зобов'язань та об'єднують їх після спільного використання для отримання спільного значення.)

Однак цього недостатньо для такої гри, як покер, оскільки для неї потрібні картки відомі лише одній людині, продовжуючи мати можливість брати участь із загальної колоди. Вікіпедія є досить хороший алгоритм спільного переміщення за допомогою схеми, де обидва гравці шифрують кожну карту окремо кілька разів. Це створює ситуацію, коли для розшифрування будь-якої картки потрібні 2 ключі, а обидва гравці мають 1. У статті вказано на занепокоєння щодо продуктивності, але я не вважаю, що AES або подібні не є надмірно дорогими за шкалою, необхідною для покеру для двох гравців.

Якби я розробляв алгоритм, я б змусив гравців обчислити випадкову величину на початку гри, щоб використовувати її як основу для всіх решти операцій і поділити хеш цього значення. Таким чином вони можуть поділитися цією цінністю після гри, і ви можете переконатися, що вони дотримувались протоколу правильно, без шнаніганів.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.