피어 투 피어 호스트리스 경쟁 게임? [닫은]


15

궁금합니다. 다음과 같은 게임이 만들어졌습니다.

  • 한 피어가 호스트로 지정되지 않은 피어 투 피어
  • 경쟁적 (협조적이지 않고 플레이어가 서로 대결)
  • 아마도 공평하다 (플레이어가 부정 행위를 할 가능성이 없다)
  • 플레이어에게 필요한 것보다 더 많은 정보를 제공하지 마십시오 (예 : 실행중인 응용 프로그램에도 다른 플레이어의 비밀을 밝히지 않음)

이러한 게임의 예로는 각 플레이어와 게임이 자신의 손만 알 수 있지만 다른 플레이어의 손이 게임의 주인이 아닌 것에 의존하지 않는 포커 게임이 있습니다. 공정한 게임이 몇 개 있지만 서버 클라이언트 구성에 존재하는 모든 게임이 있다는 것을 알고 있습니다.


1
"피어 투 피어"및 "플레이어가 부정 행위를 할 가능성이 없습니다"-불가능합니다.
Kikaimaru

7
@Kikaimaru 당신이 틀 렸습니다.
sam hocevar

@Kikaimaru 실제로, 나는 이것이 어떻게 작동 할 수 있는지에 대한 개념을 가지고 있지만 바퀴를 재발 명하기 전에 먼저 물어보고 싶습니다 (이 경우 비행기 일 수도 있습니다).
ThePiachu

2
서버 클라이언트가 수행하는 수준에서 부정 행위를 방지 할 수있는 방법이 있는지 의심합니다. 예를 들어 플레이어는 다른 플레이어가 부정 행위를하고 있음을 알 수 있습니다. 코드가 필요없이 (또는 게임을 중단 할 수 있음) "속임수는 없습니까?"
Kikaimaru

@Kikaimaru 프로토콜이 정확성을 강요하는 경우, 부정 행위는 전혀 플레이하지 않는 것과 동일합니다. 두 명 이상의 플레이어가있는 경우 다른 플레이어는 계속 플레이 할 수 있으며 부정 행위는 무효 IP 패킷과 달리 무시되지 않습니다. 있다.
sam hocevar

답변:


19

그러한 게임이 만들어 졌는지 모르겠지만 확실히 이론화되었습니다. 이 주제에 관한 여러 논문이 발표되었습니다. 두 명의 불일치 당사자가 물리적으로 멀리 떨어져있는 동안 동전을 뒤집을 수있는 방법에 대한 설명을 제공하는 확약 계획 을 연구 할 수 있습니다 (1981 년 논문 : 전화로 동전 뒤집기 참조 ).

Cheat-Proof Peer-to-Peer 트레이딩 카드 게임 과 같은 매우 철저한 논문은 다음과 같습니다.

우리는 온라인 트레이딩 카드 게임을 구현 하기 위한 부정 행위 방지 P2P 프로토콜 을 제안합니다 . 우리는 모든 TCG에 공통적 인 행동 을 분류하고 제 3 자 심판 (보통 편견이없는 서버가 필요함) 없이 두 플레이어 사이에서 어떻게 실행할 수 있는지 설명합니다 . 각각의 행동에서, 플레이어는 부정 행위를 할 수 없거나 , 부정 행위를 한다면 상대방이 그렇게했다는 것을 증명할 수 있습니다 . 우리는이 방법들이 어떻게 안전한지, 그리고 다른 스타일의 TCG와 다른 P2P 게임에 어떻게 혼합 될 수 있는지를 보여줌으로써 결론을 내립니다.

또한 중앙 및 피어 투 피어 게임을위한 치트 방지 플레이 아웃 :

우리는 잠재적 인 부정 행위 방지 보증이 있고, 안전하고 확실 하지만 성능에 영향을 미치는 프로토콜을 제안합니다 . 그런 다음 페널티를 피하고 서버리스이며 부정 행위 방지 보증을 제공하며 패킷 손실이있을 때 강력하며 통신 성능을 크게 향상시키는 비동기식 동기화라는이 프로토콜의 확장 버전을 개발합니다. 이 기술은 일반적인 게임 기능과 대규모 멀티 플레이어 게임을 위한 클러스터링 및 셀 기반 기술에 적용됩니다.. 구체적으로, 우리는 제로 지식 증명 프로토콜을 제공하여 플레이어가 서로의 특정 범위 내에 있고 거리에 대한 개념이 없도록합니다. 우리의 성능 주장은 실제 게임 트레이스를 기반으로 한 시뮬레이션을 사용한 분석으로 뒷받침됩니다.


1
또한 Wikipedia의 Mental Poker 페이지 ( en.wikipedia.org/wiki/Mental_poker)를 참조하십시오 . Bitcoin 포럼 에서이 bitcointalk.org/index.php?topic=1487.0
liamzebedee

훌륭한 링크 @liamzebedee. 이 기사에는 포커가 피어 투 피어에서 잘 작동하도록하는 정확한 알고리즘이 거의 있습니다.
captncraig

4

우연한 게임은 아니지만 요구 사항에 가까운 AIR 게임을 개발 중입니다.

  1. Flash의 RTMFP 멀티 캐스트 프로토콜을 사용하여 개발되었습니다. 클라이언트는 호스트로 간주되지 않습니다.
  2. 물리 기반 경쟁 시스템.
  3. 상대 입력을 확인하고 유효하지 않은 데이터에서 게임을 실격시킵니다.
  4. 대역폭 / 대기 시간 이유로 특정 물리 정보를 전송하지 않습니다 (이로 인해 특정 부정 행위 방법도 비활성화 됨).

그러나 참고하십시오 ...

나는 "... 부정 행위의 가능성이 없다"고 허위 진술을한다. 모든 측면 (하드웨어 및 소프트웨어)을 제어하지 않으면 부정 행위가 가능합니다.

게임은 아니지만 비트 코인 네트워크는 당신이 찾고있는 것의 주요 예 라고 생각합니다 .

편집하다

나는 당신의 주요 질문에 대해 조금 확장 할 것입니다.

첫째, 나는 어느 정도 권위적인 요구 조건없이 "아마도 공정한"조건을 요구하는 게임을 볼 수 없다. 리더 보드에서 소액 결제에 이르기까지 중앙 집중식 시스템과 권한이 함께 사용됩니다.

둘째, 내가 생각할 수있는 최고의 예제 게임은 초기 포켓몬 게임입니다. 내부 네트워크 물류는 P2P가 아닐 수도 있지만 동일한 원칙을 따릅니다.

마지막으로 모바일 플랫폼은 특히 P2P 게임에 적합합니다. 저는이 분야가 매우 부족하다고 생각합니다. 그래서 저는 현재 P2P 게임을 개발하고 있습니다.


예, Bitcoin에 대한 경험이있을 수 있습니다 ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu

1

사용 사례에 따라 도움이 될 수있는 몇 가지 사항 :

정보를 조기에 활용할 수있는 가능성없이 사용자로부터 동시 입력을 받아야하는 경우 확약 체계를 사용할 수 있습니다 . 본질적으로 이것은 :

  1. 두 선수 모두 원하는 행동의 해시를 제공합니다.
  2. 둘 다 약속을 제공 한 후 일반 텍스트 작업을 제공 할 수 있습니다.
  3. 일반 텍스트를 해시와 비교하여 다른 사람의 동작을 학습 한 후 아무도 응답을 변경하지 않았 음을 확인할 수 있습니다.

이것은 공유 난수를 포함하여 다양한 것들에 사용될 수 있습니다 (모두 공약을 통해 정수를 제공하고 공유 값을 얻기 위해 공유 후 그것들을 xor합니다)

그러나 포커와 같은 게임에는 불충분합니다. 왜냐하면 카드는 한 사람에게만 알려지고 공유 데크에서 계속 그릴 수 있기 때문입니다. Wikipedia 에는 두 플레이어가 각 카드를 여러 번 개별적으로 암호화하는 체계를 사용하여 공유 셔플 링에 대해 상당히 좋은 알고리즘이 있습니다. 이것은 주어진 카드를 해독하기 위해 두 개의 키가 필요하고 두 플레이어 모두 1을 가지고있는 상황을 설정합니다.

알고리즘을 설계하는 경우 게임 시작시 플레이어가 나머지 모든 작업의 ​​시드로 사용할 임의의 값을 계산하고 해당 값의 해시를 공유하게합니다. 그렇게하면 게임 후 그 가치를 공유 할 수 있고, 그들이 아무 규칙없이 프로토콜을 올바르게 따랐는지 확인할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.