การขุด Bitcoin ทำงานอย่างไร?
ทุกๆ Node บนเครือข่าย Bitcoin จะกระจายข้อมูลของรายการธุรกรรมใหม่ๆ พวกมันจะเก็บรายการธุรกรรมในแหล่งเก็บความทรงจำ (Memory Pool)
แหล่งเก็บความทรงจำ (Memory Pool) คือพื้นที่ของ Node ที่จะจัดเก็บหน่วยความทรงจำของข้อมูลรายการทำธุรกรรม
แต่ละ Node จะมีทางเลือกในการพยายามขุดรายการธุรกรรมในแหล่งเก็บความทรงจำ (Memory Pool) ให้กลายเป็นไฟล์ข้อมูล ไฟล์ข้อมูลเหล่านี้คือ Ledger หรือบัญชีที่จะจัดเก็บรายการทำธุรกรรมทั้งหมดของ Bitcoin และมันจะถูกเรียกว่า Blockchain
คุณสามารถมองว่าแหล่งเก็บความทรงจำ (Memory Pool) เหล่านี้เป็นรายการธุรกรรมที่ “ลอยอยู่” และ Blockchain จะเป็น “คลังเก็บเอกสาร” ของรายการธุรกรรม
อย่างไรก็ตาม ในการเพิ่มรายการธุรกรรมจากแหล่งเก็บความทรงจำ (Memory Pool) เข้าไปบน Blockchain Node จะต้องใช้คอมพิวเตอร์ที่มีพลังประมวลผลสูง
พลังประมวลผลจะช่วยผลักดันให้ความท้าทายที่มีอยู่บนแหล่งเก็บความทรงจำ (Memory Pool) สามารถแก้ไขลุล่วงไปได้
ความท้าทายคืออะไร?
โอเค ลองจินตนาการว่าคุณคือ Node ในช่วงขณะหนึ่งคุณสามารถย่อรายการธุรกรรมในแหล่งเก็บความทรงจำ (Memory Pool) เข้าไปใน “เส้น” เพียงเส้นเดียวที่มีเพียงตัวเลขและตัวอักษร
เส้นนี้จะแสดงถึงรายการทำธุรกรรมทั้งหมดที่อยู่ในแหล่งเก็บความทรงจำ (Memory Pool)
ตอนนี้ เป้าหมายของคุณคือการ Hash เส้นนี้ด้วยเลขอื่นๆ เพื่อที่จะพยายามและเอาเส้นใหม่ที่เริ่มต้นด้วยเลข 0 ออกมาให้ได้
ส่วนใหญ่แล้วคุณจะได้รับผลลัพธ์ที่ไม่ได้ใกล้เคียงสักเท่าไหร่
แต่หากคุณทำต่อไป คุณอาจจะเจอตัวเลขที่ใช้งานได้ก็ได้
ตอนนี้ มันอาจจะฟังดูง่ายดาย แต่จริงๆ แล้วมันก็ยากอยู่เพราะเป็นเรื่องที่ค่อนข้างจะไม่ตายตัวและคุณยังทำได้เพียงแค่หวังว่าคุณจะพบเลขที่ถูกต้องได้หลังจากที่ลองผิดลองถูกหลายครั้ง และนั้นคือสิ่งที่เรียกว่าการขุด มีการ Hash จำนวนมาก (ใช้พลังในการประมวลผลของคอมพิวเตอร์ของคุณอย่างมาก) และหวังว่าจะโชคดี
แต่หากคุณโชคดีพอที่จะหาผลเลข Hash สำเร็จ รายการธุรกรรมบนแหล่งเก็บความทรงจำ (Memory Pool) จะถูกเก็บเข้าไปบน Blockchain ละทุกๆ Node บนเครือข่ายจะเพิ่มบล็อกของรายการธุรกรรมของคุณเข้าไปใน Blockchain ของพวกเขา
คุณจะได้รับ Bitcoin จำนวน 25 เหรียญเป็นรางวัลในความพยายามของคุณ พร้อมกับเก็บค่าธรรมเนียมที่ติดมากับรายการธุรกรรมที่คุณเพิ่งเพิ่มเข้าไปบน Blockchain
นี้คือการอธิบายการที่บล็อกถูกเพิ่มเข้าไปบน Blockchain เวอร์ชั่นแบบง่าย สำหรับรายละเอียดเพิ่มเติม อ่านต่อได้ที่บทความ Blocks คืออะไร?
ทำไมการขุด Bitcoin จึงสำคัญ?
ถามได้ดี ทำไมไม่เพิ่มรายการธุรกรรมเข้าไปบน Blockchain ตรงๆ เลยล่ะ
เพราะว่าการขุดจะทำให้ทั้งเครือข่าย Bitcoin ตกลงร่วมกันว่ารายการธุรกรรมไหนควรจะต้อง ”ถูกเก็บ” เอาไว้ และเป็นการป้องกันการโกงในสกุลเงินดิจิทัล
ไปต่อเลยนะ
เมื่อคุณทำรายการธุรกรรม Bitcoin ตัว Node ที่อยู่บนเครือข่ายจะไม่ได้รับรู้มันเลยในทันที แต่รายการธุรกรรมจะเดินทางข้ามผ่านเครือข่าย Bitcoin โดยการส่งผ่านจาก Node ไปยัง Node อื่นๆ เสียก่อน
เราเรียกเส้นทางของรายการธุรกรรมที่ข้ามผ่านเครือข่ายว่า การส่งต่อข้อมูล(propagation)
อย่างไรก็ตาม มันก็มีความเป็นไปได้ที่จะสร้างรายการธุรกรรมอื่นๆ โดยการใช้ Bitcoin เดิมและใส่มันเข้าไปในรายการธุกรรมบนเครือข่ายเช่นเดียวกัน ยกตัวอย่างเช่น คุณสามารถซื้อเบียร์ด้วย Bitcoin จากนั้นก็พยายามที่จะเอา Bitcoin เหล่านั้นซื้อพิซซ่าด้วยทันทีอย่างรวดเร็ว
เรียกอีกอย่างหนึ่งว่าการโกง
บาง Node จะได้รับรายการธุรกรรมพิซซ่าก่อน (และไม่สนใจรายการธุรกรรมเบียร์) ในขณะที่บาง Node จะได้รับธุรกรรมเบียร์ก่อน (และไม่สนใจรายการธุรกรรมพิซซ่า)
แม้ว่าคุณอาจจะสร้างรายการธุรกรรมพิซซ่าหลังจากรายการธุรกรรมซื้อเบียร์ แต่ตามการเดินทางของรายการธุรกรรมข้ามเครือข่าย Bitcoin ในกรณีนี้เครือข่ายจะไม่ยอมอนุมัติทั้งรายการธุรกรรมเบียร์และพิซซ่า
ถ้าอย่างนั้นเครือข่ายจะตัดสินใจอย่างไรว่าจะอนุมัติรายการธุรกรรมใหน?
แน่นอนว่าต้องอาศัยการขุด
หาก Node บนเครือข่ายเอาชนะความท้าทายเรียบร้อย จากนั้นรายการธุรกรรมในแหล่งเก็บความทรงจำ(Memory Pool) ก็จะถูกเพิ่มเข้าไปบนเครือข่าย Blockchain
ถ้า Node ของรายการธุกรรมพิซซ่ขุดบล็อกสำเร็จ จากนั้นรายการธุรกรรมที่ถูกเพิ่มเข้าไปบน Blockchain และรายการธุรกรรมเบียร์ก็จะหายไปจากระบบ
ดูเหมือนว่าจะดูเป็นพฤติกรรมที่นอกรีตไปสักหน่อยในการเลือกรายการธุกรรม ผมรู้ แต่การใช้ระบบฉันทามติก็จะดูเป็นทางแก้ไขปัญหาความขัดแย้งในด้านของข้อมูลได้
ประโยชน์อื่นๆ ของการขุด Bitcoin
หากคุณอยากจะลองควบคุมบล็อก (ยกตัวอย่างเช่น รายการธุรกรรม) ที่จะถูกเพิ่มเข้าไปบน Blockchain คุณจะต้องแข่งแก้ไขปัญหาบล็อกกับ Node อื่นๆ ที่ทำการขุด Bitcoin อยู่บนเครือข่ายเช่นเดียวกัน
พูดอีกอย่างก็คือ คุณต้องมีคอมพิวเตอร์ที่มีพลังประมวลผลที่สามารถทำงานได้ดีมากกว่าเทียบกับคอมพิวเตอร์เครื่องอื่นๆ ที่ทำการขุด Bitcoin อยู่ในระบบรวมกันเพื่อที่แก้ไขโจทย์ได้ไวกว่า
ซึ่งมันก็มีความเป็นไปได้ คุณแค่ต้องลงทุนใช้เงินราวๆ 1 พันล้านเหรียญดอลล่าร์สหรัฐในการซื้อฮาร์ดแวร์ก็โอเคแล้ว (แม้ว่าตัวเลขนี้จะเพิ่มขึ้นมาเรื่อยๆ ตามจำนวนนักขุดใหม่ๆ เข้าในระบบ)
เราจะเริ่มต้นการขุดได้อย่างไร?
อยากจะได้รับรางวัล 25 เหรียญ Bitcoin ใช่ไหมล่ะ?
ในการเริ่มต้นการขุด คุณจะต้องเข้าไปในโปรแกรมใช้งาน Bitcoin
อย่างไรก็ตาม เนื่องจากข้อเท็จจริงที่ว่าการพยายามขุด Bitcoin โดยใช้ CPU บนเครื่องคอมพิวเตอร์แบบ laptop ของคุณอาจจะไม่พอกับการขุดเพราะว่าการขุดจะไม่อาจจะแสดงผลบนหน้าจอซอร์ฟแวร์ได้
แต่ไม่ต้องกังวลไป เพราะว่าการทำงานยังคงอยู่ คุณแค่ต้องเพิ่มคำสั่งแทนเท่านั้น
ไปที่ Help > Debug Window > Console
และป้อนคำสั่งนี้ไป
setgenerate true
นี้คือคำสั่งที่จะ”เปิดการขุด” โปรแกรมของคุณตอนนี้จะสามารถสร้างบล็อก (ของรายการธุรกรรม) จากหน้าธุรกรรมบนแหล่งเก็บความทรงจำ (memory pool) และเริ่มต้น Hash มันได้แล้ว
คุณจะรู้ว่ามันกำลังทำงานเพราะว่ากำลังประมวลผลจะเริ่มส่งเสียงเมื่อกำลังทำการ Hash เมื่อบล็อกทำการหาผลลัพธ์ที่ถูกต้อง
มันอาจจะไม่ได้ช่วยแก้ไขปัญหาบล็อกเท่าไหร่ (มันอาจจะมีปาฏิหาริย์) แต่มันก็สนุกดีที่จะได้ลองทำดู
ในการปิดการขุดให้ป้อนคำสั่งนี้เข้าไป