Trò chơi cạnh tranh ngang hàng không có cơ hội cạnh tranh? [đóng cửa]


15

Tôi đang tự hỏi - có bất kỳ trò chơi nào đã được tạo ra đó là:

  • ngang hàng mà không có một đồng nghiệp nào được chỉ định làm máy chủ
  • cạnh tranh (không hợp tác, người chơi chơi với nhau)
  • có thể chứng minh công bằng (không có khả năng bất kỳ người chơi gian lận nào)
  • Không cung cấp cho bất kỳ người chơi nào nhiều thông tin hơn họ cần (ví dụ: không tiết lộ bí mật của người chơi khác ngay cả với các ứng dụng đang chạy)

Một ví dụ về một trò chơi như vậy sẽ là một trò chơi bài xì phé trong đó mỗi người chơi và trò chơi của họ chỉ có thể biết bàn tay của họ, nhưng không phải là tay của những người chơi khác mà không dựa vào bất kỳ ai trong số họ là chủ nhà của trò chơi. Tôi biết có một vài trò chơi ngoài kia có thể chứng minh được sự công bằng, nhưng tất cả những gì tôi biết đều tồn tại trong cấu hình máy chủ-máy khách.


1
"ngang hàng" và "không có khả năng bất kỳ người chơi gian lận nào" - Điều đó là không thể.
Kikaimaru

7
@Kikaimaru Bạn sai rồi.
sam hocevar

@Kikaimaru Thật ra, tôi có một số khái niệm về cách thức hoạt động của nó, nhưng trước tiên tôi muốn hỏi xung quanh trước khi có thể cố gắng phát minh lại bánh xe (được rồi, trong trường hợp này có thể là một chiếc máy bay).
ThePiachu

2
Tôi rất nghi ngờ rằng có một phương pháp sẽ ngăn chặn gian lận ở cấp độ mà máy chủ-máy khách thực hiện. Ví dụ, người chơi có thể biết rằng những người chơi khác đang gian lận và ngừng chơi - không cần bất kỳ mã nào (hoặc bạn chỉ có thể dừng trò chơi), nhưng đó có phải là "không có khả năng gian lận" không?
Kikaimaru

@Kikaimaru Nếu giao thức thực thi tính chính xác, việc cố gắng gian lận cũng giống như không chơi - nếu có nhiều hơn hai người chơi, những người chơi khác vẫn có thể tiếp tục chơi và nỗ lực gian lận sẽ không được bỏ qua không giống như gói IP không hợp lệ là.
sam hocevar

Câu trả lời:


19

Tôi không biết liệu những trò chơi như vậy đã được tạo ra chưa, nhưng chúng chắc chắn đã được lý thuyết hóa. Một số bài báo đã được xuất bản về chủ đề này. Bạn có thể muốn nghiên cứu các chương trình cam kết đưa ra lời giải thích về cách hai bên không đồng ý có thể lật một đồng xu trong khi ở xa về mặt vật lý (xem thêm bài viết năm 1981 này: Coin Flipping bằng điện thoại ).

Ví dụ, một bài viết rất kỹ lưỡng là trò chơi Thẻ giao dịch ngang hàng Cheat-Proof ngang hàng :

Chúng tôi đề xuất một giao thức ngang hàng gian lận để thực hiện các trò chơi thẻ giao dịch trực tuyến. Chúng tôi chia nhỏ các hành động chung cho tất cả các TCG và giải thích cách chúng có thể được thực thi giữa hai người chơi mà không cần trọng tài bên thứ ba (thường yêu cầu máy chủ không thiên vị). Trong mỗi hành động, người chơi hoặc được ngăn chặn gian lận hoặc nếu họ gian lận, đối thủ sẽ có thể chứng minh rằng họ đã làm như vậy . Chúng tôi kết luận bằng cách hiển thị cách các phương thức này an toàn và cách chúng có thể được trộn lẫn cho các kiểu TCG khác và các trò chơi ngang hàng khác.

Ngoài ra Play-Cheat-Proof Playout cho trò chơi tập trung và ngang hàng :

Chúng tôi đề xuất một giao thức có các đảm bảo chống gian lậnthể chứng minh được, có thể an toàn và sống được , nhưng phải chịu một hình phạt hiệu suất. Sau đó, chúng tôi phát triển một phiên bản mở rộng của giao thức này, được gọi là đồng bộ hóa không đồng bộ, để tránh bị phạt, không có máy chủ, cung cấp các đảm bảo chống gian lận có thể chứng minh được, mạnh mẽ khi mất gói và cung cấp hiệu suất truyền thông tăng lên đáng kể. Kỹ thuật này có thể áp dụng cho các tính năng trò chơi phổ biến cũng như các kỹ thuật phân cụm và dựa trên tế bào cho các trò chơi nhiều người chơi. Đặc biệt, chúng tôi cung cấp một giao thức bằng chứng không có kiến ​​thức để người chơi ở trong phạm vi cụ thể của nhau và nếu không thì không có khái niệm về khoảng cách. Yêu cầu hiệu suất của chúng tôi được hỗ trợ bởi phân tích sử dụng mô phỏng dựa trên dấu vết trò chơi thực.


1
Đồng thời xem trang Mental Poker trên Wikipedia - en.wikipedia.org/wiki/Mental_poker . Đã có một cuộc thảo luận trên diễn đàn Bitcoin về các ứng dụng tiềm năng của bitcointalk.org/index.php?topic=1487.0
liamzebedee

Liên kết tuyệt vời @ventzebedee. Bài viết đó có khá nhiều thuật toán chính xác giúp poker hoạt động tốt ngang hàng.
captncraig

4

Mặc dù không phải là một trò chơi may rủi, tôi đang phát triển một trò chơi AIR gần với yêu cầu của bạn.

  1. Được phát triển bằng giao thức phát đa hướng RTMFP của Flash. Không khách hàng được coi là máy chủ lưu trữ.
  2. Vật lý dựa trên hệ thống cạnh tranh.
  3. Xác minh đầu vào của đối thủ và loại bỏ trò chơi trên dữ liệu không hợp lệ.
  4. Không truyền thông tin vật lý nhất định vì lý do băng thông / độ trễ (điều này cũng vô hiệu hóa các phương thức gian lận nhất định).

Tuy nhiên, xin lưu ý ...

Tôi coi "không có khả năng ... gian lận" là một tuyên bố sai. Nếu bạn không kiểm soát tất cả các khía cạnh (phần cứng & phần mềm) thì có thể gian lận.

Mặc dù không phải là một trò chơi, tôi nghĩ rằng mạng Bitcoin là một ví dụ điển hình cho những gì bạn đang tìm kiếm.

Biên tập

Tôi sẽ mở rộng một chút về câu hỏi chính của bạn.

Đầu tiên, tôi không thể thấy bất kỳ trò chơi nào yêu cầu điều kiện "có thể chứng minh công bằng" mà không có một số mức yêu cầu có thẩm quyền. Từ bảng xếp hạng đến micropayments, hệ thống tập trung và quyền hạn đi cùng nhau.

Thứ hai, trò chơi ví dụ hay nhất tôi có thể nghĩ đến là những trò chơi Pokemon đầu tiên. Mặc dù hậu cần mạng bên trong có thể không ngang hàng, nhưng nó tuân theo cùng một nguyên tắc.

Cuối cùng, các nền tảng di động được trang bị đặc biệt cho các trò chơi ngang hàng. Tôi coi lĩnh vực này là rất thiếu, đó là lý do tại sao tôi hiện đang phát triển một dòng trò chơi ngang hàng.


Vâng, tôi có thể có một số kinh nghiệm với Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu

1

Một vài phần có thể giúp ích, tùy thuộc vào các trường hợp sử dụng:

Nếu bạn cần nhận được đầu vào đồng thời từ người dùng mà không có khả năng người ta có thể sử dụng thông tin để lợi thế của họ sớm, bạn có thể sử dụng chương trình cam kết. Thực chất đây là:

  1. Cả hai người chơi cung cấp một hàm băm của hành động họ muốn thực hiện.
  2. Sau khi cả hai đã cung cấp cam kết của mình, cả hai có thể cung cấp các hành động rõ ràng của họ.
  3. Bản rõ có thể được so sánh với băm để xác minh rằng không ai thay đổi câu trả lời của họ sau khi biết hành động của người khác.

Điều này có thể được sử dụng cho nhiều thứ, bao gồm một số ngẫu nhiên được chia sẻ (cả hai đều cung cấp một số nguyên thông qua các cam kết và xor chúng lại với nhau sau khi chia sẻ để có được giá trị được chia sẻ.)

Tuy nhiên, điều đó là không đủ đối với một trò chơi như poker, bởi vì nó yêu cầu các thẻ chỉ được biết đến với một người, trong khi tiếp tục có thể rút ra từ bộ bài chia sẻ. Wikipedia có một thuật toán khá tốt để chia sẻ xáo trộn bằng cách sử dụng sơ đồ trong đó cả hai người chơi mã hóa từng thẻ riêng lẻ nhiều lần. Điều này đặt ra một tình huống trong đó cần có 2 khóa để giải mã bất kỳ thẻ nào và cả hai người chơi đều có 1. Bài viết trích dẫn mối quan tâm về hiệu suất, nhưng tôi không nghĩ AES hoặc tương tự đắt đỏ ở quy mô cần thiết cho 2 người chơi poker.

Nếu tôi đang thiết kế một thuật toán, tôi sẽ cho người chơi tính một giá trị ngẫu nhiên ở đầu trò chơi để sử dụng làm hạt giống cho tất cả các hoạt động còn lại và chia sẻ giá trị băm của giá trị đó. Bằng cách đó, họ có thể chia sẻ giá trị đó sau trò chơi và bạn có thể xác minh rằng họ đã theo đúng giao thức, không có shenanigans.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.