ผู้ใช้ Bitcoin อาจจะทำได้ในไม่ช้า"Taproot "ได้รับประโยชน์จาก. Taproot ซึ่งเสนอครั้งแรกโดยผู้สนับสนุน Bitcoin Core และอดีต CTO ของ Blockstream Gregory Maxwell จะขยายความยืดหยุ่นของสัญญาอัจฉริยะ Bitcoin ในขณะที่ให้ความเป็นส่วนตัวมากขึ้นในกระบวนการ แม้แต่สัญญาอัจฉริยะที่ซับซ้อนที่สุดก็มักจะแยกไม่ออกจากธุรกรรมปกติบนบล็อกเชน
ในขณะที่โครงการขนาดใหญ่ ไม่ใช่แค่ทฤษฎี ผู้ร่วมสนับสนุน Bitcoin Core หลายคน ได้แก่ Pieter Wuille, Anthony Towns, Johnson Lau, Jonas Nick, Andrew Poelstra, Tim Ruffing, Rusty Russell และในความเป็นจริง Gregory Maxwell กำลังทำงานเกี่ยวกับข้อเสนอลายเซ็นของ Schnorr ซึ่งรวมถึง Taproot
ลองดูที่ Taproot และวิธีการทำงาน
P2SH
โดยพื้นฐานแล้ว bitcoins ทั้งหมดคือ"ล็อค"ในสคริปต์: โค้ดสองสามบรรทัดที่ฝังอยู่ในธุรกรรมบนบล็อกเชนที่กำหนดว่าบิตคอยน์จะถูกใช้ในการทำธุรกรรมครั้งต่อไปอย่างไร เงื่อนไขที่ใช้มักจะเกี่ยวข้องกับการให้ลายเซ็นเพื่อพิสูจน์ความเป็นเจ้าของเหรียญ แต่เงื่อนไขอื่น ๆ ที่รู้จักกันดี ได้แก่ การล็อกเวลา (เหรียญสามารถใช้ได้หลังจากความสูงหรือวันที่บล็อกที่กำหนดเท่านั้น) หรือ multisig (เหรียญสามารถใช้ได้เฉพาะเมื่อลงนามโดยคีย์ส่วนตัวบางชุดเท่านั้น)
เงื่อนไขต่างๆ สามารถผสมและจับคู่เพื่อสร้างสัญญาอัจฉริยะประเภทที่ซับซ้อนได้ ดูตัวอย่างสัญญาประเภทนี้ หากทั้ง Alice และ Bob ลงนาม หรือ Alice ลงนามเพียงผู้เดียวหลังจากผ่านไปหนึ่งสัปดาห์ หรือ Bob ลงนามเพียงผู้เดียวและให้รหัสผ่านด้วย เหรียญนั้นสามารถ "ใช้จ่าย" ได้ เงื่อนไขข้อใดในสามข้อนี้จะตรงก่อนเป็นเรื่องเกี่ยวกับวิธีการใช้เหรียญ
สารละลาย"สารละลาย". จากนั้นทุกคนสามารถใช้แฮชเริ่มต้นเพื่อตรวจสอบว่าสคริปต์ที่ให้นั้นเป็นสคริปต์ดั้งเดิมที่ล็อคเหรียญไว้จริง ๆ และสามารถสรุปได้ทันทีว่าตรงตามข้อกำหนดของสคริปต์
อย่างไรก็ตาม ในปัจจุบันจำเป็นต้องเปิดเผยเงื่อนไขที่เป็นไปได้ทั้งหมดที่ตรงตามเงื่อนไขเมื่อใช้เหรียญ รวมถึงเงื่อนไขที่ไม่เป็นเช่นนั้น สิ่งนี้มีข้อเสียหลักสองประการ หนึ่ง มีข้อมูลจำนวนมากโดยเฉพาะเมื่อมีหลายเงื่อนไข ประการที่สองเป็นอันตรายต่อความเป็นส่วนตัว ทุกคนจะได้เรียนรู้เกี่ยวกับวิธีต่างๆ ที่อาจใช้เงินทุน ซึ่งสามารถเปิดเผยได้ เช่น กระเป๋าเงินใบใดถูกใช้ไป และอื่นๆ อีกมากมาย
MAST
MAST เป็นโซลูชันที่นำเสนอซึ่งใช้ Merkle tree ซึ่งเป็นโครงสร้างข้อมูลขนาดเล็กที่มีอายุหลายสิบปีซึ่งคิดค้นโดยนักเข้ารหัส Ralph Merkle เพื่อแก้ไขข้อบกพร่องทั้งสองนี้ กล่าวโดยสรุปคือ เงื่อนไขต่างๆ ทั้งหมดที่สามารถใช้เงินได้จะถูกแฮชทีละรายการ (แทนที่จะรวมกันเป็นแฮชเดียว) และรวมไว้ใน Merkle tree ทำให้เกิดแฮชเดียว: รากของ Merkle ราก Merkle นี้"ล็อค"เหรียญเหล่านี้
ข้อดีที่ไม่เหมือนใครคือหากมีการเปิดเผยข้อมูลใดๆ ใน Merkle tree รากของ Merkle และข้อมูลเพิ่มเติมบางอย่าง (เรียกว่าเส้นทาง Merkle) สามารถใช้เพื่อตรวจสอบว่าข้อมูลเฉพาะนั้นรวมอยู่ใน Merkle tree ต้น Merkle ที่เหลือยังคงถูกแฮชและซ่อนไว้
สำหรับ MAST หมายความว่าจะต้องเปิดเผยเฉพาะเงื่อนไขที่ตรงตามเงื่อนไขเท่านั้น หากในตัวอย่างดั้งเดิมข้างต้น อลิซใช้เงินคนเดียวหลังจากผ่านไปหนึ่งสัปดาห์ เธอเพียงแค่ปล่อยให้เงื่อนไขถูกเปิดเผย (และเส้นทางของ Merkle) ไม่มีใครรู้ว่าอลิซและบ็อบสามารถใช้เงินร่วมกันหรือโดยบ็อบคนเดียว (เขาเพิ่มรหัสผ่านด้วย) สิ่งนี้ทำให้ MAST มีประสิทธิภาพข้อมูลมากกว่าสัญญาอัจฉริยะ P2SH ที่ซับซ้อนพร้อมความเป็นส่วนตัวที่เพิ่มขึ้น
อย่างไรก็ตาม ด้วย Schnorr Taproot สามารถทำได้ดีกว่า: การทำธุรกรรมสามารถซ่อนโครงสร้างเช่น MAST ได้อย่างสมบูรณ์
Schnorr
รูปแบบลายเซ็นของ Schnorr เป็นที่ต้องการของนักพัฒนา Bitcoin จำนวนมาก และขณะนี้อยู่ระหว่างการพัฒนาเพื่อปรับใช้เป็นการอัปเกรดโปรโตคอลแบบ soft fork นักเข้ารหัสหลายคนพิจารณาว่า Schnorr Signature Scheme นั้นดีที่สุดในด้านนี้ เนื่องจากคุณสมบัติทางคณิตศาสตร์นั้นให้ความถูกต้องสูง มีภูมิคุ้มกันต่อความไม่แน่นอน และค่อนข้างรวดเร็วในการตรวจสอบ
Schnorr's เป็นฟีเจอร์ที่โด่งดังที่สุดในการพัฒนา Bitcoin"คณิตศาสตร์เชิงเส้น"อนุญาตการรวมลายเซ็น: ลายเซ็นหลายรายการในธุรกรรมเดียวกันสามารถรวมเป็นหนึ่งเดียวได้ สามารถใช้เคล็ดลับที่คล้ายกันกับธุรกรรมหลายซิกได้เช่นกัน การรวมคีย์สาธารณะและลายเซ็นเข้าด้วยกัน"และ"และ"ลายเซ็นเกณฑ์"ซึ่งทำให้การทำธุรกรรมแบบหลายลายเซ็นแยกไม่ออกจากธุรกรรมปกติ
แต่สามารถใช้รูปแบบลายเซ็นในรูปแบบที่น่าสนใจมากขึ้น ตัวอย่างเช่น สามารถใช้ข้อมูลเพื่อ"การปรับ"รหัสส่วนตัวและรหัสสาธารณะ ตามตัวอย่างง่ายๆ คีย์ส่วนตัวและคีย์สาธารณะที่เกี่ยวข้องสามารถปรับได้โดยการคูณสองด้วย 2"และ"และ"รหัสสาธารณะ × 2"จะยังคงสอดคล้อง"รหัสส่วนตัว × 2"ยังสามารถลงนามได้"รหัสสาธารณะ × 2"ตรวจสอบข้อมูล ใครก็ตามที่ไม่รู้ว่าคู่คีย์ดั้งเดิมถูกปรับแล้วก็จะไม่เห็นความแตกต่างใดๆ เลยด้วยซ้ำ คีย์ที่ปรับแล้วจะดูเหมือนคู่คีย์อื่นๆ
นั่นคือที่มาของ Taproot
Taproot
Taproot ขึ้นอยู่กับการตระหนักว่าโครงสร้าง MAST เกือบทั้งหมด ไม่ว่าจะซับซ้อนเพียงใด สามารถ (หรือควร) รวมเงื่อนไขสำหรับผู้เข้าร่วมทั้งหมดเพื่อตกลงในผลลัพธ์และลงนามในธุรกรรมการชำระเงินร่วมกัน ในตัวอย่างที่แล้ว ถ้าบ็อบรู้ว่าอลิซสามารถหาเงินทั้งหมดคืนได้ด้วยตัวเองในสัปดาห์หน้า เขาก็อาจจะร่วมมือกับเธอในตอนนี้และเซ็นสัญญาร่วมกัน (ในการตั้งค่าสัญญาอัจฉริยะทั่วไป เขาอาจถูกลงโทษได้หากไม่ทำเช่นนั้น ความยุ่งยากเป็นเพียงเพื่อให้ทุกคนซื่อสัตย์)
Taproot คล้ายกับ MAST และมีเงื่อนไขเสมอว่าผู้เข้าร่วมทุกคนสามารถใช้เงินร่วมกันได้:"ปิดสหกรณ์"。
นี่คือจุดที่น่าสนใจโดยใช้ลายเซ็นของ Schnorr
ประการแรก การสิ้นสุดการเป็นหุ้นส่วนใช้เคล็ดลับเกณฑ์ของ Schnorr เพื่อทำให้ดูเหมือนข้อตกลงปกติ ด้วยวิธีนี้ คีย์สาธารณะของผู้เข้าร่วมทั้งหมดจะถูกรวมเข้าไว้ด้วยกันในรูปแบบ"คีย์สาธารณะเกณฑ์". สอดคล้องกับคีย์สาธารณะเกณฑ์นี้ การรวมกันของลายเซ็นของผู้เข้าร่วมทั้งหมด---ของพวกเขา"ลายเซ็นเกณฑ์"---คุณสามารถให้พวกเขาใช้เงินได้
จนถึงตอนนี้ยังดีอยู่ แต่การใช้จ่ายเงินเป็นธุรกรรมปกติเป็นสิ่งเดียวที่พวกเขาทำได้ -- ยังไม่มีโครงสร้างแบบ MAST นี่คือที่มาของกลอุบายอื่นของ Schnorr
ทางเลือกทั้งหมดในการใช้เงินทุน—ผลลัพธ์ที่ไม่ร่วมมือ—รวมกันเป็นสคริปต์ที่แตกต่างกันในครั้งนี้ จากนั้นสคริปต์นี้จะถูกแฮชและใช้เพื่อปรับคีย์สาธารณะของขีดจำกัด แทนที่จะใช้"รหัสสาธารณะ × 2"เปิดออก"เกณฑ์รหัสสาธารณะ × สคริปต์"(นิพจน์แบบง่าย). แน่นอนนี้"เกณฑ์รหัสสาธารณะ × สคริปต์"สอดคล้องกับ"ลายเซ็นขีด จำกัด ×สคริปต์"。
ตอนนี้ หากมีการแบ่งปันเงินทุน ผู้เข้าร่วมทั้งหมดจะรวมลายเซ็นของพวกเขาเข้าด้วยกัน"ลายเซ็นเกณฑ์"แล้วปรับแต่งด้วยสคริปต์ เกิดจาก"ลายเซ็นขีด จำกัด ×สคริปต์"เพียงแค่ให้พวกเขาใช้เงิน อย่างไรก็ตาม ที่สำคัญ ทั้งหมดนี้ยังคงเป็นเพียงกุญแจสาธารณะธรรมดาและลายเซ็นธรรมดา—ธุรกรรมธรรมดา—ต่อโลกภายนอก
เฉพาะเมื่อการสิ้นสุดการทำงานร่วมกันพิสูจน์ได้ว่าเป็นไปไม่ได้เท่านั้น คีย์สาธารณะเกณฑ์จะเปิดเผยสีที่แท้จริง: ปรับแล้ว
ในกรณีนี้ ทั้งคีย์สาธารณะของเกณฑ์ดั้งเดิมและสคริปต์จะถูกเปิดเผย สิ่งนี้พิสูจน์ได้"เกณฑ์รหัสสาธารณะ x สคริปต์"ถูกปรับแต่งด้วยสคริปต์นี้โดยเฉพาะ ดังนั้น เช่นเดียวกับแฮชใน P2SH การปรับแต่งนี้จะยืนยันว่าเงินควรจะใช้ได้หากตรงตามทางเลือกที่ระบุในสคริปต์นี้ (เช่นเดียวกับ P2SH แน่นอนว่าเงื่อนไขเหล่านี้จะตรงตามเงื่อนไขทันทีสำหรับเงินทุนที่จะใช้)
นอกจากนี้ แทนที่จะใช้สคริปต์เพื่อปรับคีย์สาธารณะของเกณฑ์ คีย์สาธารณะของเกณฑ์สามารถปรับเปลี่ยนได้โดยใช้ Merkle root ของ Merkle tree ซึ่งมีเงื่อนไขต่างๆ ทั้งหมดที่สามารถใช้เงินทุนได้: โครงสร้าง MAST จากนั้น ในการใช้เงินทุน จำเป็นต้องเปิดเผยเงื่อนไขการใช้งานที่ตรงตามเงื่อนไขเท่านั้น
ดังนั้น Taproot จึงให้ประโยชน์ทั้งหมดของ MAST ในขณะที่ภายใต้สถานการณ์ปกติ จะไม่มีใครรู้ว่าธุรกรรมทั่วไปซ่อนสัญญาอัจฉริยะที่ซับซ้อนดังกล่าวไว้เป็นข้อมูลสำรอง
