Satoshi Nakamoto เขียนโค้ดการ Halving พลาดหรือเปล่า? แล้วในแง่ของนักวิศวกรซอฟต์แวร์เขามองยังไง นาย Andreas Antonopoulos มีคำตอบ
วีดีโอล่าสุดของนาย Antonopoulos ได้ออกมาอธิบายโค้ดหลักของ Bitcoin ที่อยู่เบื้องหลังการ Halving ของ Bicoin อย่างละเอียด
Bitcoin halving code. Source: Bitcoin Core Software.
อธิบายอย่างละเอียด
ทุกครั้งที่บล็อก Bitcoin ถูกประเมินหรือบล็อกใหม่ถูกขุดฟังก์ชัน GetBlockSubsidy จะถูกเปิดใช้เพื่อคำนวณขนาดที่เหมาะสมของรางวัลบล็อกโดยบรรทัดที่ 1240 จะมีประเมินรอบการ Halving และหารความสูงของบล็อกปัจจุบันที่ 210,000 เป็นระดับที่อยู่ตรงกลางของการ Halving ในขณะที่รายงานนี้ความสูงของบล็อกคือ 629369 ถ้าเราหารด้วย 210,000 เราจะได้ 2.99 เนื่องจากตัวแปรที่เก็บค่านี้เป็นประเภทจำนวนเต็มดังนั้นมันจึงจะไม่มีจุดทศนิยมเมื่อใช้ชุดข้อมูลนี้ จากโค้ดจะ “รู้” เลยว่าเรามีการ Halvings เกิดขึ้นมาสองครั้งแล้วนี่คือสาเหตุที่ทำให้การ Halving ครั้งต่อไปจะเกิดขึ้นที่บล็อค 630000
Satoshi คำนวณถูกแล้ว
บรรทัดที่ 1242 และ 1243 แก้ไขข้อผิดพลาดที่ Satoshi ทำในรหัสต้นฉบับ ข้อผิดพลาดนี้แต่เดิมอยู่ที่การ Halving เมื่อรางวัลบล็อกผ่าน 64 Halvings แล้ว จำนวน Halvings ทั้งหมดถูกฝังอยู่ในโปรโตคอล Bitcoin
บรรทัดที่ 1245 คูณรางวัลบล็อกดั้งเดิมเท่ากับ 50 ด้วยค่าคงที่เหรียญซึ่งเท่ากับ 100,000,000 Satoshis น่าแปลกที่ไม่มี Bitcoins ในโค้ด Bitcoin แต่กลับมีเพียง Satoshis
บรรทัด 1247 จะคำนวณรางวัลบล็อกที่เหมาะสมสำหรับความสูงของบล็อกปัจจุบัน โดยใช้การคำนวณระดับบิตซึ่งมีความแม่นยำมากกว่าวิธีการคำนวณทางคณิตศาสตร์แบบปกติ บล็อกรางวัลที่คำนวณในบรรทัด 1245 จะถูกปรับตามรางวัลบล็อกปัจจุบัน ปัจจุบันนี้จะมีลักษณะเช่นนี้:
50 * 100,000.000 / 22 = 1,250,000,000 Satoshis หรือ 12.5 Bitcoins
ในที่สุดบรรทัดที่ 1248 จะมีการให้รางวัลบล็อกที่เหมาะสมเมื่อใช้ฟังก์ชันหรือวิธีการอื่นในโค้ด Bitcoin
ที่มา : cointelegraph