Score:0

พิสูจน์คะแนนในเกมสาธารณะด้วยลีดเดอร์บอร์ดสัญญาสาธารณะ

ธง es

เกม:

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

ลีดเดอร์บอร์ด:

  • สัญญาที่สาธารณชนเข้าถึงได้
  • ซอร์สโค้ดเป็นแบบสาธารณะ
  • อาจเก็บตัวแปรส่วนตัว
  • มีฟังก์ชันสาธารณะ submitScore() ซึ่งยอมรับ score_string

เป็นไปได้ไหมที่จะสร้าง score_string โดยที่ผู้ใช้ไม่สามารถคาดเดา score_string ที่จะสร้างขึ้นจากการวางบล็อกถัดไปได้สำเร็จ หรืออย่างน้อยที่สุด บล็อก n+2?

สมมติว่าไม่สามารถออฟไลน์ได้ วิธีที่ง่ายที่สุดในการทำสิ่งนี้ให้สำเร็จด้วยการใช้ API ที่ดูแลโดยผู้เขียนเกมคืออะไร

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

knaccc avatar
es flag
ฉันคิดว่านี่เป็นเกมแห่งทักษะที่ใครบางคนต้องวางบล็อกแต่ละอันอย่างระมัดระวัง? อะไรที่จะป้องกันไม่ให้ผู้ใช้แก้ไขไคลเอนต์เพื่อแสร้งทำเป็นว่าแต่ละบล็อกถูกวางไว้อย่างสมบูรณ์?
James Moffet avatar
es flag
@knaccc นั่นคือสิ่งที่ฉันถาม ดูความคิดเห็นที่ด้านล่างเกี่ยวกับการส่งประวัติขั้นตอนเวลาสั้น ๆ ของ coords xy mouse ที่มนุษย์สร้างขึ้น (สร้างขึ้นระหว่างการโต้ตอบกับเกม) ซึ่งจะยากที่จะปลอมแปลงได้อย่างน่าเชื่อถือ การปรับเปลี่ยนไคลเอนต์ นั่นเป็นวิธีแก้ปัญหาที่ไม่สง่างาม แต่มันสร้างอุปสรรค (ซึ่ง DNN ที่ดีอาจเอาชนะได้ แต่ไม่ว่าจะด้วยวิธีใดก็ตาม) ฉันสงสัยว่ามีวิธีที่เป็นหลักการมากกว่านี้ในการแก้ไขปัญหานี้หรือไม่โดยให้ลูกค้าสร้างความลับที่สวยงามกว่าประวัติของเมาส์
knaccc avatar
es flag
ทำไมการเคลื่อนไหวของเมาส์ปลอมให้น่าเชื่อถือจึงเป็นเรื่องยาก ฉันคิดว่าโดยพื้นฐานแล้วคุณต้องยอมรับความพ่ายแพ้ไม่มีทางที่จะแน่ใจได้ว่าคุณสามารถไว้วางใจไคลเอ็นต์ได้ ซึ่งในกรณีนี้ไม่มีการเข้ารหัสจำนวนมากที่สามารถช่วยในการปลอมแปลงคะแนนสูงได้
James Moffet avatar
es flag
คงเป็นไปไม่ได้ที่จะปลอมพฤติกรรมเคอร์เซอร์เกมในระดับมิลลิวินาทีที่มนุษย์สร้างขึ้นอย่างน่าเชื่อโดยไม่มีฐานข้อมูลขนาดใหญ่ของข้อมูลอนุกรมเวลาจริงที่สร้างโดยผู้เล่นที่เป็นมนุษย์ มันซับซ้อนเกินไปและเต็มไปด้วยสัญญาณในการสร้างอย่างน่าเชื่อถือตามหลักการแรก นี่เป็นหลักการที่ใช้มาตรการป้องกันการขูดเว็บไม่มากก็น้อยหากคุณพยายามขูดข้อมูลอย่างเช่น crunchbase.com ด้วยระบบอัตโนมัติของเบราว์เซอร์ คุณจะพบว่าการเลียนแบบมนุษย์นั้นเป็นปัญหาที่ไม่สำคัญ ชอบที่จะหาทางออกที่ดีกว่านี้ อาจจะไม่มีก็ได้

โพสต์คำตอบ

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