อะไรคือ Bitcoin Mining

เห็นโพสต์ดีๆ เลยมาแปลให้อ่านกันครับ เป็นโพสต์อธิบาย Bitcoin Mining เป็นภาษาแบบบ้านๆ

ก่อนอื่นต้องเริ่มที่คำศัพท์ที่ต้องรู้จักกันก่อนครับ ดังต่อไปนี้

Hash

คำว่าแฮช คือคำตอบจากสมการคณิตศาสตร์ที่ซับซ้อน ซึ่งสามารถแก้ได้โดยง่าย แต่ไม่สามารถทำย้อนกลับได้ และไม่สามารถคาดการณ์คำตอบได้ ยกตัวอย่างเช่น ถ้าผมบอกว่าผมมีเลขสองตัวรวมกันได้ 14,862 คงตอบไม่ได้ว่าเลขสองตัวนั้นเป็นเลขตัวไหนบ้าง แต่ถ้าผมบอกว่ามันเกิดจาก 3,608 + 11,254 เราสามารถพิสูจน์ได้ง่ายนิดเดียว แฮชก็มีลักษณะแบบนี้ แต่ใช้สูตรที่ซับซ้อนมาก

Block

ธุรกรรมต่างๆ ใน Bitcoin จะจัดรวมกลุ่มกันเป็นกล่องที่เรียกว่า block ซึ่งแต่ละ block จะเชื่อมหากันในลักษณะที่ว่า block อันใหม่ จะช่วยยึนยันว่า block อันก่อนถูกต้อง

ถ้าใครเคยใช้ Bitcoin อาจจะเคยเห็นข้อความทำนองว่า “12 confirmations” หมายความว่า บล็อคที่เก็บธุรกรรมของเรานั้นอยู่ห่างจากบล็อคล่าสุด 12 บล็อค ยิ่งห่างมากเท่าไร ก็ยิ่งยากต่อการถูกเปลี่ยนแปลงจากแฮคเกอร์

Difficulty

คำนี้แปลตรงตัวว่าความยาก ค่าความยากเป็นตัวเลขที่ระบุว่าแฮชที่ “ชนะ” นั้นหายากแค่ไหน (จะอธิบายต่อไป) ตอนนี้ขอให้เข้าใจว่า ค่าความยากเป็นค่าที่ระบบ Bitcoin ปรับตัวเองเพื่อให้เหมาะสมกับพลังประมวลผลของเครื่องที่ต่อกับระบบอยู่ โดยแต่ละบล็อคนั้นควรจะใช้เวลาสร้างประมาณ 6 บล็อคต่อชั่วโมง และการปรับค่าความยากนี้จะช่วยให้ Bitcoin ยากพอที่จะใช้เครื่องประมวลผลทั้งหมดสร้าง Block ได้ในเวลาประมาณ 10 นาที

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

จำนวน Bitcoin ที่ได้รับนี้จะมาจากหลายๆ ปัจจุบัน โดยจะมีค่าตั้งต้นไว้ก่อนเพื่อส่งเสริมการ mining ในระหว่างที่ Bitcoin กำลังตั้งตัว ซึ่งตอนนี้ค่านี้คือ 50 BTC แต่เมื่อเวลาผ่านไป ค่านี้จะหารครึ่งไปเรื่อยๆ จนถึงศูนย์ นอกจากนี้ ธุรกรรมบางรายการยังมีการหักค่าธรรมเนียม (แล้วแต่จะให้ แต่ถ้าไม่ให้ miner อาจจะไม่ยอมใส่ธุรกรรมใน block ทำให้ธุรกรรมไม่มีผล) ซึ่งธุรกรรมนี้ผู้พบก็จะได้ไปเช่นเดียวกัน ในอนาคตค่าธรรมเนียมจะเป็นรายได้เดียวจากการ mining

ในสมัยแรก จำนวน miner ของระบบมีน้อยมาก และอุปกรณ์ก็ด้อยประสิทธิภาพ คือคอมทั่วๆ ไป แต่พวกนี้วันนึงได้หลายร้อย BTC แต่ในปัจจุบันมี miner จำนวนมาก และอุปกรณ์ก็เทพด้วย แต่ถึงจะใช้อุปกรณ์ราคาหลายหมื่นก็ต้องใช้เวลากว่า 2-3 เดือนกว่าจะได้ Block มาสักอัน

ก็มีผู้คิดแก้ไขปัญหานี้ โดยการสร้าง Mining pool ขึ้นมา ซึ่งหลักการคือให้ miner รวมกลุ่มกันสร้าง block ขึ้นมา และเมื่อสร้าง block สำเร็จแล้วก็จะแบ่งรายได้กันด้วยวิธีต่างๆ ที่ยุติธรรม (มีหลายวิธี แต่จะไม่กล่าวถึงในบทความนี้)

ข้างต้นนี้เป็นหลักการพื้นฐานของ Bitcoin Mining ต่อไปจะเป็นข้อสังเกตที่ควรทราบ

  • ระบบแฮชไม่ได้ทำไว้ให้ miner ไม่สะดวกอย่างเดียว แต่ยังทำให้แฮคเกอร์แก้ไขเนื้อหา block ได้ยากอีกด้วย เพราะจะต้องหาค่าแฮชใหม่ที่เป็นไปตามกฎเดิม แถมการจะเขียนทับข้อมูลเก่านั้น ไม่ใช่แค่หาแฮชได้อย่างเดียว จะต้องหาให้เร็วกว่า miner ทั่วไป ซึ่งแน่นอนว่าต้องใช้พลังประมวลผลจำนวนมหาศาล แต่ได้ประโยชน์น้อย ฉะนั้น ยิ่งมี miner มาก ค่าความยากก็ยิ่งยาก และยิ่งความยากมากขึ้น ก็ทำให้การฉ้อโกงในลักษณะนี้เป็นไปได้ยาก (ซึ่งในปัจจุบันนี้ค่าความยากมีค่ามากจนอาจจะต้องใช้อุปกรณ์หลายพันล้านเหรียญเพื่อจะเขียนทับธุรกรรมรายการเดียว)
  • ข้างบนจะบอกไว้ว่ารางวัลจากการหา block นั้นเริ่มที่ 50 แล้วหักครึ่งไปเรื่อยๆ จนเหลือ 0 ฉะนั้นถึงจุดนึงจะไม่มี bitcoin เกิดใหม่อีกแล้ว ในระบบจะมีมากที่สุดแค่ประมาณ 21 ล้าน BTC
  • นอกจากที่บอกว่าจำนวน miner ปัจจุบันมีมากและอุปกรณ์ก็ความเร็วสูงแล้ว ยังมีนวัตกรรมใหม่มาอีกด้วย คือในสมัยแรกคนใช้ CPU ธรรมดาประมวลผล แต่วันดีคืนดีมีคนคิดว่า เออ การ์ดจอที่เราไว้เล่นเกมเนี่ยมันคิดเลขแบบเดียวกันนี้เร็วกว่าเป็นร้อยเท่า ฉะนั้นโลกก็เปลี่ยนน่ะสิครับ แถมในปัจจุบันมันยังมีบริษัทที่คิดมากไปกว่านั้น พัฒนาอุปกรณ์เฉพาะทางกันไปเลย เรียกได้ว่าเร็วแรงกว่าการ์ดจอเสียอีก พวกนี้คือความเสี่ยงของการลงทุน Bitcoin miner เพราะสักวันอาจจะโดนเทคโนโลยีใหม่แซงหน้าไปไม่เห็นฝุ่นได้
  • การขุด Bitcoin ไม่ใช่การได้เงินฟรีๆ มันต้องลงทุนอุปกรณ์ (โอเค หรืออาจจะเอาที่ใช้อยู่แล้วก็ได้ถ้ามันเร็ว) และยังกินไฟฟ้า ฉะนั้นถ้าคุณต้องจ่ายค่าไฟเอง การจะได้กำไรไม่ใช่เรื่องง่าย​ (ผู้แปล: ผมเคยคำนวณจากค่าไฟของ กฟน.​ และการใช้ไฟฟ้าของ MacBook Pro แล้วไม่คุ้มครับ)
  • ทุกอย่างใน Bitcoin ไม่มีองค์กรกลาง การขุดก็เช่นเดียวกัน ทุกคนในระบบยอมรับกฎเดียวกัน ฉะนั้น ที่ผมเขียนไปว่า “Bitcoin มันทำแบบนี้” ถ้าพูดให้ถูกคือ “กฎเขียนไว้ว่าอย่างนี้” และทุกคนในระบบยอมรับและควบคุมรักษากฎ
  • สุดท้าย ปัจจัยต่างๆ ที่บอกในนี้ไม่ได้เกี่ยวข้องกับอัตราแลกเปลี่ยน ฉะนั้นถ้าอยู่ดีๆ มูลค่า Bitcoin เปลี่ยน มันอาจจะทำให้การขุดเกิดหรือตายได้เลย แต่อย่าลืมว่าถ้าขุดแล้วเจ๊ง ก็จะมีคนเลิก ความยากของระบบก็จะปรับลง แต่ก็ต้องใช้เวลา

มีคนสรุปกระบวนการ Mining ไว้แบบนี้ (จาก comment ในโพสต์ต้นฉบับ) “แฮชเปรียบเสมือน barcode อันนึง และการหา block ก็เหมือนการหาบาร์โค้ดที่มีจำนวนน้อยที่สุดในมหานครเมืองนึง”