SpyDota кез келген ойыншы ойынның әділдігін тексере алуы үшін Provably Fair алгоритмін қолданады. Кейс немесе апгрейд нәтижесін алдын ала бекітілген серверлік сид, сіздің client seed және ойын нөмірі анықтайды, сондықтан ойын басталғаннан кейін оны өзгерту мүмкін емес.

Серверлік сид — ойын нәтижесі есептелетін құпия мән. Ойынды қайта есептеу үшін сидті ашу керек: ойын карточкасы мұны сіз үшін жасайды.
Сайттың жоғарғы жағындағы аватарыңызды басыңыз, «Тарих» қойындысын ашып, «Кейстер» немесе «Апгрейдтер» бөлімін таңдаңыз.
Түйме ойын жолының соңында тұр (телефонда кестені оңға қарай айналдырыңыз). Ашылған карточкада «Тексеру» түймесін тағы бір рет басыңыз.
Ойынды тексеру үшін сервер сидін ашу керек. Біз жаңа сидтер жұбын жасаймыз: ағымдағы сид ашылып, бірден тексеруге қойылады, ал ойын нөмірлері қайта басталады.
Егер сид әлі құпия болса, карточка «Сидтерді ауыстырып, тексеру» әрекетін ұсынады. Ескі сид ашылады — содан кейін онымен ойналған барлық ойынды тексеруге болады. Жаңа ойындар 1-ден басталады, ойналғандары өзгермейді. Сид ашылып қойған болса, бұл қадам болмайды.
Браузер ойынды ашылған сид бойынша қайта есептеді, нәтиже сервер жазбасымен сәйкес келді.
Тексеру беті ашылады. «Сәйкес келеді» — браузеріңіз ойынды қайта есептеп, сервер жазғанмен бірдей нәтиже алды деген сөз. «түсті» белгісі бар затты тарихтағы жолмен салыстырыңыз, апгрейдте — «Жеңіс» немесе «Жеңіліс».
Provably Fair іске қосылғанға дейін ойналған ойындарда, сыйлықтар мен берілген заттарда «Тексеру» түймесі жоқ. Зат ауыстырылса, тексеру бастапқы түсімге қатысты. «Сәйкес келмейді» көрсеңіз, серверлік сидті сақтап, қолдау қызметіне жазыңыз.
Ойын алдында сіз сервер сидінің хэшін көресіз. Сондықтан сервер бастапқы деректерді байқатпай алмастыра алмайды.
Сіздің сидіңіз бен ойын нөмірі есептеуге қатысады, сондықтан нәтижені тек сервер құрмайды.
Ойын деректерін енгізіңіз. Есептеу браузеріңізде жүреді, серверге ештеңе жіберілмейді.
Ойын деректерін енгізіп, «Тексеру» түймесін басыңыз — мұнда түскен сан мен зат шығады.
Сервер сиді + Сіздің сидіңіз + Ойын нөмірі = Әділ нәтиже
Сервер кездейсоқ серверлік сидті таңдап, тек оның SHA-256 хэшін көрсетеді. Содан кейін сидті ауыстыру мүмкін емес: хэш сәйкес келмей қалады.
Әр ойын үшін HMAC-SHA256 есептеледі. Кілт — серверлік сидтің 64 таңбалы hex жолы күйінде өзі, байтқа айналдырусыз. Хабарлама ойын түрінен, ойыннан, сіздің client seed-тен және ойын нөмірінен құралады.
Хэштің алғашқы 8 hex таңбасы 0-ден 4 294 967 295-ке дейінгі санды береді. Одан 1-ден 100 000 000-ға дейінгі тикет шығады: floor(сан × 100 000 000 / 2^32) + 1.
Ойын кезіндегі мүмкіндіктер кестесінде әр заттың өз тикет аралығы бар. Тикет аралығына түскен зат түседі.
Шек floor(мүмкіндік × 100 000 000) мәніне тең. Тикет шектен үлкен болмаса, апгрейд ұтады.
Сидтерді ауыстырғанда серверлік сид ашылады. Содан кейін жұптың кез келген ойынын осы беттегі браузерде немесе өз кодыңызбен қайта есептеуге болады.
Кілт — серверлік сидтің hex жолы өзі (64 таңба), одан декодталған байттар емес. Өз бетінше тексергенде дәл осы жерде жиі қателеседі.