บล็อกเกิดขึ้นมาได้อย่างไร?
บล็อกถูกสร้างขึ้นมาโดยนักขุด
ไปต่อล่ะนะ
เมื่อคุณทำธุรกรรมบนเครือข่าย Bitcoin รายการธุรกรรมดังกล่าวจะไม่ได้ถูกเพิ่มเข้าไปบนเครือข่าย Blockchain โดยตรง แต่จะถูกเก็บเข้าไปในแหล่งรวบรวมรายการธุรกรรม (หรือแหล่งรวบรวมหน่วยความทรงจำ) ก่อน
Transaction Pool
หากคุณเป็นนักขุด คุณจะมีหน้าที่ในการรวบรวมการทำธุรกรรมจากแหล่งรวบรวมรายการธุรกรรมเข้าไปใน “ตัวแทนบล็อกในระบบ” และจากนั้นก็ลองทำงานและเพิ่มตัวแทนบล็อกนี้เข้าไปบนระบบ Blockchain
Candidate Block
Block Header (หัวบล็อก)
คุณสามารถมอบหัวบล็อกให้กับตัวแทนบล็อกได้ ซึ่งจริงๆ แล้วก็คือกลุ่มของข้อมูลรายละเอียดที่อธิบายถึงความเป็นมาของข้อมูลหรือ Metadata เกี่ยวกับบล็อก
Block Header
นักขุดใช้ข้อมูล Metadata ในการพยายามที่จะเพิ่มบล็อกเข้าไปบน Blockchain
Metadata – คำนาม หมายถึง ข้อมูลที่อธิบายรายละเอียดของข้อมูลอื่นๆ ทำหน้าที่เหมือนป้ายฉลากสินค้า
Block header fields (เขตข้อมูลหัวบล็อก)
รายละเอียดของเขตข้อมูล (Fields) เหล่านี้ไม่ได้มีความสำคัญ ณ ขณะนี้ แต่สามารถทำความเข้าใจได้จากคำอธิบายเหล่านี้:
Version (เวอร์ชั่น)
อธิบายโครงสร้างของข้อมูลภายในบล็อก นำมาใช้เพื่อให้คอมพิวเตอร์สามารถอ่านเนื้อหาของแต่ละบล็อกได้อย่างถูกต้อง
Last Block (บล็อกล่าสุด)
ตัวเลขระบุตัวตนสำหรับบล็อกก่อนหน้านี้ ที่เรากำลังพยายามที่จะนำมาใช้สำหรับตัวแทนบล็อกปัจจุบัน
Merkle Root
รายการธุรกรรมทั้งหมดที่อยู่ภายในบล็อกที่ถูก Hash ด้วยกันในรูปแบบของตัวอักษรแถวเดียว เขตข้อมูล(Field) ทั้งหมดจะไม่มีความพิเศษ แต่ก็สามารถพิจารณาได้ว่าเป็นส่วนที่สำคัญที่สุดส่วนหนึ่งของหัวบล็อก
Time (เวลา)
เวลาปัจจุบัน มีประโยชน์อย่างมากทีเดียว
Target (เป้าหมาย)
ค่าของนักขุดที่ทำงานเพื่อที่พยายามที่จะมาเป็นตัวแทนบล็อกของ Blockchain ถูกตั้งค่าโดยเครือข่าย Bitcoin และจะดูสมเหตุสมผลในเร็วๆ นี้
บล็อกถูกเพิ่มเข้าไปบน Blockchain ได้อย่างไร?
ในการเพิ่มตัวแทนบล็อกเข้าไปบน Blockchain คุณจะต้องทำการ Hash ข้อมูลในหัวบล็อก (Block Header) และหวังว่าผลที่ได้จะอยู่ต่ำกว่าค่าเป้าหมายที่ถูกตั้งไว้
Block Hash & Target
ค่าของเป้าหมายจะถูกคำนวณจากความยาก (Difficulty) ซึ่งเป็นค่าที่ถูกตั้งโดยเครือข่าย Bitcoin เพื่อที่จะกำหนดว่าการเพิ่มบล็อกของรายการธุรกรรมเข้าไปบน Blockchain จะต้องมีความยากเพียงใด
สามารถจินตนาการว่าเป้าหมายก็คือเสาแบบ Limbo สำหรับตัวแทนบล็อก ยิ่งยากมากเท่าไหร่ เป้าหมายก็ยิ่งมีค่าต่ำมากเท่านั้น และยิ่งยากมากขึ้นไปอีกหากต้องการจะหาเลข Hash ของบล็อกที่ต่ำกว่าค่านี้
ไม่ต้องกังวลไป ผมรู้ว่านี้มันยากและการจัดการความยาก (Difficulty) นี้เป็นเรื่องที่ชวนสับสนในตอนแรก แต่เวลาจะช่วยให้เข้าใจมากขึ้น
The Nonce
ผมโกหก คุณไม่สามารถทำการ Hash หัวบล็อก (Block header) ได้โดยไม่ทำอะไรเพิ่มเติม คุณจะต้อง Hash มันด้วยตัวเลขพิเศษ
Block Nonce
เลขนี้เรียกว่า Nonce และเป็นเขตข้อมูลจำลองที่นักขุดใช้เพื่อที่จะช่วยให้พวกเขาได้ตัวเลข Hash ของ Blolck ในตัวเลขที่ต่ำกว่าเป้าหมาย
Nonce – ตัวเลขสุ่มที่ถูกใช้เพียงแค่ครั้งเดียวในการสื่อสาร วิทยาการเข้ารหัส (Cryptography)
หาก nonce แรกไม่ทำงาน (เริ่มต้นที่ 0) ค่าก็จะทำการเพิ่มขึ้นและ Hash หัวบล็อกเรื่อยๆ จนในที่สุดคุณจะพบ nonce ที่กลับมาที่เลข Hash ของบล็อกที่ต่ำกว่าค่าเป้าหมาย
Block Nonce Success
ยินดีด้วย
เมื่อคุณพบ Nonce ที่ใช้งานได้ บล็อกจะถูกแก้ไขให้ถูกต้องและรายการธุรกรรมทั้งหมดในบล็อกนี้จะถูกเพิ่มเข้าไปบน Blockchain
Block Complete
ตอนนี้นักขุดทุกคนจะกลับไปที่แหล่งรวบรวมธุรกรรมและเริ่มทำงานบนตัวแทนบล็อกต่อไป พวกเขาจะใช้เลข Hash ของบล็อกที่เสร็จสมบูรณ์ในหัวบล็อกรายการต่อไปและการแข่งกันเพื่อที่จะเพิ่มบล็อกรายการธุรกรรมใหม่เข้าไปบน Blockchain จะเริ่มต้นอีกครั้ง ทำดีมาก