Introduction to Full Node, Mining & Proof of Work | Bitcoin Series — ep.3

Bithope
5 min readDec 14, 2022

--

Introduction to Full Node, Mining & Proof of Work | Bitcoin Series — ep.3

สวัสดีครับ ใน Bitcoin Series ep.2 ได้อธิบายถึงข้อมูลโครงสร้างธุรกรรมและการตรวจสอบในระบบบิตคอยน์ ก่อนที่จะข้าเนื้อหาเรามาทบทวนเนื้อหาสำคัญของบทที่แล้วกันสักหน่อย >>>

Review Episode 2

ข้อมูลที่อยู่ในระบบบิตคอยน์ มีอยู่ 3 ชนิด

  • UTXO, คือ output ของธุรกรรมที่ยังไม่ถูกนำมาใช้ การทำธุรกรรมบิตคอยน์ เราต้องนำ UTXO มาทำเป็น input และส่วน output ก็คือจำนวน Bitcoin ที่เราจะโอนไปให้ผู้อื่น และที่สำคัญถ้า input มากกว่า output เราจำเป็นต้องใส่ output ที่เป็นเงินทอนด้วย หากเราไม่ได้ใส่ในส่วนที่เป็นเงินทอน Bitcoin ส่วนนี้จะกลายเป็นค่าธรรมเนียมสำหรับนักขุด (Miner) ไปโดยปริยาย
UTXO, Transaction, Block
  • Transaction
    ธุรกรรม (Transaction) คือการทำสรุปบัญชีซึ่งต้องประกอบด้วย input และ output เสมอ เราต้องทำดุลบัญชีระหว่าง input และ output ด้วยตัวเอง เพราะระบบบิตคอยน์นั้นไม่มีตัวกลางในการจัดการให้เหมือนกับระบบธนาคารทั่วไป และเมื่อเราได้ประกาศธุรกรรมออกไปในระบบแล้ว มันไม่ได้หมายความว่าข้อมูลในธุรกรรมนั้นๆ จะถูกต้องเสมอ ดังนั้นจึงต้องผ่านการตรวจสอบจาก Full node
  • Block
    Full node คือซอฟต์แวร์ตัวหนึ่งที่ทุกคนสามารถดาวน์โหลดไปใช้งานได้ เปรียบเสมือนผู้ตรวจสอบบัญชี ผู้รักษากฎกติกาในระบบ Full node มีความสำคัญอย่างมากในระบบบิตคอยน์ และยังมีหน้าที่ตรวจสอบบล็อก (Block) ที่ส่งมาจากนักขุด (Miner) Full node จะมีประวัติของธุรกรรมทั้งหมดตั้งแต่ธุรกรรมแรกของระบบ เมื่อวันที่ 3 มกราคม 2009 ธุรกรรมทั้งหมดนี้ก็คือสมุดบัญชีกลาง Full node ทุกๆ Full node จะมีสมุดบัญชีกลางที่เป็นฉบับเดียวกันทั้งหมด เมื่อธุรกรรมผ่านการตรวจสอบจาก Full node แล้วจะถูกส่งให้ไปรออยู่ที่ Mempool Mempool ก็คือ pool ของธุรกรรมที่ไหลไปรออยู่ที่ Miner แล้ว แต่ยังไม่ถูกจับยัดลงไปในบล็อก เป็นธุรกรรมที่ยังไม่ได้ถูกยืนยัน ดังนั้น Miner จะมีหน้าที่นำธุรกรรมจับยัดลงไปในบล็อกด้วยกระบวณการการขุดบิตคอยน์ (Bitcoin mining) โดยปกติแล้ว Miner จะเลือกธุรกรรมที่มีค่าธรรมเนียมสูงก่อนเสมอ ซึ่งเราจะลงไปในรายละเอียดของส่วนนี้กันต่อไป
The evolution of node — 1

วิวัฒนาการของ Node (The evolution of node)
สมัยยุคแรกๆ ของบิตคอยน์นั้น ของระบบบิตคอยน์มีแค่ชนิดเดียวเราสามารถดาวน์โหลดซอฟต์แวร์ที่เป็น bitcoin.exe ติดตั้งที่เครื่องคอมพิวเตอร์ได้เลย โดยการทำงานของโปรแกรมบิตคอยน์นั้น จะมีการทำงานอยู่ 4 ฟังก์ชันหลัก

  • Wallet application คือตัวเก็บ Bitcoin และเป็น Software ในการธุรกรรม (Transaction)
  • Consensus rules ส่วนของกติกาและฉันทามติ มีหน้าที่ตรวจสอบความถูกต้องของธุรกรรม (Transaction) และบล็อก (Block) ที่มาจากนักขุด (Miner)
  • P2P Network คือส่วนที่ทำหน้าที่ติดต่อกับ Full node อื่นๆ ในเครือข่าย ที่มีทั้งข้อมูล ธุรกรรม (Transaction) และข้อมูลบล็อก (Block) ที่มีการส่งต่อกันเป็นทอดๆ
  • Mining hardware ยุคสมัยแรกของบิตคอยน์ (BITCOIN) การเรียกใช้โปรแกรม bitcoin.exe บนคอมพิวเตอร์ทั่วไป จะมีส่วนของ Bitcoin Miner ที่ใช้ cpu ทั่วไปในการขุด
The evolution of node — 2

ต่อมาเมื่อบิตคอยน์ (Bitcoin) มีมูลค่าที่สูงขึ้น ทำให้การขุดบิตคอยน์มีผลตอบแทนที่สูงขึ้นตาม จึงเกิดการแข่งขันที่สูง เกิดการแบ่ง (Split) ในส่วนของ Mining hardware ออกมากตามรูป ด้วยสาเหตุที่ว่าทุกคนอยากขุดได้ไวขึ้น เดาคำตอบได้ไวขึ้น Generation ที่สองของบิตคอยน์นั้นใช้การ์ดจอ (GPU) ในการขุด

Miner hardware evolution — 1

วิวัฒนาการของฮาร์ดแวร์เครื่องขุด (Miner hardware evolution)

  • CPU chips
    ยุคแรกของบิตคอยน์ (ปี 2009) เครื่องคอมพิวเตอร์ส่วนบุคคลทั่วไปที่เราใช้ในการท่องอินเทอร์เน็ตสามารถใช้ขุดบิตคอยน์ได้ เนื่องจากมีนักขุดจำนวนไม่มาก กำลังในการขุดที่ใช้ cpu ส่วนใหญ่จะอยู่ที่ 8–20 kh/z ซึ่งถือว่าเป็นตัวเลขที่น้อยมาก เมื่อเปรียบเทียบกับยุคถัดไปของเครื่องขุดบิตคอยน์
  • GPU cards
    เมื่อบิตคอยน์เริ่มมีมูลค่าเพิ่มมากขึ้น ทำให้เกิดการแข่งขันที่สูงขึ้นตาม ในช่วงตุลาคม ปี 2010 ได้มีการพัฒนาโปรแกรมเพื่อให้ GPU ที่ปกติเราใช้มันในการเล่นเกมส์ทั่วไป สามารถนำมาใช้เพื่อการขุดบิตคอยน์ได้ ซึ่งประสิธิภาพการทำงานของมันสูงกว่าใช้ CPU ในการขุดเฉลี่ยอยู่ที่ 10–60 mh/z ทั้งนี้ขึ้นอยู่กับรุ่นและราคาของ GPU เครื่องขุดจำนวนมากใช้ GPU 6–12 ตัวต่อเครื่อง เพื่อเพิ่มความสามารถในการขุดบิตคอยน์
  • FPGA chips (Field-programmable gate array)
    หลังมีการนำ GPU มาใช้ขุดบิตคอยน์ได้ไม่นาน ช่วงปี 2011 ได้มีการใช้เทคโนโลยี FPGA ซึ่งมีกำลังในการขุดมากกว่า GPU ประมาณ 2 เท่า ผู้ใช้งานหรือนักขุดสามารถปรับแต่งฮาร์ดแวร์และซอฟต์แวร์ เพื่อให้ได้ประสิทธิภาพการทำงานสูงสุด
  • ASIC chips (Application-specific integrated circuits)
    การพัฒนาของวงการ การขุดบิตคอยน์นั้น ส่วนใหญ่ก่อนหน้านี้จะเป็นการนำฮาร์ดแวร์และซอฟต์แวร์ที่มีอยู่แล้วมาปรับแต่งเพื่อให้สามารถขุดบิตคอยน์ได้ ในปี 2013 ผู้ผลิตฮาร์ดแวร์ในประเทศจีนได้เปิดตัวเครื่องขุดบิตคอยน์ ชื่อว่า ASIC ที่ถือว่าเป็นการสร้างใหม่ทั้งหมด เครื่องขุด ASIC ได้รับการออกแบบเพื่อการขุดบิตคอยน์โดยเฉพาะ ซึ่งมีความเร็วกว่าขุดด้วย GPU ถึง 200 เท่า ในปี 2021 เครื่องขุด ASIC สามารถทำความเร็วได้ถึง 90–100 th/s (เทราแฮช/วินาที) ซึ่งถือว่าสูงมากๆ แต่ก็แลกมากับราคาเครื่องขุดที่แพงขึ้น
Miner hardware evolution — 2

จากรูปด้านบนแสดงให้เห็นถึงความยากในการขุด Bitcoin และช่วงเวลาโดยประมาณของวิวัฒนาการของเครื่องขุดบิตคอยน์ ตั้งแต่ปี 2013 เป็นต้นมามีการพัฒนาขนาดของชิปให้เล็กลง เพื่อเพิ่มความเร็วและการใช้พลังงานที่น้อยลงในการขุดบิตคอยน์ ปัจจุบัน ASIC มีประสิทธิภาพสูงกว่า CPU ในช่วงปี 2009 ถึง 100 พันล้านเท่า

Evolution of Full node to Light node

วิวัฒนาการของ Full node สู่ Light node
จากรูปแสดงให้เห็นถึงวิวัฒนาการของ Full node จากที่แตกแขนงออกจาก Original full node ออกมาเป็นฝั่ง Current full node และ Mining node ทางฝั่งของ Full node ก็จะแตกออกมาอีกแขนงหนึ่ง คือ Light node โดยมันจะทำหน้าที่เป็น Software wallet บน Mobile และจะตรวจสอบความถูกต้อง (Validate) แค่เฉพาะส่วนหัวของบล็อก (Block headers) มีข้อมูลธุรกรรมแค่บางส่วนของบล็อกมาเก็บไว้ สามารถที่พอจะบอกได้ว่าธุรกรรมไหนถูกยืนยันแล้วหรือ ยังไม่ได้รับการยืนยัน Light node ไม่สามารถใช้งานได้หากไม่ได้เชื่อมต่อกับ Full node ที่มีข้อมูลธุรกรรมทั้งหมดของระบบ

Information Propagation

การไหลของข้อมูล Information Propagation
มาถึงตอนนี้เราคงทราบกันดีแล้วว่า ข้อมูลที่ไหลอยู่ระบบบิตคอยน์นั้นมีอยู่ 2 ชนิดด้วยกันคือ ข้อมูลธุรกรรม (Transaction) และข้อมูลบล็อก (Block)

Transaction and Block Propagation

จากรูปเราจะเห็นได้ว่าธุรกรรม (Transaction) นั้นเกิดจากฝั่งผู้ใช้งาน (User) สำหรับการใช้งานทั่วไปในปัจจุบัน การสร้างธุรกรรมจะเป็นหน้าที่ของ Wallet software ทำให้หลายๆ คนไม่เคยเห็นหน้าตาของธุรกรรมจริงๆ ว่ามีลักษณะอย่างไร จากนั้นธุรกรรมที่ถูกส่งออกมาจะต้องผ่านการตรวจสอบจาก Full node เสียก่อน เมื่อธุรกรรมผ่านการตรวจสอบแล้ว ข้อมูลก็จะถูกส่งต่อไปยังเครือข่ายของ Miner โดยธุรกรรมจะไปรออยู่ในพื้นที่ของ Mempool จากนั้น Miner ก็ทำการตักเอาข้อมูลธุรกรรมนั้น จับยัดลงไปในบล็อก (Block) ที่มีขนาดจำกัดแค่ 1MB โดยแต่ละบล็อกจะมีจำนวนธุรกรรมไม่เท่ากัน แล้วแต่ขนาดของข้อมูลในแต่ละธุรกรรม

ในส่วนฝั่งของ Miner ก็จะมีการแข่งขันกันเพื่อสร้างบล็อกใหม่ สมมุติว่ามีนักขุดสามารถสร้างบล็อกใหม่เสร็จแล้ว บล็อกๆ นั้นก็จะถูกส่งกลับมายังเครือข่ายของ Full node อีกครั้งเพื่อตรวจสอบว่าถูกต้องตามกฎกติกาหรือไม่ บล็อกที่ผ่านการตรวจสอบว่าถูกต้องแล้ว ก็จะทำให้ธุรกรรมทั้งหมดที่อยู่ในบล็อกๆ นั้น เป็นธุรกรรม (Transaction) ที่ได้รับการยืนยันแล้ว ที่เรียกว่า 1 confirmation สุดท้ายบล็อกๆ นั้นก็จะถูกนำมาเชื่อมต่อกับล็อกก่อนหน้า หรืออาจมองว่านำไปเชื่อมต่อกับฐานข้อมูลเดิม โดยทั้งหมดจะเชื่อมกันด้วย Hashing function

The Propagation Cycle — Cake model

การไหลของข้อมูลธุรกรรมและบล็อก ผ่านมุมมอง “Cake model”
ถ้าเรามองการไหลของข้อมูลในระบบบิตคอยน์ ผ่านมุมมองในรูปตัวอย่าง การส่งข้อมูลธุรกรรมจะเริ่มต้นจากฝั่งซ้ายมือ เรียงลำดับจากด้านบนลงล่าง

  • Unlock & Lock UTXOs การหา UTXO ที่เป็นของเรามา Unlock แล้วก็ทำเป็น output ก็คือการล็อก UTXO นั้นๆ ให้กับผู้รับ โดยการทำงานในส่วนนี้จะอยู่ในชั้นของ Wallet application
  • Validation การตรวจสอบข้อมูลธุรกรรมโดย Full node ซึ่งจะอยู่ในชั้นของ กฎฉันทามติ
  • Propagation ส่วนของชั้น P2P network จะเป็นการส่งต่อข้อมูลที่ผ่านการตรวจสอบแล้วไปยังโหนดต่างๆ ในระบบ
  • Confirmation จะเป็นส่วนของ Miner สำหรับการยืนยันธุรกรรมในบล็อก ถ้าธุรกรรมได้ถูกยืนยันและอยู่ในบล็อกแล้ว ลูกศรก็จะหันหัวขึ้นด้านบน จนกระทั่งใน Software wallet application ขึ้นสถานะว่า ธุรกรรมที่เราส่งเข้าไปได้รับการยืนยัน และถูกบรรจุไว้ในบล็อกแล้ว
Bitcoin mining

การขุดบิตคอยน์ Mining
กิจกรรมการขุดบิตคอยน์ คือการที่นักขุดบิตคอยน์ (Miner) เอาข้อมูลธุรกรรมทั้งหมดที่ตักออกมาจาก Mempool จับยัดลงไปในบล็อก ซึ่งจะมีส่วนของ Block header อยู่ด้านบน จากนั้นก็เอาข้อมูลทั้งบล็อกมาเข้าฟังก์ชันแฮช (hashing function)

SHA-256 Hash Algorithm — 1

Hash algorithm คือการย่อขนาดจากข้อมูลที่มีขนาดใหญ่ให้มีขนาดเล็กลงตามที่อัลกอริทึมกำหนดไว้ ระบบบิตคอยน์ เลือกใช้ hashing function รูปแบบที่เรียกว่า SHA-256 จะมี Output ออกมาขนาด 256bit เสมอ ถ้าแปลงให้อยู่ในเลขฐานสิบ จะกลายเป็นตัวอักษรและตัวเลขจำนวน 64 ตัว ตามรูปตัวอย่าง

Small change in input Big change in output

คุณสมบัติที่สำคัญของ hashing function
1. ใส่ข้อมูล Input ที่เหมือนเดิม ค่าแฮชที่ออกมาทาง Output จะเหมือนเดิมเสมอ
2. ข้อมูล Input ที่เปลี่ยนไปแค่เล็กน้อย ค่าแฮชที่ออกมาฝั่ง Output จะเปลี่ยนไปจากเดิมอย่างสิ้นเชิง (ง่ายต่อการตรวจสอบ)
3. ถ้ารู้ค่าแฮช เราไม่สามารถคำนวณย้อนกลับไปยังข้อมูลเดิมได้ (เข้ารหัสแบบทางเดียว)

การขุดบิตคอยน์จริงๆ แล้วก็คือการตักเอาข้อมูลธุรกรรมทั้งหมดไปหาค่าแฮช โดยในข้อมูลนั้นมีตัวเลขอยู่ตัวหนึ่งที่จะเปลี่ยนไปเรื่อยๆ เราเรียกตัวเลขนี้ว่า Nonce นักขุดบิตคอยน์ต้องเปลี่ยนตัวเลขนี้เพื่อดูว่า Output ที่ออกมาเป็นค่าแฮชนั้นตรงตามรูปแบบที่ระบบกำหนดหรือไม่

SHA-256 Hash Algorithm — 2

รูปด้านบนเป็นตัวเลข Nonce คือตัวเลขด้านหลังของประโยค I am Bithope ซึ่งข้อมูลนี้เป็นการยกตัวอย่างของข้อมูลทั้งหมดในบล็อก นักขุดจะมีหน้าที่เปลี่ยนตัวเลขนี้ไปเรื่อยๆ เพราะฉะนั้นเงื่อนไขของการตั้งโจทย์ให้นักขุดทำงานคือ การกำหนดรูปแบบค่าแฮชที่เป็นคำตอบว่า ต้องมีเลข 0 อยู่ด้านหน้าของคำตอบมากกว่าหรือเท่ากับกี่ตัว เราจะเห็นได้ว่าความยาก-ง่าย ของการสุ่มอยู่ที่จำนวนเลข 0 ด้านหน้า ถ้าเลข 0 ด้านหน้าน้อยจะมีโอกาสสุ่มเจอคำตอบได้ง่าย กลับกันถ้าจำนวนเลข 0 ด้านหน้าเยอะขึ้นโอกาสการสุ่มเจอคำตอบก็จะยากขึ้นตาม

วิธีการได้มาซึ่งคำตอบที่เป็นค่าแฮช มันจะมีเป้าหมายของคำตอบอยู่ว่าระบบต้องการคำตอบที่เป็นรูปแบบแบบไหน ไม่มีทางลัดสำหรับการหาคำตอบมีแค่ทางเดียวเท่านั้น นักขุดบิตคอยน์ทุกๆ คนจะต้องสุ่มเลข Nonce ด้านหลังไปเรื่อยๆ ว่าตรงตามรูปแบบที่กำหนดหรือไม่ ถ้าไม่ตรงก็ทำการสุ่มใหม่อีกรอบ ทำแบบนี้วนลูปไปเรื่อยๆ

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

เราจะเห็นได้ว่าการที่ได้มาซึ่งคำตอบนั้นยากมาก มีแข่งขันกับสุ่มเป็นพันๆล้านครั้ง ถ้าเกิดว่านักขุดบิตคอยน์ได้เจอคำตอบแล้ว ก็จะทำการส่งคำตอบกลับเข้าไปในระบบ จากนั้น Full node จะมีหน้าที่ตรวจสอบคำตอบว่าถูกต้องตามกฎกติกาหรือไม่ เพราะฉะนั้นการตรวจสอบว่าถูกหรือผิดเป็นอะไรที่ง่ายมากในการตรวจ

Block Hash

การทำกิจกรรม Minig คือการแข่งขันที่มีการลงทุนทั้งค่าอุปกรณ์ ค่าเช่าสถานที่ ค่าพนักงาน และค่าพลังงานที่ใช้ในการขุด โดยที่ระบบบิตคอยน์จะไม่การันตีว่าคุณคือผู้ชนะ สิ่งนี้เราเรียกว่าการทำ “Proof of work” อุปมาอุปไมยเหมือนกับการขุดทองคำจริงๆ ที่ต้องใช้ค่าใช้ค่าใช้จ่ายในการขุดทั้งการสำรวจ การขุด การร่อน ฯลฯ ที่ต้องใช้พลังงานมหาศาล หลายคนอาจมองว่าเป็นการสิ้นเปลือง แต่มันคือแนวคิด (Concept) ของการรักษาความปลอดภัยของระบบบิตคอยน์ เพราะคนประสงค์ร้ายที่จะโจมตีระบบนั้นจะต้องใช้พลังงานในการคุกคามไม่น้อยกว่าที่ Miner ใช้ในการขุด

Supply
นโยบายการทางการเงินของบิตคอยน์ ถูกใส่ไว้ในซอฟต์แวร์ โดยจำกัดปริมาณไว้ที่ 21 ล้านบิตคอยน์เท่านั้น และมีบิตคอยน์ใหม่ถูกขุดออกมาเข้าสู่ระบบทุกๆ 10 นาทีโดยประมาณ สำหรับเป็นรางวัลของนักขุด ในช่วง 4 ปีแรก ทุกๆ 10 นาที จะมีบิตคอยน์เกิดใหม่จำนวน 50 บิตคอยน์ และจะลดลงครึ่งหนึ่ง (50%) โดยเฉลี่ยแล้วประมาณทุกๆ 4 ปี บิตคอยน์จะออกมาครบ 21 ล้านบิตคอยน์ ในปี ค.ศ.2140 ปัจจุบันปี ค.ศ.2022 ถูกผลิตออกมาแล้ว 19 ล้านบิตคอยน์ คิดเป็น 91% ของจำนวนบิตคอยน์ทั้งหมด

Halving
จากหัวข้อก่อนหน้านี้ที่บอกว่าประมาณทุกๆ 4 ปี จำนวนบิตคอยน์ที่ถูกผลิตใหม่ลดลงครึ่งหนึ่ง ถ้าจะกล่าวให้ถูกต้องก็คือ ทุกๆ 210,000 Block จะเกิดปรากฏการณ์ที่เรียกว่า “Halving” ในปัจจุบันเราอยู่ในช่วงที่บิตคอยน์เกิดใหม่จำนวน 6.25 bitcoin ต่อบล็อก สามารถดูรายละเอียดของการ Halving ได้ที่ bitcoinclock.com

เราจะเห็นได้ว่านโยบายการเงินของบิตคอยน์นั้นโปร่งใส และคาดหวังได้ เพราะได้ถูกเขียนเป็นโค้ดไว้ในโปรแกรมแล้ว และนี่คือ 1 ส่วนที่ไม่สามารถแก้ไข หรือเปลี่ยนแปลงได้ ถ้านโยบายการผลิตบิตคอยน์ใหม่นี้ถูกแก้ไข พี่วิชิตเคยบอกไว้ว่า “chip หายครับ ฮ่าๆๆ”

Bitcoin Inflation Rate
จากรูป Inflation rate ของบิตคอยน์คือ จำนวนของบิตคอยน์ใหม่ที่ถูกผลิตเข้าสู่ระบบ ซึ่งในปัจจุบันจะอยู่ที่ประมาณ 1.8 % ซึ่งจะน้อยกว่า Inflation rate ของทองคำที่อยู่ประมาณ 2% เราจะเห็นได้ว่าการ Halving คือส่วนที่ส่งผลต่อ Inflation rate ของบิตคอยน์อย่างมีนัยสำคัญ

Bitcoin’s blockchain is the time chain
จากรูปคือการมองระบบของบิตคอยน์ในอีกมิติ เราอาจจะมองว่าเป็น Time chain ก็ได้ ช่วงสมัยแรกของบิตคอยน์ ซาโตชิ เคยมองมันเป็น Time chain ไม่ใช่ blockchain กล่าวคือ มีบิตคอยน์ใหม่ บล็อกใหม่จะเกิดขึ้นโดยเฉลี่ยใช้เวลา 10 นาที เปรียบเสมือนการหายใจของระบบบิตคอยน์ 1 ชั่วโมงจะมีบล็อกเกิดขึ้นประมาณ 6 Block, 1วัน มี 144 ฺBlock, 1 สัปดาห์ มี 1,008 Block เป็นต้น ในส่วนของการควบคุมการเกิดใหม่ของบล็อกในระบบก็เป็นอีก 1 ส่วนที่ไม่สามารถแก้ไขได้

การปรับระดับความยาก (Difficulty Adjustment)
เมื่อบิตคอยน์ (bitcoin) เริ่มมีมูลค่าเพิ่มขึ้น เป็นเรื่องธรรมดาที่มีจำนวนคนขุดบิตคอยน์เพิ่มมากขึ้น ดังนั้นจำนวน hash rate (จำนวนครั้งของการสุ่มต่อ 1 วินาที) ถ้าระบบมีนักขุดเพิ่มมากขึ้น ระยะเวลาของการเกิดบล็อกใหม่ ก็จะเร็วขึ้นกว่าที่ได้ออกแบบไว้ ส่งผลให้จำนวนบิตคอยน์ (bitcoin) ออกมาครบ 21 ล้านเร็วขึ้น ดังนั้นซาโตชิจึงออกแบบระบบการปรับระดับความยากในการขุดไว้ว่า ทุกๆประมาณ 2 สัปดาห์ หรือ 2,016 Block ถ้าค่าเฉลี่ยของการเกิดบล็อกใหม่เร็วกว่า 10 นาที ระบบจะปรับระดับความยากในการสุ่มตำตอบ โดยการเพิ่มเลข 0 ด้านหน้า Block hash ในทางกลับกันถ้าบล็อกใหม่ออกมาช้ากว่า 10 นาที ระบบ Difficulty Adjustment ก็จะปรับให้การสุ่มคำตอบนั้นง่ายขึ้น โดยการลดเลข 0 ลง และที่สำคัญส่วนๆนี้ก็ไม่สามารถแก้ไขได้ จากรูปด้านบนเห็นได้ว่า จากปี 2014 ถึง 2018 ค่า hash rate นั้นเพิ่มขึ้น ส่งผลให้ค่า difficulty นั้นเพิ่มตาม

สรุป
ตามที่ได้กล่าวมาตลอดทั้งบทความ เราสามารถสังเกตได้ว่ามีกฎกติกาบางอย่างในระบบบิตคอยน์นั้นไม่สามารถเปลี่ยนแปลงได้ นั้นก็คือ
1. จำนวนบิตคอย์ทั้งหมดมี 21 ล้านบิตคอยน์
2. ทุกๆ 210,000 Block (ประมาณ 4 ปี) จะเกิดการ “Halving”
3. ระบบการควบคุมให้การเกิดใหม่ของบล็อกนั้นอยู่ในช่วงเวลาประมาณทุกๆ 10 นาที

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

--

--

No responses yet