พรีเซล $EX5 เปิดแล้ว — ระดับ Seed · อุปทานคงที่ 500M · เผา 50% · KYC ผ่าน EX5 Exchangeเข้าร่วม →
อัปเดต

ความรู้เบื้องต้นเกี่ยวกับ Bitcoin Script: รากฐานของตรรกะธุรกรรมอัจฉริยะ

ระดับสูง

โดยสรุป: Bitcoin Script คืออะไร ทำงานอย่างไร และมีหน้าที่อะไร คู่มือเชิงเทคนิคฉบับละเอียดนี้จะเจาะลึกโครงสร้างและการใช้งานจริงของภาษา Script

ความสามารถในการเขียนโปรแกรมบนบิตคอยน์: ทำไมจึงมี Script

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

Script กำหนดเงื่อนไขการล็อกและปลดล็อกของธุรกรรมบิตคอยน์ แม้จะไม่ยืดหยุ่นเท่าสัญญาอัจฉริยะของ Ethereum แต่ Bitcoin Script ก็ช่วยให้สร้างตรรกะแบบกำหนดเองที่ทรงพลังได้ผ่านกลไกที่เรียบง่ายกว่า

Script คืออะไรและทำงานอย่างไร?

Script เป็นภาษาโปรแกรมแบบสแตก (stack-based) คำสั่งต่าง ๆ (OP code) จะทำหน้าที่ใส่ข้อมูลลงในสแตก หรือจัดการกับรายการที่มีอยู่แล้วในสแตก

Script ปรากฏอยู่ในสององค์ประกอบหลักของธุรกรรมบิตคอยน์:

  • ScriptPubKey: สคริปต์ล็อกที่กำหนดโดยที่อยู่ของผู้รับ
  • ScriptSig: สคริปต์ปลดล็อกที่ผู้ส่งเป็นผู้จัดเตรียม

สคริปต์ทั้งสองนี้จะถูกนำมาต่อกันและประมวลผลร่วมกัน หากผลลัพธ์สุดท้ายเหลือค่า “true” อยู่ที่ด้านบนสุดของสแตก ธุรกรรมนั้นจะถือว่าถูกต้อง

คุณลักษณะสำคัญของ Bitcoin Script

  • ไม่เป็น Turing-complete: ไม่มีลูปหรือการทำงานแบบไม่สิ้นสุด ซึ่งเป็นการออกแบบโดยเจตนาเพื่อความปลอดภัย
  • กำหนดผลได้แน่นอน (Deterministic): อินพุตเดียวกันจะให้เอาต์พุตเดียวกันเสมอ
  • เรียบง่าย (Minimalistic): ออกแบบมาเพื่อฟังก์ชันหลัก โดยหลีกเลี่ยงความซับซ้อนที่ไม่จำเป็น
  • ทำงานแบบสแตก (Stack-based): ทำงานบนโครงสร้างข้อมูลแบบ LIFO (last-in, first-out หรือเข้าหลังออกก่อน)

ประเภทของ Script ที่พบบ่อย

1. P2PKH (Pay-to-Public-Key-Hash)

รูปแบบธุรกรรมมาตรฐานของบิตคอยน์

  • ScriptPubKey: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG
  • ScriptSig: <Signature> <PublicKey>

มีเพียงผู้ถือกุญแจส่วนตัวที่ตรงกันเท่านั้นที่สามารถปลดล็อกเงินได้

2. P2SH (Pay-to-Script-Hash)

ช่วยให้สามารถแทนสคริปต์ที่ซับซ้อนกว่าด้วยที่อยู่แบบแฮชเพียงที่อยู่เดียว

  • ScriptPubKey: OP_HASH160 <ScriptHash> OP_EQUAL
  • ScriptSig: <Signature(s)> ... <RedeemScript>

นิยมใช้สำหรับ multisig หรือการชำระเงินแบบล็อกเวลา

3. Multisig

ต้องใช้ลายเซ็นที่ถูกต้องหลายรายการเพื่ออนุมัติธุรกรรม

ตัวอย่าง: สคริปต์ multisig แบบ 2-of-3:
OP_2 <PubKey1> <PubKey2> <PubKey3> OP_3 OP_CHECKMULTISIG

โดยทั่วไปจะถูกฝังอยู่ภายในโครงสร้าง P2SH

ภาพรวมของ OP Code ที่สำคัญ

Script ใช้ OP code (operation code) ในการกำหนดตรรกะ โดยตัวที่พบบ่อยได้แก่:

  • OP_DUP: ทำสำเนารายการบนสุดของสแตก
  • OP_HASH160: ใช้ SHA-256 ตามด้วย RIPEMD-160
  • OP_EQUALVERIFY: เปรียบเทียบค่าสองค่า และแจ้งข้อผิดพลาดหากค่าไม่ตรงกัน
  • OP_CHECKSIG: ตรวจสอบลายเซ็นดิจิทัล
  • OP_CHECKLOCKTIMEVERIFY: บังคับใช้ข้อจำกัดการใช้จ่ายตามเวลา

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

ตัวอย่างเชิงเทคนิคของ Bitcoin Script

ตัวอย่าง P2PKH พื้นฐาน

  • ScriptSig: <Signature> <PublicKey>
  • ScriptPubKey: OP_DUP OP_HASH160 <PubKeyHash> OP_EQUALVERIFY OP_CHECKSIG

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

สคริปต์แบบล็อกเวลา (Time-Locked Script)

ScriptPubKey: <LockTime> OP_CHECKLOCKTIMEVERIFY OP_DROP <PubKey> OP_CHECKSIG

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

สร้างอะไรได้บ้างด้วย Bitcoin Script?

  • กระเป๋าเงินแบบหลายลายเซ็น (multisignature)
  • การชำระเงินแบบล็อกเวลา
  • การเปิดช่องทาง (channel) ใน Lightning Network
  • ระบบพักเงินกลาง (escrow)
  • เงื่อนไขการใช้จ่ายแบบจำกัด (เช่น เอาต์พุตที่ใช้ได้เพียงครั้งเดียว)

Script สร้างสมดุลระหว่างความเรียบง่ายและขีดความสามารถ ซึ่งสอดคล้องกับหลักการของบิตคอยน์

ทำไม Bitcoin Script จึงสำคัญ

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

คำถามที่พบบ่อย: ข้อสงสัยทั่วไปเกี่ยวกับ Bitcoin Script

ถาม: Bitcoin Script เป็น Turing-complete หรือไม่?
ตอบ: ไม่ใช่ Bitcoin Script จงใจหลีกเลี่ยงลูปและความสุ่มด้วยเหตุผลด้านความปลอดภัย

ถาม: Bitcoin Script รองรับ NFT หรือ DeFi ได้หรือไม่?
ตอบ: ได้เพียงในรูปแบบที่จำกัด สามารถสร้างฟังก์ชันพื้นฐาน เช่น การควบคุมโทเคนหรือ escrow ได้ แต่ไม่รองรับตรรกะ DeFi แบบเต็มรูปแบบ

ถาม: ยังมีการเพิ่ม OP code ใหม่อยู่หรือไม่?
ตอบ: ใช่ จากการอัปเกรดอย่าง SegWit และ Taproot มีการเพิ่ม OP code ใหม่เข้ามาแล้ว และยังมีอีกหลายรายการที่อยู่ระหว่างการหารือ

บทสรุป: Script คือเลเยอร์อัจฉริยะของบิตคอยน์

Bitcoin Script กำหนดตรรกะของธุรกรรมที่ขับเคลื่อนเครือข่าย แม้จะต้องอาศัยความเข้าใจทางเทคนิคขั้นสูง แต่ก็เป็นเครื่องมือสำคัญสำหรับนักพัฒนา ผู้เชี่ยวชาญด้านความปลอดภัย และผู้ออกแบบโปรโตคอล

เมื่อผู้ใช้จำนวนมากขึ้นได้ศึกษา Bitcoin Script ก็จะพบว่าบิตคอยน์มีความยืดหยุ่น ปลอดภัย และตั้งโปรแกรมได้มากเพียงใด

คำแนะนำ:

  • ใช้ testnet เพื่อทดลองกับ Bitcoin Script อย่างปลอดภัย
  • ทำความเข้าใจความแตกต่างระหว่าง ScriptSig และ ScriptPubKey อย่างถี่ถ้วน
  • เรียนรู้ OP code ด้วยการฝึกกับสคริปต์จริง
  • ลองสร้างสถานการณ์ multisig และ timelock เพื่อเรียนรู้จากการลงมือทำ
  • ติดตามเอกสารของ Bitcoin Core และคลัง BIP บน GitHub อย่างสม่ำเสมอ