Joc:
Utilizatorii stivuiesc blocuri pentru a forma un turn instabil. De fiecare dată când un bloc nou este așezat cu succes, jocul creează un scor_string care este menit ca dovadă a scorului curent al utilizatorului. Să presupunem că fiecare utilizator are o cheie publică unică care este cunoscută de clasament și că utilizatorul își poate semna score_string atunci când trimite la contractul de clasament. Să presupunem că jocul rulează local pe dispozitivul utilizatorului și poate fi inspectat complet.
Clasament:
- Un contract accesibil publicului
- Codul sursă este public
- Poate stoca variabile private
- Are o funcție publică submitScore(), care acceptă un șir de scor
Este posibil să se genereze score_string astfel încât utilizatorul să nu poată ghici score_string care ar fi produs prin așezarea cu succes a următorului bloc? Sau cel puțin bloc n+2?
Presupunând că acest lucru nu este posibil offline, care este cel mai simplu mod de a realiza acest lucru cu utilizarea unui API întreținut de autorul jocului?
Disclaimer: sunt din lumea dezvoltatorilor web și cel mai bun lucru pe care îl pot găsi este o API care aplică o strategie anti-scraping/automatizare.Practic, solicită o grămadă de browser și solicită informații și se bazează pe inferență pentru a identifica atacurile. Cred că ați avea oarecum mai multă libertate de a crea semnal pentru această inferență folosind codul jocului (adică falsificarea unei mulțimi de istoric de coduri de mouse xy generate de oameni ar fi un PITA), dar mă întreb dacă cineva din lumea cripto poate obține un soluție mai principială.