Puncte:0

Dovada scorului într-un joc public cu un clasament de contract public

drapel es

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ă.

knaccc avatar
drapel es
Cred că acesta este un joc de îndemânare, în care cineva trebuie să plaseze cu atenție fiecare bloc? Ce trebuie să împiedice utilizatorul să modifice clientul pentru a pretinde că fiecare bloc a fost plasat perfect?
James Moffet avatar
drapel es
@knaccc exact asta întreb, vezi comentariul din partea de jos despre transmiterea unei scurte etape de timp a coordurilor mouse-ului xy create de om (generate în timpul interacțiunii cu jocul), care ar fi greu de falsificat în mod convingător de către modificarea clientului. Aceasta este o soluție neelegantă, dar ridică o barieră (care ar putea fi depășită probabil de un DNN bun, dar orice). Mă întreb dacă există o modalitate mai principială de a aborda această problemă, punând clientul să creeze un secret care este mai elegant decât o istorie a coords mouse-ului
knaccc avatar
drapel es
De ce ar fi greu să falsificăm mișcările mouse-ului în mod convingător? Cred că, în principiu, trebuie să recunoști înfrângerea.Nu există nicio modalitate de a vă asigura că puteți avea încredere în client, caz în care nu există nicio cantitate de criptografie care să vă ajute cu scorurile mari false.
James Moffet avatar
drapel es
Ar fi imposibil să se falsifice comportamentul cursorului de joc generat de oameni la scară de milisecunde în mod convingător fără o bază de date mare de date reale din seria temporală generate de jucătorii umani. Este prea complex și încărcat de semnal pentru a fi generat în mod convingător, pe baza principiilor de bază. Acesta este mai mult sau mai puțin principiul pe care se bazează măsurile anti-web-scraping.Dacă încercați să răzuiți ceva de genul crunchbase.com cu automatizarea browserului, veți găsi rapid că imitarea unui om este o problemă non-trivială. Mi-ar plăcea să găsesc o soluție mai bună, poate că nu există

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.