provably fairdiceguide
Επαληθεύεις τα ζάρια του ταβλιού με μια υπόσχεση που δίνεται πριν το παιχνίδι και ελέγχεται μετά από αυτό. Το Orion δημοσιεύει μια δέσμευση SHA-256 σε έναν μυστικό σπόρο πριν από την πρώτη σου ζαριά, αποκαλύπτει τον σπόρο όταν το παιχνίδι τελειώνει, και αφήνει τον browser σου να ξαναϋπολογίσει κάθε ζαριά στο orion.arthea.ai/verify μόνο με το ID του παιχνιδιού. Αν όλα ταιριάζουν, τα ζάρια ήταν καθορισμένα πριν αρχίσει το παιχνίδι και κανείς, ούτε εμείς, δεν τα κατεύθυνε.
Κάθε παίκτης στο διαδίκτυο ξέρει αυτό το συναίσθημα. Χορεύεις στη μπάρα τρεις γύρους. Ο αντίπαλός σου βρίσκει τον έναν αριθμό που χτυπά και καλύπτει. Σε ξύλινο ταμπλό θα σήκωνες τους ώμους, γιατί είδες τα ζάρια να φεύγουν από το κύπελλο. Στο διαδίκτυο σου ζητούν να εμπιστευτείς έναν αριθμό που δεν είδες ποτέ να παράγεται. Δεν θέλαμε να ζητήσουμε αυτή την εμπιστοσύνη. Θέλαμε να την κάνουμε ελέγξιμη.
Τι σημαίνει στην πραγματικότητα το commit-reveal;
Φαντάσου έναν σφραγισμένο φάκελο. Πριν καθίσεις, το κατάστημα γράφει μέσα όλα τα ζάρια της βραδιάς, τον σφραγίζει και σου δίνει μια φωτογραφία της σφραγίδας. Όταν τελειώσει το παιχνίδι, ο φάκελος ανοίγει. Αν το περιεχόμενο ταιριάζει με τη σφραγίδα, οι ζαριές υπήρχαν πριν από το παιχνίδι, και τίποτα δεν μπορούσε να επιλεγεί στη μέση για να σε βλάψει. Το commit-reveal είναι αυτός ο φάκελος, φτιαγμένος από αριθμητική. Η σφραγίδα είναι ένα hash SHA-256, και κανείς δεν μπορεί να παραγάγει άλλον σπόρο που να ταιριάζει. Τέσσερα βήματα μεταφέρουν την απόδειξη από τον server μας στον browser σου.
Πριν το παιχνίδι. Ο server τραβά έναν μυστικό τυχαίο σπόρο και τον περνά από SHA-256. Αυτό το hash είναι η δέσμευση, και επισυνάπτεται στο παιχνίδι σου πριν από την πρώτη ζαριά. Από εκείνη τη στιγμή όλα τα ζάρια του παιχνιδιού είναι ήδη καθορισμένα. Ο server δημοσίευσε μια υπόσχεση που δεν μπορεί πια να τροποποιήσει.
Κατά τη διάρκεια του παιχνιδιού. Κάθε ζαριά παράγεται από τον σπόρο με HMAC-SHA256: σπόρος και αριθμός ζαριάς μέσα, δύο ζάρια έξω. Η θέση, το σκορ, ο κύβος, ποιος είναι έτοιμος να κερδίσει: τίποτα από αυτά δεν μπαίνει στον υπολογισμό. Ο server δεν διαλέγει ζαριές. Διαβάζει μια λίστα στην οποία δεσμεύτηκε πριν παίξεις.
Όταν τελειώνει το παιχνίδι. Ο σπόρος αποκαλύπτεται και αποθηκεύεται μαζί με το αρχείο του παιχνιδιού. Αυτό είναι το άνοιγμα του φακέλου. Οποιοσδήποτε μπορεί να κάνει hash τον αποκαλυμμένο σπόρο και να τον συγκρίνει με τη δέσμευση που δημοσιεύτηκε πριν από την πρώτη κίνηση, και τα δύο πρέπει να είναι πανομοιότυπα.
Επαλήθευσέ το μόνος σου. Άνοιξε το orion.arthea.ai/verify σε οποιονδήποτε browser και βάλε το ID του παιχνιδιού. Η σελίδα τα ξαναϋπολογίζει όλα τοπικά με Web Crypto, την κρυπτογραφία που είναι ενσωματωμένη στον ίδιο τον browser: πρώτα το SHA-256 του αποκαλυμμένου σπόρου απέναντι στην αρχική δέσμευση, μετά κάθε ζαριά του παιχνιδιού, ζάρι ζάρι. Χωρίς λογαριασμό, χωρίς εφαρμογή, περίπου ένα λεπτό.
Μια πλήρης αντιστοιχία αποδεικνύει τρία πράγματα ταυτόχρονα:
- Ο αποκαλυμμένος σπόρος δίνει ακριβώς τη δέσμευση που δημοσιεύτηκε πριν από την πρώτη ζαριά
- Κάθε ζαριά του παιχνιδιού παράγεται από αυτόν τον σπόρο με HMAC-SHA256, άρα τίποτα δεν ξαναρίχτηκε ούτε αντικαταστάθηκε
- Τα ζάρια δεν προσαρμόστηκαν ποτέ στη θέση, στο σκορ ή στον παίκτη
Τι θα απεδείκνυε μια ασυμφωνία;
Μια ασυμφωνία δεν θα ήταν σφάλμα εμφάνισης. Θα ήταν απόδειξη. Αν ο αποκαλυμμένος σπόρος δεν δίνει τη δέσμευση, τα ζάρια άλλαξαν αφού άρχισε το παιχνίδι. Αν μία μόνο ζαριά αποτύχει στον έλεγχο HMAC, τα ζάρια που είδες δεν ήταν τα ζάρια που είχαν δεσμευτεί. Κάθε μία από αυτές τις αποτυχίες είναι απόδειξη παραποίησης που ο καθένας μπορεί να αναπαραγάγει από το ίδιο αρχείο, σε οποιοδήποτε μηχάνημα, για πάντα.
Γι' αυτό ακριβώς δεν θα έπρεπε ποτέ να δεις καμία. Η δέσμευση δημοσιεύεται πρώτη, πριν κουνηθεί ένα πούλι. Ένα κατάστημα που θα ήθελε να στήσει αυτό το παιχνίδι θα έπρεπε να δημοσιεύσει εκ των προτέρων την απόδειξη του ίδιου του στησίματός του, και μετά να δώσει σε κάθε παίκτη τα εργαλεία για να τη βρει. Δεν σου ζητάμε να πιστέψεις ότι είμαστε τίμιοι. Χτίσαμε το σύστημα ώστε να μη χρειάζεται.
Κανείς δεν μπορεί να σημαδέψει με μια ζαριά που σφραγίστηκε πριν αρχίσει το παιχνίδι.
Αν τα ζάρια είναι αποδεδειγμένα δίκαια, γιατί εξακολουθώ να ρίχνω άσχημα;
Επειδή τα δίκαια ζάρια είναι ακόμα ζάρια. Θα σε κλείσουν στη μπάρα. Θα χρειάζεσαι οτιδήποτε εκτός από 2-1 και θα φέρεις 2-1. Σε χιλιάδες παιχνίδια οι αριθμοί ισιώνουν προς την πραγματική κατανομή, αλλά μια βραδιά δεν υπόσχεται τίποτα. Αυτό που αφαιρεί η επαλήθευση είναι η ερώτηση κάτω από τον εκνευρισμό. Εκείνη η θαυματουργή ζαριά ήταν καθορισμένη πριν αγγίξει κανείς σας πούλι, και δεν σημάδευε εσένα. Το να το ξέρεις δεν θα απαλύνει τη ζαριά. Σου επιτρέπει όμως να σταματήσεις να ελέγχεις το σύμπαν και να γυρίσεις στη θέση.
Τα ζάρια είναι η πιο θορυβώδης υποψία, αλλά όχι η μόνη. Ο ίδιος server που δεσμεύεται στις ζαριές σου επικυρώνει και κάθε ζωντανή κίνηση στην πηγή, ώστε ένας τροποποιημένος client να μην μπορεί να σύρει πούλι εκεί που οι κανόνες δεν επιτρέπουν. Οι δίκαιες ζαριές και οι νόμιμες κινήσεις έρχονται από την ίδια αρχή.
Μπορώ να δοκιμάσω τον επαληθευτή πριν βγει το παιχνίδι;
Ναι. Ο επαληθευτής είναι ζωντανός σήμερα στο orion.arthea.ai/verify, και περιλαμβάνει επανάληψη επίδειξης, ώστε να δεις μια πλήρη επαλήθευση σε δείγμα παιχνιδιού, από τη δέσμευση στον σπόρο και σε κάθε ζαριά, πριν καν έχεις δικό σου παιχνίδι. Για το ίδιο το Orion, η πόρτα στο orion.arthea.ai/go κουβαλά τους συνδέσμους για App Store και Google Play και δείχνει πάντα τι είναι διαθέσιμο αυτή τη στιγμή.
Τα δίκαια ζάρια είναι το έδαφος πάνω στο οποίο στέκεται όλο το ταξίδι. Δώδεκα προορισμοί, δέκα λίγκες, ένας κανόνας κάτω από όλα: όταν ένα παιχνίδι τελειώνει, δεν χρειάζεται ποτέ να μας πιστέψεις στον λόγο.