אמון שאפשר למדוד

את ההטלות במשחקי האונליין שלכם אפשר לבדוק בעצמכם

כשאפליקציה לא מראה את החישוב שלה, אי אפשר לבדוק את הקוביות. ב־Boardgammon אפשר: במשחקי האונליין שלכם כל הטלה נחתמת בהתחייבות קריפטוגרפית לפני שהיא נחשפת, והרישום שלה מאפשר לכם, ולכל אחד אחר, לחשב אותה מחדש.

1. התחייבות לפני כל הטלה

לכל הטלה השרת מגריל זרע סודי משלה, מספר אקראי חדש, ולפני שהיא נחשפת הוא מפרסם רק את גיבוב ה־SHA-256 של הזרע. הגיבוב הזה הוא ההתחייבות. גיבוב עובד רק בכיוון אחד: הוא נועל את הזרע באותו רגע, ולא חושף עליו דבר. מכאן והלאה השרת לא יכול להחליף את הזרע, כי זרע אחר כבר לא יתאים לגיבוב שפורסם.

2. מספר שני נכנס לחישוב

כשאתם מטילים במשחק בזמן אמת, האפליקציה שלכם מגרילה מספר אקראי משלה ושולחת אותו לשרת. את הקוביות מחשב השרת ב־HMAC, גיבוב עם מפתח: לחישוב נכנסים הזרע שלו, המספר השני, מזהה המשחק, מזהה ההטלה ומונה. כשהשרת מטיל בעצמו, כמו במשחק בהתכתבות, הוא מספק גם את המספר השני.

3. הגרלה בלי הטיה

הפלט הקריפטוגרפי מתורגם למספרים 1 עד 6 בשיטת דגימת דחייה: ערכים שהיו מעוותים את ההתפלגות נפסלים ונדגמים מחדש, כך שלכל מספר יש בדיוק אותו סיכוי.

4. עמוד האימות

השרת חושף את הזרע הסודי יחד עם הקוביות, ואז אפשר לבדוק שהזרע תואם להתחייבות, ושהחישוב נותן את אותן קוביות. האפליקציה שלכם מריצה את הבדיקה הזאת ברקע, על כל הטלה שאתם מטילים. אפשר לבדוק גם בלעדיה: לכל משחק אונליין שלכם יש עמוד אימות ציבורי. מופיעות בו כל ההטלות, כל אחת עם הרישום שלה (ההתחייבות, הזרע שנחשף, המספר השני, המונה והקוביות), ולצידן תוכנית קצרה שאפשר להריץ בעצמכם.

משחק הוגן, והשרת הוא השופט

המכשיר של השחקן אף פעם לא מייצר קוביות, ומהלך לא חוקי לא יעבור, כי השרת בודק כל מהלך מול החוקים. הרישום שמתפרסם מאפשר לבדוק שהקוביות של כל הטלה נובעות מהמספרים שלה.

מה הרישום מראה, ומה לא?

הרישום של הטלה מראה שהזרע שנחשף תואם להתחייבות שלה, ושהקוביות נובעות מהמספרים שבו. הרישום לבדו לא מראה שהזרע נקבע לפני ההטלה; בהטלה שאתם מטילים, האפליקציה שלכם מקבלת את ההתחייבות מראש, ולכן היא יכולה לדעת גם את זה. כשהשרת מספק גם את המספר השני, הרישום עדיין מראה שההטלה לא שונתה אחרי שנרשמה, אבל הוא לא יכול להראות שהשרת לא ידע מראש מה תהיה ההטלה, או שלא בחר אותה. אנחנו מעדיפים לומר את זה בגלוי ולא לטעון יותר ממה שהרישום מוכיח.

מהבלוג

כל הכתבות