<?php wp_title('|', true, 'right'); ?>

[บทสัมภาษณ์พิเศษ] เจาะลึกเบื้องหลังโค้ดการทำงานของ Bitcoin Halving กับ คุณโดม เจริญยศ 

ติดตามสยามบล็อกเชนบนSiam Blockchain

ในช่วงที่ผ่านมา หลายคนอาจรู้สึกคุ้นหูกันไม่น้อยเกี่ยวกับเหตุการณ์การ Halving ของ Bitcoin ซึ่งเป็นเหตุการณ์สำคัญในวงการคริปโตที่จะส่งผลต่อราคาของ Bitcoin อย่างมีนัยสำคัญ โดยเหตุการณ์การ Halving ก็กำลังใกล้เข้ามาแล้ว ซึ่งเหลือระยะเวลาอีกไม่ถึง 1 วันที่ Bitcoin จะพบกับเหตุการณ์ Halving ในครั้งที่ 4  

โดยในบทความนี้จะพูดถึงโค้ดที่อยู่เบื้องหลังการทำงานของ Bitcoin Halving เป็นปัจจัยสำคัญที่ทำให้ Bitcoin มาได้ไกลถึงขนาดนี้ ซึ่งโค้ดของ Bitcoin นั้นมีความซับซ้อนสูง การจะทำความเข้าใจโค้ด Bitcoin จึงต้องใช้เวลา 

ดังนั้นด้วยคำถามมากมายที่หลายคนสงสัย ในวันนี้ทาง Siam Blockchain จึงขอรับหน้าที่แทนเพื่อน ๆ ไปสัมภาษณ์ คุณโดม เจริญยศ นักพัฒนาบล็อกเชนชื่อดังในประเทศไทย ผู้ก่อตั้งและ CEO บริษัท โทเคไนน์ จำกัด (Tokenine) ในมุมมองโปรแกรมเมอร์เกี่ยวกับเรื่องนี้

ในการสัมภาษณ์ครั้งนี้จะเป็นการสัมภาษณ์เกี่ยวกับโค้ดของการ Halving รวมถึงตัวเลขต่างๆที่อยู่บนโค้ด ทั้งตัวเลข 64 และตัวเลข 50 * coin นี้ว่าหมายถึงอะไร ? นอกจากนี้อนาคตเรื่องโค้ดของ Bitcoin จะมีการเปลี่ยนแปลงอีกหรือไม่ ? 

Siam Blockchain:  คุณโดม เจริญยศ ช่วยอธิบายโค้ด Halving สำคัญ ๆ ค่ะ อย่างฟังก์ชัน GetBlockSubsidy โค้ดตัวนี้คืออะไรคะ ? เป็นตัวสำคัญที่กำหนดกลไกการ Halving อย่างไรบ้างคะ ? อยากให้พี่โดมอธิบายให้คนทั่วไปสามารถเข้าใจได้ง่าย ๆ  ค่ะ

คุณโดม เจริญยศ :  จริงๆ ในบล็อกเชนแบบ Bitcoin แบบ Ethereum มันจะมีสิ่งที่เรียกว่า Blocktime คือ Blocktime  มันจะกำหนดว่า ทุก ๆ กี่เวลาเท่าไหร่ กี่วินาทีนะครับ ที่มันจะสร้างบล็อกใหม่คือถ้ามองในโลก Blockchain แยกออกจาก network เลยเนี่ย ต้องเข้าใจว่า มันไม่มีเวลาอย่างนั้นเลยนะ มันไม่รู้ว่าเวลาเท่าไหร่ รู้ได้จากการสร้างบล็อกใหม่ที่สร้างขึ้น เพราะมันรู้ว่าบล็อกใหม่ที่สร้างขึ้นเนี่ย มันสร้างเวลาเท่าไหร่ และห่างจากบล็อกเดิมเท่าไหร่

ยกตัวอย่างเช่น ถ้าเกิดเอา Bitcoin เป็นหลัก มันจะสร้างบล็อกทุก ๆ 600 วินาที เพราะทุกๆบล็อกที่เกิดขึ้นคือ 600 วินาที

ส่วนโค้ด GetBlockSubsidy มันเป็นค่าที่อยู่ในซอฟแวร์ชุดแรกของมัน ที่เขียนอยู่ในบรรทัด มันอยู่ใน Chain พารามิเตอร์ ซึ่งค่านี้ถูกตั้งเอาไว้ว่า ทุก ๆ 2 แสนบล็อก มันจะลดตัวค่าตอบแทนลงครึ่งหนึ่งก็คือ ทุก ๆ  210,000 บล็อก 

ซึ่งค่าตัวนี้จะอยู่ตลอดไป มันเปลี่ยนไม่ได้ ทุกคนต้องใช้โค้ดชุดเดียวกัน เท่ากับค่าที่กำหนดเอาไว้ว่า ทุก ๆ 210,000 บล็อกเนี่ย พอไปคูณ Blocktime ก็คือ 600 วินาทีเนี่ย มันก็เลยออกมาเป็น 126 ล้านวินาที  พอเราเอา 126 ล้านวินาที มันจะหายไปครึ่งนึงที่เรียกว่า Halving 

พอเราเอามาคำนวณ 126 ล้านวินาที มันจะเป็นกี่ปี ? จะเท่ากับ 3.99 คือ 1 ปี มีประมาณซัก 37 ล้านกว่า ๆ วินาที พอหารมามันจะอยู่ที่  3.9954 ปี เราก็เลยอนุมานว่า ระยะเวลาประมาณ 4 ปี มันก็จะหายไปครึ่งหนึ่ง เพราะงั้นค่าเริ่มต้นคือ ตัว GetBlockSubsidy  Halving interval คือตัว 210,000 บล็อกนี่แหละ ที่เป็นตัวกำหนดมัน 

ทีนี้ประเด็นในการสร้างบล็อก มันอาจจะไม่เป๊ะเป็น 600 วินาทีนะ มันเกิดขึ้นได้ โดยปกติกลไกมันจะใช้ค่าความยากนะ (bitcoin difficulty) ในการสร้างเวลาของบล็อกถัดไปให้ใกล้เคียงกันกับ 4

ยกตัวอย่างเช่น ค่าความยาก หรือค่า difficulty ขนาดนี้ เหมืองทั้งโลก ถ้ามีคนพร้อมใจกันปิดเหมือง ค่าความยากอาจติดลบ 90% เลยนะ อาจทำให้คนที่เหลืออาจจะขุดบล็อกถัดไปช้ากว่า 10 นาที เพราะเครื่องแรงไม่พอ เครื่องเรารวมกันใน pool แล้วแรงไม่พอ ก็อาจจะกลายเป็นชั่วโมงก็ได้นะ 

ที่พี่เคยเจอ  Blocktime ของ chain บางตัวที่ Proof of Work  เนี่ย พอเหมืองเขาปิดไฟ มันค้างอยู่เป็นชั่วโมงเลยกว่ามันจะสร้าง block ถัดไป พอรู้ว่าบล็อกถัดไปทำไมนานกว่า 10 นาที มันจะลดความยากลงมา เพื่อให้ทุกอย่างเข้าหาใน10 นาที หรือ 600 วินาที เพราะฉะนั้นจำนวน Blocktime 600 วินาที มันอาจจะคลาดเคลื่อนได้

เราก็อาจจะไม่ได้เป๊ะว่ากี่โมงหรือกี่โมง ถึงจะ Halving ไม่ใช่ ต้องดูว่า Block ที่เท่าไหร่ Halving ถึงจะตรง มันใช้บล็อกที่มากกว่าครับ ว่าเป็นบล็อกที่จะ Halving เท่าไหร่ 

Siam Blockchain:  โค้ดของ Bitcoin Halving  มีหลักการทำงานอย่างไรคะ ? 

คุณโดม เจริญยศ : คือ ค่าความยากจะกำหนด Blocktime แต่ค่า Halving จะกำหนดจำนวนบล็อกเลยว่า เป็นทุก ๆ 210,000  บล็อก อันนี้คือค่า Subsidy Halving ที่ทุกๆ 210,000 บล็อกจะหายไป แต่ถ้าคำนวณเป็น time ก็ต้องไปคูณกับ Blocktime คือ 600 วินาที  มันเลยออกมาเป็นตัวเลขประมาณ 4 ปี ทีนี้ถ้าในระหว่างทางมันเกิดความยากพุ่งขึ้นพุ่งลง ตัว Blocktime แต่ละ Blocktime จะห่างกันไม่เป๊ะ 600 วินาที มันก็ทำให้คลาดเคลื่อนได้ แต่จำนวนบล็อกจะเป๊ะเสมอว่า ซึ่งบล็อกเนี่ยละจะเป็นตัวกำหนดการ Halving 

Siam Blockchain:  พี่โดมคิดว่า ซาโตชิ (satoshi nakamoto) ที่คิดค้นโค้ดนี้ขึ้นมา คิดผิดหรือเปล่าในมุมมองของพี่โดมคะ ? 

คุณโดม เจริญยศ : ไม่ผิดเลย พี่ว่าความเก่งของซาโตชิ ไม่ใช่เรื่องโค้ดดิ้ง  แต่การเขียนโค้ดออกมาแบบนี้ไม่ได้ยาก แต่การดีไซน์กลไกที่มันรักษาราคาได้ มันจะต้องไม่เฟ้อ คือการ Halving มันจะเป็นการทำให้ supply ของ bitcoin ลดลงทุก ๆ 4 ปี หารไปครึ่งนึง เพื่อให้มูลค่าของมันยังดำรงอยู่ ยังสูงอยู่ พี่คิดอย่างงั้นนะ เพราะฉะนั้นเขาดีไซน์โค้ดชุดนี้ออกมา บนพื้นฐานเรื่องโค้ดดิ้ง แล้วก็ฝั่งที่มันเป็นเรื่องเศรษฐศาสตร์ด้วยว่า supply มันจะต้องไม่มากเกินไป

Siam Blockchain:  แล้วตัวเลข 64 ในโค้ดของการ Halving พี่โดมคิดว่า ซาโตชิ (satoshi nakamoto) คิดมาดีหรือยังว่า ทำไม Halving ต้องมี 64 ครั้ง ? ทำไมต้องเป็นตัวเลขนี้ พี่โดมคิดว่าอย่างไรบ้างคะ ?

คุณโดม เจริญยศ : มันเหลือน้อยไป จะลดไปตลอดกาลมันลงจะไม่ดี แต่เขาคำนวณเวลาออกมาว่า พอ  64 แล้วคงจะไม่เอาแล้ว ซึ่งมันจะเหลือน้อยมาก ถึงตรงนั้นพี่ไม่รู้นะว่าราคาเหรียญ Bitcoin มันจะไปเท่าไหร่ มันอีกนาน เราไม่น่าจะอยู่ถึงนะ ถ้าคำนวณเร็ว ๆ นะ 

Siam Blockchain:  พี่โดมคิดว่าทำไมต้องเป็นตัวเลข 64  คะ ?

คุณโดม เจริญยศ : เวลามั้ง เวลามันเหมาะสม มันไม่มีประโยชน์แล้ว มันไกลเกินไปแล้ว

Siam Blockchain: แล้วตัวเลข 50 * coin นี้หมายถึงอะไรคะ ?

คุณโดม เจริญยศ : ลดลงครึ่งหนึ่งครับ (Halving)

Siam Blockchain: พี่โดมคิดว่า อนาคต โค้ดของ Bitcoin จะมีการเปลี่ยนแปลงอีกไหมคะ ? 

คุณโดม เจริญยศ : ไม่มีทางเปลี่ยน มันแตกต่างจาก Ethereum นะ คือ Ethereum มันมีการอัปเดตโค้ด เมื่อก่อนหน้านั้น supply ของ Ethereum อันลิมิตนะ คือแจกไปเรื่อย ๆ แล้วไม่มี Halving นะ แต่อยู่ๆหลังพฤศจิกายนปีที่แล้ว เปลี่ยนเป็น Proof-of-Stake (PoS) ก็ไม่มีการรีวอร์ด หรือมีออกมานิดหน่อย จากข้างล่าง จาก cross chain เพราะงั้น bitcoin มันแตะ Code ไม่ได้แล้ว ไม่น่าจะมีการแตะ และไม่มีอัปเดตอะไรมานานมากแล้ว มันอยู่อย่างงี้ไปเรื่อย ๆ เพราะงั้นไม่มีทางที่อยู่ ๆจะมาแก้โค้ดร่วมกัน เพื่อจะแจกมากขึ้น พี่ไม่เชื่อ ไม่มีทาง กลไกหลัก ๆ มันไม่มีทางจะเปลี่ยน ชัวร์  

สรุป

จากบทสัมภาษณ์นี้ ทำให้เราได้รับความรู้เกี่ยวกับโค้ดของ Bitcoin Halving  จาก คุณโดม เจริญยศ ที่มีความเชี่ยวชาญในด้านบล็อกเชนและการเขียนโค้ดมาอย่างยาวนาน นอกจากนั้นยังได้ทราบถึงกลไกการทำงานจากโค้ดการ Halving ของ Bitcoinอีกด้วย ซึ่งทำให้เราเข้าใจถึงเบื้องหลังการทำงานของ Bitcoin และเหตุผลที่ทำให้ Bitcoin อยู่รอดมาได้ยาวนานถึง 14 ปี