Pruk on Nostr: บิตคอยน์ทำงานอย่างไร? (Part 3) — ...
บิตคอยน์ทำงานอย่างไร? (Part 3) — ความยากในการขุดบิตคอยน์
ในโพสต์ที่แล้ว เราคุยกันว่าการขุดบิตคอยน์คือการแข่งขันหาค่า Hash ที่ต่ำกว่า "เป้าหมาย" ที่เครือข่ายกำหนด
ใครที่พบค่าที่ถูกต้องก่อนจะมีสิทธิ์บันทึกบล็อกใหม่ลงในบัญชีธุรกรรม
และเราเรียกบุคคลหรือกลุ่มคนที่รันโหนดเพื่อขุดบิตคอยน์นี้ว่า “นักขุด” ครับ
.
ในวันนี้ผมจะมาลงรายละเอียดอีกซักหน่อยเกี่ยวกับความยากในการขุดบิตคอยน์กันนะครับ
.
ก่อนอื่น เรามาดูเรื่องความสัมพันธ์ของ “เป้าหมาย” กับ ความยาก” ในการขุดกันนะครับ
.
เป้าหมายต่ำลง = ขุดยากขึ้น
ลองนึกภาพว่าเรามีตัวเลขสุ่มระหว่าง 0 ถึง 1,000,000 แล้วกำหนดเงื่อนไขว่า
.
ถ้าสุ่มได้ตัวเลขต่ำกว่า 100,000 ถือว่าผ่าน → โอกาสผ่าน 10%
ถ้ากำหนดให้ต่ำกว่า 10,000 ถือว่าผ่าน → โอกาสผ่าน 1%
ถ้ากำหนดให้ต่ำกว่า 1,000 ถือว่าผ่าน → โอกาสผ่าน 0.1%
.
ดังนั้น ยิ่งเป้าหมายต่ำ (ตัวเลขเล็ก) การสุ่มหาตัวเลขที่ถูกต้องก็ยิ่งยากขึ้น
Proof of Work ก็ทำงานแบบเดียวกันครับ
.
ถ้าเครือข่ายกำหนดค่าเป้าหมายสูง (ตัวเลขใหญ่) → นักขุดมีโอกาสพบค่า Hash ได้ง่าย
ถ้าค่าเป้าหมายต่ำ (ตัวเลขเล็ก) → นักขุดต้องลองคำนวณซ้ำ ๆ มากขึ้นกว่าจะพบค่าที่ถูกต้อง
.
ทำไมต้องมีการปรับระดับความยาก?
เพราะพลังประมวลผลของเครือข่ายมีการเปลี่ยนแปลงอยู่ตลอดเวลาครับ
.
ถ้านักขุดเพิ่มขึ้น จำนวนโหนดมากขึ้น หรือมีเครื่องขุดที่มีประสิทธิภาพสูงขึ้น
บล็อกใหม่จะถูกขุดเร็วขึ้น และอาจเร็วจนเกินไป ทำให้โหนดทั้งเครือข่ายอัปเดตและข้อมูลไม่ทันครับ
เพราะเครือข่ายบิตคอยน์นั้นมีโหนดกระจายตัวทั่วโลก ทุกโหนดต้องรับ-ส่งและตรวจสอบธุรกรรมกับโหนดอื่น ๆ ผ่านอินเทอร์เน็ต ซึ่งต้องใช้เวลา
ถ้าบล็อกถูกสร้างเร็วเกินไป ข้อมูลอาจยังไม่ถูกกระจายไปครบทุกโหนด เกิดความเสี่ยงที่บัญชีธุรกรรมจะแตกออกเป็นหลายเวอร์ชันครับ
.
หรือถ้านักขุดลดลง อาจเพราะโหนดที่ขุดบางส่วนปิดตัวลง
บล็อกใหม่ถูกขุดช้าลง ทำให้ธุรกรรมใช้เวลานานกว่าจะถูกยืนยัน ส่งผลต่อประสิทธิภาพของเครือข่าย
.
ดังนั้นหากไม่มีการควบคุมความเร็วในการขุด ระบบบิตคอยน์จะขาดเสถียรภาพครับ
.
บิตคอยน์จึงถูกออกแบบให้สร้างบล็อกใหม่เฉลี่ยทุก 10 นาที ด้วยกลไกที่เรียกว่า "การปรับระดับความยาก" (Difficulty Adjustment)
.
ทุก ๆ 2016 บล็อก (ประมาณ 2 สัปดาห์) เครือข่ายจะประเมินว่าในช่วงที่ผ่านมาใช้เวลาขุดเร็วหรือช้าเกินไป
.
ถ้าขุดเร็วเกินไป → ลดค่าเป้าหมาย (ขุดยากขึ้น)
ถ้าขุดช้าเกินไป → เพิ่มค่าเป้าหมาย (ขุดง่ายขึ้น)
.
ด้วยกลไกนี้ ไม่ว่าพลังขุดจะเพิ่มหรือลดลง เครือข่ายบิตคอยน์สามารถปรับตัวได้เอง นักขุดทุกโหนดยังคงแข่งขันเพื่อสร้างบล็อกใหม่ทุก 10 นาทีโดยเฉลี่ยได้อย่างมีเสถียรภาพและไม่มีตัวกลางใดควบคุมครับ
.
ป.ล. โพสต์หน้าผมจะพูดถึงเรื่องอะไรที่น่าสนใจเกี่ยวกับบิตคอยน์อีก ฝากติดตามด้วยนะครับ
#siamstr

ในโพสต์ที่แล้ว เราคุยกันว่าการขุดบิตคอยน์คือการแข่งขันหาค่า Hash ที่ต่ำกว่า "เป้าหมาย" ที่เครือข่ายกำหนด
ใครที่พบค่าที่ถูกต้องก่อนจะมีสิทธิ์บันทึกบล็อกใหม่ลงในบัญชีธุรกรรม
และเราเรียกบุคคลหรือกลุ่มคนที่รันโหนดเพื่อขุดบิตคอยน์นี้ว่า “นักขุด” ครับ
.
ในวันนี้ผมจะมาลงรายละเอียดอีกซักหน่อยเกี่ยวกับความยากในการขุดบิตคอยน์กันนะครับ
.
ก่อนอื่น เรามาดูเรื่องความสัมพันธ์ของ “เป้าหมาย” กับ ความยาก” ในการขุดกันนะครับ
.
เป้าหมายต่ำลง = ขุดยากขึ้น
ลองนึกภาพว่าเรามีตัวเลขสุ่มระหว่าง 0 ถึง 1,000,000 แล้วกำหนดเงื่อนไขว่า
.
ถ้าสุ่มได้ตัวเลขต่ำกว่า 100,000 ถือว่าผ่าน → โอกาสผ่าน 10%
ถ้ากำหนดให้ต่ำกว่า 10,000 ถือว่าผ่าน → โอกาสผ่าน 1%
ถ้ากำหนดให้ต่ำกว่า 1,000 ถือว่าผ่าน → โอกาสผ่าน 0.1%
.
ดังนั้น ยิ่งเป้าหมายต่ำ (ตัวเลขเล็ก) การสุ่มหาตัวเลขที่ถูกต้องก็ยิ่งยากขึ้น
Proof of Work ก็ทำงานแบบเดียวกันครับ
.
ถ้าเครือข่ายกำหนดค่าเป้าหมายสูง (ตัวเลขใหญ่) → นักขุดมีโอกาสพบค่า Hash ได้ง่าย
ถ้าค่าเป้าหมายต่ำ (ตัวเลขเล็ก) → นักขุดต้องลองคำนวณซ้ำ ๆ มากขึ้นกว่าจะพบค่าที่ถูกต้อง
.
ทำไมต้องมีการปรับระดับความยาก?
เพราะพลังประมวลผลของเครือข่ายมีการเปลี่ยนแปลงอยู่ตลอดเวลาครับ
.
ถ้านักขุดเพิ่มขึ้น จำนวนโหนดมากขึ้น หรือมีเครื่องขุดที่มีประสิทธิภาพสูงขึ้น
บล็อกใหม่จะถูกขุดเร็วขึ้น และอาจเร็วจนเกินไป ทำให้โหนดทั้งเครือข่ายอัปเดตและข้อมูลไม่ทันครับ
เพราะเครือข่ายบิตคอยน์นั้นมีโหนดกระจายตัวทั่วโลก ทุกโหนดต้องรับ-ส่งและตรวจสอบธุรกรรมกับโหนดอื่น ๆ ผ่านอินเทอร์เน็ต ซึ่งต้องใช้เวลา
ถ้าบล็อกถูกสร้างเร็วเกินไป ข้อมูลอาจยังไม่ถูกกระจายไปครบทุกโหนด เกิดความเสี่ยงที่บัญชีธุรกรรมจะแตกออกเป็นหลายเวอร์ชันครับ
.
หรือถ้านักขุดลดลง อาจเพราะโหนดที่ขุดบางส่วนปิดตัวลง
บล็อกใหม่ถูกขุดช้าลง ทำให้ธุรกรรมใช้เวลานานกว่าจะถูกยืนยัน ส่งผลต่อประสิทธิภาพของเครือข่าย
.
ดังนั้นหากไม่มีการควบคุมความเร็วในการขุด ระบบบิตคอยน์จะขาดเสถียรภาพครับ
.
บิตคอยน์จึงถูกออกแบบให้สร้างบล็อกใหม่เฉลี่ยทุก 10 นาที ด้วยกลไกที่เรียกว่า "การปรับระดับความยาก" (Difficulty Adjustment)
.
ทุก ๆ 2016 บล็อก (ประมาณ 2 สัปดาห์) เครือข่ายจะประเมินว่าในช่วงที่ผ่านมาใช้เวลาขุดเร็วหรือช้าเกินไป
.
ถ้าขุดเร็วเกินไป → ลดค่าเป้าหมาย (ขุดยากขึ้น)
ถ้าขุดช้าเกินไป → เพิ่มค่าเป้าหมาย (ขุดง่ายขึ้น)
.
ด้วยกลไกนี้ ไม่ว่าพลังขุดจะเพิ่มหรือลดลง เครือข่ายบิตคอยน์สามารถปรับตัวได้เอง นักขุดทุกโหนดยังคงแข่งขันเพื่อสร้างบล็อกใหม่ทุก 10 นาทีโดยเฉลี่ยได้อย่างมีเสถียรภาพและไม่มีตัวกลางใดควบคุมครับ
.
ป.ล. โพสต์หน้าผมจะพูดถึงเรื่องอะไรที่น่าสนใจเกี่ยวกับบิตคอยน์อีก ฝากติดตามด้วยนะครับ
#siamstr