ข้ามไปยังเนื้อหา
Tayakorn
Bitcoin Handbook

Bitcoin Handbook

LEVEL 2 · กลไกเต็มวงจร

mining — จับฉลากด้วยไฟฟ้า

โจทย์ท้ายบทที่แล้วบวกคำถามข้อ 3 จากบทที่ 3 มาบรรจบกันตรงนี้: ใครควรได้สิทธิ์เขียนหน้าถัดไปของสมุด? เปิดให้เขียนฟรีทุกคนพร้อมกัน สมุดเละและโจรพิมพ์สมุดปลอมได้ไม่จำกัด แต่ถ้า เลือก ใครสักคนมาเป็นคนเขียน ก็เท่ากับตั้งนายทะเบียนกลับมาทั้งที่เพิ่งไล่ออกไป — ทางออกของ bitcoin แหวกทุกตำรา: ไม่เลือกใครเลย ให้ จับฉลาก แต่เป็นฉลากที่ต้องซื้อด้วยของจริงที่ปลอมไม่ได้ในโลกฟิสิกส์: พลังงาน

7.1 ปริศนาที่แก้ได้ทางเดียวคือ "ลองมั่วเป็นล้านล้านครั้ง"

กติกามีอยู่ว่า ใครอยากเขียนหน้าถัดไป ต้องหาเลขปริศนาตัวหนึ่ง (วงการเรียก nonce) มาแปะบนหัวกระดาษ โดยเลขนั้นต้องทำให้ hash ของทั้งหน้าออกมา "สวย" ตามเงื่อนไขที่ระบบกำหนด — เช่น ขึ้นต้นด้วยศูนย์ติดกันยาวเหยียด

จากบทที่ 6 คุณรู้แล้วว่า hash เปลี่ยนคาดเดาไม่ได้แม้ข้อมูลขยับตัวเดียว ดังนั้นจึง ไม่มีทางลัด: อยากได้ hash สวยต้องนั่งเปลี่ยนเลขแล้วลองใหม่ เปลี่ยนแล้วลองใหม่ วนไปหลักล้านล้านครั้งต่อวินาที ใครลองได้มากกว่าก็มีลุ้นเจอก่อน เหมือนลอตเตอรี่ที่ยิ่งซื้อหลายใบยิ่งมีสิทธิ์ถูก — แต่ตั๋วแต่ละใบจ่ายด้วยค่าไฟจริง เครื่องจริง ความร้อนจริง กระบวนการนี้ชื่อทางการว่า proof-of-work และคนที่ทำมันคือ miner (นักขุด)

ความงามซ่อนอยู่ที่ความไม่สมมาตรเดิมที่เราเจอมาแล้วสองบท: หา nonce ยากระดับโรงงาน แต่ ตรวจ ว่า nonce ถูกใช้เวลาเสี้ยววินาที — ทุกเครื่องในระบบจึงตรวจงานของ miner ได้ทันทีโดยไม่ต้องเชื่อใจใคร

หา nonce ที่ทำให้ hash ของทั้งหน้าขึ้นต้นด้วยศูนย์ยาว ๆร่างหน้าใหม่ธุรกรรม + hash หน้าก่อนnonce = ?ช่องเดียวที่ขยับได้nonce 1hash 8f2a91b4nonce 2hash c47e02danonce 3hash 1b9df6c0nonce 4838271hash 00000a7cเหมือนซื้อลอตเตอรี่ยิ่งลองมาก ยิ่งมีสิทธิ์เจอก่อนตั๋วทุกใบจ่ายด้วยค่าไฟจริงproof-of-workเจอแล้ว — ได้สิทธิ์เขียนหน้านี้ลงสมุดหา = ยากมหาศาลต้องเดาหลักล้านล้านครั้งต่อวินาที เผาไฟจริงตรวจ = ง่ายมากเอา nonce ไปแทน แล้ว hash รอบเดียว เสี้ยววินาที
FIG 7.1 ช่องเดียวที่นักขุดขยับได้คือ nonce — ไล่เดาไปเรื่อย ๆ จนกว่า hash ของทั้งหน้าจะเข้าเงื่อนไข ไม่มีทางลัด ตั๋วฉลากทุกใบจึงจ่ายด้วยพลังงานจริง · แต่ความไม่สมมาตรคือหัวใจ: หายากระดับโรงงาน ตรวจง่ายเสี้ยววินาที ทุกเครื่องจึงตรวจงานกันเองได้โดยไม่ต้องเชื่อใจใคร (กระบวนการนี้ชื่อ proof-of-work)

7.2 ระบบปรับความยากเองไม่ให้ใครเร่งสมุดได้

ถ้าเครื่องขุดทั้งโลกแรงขึ้นสิบเท่า ฉลากจะถูกเจอเร็วขึ้นสิบเท่าไหม? ไม่ — ทุก ๆ 2,016 หน้า (ราวสองสัปดาห์) ระบบจะวัดว่าช่วงที่ผ่านมาหน้าใหม่เกิดเร็วหรือช้ากว่าเป้า แล้วขยับความยากของปริศนาให้จังหวะกลับมาอยู่ที่ เฉลี่ยราวสิบนาทีต่อหน้า เสมอ กติกานี้ฝังในซอฟต์แวร์ ไม่มีใครสั่งขยับได้ — อัดเครื่องเข้ามาแค่ไหน สมุดก็เดินเท่าจังหวะเดิม (ทำไมต้องสิบนาที? เก็บคำถามนี้ไว้ บทที่ 12 ตอบ)

7.3 ทำไมคนแปลกหน้าถึงยอมเผาไฟให้ระบบ

ไม่มีใครขุดเพราะใจบุญ ทุกหน้าที่เขียนสำเร็จ กติกาอนุญาตให้ miner เขียนธุรกรรมพิเศษหนึ่งบรรทัดจ่ายรางวัลให้ตัวเอง: เหรียญใหม่จำนวนที่กติกากำหนด บวกค่าธรรมเนียมทุกบาทของธุรกรรมในหน้านั้น (ค่าธรรมเนียมจากบทที่ 5 เดินทางมาถึงกระเป๋าผู้รับตรงนี้เอง) — และนี่คือประตูเดียวในทั้งระบบที่เหรียญใหม่เกิดขึ้นได้ ข้อเท็จจริงเล็ก ๆ นี้จะกลายเป็นเรื่องใหญ่มากในบทที่ 11

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

อ่านแบบเต็มเล่ม