Blockchain เป็นไฟล์ข้อมูลของรายการการทำธุรกรรม และเป็นไฟล์ข้อมูลที่มีความสำคัญที่ Node ของ Bitcoin จำเป็นต้องรักษาเอาไว้
สาเหตุที่เรียกไฟล์ข้อมูลดังกล่าวกว่า Blockchain ก็เพราะว่ารายการธุรกรรมใหม่จะถูกเพิ่มในไฟล์ข้อมูลในรูปแบบของบล็อกและบล็อกเหล่านี้จะสร้างต่อกันไปเรื่อยๆ ในรูปแบบของห่วงโซ่ เชื่อมแต่ละบล็อกเข้าด้วยกัน ดังนั้นจึงเรียกว่า Blockchain
แต่ท้ายที่สุดแล้ว Blockchain เป็นที่เก็บรักษารายการการทำธุรกรรมของ Bitcoin แบบถาวร
เราจะได้รับสำเนาของ Blockchain ได้อย่างไร?
เมื่อคุณเริ่มใช้งานโปรแกรม Bitcoin แล้ว Node ของคุณจะดาวน์โหลดบล็อกจาก Node อื่นๆ บนเครือข่ายจนกว่าคุณจะมีสำเนาอัพเดทของ Blockchain อย่างสมบูรณ์
เมื่อ Node แต่ละ Node เชื่อมต่อกัน ก็จะมีการส่งต่อข้อมูลความสูงของห่วงโซ่ที่แต่ละ Node มี (หรือเรียกอีกอย่างว่าแต่ละ Node มีจำนวนบล็อกอยู่มากเท่าไหร่) ระหว่างที่กำลังทำความรู้จักกันเป็นครั้งแรก หาก Node อื่นๆ มีจำนวนบล็อกมากกว่าคุณ Node ของคุณจะส่งคำขอข้อมูลบล็อกเหล่านี้จาก Node อื่นๆ จนกว่าคุณจะมีสำเนาสมบูรณ์ของ Blockchain
ผลก็คือ Node ทุก Node จะสื่อสารกันอยู่ตลอดเพื่อที่จะสร้างสำเนาของข้อมูลบน Blockchain ข้ามเครื่องคอมพิวเตอร์ทุกเครื่องบนเครือข่าย
บล็อกใหม่จะถูกเพิ่มเข้าไปใน Blockchain ได้อย่างไร?
บล็อกใหม่ของรายการธุรกรรมจะต้องถูกขุดก่อนที่จะถูกเพิ่มเข้าไปบน Blockchain ได้
อธิบายสั้นๆ ก็คือกระบวนการของการขุดจะเกี่ยวข้องกับการการรวบรวมรายการธุรกรรมจากแหล่งรวบรวมหน่วยความทรงจำ(Memory Pool) เข้าไปในบล็อกที่กำลังจะถูกเลือก(Candidate Block) และจากนั้นก็จะใช้กำลังประมวลผลในการสร้างเลข Hash ของบล็อกหรือ Block hash ให้ต่ำกว่าเป้าหมาย หมายความว่า Node ใดๆ ก็ตามบนเครือข่ายสามารถขุดบล็อกใหม่ได้ แต่คุณต้องเพิ่มพลังงานในการทำเช่นนั้นเสียก่อน
เมื่อ Node (หรือ “นักขุด”) ขุดบล็อกใหม่ได้สำเร็จ ก็จะมีการกระจายข้อมูลกับ Node อื่นๆ บนเครือข่าย จากนั้น Node อื่นๆ ที่ได้รับข้อมูลบล็อกใหม่นี้ก็จะเพิ่มข้อมูลดังกล่าวเข้าไปบน Blockchain ของตัวเอง จากนั้นนักขุดก็จะเริ่มพยายามขุดบล็อกใหม่บน Blockchain นั้นๆ
ผลก็คือ นักขุดจะทำงานในการขยาย Blockchain อยู่เสมอกับบล็อกของรายการธุรกรรมใหม่ๆ
สามารถขุดบล็อกพร้อมกันสองบล็อกได้หรือไม่?
สามารถทำได้และเป็นเรื่องปกติ
ในสถานการณ์นี้ Node จะพิจารณาบล็อกแรกที่ได้รับให้เป็นส่วนหนึ่งของ Blockchain แต่ก็จะเก็บบล็อกที่สองเผื่อเอาไว้ด้วยเช่นกัน อย่างไรก็ตาม บล็อกที่สองที่มาถึง (และธุรกรรมที่อยู่ภายใน) จะไม่ถูกพิจารณาให้เป็นส่วนหนึ่งของ Blockchain ที่ถูกใช้งานอยู่
เพราะเหตุนี้ Node บนเครือข่ายจะปฏิเสธหากหนึ่งในบล็อกสองบล็อกนี้อยู่ด้านบนสุดของห่วงโซ่ของบล็อก
การปฏิเสธนี้จะถูกแก้ไขหากบล็อกต่อไปถูกขุด บล็อกต่อไปจะถูกสร้างเหนือหนึ่งในบล็อกเหล่านี้ สร้างห่วงโซ่ของบล็อกที่ยาวที่สุดห่วงโซ่ใหม่ขึ้นมาและตามกฏ Node จะนำห่วงโซ่ของบล็อกที่ยาวที่สุด(Longest Chain) มาใข้งานเสมอเพราะถือว่าเป็น Blockchain ที่ถูกใช้งานอยู่
ผลก็คือ บาง Node อาจจะทำการจัดเรียงห่วงโซ่ใหม่เพื่อที่จะย้ายบล็อกต่างๆ ออกไปจากห่วงโซ่เก่าที่ใช้งานอยู่เป็นพิเศษสำหรับบล็อกที่ถูกสร้างขึ้นมาให้เป็นห่วงโซ่ที่ยาวที่สุด
จากนั้น แม้ว่าจะมีการปฏิเสธไม่ว่าในเวลาใดก็ตามว่าบล็อกไหนกันแน่ที่ควรจะอยู่ด้านบนสุดของ Blockchain การขุดบล็อกใหม่และการใช้งานห่วงโซ่ของบล็อกที่ยาวที่สุดจะหมายความว่า Node นั้นๆ จะต้องยอมรับในท้ายที่สุด
Node จะนำห่วงโซ่ของบล็อกที่ยาวที่สุดมาใช้งานเป็นเวอร์ชั่นที่ได้รับการยอมรับของ Blockchain เสมอ
หมายความว่าบล็อกนั้นใน Blockchain สามารถถูกแทนที่ได้?
ใช่
เนื่องจากข้อเท็จจริงที่ว่า Node มักจะนำเอาห่วงโซ่ของบล็อกที่ยาวที่สุดมาใช้งานเสมอ คุณจึงสามารถทำการลองสร้างห่วงโซ่ของบล็อกใหม่ที่ยาวขึ้นเพื่อทดแทนของเก่าได้ และทุกๆ Node บนเครือข่ายจะนำห่วงโซ่ของบล็อกนั้นไปใช้งาน ส่งผลให้คุณสามารถ “ยกเลิก” หรือถอยกลับธุรกรรม Bitcoin จากบน Blockchain ได้
หากคุณสร้างห่วงโซ่ของบล็อกที่ยาวที่สุดขึ้นมาได้ Node อื่นๆ ก็จะนำห่วงโซ่ดังกล่าวไปใช้งานทันที
อย่างไรก็ตาม ปัญหาก็คือนักขุดทั้งหมดจะได้รับผลตอบแทนในการขุดบล็อกบนห่วงโซ่ของบล็อกที่ยาวที่สุด หมายความว่ากำลังประมวลผลของนักขุดบนเครือข่ายทั้งหมดรวมกันจะมุ่งไปที่การสร้างห่วงโซ่ที่ยาวที่สุดเพียงหนึ่งเดียวเท่านั้น ทำให้ห่วงโซ่ดังกล่าวถูกสร้างอย่างรวดเร็วกว่าห่วงโซ่ไหนๆ ที่คุณสามารถสร้างขึ้นมาได้ด้วยตัวของคุณเอง
นักขุดอื่นๆ ทุกคนกำลังทำงานเพื่อขยายห่วงโซ่ของบล็อกที่ยาวที่สุด
อธิบายอีกอย่างหนึ่งก็คือ การรวมกันของกำลังประมวลผลของเครือข่ายที่กำลังเดินหน้าสร้าง Blockchain จะช่วยปกป้องบล็อก (และรายการธุรกรรม) ที่ถูกขุดเรียบร้อยแล้วบน Blockchain
เพราะฉะนั้น หนทางเดียวที่จะทำการจัดเรียงห่วงโซ่ใหม่ (เพื่อที่จะ “ยกเลิก” การทำธุรกรรมบนบล็อกที่ถูกขุดขึ้นมาแล้ว) จะต้องใช้กำลังประมวลผลที่มากกว่านักขุดทั้งหมดรวมกันเพื่อที่จะขุดเครือข่ายขึ้นมาใหม่ทั้งหมดและสร้างห่วงโซ่ของบล็อกที่ยาวที่สุดเพื่อให้ทุกคนมาใช้งาน
และนี่ก็หมายถึง “51% ของการโจมตี”
สรุป
Blockchain เป็นที่เก็บรักษารายการการทำธุรกรรมของ Bitcoin แบบถาวร รายการธุรกรรมใหม่จะถูกเพิ่มเข้าไปเป็นไฟล์ข้อมูลในบล็อก และบล็อกเหล่านี้จะถูกสร้างบนสุดของแต่ละบล็อก ต่อกันเป็นห่วงโซ่ของบล็อก
บล็อกใหม่จะถูกเพิ่มเข้าไปบน Blockchain ผ่านการขุด ซึ่งจะเกี่ยวข้องกับการใช้ระบบประมวลผลคอมพิวเตอร์ หมายความว่ากระบวนการนี้จำเป็นต้องใช้พลังงานในการขุดบล็อก แต่ Node ใดๆ ก็ตามบนเครือข่ายสามารถที่จะเข้าทำงานและลองพยายามเพิ่มบล็อกถัดไปบนห่วงโซ่ของบล็อก
เมื่อบล็อกใหม่ถูกขุดขึ้นมาก็จะถูกถ่ายทอดข้อมูลผ่านเครือข่าย ซึ่ง Node ทั้งหลายจะทำการตรวจสอบและเพิ่มเข้าไปในห่วงโซ่ของบล็อกของตัวเอง กระบวนการเหล่านี้จะทำให้ Blockchain กลายเป็นบัญชีของธุรกรรมที่เติบโตขึ้นไปเรื่อยๆ และกระจายไปยังคอมพิวเตอร์มากมายที่อยู่บนเครือข่าย
Node จะนำห่วงโซ่ของบล็อกที่ยาวที่สุดมาใช้งานเสมอจากการพิจารณาว่าเป็นเวอร์ชั่นที่ถูกใช้งานอยู่ของ Blockchain ซึ่งจะช่วยแก้ไขปัญหาการถูกปฏิเสธว่าบล็อกไหนที่ควรจะอยู่ด้านบนสุดของห่วงโซ่ของบล็อก อีกทั้งยังช่วยปกป้องบล็อกที่อยู่บน Blockchain อยู่แล้วด้วย เพราะว่าการสร้างห่วงโซ่ของบล็อกใหม่ขึ้นมาแทนที่บล็อกที่มีอยู่แล้วบนห่วงโซ่ดังกล่าวจะต้องใช้พลังงานจำนวนมหาศาล
ผลก็คือ Blockchain จะอัพเดทไฟล์ข้อมูลของรายการธุรกรรมอยู่เสมอ ระบบการขุดบล็อกและการนำเอาห่วงโซ่ของบล็อกที่ยาวที่สุดมาใช้งานนี้จะทำให้คอมพิวเตอร์มากมายในเครือข่ายยินยอมใช้งานชุดของบล็อกและรายการธุรกรรมชุดเดียวกันเพราะมีการพิจารณาแล้วว่าเป็นห่วงโซ่ของบล็อกที่ถูกใช้งานอยู่ ในขณะเดียวกันก็จะทำให้ผู้ที่ต้องการเข้ามาเปลี่ยนแปลงประวัติการใช้งานบล็อกและรายการธุรกรรมทำงานยากขึ้นอีกด้วย
Source: https://learnmeabitcoin.com/technical/blockchain