Merklized Alternative Script Trees คืออะไร?

Oct 19 2020

ฉันได้เห็นตัวย่อ MAST ลอยอยู่รอบ ๆ ฉันเห็นว่ามันย่อมาจาก Merklized Alternative Script Trees แต่นั่นหมายความว่าอย่างไร? ปรากฏในบริบทใดและใช้ทำอะไรได้บ้าง?

คำตอบ

4 MichaelFolkson Oct 24 2020 at 20:22

ความคิดของ Merklized ทางเลือกสคริปต์ต้นไม้ (หรือก่อนหน้านี้ Merklized บทคัดย่อไวยากรณ์ต้นไม้) วันที่กลับไปคิดที่รัสเซลโอคอนเนอร์ได้ใน2012 แนวคิดดั้งเดิมคือคุณสามารถมีสคริปต์ทางเลือกหรือชิ้นส่วนสคริปต์ที่เก็บไว้เป็นใบไม้ในต้นไม้ Merkle จากนั้นใบของต้นไม้ที่ไม่ได้ใช้จะถูกตัดออกไปและไม่ใช้พื้นที่อันมีค่าบน blockchain เปรียบเทียบสิ่งนี้กับ P2SH (Pay to Script Hash) ที่แฮชสคริปต์ทั้งหมดแล้วเปิดเผยบนบล็อกเชนในเวลาที่ใช้ สิ่งนี้นำมาซึ่งประสิทธิภาพของพื้นที่บล็อก (และด้วยเหตุนี้จึงมีค่าธรรมเนียมที่ต่ำกว่า) รวมถึงสิทธิประโยชน์ด้านความเป็นส่วนตัว

ข้อเสนอที่เป็นทางการก่อนหน้านี้สำหรับ MAST คือBIP 114และBIP 116และข้อเสนอล่าสุดคือ Taproot ( BIP 341 ) เหตุผลที่เราย้ายออกจากการใช้คำศัพท์Merklized Abstract Syntax Tree คือด้วย Taproot (และ BIP 114) เพียงใบเดียวของ Merkle เท่านั้นที่สามารถดำเนินการได้ คุณไม่สามารถแยกเส้นทางสคริปต์ที่ยาวเป็นพิเศษออกเป็นส่วนของสคริปต์หลายรายการที่เก็บไว้บนใบไม้ต่าง ๆ ของต้นไม้จากนั้นจึงใช้ใบไม้เหล่านี้ผสม มันเป็นต้นไม้แห่ง OR อย่างมีประสิทธิภาพ (ไม่มี AND ของใบไม้ที่แตกต่างกันและไม่มี IF, ELSEs ที่นำไปสู่ความพึงพอใจของใบไม้ที่แตกต่างกันบนต้นไม้) คุณสามารถมี ANDs และ IF ELSE ได้ แต่จะอยู่ในใบไม้ไม่อยู่ระหว่างใบไม้ ความพึงพอใจใบเดียวก็เพียงพอที่จะใช้จ่าย UTXO ดังที่ Johnson Lau กล่าวใน BIP 114:

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

Pieter Wuille และ Russell O'Connor คุยกันว่าเหตุใดจึงมีการตัดสินใจออกแบบนี้สำหรับ Taproot ที่London BitDevsในเดือนกรกฎาคม 2020 เหตุผลประการหนึ่งคือคุณต้องใช้โหนดสาขา Merkle จำนวนลอการิทึมเพื่อไปยังใบใดก็ได้ หากมีความเป็นไปได้ที่จะมีการรวมกันของใบไม้ทั้งหมดที่แตกต่างกัน อีกเหตุผลหนึ่งคือพื้นที่ออกแบบต้องถูก จำกัด ในบางขั้นตอนเพื่อให้ข้อเสนอมีโอกาสที่ดีที่สุดในการได้รับฉันทามติของชุมชนและเปิดใช้งานได้ในที่สุด

4 Murch Oct 25 2020 at 21:50

คุณอาจเคยได้ยินมาก่อนว่า "Bitcoin เป็นเงินที่ตั้งโปรแกรมได้" Bitcoin ใช้ภาษาโปรแกรมง่ายๆที่เรียกว่าScriptเพื่อเข้ารหัสเงื่อนไขการชำระเงิน ในขณะที่ทุกวันนี้ธุรกรรมส่วนใหญ่ใช้เอาต์พุตซิกเดี่ยวมาตรฐาน (P2PK, P2PKH, P2WPKH) หรือหนึ่งในสคริปต์ทั่วไปชุดเล็ก ๆ (เซ็กส์วิตแบบห่อ, มัลติซิก 2 ใน 3 แบบ, มัลติซิกแบบ 2 จาก 2 ที่มี 1-of -2 ทางเลือก) ภาษาสคริปต์ของ Bitcoin จะอนุญาตให้มีแอปพลิเคชันอื่น ๆ มากมาย

เดิมสคริปต์ดังกล่าวถูกเข้ารหัสโดยตรงในสคริปต์เอาต์พุตที่ธุรกรรมให้เครดิต Pay to Script Hash (P2SH, BIP16 )แนะนำให้ล็อกเงินไว้ที่แฮชของสคริปต์การแลกแบบเต็มแทน สคริปต์ฉบับเต็มได้รับการเผยแพร่ในที่นี้เกี่ยวกับการใช้จ่าย ความท้าทายอย่างหนึ่งในการปรับใช้เงื่อนไขการใช้จ่ายที่ซับซ้อนมากขึ้นด้วย P2SH คือผลลัพธ์ที่เป็นไปได้ทั้งหมดจะต้องถูกเข้ารหัสเป็นสคริปต์เดียวซึ่งจะทำให้สคริปต์ยาวและซับซ้อนได้ เนื่องจากต้องเผยแพร่สคริปต์ฉบับเต็มเมื่อมีการใช้จ่ายปัจจัยการผลิตที่ได้จึงมีค่าใช้จ่ายสูงและเปิดเผยสัญญาฉบับเต็ม นอกจากนี้การพิจารณาผลลัพธ์ที่เป็นไปได้ทั้งหมดของสัญญาอัจฉริยะที่ซับซ้อนในระดับปานกลางไม่ใช่เรื่องสำคัญ

แนวคิดของMerklized Alternative Script Trees (MAST) ¹คือการแจกแจงเงื่อนไขการใช้จ่ายที่แตกต่างกันแยกกันและอนุญาตให้ใช้เงินโดยการปฏิบัติตามสคริปต์ใด ๆ แต่ละสคริปต์จะถูกแบ่งออกเป็นส่วน ๆ ในใบไม้ของต้นไม้เมอร์เคิล เมื่อได้รับเงินจะถูกล็อคไว้ที่รากของต้นไม้ Merkle การใช้จ่ายจำเป็นต้องเปิดเผยสคริปต์ของใบไม้ใบเดียวหลักฐานการรวมเพื่อแสดงการรวมอยู่ในต้นไม้และการปฏิบัติตามเงื่อนไขการใช้จ่ายที่เข้ารหัสในใบไม้ ประโยชน์ของการแบ่งส่วนนี้คือความยาวและความซับซ้อนที่ลดลงในแต่ละใบเงื่อนไขการใช้จ่ายอื่น ๆ ยังคงเป็นส่วนตัวและความเป็นไปได้ในการเข้ารหัสเงื่อนไขการใช้จ่ายที่หลากหลาย ข้อเสียคือค่าใช้จ่ายเพิ่มเติมของการพิสูจน์ Merkle

รูปแบบของ MAST เป็นส่วนหนึ่งของข้อเสนอBIP341 Taproot ซึ่งแทนที่ข้อเสนอ MAST สองข้อก่อนหน้านี้ สคริปต์เอาต์พุตPay to Taproot (P2TR)ถูกเข้ารหัสในคีย์สาธารณะเดียว ภายในประกอบด้วยคีย์ภายในที่ปรับแต่งด้วยรูทของ MAST คุณสามารถใช้เอาต์พุต P2TR ผ่านทางคีย์โดยการออกลายเซ็นที่ตรงตามคีย์สาธารณะหรือผ่านเส้นทางสคริปต์โดยใช้หนึ่งใน MAST เหลือ


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

Prayank Oct 24 2020 at 18:58

MAST ถูกกล่าวถึงเป็นMerkelized Alternative Script Treeในลิงก์เก็บถาวรรายชื่ออีเมลที่ฉันได้รับจากbitcoinops

MAST [0] - ให้สคริปต์ทางเลือกไม่มีผลกับซิก

ฉันคิดว่าฉันจะอ้างว่า "MAST" ย่อมาจาก "merkelized alternative script tree" ในทุกวันนี้เนื่องจากไม่ใช่ "ต้นไม้ไวยากรณ์ที่เป็นนามธรรม"

https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2018-November/016500.html

มีเพียงส่วนหนึ่งที่ฉันเข้าใจเกี่ยวกับ MAST จากโพสต์ขนาดกลางที่จะช่วยปรับปรุงความเป็นส่วนตัว:

Taproot ใช้ MAST เพื่อรวมแฮชที่ผสานเป็นคีย์สาธารณะดังนั้นจึงรวมถึงการทำธุรกรรมสคริปต์ที่ซับซ้อนซึ่งแยกไม่ออกจากธุรกรรม P2PKH มาตรฐาน