ระบบสุ่มที่ตรวจสอบได้

ทุกการเปิดแพ็คบน CardVault ใช้ระบบ commit–reveal ที่ทำให้คุณพิสูจน์ได้ด้วยตัวเองว่าผลการสุ่มถูกกำหนดไว้ล่วงหน้าและไม่ถูกแก้ไขหลังจากคุณกดเปิด

1

ระบบสร้าง server seed แล้วเผยแพร่ค่า hash ก่อน

ก่อนที่ใครจะเปิดแพ็ค ระบบสุ่ม server seed (256-bit) เก็บไว้ และเผยแพร่เฉพาะค่า SHA-256 ของมันบนหน้าตู้ — เท่ากับล็อกผลไว้ล่วงหน้าโดยที่ยังไม่มีใครรู้ค่าจริง

2

คุณกำหนด client seed ของคุณเอง

เบราว์เซอร์ของคุณสร้าง client seed ซึ่งเข้าไปเป็นส่วนหนึ่งของการคำนวณ ทำให้ระบบไม่สามารถเลือกผลลัพธ์ให้คุณได้ฝ่ายเดียว

3

ผลการสุ่มคำนวณจาก HMAC

roll = HMAC-SHA256(key = server seed, message = client seed : nonce) จากนั้นนำ 8 ตัวอักษรแรกมาแปลงเป็นตัวเลข 0–9999 เพื่อเทียบกับตารางอัตราการออก และใช้ชุดถัดไปเลือกการ์ดในระดับนั้น

4

เปิดเผย server seed หลังใช้งาน

เมื่อ seed ถูกใช้แล้ว ระบบจะเปิดเผยค่าจริงให้ตรวจสอบ — คุณนำมาคำนวณ hash เทียบกับที่ประกาศไว้ตอนแรก และคำนวณ roll ซ้ำได้ที่หน้านี้

กติกาเพิ่มเติมที่เข้าข้างผู้เล่น: หากระดับความหายากที่สุ่มได้ไม่มีการ์ดเหลือในตู้ ระบบจะเลื่อนขึ้นไประดับที่สูงกว่าเสมอ (ไม่เลื่อนลง) และทุกแพ็คได้การ์ดจริง 1 ใบเสมอ ไม่มีกรณี “ไม่ได้อะไรเลย”

ตรวจสอบผลย้อนหลัง

นำค่าจากหน้าประวัติการเปิดของคุณมากรอก เพื่อคำนวณผลซ้ำด้วยตัวเอง

สูตรที่ใช้

seedHash = SHA256(serverSeed)

roll     = HMAC_SHA256(serverSeed, clientSeed + ":" + nonce)
rollBp   = parseInt(roll[0..8], 16) % 10000       // 0–9999
rarity   = ระดับแรกที่ผลรวมอัตราสะสม > rollBp
cardIdx  = parseInt(roll[8..16], 16) % (จำนวนการ์ดในระดับนั้น)