engineeringfairnessmultiplayer
อำนาจอยู่ที่เซิร์ฟเวอร์หมายความว่า เซิร์ฟเวอร์เก็บสำเนาเกมชุดเดียวที่นับว่าใช้ได้ อุปกรณ์ของคุณส่งการเดินที่คุณอยากเล่นไป เซิร์ฟเวอร์ตรวจมันกับลูกเต๋าของตัวเองและกติกาของตัวเอง หลังจากนั้นกระดานจึงเปลี่ยน แอปที่ถูกดัดแปลงจะอ้างอะไรก็ได้ แต่ความจริงอยู่ในที่ที่มันเอื้อมไม่ถึง
แบ็คแกมมอนคู่ควรกับวินัยข้อนี้ มันคือเกมลูกเต๋าที่มีบันไดอันดับและมีกองเดิมพัน นั่นแปลว่ามีสองทางที่จะโกง ปลอมการเดิน หรือบิดการทอด เซิร์ฟเวอร์ที่ยุติธรรมต้องปิดประตูทั้งสองบาน บานที่สองรวมถึงตัวเราด้วย และเราจะไปถึงตรงนั้น
อำนาจอยู่ที่เซิร์ฟเวอร์หมายความว่าอย่างไรจริง ๆ
ทุกเกม Orion ที่กำลังเล่นอยู่มีอยู่ในที่เดียวเท่านั้น บนเซิร์ฟเวอร์ของเรา กระดานบนโทรศัพท์ของคุณคือหน้าต่าง ไม่ใช่ตัวเกม เมื่อคุณลากหมาก แอปไม่ได้ขยับมัน มันส่งข้อความสั้น ๆ ว่า นี่คือสิ่งที่ฉันอยากเล่น เซิร์ฟเวอร์เล่นเจตนานั้นซ้ำบนกระดานของตัวเอง ด้วยเครื่องยนต์กติกาของตัวเอง โดยใช้ลูกเต๋าที่มันทอดสำหรับตานั้น การเดินที่ถูกกติกาทำให้เกมเดินหน้า และผู้เล่นทั้งสองได้รับตำแหน่งใหม่ชุดเดียวกัน การเดินที่ผิดกติกาไม่เคยเกิดขึ้น
นี่คือเซิร์ฟเวอร์เดียวสำหรับทุกคน แอป iOS เป็น SwiftUI ดั้งเดิม แอปแอนดรอยด์เป็น Jetpack Compose ดั้งเดิม และทั้งคู่คือหน้าต่างที่มองไปยังหลังบ้านเดียวกันและกลุ่มผู้เล่นเดียวกัน กระจกต่างกัน ความจริงเดียวกัน
ทำไมเกมที่เชื่อฝั่งผู้ใช้ถึงถูกโกง
เพราะอุปกรณ์ของคู่ต่อสู้เป็นของคู่ต่อสู้ อะไรก็ตามที่ทำงานอยู่บนนั้นเปลี่ยนได้ ไคลเอนต์ที่ถูกแพตช์ส่งการเดินที่ไม่เคยถูกกติกาได้ โปรแกรมแก้หน่วยความจำเขียนทับตัวเลขตรงนั้นได้ และหน้าจอจะแสดงคำโกหกนั้นอย่างซื่อสัตย์ ไม่มีอะไรแปลกใหม่เลย เครื่องมือเหล่านี้ฟรี มีเอกสาร และเก่าแก่กว่าสมาร์ตโฟน
เกมที่เชื่อฝั่งผู้ใช้ กำลังขอให้ผู้เล่นทุกคนสัญญาว่าจะไม่เปิดฝากระโปรงดู บางคนจะเปิด เราจึงทำให้ความเห็นของฝั่งผู้ใช้ไม่มีความหมาย ใน Orion แอปมีหน้าที่สามอย่างพอดี
- วาด กระดาน หมาก ลูกเต๋าคูณ นาฬิกา
- ขอ ขอให้เซิร์ฟเวอร์เดินหมาก เสนอคูณสอง ยอมแพ้
- รับ แสดงตำแหน่งที่เซิร์ฟเวอร์บอกว่าเป็นของจริง
การทอดลูกเต๋า การตัดสินความถูกกติกา และการขยับเหรียญแม้เพียงเหรียญเดียว ไม่อยู่ในรายการนั้น ไม่มีสิ่งใดที่ตัดสินผลลัพธ์เกิดขึ้นบนอุปกรณ์
เมื่อฉันเดินหมาก เกิดอะไรขึ้น
คุณเดิน. แอปของคุณส่งเจตนาไป หมากตัวนี้ ช่องเหล่านี้ ไม่มีอะไรบนอุปกรณ์ของคุณเปลี่ยนกระดานจริง
เซิร์ฟเวอร์เล่นซ้ำ. เครื่องยนต์กติกาของเรารันการเดินนั้นกับกระดานของเซิร์ฟเวอร์และลูกเต๋าของเซิร์ฟเวอร์ ถ้าถูกกติกา เกมก็เดินหน้า ถ้าไม่ถูก มันถูกปฏิเสธที่ต้นทาง ไม่ว่าแอปไหนจะเป็นคนส่งมา
ทั้งสองฝ่ายได้ความจริงเดียวกัน. ตำแหน่งใหม่ถูกส่งไปยังผู้เล่นทั้งสอง ถ้าการเชื่อมต่อของคุณหลุด ช่วงผ่อนผันการเชื่อมต่อใหม่ของนาฬิกาจะรักษาที่นั่งไว้ให้ และคุณจะกลับมาสู่กระดานตามที่มันเป็นจริง ไม่ใช่ตามที่โทรศัพท์ของคุณจำไว้ครั้งสุดท้าย
เงินเดิมพันอยู่ใต้กติกาเดียวกัน เมื่อการแข่งที่มีค่าเข้าร่วมเริ่มขึ้น เซิร์ฟเวอร์เก็บเงินเดิมพันของทั้งสองฝ่ายไว้ กองกลางอยู่ในบัญชีเล่มเดียว บนเซิร์ฟเวอร์ และถูกเคลียร์ที่นั่นเมื่อเกมจบ ไม่มีไคลเอนต์ตัวใดถูกถามว่ามันคิดว่าตัวเองชนะเท่าไร เหรียญและอัญมณีเป็นของเสมือน ไม่มีมูลค่าในโลกจริงและถอนออกไม่ได้ และเรายังคงดูแลบัญชีนั้นราวกับมันเก็บของมีค่าไว้ เพราะมันเก็บจริง นั่นคือความไว้วางใจของคุณต่อคะแนน
อะไรหยุดไม่ให้เซิร์ฟเวอร์เองโกง
นี่คือคำถามที่ถูกต้อง และเกมส่วนใหญ่ก็หวังว่าคุณจะไม่มีวันถาม เซิร์ฟเวอร์ที่ทอดลูกเต๋าอย่างลับ ๆ ย่อมทอดให้อ่อนโยนกับฝ่ายที่มันเข้าข้างได้ และคุณจะไม่มีวันเห็น การทอดทุกครั้งดูสมเหตุสมผล ลูกเต๋าก็เป็นแบบนั้น
เราจึงพรากอำนาจนั้นออกจากตัวเราเอง ก่อนเกมเริ่ม เซิร์ฟเวอร์สร้างเมล็ดลับและประกาศคำผูกมัด SHA-256 บนมัน จากนั้นทุกการทอดถูกอนุมานจากเมล็ดนั้นด้วย HMAC-SHA256 ทีละครั้ง ตามลำดับ เมื่อเกมจบ เซิร์ฟเวอร์เปิดเผยเมล็ด ใครก็ตรวจได้ว่าเมล็ดตรงกับคำผูกมัดที่ทำไว้ก่อนการทอดครั้งแรก และว่าทุกการทอดในเกมสืบมาจากมัน ในความหมายเชิงรหัสลับ ลูกเต๋าของคุณถูกตรึงไว้ก่อนที่ผู้เล่นคนใดจะแตะหมาก เราบิดการทอดครั้งที่สิบสองไม่ได้โดยไม่ทำลายคำสัญญาที่เราประกาศไว้ตั้งแต่การทอดครั้งที่ศูนย์
คุณไม่ต้องเชื่อคำพูดของเราในเรื่องใดเลย หน้าตรวจสอบที่ orion.arthea.ai/verify คำนวณทั้งสายโซ่ใหม่ในเบราว์เซอร์ของคุณ ด้วย Web Crypto บนเครื่องของคุณ จากบันทึกสาธารณะของเกมนั้น ไม่ต้องมีบัญชี ไม่ต้องติดตั้ง ประตูที่ orion.arthea.ai/go มีลิงก์ App Store และ Google Play และแสดงสิ่งที่ใช้ได้จริงในขณะนี้เสมอ