ตรวจสอบการจับรางวัล
ทุกรอบผูกค่า seed แบบสุ่มไว้ก่อนเปิดรับ และเปิดเผยหลังจับรางวัล ใครก็ตามจึงคำนวณผลซ้ำเองด้วยมือได้
hmac-sha256/v154d0ce20b2cab2e7593062558a4f7fa761d6def9b4bad2720457b1f9e6425ba6 ประกาศตอนเปิดรอบ ก่อนที่จะรู้สิทธิ์ของใคร · 26 ต.ค. 2569 07:00รอบนี้ยังไม่ได้จับรางวัล จึงยังไม่มี seed ให้เปิดเผย
วิธีคำนวณผลซ้ำด้วยตัวเอง
doc = "giveaway:<giveaway_id>\n" + "<user_id>:<entries>:<range_start>\n" for every row in ascending user_id order + "total:<entries_total>\n"; entries_hash = hex(sha256(utf8(doc)))remaining_k = entries_total - sum(entries of the winners of ranks 1..k-1); msg_k = "<giveaway_id>:<entries_hash>:<k>"; ticket_k = big_endian_uint64(hmac_sha256(seed_bytes, msg_k)[0:8]) mod remaining_kWalk the snapshot rows in ascending user_id order, skipping anybody who already won a lower rank without counting their entries. The first row where ticket_k < accumulated + entries holds the winning ticket. ticket_index is therefore a position inside the squeezed range for rank k, not inside the round's original range.
This publishes enough to check that the winner follows from the committed seed, and enough to check your own row against the ledger. It does not let you check that the list of everybody's entries is complete, because publishing the whole document would publish every other member's entries.