เกม:
ผู้ใช้ซ้อนบล็อกเพื่อสร้างหอคอยที่ไม่เสถียร ทุกครั้งที่วางบล็อกใหม่สำเร็จ เกมจะสร้าง score_string ซึ่งหมายถึงการพิสูจน์คะแนนปัจจุบันของผู้ใช้ สมมติว่าผู้ใช้แต่ละรายมีรหัสสาธารณะเฉพาะที่ลีดเดอร์บอร์ดรู้จัก และผู้ใช้สามารถเซ็นชื่อ score_string เมื่อส่งสัญญาลีดเดอร์บอร์ด สมมติว่าเกมกำลังรันอยู่ในอุปกรณ์ของผู้ใช้และสามารถตรวจสอบได้อย่างสมบูรณ์
ลีดเดอร์บอร์ด:
- สัญญาที่สาธารณชนเข้าถึงได้
- ซอร์สโค้ดเป็นแบบสาธารณะ
- อาจเก็บตัวแปรส่วนตัว
- มีฟังก์ชันสาธารณะ submitScore() ซึ่งยอมรับ score_string
เป็นไปได้ไหมที่จะสร้าง score_string โดยที่ผู้ใช้ไม่สามารถคาดเดา score_string ที่จะสร้างขึ้นจากการวางบล็อกถัดไปได้สำเร็จ หรืออย่างน้อยที่สุด บล็อก n+2?
สมมติว่าไม่สามารถออฟไลน์ได้ วิธีที่ง่ายที่สุดในการทำสิ่งนี้ให้สำเร็จด้วยการใช้ API ที่ดูแลโดยผู้เขียนเกมคืออะไร
ข้อจำกัดความรับผิดชอบ: ฉันมาจากโลกของนักพัฒนาเว็บและสิ่งที่ดีที่สุดที่ฉันสามารถทำได้คือ API ที่ใช้กลยุทธ์ต่อต้านการขูดข้อมูล/การทำงานอัตโนมัติโดยพื้นฐานแล้ว จะขอเบราว์เซอร์จำนวนมากและขอข้อมูล และอาศัยการอนุมานเพื่อระบุการโจมตี ฉันคิดว่าคุณมีอิสระมากขึ้นในการสร้างสัญญาณสำหรับการอนุมานนี้โดยใช้รหัสเกม (เช่น การปลอมประวัติ xy mouse coord ที่มนุษย์สร้างขึ้นจำนวนมากจะเป็น PITA) แต่ฉันสงสัยว่าใครก็ตามจากโลก crypto สามารถได้รับ วิธีแก้ปัญหาที่มีหลักการมากขึ้น