Bagaimana setiap undian giveaway bisa diperiksa
Sebuah giveaway hanya adil jika tidak ada seorang pun, termasuk penyelenggara dan kami, yang bisa memilih atau menebak pemenangnya. Inilah persis cara GetSocialExport mengundi pemenang, dan cara siapa pun memeriksa sebuah undian dari sertifikatnya.
Empat langkah sebuah undian
- Daftar peserta dikunci. Ekstensi penyelenggara mengumpulkan komentar, menerapkan aturan giveaway, dan mengirimkan daftar peserta yang memenuhi syarat ke server kami. Daftar disusun dalam urutan tetap dan sidik jari SHA-256-nya dicatat beserta waktunya. Sejak saat itu, mengubah satu nama saja akan mengubah sidik jarinya.
- Sebuah angka acak masa depan dipilih. Pada saat itu server memilih sebuah putaran drand yang baru akan dipublikasikan sekitar 30 detik kemudian. drand adalah suar keacakan publik yang dikelola oleh League of Entropy (Cloudflare, Protocol Labs, universitas, dan lainnya): angkanya tidak bisa ditebak maupun dipengaruhi, dan masing-masing membawa tanda tangan yang bisa diperiksa siapa saja.
- Pemenang dihitung. Setelah putaran dipublikasikan, sebuah seed dibentuk dari kode giveaway, nomor undian, sidik jari daftar, dan angka acak. Pemenang dipilih dari seed itu dengan SHA-256, tanpa bias, dengan memberi bobot ekstra hanya kepada peserta yang memiliki tiket bonus sesuai aturan.
- Semuanya dipublikasikan. Sertifikat menampilkan pemenang, sidik jari, putaran, seed, waktu daftar dikunci, setiap pengundian ulang beserta alasannya, dan (kecuali penyelenggara menjadikannya privat) seluruh daftar peserta.
Apa yang bisa Anda periksa pada sebuah sertifikat
Buka sertifikat mana pun (pindai kode QR-nya) dan browser Anda memeriksanya sendiri, tanpa harus percaya kepada kami:
- daftar peserta yang dipublikasikan cocok dengan sidik jari yang dicatat sebelum undian;
- angka acak berasal dari drand, dengan tanda tangan BLS yang sah dari League of Entropy;
- daftar dikunci sebelum angka acak itu ada;
- menghitung ulang undian menghasilkan pemenang yang persis sama.
Anda juga bisa mengetikkan nama Anda di Apakah Anda ikut serta? untuk memastikan Anda ada dalam undian, bahkan ketika penyelenggara merahasiakan daftarnya.
Apa yang tidak dibuktikan oleh sebuah sertifikat
Undiannya sendiri terbukti adil. Sertifikat tidak bisa membuktikan bahwa penyelenggara menerapkan aturan yang wajar atau menyerahkan hadiahnya. Daftar peserta berasal dari ekstensi milik penyelenggara sendiri; itulah sebabnya daftar ini dipublikasikan agar peserta bisa memeriksanya, dan itulah sebabnya setiap pengundian ulang ditampilkan beserta alasannya.
Detail teknis
- Algoritme:
socialexport-draw-v1. Daftar kanonik: satu baris per peserta,id⇥nama⇥tiket, diurutkan berdasarkan id, digabungkan dengan line feed; sidik jari = SHA-256 dari teks itu. - Keacakan: jaringan drand
quicknet, chain52db9ba70e0cc0f6…, satu putaran setiap 3 detik, tanda tangan BLS pada G1 (RFC 9380). - Seed: SHA-256 dari nama algoritme, kode giveaway, nomor undian, sidik jari daftar, putaran, dan nilai acak, digabungkan dengan line feed.
- Pemilihan: SHA-256(seed ‖ penghitung) menghasilkan angka 64-bit; nilai di atas kelipatan terbesar dari rentang ditolak (tanpa bias modulo); setiap pemilihan menghapus pemenang beserta tiketnya.
- Sertifikat ditandatangani oleh server kami (ECDSA P-256) untuk membuktikan kapan setiap daftar dicatat. Kunci publik:
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEQdshCP/QsGG2k29W80CHSmWbwYpBNgrrIjTf0qPyQuB8cXXLxsCRaty97SO44XaM3aYr6PMwI4dYc/MnSQ3/aw==
