This article has been translated from English to Thai.

การทำเหมือง Bitcoin ทำงานอย่างไร?

ใน บทเรียนก่อนหน้า คุณได้เรียนรู้ว่าเหมือง Bitcoin คืออะไร มันเก็บธุรกรรมใหม่ ๆ ไว้ใน พูลหน่วยความจำ และเริ่มกระบวนการ “ขุด” ด้วยการสร้าง บล็อกผู้สมัคร อย่างไร

ถ้าสิ่งที่ฉันพึ่งเขียนไปฟังดูเหมือนภาษาต่างประเทศ ฉันขอแนะนำให้คุณเริ่มต้นด้วย บทเรียนแรกของคู่มือเบื้องต้นเกี่ยวกับการขุด Bitcoin ของฉัน

ถ้าคุณยังอยู่กับฉัน มาเจาะลึกเกี่ยวกับบล็อกผู้สมัครกันเถอะ...

ก็เหมือนกับที่คุณสามารถแยกออกเป็นสองส่วนพื้นฐานได้ด้วยหัวและลำตัว บล็อกผู้สมัครสามารถแยกออกได้เป็นสองส่วน:

  1. หัวหน้า บล็อก (โซนสีเหลือง)
  2. ลำตัว บล็อก (โซนสีเทา)
    Block Header and Body

ถ้าเรามองใกล้ ๆ ที่บล็อกผู้สมัคร มันจริง ๆ แล้วไม่ใช่แค่มีธุรกรรม

Candidate Block Anatomy

เมื่อคนขุดสร้างบล็อกผู้สมัคร มันจะรวม “หัวหน้า บล็อก” (โซนสีเหลือง)

“ลำตัว” ของบล็อก (โซนสีเทา) ถือ ธุรกรรม

นอกจากบล็อกผู้สมัครที่มีธุรกรรมอยู่แล้ว มันยังมีข้อมูลเมตาที่ให้ “สรุป” ของบล็อกนี้

ข้อมูลเมตา เป็นข้อมูลที่ให้ข้อมูลเกี่ยวกับข้อมูลอื่น ๆ ในกรณีนี้ ข้อมูลเมตาให้ข้อมูลเกี่ยวกับบล็อกเอง ข้อมูลนี้เรียกว่า “หัวหน้าบล็อก”

ภายใน หัวหน้าบล็อก มีข้อมูลหลายชิ้น

เพื่อวัตถุประสงค์ในบทเรียนนี้ ฉันจะทำให้สิ่งที่อยู่ภายในหัวหน้าบล็อกง่ายขึ้น

Timestamp

ข้อมูลชิ้นแรกในหัวหน้าบล็อกคือ “Timestamp

Timestamp แสดงว่าเมื่อไหร่ที่บล็อกถูกสร้างขึ้น

Timestamp

Previous Block Hash

ข้อมูลชิ้นต่อไปเรียกว่า “Previous Block” หรือที่เรียกเฉพาะว่า “Previous Block Hash

Previous Block Hash คือ block hash ของบล็อกก่อนหน้าในเชนบล็อก

Previous Block Hash

เพื่อจะเข้าใจว่าเรื่องนี้หมายความว่าอย่างไร เราจำเป็นต้องดูที่ไฟล์

Look inside blockchain

ตอนนี้ที่เรากำลังดูภายในไฟล์อยู่ เราสามารถเห็นว่าข้อมูลถูกจัดรูปแบบในลักษณะเฉพาะ

Look inside the file and see blockchainstructure

ลองมองภาพนี้ในฐานะ เชนบล็อก

บล็อกผู้สมัครที่คนขุดสร้างต้องถูกเพิ่ม บนบล็อกล่าสุด

Block must bee added on top of the most recent block

สมมติว่าบล็อกล่าสุดคือบล็อกที่มีสี น้ำเงิน

Most recent block in blockchain

เนื่องจาก Block Hash ของบล็อกที่มีสี น้ำเงิน เป็นบล็อกล่าสุดในไฟล์ (เชนบล็อก) ดังนั้นบล็อกนี้คือบล็อกที่คนขุดต้องการสร้างต่อยอด

คิดว่า Block Hash เหมือนกับ หมายเลข ID ที่สร้างขึ้นเฉพาะสำหรับบล็อก

ดังนั้นที่คนขุดจะทำคือเพิ่มสิ่งนี้เป็น “Previous Block Hash” ใน หัวหน้าบล็อกของบล็อกผู้สมัครของตัวเอง

Block hash added as Previous Block Hash of Candidate Block

“Transaction Summary” Hash

ข้อมูลถัดไปคือสิ่งที่ฉันจะเรียกว่า “Transaction Summary” Hash

ตามชื่อที่บอก มันให้ “สรุป” ของธุรกรรมทั้งหมดในบล็อกซึ่งแสดงออกมาเป็นสตริงของตัวอักษร

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

Merkle Root

 

แฮชนี้ถูกใช้เป็น “Transaction Summary” HashMerkle Root Example

สิ่งที่แฮชนี้ให้คือการมี “ลายนิ้วมือ” เฉพาะที่อิงจากธุรกรรมทั้งหมดที่รวมอยู่ในบล็อก

สิ่งนี้ช่วยให้มั่นใจได้ว่าธุรกรรม ไม่มีการถูกปรับแต่ง

“Transaction Summary” Hash นี้เป็นที่รู้จักกันในชื่อ “Merkle Root“. 🤓

จดจำไว้ว่า, การเปลี่ยนแปลงเล็ก ๆ น้อย ๆ ในข้อมูลจะทำให้แฮชเปลี่ยนแปลงทั้งหมด ซึ่งหมายความว่าถ้ามีใครพยายามจะแก้ไขธุรกรรมในบล็อกในอนาคต มันจะทำให้ “Transaction Summary” Hash เปลี่ยนแปลงและแตกต่างจากค่าต้นฉบับที่อยู่ในหัวหน้าบล็อกอย่างสิ้นเชิงMerkle Root as Fingerprint

โดยพื้นฐานแล้ว การเปลี่ยนแปลงธุรกรรมจะสร้าง “ลายนิ้วมือ” ที่แตกต่างออกไปและจะไม่ตรงกับ “ลายนิ้วมือ” ต้นฉบับ

การเปลี่ยนแปลงนี้จะทำให้ทุกคนรู้ทันทีว่ามีการปรับแต่งธุรกรรม

Block Hash

จนถึงตอนนี้ หัวหน้าบล็อกมีข้อมูลอยู่สามชิ้น:

  1. Timestamp
  2. Previous Block Hash
  3. “Transaction Summary” Hash

ขั้นตอนต่อไปคือใส่ข้อมูลหัวหน้าบล็อกนี้ลงในฟังก์ชันแฮช

สิ่งนี้จะสร้างหมายเลขสุ่มที่เรียกว่า “Block Hash

(แม้ว่าชื่อที่ถูกต้องมากขึ้นคือ “Block Header Hash” เนื่องจากมันเป็นแฮชของแค่หัวหน้าบล็อก ไม่ใช่ทั้งบล็อก)

เช่นเดียวกับ Previous Block Hash ที่กล่าวถึงก่อนหน้านี้ คิดว่า Block Hash เป็นหมายเลข ID ที่สร้างขึ้นเฉพาะที่จะถูกกำหนดให้กับบล็อกผู้สมัคร

Run block header through hash function
ทำไมคนขุดถึงทำอย่างนี้?

เพื่อให้คนขุดสามารถเพิ่มบล็อกของตัวเองไปยังเชนบล็อกได้ มันต้อง หา Block Hash ที่ตรงตามข้อกำหนด

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

โดยเฉพาะอย่างยิ่ง Block Hash จะต้องเป็น หมายเลขที่เริ่มต้นด้วยจำนวนศูนย์ที่กำหนด

จำเป็นต้องมีศูนย์กี่ตัวกันแน่?

มันแตกต่างกันไป ซอฟต์แวร์ของระบบ Bitcoin กำหนด จำนวนศูนย์ต่ำสุด ที่ Block Hash ควรเริ่มต้นด้วย

เดิมที ข้อกำหนดคือให้มีแค่จำนวนศูนย์เล็ก ๆ แต่เมื่อมีคนขุดมากขึ้นและมากขึ้น ซอฟต์แวร์ Bitcoin เริ่มต้องการจำนวนศูนย์ที่มากขึ้น

Bitcoin mining process without nonce

คนขุดต้องสร้างผลลัพธ์ (Block Hash) ที่ตรงตามเกณฑ์การผลลัพธ์ที่ซอฟต์แวร์ Bitcoin กำหนด

“เกณฑ์” นี้แค่ระบุจำนวนศูนย์ที่ Block Hash ต้องเริ่มต้นด้วย

มันเหมือนกับการเต้น “ลิมโบ้”

Bitcoin mining is like a limbo dance

ยิ่งเกณฑ์ต่ำเท่าไร ยิ่งต้องมีศูนย์มากเท่านั้น

ยิ่งต้องการศูนย์มากเท่าไร ยิ่งยากขึ้นในการหาบล็อกที่ถูกต้อง

นี่เป็นเพราะว่าศูนย์นำมากขึ้นหมายถึงจำนวนวิธีแก้ไขที่เป็นไปได้มีน้อยลง ซึ่งหมายถึงใช้เวลามากขึ้นในการ “หา” Block Hash ที่ถูกต้อง

การหาค่าที่เริ่มด้วยสามศูนย์เช่น “000123…” ยากกว่าการหาค่าที่มีหกศูนย์เช่น “000000123…

นี่คือตัวอย่าง ล่าสุด ของ Block Hash ที่แท้จริง:

0000000000000000000586b367c292dfd274bf2e67575cf8b4d00735fc1df6ff

สังเกตว่ามันเริ่มด้วยศูนย์กี่ตัว

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

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

ถ้า Block Hash ไม่เริ่มด้วยจำนวนศูนย์ที่ต้องการจะเป็นอย่างไร?

จากนั้นบล็อกจะไม่สามารถถูกเพิ่มลงในไฟล์ (เชนบล็อก)

โชคดีที่ คนขุดสามารถมีความพยายามหลายครั้ง

แต่ถ้าคนขุดแค่ใส่หัวหน้าบล็อกซึ่งมีแค่ Timestamp, Previous Block Hash, และ “Transaction Summary” Hash ผ่านฟังก์ชันแฮชอีกครั้ง มันจะได้ผลลัพธ์เดิมเสมอ

คนขุดจำเป็นต้องเปลี่ยนแปลงข้อมูลบางอย่างก่อนพยายามแฮชหัวหน้าบล็อก อีกครั้ง

Bitcoin มีวิธีให้!

The Nonce

ในหัวหน้าบล็อกมีช่องเพิ่มเติมที่เรียกว่า “nonce” (กล่องสีฟ้าอ่อน)

Block header contains a nonce

มี ส่วนพิเศษของหัวหน้าบล็อก ที่คนขุดสามารถเติมตัวเลขใด ๆ เข้าไปได้

คนขุดมีอิสระที่จะใส่ตัวเลขใด ๆ ที่ต้องการ

nonce แยกออกจากธุรกรรมในบล็อกทั้งหมด จุดประสงค์เดียวของมันคืออนุญาตให้คนขุดเติมตัวเลข และ เปลี่ยนตัวเลข ถ้า Block Hash ไม่ตรงตามข้อกำหนดในการเริ่มต้นด้วยจำนวนศูนย์ที่กำหนด

ด้วยการใช้ nonce คนขุดสามารถปรับเปลี่ยนผลลัพธ์ของฟังก์ชันแฮชเพื่อ “เดา” ผลลัพธ์ที่ต้องการ

เนื่องจากข้อมูลอื่น ๆ ในหัวหน้าบล็อกไม่สามารถเปลี่ยนแปลงได้ ข้อมูลเดียวที่สามารถเปลี่ยนแปลงได้คือ nonce

ดังนั้นถ้าความพยายามแฮชครั้งแรกของหัวหน้าบล็อกล้มเหลว คนขุดเปลี่ยนค่าของ nonce

คุณสามารถคิดถึงกระบวนการนี้เหมือนกับการพยายามหาการผสมของ กุญแจรหัสลับ

Combination Lock

ไม่มีทางลัดเมื่อพยายามหาการผสมตัวเลขที่ปลดล็อกมัน คุณต้องลองทุกการผสมที่เป็นไปได้จนกว่าจะเจอที่ถูกต้อง โดยบังเอิญ

คุณต้องเดาซ้ำ ๆ จนกว่าคุณจะโชคดี!

และเช่นเดียวกับที่มันง่ายและ รวดเร็วในการตรวจสอบ ว่าการผสมของกุญแจเป็นตัวที่ถูกต้องหรือไม่ (มันจะปลดล็อกหรือไม่มันไม่ปลดล็อก) มันก็ง่ายและรวดเร็วสำหรับคนขุด และสำหรับโหนดยังตัวอื่น ๆ ในภายหลังในการตรวจสอบว่า nonce เป็นตัวที่ถูกต้องหรือไม่

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

ตัวอย่างเช่น, สมมติว่า Block Hash ต้องเริ่มต้นด้วยศูนย์อย่างน้อยสี่ตัว

ทางเดียวที่จะหา Block Hash ที่มีจำนวนศูนย์เริ่มต้นตามที่กำหนดคือการ สุ่มเลือกค่า nonce และทำการแฮชหัวหน้าบล็อก

ในสถานการณ์นี้ คนขุดเริ่มต้นด้วย “0” สำหรับค่า nonce (กล่องสีฟ้าอ่อน)

Nonce is 0

ถ้าล้มเหลวในการสร้างผลลัพธ์ที่ต้องการ สิ่งเดียวที่คนขุดสามารถทำคือพยายามอีกครั้ง ด้วย nonce อื่น

คนขุดเปลี่ยน nonce แล้วเริ่มต้นใหม่อีกครั้งจนกว่าจะสามารถหา Block Hash ที่มีอย่างน้อยจำนวนศูนย์ที่ต้องการ ในกรณีนี้ สี่ศูนย์

จดจำไว้ว่าถึงแม้ว่าคุณจะทำการเปลี่ยนแปลงเพียงเล็กน้อย ด้วยฟังก์ชันแฮช แม้การเปลี่ยนแปลงเพียงเล็กน้อยจะทำให้ผลลัพธ์เปลี่ยนไปอย่างสิ้นเชิง

ดังนั้นความพยายามครั้งแรกของคนขุดคือการใช้ตัวเลข “0” ใน nonce จากนั้นเขานำหัวหน้าบล็อกผ่านฟังก์ชันแฮชและดูว่า Block Hash เริ่มต้นด้วยสี่ศูนย์หรือไม่

อย่างที่คุณเห็น Block Hash เริ่มต้นด้วยสองศูนย์ เท่านั้น ดังนั้นมันไม่ตรงตามเกณฑ์ที่ต้องการในการเพิ่มบล็อกลงในเชนบล็อก

ถ้าผลลัพธ์ไม่ถูกต้อง คนขุดจะพยายามต่อไปด้วยค่า nonce ที่แตกต่างกัน

เนื่องจากค่า “0” ไม่ได้ผล คนขุดสามารถเปลี่ยนค่า nonce เป็น “1” (กล่องสีฟ้าอ่อน) แล้วนำหัวหน้าบล็อกผ่านฟังก์ชันแฮชอีกครั้ง

Nonce changed to 1

อย่างที่คุณเห็น Block Hash เริ่มต้นด้วย ไม่มีศูนย์ ดังนั้นสิ่งนี้ก็ไม่สำเร็จเช่นกัน

เนื่องจากค่า “1” ไม่ได้ผล คนขุดสามารถเปลี่ยนค่า nonce เป็น “2” (กล่องสีฟ้าอ่อน) แล้วนำหัวหน้าบล็อกผ่านฟังก์ชันแฮชอีกครั้ง

Nonce changed to 2

ในกรณีนี้ Block Hash สุดท้ายเริ่มต้นด้วยสี่ศูนย์ และตรงตามเกณฑ์

มันเป็นผลลัพธ์ Block Hash ที่สำเร็จ! 🎉

อย่างที่คุณเห็น มันไม่สามารถทำนายได้ว่า nonce ไหนจะสร้าง Block Hash ที่มีจำนวนศูนย์ถูกต้อง ดังนั้นคนขุดต้อง พยายาม nonce ที่แตกต่างกันเพื่อหาค่าที่ถูกต้อง

คนขุดสามารถขุดเป็นเวลานานๆ โดยไม่มีการรับประกันว่าจะพบ nonce ที่ถูกต้องเลย ส่วนใหญ่จะไม่พบ!

nonce ถูกใช้เป็นตัวนับ ซึ่งค่าของมันจะถูกเพิ่มขึ้นตลอดจนกว่าจะหาค่า Block Hash ที่ถูกต้องหรือมีคนขุดคนอื่นทำ

มันเหมือนเกมการเดาตัวเลข!

คุณเพียงแค่พยายามหาค่าที่เริ่มต้นด้วยจำนวนศูนย์ที่กำหนดโดยการเปลี่ยนค่า nonce

คนขุดทำสิ่งนี้ซ้ำ ๆ ... หวังว่าผลลัพธ์จะสร้าง Block Hash ที่ตรงตามเกณฑ์

คอมพิวเตอร์ที่ทรงพลังมากขึ้นสามารถทำ “การเดา” ได้มากขึ้น

กระบวนการ “การเดา” นี้เป็นที่รู้จักว่าเป็น การขุด

คนขุด “ที่ชนะ” จะได้รับรางวัลเป็นจำนวน Bitcoin ที่กำหนดไว้ (บวกกับค่าธรรมเนียมธุรกรรม) เรียกว่า “รางวัลบล็อก

คนขุดคนหนึ่งชนะรางวัลบล็อกประมาณ ทุก ๆ 10 นาที

รางวัลบล็อก

เนื่องจากคนขุดใช้เวลามากและพลังงานในการ “เดา” nonce ที่ถูกต้องและยืนยันธุรกรรมบนเชนบล็อก Bitcoin ซอฟต์แวร์ Bitcoin ให้รางวัลพวกเขาสำหรับความพยายามด้วย:

  1. Bitcoin ที่สร้างใหม่ เมื่อคนขุดยืนยันธุรกรรม พวกเขาจะถูกรวมเป็นบล็อกและเพิ่มลงในเชนบล็อก Bitcoin สำหรับทุกบล็อกใหม่ที่ถูกเพิ่มลงในเชนบล็อก bitcoins ใหม่จะถูกจ่ายให้กับคนขุด สิ่งนี้เรียกว่า บล็อกสัปดาห์ จำนวนที่แน่นอนของ bitcoins จะขึ้นอยู่กับตารางการออกที่กำหนดโดยโปรโตคอลในเวลาที่บล็อกถูกสร้างขึ้น ณ วันที่ 20 เมษายน 2024 ออกใหม่คือ 3.125 BTC ต่อบล็อก หลังจากเหตุการณ์ halving ล่าสุด ครั้งต่อไปที่ halving จะเกิดขึ้นประมาณวันที่ 2 เมษายน 2028 เมื่อรางวัลบล็อกจะลดลงเหลือ 1.5625 BTC ต่อบล็อก.
  2. ค่าธรรมเนียมธุรกรรม เมื่อผู้คนทำการธุรกรรมกับ bitcoin พวกเขาจ่ายค่าธรรมเนียมให้กับคนขุดเพื่อเพิ่มแรงจูงใจให้พวกเขายืนยันธุรกรรมของพวกเขา เมื่อคนขุดยืนยันกลุ่มธุรกรรม พวกเขาก็รวบรวมค่าธรรมเนียมจากแต่ละธุรกรรมด้วย

การขุดเป็นกระบวนการที่ซ้ำซากและน่าเบื่อ:

Bitcoin Mining Process

ใช้หัวหน้าบล็อกกับ nonce แฮชมัน ดูว่าแฮชเริ่มต้นด้วยจำนวนศูนย์ที่กำหนดหรือไม่ และถ้าไม่ใช่ ให้ทำซ้ำกระบวนการด้วย nonce อื่น

ฉันรู้สึกง่วงแค่คิดถึงมัน. 😴

ดังนั้นเมื่อคุณอ่านหรือได้ยินว่าการขุดเกี่ยวข้องกับ '“การแก้ปัญหาทางคณิตศาสตร์ที่ซับซ้อน” ตอนนี้คุณรู้แล้วว่านั่นไม่ใช่คำอธิบายที่ถูกต้อง

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

อัตราแฮช” บ่งบอกถึง “พลังการเดา” ของคอมพิวเตอร์ขุด ยิ่งคุณสามารถเดาแฮชต่อวินาทีได้มากเท่าไร อัตราแฮชของคุณก็จะสูงขึ้นเท่านั้น ตัวอย่างเช่น, 1 ล้านล้าน (1,000,000,000) การเดาต่อวินาทีเท่ากับอัตราแฮชของ 1 เทอร์ร่าแฮช (TH/s).

เพียงเพราะกระบวนการนี้ง่าย ไม่ได้หมายความว่ามันง่าย นั่นคือเหตุผลที่เรียกว่า “การขุด”. คุณพยายาม “ขุด” ตัวเลขที่ถูกต้องซึ่งต้องการความพยายามอย่างมาก เหมือนกับการขุดจริงๆในโลกจริง

ตอนนี้ที่คนขุดได้พบ nonce ที่สามารถสร้าง Block Hash ที่ตรงตามข้อกำหนด (เริ่มต้นด้วยอย่างน้อย 4 ศูนย์) บล็อกจะถูกเพิ่มลงในสำเนาไฟล์ของคนขุด (เชนบล็อก)

จำได้ไหมว่าบล็อกสีน้ำเงินเป็นบล็อกล่าสุดในเชนบล็อกของคนขุด? ไม่อีกต่อไปแล้ว

เนื่องจากคนขุดสามารถเดา nonce ที่ถูกต้องได้ เขาสามารถเพิ่มบล็อกของตัวเองลงในเชนบล็อก (สีเขียว)

Block added to blockchain

ดังนั้นจากมุมมองที่สูงขึ้น ไฟล์ในคอมพิวเตอร์ของคนขุดได้รับการอัปเดต (ระบุด้วย เขียว)

Miner's blockchain updated

จากนั้นโหนดจะส่งบล็อกนี้ไปยังโหนดใกล้เคียงที่เชื่อมต่อโดยตรง

โหนดเหล่านั้นจะตรวจสอบ ยืนยัน และตรวจสอบให้แน่ใจว่าหัวหน้าบล็อกสร้าง Block Hash ที่ตรงตามเกณฑ์ ในกรณีนี้ Block Hash ต้องเริ่มต้นด้วยสี่ศูนย์Bitcoin miner propogates new block

โหนดเหล่านี้จะอัปเดตไฟล์ของพวกเขา (เชนบล็อก) โดยเพิ่มบล็อกลงในไฟล์

ไฟล์ของพวกเขาจะถูกอัปเดตและตอนนี้จะเป็นเวอร์ชันเดียวกันกับของคนขุดที่ชนะ (เขียว ไฟล์)

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

ธุรกรรมที่ขัดแย้งใด ๆ จะถูก โยนทิ้ง

ขอบคุณกระบวนการขุด มีเพียงธุรกรรมสีม่วงเท่านั้นที่จะทำให้เข้าสู่เชนบล็อกได้Blockchain synced across network

จากนั้นโหนดเหล่านี้จะส่งบล็อกไปยังโหนดอื่น ๆNodes will pass on the block to other nodes.

เมื่อบล็อกใหม่ได้รับการยอมรับจากคนขุดส่วนใหญ่ คนขุดทั้งหมดจะเริ่มต้นใหม่และสร้างบล็อกผู้สมัครใหม่และกระบวนการขุดจะเริ่มต้นใหม่

การขุดทำหน้าที่เป็น กลไกการจัดลำดับธุรกรรม ข้ามเครือข่ายคอมพิวเตอร์ ที่บล็อกที่ “ขุด” มีคำตัดสินสุดท้ายว่าอะไรที่ควรอยู่ในเชนบล็อก

Block Hash จากบล็อกใหม่ที่ถูกสร้างขึ้นนี้จะถูกใช้โดยคนขุดสำหรับ “Previous Block Hash” ในบล็อกผู้สมัครของพวกเขา

Newly created block will now be used by miners

Block Hash ทำหน้าที่เป็น “โซ่

คนขุดต้องรวม Block Hash ของบล็อกก่อนหน้าในบล็อก ใหม่ ที่พวกเขาสร้าง

Miner include new block hash in new block

ตัวอย่างเช่น, หมายความว่าเพื่อขุดบล็อก 101 คนขุดต้องรู้จักแฮชของบล็อก 100

จนกว่า บล็อก 101 จะถูกขุดขึ้นมาได้,บล็อก 102 จึงไม่สามารถถูกขุดได้

สิ่งนี้บังคับให้คนขุดต้องโฟกัสที่บล็อก 101 ซึ่งในทางกลับกันรวมถึงแฮชของ บล็อก 100 ไม่มีคนขุดคนใดสามารถข้ามขั้นได้

แต่แทนที่จะให้แต่ละบล็อกมี “หมายเลขบล็อก” แต่ละบล็อกจะอ้างอิงบล็อกก่อนหน้าโดยใช้ Block Hash ของมัน

สิ่งนี้หมายความว่าทุกบล็อกถูกเชื่อมโยงถึงกันและนั่นคือสิ่งที่สร้าง “โซ่ของบล็อก” ที่รู้จักกันในชื่อเชนบล็อก

“โซ่ของบล็อก” นี้ถูกรักษาไว้ด้วย Block Hash

ทำไมคุณไม่สามารถโกง Bitcoin ได้

สมมติว่าทุกคนกำลังทำงานในบล็อก 101

แต่คนขุดคนหนึ่งต้องการปรับเปลี่ยนธุรกรรมในบล็อก 80

เขาจะต้องทำการเปลี่ยนแปลงและทำการคำนวณใหม่ทั้งหมดสำหรับ บล็อก 80-100 และยังต้องทำบล็อก 101

นั่นคือ 21 บล็อก ของการคำนวณที่แพง!

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

มันยากมากที่จะหลีกเลี่ยงการปรับแต่งธุรกรรมใด ๆ ที่เป็นส่วนหนึ่งของเชนบล็อกซึ่งมีอยู่แล้ว

นี่คือสิ่งที่หมายความว่าเมื่อเชนบล็อกถูกอธิบายว่า เปลี่ยนแปลงไม่ได้

Proof-of-Work (PoW)

กระบวนการขุดมักถูกเรียกว่า “Proof-of-Work” หรือ PoW

PoW เป็นที่รู้จักว่าเป็น “กลไกที่ทำให้เกิดฉันทามติ” ที่ Bitcoin ใช้ในการให้ทุกโหนดยอมรับสำเนาที่ “เป็นทางการ” ของเชนบล็อก Bitcoin มันเป็นวิธีที่ Bitcoin สามารถเข้าถึง ฉันทามติ ได้โดยไม่จำเป็นต้องมีการแก้ไขข้อพิพาทหรือการแทรกแซงจากหน่วยงานกลาง

คำว่า “proof-of-work” แค่หมายถึงข้อเท็จจริงที่ว่ามันต้องใช้ “งาน” เพื่อหาบล็อกแฮชที่ต่ำกว่าซีรี่ย์ที่กำหนด และเมื่อคุณทำได้ ใคร ๆ ก็สามารถตรวจสอบได้ซึ่งให้ “หลักฐาน”

กระบวนการ “การเดา nonce” และจากนั้นรันหัวหน้าบล็อกผ่านฟังก์ชันแฮชถูกใช้เป็นวิธีในการพิสูจน์ว่าคุณได้ทำ “งาน” ที่ต้องการบนบล็อกของคุณแล้ว

คนขุดคนแรกที่ผลิตแฮชที่ถูกต้องจะได้รับสิทธิ์ในการเพิ่มบล็อกใหม่ลงในเชนบล็อกและพวกเขาจะได้รับรางวัลเป็น bitcoins

หากมีคนขุดจำนวนมากเข้าร่วมเครือข่าย Bitcoin, PoW จะปรับให้ยากขึ้นในการหาบล็อกแฮชที่ถูกต้อง หากความยากที่เพิ่มขึ้นนี้ท้อแท้เกินไปและคนขุดหยุดขุด ความยากจะลดลงเพื่อให้ง่ายขึ้นในการขุด

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

การปรับความยากเกิดขึ้นจากความเร็วที่คนขุดสร้างบล็อกใหม่

โดยการปรับความยากในการขุด Bitcoin สามารถทำให้แน่ใจว่า bitcoins ใหม่ถูกสร้างขึ้นใน อัตราที่กำหนดไว้ ไม่ว่าสามารถคำนวณจำนวนใดที่เข้าร่วมในเครือข่าย

การปรับความยากสำคัญเพราะมันทำให้แน่ใจว่าคนขุดไม่สามารถขุด มากเกินไปจากจำนวนการออกของ bitcoin อย่างรวดเร็วเกินไป

ฮาร์ดแวร์คอมพิวเตอร์เฉพาะทางและไฟฟ้าที่จำเป็นในการขุดยังหมายความว่าการโจมตีเครือข่ายนั้นมีค่าใช้จ่ายที่สูงเกินไปจนไม่คุ้มค่า สิ่งนี้ทำให้มั่นใจใน ความปลอดภัย และ ความสมบูรณ์ ของเชนบล็อก Bitcoin

ใครก็ตามที่มีพลังการคำนวณเพียงพอที่จะโจมตีเครือข่ายจะดีกว่าหากขุดอย่างตรงไปตรงมาและได้รับรางวัลบล็อก (bitcoins ใหม่บวกกับค่าธรรมเนียมธุรกรรม)

สนใจเรียนรู้เพิ่มเติมเกี่ยวกับด้านเทคนิคของ Bitcoin? learnmeabitoin.com ให้คำแนะนำที่ง่ายต่อการติดตามที่ยอดเยี่ยมเพื่อช่วยให้คนเข้าใจว่า Bitcoin ทำงานอย่างไร

สรุป

ยินดีด้วย! ตอนนี้คุณรู้แล้วว่า “การขุด” ใน Bitcoin ทำงานอย่างไร!

  • คนขุดค้นหาตัวแฮชที่ยอมรับได้ที่จะเป็น “Block Hash” โดยการเลือก nonce, รันฟังก์ชันแฮช, และตรวจสอบผลลัพธ์
  • ถ้าแฮชไม่มีจำนวนศูนย์เริ่มต้นที่ถูกต้อง คนขุดเปลี่ยน nonce, รันฟังก์ชันแฮช, และตรวจสอบอีกครั้ง
  • เมื่อคนขุดโชคดีพอที่จะพบ nonce ที่ทำงานได้ และ “ชนะ” บล็อกจะถูกส่งไปยังโหนดอื่น ๆ (รวมถึงคนขุดอื่น ๆ) ในเครือข่าย Bitcoin แต่ละโหนดสามารถรันฟังก์ชันแฮชด้วย nonce ของคนขุดที่ชนะ และยืนยันว่ามันทำงานได้
  • ถ้าโซลูชันได้รับการยอมรับจากโหนดส่วนใหญ่ บล็อกจะถูกเพิ่มลงในเชนบล็อกและคนขุดที่ชนะจะได้รับรางวัลบล็อก
  • คนขุดทั้งหมด “รีเซ็ต” และเริ่มทำงานกับบล็อกผู้สมัครใหม่ โดยใช้แฮชของบล็อกที่เพิ่งขุดเสร็จเป็นข้อมูลอ้างอิงในหัวหน้าบล็อกของพวกเขา (เป็น “หัวหน้าบล็อกก่อนหน้า”)
  • กระบวนการที่คนขุดพยายาม “เดา” หรือหาค่า nonce ที่ถูกต้องนี้รู้จักกันว่าเป็น “Proof-of-Work” (PoW)

ตอนนี้ที่เราได้เรียนรู้เกี่ยวกับคนขุดและการขุด มาปรับปรุงแผนที่ของระบบ Bitcoin ของเรากันเถอะ:

Bitcoin as a System (Mining Added)