Peer-to-peer เกมการแข่งขันที่ไม่มีโฮสต์ของโอกาส? [ปิด]


15

ฉันสงสัยว่า - เคยมีเกมใด ๆ ที่เคยสร้างขึ้นมา:

  • peer-to-peer โดยไม่ต้องมีหนึ่งเพียร์ถูกกำหนดให้เป็นโฮสต์
  • การแข่งขัน (ไม่ร่วมมือผู้เล่นเล่นกับคนอื่น)
  • ยุติธรรมพอสมควร (ไม่มีความเป็นไปได้ของการโกงผู้เล่น)
  • อย่าให้ข้อมูลกับผู้เล่นมากกว่าที่พวกเขาต้องการ (ตัวอย่างเช่นไม่เปิดเผยความลับของผู้เล่นคนอื่นแม้แต่กับแอปพลิเคชั่นที่กำลังรันอยู่)

ตัวอย่างของเกมดังกล่าวจะเป็นเกมโป๊กเกอร์ที่ผู้เล่นแต่ละคนและเกมของพวกเขาจะสามารถรู้ว่ามือของตัวเอง แต่ไม่ใช่มือของผู้เล่นคนอื่นโดยไม่ต้องพึ่งพาพวกเขาเป็นเจ้าภาพของเกม ฉันรู้ว่ามีเกมไม่กี่เกมที่มีความยุติธรรมซึ่งพิสูจน์ได้ แต่สิ่งที่ฉันรู้มีอยู่ในการกำหนดค่าเซิร์ฟเวอร์ - ไคลเอนต์


1
"peer-to-peer" และ "ไม่มีความเป็นไปได้ของการโกงผู้เล่น" - ไม่สามารถทำได้
Kikaimaru

7
@ Kikaimaru คุณผิด
sam hocevar

@ Kikaimaru ที่จริงแล้วฉันมีแนวคิดบางอย่างเกี่ยวกับวิธีการทำงานนี้ แต่ฉันต้องการที่จะถามก่อนที่จะพยายามที่จะบูรณาการล้อ (อาจจะเป็นเครื่องบิน)
ThePiachu

2
ฉันสงสัยอย่างมากว่ามีวิธีการหนึ่งที่จะป้องกันการโกงในระดับที่เซิร์ฟเวอร์ลูกค้าทำ ผู้เล่นสามารถรู้ได้ว่าผู้เล่นคนอื่นกำลังโกงและหยุดเล่นโดยไม่จำเป็นต้องใช้รหัสใด ๆ (หรือคุณสามารถหยุดเกมได้) แต่นั่นคือ "ไม่มีความเป็นไปได้ในการโกง" หรือไม่?
Kikaimaru

@Kikaimaru หากโพรโทคอลบังคับใช้ความถูกต้องความพยายามในการโกงนั้นไม่เหมือนกับการเล่นเลย - ถ้ามีผู้เล่นมากกว่าสองคนผู้เล่นคนอื่น ๆ ยังคงสามารถเล่นต่อไปได้และความพยายามในการโกงจะถูกเพิกเฉย เป็น
sam hocevar

คำตอบ:


19

ฉันไม่รู้ว่าเกมดังกล่าวถูกสร้างขึ้นมาหรือไม่ แต่พวกเขาแน่ใจว่าได้ตั้งทฤษฎีแล้ว มีการตีพิมพ์บทความจำนวนมากในหัวข้อ คุณอาจต้องการค้นคว้าแผนการผูกมัดซึ่งเสนอคำอธิบายว่าฝ่ายที่ไม่เห็นด้วยสองคนสามารถพลิกเหรียญได้อย่างไรขณะอยู่ห่างไกลทางร่างกาย (ดูบทความนี้ 1981: พลิกเหรียญทางโทรศัพท์ )

หนึ่งกระดาษอย่างมากเป็นเช่นโกงหลักฐาน Peer-to-Peer ซื้อขายบัตรเกมส์ :

เราขอเสนอ โปรโตคอลเพียร์ต่อเพียร์ที่พิสูจน์แล้วสำหรับการใช้งานการ์ดเกมการซื้อขายออนไลน์ เราแยกการกระทำร่วมกันกับ TCG ทั้งหมดและอธิบายวิธีที่พวกเขาสามารถดำเนินการระหว่างผู้เล่นสองคนโดยไม่จำเป็นต้องมีผู้ตัดสินของบุคคลที่สาม (ซึ่งโดยปกติจะต้องใช้เซิร์ฟเวอร์ที่ไม่เอนเอียง) ในแต่ละการกระทำผู้เล่นจะถูกขัดขวางจากการโกงหรือหากพวกเขาโกงคู่ต่อสู้จะสามารถพิสูจน์ได้ว่าพวกเขาได้ทำเช่นนั้น เราสรุปโดยแสดงให้เห็นว่าวิธีการเหล่านี้มีความปลอดภัยอย่างไรและวิธีการเหล่านั้นอาจถูกผสมเข้ากับรูปแบบอื่นของ TCG และเกมเพียร์ทูเพียร์อื่น ๆ

นอกจากนี้การเล่นแบบป้องกันการโกงสำหรับการเล่นเกมจากส่วนกลางและ Peer-to-Peer :

เราเสนอโปรโตคอลที่มีการรับประกันการต่อต้านการโกงที่พิสูจน์แล้วว่าปลอดภัยและมีชีวิตอยู่แต่ได้รับการลงโทษด้านประสิทธิภาพ จากนั้นเราพัฒนาเวอร์ชันเพิ่มเติมของโพรโทคอลนี้ที่เรียกว่าการซิงโครไนซ์แบบอะซิงโครนัสซึ่งหลีกเลี่ยงการลงโทษไม่มีเซิร์ฟเวอร์ไม่มีการรับประกันการต่อต้านการโกงที่พิสูจน์ได้ เทคนิคนี้ใช้กับคุณสมบัติเกมทั่วไปรวมถึงเทคนิคการจัดกลุ่มและใช้เซลล์สำหรับเกมที่มีผู้เล่นหลายคนจำนวนมาก. โดยเฉพาะเราให้โปรโตคอลการพิสูจน์ความรู้เป็นศูนย์เพื่อให้ผู้เล่นอยู่ในช่วงที่เฉพาะเจาะจงของกันและกันและมิฉะนั้นจะไม่มีความคิดระยะทางของพวกเขา การเรียกร้องประสิทธิภาพของเราได้รับการสนับสนุนโดยการวิเคราะห์โดยใช้การจำลองตามร่องรอยของเกมจริง


1
นอกจากนี้ยังเห็นหน้าจิตโป๊กเกอร์บนวิกิพีเดีย - 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เป็นตัวอย่างสำคัญของสิ่งที่คุณกำลังมองหา

แก้ไข

ฉันจะขยายคำถามหลักของคุณเล็กน้อย

ก่อนอื่นฉันไม่เห็นเกมที่ต้องการเงื่อนไข "ยุติธรรมอย่างยุติธรรม" โดยไม่มีข้อกำหนดระดับสิทธิ์บางระดับ จากลีดเดอร์บอร์ดไปจนถึง micropayments ระบบรวมศูนย์และสิทธิอำนาจเข้าด้วยกัน

ประการที่สองเกมตัวอย่างที่ดีที่สุดที่ฉันนึกได้ก็คือเกมโปเกมอนตอนต้น แม้ว่าโลจิสติกส์เครือข่ายภายในอาจไม่ได้เป็นแบบ peer-to-peer แต่เป็นไปตามหลักการเดียวกัน

ในที่สุดแพลตฟอร์มมือถือได้รับการติดตั้งเป็นพิเศษสำหรับเกมเพียร์ทูเพียร์ ฉันคิดว่าฟิลด์นี้ขาดมากนั่นคือสาเหตุที่ฉันกำลังพัฒนาเกมเพียร์ทูเพียร์


ใช่ฉันอาจมีประสบการณ์กับ Bitcoin ... bitcoin.stackexchange.com/users/323/thepiachu ;)
ThePiachu

1

ไม่กี่ชิ้นที่อาจช่วยได้ขึ้นอยู่กับกรณีการใช้งาน:

หากคุณต้องการรับการป้อนข้อมูลจากผู้ใช้พร้อมกันโดยไม่มีความเป็นไปได้ที่จะสามารถใช้ข้อมูลเพื่อประโยชน์ของพวกเขาก่อนเวลาอันควรคุณสามารถใช้รูปแบบความมุ่งมั่น เป็นหลักนี้คือ:

  1. ผู้เล่นทั้งสองให้การแฮ็กของการกระทำที่พวกเขาต้องการ
  2. หลังจากที่ทั้งคู่ได้ให้คำมั่นสัญญาแล้วทั้งคู่ก็สามารถให้การกระทำธรรมดาได้
  3. ข้อความธรรมดาสามารถเปรียบเทียบกับแฮชเพื่อยืนยันว่าไม่มีใครเปลี่ยนคำตอบหลังจากเรียนรู้การกระทำของบุคคลอื่น

สิ่งนี้สามารถใช้สำหรับสิ่งต่าง ๆ รวมถึงหมายเลขสุ่มที่ใช้ร่วมกัน (ทั้งคู่ให้จำนวนเต็มผ่านภาระผูกพันและ xor ด้วยกันหลังจากแบ่งปันเพื่อรับค่าที่ใช้ร่วมกัน)

นั่นไม่เพียงพอสำหรับเกมอย่างโปกเกอร์เนื่องจากต้องใช้ไพ่ในการรับรู้เพียงคนเดียวในขณะที่ยังสามารถดึงออกมาจากเด็คที่แชร์ได้ Wikipediaมีอัลกอริทึมที่ดีพอสมควรสำหรับการสับแบบแชร์โดยใช้รูปแบบที่ผู้เล่นทั้งสองเข้ารหัสแต่ละการ์ดแยกกันหลายครั้ง ชุดนี้สร้างสถานการณ์ที่ต้องใช้ 2 ปุ่มเพื่อถอดรหัสบัตรใด ๆ และผู้เล่นทั้งสองมี 1 บทความอ้างถึงข้อกังวลเกี่ยวกับประสิทธิภาพ แต่ฉันไม่คิดว่า AES หรือสิ่งที่คล้ายกันนั้นมีราคาแพงในระดับที่จำเป็นสำหรับโป๊กเกอร์ผู้เล่น 2 คน

ถ้าฉันออกแบบอัลกอริทึมฉันจะให้ผู้เล่นคำนวณค่าสุ่มที่จุดเริ่มต้นของเกมเพื่อใช้เป็นเมล็ดพันธุ์สำหรับการดำเนินการที่เหลือทั้งหมดและแบ่งปันแฮชของค่านั้น ด้วยวิธีดังกล่าวพวกเขาสามารถแบ่งปันคุณค่านั้นหลังจากเกมและคุณสามารถตรวจสอบว่าพวกเขาปฏิบัติตามโปรโตคอลอย่างถูกต้องโดยไม่ต้องใช้คนเสฉวน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.