Bitcoin Script คือภาษาโปรแกรมที่ใช้ควบคุมทุกธุรกรรมบนเครือข่าย Bitcoin เป็นภาษาที่เรียบง่ายและใช้ระบบสแต็กในการทำงาน โดยกำหนดเงื่อนไขอย่างชัดเจนว่าภายใต้สถานการณ์ใดบิตคอยน์สามารถถูกใช้จ่ายได้ และทุกโหนดเต็มรูปแบบบนเครือข่ายจะรันภาษาดังกล่าวทุกครั้งที่มีการตรวจสอบธุรกรรม หากไม่มี Bitcoin Script เครือข่าย Bitcoin ก็จะเป็นเพียงสมุดบัญชีตัวเลขที่ไม่มีกลไกในการยืนยันว่าใครเป็นเจ้าของอะไร
ผู้ใช้ส่วนใหญ่ไม่เคยเห็นภาษาสคริปต์ของบิตคอยน์โดยตรง. กระเป๋าเงินของพวกเขาจัดการมันอย่างลับๆ. แต่ทุกครั้งที่คุณส่งหรือรับ BTC โปรแกรมขนาดเล็กสองตัวจะทำงานบนคอมพิวเตอร์หลายพันเครื่องพร้อมกัน เพื่อตรวจสอบว่าเงื่อนไขการใช้จ่ายได้ถูกปฏิบัติตามหรือไม่ การเข้าใจว่ากระบวนการนี้ทำงานอย่างไรจะอธิบายได้มากมายเกี่ยวกับเหตุผลที่ Bitcoin มีโครงสร้างเช่นนี้ และสิ่งที่มันสามารถทำได้และไม่สามารถทำได้เมื่อเทียบกับแพลตฟอร์มอย่าง Ethereum
บทความนี้ครอบคลุมวิธีการทำงานของ Bitcoin Script โดยจะอธิบายประเภทการทำธุรกรรมหลักที่ Bitcoin Script รองรับ อัพเกรด Taproot ที่ทำให้ชั้นการเขียนสคริปต์ทันสมัยขึ้นในปี 2021 และครอบคลุมถึงสถานะของการถกเถียงเกี่ยวกับ opcode covenant ณ เดือนมิถุนายน 2026
จัดการบิตคอยน์ของคุณอย่างปลอดภัยด้วยการดูแลรักษาด้วยตนเอง แอปกระเป๋าเงิน Bitcoin.com.
ประเด็นสำคัญ
- Bitcoin Script เป็นภาษาการเขียนโปรแกรมแบบสแต็กที่สร้างขึ้นในโปรโตคอลของ Bitcoin ซึ่งกำหนดเงื่อนไขที่อนุญาตให้ใช้เอาต์พุตของบิตคอยน์ได้
- ทุกธุรกรรมของบิตคอยน์ประกอบด้วยสคริปต์สองตัว: สคริปต์ล็อก (ScriptPubKey) ที่ตั้งค่าโดยผู้รับ และสคริปต์ปลดล็อก (ScriptSig) ที่ให้โดยผู้ใช้จ่าย ทั้งสองต้องดำเนินการสำเร็จเพื่อให้ธุรกรรมมีผลสมบูรณ์
- บิตคอยน์ สคริปต์ ถูกออกแบบมาให้ไม่สมบูรณ์ตามทัวริงอย่างเจตนา มันไม่มีลูป, ไม่มีสถานะถาวรระหว่างการดำเนินการ, และมีขีดจำกัดที่เข้มงวดต่อขนาดของสคริปต์ ซึ่งทำให้ทุกสคริปต์มีการรับประกันว่าจะสิ้นสุดลงอย่างแน่นอน ซึ่งเป็นคุณสมบัติด้านความปลอดภัย ไม่ใช่ข้อจำกัด
- ภาษาสคริปต์ได้พัฒนาผ่านรูปแบบหลักห้าแบบ: P2PK, P2PKH, P2SH, SegWit (P2WPKH/P2WSH) และ Taproot (P2TR) โดยแต่ละรูปแบบขยายขีดความสามารถในขณะที่ยังคงความเข้ากันได้ย้อนหลัง
- Taproot (พฤศจิกายน 2021) ได้แนะนำลายเซ็น Schnorr, เส้นทางการใช้จ่ายที่อิงตาม MAST เพื่อความเป็นส่วนตัว, และ Tapscript ซึ่งเป็นภาษาสคริปต์ที่อัปเดตพร้อมกลไกในตัวสำหรับการอัปเกรดในอนาคตที่สะอาดขึ้น
- กรณีการใช้งานในโลกจริงที่สร้างขึ้นบน Bitcoin Script ได้แก่ กระเป๋าเงินหลายลายเซ็น, การทำธุรกรรมที่มีการล็อกเวลา, สัญญาล็อกเวลาด้วยแฮช (Hash Time-Locked Contracts) ซึ่งเป็นพื้นฐานของ Lightning, การฝากหลักประกัน, และสัญญาล็อกข้อมูลแบบเป็นความลับ
- ต่างจากสัญญาอัจฉริยะของ Ethereum, Bitcoin Script ไม่มีสถานะ: แต่ละสคริปต์ทำงานอย่างแยกขาดโดยสิ้นเชิงโดยไม่มีความรู้เกี่ยวกับธุรกรรมอื่นใด นี่เป็นการเลือกทางสถาปัตยกรรมที่ตั้งใจไว้
- พื้นที่ที่มีการพัฒนา Bitcoin Script มากที่สุดในปี 2026 คือ opcodes ของ covenant โดยเฉพาะ OP_CTV (BIP-119) และ OP_CAT (BIP-347) ซึ่งจะช่วยให้สคริปต์สามารถจำกัดรูปแบบของธุรกรรมที่ใช้จ่ายได้ ทั้งสองยังไม่ได้รับการเปิดใช้งานบน mainnet
บิทคอยน์ สคริปต์ คืออะไร?
Bitcoin Script เป็นภาษาสคริปต์แบบสแต็กที่ไม่มีสถานะซึ่งถูกสร้างขึ้นในโปรโตคอลของ Bitcoin ทุกผลลัพธ์ของธุรกรรมบนเครือข่าย Bitcoin จะมีสคริปต์ล็อก (เรียกว่า ScriptPubKey) ที่ระบุเงื่อนไขสำหรับการใช้จ่ายเงิน ผู้ที่ต้องการใช้จ่ายเงินเหล่านั้นจะต้องให้สคริปต์ปลดล็อก (เรียกว่า ScriptSig หรือในธุรกรรม SegWit และ Taproot คือข้อมูลพยาน) ที่ตรงตามเงื่อนไขเหล่านั้น
ภาษาโครงสร้างมาจากภาษาฟอร์ธ ซึ่งเป็นภาษาโปรแกรมแบบสแตกที่มีลักษณะมินิมอล พัฒนาขึ้นในทศวรรษ 1960 เช่นเดียวกับภาษา Forth, Bitcoin Script อ่านจากซ้ายไปขวา, ดำเนินการบนโครงสร้างข้อมูลที่เรียกว่าสแต็ก, และใช้การเขียนแบบ Reverse-Polish Notation (RPN) ซึ่งตัวดำเนินการจะตามหลังตัวถูกดำเนินการแทนที่จะอยู่ก่อนหน้า มันดำเนินการคำสั่งทีละคำสั่ง, ไม่มีลูป, และไม่มีความจำถาวรระหว่างการดำเนินการ
ประเด็นสุดท้ายนี้คือสิ่งที่คนส่วนใหญ่พบเจอเป็นอันดับแรกเมื่อเรียนรู้เกี่ยวกับ Bitcoin Script ในระดับโปรโตคอล: ภาษาดังกล่าวไม่ได้ถูกออกแบบให้สมบูรณ์ตามทัวริงโดยเจตนา ภาษาที่สมบูรณ์ตามทัวริงสามารถทำการคำนวณใด ๆ ก็ตามได้หากมีเวลาและทรัพยากรเพียงพอ Bitcoin Script ไม่สามารถทำได้ตามการออกแบบ และเหตุผลเบื้องหลังการเลือกนี้มีความสำคัญอย่างยิ่งต่อวิธีการทำงานของเครือข่าย
วิธีการทำงานของ Bitcoin Script: โมเดลสแต็ก
เพื่อที่จะเข้าใจว่า Bitcoin Script ทำงานอย่างไร คุณจำเป็นต้องเข้าใจสแต็ก สแต็กคือโครงสร้างข้อมูลที่ทำงานบนหลักการเข้ามาทีหลังออกก่อน (Last-In, First-Out หรือ LIFO) ลองนึกภาพจานซ้อนกันเป็นกอง: คุณสามารถเพิ่มหรือเอาออกได้เฉพาะจานที่อยู่ด้านบนสุดเท่านั้น ใน Bitcoin Script ข้อมูลจะถูกผลักเข้าไปในกองซ้อนและ opcodes (รหัสการดำเนินการ) จะจัดการกับสิ่งที่อยู่บนสุด
เมื่อโหนด Bitcoin ตรวจสอบความถูกต้องของธุรกรรม มันจะรันสคริปต์สองตัวตามลำดับ:
- สคริปต์ปลดล็อก (ScriptSig หรือพยาน) โดยบุคคลที่ใช้เหรียญนั้น ซึ่งจะทำให้ข้อมูลถูกเพิ่มเข้าไปในสแต็ก โดยทั่วไปจะเป็นลายเซ็นดิจิทัลและกุญแจสาธารณะ
- สคริปต์ล็อก (ScriptPubKey) แนบกับเอาต์พุตที่กำลังถูกใช้ ซึ่งประกอบด้วยโอเปอโค้ดที่ดำเนินการกับข้อมูลในสแต็กและตรวจสอบว่าเงื่อนไขการใช้จ่ายเป็นไปตามที่กำหนดหรือไม่
หากสคริปต์ทำงานโดยไม่มีข้อผิดพลาดและทิ้งค่าที่ไม่ใช่ศูนย์ (TRUE) ไว้บนสแต็กในตอนท้าย ธุรกรรมนั้นถือว่าถูกต้อง หากล้มเหลวหรือทิ้งค่า FALSE ไว้ ธุรกรรมจะถูกปฏิเสธโดยโหนดและจะไม่ถูกบันทึกในบล็อก
การดำเนินการนี้ไม่มีสถานะใด ๆ ทั้งสิ้น สคริปต์ไม่มีความรู้เกี่ยวกับธุรกรรมใด ๆ ที่เกิดขึ้นก่อนหน้านี้ ไม่ทราบยอดคงเหลือปัจจุบัน และไม่มีความจำใด ๆ ที่คงอยู่หลังจากสคริปต์สิ้นสุดการทำงาน ทุกสคริปต์จะทำงานจากศูนย์ แยกจากกันโดยสมบูรณ์ ในทุกครั้ง
ขั้นตอนต่อขั้นตอน: การทำธุรกรรม P2PKH มาตรฐาน
Pay-to-Public-Key-Hash (P2PKH) เป็นประเภทธุรกรรม Bitcoin ดั้งเดิมที่ใช้มาตั้งแต่ปี 2009 ที่อยู่ P2PKH จะขึ้นต้นด้วย "1" นี่คือลักษณะของ ScriptPubKey และ ScriptSig ในการใช้งานจริง:
สคริปต์ปลดล็อก (ScriptSig):
<ลายเซ็น> <กุญแจสาธารณะ>
ล็อกสคริปต์ (ScriptPubKey):
OP_DUP OP_HASH160 <แฮชคีย์สาธารณะ> OP_EQUALVERIFY OP_CHECKSIG
เมื่อโหนดทำการเชื่อมต่อและดำเนินการทั้งสองพร้อมกัน การดำเนินการของสแตกจะดำเนินไปทีละขั้นตอน:
- ลายเซ็นและกุญแจสาธารณะจาก ScriptSig ถูกผลักเข้าสู่สแต็ก
OP_DUPทำซ้ำกุญแจสาธารณะที่ด้านบนของสแต็กOP_HASH160แฮชข้อมูลที่ซ้ำกัน (SHA-256 ตามด้วย RIPEMD-160) ให้ผลลัพธ์เป็นแฮชขนาด 20 ไบต์- แฮชคีย์สาธารณะจากสคริปต์ล็อกถูกผลักลงบนสแต็ก
OP_EQUALVERIFYตรวจสอบว่าแฮชทั้งสองตรงกันหรือไม่ หากไม่ตรงกัน การดำเนินการจะหยุดลงและธุรกรรมจะล้มเหลวOP_CHECKSIGยืนยันว่าลายเซ็นนั้นถูกต้องสำหรับกุญแจสาธารณะ
หากทุกขั้นตอนผ่านไปได้ สแต็กจะสิ้นสุดด้วยค่า TRUE และเงินทุนจะถูกปล่อยออกมา กระบวนการทั้งหมดใช้เวลาเพียงมิลลิวินาที และดำเนินการเหมือนกันทุกประการบนทุกโหนดในเครือข่าย
คำอธิบายเกี่ยวกับรหัสคำสั่งของบิตคอยน์
โอเปอโค้ดของบิตคอยน์คือคำสั่งแต่ละตัวที่ประกอบกันเป็นสคริปต์ แต่ละคำสั่งมีขนาดหนึ่งไบต์ ทำให้มีโอเปอโค้ดให้เลือกใช้ได้ 256 แบบ จากทั้งหมดนี้ มีประมาณ 80 แบบที่ใช้งานอยู่บนเครือข่ายหลักในปัจจุบัน ส่วนที่เหลือถูกสงวนไว้ ใช้งานไม่ได้ หรือถูกกำหนดไว้สำหรับกลไกความเข้ากันได้กับเวอร์ชันใหม่ในอนาคตที่เรียกว่า OP_SUCCESS ซึ่งถูกแนะนำครั้งแรกใน Tapscript
รหัสโอเปอโค้ดแบ่งออกเป็นหลายประเภท:
- คำสั่งส่งข้อมูล (Data push opcodes) ดันค่าต่างๆ เช่น คีย์สาธารณะ ลายเซ็น และแฮช ลงในสแต็ก
- คำสั่งคำนวณทางคณิตศาสตร์ ดำเนินการบวก ลบ และเปรียบเทียบ โดยเฉพาะอย่างยิ่ง การคูณและการหารถูกปิดใช้งาน
- รหัสคำสั่งเข้ารหัสลับ รวม OP_SHA256, OP_HASH160, OP_SHA1 สำหรับการแฮช และ OP_CHECKSIG สำหรับการตรวจสอบลายเซ็น
- คำสั่งควบคุมการไหล เปิดใช้งานตรรกะเงื่อนไข: OP_IF, OP_ELSE, OP_ENDIF, OP_NOTIF
- คำสั่งการจัดการสแตก รวมถึง OP_DUP (ทำซ้ำรายการบนสุด), OP_DROP (ลบรายการบนสุด), และ OP_SWAP (สลับตำแหน่งของสองรายการบนสุด)
โอเพนโค้ดหลายตัวถูกปิดใช้งานโดยซาโตชิ นากาโมโตะในปี 2010 หลังจากที่พบช่องโหว่ในการใช้งานดั้งเดิมของพวกมัน ซึ่งรวมถึง OP_CAT (เชื่อมสองรายการในสแต็กเข้าด้วยกัน), OP_MUL (คูณ), และ OP_DIV (หาร) การขาดหายไปของพวกเขามีผลกระทบที่ยั่งยืนต่อสิ่งที่ Bitcoin Script สามารถสื่อได้ และข้อเสนอการอัปเกรด Bitcoin ที่มีการถกเถียงอย่างคึกคักที่สุดในปี 2026 หลายข้อเกี่ยวข้องกับการตัดสินใจว่าจะเปิดใช้งานบางข้อเหล่านั้นอีกครั้งหรือไม่
สำหรับข้อมูลอ้างอิง opcode อย่างสมบูรณ์ รวมถึงค่าเลขฐานสิบหกและคำอธิบาย โปรดดูที่ หน้าสคริปต์ Bitcoin Wiki เป็นแหล่งข้อมูลที่เชื่อถือได้
ทำไมการไม่สมบูรณ์ตามทัวริงจึงเป็นคุณสมบัติ
คำอธิบายมาตรฐานคือ Bitcoin Script ไม่มีลูป ดังนั้นสคริปต์จะสิ้นสุดการทำงานอย่างแน่นอน ทำให้เครือข่ายได้รับการปกป้องจากการทำงานที่ไม่มีที่สิ้นสุด นั่นถูกต้อง แต่ไม่ได้เน้นย้ำประเด็นอย่างเพียงพอ
ข้อโต้แย้งที่ลึกกว่านั้นคือเกี่ยวกับพื้นผิวการโจมตี ภาษาที่สมบูรณ์ตามทัวริงสามารถแสดงการคำนวณแบบใดก็ได้ตามต้องการ ความสามารถในการแสดงออกนี้เองก็เป็นพื้นที่ที่บั๊กอาศัยอยู่ด้วย Solidity ของ Ethereum ได้สร้างช่องโหว่ซอฟต์แวร์ที่มีค่าใช้จ่ายสูงที่สุดในประวัติศาสตร์บางรายการ การแฮ็ก DAO ในปี 2016 ได้ใช้ประโยชน์จากช่องโหว่การเข้าถึงซ้ำซ้อนในสัญญาอัจฉริยะ ส่งผลให้เกิดความสูญเสียประมาณ 60 ล้านดอลลาร์สหรัฐตามราคาในขณะนั้น และนำไปสู่การแยกเครือข่าย Ethereum อย่างเป็นทางการซึ่งก่อให้เกิดความขัดแย้ง ระบบนิเวศ DeFi ที่กว้างขึ้นได้เผชิญกับการสูญเสียเงินหลายร้อยล้านดอลลาร์จากการโจมตีช่องโหว่ในสัญญาอัจฉริยะตลอดหลายปีที่ผ่านมา
Bitcoin Script ทำให้การโจมตีประเภทนั้นเป็นไปไม่ได้ในเชิงโครงสร้าง คุณไม่สามารถเขียนสคริปต์ Bitcoin ที่เรียกใช้สคริปต์อื่น วนลูปจนกว่าเงื่อนไขจะเปลี่ยนแปลง หรือเก็บสถานะระหว่างการทำธุรกรรมได้ ทุกสคริปต์เป็นโปรแกรมที่มีขอบเขตสิ้นสุดและสามารถตรวจสอบได้ ขนาดสคริปต์สูงสุดคือ 10,000 ไบต์ จำนวนโอเปอโค้ดที่ไม่ใช่การผลักสูงสุดต่อสคริปต์คือ 201 ตัวตรวจสอบสามารถคำนวณค่าใช้จ่ายในการดำเนินการที่แย่ที่สุดได้เสมอ ก่อนที่จะรันสคริปต์
สำหรับเครือข่ายที่มีมูลค่าหลายพันล้านดอลลาร์ ความสามารถในการคาดการณ์นั้นมีค่ามากกว่าความยืดหยุ่นที่คุณต้องสละไป Ethereum แก้ปัญหาการคำนวณที่ไม่มีขอบเขตด้วยข้อจำกัดของก๊าซ โดยเรียกเก็บเงินจากผู้ใช้สำหรับแต่ละโอปโค้ดที่ดำเนินการและหยุดสคริปต์ที่ใช้เงินเกินงบประมาณ วิธีนี้ใช้ได้ผล แต่ก็เพิ่มความซับซ้อนและรูปแบบความล้มเหลวของตัวเอง Bitcoin หลีกเลี่ยงปัญหานี้โดยสิ้นเชิงด้วยการออกแบบ
อย่างไรก็ตาม "ไม่สมบูรณ์ตามแบบทัวริง" ไม่ได้หมายความว่า "ไม่สามารถใช้ตรรกะที่ซับซ้อนได้" Bitcoin Script รองรับข้อกำหนดการใช้จ่ายหลายฝ่าย เงื่อนไขตามเวลา การเปิดเผยแฮชพรีอิมเมจ และการผสมผสานทั้งหมดนี้ เครือข่าย Lightning ซึ่งจัดการการชำระเงินหลายล้านรายการต่อวัน ถูกสร้างขึ้นโดยใช้เฉพาะองค์ประกอบพื้นฐานของ Bitcoin Script
ประเภทของสคริปต์: วิวัฒนาการจาก P2PKH สู่ Taproot
ชั้นสคริปต์ของบิตคอยน์ได้พัฒนาขึ้นอย่างมากนับตั้งแต่ปี 2009 โดยการอัปเกรดแต่ละครั้งได้แนะนำรูปแบบการทำธุรกรรมใหม่ ๆ ในขณะที่ยังคงสามารถใช้งานร่วมกับทุกสิ่งที่เคยมีมาก่อนได้
P2PK (จ่ายไปยังกุญแจสาธารณะ, 2009)
รูปแบบดั้งเดิมที่ใช้ในการทำธุรกรรม Bitcoin ครั้งแรก รวมถึงการชำระเงินของ Satoshi ให้กับ Hal Finney ในบล็อกที่ 170 เงินทุนถูกล็อคโดยตรงกับคีย์สาธารณะเต็มรูปแบบแทนที่จะเป็นแฮชของมัน ไม่ค่อยถูกใช้ในธุรกรรมใหม่ในปัจจุบัน เนื่องจากเปิดเผยคีย์สาธารณะบนเชนก่อนที่จะใช้จ่าย ซึ่งถือว่ามีตำแหน่งความปลอดภัยที่อ่อนแอกว่าการแฮชคีย์ก่อน
พีทูพีเคเอช (เพย์-ทู-พับลิก-คีย์-แฮช, 2009)
รูปแบบมาตรฐานที่ใช้มานานกว่าทศวรรษ P2PKH ล็อกเงินทุนไว้กับแฮชของกุญแจสาธารณะแทนที่จะล็อกไว้กับกุญแจเอง ทำให้กุญแจสาธารณะยังคงเป็นความลับจนกว่าจะถึงเวลาใช้จ่าย สร้างที่อยู่สั้นกว่า 20 ไบต์ และเป็นพื้นฐานของที่อยู่ทั้งหมดที่ขึ้นต้นด้วย "1" ตามข้อมูลบนเครือข่ายจาก Unchained (เมษายน 2026) ที่อยู่ P2PKH ปัจจุบันถือครองบิทคอยน์ที่ขุดได้ประมาณ 43% ของอุปทานทั้งหมด
P2SH (Pay-to-Script-Hash, 2012, BIP 16)
เปิดตัวผ่านการซอฟต์ฟอร์กเมื่อวันที่ 1 เมษายน 2012 P2SH ได้ย้ายภาระของสคริปต์การใช้จ่ายที่ซับซ้อนจากผู้ส่งไปยังผู้รับ แทนที่จะฝังสคริปต์ล็อกทั้งหมดในเอาต์พุต P2SH จะสร้างเอาต์พุตที่ผูกมัดกับแฮช 20 ไบต์ของ "สคริปต์ไถ่ถอน" สคริปต์เต็มจะแสดงเฉพาะเมื่อเหรียญถูกใช้เท่านั้น สิ่งนี้ทำให้มัลติซิกใช้งานได้จริงสำหรับผู้ใช้ทั่วไป: การตั้งค่ามัลติซิกแบบ 2-of-3 ไม่จำเป็นต้องให้คีย์สาธารณะทั้งสามตัวปรากฏต่อผู้ส่งในเวลาชำระเงินอีกต่อไป ที่อยู่ P2SH จะขึ้นต้นด้วย "3"
สำหรับการวิเคราะห์อย่างละเอียดเกี่ยวกับวิธีการตรวจสอบ P2SH ระดับโปรโตคอล คู่มือการทำธุรกรรมของ developer.bitcoin.org เดินผ่านกลไกของสคริปต์การแลกรับรางวัลทีละขั้นตอน
P2WPKH และ P2WSH (Native SegWit, 2017, BIP 141)
Segregated Witness ซึ่งถูกเปิดใช้งานในเดือนสิงหาคม 2017 ที่บล็อก 481,824 ได้ย้ายข้อมูลลายเซ็นออกจากเนื้อหาหลักของธุรกรรมไปยังโครงสร้างพยานแยกต่างหาก ข้อมูลพยานจะได้รับการลดน้ำหนักลง 75% ทำให้ธุรกรรม SegWit มีค่าใช้จ่ายถูกกว่าอย่างมีนัยสำคัญ ธุรกรรม P2WPKH แบบมาตรฐานที่มีอินพุตเดียวและเอาต์พุตสองรายการมีน้ำหนักประมาณ 141 ไบต์เสมือน เมื่อเทียบกับธุรกรรม P2PKH ที่เทียบเท่ากันซึ่งมีน้ำหนัก 226 ไบต์เสมือน ตามข้อมูลจาก การวิเคราะห์ประเภทที่อยู่ Bitcoin ของ Spark ตั้งแต่เดือนมีนาคม 2026 เป็นต้นไป SegWit ยังได้แก้ไขปัญหาการทำธุรกรรมที่ไม่สมบูรณ์ ซึ่งเป็นข้อกำหนดเบื้องต้นสำหรับ Lightning Network ที่อยู่ SegWit แบบดั้งเดิมจะขึ้นต้นด้วย "bc1q"
P2TR (Pay-to-Taproot, 2021, BIPs 340/341/342)
Taproot เปิดใช้งานในเดือนพฤศจิกายน 2021 ที่บล็อก 709,632 และเป็นการอัปเกรดที่สำคัญที่สุดของชั้นสคริปต์ของ Bitcoin นับตั้งแต่ SegWit มันได้แนะนำลายเซ็น Schnorr, ประเภทเอาต์พุตใหม่ที่มีการสนับสนุน MAST และ Tapscript ซึ่งเป็นภาษาสคริปต์ที่อัปเดตใหม่ ที่อยู่ Taproot เริ่มต้นด้วย "bc1p."
Taproot และ Tapscript: การเปลี่ยนแปลงของภาษาสคริปต์ Bitcoin ในปี 2021
Taproot ไม่ใช่การเปลี่ยนแปลงเพียงอย่างเดียว แต่เป็นข้อเสนอการปรับปรุงบิตคอยน์สามข้อที่ออกแบบร่วมกันและเปิดใช้งานพร้อมกัน
BIP 340: ลายเซ็น Schnorr
บิตคอยน์ใช้ ECDSA (Elliptic Curve Digital Signature Algorithm) เป็นครั้งแรก. ซาโตชิเลือกมันส่วนหนึ่งเพราะลายเซ็นของชโนร์ร์ได้รับการคุ้มครองโดยสิทธิบัตรในขณะนั้น. สิทธิบัตรนั้นหมดอายุในปี 2008 และ Taproot ได้ทำให้ชโนร์ร์กลายเป็นส่วนหนึ่งของโปรโตคอลในที่สุด.
ลายเซ็น Schnorr มีขนาดเล็กกว่าที่ 64 ไบต์ เมื่อเทียบกับ 71-73 ไบต์ของ ECDSA ที่สำคัญกว่านั้น พวกเขาสนับสนุนการรวมคีย์หลักผ่านโครงการที่เรียกว่า MuSig2 การรวมคีย์หลักช่วยให้ผู้ลงนามหลายคนสามารถรวมคีย์และลายเซ็นของแต่ละคนเข้าเป็นคีย์รวมและลายเซ็นเดียวที่ไม่สามารถแยกแยะได้บนเชนจากการชำระเงินที่มีลายเซ็นเดียวทั่วไป กระเป๋าเงินมัลติซิกแบบ 2-of-3 ที่ใช้จ่ายผ่านเส้นทางกุญแจแบบร่วมมือของ Taproot จะดูเหมือนกันกับการชำระเงินมาตรฐานบนบล็อกเชนทุกประการ นั่นถือเป็นการเพิ่มความเป็นส่วนตัวอย่างแท้จริงสำหรับผู้ที่ถือบิตคอยน์ในรูปแบบการดูแลรักษาที่ซับซ้อน
BIP 341: การชำระเงินเพื่อ Taproot และ MAST
P2TR แนะนำประเภทผลลัพธ์ใหม่ที่มีเส้นทางการใช้จ่ายสองเส้นทาง:
- เอ เส้นทางหลัก การใช้จ่ายโดยใช้ลายเซ็น Schnorr ซึ่งใช้เมื่อทุกฝ่ายเห็นด้วยและต้องการเส้นทางที่ง่ายที่สุดและถูกที่สุด
- เอ เส้นทางสคริปต์ การใช้จ่ายโดยใช้ MAST (Merkelized Abstract Syntax Tree ซึ่งเป็นรูปแบบการใช้งานแนวคิด Taproot)
MAST ช่วยให้สามารถส่งข้อมูลทางเดียวไปยังต้นไม้ของสคริปต์การใช้จ่ายหลายรายการผ่านรากเมิร์เคิลได้ เมื่อมีการใช้จ่าย จะเปิดเผยเฉพาะเงื่อนไขเฉพาะที่ใช้จริงบนเชนเท่านั้น เส้นทางการใช้จ่ายอื่นๆ ที่เป็นไปได้ทั้งหมดในต้นไม้จะยังคงถูกซ่อนไว้อย่างถาวร สำหรับผู้ใช้ที่ได้กำหนดนโยบายการใช้จ่ายที่ซับซ้อนไว้ เช่น "ฉันสามารถใช้ได้ตามปกติ หรือผู้ดูแลผลประโยชน์สองในสามคนสามารถใช้ได้หลังจากหกเดือน หรือสามารถใช้ได้หลังจากสองปีโดยใช้กุญแจกู้คืน" เฉพาะเส้นทางที่ถูกดำเนินการจริงเท่านั้นที่จะปรากฏบนบล็อกเชน
ณ ปี 2024 ส่วนแบ่งของธุรกรรม Bitcoin ที่ใช้ Taproot เพิ่มขึ้นเป็นประมาณ 42% โดยได้รับแรงหนุนหลักจากกิจกรรมการบันทึกข้อมูล Ordinals และ BRC-20 ตามข้อมูลของ Glassnode ที่อ้างอิงโดย Spark ในเดือนมีนาคม 2026 ส่วนแบ่งดังกล่าวได้ผันผวนตามสภาวะตลาดตั้งแต่นั้นมา แต่โครงสร้างพื้นฐานได้กลายเป็นมาตรฐานในกระเป๋าเงินและตลาดแลกเปลี่ยนหลักๆ แล้ว หน้าหัวข้อ Taproot ของ Bitcoin Optech ติดตามการพัฒนาโปรโตคอลอย่างต่อเนื่องเกี่ยวกับ Taproot
BIP 342: Tapscript
Tapscript คือภาษาสคริปต์ที่อัปเดตแล้วซึ่งใช้สำหรับการใช้จ่ายผ่านเส้นทางสคริปต์ภายใน Taproot โดยใช้ร่วมกับ opcode ส่วนใหญ่ของ Bitcoin Script แบบดั้งเดิม แต่มีการเปลี่ยนแปลงที่มีความหมายหลายประการ:
OP_CHECKMULTISIGและOP_CHECKMULTISIGVERIFYถูกยกเลิกแล้ว โค้ดคำสั่ง multisig แบบเก่ามีข้อบกพร่องที่ต้องดันองค์ประกอบปลอมไปยังสแตกเพื่อเป็นวิธีแก้ไขชั่วคราว Tapscript ได้ลบออกและแทนที่ด้วยOP_CHECKSIGADDซึ่งตรวจสอบลายเซ็นของ Schnorr ทีละหนึ่งและสะสมจำนวนการตรวจสอบ. โครงร่างลายเซ็นหลายลายเซ็นแบบเกณฑ์กลายเป็นวิธีที่สะอาดและถูกกว่าในการดำเนินการ.- ขนาดของสคริปต์ต่อหนึ่งใบของ MAST ถูกยกเลิกการจำกัดแล้ว สคริปต์แต่ละตัวภายในสาขาของ Taproot สามารถมีขนาดใหญ่ได้ตามต้องการ
- โอเพคโค้ด OP_SUCCESS เป็นการเปลี่ยนแปลงที่มองไปข้างหน้าที่สุด ในสคริปต์แบบดั้งเดิม การพบโค้ดคำสั่งที่ไม่ได้กำหนดไว้จะทำให้สคริปต์ล้มเหลว ใน Tapscript โค้ดคำสั่งในช่วง OP_SUCCESS จะทำให้สคริปต์สำเร็จโดยไม่มีเงื่อนไข ในอนาคต ซอฟต์ฟอร์กสามารถกำหนดพฤติกรรมที่แท้จริงให้กับโอปโค้ดเหล่านี้ได้โดยการเพิ่มข้อจำกัดเกี่ยวกับเวลาที่พวกมันประสบความสำเร็จ โดยไม่จำเป็นต้องมีเวอร์ชันสคริปต์ใหม่หรือการปรับใช้ระบบใหม่ทั้งหมดในอีโคซิสเต็ม ความสามารถใหม่ ๆ สามารถถูกเพิ่มเข้าไปในชั้นสคริปต์ของบิตคอยน์ได้อย่างสะอาดกว่าที่เคยเป็นมาในประวัติศาสตร์ของโปรโตคอล
มินิสคริปต์
ควบคู่ไปกับ Tapscript โครงการที่เกี่ยวข้องชื่อว่า Miniscript ได้กลายเป็นสิ่งที่เกี่ยวข้องมากขึ้นสำหรับนักพัฒนา Miniscript เป็นวิธีการเขียนชุดย่อยของ Bitcoin Script ที่มีโครงสร้าง ซึ่งสามารถวิเคราะห์ได้ สามารถประกอบกันได้ และสามารถลงนามได้โดยทั่วไป เมื่อ Script ต้นฉบับต้องการการสร้างด้วยตนเองและยากต่อการตรวจสอบ Miniscript สามารถตรวจสอบความถูกต้องได้โดยอัตโนมัติและรวมเข้าเป็นนโยบายที่ใหญ่ขึ้นได้ มันไม่ได้ขยายความสามารถของ Script แต่ทำให้สิ่งที่ Script ทำอยู่แล้วสามารถเข้าถึงได้มากขึ้นสำหรับนักพัฒนาที่สร้างกระเป๋าเงินและเครื่องมือการดูแลรักษา
สิ่งที่ Bitcoin Script สามารถทำได้: กรณีการใช้งานในโลกจริง
ประเภทธุรกรรมต่อไปนี้กำลังใช้งานอยู่บนเครือข่ายหลักของ Bitcoin ในวันนี้ ทั้งหมดถูกสร้างขึ้นบนพื้นฐานของ Bitcoin Script primitives:
กระเป๋าเงินแบบหลายลายเซ็น (มัลติซิก) ต้องการคีย์ส่วนตัว M-of-N เพื่ออนุมัติการใช้จ่าย กองทุนของบริษัทอาจต้องการการอนุมัติ 3 ใน 5 สำหรับการถอนเงินใด ๆ คู่สมรสอาจใช้การอนุมัติ 2 ใน 2 สำหรับการออมร่วม ด้วย Taproot และ Schnorr key aggregation การใช้จ่ายแบบหลายลายเซ็นที่ร่วมมือกันตอนนี้ไม่สามารถแยกแยะได้บนเชนจากการทำธุรกรรมแบบลายเซ็นเดียวมาตรฐาน
ธุรกรรมที่ถูกจำกัดเวลา ใช้ OP_CHECKLOCKTIMEVERIFY (CheckLockTimeVerify หรือ CLTV) และ OP_CHECKSEQUENCEVERIFY (CheckSequenceVerify หรือ CSV) เพื่อป้องกันไม่ให้มีการเคลื่อนย้ายเงินทุนก่อนถึงระดับบล็อกหรือเวลาที่กำหนด การใช้งานรวมถึงการวางแผนการสืบทอดทรัพย์สิน, ตารางการให้สิทธิ์โทเค็นแก่พนักงาน, กลไกการออมบังคับ, และธุรกรรมที่มีโทษซึ่งใช้ภายในช่องทางของเครือข่าย Lightning
สัญญาล็อกเวลาแบบแฮช (HTLCs) รวมข้อกำหนดภาพย้อนกลับของแฮชกับตัวล็อคเวลา เงื่อนไขการใช้จ่ายทำงานดังนี้: เปิดเผยภาพย้อนกลับของแฮชนี้ก่อนความสูงของบล็อกนี้ มิฉะนั้นเงินทุนจะกลับไปยังผู้ส่ง HTLC เป็นองค์ประกอบพื้นฐานของ Lightning Network ที่ช่วยให้สามารถกำหนดเส้นทางชำระเงินแบบไม่ไว้วางใจข้ามเครือข่ายของช่องทางระหว่างฝ่ายที่ไม่มีความสัมพันธ์โดยตรง
เอสโครว์ การจัดเตรียมล็อกเงินทุนไว้ในสคริปต์ P2SH หรือ Taproot ซึ่งต้องการการตกลงจากหลายฝ่ายก่อนการปล่อยเงินทุน โดยทั่วไปจะมีผู้ชี้ขาดจากบุคคลที่สามที่ถือกุญแจตัดสินในกรณีที่มีการตัดสินใจไม่ลงตัว
สัญญาการบันทึกแบบลับ (DLCs) ใช้ลายเซ็น Schnorr adaptor ที่อิงกับ oracle เพื่อเปิดใช้งานสัญญาทางการเงินที่ชำระด้วยข้อมูลในโลกจริง เช่น ราคาฟีดหรือผลลัพธ์ของเหตุการณ์ โดยไม่ต้องให้ oracle ดูแลเงินทุนใดๆ DLCs ใช้งานอยู่บน Bitcoin mainnet และถูกใช้สำหรับผลิตภัณฑ์ออปชั่นและฟิวเจอร์สที่ชำระด้วย Bitcoin
บิตคอยน์ สคริปต์ กับ อีเธอเรียม สมาร์ท คอนแทร็กต์
Bitcoin Script และ Solidity ของ Ethereum ต่างก็กำหนดเงื่อนไขที่เงินทุนสามารถเคลื่อนย้ายได้ แต่ทั้งสองเป็นตัวแทนของทางเลือกทางสถาปัตยกรรมที่แตกต่างกันโดยพื้นฐาน การเปรียบเทียบนี้ควรทำโดยตรงเพราะความแตกต่างเหล่านี้อธิบายถึงข้อแลกเปลี่ยนที่แต่ละเครือข่ายยอมรับไว้ได้เป็นอย่างดี
เส้นแบ่งพื้นฐานคือสถานะที่คงอยู่ สัญญาของ Ethereum จะเก็บข้อมูลและเปลี่ยนแปลงข้อมูลที่คงอยู่ข้ามธุรกรรม ทำให้โปรโตคอลการให้กู้ยืม การแลกเปลี่ยนแบบกระจายอำนาจ การกำกับดูแลบนเครือข่าย และมาตรฐานโทเค็นเป็นไปได้ Bitcoin Script ไม่มีสิ่งที่เทียบเท่า แต่ละสคริปต์จะทำงานในสภาพแวดล้อมที่แยกออกจากกันโดยไม่มีข้อมูลเกี่ยวกับธุรกรรมอื่นใด
นี่คือการตัดสินใจทางสถาปัตยกรรมอย่างเจตนา ไม่ใช่ช่องว่างที่รอให้เติมเต็ม ชั้นสคริปต์ของบิตคอยน์ถูกออกแบบมาเพื่อทำหน้าที่เฉพาะอย่างหนึ่ง: การบังคับใช้เงื่อนไขสำหรับการใช้จ่ายบิตคอยน์ อย่างคาดการณ์ได้และปลอดภัย ในปริมาณมาก สำหรับงานนั้น การไม่มีสถานะทางกฎหมายถือเป็นข้อได้เปรียบ พื้นผิวการโจมตีมีขนาดเล็กกว่า การดำเนินการเป็นแบบกำหนดแน่นอนในผู้ตรวจสอบอิสระหลายล้านราย และไม่มีการโจมตีประเภทสัญญาอัจฉริยะในระดับโปรโตคอล เนื่องจากไม่มีสัญญาที่มีสถานะในระดับโปรโตคอล
โครงการที่ต้องการความสามารถในการเขียนโปรแกรมเพิ่มเติมบน Bitcoin จะสร้างมันขึ้นมาเป็นชั้น ๆ ระบบ Lightning Network จัดการกับการชำระเงิน โปรโตคอล DLC จัดการกับสัญญาทางการเงินที่อ้างอิงกับข้อมูลภายนอก ระบบ Layer-2 เช่น Ark และ Liquid Network จัดการกับโปรไฟล์การขยายตัวที่แตกต่างกัน ทั้งหมดนี้ไม่ต้องการการแก้ไขแบบสคริปต์ของชั้นฐาน
การอภิปรายเรื่องข้อตกลง: อะไรที่อาจเปลี่ยนแปลงในสคริปต์ของบิตคอยน์
การพัฒนาของ Bitcoin Script นั้นดำเนินไปอย่างช้าและระมัดระวังเสมอมา พื้นที่การพัฒนาที่มีความเคลื่อนไหวมากที่สุดในขณะนี้คือ opcodes แบบ covenant ซึ่งเป็นข้อเสนอที่จะช่วยให้สคริปต์สามารถจำกัดไม่เพียงแค่ว่าใครสามารถใช้จ่ายเอาต์พุตได้เท่านั้น แต่ยังรวมถึงลักษณะที่ธุรกรรมที่ได้จะต้องเป็นอย่างไรด้วย นี่เป็นการขยายขีดความสามารถในการแสดงออกของ Script อย่างมีนัยสำคัญ
ข้อเสนอที่นำหน้า ณ เดือนมิถุนายน 2026 ได้แก่:
- OP_CTV (BIP-119, ตรวจสอบแม่แบบ), เขียนโดย Jeremy Rubin, เพิ่มคำสั่งเดียวที่ทำการผูก UTXO กับเทมเพลตการใช้จ่ายที่กำหนดไว้ล่วงหน้า ซึ่งรวมถึงเวอร์ชันของธุรกรรม, ล็อกไทม์, จำนวนอินพุต, ลำดับ, จำนวนเอาต์พุต, และเอาต์พุต มันถูกออกแบบมาให้ไม่ใช้การเรียกซ้ำ (non-recursive) ถือเป็นข้อเสนอหลักที่มีความระมัดระวังมากที่สุด และมุ่งเน้นไปที่การปรับปรุงเกี่ยวกับวอลต์ (vaults) การควบคุมความแออัด และการปรับปรุง Lightning บางประการเป็นหลัก ณ เดือนเมษายน 2026 OP_CTV มีพารามิเตอร์การนำไปใช้ที่ชัดเจนบนโต๊ะ ซึ่งระบุช่วงเวลาการส่งสัญญาณ Speedy Trial แต่ยังไม่ได้รับความเห็นพ้องจากชุมชนอย่างกว้างขวางตามที่จำเป็นสำหรับการเปิดใช้งาน ตามที่ระบุโดย การวิเคราะห์พันธสัญญาของ BlockEden ประจำเดือนเมษายน 2026.
- OP_CAT (BIP-347), เสนอโดย Ethan Heilman และ Armin Sabouri, จะเปิดใช้งาน opcode ที่ Satoshi ได้ปิดการใช้งานไว้ในปี 2010 อีกครั้ง OP_CAT จะทำการเชื่อมต่อสองรายการใน stack ซึ่งอธิบายได้ง่ายแต่มีผลกระทบที่กว้างขวาง เมื่อรวมกับลายเซ็น Schnorr จะทำให้สามารถตรวจสอบธุรกรรมในลักษณะคล้ายพันธสัญญาได้ บนเครือข่ายทดสอบ Bitcoin signet, OP_CAT ได้สร้างธุรกรรมของนักพัฒนาอย่างมีนัยสำคัญมากกว่า APO หรือ CTV ตามการวิเคราะห์บนเชนของ sCrypt จากปลายปี 2024 OP_CAT ได้ถูกใช้งานแล้วบน Liquid Network และ Fractal Bitcoin โดยไม่มีการโจมตีที่เกิดจากมัน BIP-347 มีหมายเลขข้อเสนออย่างเป็นทางการและการวิจัยที่กำลังดำเนินการอยู่เบื้องหลัง แต่การเปิดใช้งานบนเครือข่ายหลักจำเป็นต้องได้รับความเห็นพ้องจากชุมชนซึ่งยังไม่เกิดขึ้น
- LNHANCE รวม OP_CTV กับ OP_CHECKSIGFROMSTACK (CSFS) และ OP_INTERNALKEY เพื่อปรับปรุงการสร้างช่องทางใน Lightning Network โดยเฉพาะ รวมถึงการเปิดช่องทางที่ไม่ต้องการการโต้ตอบและการจัดการช่องทางหลายฝ่ายที่มีประสิทธิภาพมากขึ้น
ไม่มีสิ่งใดที่เปิดใช้งานบนเครือข่ายหลักของ Bitcoin ณ เดือนมิถุนายน 2026 ข้อขัดแย้งทางเทคนิคระหว่างพวกเขานั้นสามารถแก้ไขได้เป็นส่วนใหญ่ ปัญหาที่ยากกว่าคือกลไกการเปิดใช้งาน กระบวนการซอฟต์ฟอร์กของบิตคอยน์ต้องการฉันทามติอย่างกว้างขวาง และการถกเถียงเรื่องพันธสัญญายังคงมีความตึงเครียดหลงเหลือจากการอัปเกรดที่มีความขัดแย้งในอดีต สิ่งที่ชัดเจนจากการถกเถียงคือชั้นสคริปต์ของบิตคอยน์ยังมีพื้นที่ให้เติบโตอย่างมีนัยสำคัญภายในกรอบที่อนุรักษ์นิยม คำถามที่กำลังได้รับการพิจารณาคือการจัดลำดับและความเห็นพ้องของชุมชน ไม่ใช่ว่าภาษาสคริปต์จะมีอนาคตหรือไม่
สรุป
บิตคอยน์ สคริปต์ คือโครงสร้างพื้นฐานที่มองไม่เห็นอยู่เบื้องหลังทุกธุรกรรมบนเครือข่าย ผู้ใช้ส่วนใหญ่ไม่เคยพบเจอโดยตรง กระเป๋าเงินจะสร้างสคริปต์ที่ถูกต้อง ลงนาม และกระจายออกไปโดยไม่เปิดเผยกลไกใดๆ แต่ทุกการชำระเงิน ทุกช่อง Lightning ทุกแผนที่ถูกล็อกเวลา ทุกคลังหลายลายเซ็น ล้วนทำงานผ่านภาษาสคริปต์ Bitcoin แบบสแต็กเดียวกันที่มากับโปรโตคอลตั้งแต่ปี 2009
ชั้นการเขียนสคริปต์ได้เติบโตขึ้นอย่างมากนับตั้งแต่นั้นมา โดยมี P2SH ที่ทำให้การใช้จ่ายที่ซับซ้อนเป็นไปได้จริง, SegWit ที่ลดค่าธรรมเนียมและเปิดใช้งาน Lightning, และ Taproot ที่นำลายเซ็น Schnorr, ความเป็นส่วนตัวที่อิงกับ MAST และการออกแบบ opcode ที่รองรับอนาคตของ Tapscript มาใช้ ข้อเสนอของข้อตกลงที่กำลังอยู่ในระหว่างการหารืออย่างคึกคักในปัจจุบันนี้ เป็นตัวแทนของบทต่อไปที่อาจเกิดขึ้นได้ หากมีการนำมาใช้ และในเวลาใด ยังคงเป็นเรื่องที่เปิดกว้างอย่างแท้จริง ณ กลางปี 2026
การเข้าใจ Script ไม่จำเป็นต้องเป็นนักพัฒนา แต่ต้องยอมรับว่าความอนุรักษ์นิยมของ Bitcoin ข้อจำกัดที่ตั้งใจไว้ จังหวะการอัปเกรดที่ช้า ความไม่สมบูรณ์ตามทฤษฎีของทัวริง ไม่ใช่ข้อบกพร่อง คุณสมบัติที่ทำให้ Bitcoin Script สามารถคาดการณ์ได้คือคุณสมบัติเดียวกันที่ทำให้ชั้นความเห็นพ้องต้องกันสะอาดมาตลอดสิบหกปี





