อธิบาย Automatic difficulty adjustment algorithm ด้วย code
คือ code มันเป็นแบบนี้นะพวก
Target adjustment limit
Set targetTimeSpan = expected time taken to mine a block (s) × difficulty readjustment interval
Set totalInterval = actual time taken to mine N blocks
iftotalInterval < targetTimeSpan then
totalInterval = targetTimeSpan / 4
end if
iftotalInterval > targetTimeSpan then
totalInterval = targetTimeSpan × 4
end if
Target adjustment limit คือกลไกในที่ช่วยให้มั่นใจได้ว่าบล็อกใหม่จะถูกขุดทุกๆ 10 นาที สิ่งนี้สำคัญเพราะช่วยรักษาเครือข่าย Bitcoin ให้เสถียรและปลอดภัย
Target adjustment limit ทำงานโดยเปรียบเทียบเวลาที่ใช้ในการขุด block จริงกับเวลาคาดการณ์
หากเวลาจริงน้อยกว่าเวลาคาดการณ์ ระดับความยากในการขุดจะลดลง ทำให้ง่ายต่อการขุด block ซึ่งจะช่วยเร่งความเร็วของเครือข่าย
ในทางกลับกัน หากเวลาจริงมากกว่าเวลาคาดการณ์ ระดับความยากในการขุดจะเพิ่มขึ้น ทำให้ยากต่อการขุด block ซึ่งจะช่วยชะลอความเร็วของเครือข่าย
Target adjustment limit ถูกตั้งค่าไว้ที่สูงสุด 4 เท่าของเวลาคาดการณ์ และต่ำสุด 1/4 ของเวลาคาดการณ์
สิ่งนี้ช่วยให้มั่นใจได้ว่าระดับความยากในการขุดจะไม่เปลี่ยนแปลงมากเกินไป จนทำให้เครือข่ายไม่เสถียร
กล่าวอีกนัยหนึ่ง Target adjustment limit ช่วยรักษาเครือข่าย Bitcoin ทำงานได้อย่างราบรื่น โดยมั่นใจได้ว่า block ใหม่จะถูกขุดด้วยอัตราที่สม่ำเสมอ
อธิบายให้เข้าใจง่ายขึ้นอีกหน่อย สมมติว่าเวลาคาดการณ์ในการขุด block คือ 10 นาที
หากใช้เวลาจริงในการขุด block น้อยกว่า 10 นาที ตัวอย่างเช่น 9 นาที ระดับความยากในการขุดก็จะลดลง ทำให้ block ใหม่ถูกขุดเร็วขึ้น
ในทางกลับกัน หากใช้เวลาจริงในการขุด block มากกว่า 10 นาที ตัวอย่างเช่น 11 นาที ระดับความยากในการขุดก็จะเพิ่มขึ้น ทำให้ block ใหม่ถูกขุดช้าลง
#thainostrich #siamstr