วงจรชีวิตของ Round (รอบ)
แต่ละ Round (รอบ) จะกินเวลา 60 วินาที ตามเวลามาตรฐานของโปรโตคอล (UTC)
สี่เฟส
| เฟส | ระยะเวลา | สิ่งที่เกิดขึ้น |
|---|---|---|
| Announce (ประกาศ) | t₀ → t₀+5 วินาที | คำถาม q_t ถูกเผยแพร่ คำถามถูกเลือกจากคลังโดย `seed_t mod |
| Commit (ผูกมัด) | t₀+5 วินาที → t₀+35 วินาที | ผู้เข้าร่วมแต่ละคนส่ง commit c_i = HMAC-SHA256(s_i ‖ round_t, b_i) โดยที่ b_i ∈ {0, 1} คือคำตอบที่เลือก และ s_i คือความลับของผู้ใช้ขนาด 128 บิต Commit จะซ่อนคำตอบไว้จนกว่าจะถึงเฟส Reveal |
| Reveal (เปิดเผย) | t₀+35 วินาที → t₀+50 วินาที | ผู้เข้าร่วมเปิดเผย (s_i, b_i) Round Engine (เครื่องมือจัดการ Round) จะตรวจสอบแต่ละ commit ผู้ที่ไม่เปิดเผยจะถูกคัดออก |
| Settle (ชำระบัญชี) | t₀+50 วินาที → t₀+60 วินาที | คำนวณเสียงข้างมาก `M = argmax_v |
ทำไมต้องมีสองเฟส (Commit + Reveal)?
การออกแบบแบบง่าย ๆ ที่ให้ผู้เล่นส่ง b_i ในรูปแบบข้อความธรรมดาจะล้มเหลวในสามทาง:
- การต้อนฝูง (Herding) ผู้เล่นที่ลงคะแนนทีหลังจะเห็นคะแนนสะสมและกระโดดตามกระแส
- การสมรู้ร่วมคิดของบอท (Bot collusion) กองทัพบอทที่ประสานงานกันสามารถรอสัญญาณสาธารณะแล้วกวาดคะแนนข้างมาก
- การรั่วไหลของคำถาม (Question leakage) Commit แบบข้อความธรรมดาทำให้ฝ่ายตรงข้ามสามารถสังเกตคำตอบบางส่วนและอนุมานการกระจายตัวที่แท้จริงของคำถามก่อนลงคะแนน
โปรโตคอล Commit / Reveal แบบเข้ารหัสลับช่วยขจัดปัญหาทั้งสามข้อนี้ ในช่วง Commit ไม่มีใครสามารถเห็นคำตอบของผู้อื่นได้ ในช่วง Reveal ทุก commit สามารถตรวจสอบได้แบบสาธารณะกับ (s_i, b_i) ที่เปิดเผย
ดู Cryptographic Protocol (โปรโตคอลการเข้ารหัส) สำหรับข้อกำหนดอย่างเป็นทางการ
จะเกิดอะไรขึ้นถ้าฉันไม่เปิดเผย (Reveal)?
คุณจะถูกคัดออกจาก Round (รอบ) นั้นและจะไม่ได้รับ Round POP (คะแนน POP ประจำรอบ) Commit ของคุณจะยังคงถูกบันทึกบนเชน (เป็นส่วนหนึ่งของ Merkle Root) เพื่อการตรวจสอบ คะแนน Reputation Score (คะแนนชื่อเสียง) ของคุณจะได้รับการอัปเดตแบบเบย์เซียนเล็กน้อยไปทาง "ผู้เข้าร่วมที่ไม่น่าเชื่อถือ"
จะเกิดอะไรขึ้นถ้าเครือข่ายหน่วง?
Round Engine (เครื่องมือจัดการ Round) จะยอมรับระยะผ่อนผัน 2 วินาทีเกินขอบเขตของแต่ละเฟสสำหรับไคลเอนต์ที่ช้า เกินกว่านั้น Commit และ Reveal จะถูกทิ้งอย่างเงียบ ๆ
คำถามถูกเลือกอย่างไร?
Question Oracle (Oracle คำถาม) (ดู Oracle & Randomness (Oracle และการสุ่ม)) จะรักษาคลังคำถามที่สร้างไว้ล่วงหน้าและปรับเทียบไว้ล่วงหน้ามากกว่า 100,000 คำถาม แต่ละคำถามผ่านกระบวนการ:
- การสร้าง (Generation) โดยกลุ่ม LLM หลายตัว
- การลดอคติเชิงปฏิปักษ์ (Adversarial debiasing) เพื่อลบการชี้นำทางประชากรศาสตร์และภาษา
- การทดสอบปรับเทียบ (Calibration pretest) กับประชากรสังเคราะห์เพื่อตรวจสอบการตอบสนองที่คาดหวังประมาณ 50/50 คำถามที่มีการตอบสนองที่คาดหวังเบ้จะถูกกรองออก
Round seed seed_t จะเลือกจากคลังนี้แบบกำหนดได้ ดังนั้นตัวเลือกจึงไม่สามารถคาดเดาได้ แต่สามารถตรวจสอบได้อย่างสมบูรณ์
Round (รอบ) สามารถเสมอกันได้หรือไม่?
ในทางคณิตศาสตร์ ใช่ (50/50 พอดี) เมื่อ |{b_i=0}| = |{b_i=1}| Prize Pool (กองทุนรางวัล) จะถูกเลื่อนไปยัง Round t+1 คำถามจะถูกสุ่มใหม่ และทั้งสองฝ่ายจะรอดชีวิต