Bitcoin.com News
สนับสนุนโดย

ทดลองโป๊กเกอร์ที่ถูกทิ้งของซาโตชิกลับมาอีกครั้ง เพิ่มองค์ประกอบใหม่จากบิตคอยน์

เกือบ 18 ปีหลังจากที่ซาโตชิ นากาโมโตะ ทิ้งอินเทอร์เฟซโป๊กเกอร์ที่ยังไม่เสร็จสมบูรณ์ไว้ภายในซอฟต์แวร์ต้นฉบับของบิตคอยน์ นักวิจัยโรบิน ลินัส ได้พัฒนาโปรโตคอลการเข้ารหัสที่ทำให้เกมนี้สามารถเล่นได้ การออกแบบ Bitcoin Poker ของเขาทำให้สองคนสามารถเล่นเท็กซัส โฮลเด็มได้โดยไม่ต้องมีดีลเลอร์ สร้างไพ่แบบส่วนตัว และบังคับการจ่ายเงินตามกฎที่มีอยู่ของบิตคอยน์ จุดสำคัญคือ การเตรียมเกมหนึ่งเกมต้องใช้มากกว่า 56,000 โหนดในต้นไม้ธุรกรรม (transaction-tree nodes) ข้อมูลการตั้งค่าประมาณ 8.4 MB และเทคนิคการเข้ารหัสที่ซับซ้อนอย่างมาก

เขียนโดย
แชร์
ทดลองโป๊กเกอร์ที่ถูกทิ้งของซาโตชิกลับมาอีกครั้ง เพิ่มองค์ประกอบใหม่จากบิตคอยน์

จุดสำคัญ

  • โรบิน ลินัส ได้เผยแพร่ Bitcoin Poker เมื่อวันที่ 6 กันยายน โดยเปลี่ยนแนวคิดโป๊กเกอร์ของซาโตชิในปี 2008 ให้กลายเป็นโปรโตคอล
  • Bitcoin Poker ใช้โหนดต้นไม้ธุรกรรม 56,132 โหนดเพื่อดำเนินการเกม Texas Hold'em สำหรับผู้เล่นสองคน
  • การออกแบบของ Linus ไม่จำเป็นต้องเปลี่ยนแปลงระบบฉันทามติของ Bitcoin แต่ความปลอดภัยของมันยังต้องผ่านการตรวจสอบอย่างอิสระในปี 2026

ย้อนกลับไปในปี 2008 เมื่อซาโตชิ นากาโมโตะกำลังเตรียมเผยแพร่เอกสารไวท์เปเปอร์ ผู้ประดิษฐ์ลึกลับผู้นี้ดูเหมือนจะมีเวลาพอที่จะร่างห้องโป๊กเกอร์ไว้ภายในโค้ดเบสของบิตคอยน์ ปุ่มสำหรับแจกไพ่ การพับไพ่ การตามเดิมพัน และการเพิ่มเดิมพัน ถูกซ่อนอยู่ภายในซอร์สโค้ดยุคแรกของบิตคอยน์ มีปัญหาเพียงอย่างเดียว คือ ไม่มีส่วนใดในนั้นที่เล่นโป๊กเกอร์ได้จริง

ซอฟต์แวร์นั้นมีองค์ประกอบของโต๊ะโป๊กเกอร์ แต่ไม่มีเกมจริงที่ทำงานอยู่เบื้องหลัง 18 ปีต่อมา นักวิจัยจากมหาวิทยาลัยสแตนฟอร์ด โรบิน ลินัส ได้แก้ไขปัญหาที่ซาโตชิทิ้งไว้ เมื่อวันพฤหัสบดี ลินัสได้เปิดตัว Bitcoin Poker ซึ่งเป็นโปรโตคอลที่อนุญาตให้สองคนเล่นเกม Texas Hold'em ที่แท้จริง โดยใช้บิตคอยน์เพื่อบังคับใช้กฎ ตัดสินการเดิมพัน และจัดการกับผู้เล่นที่ปฏิเสธที่จะร่วมมือ

"สวัสดีซาโตชิ, ข้อพิพาท BitVM ครั้งแรก, SHA2-ECDSA polyglot, ความบ้าคลั่งของ Binohash — ทั้งหมดนี้เพียงจดหมายจากแฟนๆ ที่เขียนด้วย Bitcoin Script เท่านั้น ไม่มีสิ่งใดสำคัญจนกว่าผมจะบรรลุวิสัยทัศน์เดิมของคุณ," ลินัสเขียนบน X "ดังนั้น ผมจึงเสร็จสิ้นโปรแกรมไคลเอนต์โป๊กเกอร์ที่คุณทิ้งไว้ไม่เสร็จใน Bitcoin v0.1 แล้ว ติดต่อผมมาเล่นสักไม่กี่มือครับ"

ห้องโป๊กเกอร์ที่ถูกลืมของซาโตชิได้รับชีวิตใหม่

โค้ดต้นฉบับของ Bitcoin มีไฟล์ชื่อ uibase.cpp ซึ่งประกอบด้วยองค์ประกอบกราฟิกสำหรับล็อบบี้และโต๊ะโป๊กเกอร์ อินเทอร์เฟซนี้มีวันที่สร้างคือ 16 เมษายน 2008 ซึ่งประมาณหกเดือนก่อนที่ซาโตชิจะเผยแพร่เอกสารไวท์เปเปอร์ของบิตคอยน์ ปุ่มที่มีชื่อ Deal Hand, Fold, Call และ Raise ชี้ให้เห็นถึงโครงการที่ทะเยอทะยานกว่าแอปพลิเคชันการชำระเงินธรรมดา แม้ว่าซาโตชิจะไม่เคยอธิบายอย่างเป็นทางการว่าเขาตั้งใจจะใช้ปุ่มเหล่านี้เพื่ออะไร

Bitcoin Poker screenshot.
เว็บไซต์ Bitcoin Poker. ภาพหน้าจอการโหลดกระเป๋าเงิน

ชิ้นส่วนแรกๆ เหล่านั้นไม่ใช่โปรแกรมลูกค้าโป๊กเกอร์ที่ทำงานได้ ยิ่งไม่ใช่ระบบการพนันที่ได้รับการสนับสนุนโดยบล็อกเชนเลย ไม่มีกลไกสำหรับการแจกไพ่ส่วนตัว การติดตามเงินเดิมพัน หรือการกำหนดว่าใครควรได้รับเงินรางวัล Linus ได้ชี้แจงความแตกต่างนี้อย่างชัดเจนในเอกสารไวท์เปเปอร์ Bitcoin Poker ของเขา โดยเขียนว่า "ส่วนประกอบอินเทอร์เฟซเหล่านี้ไม่ใช่โปรโตคอลโป๊กเกอร์ที่สมบูรณ์" แทนที่จะฟื้นฟูซอฟต์แวร์ที่ซาโตชิทิ้งไว้ Linus จึงตัดสินใจสร้างกลไกที่ขาดหายไปขึ้นใหม่ตั้งแต่ต้น

Bitcoin Poker screenshot.
แหล่งภาพ: Robin Linus บน X.

บริบททางประวัติศาสตร์ทำให้การค้นพบนี้ยิ่งน่าสนใจยิ่งขึ้น สภาคองเกรสได้ผ่านกฎหมาย Unlawful Internet Gambling Enforcement Act (UIGEA) ในเดือนตุลาคม 2006 ซึ่งมุ่งเป้าไปที่ธุรกรรมทางการเงินที่เกี่ยวข้องกับการพนันออนไลน์ที่ผิดกฎหมาย หลายปีต่อมา หน่วยงานรัฐบาลกลางได้ยึดโดเมนของผู้ให้บริการโป๊กเกอร์ออนไลน์รายใหญ่ในปฏิบัติการปราบปรามเมื่อเดือนเมษายน 2011 ที่รู้จักกันในชื่อ "Black Friday" ว่ากันว่าข้อจำกัดการพนันออนไลน์มีอิทธิพลต่อความคิดของซาโตชิหรือไม่ ยังไม่เป็นที่ทราบแน่ชัด แต่แนวคิดการเล่นโป๊กเกอร์โดยไม่พึ่งพาผู้ประมวลผลการชำระเงินแบบรวมศูนย์นั้นสอดคล้องกับวัตถุประสงค์ดั้งเดิมของบิตคอยน์อย่างแน่นอน

เก้าใบไพ่ สองผู้เล่น และไม่มีผู้แจกไพ่มาควบคุมเกม

Linus ผู้สมัครปริญญาเอกจากมหาวิทยาลัยสแตนฟอร์ด เป็นที่รู้จักดีที่สุดจากการพัฒนา BitVM ซึ่งเป็นข้อเสนอในปี 2023 สำหรับการตรวจสอบการคำนวณที่ซับซ้อนผ่านบิตคอยน์โดยไม่เปลี่ยนแปลงกฎการบรรลุฉันทามติของเขา งานวิจัยต่อมาของเขารวมถึง BitVM2, BitVM3, Zerosync และระบบเข้ารหัสอื่น ๆ Bitcoin Poker นำแนวทางสร้างสรรค์เดียวกันนี้มาประยุกต์ใช้กับสิ่งที่คุ้นเคยมากกว่าการคำนวณบนบล็อกเชนอย่างมาก

"เราอธิบายโปรโตคอลสำหรับเกม Texas Hold’em แบบลิมิตบน Bitcoin ที่มีผู้เล่นสองคน" บทความของ Linus อธิบายไว้ เกมนี้ประกอบด้วยผู้เล่นสองคน แต่ละคนได้รับไพ่ส่วนตัวสองใบ ในขณะที่ไพ่ชุมชนห้าใบจะปรากฏขึ้นตามลำดับการเดิมพัน ซึ่งต่างจากโป๊กเกอร์ออนไลน์แบบดั้งเดิม ไม่มีเซิร์ฟเวอร์คาสิโนหรือดีลเลอร์ที่เชื่อถือได้มาตัดสินว่าผู้เล่นจะได้รับไพ่ใด

แทนนั้น ผู้เล่นทั้งสองฝ่ายจะร่วมกันส่งข้อมูลลับเพื่อสร้างไพ่ ตามที่ Linus อธิบายว่า "จำเป็นต้องใช้ไพ่เพียง 9 ใบที่แตกต่างกันเท่านั้น" แทนที่จะสับไพ่ทั้งสำรับ 52 ใบ ระบบจะสร้างไพ่ 9 ใบที่จำเป็นสำหรับมือเดียวอย่างแม่นยำ โดยใช้การให้คำมั่นทางเข้ารหัสและหลักฐานความรู้เป็นศูนย์ (zero-knowledge proofs) เพื่อรักษาความยุติธรรมในการแจกไพ่

การจัดเรียงนี้รับประกันว่าผู้เข้าร่วมทั้งสองฝ่ายไม่สามารถควบคุมผลลัพธ์ได้อย่างลับๆ “ไม่มีผู้เล่นคนใดที่สามารถถอดรหัสได้ด้วยตัวเอง” บทความดังกล่าวระบุ โดยอธิบายถึงข้อมูลที่เข้ารหัสแบบร่วมซึ่งใช้ระหว่างขั้นตอนการตั้งค่า ก่อนที่เกมจะเริ่ม โปรโตคอลยังตรวจสอบการมีไพ่ซ้ำโดยไม่เปิดเผยตัวตนของไพ่ หากมีไพ่สองใบที่ตรงกัน การแจกไพ่ครั้งนั้นจะถูกยกเลิกทั้งหมด และเริ่มการแจกไพ่ใหม่

มีจุดน่าสนใจทางคณิตศาสตร์ที่แปลกประหลาดอยู่ที่นี่ การแจกไพ่ 9 ใบที่สร้างขึ้นแบบสุ่มมีโอกาสเพียงประมาณ 48% ที่จะผ่านการทดสอบไพ่ซ้ำ ซึ่งหมายความว่าระบบต้องใช้ความพยายามเฉลี่ย 2.08 ครั้งเพื่อสร้างมือไพ่ที่ยอมรับได้ นี่เป็นวิธีสับไพ่ที่ค่าใช้จ่ายสูง แต่ผลลัพธ์คือการแจกไพ่แบบส่วนตัวที่ไม่จำเป็นต้องไว้วางใจบุคคลที่นั่งอยู่ฝั่งตรงข้ามโต๊ะ

บิตคอยน์กลายเป็นผู้ตัดสินเมื่อมีใครบางคนปฏิเสธที่จะเล่นตามกติกา

การแจกไพ่เป็นเรื่องหนึ่ง แต่การรับประกันว่าผู้ชนะจะได้รับเงินรางวัลเป็นเรื่องอีกเรื่องหนึ่งโดยสิ้นเชิง โดยเฉพาะเมื่อทั้งสองฝ่ายไม่มีเหตุผลใดที่จะเชื่อถือกัน Linus แก้ไขปัญหานี้โดยการเตรียมชุดธุรกรรม Bitcoin ที่แสดงผลลัพธ์ที่เป็นไปได้ของเกมก่อนที่จะมีการวางเดิมพันครั้งแรก

"กฎกำหนดเป็นต้นไม้ที่มีจำนวนจำกัด" เอกสารไวท์เปเปอร์อธิบายไว้ แต่ละกิ่งแทนการกระทำที่อนุญาตได้ รวมถึงการพับไพ่ (folding), เช็ค (checking), ตามเดิมพัน (calling), เพิ่มเดิมพัน (raising), เปิดเผยไพ่ (revealing cards) หรือแบ่งเงินในหม้อ (settling the pot) ผู้เล่นจะอนุมัติความเป็นไปได้เหล่านี้ไว้ล่วงหน้า และกฎการทำธุรกรรมที่มีอยู่ของบิตคอยน์จะป้องกันไม่ให้พวกเขาดำเนินการที่ไม่ได้รับอนุญาตแบบฉับพลัน

"การกระทำที่ไม่ถูกต้องไม่มีการทำธุรกรรมที่ได้รับการอนุมัติล่วงหน้า" ลินัสเขียนไว้ โปรโตคอลนี้ยังใช้ลายเซ็นแบบ adaptor ซึ่งช่วยให้สามารถกู้คืนข้อมูลไพ่ที่จำเป็นได้เมื่อมีการลงลายเซ็นในธุรกรรมเฉพาะ ซึ่งช่วยป้องกันไม่ให้ผู้เล่นใช้ประโยชน์จากข้อกำหนดการเปิดเผยข้อมูลบางอย่างเพื่อได้เปรียบอย่างไม่ยุติธรรม

แต่จะเกิดอะไรขึ้นเมื่อมีใครนั้นตัดสินใจว่าพอแล้วและปฏิเสธที่จะเล่นต่อ? Linus ก็มีคำตอบสำหรับเรื่องนี้เช่นกัน "ทุกสถานะที่รอผู้เล่นยังเสนอ 'การใช้สิทธิ์หมดเวลาของฝ่ายตรงข้าม' ด้วย" บทความระบุไว้ หลังจากช่วงเวลาที่กำหนด ผู้เข้าร่วมที่เหลือสามารถเก็บเงินในกองเดิมพันที่ตกลงไว้ได้ ส่วนยอดเงินที่ยังไม่ได้ใช้ของผู้เล่นที่ถอนตัวจะถูกคืนให้

นักวิจัยยอมรับถึงความแตกต่างที่สำคัญ "โปรโตคอลสามารถบังคับให้มีการชำระบัญชีได้ แต่ไม่สามารถบังคับให้ใครเปิดเผยไพ่ได้" กล่าวอีกนัยหนึ่ง Bitcoin ไม่สามารถบังคับให้ใครเล่นจนจบเกมได้ แต่สามารถบังคับให้รับผลทางการเงินจากการถอนตัวได้

เกมโป๊กเกอร์ 56,132 โหนด มีเงื่อนไขแฝง

การออกแบบนี้ฉลาดมาก แต่ไม่มีใครควรเข้าใจผิดว่ามันเป็นแอปพลิเคชันโป๊กเกอร์บนมือถือแบบเบาๆ การตั้งค่าอ้างอิงของ Linus ซึ่งมี 100 big blinds ต่อผู้เล่น และ 4 ครั้งเดิมพันต่อรอบการลงเดิมพัน ประกอบด้วย 56,132 โหนดเชิงตรรกะ พร้อมด้วยลายเซ็นธรรมดา 54,855 รายการ และแพ็กเกจการเปิดเผยไพ่ 1,306 รายการ แต่ละแพ็กเกจมีลายเซ็นอะแดปเตอร์อีก 52 รายการ

ภาพถ่ายการเตรียมการแบบสมบูรณ์มีขนาด 8,416,186 ไบต์ หรือประมาณ 8.4 MB ในการทดลองสามครั้งบนเบราว์เซอร์เดสก์ท็อป การเตรียมและบันทึกต้นไม้ธุรกรรมใช้เวลาอยู่ระหว่าง 26.39 ถึง 27.26 วินาที Linus เตือนว่า "นี่เป็นการวัดผลในสภาพแวดล้อมทดสอบ ไม่ใช่การรับประกันเวลาเริ่มต้น" ตัวเลขเหล่านี้อธิบายถึงการดำเนินการอ้างอิง (reference implementation) ไม่ใช่ประสิทธิภาพที่ผู้ใช้ควรคาดหวังจากผลิตภัณฑ์ที่เสร็จสมบูรณ์

โชคดีที่การเล่นปกติไม่จำเป็นต้องส่งข้อมูลชุดธุรกรรมขนาดใหญ่นั้นออกไป "โหมดการเล่นที่ตั้งใจไว้คือแบบนอกเชน" เอกสารอธิบาย ผู้เล่นแลกเปลี่ยนข้อความแบบส่วนตัว โดยเก็บธุรกรรมบิตคอยน์ไว้เป็นสำรองในกรณีที่ความร่วมมือล้มเหลว บล็อกเชนทำหน้าที่เสมือนผู้ตัดสินที่รออยู่ข้างสนาม พร้อมที่จะตัดสินข้อพิพาทเมื่อจำเป็น

เกือบ 18 ปีต่อมา แนวคิดโป๊กเกอร์ของซาโตชิมีกฎเกณฑ์ที่ชัดเจนแล้ว

ยังมีข้อจำกัดอยู่บ้าง Bitcoin Poker รองรับผู้เล่นเพียงสองคนเท่านั้น เนื่องจากผู้เล่นเพิ่มเติมอาจแบ่งปันข้อมูลเกี่ยวกับไพ่ของตนอย่างลับๆ การเปิดไพ่ต่อสาธารณะอาจทำให้มือไพ่ของทั้งสองฝ่ายถูกเปิดเผย และโครงสร้างทางเข้ารหัสยังต้องการการวิเคราะห์ความปลอดภัยอย่างอิสระก่อนที่ใครจะพิจารณาว่ามันพร้อมสำหรับการใช้งานจริง

Linus ไม่พยายามปกปิดข้อบกพร่องเหล่านั้น "นี่ไม่ใช่การพิสูจน์อย่างเป็นทางการของโปรโตคอลที่สมบูรณ์สำหรับฝ่ายที่มีเจตนาร้าย" บทความดังกล่าวระบุไว้ การทดสอบที่มีอยู่โดยใช้ Bitcoin Core ตรวจสอบส่วนประกอบสำคัญ รวมถึงการจ่ายเงินและเส้นทางหมดเวลา แต่ "การครอบคลุมการทดสอบไม่ใช่การพิสูจน์ด้านความปลอดภัย"

อย่างไรก็ตาม ความสำเร็จนี้มีความหมายที่เกินกว่าเกมโป๊กเกอร์ Linus ได้แสดงให้เห็นว่าความสามารถในการเขียนสคริปต์และการลงนามที่มีอยู่ของ Bitcoin สามารถบังคับใช้เกมที่มีข้อมูลลับ การตัดสินใจที่ซับซ้อน และการจ่ายเงินได้ โดยไม่ต้องเปลี่ยนแปลงกฎพื้นฐานของเครือข่าย

ผู้ประดิษฐ์ Bitcoin ที่ลึกลับได้ทิ้งไว้โต๊ะโป๊กเกอร์ที่มีปุ่มต่าง ๆ ที่แทบไม่มีประโยชน์อะไรเลย 18 ปีต่อมา Linus ได้พัฒนากฎการเข้ารหัสที่จำเป็นเพื่อแจกไพ่ เล่นมือ และแบ่งเงินในกอง คำถามที่เหลืออยู่คือว่าโครงสร้างที่ซับซ้อนนี้สามารถกลายเป็นสิ่งที่ใช้งานได้จริงพอให้ผู้เล่นทั่วไปลองเล่นดูได้หรือไม่

ผลการสำรวจล่าสุดชี้ว่า มีชาวอเมริกันประมาณ 33 ล้านคน ที่ยังไม่มีสินทรัพย์คริปโตในมือ มีแนวโน้มที่จะซื้อในปีนี้

อ่านตอนนี้: ผลสำรวจ: 33 ล้านคนอเมริกันสนใจสกุลเงินดิจิทัล แต่คลื่นถัดไปต่างออกไป

บทความนี้แปลจากภาษาอังกฤษโดยใช้ AI เวอร์ชันภาษาอังกฤษต้นฉบับเป็นแหล่งข้อมูลที่เชื่อถือได้ การแปลอัตโนมัติอาจมีความไม่ถูกต้อง โดยเฉพาะอย่างยิ่งในคำศัพท์ทางกฎหมายและข้อบังคับ