Τα ζάρια
Και τα πέντε παιχνίδια εδώ κρέμονται από τα ίδια δύο ζάρια. Αυτή η σελίδα δείχνει από πού έρχονται οι αριθμοί τους, γιατί κανείς δεν μπορεί να τους διαλέξει — εμείς λιγότερο από όλους — και πώς το επαληθεύεις μόνος σου.
Γιατί υπάρχει αυτή η σελίδα
31–45 % όλων των παραπόνων στις κριτικές των μεγάλων εφαρμογών τάβλι αφορούν τα ζάρια — περισσότερα από κάθε άλλο θέμα.
Η υποψία δεν είναι άποψη λίγων. Βρίσκεται στις κριτικές σε κάθε γλώσσα που μιλάει αυτή η σελίδα: τα ζάρια είναι στημένα, ο αντίπαλος φέρνει ακριβώς τη ζαριά που χρειάζεται, μετά από μια αγορά χάνεις το επόμενο παιχνίδι. Όποιος παίζει διαδικτυακά έχει σκεφτεί αυτή τη φράση — και τις περισσότερες φορές δεν υπήρχε κανείς να την πάρει στα σοβαρά.
Η συνήθης απάντηση είναι ένα πιστοποιητικό: ένας ελεγκτής βεβαιώνει ότι η γεννήτρια τυχαίων αριθμών είναι εντάξει. Αυτό σημαίνει «πίστεψε τον ελεγκτή» — ακριβώς εκεί όπου δεν θέλεις να πιστέψεις κανέναν. Γι' αυτό εδώ δεν υπάρχει σφραγίδα, αλλά ένας υπολογισμός που μπορείς να ξανακάνεις μόνος σου, για κάθε παιχνίδι που τελείωσε.
Γιατί καμία ζαριά δεν επιλέγεται εκ των υστέρων
Κάθε παρτίδα καθορίζει τις ζαριές της πριν πέσουν. Ο διακομιστής δημοσιεύει στην αρχή ένα άθροισμα ελέγχου και μόνο στο τέλος τον αριθμό από τον οποίο υπολογίστηκαν όλες οι ζαριές — αν τα δύο δεν ταιριάζουν, αποδεικνύεται.
-
Πριν από το παιχνίδι: ο σφραγισμένος φάκελος
Ο διακομιστής τραβάει έναν αρχικό αριθμό 32 τυχαίων byte και δημοσιεύει μόνο το αποτύπωμά του — ένα άθροισμα ελέγχου από το οποίο δεν υπολογίζεται πίσω ο αρχικός αριθμός. Από εκείνη τη στιγμή είναι καθορισμένος· κανείς δεν μπορεί να τον αλλάξει χωρίς να πάψει να ταιριάζει το αποτύπωμα.
-
Και οι δύο παίκτες βάζουν κάτι δικό τους
Καθένας σας βάζει ένα δικό του αναγνωριστικό, και αυτό μπαίνει σε κάθε ζαριά. Αυτό είναι το βήμα που παραλείπουν οι υποσχέσεις με σκέτο άθροισμα ελέγχου — και χωρίς αυτό όλα τα υπόλοιπα θα ήταν θέατρο: ένας διακομιστής που διαλέγει και τις δικές σας τιμές μπορεί να δοκιμάζει αρχικούς αριθμούς ώσπου να του αρέσουν οι ζαριές, και μόνο τότε να δημοσιεύσει το αποτύπωμα.
-
Μια άγκυρα από έξω
Πάνω σε αυτά προστίθεται ένας αριθμός από το drand, μια δημόσια πηγή τυχαιότητας που παράγουν από κοινού πολλοί ανεξάρτητοι φορείς. Ο γύρος που ορίζεται δεν υπήρχε ακόμη τη στιγμή της σφράγισης. Έτσι κλείνει το τελευταίο κενό: ακόμη κι αν ο διακομιστής και οι δύο παίκτες συνεννοούνταν, δεν θα μπορούσαν να διαλέξουν τις ζαριές εκ των προτέρων.
-
Το παιχνίδι τρέχει
Κάθε ζαριά υπολογίζεται από αυτά τα μέρη, με βάση τον αύξοντα αριθμό της. Τίποτα δεν αποφασίζεται τη στιγμή που πατάς το κύπελλο — ήταν ήδη καθορισμένο πριν αρχίσει το παιχνίδι.
-
Μετά το παιχνίδι: ο φάκελος ανοίγει
Ο διακομιστής δημοσιεύει τον αρχικό αριθμό. Τώρα ελέγχονται και τα δύο: ταιριάζει με το αποτύπωμα του πριν, και βγάζει ακριβώς τις ζαριές που έπεσαν; Αν κάποιο από τα δύο δεν ισχύει, δεν είναι πια υποψία αλλά απόδειξη — και μάλιστα απόδειξη που μπορεί να κάνει ο καθένας χωρίς να μας ρωτήσει.
1 Αποτύπωμα 2·3 Δεμένο με 5 Αρχική τιμή
Ο υπολογισμός, ανοιχτά στο τραπέζι
Να τος, ολόκληρος. Δεν υπάρχει δεύτερο, κρυφό μέρος — ό,τι γράφεται εδώ είναι όλα όσα χρειάζεται μια ζαριά.
Κάθε ζαριά είναι HMAC-SHA256(αρχική τιμή, δέσιμο ‖ αριθμός). Τα byte από το 252 και πάνω πετιούνται, ώστε και οι έξι πλευρές να μένουν εξίσου πιθανές· το υπόλοιπο είναι το υπόλοιπο της διαίρεσης με το έξι, συν ένα.
Ο αρχικός αριθμός είναι το κλειδί, η δέσμευση είναι το μήνυμα: αριθμός ματς, αριθμός παιχνιδιού, τα αναγνωριστικά και των δύο παικτών και η άγκυρα — κάθε κομμάτι με το μήκος του μπροστά. Τα μήκη δεν είναι στολίδι. Χωρίς αυτά, τα αναγνωριστικά «ab» και «c» θα έδιναν το ίδιο μήνυμα με τα «a» και «bc», και ένας παίκτης θα μπορούσε να απεικονίσει δύο διαφορετικά ζεύγη στην ίδια ροή ζαριών.
Γιατί τέσσερις από τις 256 τιμές πετιούνται
Το 256 δεν διαιρείται με το έξι. Αν πάρει κανείς απλώς το υπόλοιπο, οι ενδείξεις 1 έως 4 βγαίνουν σε 43 από τις 256 περιπτώσεις και το 5 και το 6 μόνο σε 42 — ένα πλεόνασμα περίπου δυόμισι τοις εκατό, που αποδεικνύεται εύκολα σε εκατό χιλιάδες ζαριές. Αυτό ακριβώς είναι το σκάνδαλο που θέλει να αποτρέψει αυτή η σελίδα. Γι' αυτό οι τέσσερις ανώτατες τιμές byte απορρίπτονται και τραβιέται νέα, και οι έξι ενδείξεις μένουν εξίσου πιθανές.
χρησιμοποιούνται, μοιρασμένες ισότιμα στις έξι ενδείξεις απορρίπτονται, τραβιέται νέα
Τρεις τρόποι να το επαληθεύσεις μόνος σου
Ό,τι χρειάζεται ο έλεγχος είναι δημόσιο — και κανένας από τους τρεις δρόμους δεν περνάει από εμάς.
-
Υπολογισμένο ξανά στον περιηγητή σου
Κάθε παιχνίδι που τελείωσε έχει δική του σελίδα κάτω από το «Έλεγχος ζαριών»: αποτύπωμα, δέσμευση, αρχικός αριθμός και όλες οι ζαριές. Η συσκευή σου τα ξαναϋπολογίζει εκεί με την κρυπτογραφική συνάρτηση του ίδιου σου του φυλλομετρητή — η ετυμηγορία έρχεται μετά από τη δική σου συσκευή, όχι από τη δική μας.
-
nard.gg — έλεγχος ζαριών
Αυτό το αρχείο υπολογίζει ξανά τα ζάρια μιας παρτίδας από τις δημοσιευμένες τιμές. Δεν περιέχει τίποτα δικό μας εκτός από τον ίδιο τον υπολογισμό — καμία φόρτωση, καμία σύνδεση, καμία μέτρηση.
Κατέβασε το πρόγραμμα ελέγχου — ένα αρχείο, χωρίς δίκτυο, χωρίς εμάς. Αποθήκευσέ το και τρέξ' το όποτε θες σε οποιαδήποτε δημοσιευμένη εγγραφή.
-
Με το χέρι ή με δικό σου εργαλείο
Ο τύπος πιο πάνω είναι η πλήρης προδιαγραφή, και το HMAC-SHA256 υπάρχει σε κάθε γλώσσα προγραμματισμού. Όποιος θέλει γράφει μόνος του τον ελεγκτή σε είκοσι γραμμές και χρειάζεται από εμάς μόνο τους δημοσιευμένους αριθμούς. Ακριβώς γι' αυτό βρίσκονται εκεί.
Τι δεν υποσχόμαστε
Από τη σφράγιση και μετά, ο διακομιστής γνωρίζει εκ των προτέρων τις ζαριές του τρέχοντος παιχνιδιού. Θα καταργούνταν μόνο αν και οι δύο πλευρές δεσμεύονταν πριν από κάθε ζαριά και αποκάλυπταν μετά — κάτι που κοστίζει έναν γύρο ανά κίνηση και προσκαλεί κάποιον απλώς να αρνηθεί την αποκάλυψη. Δεν το κάνουμε. Και το γράφουμε εδώ αντί να το αποσιωπήσουμε.
Σε αντάλλαγμα ισχύει: για κάθε παιχνίδι τραβιέται δικός του αρχικός αριθμός, ανεξάρτητος από όλους τους άλλους — από τον έναν δεν προκύπτει τίποτα για τον επόμενο. Και η απόδειξη βρίσκεται ανοιχτή για κάθε παιχνίδι που τελείωσε, όχι κατόπιν αιτήματος αλλά από μόνη της.
Οι τριάντα έξι ζαριές
Και γιατί μοιάζει παρ' όλα αυτά σαν τα ζάρια να είναι εναντίον σου; Επειδή η τυχαιότητα σε μικρές ποσότητες φαίνεται άνιση. Δύο ζάρια πέφτουν με τριάντα έξι τρόπους, και όποιος χρειάζεται έναν συγκεκριμένο από αυτούς συχνά τον περιμένει πολύ. Οι δύο πίνακες εδώ το δείχνουν — ο πρώτος, πόσες ζαριές φτάνουν καν μια απόσταση· ο δεύτερος, πόσο άνιση φαίνεται η αληθινή τυχαιότητα σε μικρούς αριθμούς.
Δύο ζάρια πέφτουν με τριάντα έξι εξίσου πιθανούς τρόπους. Διάλεξε απόσταση και ο πίνακας δείχνει ποιες από αυτές πάνε ένα πούλι τόσο μακριά — σε ελεύθερο δρόμο, χωρίς κλεισίματα ανάμεσα.
Καμία επιλογή — ο πίνακας δείχνει και τις τριάντα έξι ζαριές.
21 διαφορετικές ζαριές, οι 6 διπλές. Η μέτρηση γίνεται πάντως στα τριάντα έκτα: κάθε διπλή πέφτει μία φορά, κάθε άλλη ζαριά δύο.
Ρίξε κι εσύ
Αυτός ο πίνακας ρίχνει μέσα στον περιηγητή σου, με τη δική του τυχαιότητα. Μετά από τριάντα έξι ζαριές τα μισά τετράγωνα μένουν άδεια — δεν είναι βλάβη, έτσι μοιάζει η τυχαιότητα.
Σύνολο ζαριών 0
Διπλές
Όταν και τα δύο ζάρια δείχνουν τον ίδιο αριθμό, παίζεται τέσσερις φορές αντί για δύο. Διπλή έρχεται σε έξι από τις τριάντα έξι ζαριές — δηλαδή σε μία κίνηση στις έξι.
Γι’ αυτό η διπλή φτάνει πιο μακριά από κάθε άλλη ζαριά: το 6–6 μεταφέρει είκοσι τέσσερα σημεία.
Η πρώτη ζαριά
Στην αρχή κάθε παίκτης ρίχνει ένα ζάρι· ξεκινά ο μεγαλύτερος και παίζει ακριβώς αυτούς τους δύο αριθμούς. Στην ισοπαλία ξαναρίχνουν. Γι’ αυτό η πρώτη κίνηση μιας παρτίδας δεν είναι ποτέ διπλή — μένουν 30 από τις τριάντα έξι ζαριές.