สำหรับอัลกอริทึม f ผู้ร่วมมือที่ไม่เชื่อถือกันสองคน คือ Alice และ Bob สามารถสร้างความเชื่อถือได้ตามวิธีต่อไปนี้:
สำหรับ 2, 3 และ 4 ดังกล่าว ให้ x เป็นธุรกรรม Layer2 และสถานะเริ่มต้น f เป็นโปรแกรมความเห็นชั้น Layer2 และ y เป็นสถานะสิ้นสุดของการทำธุรกรรมที่สอดคล้องกับการขยายมิติ Layer2 บนบล็อกเชน
ตาราง 1: วิธีการสร้างความเชื่อมั่น
นอกจากนี้ มีสิ่งที่สำคัญที่ต้องระบุ:
ปัจจุบันได้รับประโยชน์จากสัญญาอัจฉริยะที่สมบูรณ์ของ Turing ของ Solidity การพิสูจน์การฉ้อโกงและเทคโนโลยีการพิสูจน์ความถูกต้องถูกนํามาใช้กันอย่างแพร่หลายในการปรับขนาด Ethereum Layer2 อย่างไรก็ตามภายใต้กระบวนทัศน์ Bitcoin ซึ่งถูก จํากัด โดยฟังก์ชัน opcode ที่ จํากัด ของ Bitcoin องค์ประกอบสแต็ค 1000 และข้อ จํากัด อื่น ๆ การประยุกต์ใช้เทคโนโลยีเหล่านี้ยังอยู่ในขั้นตอนการสํารวจ บทความนี้สรุปข้อ จํากัด และเทคโนโลยีที่ก้าวหน้าภายใต้กระบวนทัศน์ Bitcoin ในบริบทของการปรับขนาด Bitcoin Layer2 ศึกษาการพิสูจน์ความถูกต้องและเทคโนโลยีการพิสูจน์การฉ้อโกงและสรุปเทคโนโลยีการแบ่งส่วนสคริปต์ที่เป็นเอกลักษณ์ภายใต้กระบวนทัศน์ Bitcoin
มีข้อ จํากัด มากมายภายใต้กระบวนทัศน์ Bitcoin แต่สามารถใช้วิธีการหรือเทคนิคที่ชาญฉลาดต่างๆเพื่อเอาชนะข้อ จํากัด เหล่านี้ได้ ตัวอย่างเช่นความมุ่งมั่นของบิตสามารถทะลุผ่านข้อ จํากัด แบบไร้สถานะ UTXO, taproot สามารถทําลายข้อ จํากัด ของพื้นที่สคริปต์เอาต์พุตตัวเชื่อมต่อสามารถทําลายข้อ จํากัด ของวิธีการใช้จ่าย UTXO และสัญญาสามารถทําลายข้อ จํากัด ก่อนลายเซ็นได้
บิทคอยน์ใช้โมเดล UTXO โดยที่แต่ละ UTXO จะถูกล็อคอยู่ในสคริปต์ล็อคที่กำหนดเงื่อนไขที่จำเป็นต้องตรงตามเพื่อใช้จ่าย UTXO นั้น สคริปต์ของบิทคอยน์มีข้อจำกัดดังต่อไปนี้:
ปัจจุบันสคริปต์ Bitcoin นั้นไร้สัญชาติอย่างสมบูรณ์ เมื่อรันสคริปต์ Bitcoin สภาพแวดล้อมการดําเนินการจะถูกรีเซ็ตหลังจากแต่ละสคริปต์ สิ่งนี้นําไปสู่การไร้ความสามารถของสคริปต์ Bitcoin เพื่อสนับสนุนสคริปต์ข้อ จํากัด 1 และ 2 ที่มีค่า x เท่ากัน อย่างไรก็ตามปัญหานี้สามารถหลีกเลี่ยงได้ด้วยวิธีการบางอย่างโดยมีแนวคิดหลักคือการลงนามในค่าไม่ทางใดก็ทางหนึ่ง หากสามารถสร้างลายเซ็นสําหรับค่าเป็นไปได้ที่จะบรรลุสคริปต์ Bitcoin ที่มีสถานะ นั่นคือโดยการตรวจสอบลายเซ็นของค่า x ในสคริปต์ 1 และ 2 สามารถบังคับใช้ได้ว่าใช้ค่า x เดียวกันในสคริปต์ทั้งสอง หากมีลายเซ็นที่ขัดแย้งกันซึ่งหมายความว่ามีการเซ็นชื่อค่าที่แตกต่างกันสองค่าสําหรับตัวแปรเดียวกัน x สามารถใช้บทลงโทษได้ โซลูชันนี้เรียกว่าความมุ่งมั่นเล็กน้อย
หลักการของการสมัครสมาชิกบิตคอยน์ค่อนข้างเรียบง่าย บิตหมายถึงการตั้งค่าค่าแฮชสองค่าที่แตกต่างกัน หรือ hash0 และ hash1 สำหรับแต่ละบิตในข้อความที่ต้องการลงลายมือ หากค่าบิตที่ต้องการลงลายมือเป็น 0 จะเปิดเผย preimage0 ของ hash0 หากค่าบิตที่ต้องการลงลายมือเป็น 1 จะเปิดเผย preimage1 ของ hash1
ยกตัวอย่างข้อความบิตเดียว m ∈{0,1} สคริปต์ปลดล็อกความมุ่งมั่นของบิตที่สอดคล้องกันเป็นเพียงภาพเบื้องต้นบางส่วน: หากค่าบิตเป็น 0 สคริปต์ปลดล็อคที่เกี่ยวข้องคือ preimage0—"0xfa7fa5b1dea37d71a0b841967f6a3b119dbea140"; ถ้าค่าบิตเป็น 1 สคริปต์ปลดล็อคที่เกี่ยวข้องคือ preimage1—"0x47c31e611a3bd2f3a7a42207613046703fa27496" ดังนั้นด้วยความมุ่งมั่นเล็กน้อยจึงเป็นไปได้ที่จะทําลายข้อ จํากัด แบบไร้สัญชาติของ UTXO และบรรลุสคริปต์ Bitcoin ที่มีสถานะทําให้คุณสมบัติใหม่ที่น่าสนใจต่างๆเป็นไปได้
OP_HASH160
OP_DUP
0xf592e757267b7f307324f1e78b34472f8b6f46f3> // นี่คือ hash1
OP_EQUAL
OP_DUP
OP_ROT
0x100b9f19ebd537fdc371fa1367d7ccc802dc2524> // นี่คือ hash0
OP_EQUAL
OP_BOOLOR
OP_VERIFY
// ตอนนี้ค่าการคาดการณ์บิตอยู่บนสแต็ก จะเป็น '0' หรือ '1'
ปัจจุบันมีการนำไปใช้งานอยู่ 2 รูปแบบของการตั้งค่าบิทคอยน์:
ในปัจจุบันไลบรารี BitVM2 ได้ทำการปรับใช้ลายเซ็นเจอร์ Winternitz โดยใช้ฟังก์ชันแฮช Blake3 ความยาวของลายเซ็นที่สอดคล้องกับบิตเดียวคือประมาณ 26 ไบต์ ดังนั้นจึงเห็นได้ว่าการนำเข้าสถานะผ่านการสัญญาบอกตัวบิตมีค่าใช้จ่ายสูง ดังนั้นในการปรับใช้ BitVM2 ข้อความจึงถูกแฮชไปก่อนเพื่อให้ได้ค่าแฮช 256 บิต และจึงทำการสัญญาบอกตัวบิตบนค่าแฮชเพื่อประหยัดค่าใช้จ่าย แทนที่จะทำการสัญญาบอกตัวบิตของข้อความเริ่มต้นที่ยาวกว่าโดยตรง
การอัปเกรดซอฟต์ฟอร์ก Bitcoin Taproot ที่เริ่มใช้งานในเดือนพฤศจิกายน พ.ศ. 2021 ประกอบด้วยข้อเสนอสามข้อ: ลายเซ็น Schnorr (BIP 340), Taproot (BIP 341) และ TapScript (BIP 342) มันทำให้มีชนิดธุรกรรมใหม่ - ธุรกรรม Pay-to-Taproot (P2TR) ธุรกรรม P2TR สามารถสร้างรูปแบบธุรกรรมที่เป็นส่วนตัวมากขึ้น ยืดหยุ่น และมีขนาดใหญ่ขึ้นโดยการรวมความสามารถของ Taproot, MAST (Merkel Abstract Syntax Tree) และลายเซ็น Schnorr
P2TR รองรับวิธีการใช้จ่ายสองวิธี: การใช้จ่ายตามเส้นทางคีย์หรือเส้นทางสคริปต์
ตามข้อกําหนดใน Taproot (BIP 341) เมื่อใช้จ่ายผ่านเส้นทางสคริปต์เส้นทาง Merkle ที่สอดคล้องกันต้องไม่เกินความยาวสูงสุด 128 ซึ่งหมายความว่าจํานวน tapleafs ใน taptree ต้องไม่เกิน 2 ^ 128 นับตั้งแต่การอัพเกรด SegWit ในปี 2017 เครือข่าย Bitcoin จะวัดขนาดบล็อกในหน่วยน้ําหนักโดยรองรับน้ําหนักสูงสุด 4 ล้านหน่วย (ประมาณ 4MB) เมื่อใช้เอาต์พุต P2TR ผ่านเส้นทางสคริปต์ จะต้องเปิดเผยสคริปต์ tapleaf เดียวซึ่งหมายความว่าบล็อกนั้นเต็มไปด้วยสคริปต์ tapleaf เดียว นี่หมายความว่าสําหรับธุรกรรม P2TR ขนาดสคริปต์ที่สอดคล้องกับแต่ละ tapleaf สามารถสูงสุดประมาณ 4MB อย่างไรก็ตามภายใต้นโยบายเริ่มต้นของ Bitcoin โหนดจํานวนมากส่งต่อธุรกรรมที่มีขนาดเล็กกว่า 400K เท่านั้น ธุรกรรมขนาดใหญ่จําเป็นต้องร่วมมือกับนักขุดเพื่อบรรจุ
พรีเมี่ยมพื้นที่สคริปต์ที่นําโดย Taproot ทําให้มีค่ามากขึ้นในการจําลองการดําเนินการเข้ารหัสเช่นการคูณและการแฮชโดยใช้ opcodes ที่มีอยู่
เมื่อสร้างการคํานวณที่ตรวจสอบได้ตาม P2TR ขนาดสคริปต์ที่สอดคล้องกันจะไม่ จํากัด อยู่ที่ข้อ จํากัด 4MB อีกต่อไป แต่สามารถแบ่งออกเป็นฟังก์ชันย่อยหลายฟังก์ชันที่กระจายอยู่ใน tapleafs หลายตัวจึงทําลายข้อ จํากัด พื้นที่สคริปต์ 4MB ในความเป็นจริงอัลกอริธึมตรวจสอบ Groth16 ที่ใช้ใน BitVM2 ปัจจุบันมีขนาดสูงสุด 2GB อย่างไรก็ตามสามารถแยกและกระจายไปทั่ว tapleafs ประมาณ 1,000 รายการและเมื่อรวมเข้ากับความมุ่งมั่นของบิตความสอดคล้องระหว่างอินพุตและเอาต์พุตของแต่ละฟังก์ชันย่อยสามารถถูก จํากัด ได้ทําให้มั่นใจได้ถึงความสมบูรณ์และความถูกต้องของการคํานวณทั้งหมด
ปัจจุบัน Bitcoin มีวิธีการใช้จ่ายแบบเนทีฟสองวิธีสําหรับ UTXO เดียว: การใช้จ่ายตามสคริปต์หรือโดยคีย์สาธารณะ ดังนั้นตราบใดที่ตรงตามลายเซ็นคีย์สาธารณะหรือเงื่อนไขสคริปต์ที่ถูกต้อง UTXO สามารถใช้ไปได้ สามารถใช้ UTXOs สองรายการได้อย่างอิสระ และสามารถเพิ่มข้อจํากัดเพื่อจํากัดสอง UTXOs ได้ ซึ่งหมายความว่าต้องปฏิบัติตามเงื่อนไขเพิ่มเติมเพื่อให้ใช้จ่ายได้
อย่างไรก็ตาม Burak ผู้ก่อตั้งโปรโตคอล Ark ใช้ธง SIGHASH อย่างชาญฉลาดเพื่อให้ได้เอาต์พุตตัวเชื่อมต่อ โดยเฉพาะอลิซสามารถสร้างลายเซ็นเพื่อส่ง BTC ของเธอไปให้บ๊อบได้ อย่างไรก็ตามเนื่องจากลายเซ็นสามารถยอมรับอินพุตได้หลายตัวอลิซจึงสามารถตั้งค่าลายเซ็นของเธอให้เป็นเงื่อนไข: ลายเซ็นนั้นใช้ได้สําหรับธุรกรรม Taketx หากและเฉพาะในกรณีที่ธุรกรรมนั้นใช้อินพุตที่สอง อินพุตที่สองเรียกว่าตัวเชื่อมต่อซึ่งเชื่อมโยง UTXO A และ UTXO B กล่าวอีกนัยหนึ่งธุรกรรม Taketx จะใช้ได้หาก Challengetx ไม่ได้ใช้ UTXO B เท่านั้น ดังนั้นโดยการทําลายเอาต์พุตตัวเชื่อมต่อประสิทธิภาพของธุรกรรม Taketx สามารถถูกบล็อกได้
รูปที่ 1: ภาพตัวอย่างการเชื่อมต่อของคอนเนกเตอร์
ในโปรโตคอล BitVM2 เอาต์พุตตัวเชื่อมต่อจะทําหน้าที่เป็น ... ฟังก์ชั่นอื่น ๆ เมื่อเอาต์พุตตัวเชื่อมต่อถูกใช้โดยธุรกรรมแล้ว ธุรกรรมอื่นจะไม่สามารถใช้จ่ายเพื่อให้แน่ใจว่ามีการใช้จ่ายแต่เพียงผู้เดียว ในการปรับใช้จริงเพื่อให้มีระยะเวลาตอบสนองความท้าทายจะมีการแนะนํา UTXOs เพิ่มเติมพร้อม timelock นอกจากนี้เอาต์พุตตัวเชื่อมต่อที่เกี่ยวข้องยังสามารถตั้งค่าด้วยกลยุทธ์การใช้จ่ายที่แตกต่างกันตามความจําเป็นเช่นการอนุญาตให้ฝ่ายใดฝ่ายหนึ่งใช้จ่ายในกรณีของธุรกรรมที่ท้าทายในขณะที่อนุญาตให้เฉพาะผู้ให้บริการใช้จ่ายหรืออนุญาตให้ทุกคนใช้จ่ายหลังจากหมดเวลาสําหรับธุรกรรมการตอบสนอง
ปัจจุบันสคริปต์ Bitcoin ส่วนใหญ่ จํากัด เงื่อนไขในการปลดล็อกโดยไม่ จํากัด วิธีการใช้ UTXO เพิ่มเติม นี่เป็นเพราะสคริปต์ Bitcoin ไม่สามารถอ่านเนื้อหาของธุรกรรมได้ซึ่งหมายความว่าพวกเขาไม่สามารถบรรลุการวิปัสสนาการทําธุรกรรมได้ หากสคริปต์ Bitcoin สามารถตรวจสอบเนื้อหาใด ๆ ของธุรกรรม (รวมถึงเอาต์พุต) ฟังก์ชันการทํางานของสัญญาสามารถรับรู้ได้
การปรับใช้สัญญาปัจจุบันสามารถแบ่งออกเป็นสองหมวดหมู่ได้:
ทั้งหลักฐานความถูกต้องและหลักฐานการฉ้อโกงสามารถใช้สําหรับการปรับขนาด Bitcoin L2 โดยมีความแตกต่างที่สําคัญแสดงในตารางที่ 2
ตาราง 2: การพิสูจน์ความถูกต้อง vs การพิสูจน์การฉ้อโกง
ขึ้นอยู่กับความมุ่งมั่นของบิต taproot การลงนามล่วงหน้าและเอาต์พุตตัวเชื่อมต่อสามารถสร้างหลักฐานการฉ้อโกงตาม Bitcoin ได้ ขึ้นอยู่กับ taproot หลักฐานความถูกต้องตาม Bitcoin ยังสามารถสร้างขึ้นได้โดยการแนะนํา opcodes สัญญาเช่น OP_CAT นอกจากนี้ขึ้นอยู่กับว่า Bob มีระบบการรับเข้าเรียนหรือไม่หลักฐานการฉ้อโกงสามารถแบ่งออกเป็นหลักฐานการฉ้อโกงที่ได้รับอนุญาตและหลักฐานการฉ้อโกงที่ไม่ได้รับอนุญาต ในการพิสูจน์การฉ้อโกงที่ได้รับอนุญาตเฉพาะกลุ่มเฉพาะเท่านั้นที่สามารถทําหน้าที่เป็น Bob เพื่อเริ่มต้นความท้าทายในขณะที่ในการพิสูจน์การฉ้อโกงที่ไม่ได้รับอนุญาตบุคคลที่สามสามารถทําหน้าที่เป็น Bob เพื่อเริ่มต้นความท้าทายได้ ความปลอดภัยของหลักฐานการฉ้อโกงที่ไม่ได้รับอนุญาตนั้นเหนือกว่าหลักฐานที่ได้รับอนุญาตซึ่งช่วยลดความเสี่ยงของการสมรู้ร่วมคิดระหว่างผู้เข้าร่วมที่ได้รับอนุญาต
ตามจํานวนการโต้ตอบที่ท้าทายระหว่างอลิซและบ๊อบหลักฐานการฉ้อโกงสามารถแบ่งออกเป็นหลักฐานการฉ้อโกงรอบเดียวและหลักฐานการฉ้อโกงหลายรอบดังแสดงในรูปที่ 2
รูปที่ 2: พิสูจน์การฉ้อโกงแบบเดียวกับพิสูจน์การฉ้อโกงหลายรอบ
ดังที่แสดงในตารางที่ 3 หลักฐานการทุจริตสามารถดําเนินการผ่านรูปแบบการโต้ตอบที่แตกต่างกันรวมถึงรูปแบบการโต้ตอบแบบรอบเดียวและรูปแบบการโต้ตอบหลายรอบ
ตาราง 3: ปฏิสัมพันธ์หนึ่งรอบ ปะทะ แบบหลายรอบ
ในแบบจำลองการปรับขนาด Layer2 ของ Bitcoin BitVM1 ใช้กลไกยืนยันการฉ้อโกงหลายรอบในขณะที่ BitVM2 ใช้กลไกยืนยันการฉ้อโกงในรอบเดียว และ bitcoin-circle stark ใช้การพิสูจน์ความถูกต้อง ในนี้ BitVM1 และ BitVM2 สามารถนำมาใช้ได้โดยไม่ต้องทำการปรับเปลี่ยนใด ๆ ในโปรโตคอล Bitcoin ในขณะที่ bitcoin-circle stark ต้องการแนะนำ opcode ใหม่ OP_CAT
สําหรับงานคํานวณส่วนใหญ่ Signet, testnet และ mainnet ของ Bitcoin ไม่สามารถแสดงสคริปต์ขนาด 4MB ได้อย่างสมบูรณ์ซึ่งจําเป็นต้องใช้เทคโนโลยีการแยกสคริปต์นั่นคือการแยกสคริปต์การคํานวณทั้งหมดออกเป็นชิ้นเล็กกว่า 4MB กระจายไปทั่ว tapleafs ต่างๆ
ดังที่แสดงในตารางที่ 3 หลักฐานการทุจริตหลายรอบเหมาะสําหรับสถานการณ์ที่มีความปรารถนาที่จะลดการคํานวณอนุญาโตตุลาการแบบ on-chain และ/หรือในกรณีที่ไม่สามารถระบุส่วนการคํานวณที่มีปัญหาได้ในขั้นตอนเดียว หลักฐานการทุจริตหลายรอบตามชื่อที่แนะนําต้องมีการโต้ตอบหลายรอบระหว่างผู้พิสูจน์และผู้ตรวจสอบเพื่อค้นหาส่วนการคํานวณที่มีปัญหาตามด้วยอนุญาโตตุลาการตามส่วนที่ระบุ
เอกสารไวท์เปเปอร์ BitVM รุ่นแรกของ Robin Linus (โดยทั่วไปเรียกว่า BitVM1) ใช้หลักฐานการฉ้อโกงหลายรอบ สมมติว่าแต่ละช่วงเวลาการท้าทายใช้เวลาหนึ่งสัปดาห์และใช้วิธีการค้นหาแบบไบนารีเพื่อค้นหาส่วนการคํานวณที่มีปัญหาระยะเวลาตอบสนองความท้าทายแบบ on-chain สําหรับ Groth16 Verifier อาจขยายได้ถึง 30 สัปดาห์ส่งผลให้ทันเวลาไม่ดี แม้ว่าปัจจุบันจะมีทีมวิจัยวิธีการค้นหา n-ary ที่มีประสิทธิภาพมากกว่าการค้นหาแบบไบนารี แต่ความตรงต่อเวลาของพวกเขายังคงต่ํากว่าอย่างมีนัยสําคัญเมื่อเทียบกับรอบ 2 สัปดาห์ในการพิสูจน์การฉ้อโกงรอบเดียว
ในปัจจุบัน multi-round fraud proofs ใน Bitcoin paradigm ใช้การท้าทายที่ได้รับอนุญาตในขณะที่ one-round fraud proofs ได้บรรลุวิธีการท้าทายที่ได้รับอนุญาตลดความเสี่ยงของการกล่าวหาระหว่างผู้เข้าร่วมและเพิ่มความปลอดภัย ในที่สุด Robin Linus ใช้ข้อได้เปรียบของ Taproot ให้เต็มที่เพื่อปรับปรุง BitVM1 ไม่เพียงทำให้จำนวนรอบการโต้ตอบลดลงเหลือแค่หนึ่งรอบ แต่วิธีการท้าทายยังถูกขยายไปสู่การเข้าถึงที่ได้รับอนุญาต แม้ว่าจะมีค่าคอมพิวเตชันการตัดสินในเครือข่ายเพิ่มขึ้น
ในโมเดลนี้ การยืนยันของหลอกโปรตรู้ควรจะสามารถทำได้ผ่านการโต้ตอบเพียงครั้งเดียวระหว่างผู้พิสูจน์และผู้ตรวจสอบ ผู้ตรวจสอบจำเป็นต้องเริ่มต้นคำถามครั้งเดียวและผู้พิสูจน์จำเป็นต้องตอบครั้งเดียวเท่านั้น ในการตอบคำถามนี้ ผู้พิสูจน์ต้องให้หลักฐานที่อ้างว่าการคำนวณของพวกเขาถูกต้อง หากผู้ตรวจสอบพบข้อขัดแย้งในหลักฐานนั้น คำถามจึงสำเร็จ; มิฉะนั้น มันล้มเหลว ลักษณะของหลอกโปรตรู้แบบโต้ตอบครั้งเดียวแสดงในตารางที่ 3
รูปที่ 3: การพิสูจน์ฉ้อโกงในรอบเดียว
ในวันที่ 15 สิงหาคม 2024 Robin Linus ได้เผยแพร่ BitVM2: Bridging Bitcoin to Second Layers กระดาษขาวทางเทคนิค ซึ่งนำมาใช้สร้างสะพาน跨เชนโยงโดยใช้เมธอดการพิสูจน์ปลอมโดยใช้รอบเดียวที่คล้ายกับที่แสดงในภาพที่ 3
OPCAT เป็นส่วนหนึ่งของภาษาสคริปต์ต้นฉบับเมื่อ Bitcoin ถูกเปิดตัว แต่ถูกปิดใช้งานในปี 2010 เนื่องจากช่องโหว่ด้านความปลอดภัย อย่างไรก็ตาม ชุมชน Bitcoin ได้พูดคุยกันเกี่ยวกับการเปิดใช้งานใหม่มาหลายปี ตอนนี้ OPCAT ได้รับหมายเลข 347 และได้เปิดใช้งานบน signet ของ Bitcoin แล้ว
ฟังก์ชันหลักของ OP_CAT คือการรวมสององค์ประกอบในสแต็กและผลักดันผลลัพธ์ที่ผสมกลับเข้าสู่สแต็ก ฟังก์ชันนี้เปิดโอกาสให้สัญญาและ STARK Verifiers บน Bitcoin ได้
แม้ว่าโหลดการคํานวณที่จําเป็นในการเรียกใช้อัลกอริธึมตัวตรวจสอบที่เกี่ยวข้องเพื่อตรวจสอบการพิสูจน์หลังจากหลักฐาน SNARK / STARK มีขนาดเล็กกว่าที่จําเป็นในการเรียกใช้การคํานวณดั้งเดิมโดยตรง f แต่จํานวนสคริปต์ที่จําเป็นเมื่อแปลงเพื่อใช้อัลกอริทึมผู้ตรวจสอบในสคริปต์ Bitcoin ยังคงมหาศาล ปัจจุบันตาม opcodes Bitcoin ที่มีอยู่ขนาดสคริปต์ตรวจสอบ Groth16 ที่ปรับให้เหมาะสมและขนาดสคริปต์ Fflonk verifier ยังคงมากกว่า 2GB อย่างไรก็ตามขนาดของบล็อก Bitcoin เดียวมีเพียง 4MB ทําให้ไม่สามารถเรียกใช้สคริปต์ตรวจสอบทั้งหมดภายในบล็อกเดียว อย่างไรก็ตามตั้งแต่การอัปเกรด Taproot Bitcoin รองรับการดําเนินการสคริปต์โดย tapleaf ทําให้สคริปต์ตรวจสอบสามารถแบ่งออกเป็นหลายชิ้นโดยแต่ละชิ้นทําหน้าที่เป็น tapleaf เพื่อสร้าง taptree ความสอดคล้องของค่าระหว่างชิ้นสามารถมั่นใจได้ผ่านความมุ่งมั่นเล็กน้อย
ในขณะที่มีสัญญา OP_CAT อยู่ ตัวตรวจสอบ STARK สามารถแบ่งเป็นธุรกรรมมาตรฐานหลายอย่างที่เล็กกว่า 400KB อนุญาตให้การตรวจสอบความถูกต้องของ STARK ทั้งหมดเสร็จสมบูรณ์โดยไม่จำเป็นต้องร่วมมือกับนักขุด
ส่วนนี้เน้นทางเทคโนโลยีการแบ่งแยกที่เกี่ยวข้องของสคริปต์บิทคอยน์ภายใต้เงื่อนไขที่มีอยู่โดยไม่มีการนำเสนอหรือเปิดใช้งานโคดด้านใหม่ใด ๆ
เมื่อทำการแยกสคริปต์ ต้องมีการดูแลมิติชนิดต่าง ๆ ของข้อมูลต่อไปนี้ให้สมดุล:
ปัจจุบันวิธีการแยกสคริปต์สามารถแบ่งออกเป็นสามประเภทหลักดังต่อไปนี้:
ตัวอย่างเช่นหลังจากการเพิ่มประสิทธิภาพหลายรอบขนาดสคริปต์ของตัวตรวจสอบ Groth16 ลดลงจากประมาณ 7GB เหลือประมาณ 1.26GB นอกเหนือจากการเพิ่มประสิทธิภาพการคํานวณโดยรวมแล้วแต่ละชิ้นยังสามารถปรับให้เหมาะสมเป็นรายบุคคลเพื่อใช้พื้นที่สแต็คได้อย่างเต็มที่ ตัวอย่างเช่นด้วยการแนะนําอัลกอริธึมที่ใช้ตารางการค้นหาที่ดีขึ้นและการโหลดและยกเลิกการโหลดตารางการค้นหาแบบไดนามิกขนาดสคริปต์ของแต่ละชิ้นสามารถลดลงได้อีก
ค่าใช้จ่ายในการคำนวณและสภาพแวดล้อมในขณะที่ใช้ภาษาโปรแกรม web2 แตกต่างอย่างสิ้นเชิงจากของสคริปต์ Bitcoin ดังนั้นการแปลงซอร์สโค้ดที่มีอยู่สำหรับอัลกอริทึมต่างๆ เข้าสู่สคริปต์ Bitcoin โดยตรงไม่สามารถทำได้โดยง่ายๆ ดังนั้น จำเป็นต้องพิจารณาการปรับปรุงที่เฉพาะเจาะจงต่อสถานการณ์ของ Bitcoin
บทความนี้ก่อนอื่นจะแนะนําข้อ จํากัด ของสคริปต์ Bitcoin และกล่าวถึงการใช้ข้อผูกพัน Bitcoin เพื่อเอาชนะข้อ จํากัด แบบไร้สถานะ UTXO โดยใช้ Taproot เพื่อทําลายข้อ จํากัด ของพื้นที่สคริปต์โดยใช้เอาต์พุตตัวเชื่อมต่อเพื่อหลีกเลี่ยงข้อ จํากัด วิธีการใช้จ่าย UTXO และใช้สัญญาเพื่อเอาชนะข้อ จํากัด การลงนามล่วงหน้า จากนั้นจะให้ภาพรวมที่ครอบคลุมและสรุปลักษณะของการพิสูจน์การฉ้อโกงและหลักฐานความถูกต้องคุณสมบัติของหลักฐานการฉ้อโกงที่ได้รับอนุญาตและไม่ได้รับอนุญาตความแตกต่างระหว่างการพิสูจน์การฉ้อโกงแบบรอบเดียวและหลายรอบและเทคโนโลยีการแยกสคริปต์ Bitcoin
สำหรับอัลกอริทึม f ผู้ร่วมมือที่ไม่เชื่อถือกันสองคน คือ Alice และ Bob สามารถสร้างความเชื่อถือได้ตามวิธีต่อไปนี้:
สำหรับ 2, 3 และ 4 ดังกล่าว ให้ x เป็นธุรกรรม Layer2 และสถานะเริ่มต้น f เป็นโปรแกรมความเห็นชั้น Layer2 และ y เป็นสถานะสิ้นสุดของการทำธุรกรรมที่สอดคล้องกับการขยายมิติ Layer2 บนบล็อกเชน
ตาราง 1: วิธีการสร้างความเชื่อมั่น
นอกจากนี้ มีสิ่งที่สำคัญที่ต้องระบุ:
ปัจจุบันได้รับประโยชน์จากสัญญาอัจฉริยะที่สมบูรณ์ของ Turing ของ Solidity การพิสูจน์การฉ้อโกงและเทคโนโลยีการพิสูจน์ความถูกต้องถูกนํามาใช้กันอย่างแพร่หลายในการปรับขนาด Ethereum Layer2 อย่างไรก็ตามภายใต้กระบวนทัศน์ Bitcoin ซึ่งถูก จํากัด โดยฟังก์ชัน opcode ที่ จํากัด ของ Bitcoin องค์ประกอบสแต็ค 1000 และข้อ จํากัด อื่น ๆ การประยุกต์ใช้เทคโนโลยีเหล่านี้ยังอยู่ในขั้นตอนการสํารวจ บทความนี้สรุปข้อ จํากัด และเทคโนโลยีที่ก้าวหน้าภายใต้กระบวนทัศน์ Bitcoin ในบริบทของการปรับขนาด Bitcoin Layer2 ศึกษาการพิสูจน์ความถูกต้องและเทคโนโลยีการพิสูจน์การฉ้อโกงและสรุปเทคโนโลยีการแบ่งส่วนสคริปต์ที่เป็นเอกลักษณ์ภายใต้กระบวนทัศน์ Bitcoin
มีข้อ จํากัด มากมายภายใต้กระบวนทัศน์ Bitcoin แต่สามารถใช้วิธีการหรือเทคนิคที่ชาญฉลาดต่างๆเพื่อเอาชนะข้อ จํากัด เหล่านี้ได้ ตัวอย่างเช่นความมุ่งมั่นของบิตสามารถทะลุผ่านข้อ จํากัด แบบไร้สถานะ UTXO, taproot สามารถทําลายข้อ จํากัด ของพื้นที่สคริปต์เอาต์พุตตัวเชื่อมต่อสามารถทําลายข้อ จํากัด ของวิธีการใช้จ่าย UTXO และสัญญาสามารถทําลายข้อ จํากัด ก่อนลายเซ็นได้
บิทคอยน์ใช้โมเดล UTXO โดยที่แต่ละ UTXO จะถูกล็อคอยู่ในสคริปต์ล็อคที่กำหนดเงื่อนไขที่จำเป็นต้องตรงตามเพื่อใช้จ่าย UTXO นั้น สคริปต์ของบิทคอยน์มีข้อจำกัดดังต่อไปนี้:
ปัจจุบันสคริปต์ Bitcoin นั้นไร้สัญชาติอย่างสมบูรณ์ เมื่อรันสคริปต์ Bitcoin สภาพแวดล้อมการดําเนินการจะถูกรีเซ็ตหลังจากแต่ละสคริปต์ สิ่งนี้นําไปสู่การไร้ความสามารถของสคริปต์ Bitcoin เพื่อสนับสนุนสคริปต์ข้อ จํากัด 1 และ 2 ที่มีค่า x เท่ากัน อย่างไรก็ตามปัญหานี้สามารถหลีกเลี่ยงได้ด้วยวิธีการบางอย่างโดยมีแนวคิดหลักคือการลงนามในค่าไม่ทางใดก็ทางหนึ่ง หากสามารถสร้างลายเซ็นสําหรับค่าเป็นไปได้ที่จะบรรลุสคริปต์ Bitcoin ที่มีสถานะ นั่นคือโดยการตรวจสอบลายเซ็นของค่า x ในสคริปต์ 1 และ 2 สามารถบังคับใช้ได้ว่าใช้ค่า x เดียวกันในสคริปต์ทั้งสอง หากมีลายเซ็นที่ขัดแย้งกันซึ่งหมายความว่ามีการเซ็นชื่อค่าที่แตกต่างกันสองค่าสําหรับตัวแปรเดียวกัน x สามารถใช้บทลงโทษได้ โซลูชันนี้เรียกว่าความมุ่งมั่นเล็กน้อย
หลักการของการสมัครสมาชิกบิตคอยน์ค่อนข้างเรียบง่าย บิตหมายถึงการตั้งค่าค่าแฮชสองค่าที่แตกต่างกัน หรือ hash0 และ hash1 สำหรับแต่ละบิตในข้อความที่ต้องการลงลายมือ หากค่าบิตที่ต้องการลงลายมือเป็น 0 จะเปิดเผย preimage0 ของ hash0 หากค่าบิตที่ต้องการลงลายมือเป็น 1 จะเปิดเผย preimage1 ของ hash1
ยกตัวอย่างข้อความบิตเดียว m ∈{0,1} สคริปต์ปลดล็อกความมุ่งมั่นของบิตที่สอดคล้องกันเป็นเพียงภาพเบื้องต้นบางส่วน: หากค่าบิตเป็น 0 สคริปต์ปลดล็อคที่เกี่ยวข้องคือ preimage0—"0xfa7fa5b1dea37d71a0b841967f6a3b119dbea140"; ถ้าค่าบิตเป็น 1 สคริปต์ปลดล็อคที่เกี่ยวข้องคือ preimage1—"0x47c31e611a3bd2f3a7a42207613046703fa27496" ดังนั้นด้วยความมุ่งมั่นเล็กน้อยจึงเป็นไปได้ที่จะทําลายข้อ จํากัด แบบไร้สัญชาติของ UTXO และบรรลุสคริปต์ Bitcoin ที่มีสถานะทําให้คุณสมบัติใหม่ที่น่าสนใจต่างๆเป็นไปได้
OP_HASH160
OP_DUP
0xf592e757267b7f307324f1e78b34472f8b6f46f3> // นี่คือ hash1
OP_EQUAL
OP_DUP
OP_ROT
0x100b9f19ebd537fdc371fa1367d7ccc802dc2524> // นี่คือ hash0
OP_EQUAL
OP_BOOLOR
OP_VERIFY
// ตอนนี้ค่าการคาดการณ์บิตอยู่บนสแต็ก จะเป็น '0' หรือ '1'
ปัจจุบันมีการนำไปใช้งานอยู่ 2 รูปแบบของการตั้งค่าบิทคอยน์:
ในปัจจุบันไลบรารี BitVM2 ได้ทำการปรับใช้ลายเซ็นเจอร์ Winternitz โดยใช้ฟังก์ชันแฮช Blake3 ความยาวของลายเซ็นที่สอดคล้องกับบิตเดียวคือประมาณ 26 ไบต์ ดังนั้นจึงเห็นได้ว่าการนำเข้าสถานะผ่านการสัญญาบอกตัวบิตมีค่าใช้จ่ายสูง ดังนั้นในการปรับใช้ BitVM2 ข้อความจึงถูกแฮชไปก่อนเพื่อให้ได้ค่าแฮช 256 บิต และจึงทำการสัญญาบอกตัวบิตบนค่าแฮชเพื่อประหยัดค่าใช้จ่าย แทนที่จะทำการสัญญาบอกตัวบิตของข้อความเริ่มต้นที่ยาวกว่าโดยตรง
การอัปเกรดซอฟต์ฟอร์ก Bitcoin Taproot ที่เริ่มใช้งานในเดือนพฤศจิกายน พ.ศ. 2021 ประกอบด้วยข้อเสนอสามข้อ: ลายเซ็น Schnorr (BIP 340), Taproot (BIP 341) และ TapScript (BIP 342) มันทำให้มีชนิดธุรกรรมใหม่ - ธุรกรรม Pay-to-Taproot (P2TR) ธุรกรรม P2TR สามารถสร้างรูปแบบธุรกรรมที่เป็นส่วนตัวมากขึ้น ยืดหยุ่น และมีขนาดใหญ่ขึ้นโดยการรวมความสามารถของ Taproot, MAST (Merkel Abstract Syntax Tree) และลายเซ็น Schnorr
P2TR รองรับวิธีการใช้จ่ายสองวิธี: การใช้จ่ายตามเส้นทางคีย์หรือเส้นทางสคริปต์
ตามข้อกําหนดใน Taproot (BIP 341) เมื่อใช้จ่ายผ่านเส้นทางสคริปต์เส้นทาง Merkle ที่สอดคล้องกันต้องไม่เกินความยาวสูงสุด 128 ซึ่งหมายความว่าจํานวน tapleafs ใน taptree ต้องไม่เกิน 2 ^ 128 นับตั้งแต่การอัพเกรด SegWit ในปี 2017 เครือข่าย Bitcoin จะวัดขนาดบล็อกในหน่วยน้ําหนักโดยรองรับน้ําหนักสูงสุด 4 ล้านหน่วย (ประมาณ 4MB) เมื่อใช้เอาต์พุต P2TR ผ่านเส้นทางสคริปต์ จะต้องเปิดเผยสคริปต์ tapleaf เดียวซึ่งหมายความว่าบล็อกนั้นเต็มไปด้วยสคริปต์ tapleaf เดียว นี่หมายความว่าสําหรับธุรกรรม P2TR ขนาดสคริปต์ที่สอดคล้องกับแต่ละ tapleaf สามารถสูงสุดประมาณ 4MB อย่างไรก็ตามภายใต้นโยบายเริ่มต้นของ Bitcoin โหนดจํานวนมากส่งต่อธุรกรรมที่มีขนาดเล็กกว่า 400K เท่านั้น ธุรกรรมขนาดใหญ่จําเป็นต้องร่วมมือกับนักขุดเพื่อบรรจุ
พรีเมี่ยมพื้นที่สคริปต์ที่นําโดย Taproot ทําให้มีค่ามากขึ้นในการจําลองการดําเนินการเข้ารหัสเช่นการคูณและการแฮชโดยใช้ opcodes ที่มีอยู่
เมื่อสร้างการคํานวณที่ตรวจสอบได้ตาม P2TR ขนาดสคริปต์ที่สอดคล้องกันจะไม่ จํากัด อยู่ที่ข้อ จํากัด 4MB อีกต่อไป แต่สามารถแบ่งออกเป็นฟังก์ชันย่อยหลายฟังก์ชันที่กระจายอยู่ใน tapleafs หลายตัวจึงทําลายข้อ จํากัด พื้นที่สคริปต์ 4MB ในความเป็นจริงอัลกอริธึมตรวจสอบ Groth16 ที่ใช้ใน BitVM2 ปัจจุบันมีขนาดสูงสุด 2GB อย่างไรก็ตามสามารถแยกและกระจายไปทั่ว tapleafs ประมาณ 1,000 รายการและเมื่อรวมเข้ากับความมุ่งมั่นของบิตความสอดคล้องระหว่างอินพุตและเอาต์พุตของแต่ละฟังก์ชันย่อยสามารถถูก จํากัด ได้ทําให้มั่นใจได้ถึงความสมบูรณ์และความถูกต้องของการคํานวณทั้งหมด
ปัจจุบัน Bitcoin มีวิธีการใช้จ่ายแบบเนทีฟสองวิธีสําหรับ UTXO เดียว: การใช้จ่ายตามสคริปต์หรือโดยคีย์สาธารณะ ดังนั้นตราบใดที่ตรงตามลายเซ็นคีย์สาธารณะหรือเงื่อนไขสคริปต์ที่ถูกต้อง UTXO สามารถใช้ไปได้ สามารถใช้ UTXOs สองรายการได้อย่างอิสระ และสามารถเพิ่มข้อจํากัดเพื่อจํากัดสอง UTXOs ได้ ซึ่งหมายความว่าต้องปฏิบัติตามเงื่อนไขเพิ่มเติมเพื่อให้ใช้จ่ายได้
อย่างไรก็ตาม Burak ผู้ก่อตั้งโปรโตคอล Ark ใช้ธง SIGHASH อย่างชาญฉลาดเพื่อให้ได้เอาต์พุตตัวเชื่อมต่อ โดยเฉพาะอลิซสามารถสร้างลายเซ็นเพื่อส่ง BTC ของเธอไปให้บ๊อบได้ อย่างไรก็ตามเนื่องจากลายเซ็นสามารถยอมรับอินพุตได้หลายตัวอลิซจึงสามารถตั้งค่าลายเซ็นของเธอให้เป็นเงื่อนไข: ลายเซ็นนั้นใช้ได้สําหรับธุรกรรม Taketx หากและเฉพาะในกรณีที่ธุรกรรมนั้นใช้อินพุตที่สอง อินพุตที่สองเรียกว่าตัวเชื่อมต่อซึ่งเชื่อมโยง UTXO A และ UTXO B กล่าวอีกนัยหนึ่งธุรกรรม Taketx จะใช้ได้หาก Challengetx ไม่ได้ใช้ UTXO B เท่านั้น ดังนั้นโดยการทําลายเอาต์พุตตัวเชื่อมต่อประสิทธิภาพของธุรกรรม Taketx สามารถถูกบล็อกได้
รูปที่ 1: ภาพตัวอย่างการเชื่อมต่อของคอนเนกเตอร์
ในโปรโตคอล BitVM2 เอาต์พุตตัวเชื่อมต่อจะทําหน้าที่เป็น ... ฟังก์ชั่นอื่น ๆ เมื่อเอาต์พุตตัวเชื่อมต่อถูกใช้โดยธุรกรรมแล้ว ธุรกรรมอื่นจะไม่สามารถใช้จ่ายเพื่อให้แน่ใจว่ามีการใช้จ่ายแต่เพียงผู้เดียว ในการปรับใช้จริงเพื่อให้มีระยะเวลาตอบสนองความท้าทายจะมีการแนะนํา UTXOs เพิ่มเติมพร้อม timelock นอกจากนี้เอาต์พุตตัวเชื่อมต่อที่เกี่ยวข้องยังสามารถตั้งค่าด้วยกลยุทธ์การใช้จ่ายที่แตกต่างกันตามความจําเป็นเช่นการอนุญาตให้ฝ่ายใดฝ่ายหนึ่งใช้จ่ายในกรณีของธุรกรรมที่ท้าทายในขณะที่อนุญาตให้เฉพาะผู้ให้บริการใช้จ่ายหรืออนุญาตให้ทุกคนใช้จ่ายหลังจากหมดเวลาสําหรับธุรกรรมการตอบสนอง
ปัจจุบันสคริปต์ Bitcoin ส่วนใหญ่ จํากัด เงื่อนไขในการปลดล็อกโดยไม่ จํากัด วิธีการใช้ UTXO เพิ่มเติม นี่เป็นเพราะสคริปต์ Bitcoin ไม่สามารถอ่านเนื้อหาของธุรกรรมได้ซึ่งหมายความว่าพวกเขาไม่สามารถบรรลุการวิปัสสนาการทําธุรกรรมได้ หากสคริปต์ Bitcoin สามารถตรวจสอบเนื้อหาใด ๆ ของธุรกรรม (รวมถึงเอาต์พุต) ฟังก์ชันการทํางานของสัญญาสามารถรับรู้ได้
การปรับใช้สัญญาปัจจุบันสามารถแบ่งออกเป็นสองหมวดหมู่ได้:
ทั้งหลักฐานความถูกต้องและหลักฐานการฉ้อโกงสามารถใช้สําหรับการปรับขนาด Bitcoin L2 โดยมีความแตกต่างที่สําคัญแสดงในตารางที่ 2
ตาราง 2: การพิสูจน์ความถูกต้อง vs การพิสูจน์การฉ้อโกง
ขึ้นอยู่กับความมุ่งมั่นของบิต taproot การลงนามล่วงหน้าและเอาต์พุตตัวเชื่อมต่อสามารถสร้างหลักฐานการฉ้อโกงตาม Bitcoin ได้ ขึ้นอยู่กับ taproot หลักฐานความถูกต้องตาม Bitcoin ยังสามารถสร้างขึ้นได้โดยการแนะนํา opcodes สัญญาเช่น OP_CAT นอกจากนี้ขึ้นอยู่กับว่า Bob มีระบบการรับเข้าเรียนหรือไม่หลักฐานการฉ้อโกงสามารถแบ่งออกเป็นหลักฐานการฉ้อโกงที่ได้รับอนุญาตและหลักฐานการฉ้อโกงที่ไม่ได้รับอนุญาต ในการพิสูจน์การฉ้อโกงที่ได้รับอนุญาตเฉพาะกลุ่มเฉพาะเท่านั้นที่สามารถทําหน้าที่เป็น Bob เพื่อเริ่มต้นความท้าทายในขณะที่ในการพิสูจน์การฉ้อโกงที่ไม่ได้รับอนุญาตบุคคลที่สามสามารถทําหน้าที่เป็น Bob เพื่อเริ่มต้นความท้าทายได้ ความปลอดภัยของหลักฐานการฉ้อโกงที่ไม่ได้รับอนุญาตนั้นเหนือกว่าหลักฐานที่ได้รับอนุญาตซึ่งช่วยลดความเสี่ยงของการสมรู้ร่วมคิดระหว่างผู้เข้าร่วมที่ได้รับอนุญาต
ตามจํานวนการโต้ตอบที่ท้าทายระหว่างอลิซและบ๊อบหลักฐานการฉ้อโกงสามารถแบ่งออกเป็นหลักฐานการฉ้อโกงรอบเดียวและหลักฐานการฉ้อโกงหลายรอบดังแสดงในรูปที่ 2
รูปที่ 2: พิสูจน์การฉ้อโกงแบบเดียวกับพิสูจน์การฉ้อโกงหลายรอบ
ดังที่แสดงในตารางที่ 3 หลักฐานการทุจริตสามารถดําเนินการผ่านรูปแบบการโต้ตอบที่แตกต่างกันรวมถึงรูปแบบการโต้ตอบแบบรอบเดียวและรูปแบบการโต้ตอบหลายรอบ
ตาราง 3: ปฏิสัมพันธ์หนึ่งรอบ ปะทะ แบบหลายรอบ
ในแบบจำลองการปรับขนาด Layer2 ของ Bitcoin BitVM1 ใช้กลไกยืนยันการฉ้อโกงหลายรอบในขณะที่ BitVM2 ใช้กลไกยืนยันการฉ้อโกงในรอบเดียว และ bitcoin-circle stark ใช้การพิสูจน์ความถูกต้อง ในนี้ BitVM1 และ BitVM2 สามารถนำมาใช้ได้โดยไม่ต้องทำการปรับเปลี่ยนใด ๆ ในโปรโตคอล Bitcoin ในขณะที่ bitcoin-circle stark ต้องการแนะนำ opcode ใหม่ OP_CAT
สําหรับงานคํานวณส่วนใหญ่ Signet, testnet และ mainnet ของ Bitcoin ไม่สามารถแสดงสคริปต์ขนาด 4MB ได้อย่างสมบูรณ์ซึ่งจําเป็นต้องใช้เทคโนโลยีการแยกสคริปต์นั่นคือการแยกสคริปต์การคํานวณทั้งหมดออกเป็นชิ้นเล็กกว่า 4MB กระจายไปทั่ว tapleafs ต่างๆ
ดังที่แสดงในตารางที่ 3 หลักฐานการทุจริตหลายรอบเหมาะสําหรับสถานการณ์ที่มีความปรารถนาที่จะลดการคํานวณอนุญาโตตุลาการแบบ on-chain และ/หรือในกรณีที่ไม่สามารถระบุส่วนการคํานวณที่มีปัญหาได้ในขั้นตอนเดียว หลักฐานการทุจริตหลายรอบตามชื่อที่แนะนําต้องมีการโต้ตอบหลายรอบระหว่างผู้พิสูจน์และผู้ตรวจสอบเพื่อค้นหาส่วนการคํานวณที่มีปัญหาตามด้วยอนุญาโตตุลาการตามส่วนที่ระบุ
เอกสารไวท์เปเปอร์ BitVM รุ่นแรกของ Robin Linus (โดยทั่วไปเรียกว่า BitVM1) ใช้หลักฐานการฉ้อโกงหลายรอบ สมมติว่าแต่ละช่วงเวลาการท้าทายใช้เวลาหนึ่งสัปดาห์และใช้วิธีการค้นหาแบบไบนารีเพื่อค้นหาส่วนการคํานวณที่มีปัญหาระยะเวลาตอบสนองความท้าทายแบบ on-chain สําหรับ Groth16 Verifier อาจขยายได้ถึง 30 สัปดาห์ส่งผลให้ทันเวลาไม่ดี แม้ว่าปัจจุบันจะมีทีมวิจัยวิธีการค้นหา n-ary ที่มีประสิทธิภาพมากกว่าการค้นหาแบบไบนารี แต่ความตรงต่อเวลาของพวกเขายังคงต่ํากว่าอย่างมีนัยสําคัญเมื่อเทียบกับรอบ 2 สัปดาห์ในการพิสูจน์การฉ้อโกงรอบเดียว
ในปัจจุบัน multi-round fraud proofs ใน Bitcoin paradigm ใช้การท้าทายที่ได้รับอนุญาตในขณะที่ one-round fraud proofs ได้บรรลุวิธีการท้าทายที่ได้รับอนุญาตลดความเสี่ยงของการกล่าวหาระหว่างผู้เข้าร่วมและเพิ่มความปลอดภัย ในที่สุด Robin Linus ใช้ข้อได้เปรียบของ Taproot ให้เต็มที่เพื่อปรับปรุง BitVM1 ไม่เพียงทำให้จำนวนรอบการโต้ตอบลดลงเหลือแค่หนึ่งรอบ แต่วิธีการท้าทายยังถูกขยายไปสู่การเข้าถึงที่ได้รับอนุญาต แม้ว่าจะมีค่าคอมพิวเตชันการตัดสินในเครือข่ายเพิ่มขึ้น
ในโมเดลนี้ การยืนยันของหลอกโปรตรู้ควรจะสามารถทำได้ผ่านการโต้ตอบเพียงครั้งเดียวระหว่างผู้พิสูจน์และผู้ตรวจสอบ ผู้ตรวจสอบจำเป็นต้องเริ่มต้นคำถามครั้งเดียวและผู้พิสูจน์จำเป็นต้องตอบครั้งเดียวเท่านั้น ในการตอบคำถามนี้ ผู้พิสูจน์ต้องให้หลักฐานที่อ้างว่าการคำนวณของพวกเขาถูกต้อง หากผู้ตรวจสอบพบข้อขัดแย้งในหลักฐานนั้น คำถามจึงสำเร็จ; มิฉะนั้น มันล้มเหลว ลักษณะของหลอกโปรตรู้แบบโต้ตอบครั้งเดียวแสดงในตารางที่ 3
รูปที่ 3: การพิสูจน์ฉ้อโกงในรอบเดียว
ในวันที่ 15 สิงหาคม 2024 Robin Linus ได้เผยแพร่ BitVM2: Bridging Bitcoin to Second Layers กระดาษขาวทางเทคนิค ซึ่งนำมาใช้สร้างสะพาน跨เชนโยงโดยใช้เมธอดการพิสูจน์ปลอมโดยใช้รอบเดียวที่คล้ายกับที่แสดงในภาพที่ 3
OPCAT เป็นส่วนหนึ่งของภาษาสคริปต์ต้นฉบับเมื่อ Bitcoin ถูกเปิดตัว แต่ถูกปิดใช้งานในปี 2010 เนื่องจากช่องโหว่ด้านความปลอดภัย อย่างไรก็ตาม ชุมชน Bitcoin ได้พูดคุยกันเกี่ยวกับการเปิดใช้งานใหม่มาหลายปี ตอนนี้ OPCAT ได้รับหมายเลข 347 และได้เปิดใช้งานบน signet ของ Bitcoin แล้ว
ฟังก์ชันหลักของ OP_CAT คือการรวมสององค์ประกอบในสแต็กและผลักดันผลลัพธ์ที่ผสมกลับเข้าสู่สแต็ก ฟังก์ชันนี้เปิดโอกาสให้สัญญาและ STARK Verifiers บน Bitcoin ได้
แม้ว่าโหลดการคํานวณที่จําเป็นในการเรียกใช้อัลกอริธึมตัวตรวจสอบที่เกี่ยวข้องเพื่อตรวจสอบการพิสูจน์หลังจากหลักฐาน SNARK / STARK มีขนาดเล็กกว่าที่จําเป็นในการเรียกใช้การคํานวณดั้งเดิมโดยตรง f แต่จํานวนสคริปต์ที่จําเป็นเมื่อแปลงเพื่อใช้อัลกอริทึมผู้ตรวจสอบในสคริปต์ Bitcoin ยังคงมหาศาล ปัจจุบันตาม opcodes Bitcoin ที่มีอยู่ขนาดสคริปต์ตรวจสอบ Groth16 ที่ปรับให้เหมาะสมและขนาดสคริปต์ Fflonk verifier ยังคงมากกว่า 2GB อย่างไรก็ตามขนาดของบล็อก Bitcoin เดียวมีเพียง 4MB ทําให้ไม่สามารถเรียกใช้สคริปต์ตรวจสอบทั้งหมดภายในบล็อกเดียว อย่างไรก็ตามตั้งแต่การอัปเกรด Taproot Bitcoin รองรับการดําเนินการสคริปต์โดย tapleaf ทําให้สคริปต์ตรวจสอบสามารถแบ่งออกเป็นหลายชิ้นโดยแต่ละชิ้นทําหน้าที่เป็น tapleaf เพื่อสร้าง taptree ความสอดคล้องของค่าระหว่างชิ้นสามารถมั่นใจได้ผ่านความมุ่งมั่นเล็กน้อย
ในขณะที่มีสัญญา OP_CAT อยู่ ตัวตรวจสอบ STARK สามารถแบ่งเป็นธุรกรรมมาตรฐานหลายอย่างที่เล็กกว่า 400KB อนุญาตให้การตรวจสอบความถูกต้องของ STARK ทั้งหมดเสร็จสมบูรณ์โดยไม่จำเป็นต้องร่วมมือกับนักขุด
ส่วนนี้เน้นทางเทคโนโลยีการแบ่งแยกที่เกี่ยวข้องของสคริปต์บิทคอยน์ภายใต้เงื่อนไขที่มีอยู่โดยไม่มีการนำเสนอหรือเปิดใช้งานโคดด้านใหม่ใด ๆ
เมื่อทำการแยกสคริปต์ ต้องมีการดูแลมิติชนิดต่าง ๆ ของข้อมูลต่อไปนี้ให้สมดุล:
ปัจจุบันวิธีการแยกสคริปต์สามารถแบ่งออกเป็นสามประเภทหลักดังต่อไปนี้:
ตัวอย่างเช่นหลังจากการเพิ่มประสิทธิภาพหลายรอบขนาดสคริปต์ของตัวตรวจสอบ Groth16 ลดลงจากประมาณ 7GB เหลือประมาณ 1.26GB นอกเหนือจากการเพิ่มประสิทธิภาพการคํานวณโดยรวมแล้วแต่ละชิ้นยังสามารถปรับให้เหมาะสมเป็นรายบุคคลเพื่อใช้พื้นที่สแต็คได้อย่างเต็มที่ ตัวอย่างเช่นด้วยการแนะนําอัลกอริธึมที่ใช้ตารางการค้นหาที่ดีขึ้นและการโหลดและยกเลิกการโหลดตารางการค้นหาแบบไดนามิกขนาดสคริปต์ของแต่ละชิ้นสามารถลดลงได้อีก
ค่าใช้จ่ายในการคำนวณและสภาพแวดล้อมในขณะที่ใช้ภาษาโปรแกรม web2 แตกต่างอย่างสิ้นเชิงจากของสคริปต์ Bitcoin ดังนั้นการแปลงซอร์สโค้ดที่มีอยู่สำหรับอัลกอริทึมต่างๆ เข้าสู่สคริปต์ Bitcoin โดยตรงไม่สามารถทำได้โดยง่ายๆ ดังนั้น จำเป็นต้องพิจารณาการปรับปรุงที่เฉพาะเจาะจงต่อสถานการณ์ของ Bitcoin
บทความนี้ก่อนอื่นจะแนะนําข้อ จํากัด ของสคริปต์ Bitcoin และกล่าวถึงการใช้ข้อผูกพัน Bitcoin เพื่อเอาชนะข้อ จํากัด แบบไร้สถานะ UTXO โดยใช้ Taproot เพื่อทําลายข้อ จํากัด ของพื้นที่สคริปต์โดยใช้เอาต์พุตตัวเชื่อมต่อเพื่อหลีกเลี่ยงข้อ จํากัด วิธีการใช้จ่าย UTXO และใช้สัญญาเพื่อเอาชนะข้อ จํากัด การลงนามล่วงหน้า จากนั้นจะให้ภาพรวมที่ครอบคลุมและสรุปลักษณะของการพิสูจน์การฉ้อโกงและหลักฐานความถูกต้องคุณสมบัติของหลักฐานการฉ้อโกงที่ได้รับอนุญาตและไม่ได้รับอนุญาตความแตกต่างระหว่างการพิสูจน์การฉ้อโกงแบบรอบเดียวและหลายรอบและเทคโนโลยีการแยกสคริปต์ Bitcoin