BTC
ETH
HTX
SOL
BNB
ดูตลาด
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

เรียนรู้ว่า Bitcoin Merkelized Abstract Syntax Tree คืออะไร

以太坊爱好者
特邀专栏作者
บทความนี้มีประมาณ 5652 คำ การอ่านทั้งหมดใช้เวลาประมาณ 9 นาที
Merklized Abstract Syntax Trees (MAST) เป็นการอัปเกรดที่เสนอสำหรับ Bitcoin ที่ช่วยให้ขนาดธุรกรรมเล็กลง ความเป็นส่วนตั
สรุปโดย AI
Merklized Abstract Syntax Trees (MAST) เป็นการอัปเกรดที่เสนอสำหรับ Bitcoin ที่ช่วยให้ขนาดธุรกรรมเล็กลง ความเป็นส่วนตั

ชื่อเดิม: "สินค้าแห้ง | โครงสร้างไวยากรณ์ของ Bitcoin Merkelization คืออะไร? " โดย เดวิด เอ. ฮาร์ดิง

Merklized Abstract Syntax Trees (MAST) เป็นการอัปเกรดที่เสนอสำหรับ Bitcoin ที่ช่วยให้ขนาดธุรกรรมเล็กลง ความเป็นส่วนตัวที่ดีขึ้น และสัญญาอัจฉริยะที่ใหญ่ขึ้น ในบทความนี้ เราจะอธิบายเหตุผลของ MAST อธิบายถึงประโยชน์ที่อาจเกิดขึ้น และสรุปข้อเสนอปัจจุบันบางส่วนที่ใช้เทคโนโลยีนี้

ปัญหา: ข้อมูลสคริปต์ที่ไม่ได้ใช้

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

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

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

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


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

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

แนวคิดเริ่มต้นของ MAST

แนวคิดเบื้องหลัง MAST 1 มาจากแนวคิดที่มีมาอย่างยาวนาน 2 แนวคิด ต้นไม้ความหมายเชิงนามธรรมและต้นไม้ Merkle Abstract Semantic Tree (AST) เป็นวิธีการอธิบายโปรแกรมโดยการแบ่งโปรแกรมออกเป็นชิ้นเล็กๆ อิสระ ซึ่งทำให้โปรแกรมวิเคราะห์และปรับให้เหมาะสมได้ง่ายขึ้น ในการสร้าง AST คุณต้องเชื่อมต่อสมการทั้งหมดกับสถานที่ด้วยลูกศรจนกว่าจะพบสถานที่ทั้งหมด รูปด้านล่างคือ AST ของสคริปต์ตัวอย่างด้านบน

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

ในการสร้าง Merkle tree ขั้นแรกให้แฮชแต่ละองค์ประกอบหนึ่งครั้งเพื่อสร้างตัวระบุเฉพาะของมันเอง จากนั้นตัวระบุเหล่านี้จะถูกจับคู่และแฮชอีกครั้งเพื่อสร้างตัวระบุของคู่ตัวระบุ และทำซ้ำไปเรื่อยๆ จนกว่าจะเหลือตัวระบุเพียงตัวเดียว ซึ่งเรียกว่า "ราก Merkel" ซึ่งเป็นตัวระบุสั้น ๆ ที่ทำเครื่องหมายคอลเล็กชันทั้งหมด

เมื่อตรวจสอบว่าองค์ประกอบเป็นของชุด คนที่เป็นเจ้าของชุดทั้งหมดสามารถให้ตัวระบุทั้งหมดบนเส้นทางจากองค์ประกอบนั้นไปยังราก Merkle นี่เป็นการพิสูจน์ว่าองค์ประกอบนั้นอยู่ในเซตจริงๆ

กล่าวโดยสรุปคือ เทคโนโลยีที่อยู่เบื้องหลัง AST ช่วยให้คุณสามารถแบ่งโปรแกรมออกเป็นส่วนเล็กๆ และ Merkle tree ช่วยให้เราสามารถตรวจสอบได้ว่าชิ้นส่วนเล็กๆ เหล่านี้เป็นส่วนหนึ่งของโปรแกรมที่สมบูรณ์จริงๆ โดยไม่ต้องเปิดเผยโปรแกรมทั้งหมด นี่คือหลักการพื้นฐานของ MAST ซึ่งช่วยให้ผู้บริโภคสามารถแทนที่เงื่อนไขที่ไม่ได้ใช้ในธุรกรรมเดียวด้วยหลักฐาน Merkle - ลดขนาดธุรกรรม ปรับปรุงความเป็นส่วนตัว และสนับสนุนสัญญาที่ใหญ่ขึ้น

ตัวอย่างของ MAST

ลองใช้เงื่อนไขคุณสมบัติข้างต้นเป็นตัวอย่าง และแบ่งออกเป็นสองส่วนย่อยสำหรับสองสถานการณ์ที่เป็นไปได้ที่เราต้องการ:

  • อลิซสามารถใช้ bitcoins ของเธอได้ตลอดเวลา (ตัวห้อยด้านซ้าย)

  • หรือหากลายเซ็นของอลิซถูกใช้เพื่อใช้จ่ายเป็นเวลาสามเดือนติดต่อกัน ลายเซ็นของบ็อบและชาร์ลีจะต้องใช้บิตคอยน์ (ตัวห้อยด้านขวาในรูปด้านล่าง)

สร้าง Merkle tree โดยอิงจาก subscripts สองตัวนี้:

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

หลักฐาน Merkle ของตัวห้อยจะวาดเป็นภาพต่อไปนี้ ขึ้นอยู่กับว่าตัวห้อยใดใช้:

ประโยชน์ #1 - ธุรกรรมขนาดเล็ก

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

ในตัวอย่างด้านบน เราใช้แถบคุณสมบัติที่มีตัวห้อยสองตัว: Alice ใช้เงินของเธอเอง หรือ Bob และ Charlie ใช้เงินของเธอด้วยกันหลังจากรอสามเดือน ลองนึกภาพเวอร์ชันที่ยืดออกอย่างไม่มีที่สิ้นสุด โดยที่ตัวห้อยตัวที่สามระบุว่าหลังจากสามเดือนกับหนึ่งวัน Dan และ Edith สามารถใช้เงินได้ ส่วนตัวห้อยตัวที่สี่ระบุว่าหลังจากสามเดือนกับสองวัน Fred และ George สามารถใช้เงินได้ ฯลฯ เป็นต้น .

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

นี่คือพล็อตลอการิทึมซึ่งมีความหมายเหมือนกัน:

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

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

ในการออกแบบนี้ ปริมาณของหลักฐาน MAST Merkel ในสถานการณ์ต่างๆ จะแตกต่างกัน ในสถานการณ์ที่เหมาะสมที่สุด Alice ยังมีชีวิตอยู่และใช้เงินของเธอเอง ในอีกสถานการณ์หนึ่ง Alice เสียชีวิต และผลประโยชน์ของเธอจะมีคนมาใช้เงิน เรานำเสนอปัจจัยเหล่านี้บนกราฟ

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

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

ประโยชน์ #2 - ความเป็นส่วนตัวมากขึ้น

ในคำอธิบายข้างต้น เราได้เปิดโปงสคริปต์ทรัพย์สินทั้งหมดของ Alice แต่คุณสามารถจินตนาการได้ว่าถ้า Alice ใช้ bitcoins ของเธอเอง คุณจะเห็นเฉพาะข้อมูลทางด้านซ้ายของภาพด้านล่างบนบล็อกเชน:

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

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

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

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

การออกแบบใดๆ ก็ตามที่ทำให้ระบุผู้ใช้รายใดรายหนึ่งได้ง่ายขึ้นจะทำให้ผู้คนสามารถปฏิบัติต่อบิตคอยน์ของตนแตกต่างจากบิตคอยน์ของผู้อื่นได้ง่ายขึ้น ซึ่งเรียกว่า "การขาดความเป็นเนื้อเดียวกัน" หากมีใครรู้ว่าสภาพทรัพย์สินของอลิซเป็นอย่างไร พวกเขาสามารถติดสินบนหรือบังคับให้คนงานเหมืองไม่บรรจุการทำธุรกรรมของคนเหล่านี้ เพื่อป้องกันไม่ให้อลิซใช้บิตคอยน์ของเธอเอง

MAST ไม่สามารถแก้ปัญหานี้ได้อย่างสมบูรณ์ เนื่องจากอลิซ (หรือบ็อบและชาร์ลี) ยังคงต้องเปิดเผยอุปสรรคบางประการ แต่เงื่อนไขคุณสมบัติที่ซับซ้อนหลายอย่างสามารถแก้ไขเป็นเงื่อนไขประเภท MAST ง่ายๆ จำนวนเล็กน้อยได้

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

ประโยชน์ของ MAST นี้มีแนวโน้มที่จะรวมกับข้อเสนออื่น ๆ เพื่อปรับปรุงความเป็นส่วนตัวและความสม่ำเสมอของ Bitcoin มีข้อเสนอที่จะทำให้เงื่อนไขคุณสมบัติที่ซับซ้อนบางอย่างพร้อมใช้งานด้วยลายเซ็นเดียว เช่น "Universal Threshold Tree" ของ Pieter Wuille และ Gregory Maxwell "Scriptless Script" ของ Andrew Poelstra และ "สัญญาลอการิทึมแบบไม่ต่อเนื่อง ” ของ Thaddeus Dryja; MAST สามารถใช้ร่วมกับเงื่อนไขเหล่านี้ได้ แผนการ

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

ประโยชน์ #3 - สัญญาอัจฉริยะที่ใหญ่ขึ้น

ตอนนี้ Bitcoin กำหนดขีดจำกัดขนาดที่แตกต่างกันสามแบบสำหรับแต่ละสคริปต์: สคริปต์เปลือยต้องมีขนาดไม่เกิน 10,000 ไบต์ซึ่งเปิดตัวในเดือนกรกฎาคม 2010 สคริปต์ P2SH ต้องมีขนาดไม่เกิน 520 ไบต์ และสคริปต์ segwit ต้องมีขนาดไม่เกิน 10,000 ไบต์ เราแสดงขนาดเหล่านี้ในรูปด้านบน:

จะเห็นได้ว่าแม้ในกรณีสุดโต่งของการขยายไม่สิ้นสุด MAST รองรับสาขาที่มีเงื่อนไขมากกว่ากลไกปัจจุบันทั้งหมด ในความเป็นจริง MAST ปรับขนาดได้ดีถึงแม้ว่าคุณจะมีพลังงานทั้งหมดในเอกภพที่สังเกตได้ แต่ถ้าคุณใช้มันเพื่อสร้าง Merkle tree มาตรฐาน (สมดุล) หลักฐาน Merkle ของมันมีเพียง 8448 ไบต์เท่านั้น แม้สำหรับหลักฐาน Merkle ขนาดใหญ่เช่นนี้ แล็ปท็อปสมัยใหม่ก็สามารถตรวจสอบได้ภายในเวลาไม่ถึง 1 มิลลิวินาที

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

ดังนั้น ความสำเร็จที่แท้จริงของ MAST ไม่ใช่การอนุญาตให้ผู้ใช้ Bitcoin สร้างสัญญาขั้นสูง (มากกว่าที่เคย) แต่เป็นการเปิดโอกาสนี้โดยไม่ต้องเพิ่มภาระใหม่ให้กับโหนด Bitcoin

การใช้ MAST: ข้อเสนอหลายรายการที่มีอยู่

จนถึงขณะนี้ มีการเสนอวิธีการสองวิธีในการเปิดใช้งาน MAST ในโปรโตคอล Bitcoin ในรายชื่อผู้รับจดหมาย bitcoin-dev ซึ่งทั้งสองวิธียังคงอยู่ในขั้นร่างและอาจมีการเปลี่ยนแปลงได้

ข้อเสนอแรกคือ BIP114 ที่เสนอโดย Johnson Lau (นามแฝง "jl2012") ซึ่งใช้คุณลักษณะเพิ่มเติมตามพยานที่แยกจากกัน เพื่อให้ที่อยู่ของพยานที่แยกจากกันเดิม (bech32) สามารถกลายเป็นข้อผูกมัดหลักของ Merkle ต่อเงื่อนไขคุณสมบัติ MAST การทำธุรกรรมการใช้จ่ายสามารถเลือกสคริปต์ลูกจากแผนภูมิ

ข้อเสนอที่สอง BIP ที่ไม่มีชื่อสองรายการ (1, 2) โดย Mark Friedenbach (นามแฝงว่า "maaku") เพิ่มความยืดหยุ่นของภาษาสคริปต์ ทำให้โปรแกรมเมอร์สามารถเขียนสคริปต์เพื่อตรวจสอบเงื่อนไขคุณสมบัติตาม MAST ดำเนินการตามวิธีที่ Friedenbach ต้องการ ซึ่งจะทำให้การพิสูจน์ของ Merkle พร้อมใช้งานสำหรับสคริปต์ทั้งสามประเภทที่ Bitcoin รองรับในปัจจุบัน (สคริปต์เปล่า, P2SH และสคริปต์ Segregated Witness)

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

สรุป: เราจะใช้ MAST ได้เมื่อใด

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

จากแนวคิด ข้อเสนอ การดำเนินการให้เสร็จสมบูรณ์ การเสนอ soft fork ไปจนถึงการเปิดใช้งาน soft fork หนทางยาวไกลและยากลำบาก สิ่งนี้ชัดเจนขึ้นอย่างมากจากดราม่าสองปีเกี่ยวกับการอัปเกรด Segregated Witness

แต่จากมุมมองของฉัน แนวคิดพื้นฐานเบื้องหลัง MAST ได้รับการสนับสนุนอย่างกว้างขวางในชุมชนเทคโนโลยี Bitcoin และนักพัฒนาที่สนใจ MAST มากที่สุดจะยังคงพัฒนาต่อไป เว้นแต่จะมีใครพิสูจน์ได้ว่าเทคโนโลยีนี้ไม่น่าเชื่อถือโดยสิ้นเชิง เมื่อนักพัฒนาเหล่านี้เสนอรหัส soft fork ที่ตรวจสอบโดยเพื่อนได้สำเร็จ ผู้อ่านและผู้ใช้ Bitcoin รายอื่นจะตัดสินใจว่า MAST สามารถเป็นส่วนหนึ่งของโปรโตคอล Bitcoin ได้หรือไม่

ขอบคุณ

  • BIP114: Merklized Abstract Syntax Tree by Johnson Lau

  • Tail Call Sematics by Mark Friedenbach

  • MerkleBranchVerify opcode by Mark Friedenbach

  • Discussion at core.tech meetup by Mark Friedenbach (transcribed by Bryan Bishop)

  • Merklized Abstract Syntax Trees by Jeremy Rubin, Manali Naik, Nitya Subramanian

  • An explanation and justification of the tail-call and MBV approach to MAST by Mark Friedenbach

  • Making MAST Meaningful by Brian Deery

  • The next step to improve Bitcoin by Aaron van Wirdum

ขอบคุณ

เชิงอรรถ

เชิงอรรถ

  • Russell O'Connor ได้รับการยกย่องว่าเป็นคนแรกที่อธิบายถึงต้นแบบของ MAST และบางแหล่งได้เพิ่ม Pieter Wuille ที่มา: Peter Todd, Gregory Maxwell (อ้างถึงใน Jeremy Rubin และคณะ) และ Mark Friedenbach (ในการสื่อสารส่วนบุคคล)

  • ขอบคุณ John Newbery

    ลิงค์ต้นฉบับ:

(เกิน)

(มีไฮเปอร์ลิงก์มากมายในบทความนี้ คุณสามารถคลิก "อ่านข้อความต้นฉบับ" ที่ด้านล่างซ้ายเพื่อรับจากเว็บไซต์ EthFans)

ลิงค์ต้นฉบับ:

https://bitcointechtalk.com/what-is-a-bitcoin-merklized-abstract-syntax-tree-mast-33fdf2da5e2f

แปล: เจียน

แปล: เจียน


BTC
ETH
สัญญาที่ชาญฉลาด
ยินดีต้อนรับเข้าร่วมชุมชนทางการของ Odaily
กลุ่มสมาชิก:
https://t.me/Odaily_News
กลุ่มสนทนา:
https://t.me/Odaily_GoldenApe
บัญชีทางการ:
https://twitter.com/OdailyChina
สารบัญบทความ
คลังบทความของผู้เขียน
以太坊爱好者
อันดับบทความร้อน
Daily
Weekly
ดาวน์โหลดแอพ Odaily พลาเน็ตเดลี่
ให้คนบางกลุ่มเข้าใจ Web3.0 ก่อน
IOS
Android