ตรวจสอบการจับรางวัล
ทุกรอบผูกค่า seed แบบสุ่มไว้ก่อนเปิดรับ และเปิดเผยหลังจับรางวัล ใครก็ตามจึงคำนวณผลซ้ำเองด้วยมือได้
hmac-sha256/v150f0b96c812ee23a82b8bf541c63fd675ed7ea6e8d262fd9dff2feb63e8199e3 ประกาศตอนเปิดรอบ ก่อนที่จะรู้สิทธิ์ของใคร · 1 ก.ย. 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.