Automatic difficulty adjustment algorithm แบบย่อ
คือเรื่องมันเป้นอย่างนี้นะพวก
ถ้าจะมีอะไรใน Bitcoin ที่ผมคิดว่างดงามที่สุด ผมก็ขอยกให้กับ Automatic difficulty adjustment algorithm
Automatic difficulty adjustment algorithm ใน Bitcoin เป็นส่วนสำคัญของกลไกการทำงานของ Bitcoin Network\t\t\t\nหน้าที่หลักของ difficulty adjustment algorithm คือการปรับความยากในการคำนวณการหาค่า target เพื่อปิด block
เพื่อให้ความถี่ในการปิดblockอยู่ในระดับที่เหมาะสมตามปริมาณกำลังขุด (hashing power) ของเครือข่ายในแต่ละช่วงเวลา\t\t\t\nโดยจะทำการปรับความยากในทุกๆ 2016 block (ประมาณ 2 สัปดาห์)
Automatic difficulty adjustment algorithm ใช้เพื่อให้เกิดบล็อกใหม่ในเครือข่ายโดยประมาณทุกๆ 10 นาที ไม่ว่าจะมีผู้ขุดเพิ่มขึ้นหรือลดลงมากน้อยเพียงใดก็ตาม
หากมีการปิด block เร็วเกินไป (ต่ำกว่า 10 นาทีต่อblock) ความยากในการหาค่า target จะถูกปรับขึ้น เพื่อลดความถี่ในการปิด block
และในทางกลับกันหากมีการปิดblockช้าเกินไป (มากกว่า 10 นาทีต่อblock) ความยากในการหาค่า target จะถูกปรับลดลง เพื่อเพิ่มความถี่ในการปิด block
Algorithm ที่ใช้ในการปรับความยากในการคำนวณนี้มีขั้นตอนดังนี้
1.การคำนวณค่า target ปัจจุบัน: ในทุกๆ 2016 Block(หรือประมาณ2สัปดาห์) ค่า target ปัจจุบันจะถูกคำนวณโดยใช้ค่า target ก่อนหน้านี้และเวลาที่ใช้ในการปิด block ตามกฎการทำงานของ network
2.การคำนวณค่า target ใหม่: ค่า target ใหม่จะถูกคำนวณโดยใช้ค่า target ปัจจุบัน และเวลาที่ใช้ในการปิดblockในช่วงเวลานั้นๆ ซึ่งจะประมวลผลความยากในการคำนวณให้สอดคล้องกับปริมาณการขุดในช่วงเวลาก่อนหน้า
3.การปรับความยากในการคำนวณ: ค่า target ใหม่ที่คำนวณได้จากขั้นตอนที่ 2 นี้จะถูกนำไปใช้ในblockใหม่ที่ขุดต่อมา ทำให้ความยากในการคำนวณblockต่อไปเพิ่มขึ้นหรือลดลง ขึ้นอยู่กับปริมาณการขุดของnetworkในช่วงเวลาที่ผ่านมา
ค่า target เป็นค่าที่กำหนดให้อยู่ใน Block header และใช้เพื่อตรวจสอบความยากในการคำนวณของ Block นั้นๆ
ค่า target ที่เหมาะสม จะกำหนดให้blockที่ถูกขุดมีค่า hash น้อยกว่าหรือเท่ากับค่า target เท่านั้น
ในกรณีที่ค่า hash ของblockมีค่าน้อยกว่าค่า target จะถือว่าการคำนวณสำเร็จ และblockนั้นจะถูกยอมรับโดย network
difficulty adjustment algorithm นี้เป็นส่วนหนึ่งที่ช่วยให้ Network ของ Bitcoin ทำงานอย่างมีความเสถียร
ค่า target เป็นองค์ประกอบหนึ่งที่ช่วยให้เกิดการขุดblockใหม่ในปริมาณและเวลาที่เหมาะสม ทำให้blockถูกขุดใหม่ทุกๆ 10 นาทีเหมือนที่ระบบได้กำหนดไว้
ไม่ว่าจะมี miner เข้ามาร่วมหรือออกจากระบบไปมากน้อยแค่ไหน
#thainostrich #siamstr
