ข้ามไปยังเนื้อหาหลัก

วิธีการทำงานของบล็อกเชน: คำอธิบายทีละขั้นตอน

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

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

ขั้นตอนที่ 1: การสร้างธุรกรรม​

ปฏิสัมพันธ์ทุกครั้งบนบล็อกเชนเริ่มต้นด้วยการสร้างธุรกรรม เมื่อคุณตัดสินใจที่จะส่งสกุลเงินดิจิทัล ซอฟต์แวร์กระเป๋าเงินของคุณจะสร้างข้อความธุรกรรมที่มีข้อมูลหลายชิ้น

อินพุตและเอาต์พุตของธุรกรรม​

Bitcoin ใช้รุ่น Unspent Transaction Output (UTXO) ลองคิดถึง UTXO ว่าเป็นแบงค์ดิจิทัลในกระเป๋าเงินของคุณ หากคุณได้รับ 0.5 BTC และ 0.3 BTC ในสองธุรกรรมแยกต่างหาก คุณจะมี UTXO สองอันรวมเป็น 0.8 BTC เมื่อคุณต้องการส่ง 0.6 BTC กระเป๋าเงินของคุณจะ:

  1. เลือก UTXO ที่รวมกันครอบคลุมจำนวนเงิน (0.5 + 0.3 = 0.8 BTC)
  2. สร้างธุรกรรมโดยใช้ที่อยู่ของผู้รับเป็นเอาต์พุตหนึ่ง (0.6 BTC)
  3. สร้างเอาต์พุตการเปลี่ยนแปลงกลับไปยังที่อยู่ของคุณเอง (0.2 BTC ลบด้วยค่าธรรมเนียมการทำธุรกรรม)
  4. UTXO ที่เลือกจะกลายเป็น "ถูกใช้ไป" และเอาต์พุตใหม่จะกลายเป็น UTXO ใหม่

Ethereum ใช้ แบบจำลองตามบัญชี ที่แตกต่างกัน คล้ายกับบัญชีธนาคารดั้งเดิม แต่ละที่อยู่มียอดคงเหลือ และธุรกรรมจะหักจากผู้ส่งและเครดิตให้กับผู้รับ

การลงชื่ออย่างดิจิทัล​

ก่อนที่ธุรกรรมจะแพร่ออกไป จะต้องลงชื่อด้วย ส่วนกุญแจส่วนตัว ของผู้ส่ง นี่คือจุดที่ความปลอดภัยของ seed phrase ของคุณมีความสำคัญ — ส่วนกุญแจส่วนตัวของคุณได้มาจาก seed phrase ของคุณ และผู้ใดที่มีส่วนกุญแจนั้นสามารถลงนามในธุรกรรมในนามคุณได้

กระบวนการลงนามทำงานดังนี้:

  1. ข้อมูลธุรกรรมจะถูกแฮชโดยใช้ SHA-256 (Bitcoin) หรือ Keccak-256 (Ethereum)
  2. แฮชจะถูกลงชื่อโดยใช้ส่วนกุญแจส่วนตัวของผู้ส่งผ่านอัลกอริทึม ECDSA
  3. ลายเซ็นดิจิทัลที่ได้จะถูกเพิ่มเข้าไปในธุรกรรม
  4. ใครก็ตามสามารถตรวจสอบลายเซ็นโดยใช้ส่วนกุญแจสาธารณะของผู้ส่ง โดยยืนยันว่าธุรกรรมได้รับการอนุมัติจากผู้ถือกุญแจโดยไม่ต้องเห็นส่วนกุญแจส่วนตัว

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

ขั้นตอนที่ 2: การแพร่ออกของธุรกรรม​

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

การแพร่ระหว่างผู้ใช้ (Peer-to-Peer)​

เครือข่ายบล็อกเชนทำงานบน โทโพโลยี peer-to-peer (P2P) ไม่มีเซิร์ฟเวอร์กลาง เมื่อโหนดรับธุรกรรมของคุณ มันจะดำเนินการตรวจสอบความถูกต้องขั้นเบื้องต้นและหากถูกต้อง จะส่งต่อไปยังผู้ใช้ที่เชื่อมต่อ ผู้ใช้เหล่านั้นจะตรวจสอบและส่งต่อเพิ่มเติม ภายในไม่กี่วินาที ธุรกรรมของคุณจะแพร่ไปทั่วเครือข่าย — โดยทั่วไปแล้วจะถึงโหนดส่วนใหญ่ภายใน 2 ถึง 15 วินาที

Mempool​

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

ธุรกรรมใน mempool จะจัดลำดับไปตามอัตราค่าธรรมเนียม **ส่วนใหญ่ (satoshis ต่อไบต์ใน Bitcoin หรือราคาแก๊สใน Ethereum) ผู้ขุดและผู้ตรวจสอบจะเลือกธุรกรรมค่าธรรมเนียมสูงสุดก่อน เนื่องจากสิ่งนี้จะเพิ่มรายได้ของพวกเขา ในช่วงอุปสงค์เครือข่ายสูง mempool อาจขยายได้อย่างมีนัยสำคัญ และธุรกรรมค่าธรรมเนียมต่ำอาจรอการยืนยันเป็นชั่วโมงหรือแม้แต่วัน

ค่าธรรมเนียมการทำธุรกรรม​

ค่าธรรมเนียมการทำธุรกรรมมีสองวัตถุประสงค์:

  1. สนับสนุนผู้ขุดหรือผู้ตรวจสอบ ให้รวมธุรกรรมของคุณในบล็อก
  2. ป้องกันสแปม โดยทำให้คุณต้องเสียค่าใช้จ่ายในการท่วมเครือข่ายด้วยธุรกรรมที่ไร้ความหมาย

ใน Bitcoin ค่าธรรมเนียมจะคำนวณตามขนาดของธุรกรรมเป็นไบต์ (ไม่ใช่จำนวนเงินที่ถูกส่ง) ธุรกรรมที่ส่ง 10 BTC อาจมีค่าธรรมเนียมเท่ากับธุรกรรมที่ส่ง 0.001 BTC หากมีขนาดไบต์เท่ากัน

ใน Ethereum ค่าธรรมเนียมจะปฏิบัติตามแบบจำลอง EIP-1559 ด้วย ค่าธรรมเนียมพื้นฐาน (ถูกเผา) และ คำแนะนำลำดับความสำคัญ (จ่ายให้ผู้ตรวจสอบ) ค่าธรรมเนียมพื้นฐานปรับเปลี่ยนแบบไดนามิกตามความแออัดของเครือข่าย

ขั้นตอนที่ 3: การตรวจสอบความถูกต้องของธุรกรรม​

ก่อนที่ธุรกรรมสามารถรวมเข้าในบล็อกได้ โหนดต่างๆ จะต้องตรวจสอบความถูกต้องอย่างอิสระตามกฎของโปรโตคอล การตรวจสอบความถูกต้องนี้มีความสำคัญอย่างยิ่งต่อการรักษาความสมบูรณ์ของบล็อกเชน

การตรวจสอบ​

โหนดแต่ละตัวจะทำการตรวจสอบหลายครั้งในทุกธุรกรรมที่ได้รับ:

  • ความถูกต้องทางวากยสัมพันธ์: ธุรกรรมจัดรูปแบบอย่างถูกต้องตามข้อกำหนดโปรโตคอลหรือไม่
  • การตรวจสอบลายเซ็น: ลายเซ็นดิจิทัลตรงกับส่วนกุญแจสาธารณะของผู้ส่งหรือไม่ สิ่งนี้ยืนยันว่าธุรกรรมได้รับการอนุมัติจากผู้ถือกุญแจส่วนตัว
  • การตรวจสอบการใช้จ่ายสองครั้ง: UTXO ที่อ้างถึง (Bitcoin) ยังคงไม่ได้ใช้หรือไม่ หรือบัญชี (Ethereum) มียอดคงเหลือเพียงพอหรือไม่
  • การตรวจสอบสคริปต์: สคริปต์การล็อคและปลดล็อคถูกดำเนินการอย่างถูกต้องหรือไม่ (Bitcoin ใช้ภาษาสคริปต์ที่เรียกว่า Script เพื่อกำหนดเงื่อนไขการใช้จ่าย)
  • ความเพียงพอของค่าธรรมเนียม: ธุรกรรมรวมถึงค่าธรรมเนียมเพียงพอหรือไม่ที่จะตรงตามเกณฑ์ผ่านเครือข่ายขั้นต่ำของโหนด
  • ขีดจำกัดขนาด: ธุรกรรมอยู่ในข้อจำกัดขนาดของโปรโตคอลหรือไม่

หากธุรกรรมล้มเหลวในการตรวจสอบใดๆ มันจะถูกปฏิเสธและไม่ส่งต่อไปยังโหนดอื่น การตรวจสอบความถูกต้องแบบกระจายตัวนี้คือสิ่งที่ทำให้บล็อกเชนทนต่อธุรกรรม欺ที่ — โหนดทุกตัวตรวจสอบธุรกรรมทุกตัวอย่างอิสระตามชุดกฎเดียวกัน

ขั้นตอนที่ 4: การสร้างบล็อก​

ผู้ขุด (ในระบบ proof-of-work) หรือผู้ตรวจสอบ (ในระบบ proof-of-stake) จะรวบรวมธุรกรรมที่ได้รับการตรวจสอบแล้วจาก mempool และรวบรวมเป็นบล็อกคำสั่งซื้อตัวเลือก

โครงสร้างบล็อก​

บล็อกทั่วไปประกอบด้วย:

ส่วนหัวบล็อก:

  • เวอร์ชัน: เวอร์ชันโปรโตคอล
  • แฮชบล็อกก่อนหน้า: แฮช SHA-256 ของส่วนหัวบล็อกก่อนหน้า นี่คือสิ่งที่สร้าง "โซ่" ในบล็อกเชน
  • รูตของต้นไม้ Merkle: แฮชเดียวที่สรุปธุรกรรมทั้งหมดในบล็อก
  • เวลา: เวลาโดยประมาณที่สร้างบล็อก
  • เป้าหมายความยาก (PoW): ขีดจำกัดที่แฮชบล็อกต้องต่ำกว่าเพื่อให้บล็อกถูกต้อง
  • Nonce (PoW): ตัวนับที่ผู้ขุดเพิ่มขึ้นขณะค้นหาแฮชที่ถูกต้อง

เนื้อหาบล็อก:

  • นับธุรกรรม: จำนวนธุรกรรมที่รวมเข้าไป
  • รายการธุรกรรม: ข้อมูลธุรกรรมจริง
  • ธุรกรรม Coinbase: ธุรกรรมแรกพิเศษที่สร้างเหรียญใหม่เป็นรางวัลบล็อก และจัดเก็บค่าธรรมเนียมธุรกรรมทั้งหมด นี่คือธุรกรรมเดียวในบล็อกที่ไม่มีอินพุต — มันสร้างสกุลเงินใหม่จากไม่มี ตามตารางการออกโปรแกรมของโปรโตคอล

การเลือกธุรกรรม​

ผู้ขุดโดยทั่วไปเลือกธุรกรรมเพื่อเพิ่มรายได้สูงสุด โดยให้ความสำคัญกับธุรกรรมที่มีอัตราค่าธรรมเนียมสูงสุด อย่างไรก็ตาม พวกเขาต้องเคารพ ขีดจำกัดขนาดบล็อก (น้ำหนักบล็อก 4 MB ใน Bitcoin) หรือ ขีดจำกัดแก๊สบล็อก (ประมาณ 30 ล้านแก๊สใน Ethereum) สิ่งนี้สร้างตลาดธรรมชาติสำหรับพื้นที่บล็อก — ในช่วงอุปสงค์สูง ผู้ใช้มีการแข่งขันโดยเสนอค่าธรรมเนียมที่สูงขึ้น

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

การสร้างต้นไม้ Merkle​

ต้นไม้ Merkle สร้างขึ้นโดยการแฮชคู่ของแฮชธุรกรรมซ้ำๆ:

  1. แต่ละธุรกรรมจะแฮชอย่างแยกตัว
  2. แฮชที่อยู่ติดกันจะถูกจับคู่และแฮชเข้าด้วยกัน
  3. กระบวนการนี้จะทำซ้ำตามต้นไม้จนกว่าจะเหลือแฮชเดียว: รูต Merkle

รูต Merkle จัดให้มีสรุปกระชับของธุรกรรมทั้งหมด หากมีการเปลี่ยนแปลงธุรกรรมใดๆ รูต Merkle จะเปลี่ยนไป ซึ่งเปิดเผยการปลอมแปลงทันที โครงสร้างนี้ยังช่วยให้ Simplified Payment Verification (SPV) ซึ่งไคลเอนต์ที่มีน้ำหนักเบาสามารถตรวจสอบการรวมธุรกรรมโดยไม่ต้องดาวน์โหลดบล็อกเต็มรูปแบบ

ขั้นตอนที่ 5: ฉันทามติและการผลิตบล็อก​

บล็อคลำดับซื้อตัวเลือกต้องผ่าน กลไกฉันทามติ ของเครือข่ายเพื่อได้รับการยอมรับจากเครือข่าย นี่คือจุดที่บล็อกเชนที่แตกต่างกันแตกต่างกันอย่างมีนัยสำคัญ

Proof of Work (Bitcoin)​

ใน proof-of-work ผู้ขุดจะแข่งขันเพื่อค้นหา nonce ที่เมื่อรวมกับข้อมูลส่วนหัวบล็อกและแฮช จะสร้างแฮชต่ำกว่า เป้าหมายความยาก ของเครือข่าย นี่คือการค้นหาแบบ brute-force โดยพื้นฐาน:

  1. ผู้ขุดสร้างส่วนหัวบล็อกด้วยฟิลด์ที่จำเป็นทั้งหมด
  2. ผู้ขุดแฮชส่วนหัวโดยใช้ SHA-256 (ใช้สองครั้งใน Bitcoin)
  3. หากแฮชที่เป็นผลลัพธ์อยู่ต่ำกว่าเป้าหมายความยาก บล็อกจะถูกต้อง
  4. หากไม่ใช่ ผู้ขุดจะเพิ่มขึ้น nonce และลองอีกครั้ง
  5. กระบวนการนี้ซ้ำหลายพันล้านครั้งต่อวินาทีในผู้ขุดทั้งหมด

เป้าหมายความยากปรับเปลี่ยนทุกๆ 2,016 บล็อก (ประมาณสองสัปดาห์) เพื่อรักษาเวลาบล็อกเฉลี่ย 10 นาที โดยไม่คำนึงถึงพลังการขุดรวมที่อยู่บนเครือข่าย

เมื่อผู้ขุดค้นหาแฮชที่ถูกต้อง พวกเขาได้แก้ "ปริศนา" และสามารถแพร่ออกบล็อกของพวกเขาไปยังเครือข่าย ผู้ขุดที่ค้นหาวิธีแก้ปัญหาที่ถูกต้องเป็นคนแรกจะชนะ รางวัลบล็อก (ปัจจุบัน 3.125 BTC หลังจากการลดลงครึ่งหนึ่งในเมษายน 2024) บวกกับค่าธรรมเนียมธุรกรรมทั้งหมดในบล็อก

Proof of Stake (Ethereum)​

Ethereum ใช้ proof of stake โดยตัวตรวจสอบจะถูกเลือกแบบสุ่มเพื่อเสนอบล็อกตามจำนวน ETH ที่พวกเขาทำการ staking (ล็อคเป็นหลักประกัน) กระบวนการนั้นแตกต่างกันโดยพื้นฐาน:

  1. ตัวตรวจสอบจะถูกเลือกแบบสุ่มเพื่อเสนอบล็อกสำหรับแต่ละช่วง 12 วินาที
  2. ผู้เสนอสร้างบล็อกและแพร่ออกไป
  3. คณะตัวตรวจสอบ ยืนยัน (โหวต) ว่าบล็อกถูกต้อง
  4. เมื่อรวบรวมการยืนยันเพียงพอ บล็อกจะถูกพิจารณาว่ายุติธรรมและในที่สุดก็ขุดขลัง

Proof of stake ขจัดการคำนวณแฮชที่ใช้พลังงานมากมายของ proof of work ขณะเดียวกันยังคงรักษาความปลอดภัยผ่านแรงจูงใจทางเศรษฐกิจ — ตัวตรวจสอบมีความเสี่ยงในการสูญเสีย ETH ที่ได้รับการ stake (slashing) หากพวกเขากระทำการอย่างเจsvng

สำหรับการเปรียบเทียบที่ลึกซึ้งกว่า โปรดดู คู่มือกลไกฉันทามติของเรา

ขั้นตอนที่ 6: การแพร่ของบล็​