การมีข้อมูลแบบไฮบริด: บังคับการถอน BitVM บน BOB

ขั้นสูง2/10/2025, 12:39:52 PM
BOB กำลังสร้างโซลูชันผสมที่ช่วยให้ผู้ใช้สามารถถอนสินทรัพย์ผ่านธุรกรรมบิตคอยน์โดยไม่ต้องพึ่งพาที่อีเทอร์เรียม มันใช้อีเทอร์เรียมสำหรับความพร้อมในการใช้ข้อมูลและบิตคอยน์สำหรับความต้านทานการเซ็นเซอร์ชั่น ผู้ใช้เก็บข้อมูลการถอนเงินในเอาท์พุตที่เกี่ยวกับ Taproot ของบิตคอยน์และดำเนินการธุรกรรมเสริมด้วยกระบวนการ commit/reveal 2 ระยะ

ผู้ใช้ Bitcoin ควรมีเพียง BTC เท่านั้นบน Bitcoin เพื่อบังคับการถอน BTC จาก BOB กลับสู่ Bitcoin ของพวกเขา เรากำลังทำงานกับวิธีการผสมระหว่าง DA ของ Ethereum ในฐานะเป็นค่าเริ่มต้นในขณะที่ยอมให้ผู้ใช้บังคับการรวมรายการธุรกรรมบน BOB ผ่านธุรกรรมพิเศษบน Bitcoin เราตื่นเต้นที่จะแบ่งปันผลงานของเราที่กำลังพัฒนาในโพสต์บล็อกนี้

tl;dr

  • L2s ควรมีความต้านทานต่อการเซ็นเซอร์ชันเท่าเทียมกับ L1s ที่พวกเขาตั้งอยู่
  • ใน BOB, ผู้ใช้สามารถถูกบังคับให้ถอนสินทรัพย์จาก BOB ไปยัง Ethereum ผ่านการทำธุรกรรม Ethereum ได้แล้ว
  • สำหรับสะพาน BitVM ของ BOB กำลังทำการรวม Bitcoin เป็นวิธีในการให้ผู้ใช้ทำการดำเนินการทางการเงินบน BOB
  • ผู้ใช้ Bitcoin จะสามารถถอน BTC ของพวกเขาจาก BOB โดยไม่ต้องส่งธุรกรรมไปที่ BOB

หนึ่งในคุณสมบัติหลักของ L2s คือสถานะของพวกเขาต้องก้าวหน้าไปข้างหน้า แม้ว่าเวลาจะsequencer ออฟไลน์. L2 บรรลุเป้าหมายนี้โดยอ่านและเขียนสถานะของพวกเขาจากชั้นความพร้อมในการใช้ข้อมูล (DA) ที่สามารถอัปเดตได้อิสระจาก L2 ที่ออนไลน์อยู่ ด้วยวิธีนี้ผู้ใช้สามารถบังคับการรวมธุรกรรมของพวกเขาได้ แม้ว่าตัวเรียงลำดับจะออฟไลน์หรือตัวเรียงลำดับจะไม่ยอมรับธุรกรรมของพวกเขาโดยตรง

สำหรับสะพาน BitVM ของ BOB สิ่งนี้กลายเป็นปัญหาที่น่าสนใจ ปัจจุบัน BOB ใช้ EIP-4844 ของ Ethereum เป็นชั้น DA ของมันผู้ใช้บน Ethereum สามารถเรียกดูถอนกลับไปยัง Bitcoin ผ่านสะพาน BitVM ได้ง่าย ๆ อย่างไรก็ตาม มันต้องการผู้ใช้ ETH บน Ethereum

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

ข้อมูลเบื้องหลังเกี่ยวกับ DA และอนุพันธ์

กระบวนการการผันศักย์สำคัญมากสำหรับ L2s: สถานะ L2 ทั้งหมดของ BOB ต้องถูกสร้างขึ้นจาก L1 และชั้น DA มันช่วยให้ L2s สามารถเพลิดเพลินได้กับการต้านการเซ็นเซอร์ชิปเหมือนกับชั้น DA ในกรณีของเรา Ethereum.

เรียบง่ายใน rollups (โดยเฉพาะ OP Stack chains) เรามีสองประเภทของข้อมูลบน L1:

  • ธุรกรรมการฝากทำไปยังสัญญา 'OptimismPortal' นี้ นั่นคือธุรกรรมที่ผู้ใช้ทำกับ Ethereum โดยทั่วไปเพื่อฝากสินทรัพย์ของพวกเขาเข้าสู่ BOB ธุรกรรมการฝากเหล่านี้ยังสามารถใช้สำหรับดำเนินการอื่นๆ บน BOB ได้
  • ชุดที่ส่งผ่านโดยตัวคัดลอก (หรือตัวคัดลอกกิจกรรมเพื่อให้แม่นยำมากขึ้น) จากธุรกรรม L2 พวกนี้รวมถึงการทำธุรกรรมทั้งหมดที่ผู้ใช้ทำโดยตรงบน BOB และในที่สุดจะรวมกลับเข้าสู่ Ethereum blobs

Bitcoin เป็นเลเยอร์ DA

ถ้าเราต้องการบิตคอยน์เป็นชั้น DA ทำไมไม่สลับไปใช้บิตคอยน์เป็นชั้น DA อย่างสมบูรณ์? คำตอบคือส่วนใหญ่cost. Bitcoin มีพื้นที่จัดเก็บเพียงเล็กน้อย (ประมาณ 4MB ทุก 10 นาที) และดังนั้นต้นทุนการจัดเก็บสูง

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

ท่อน้ำผสม Hybrid

แนวทางการแก้ไขพื้นฐานคือการเพิ่ม Bitcoin เข้าสู่ BOB เป็นส่วนหนึ่งของทางระบายที่จำเป็น โดย BOB (และโหนด "op-node" โดยเฉพาะ) จะประมวลผลข้อมูลเข้ามาในลำดับดังกล่าว:

  1. ธุรกรรมการถอนบังคับ Bitcoin (เพิ่มเข้ามาโดยเฉพาะสำหรับ BOB)
  2. การฝาก Ethereum ไปยังสัญญา OptimismPortal ของ BOB (มาตรฐาน OP Stack)
  3. ชุดสแต็กของ Ethereum จาก op-batcher (มาตรฐาน OP Stack)

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

ธุรกรรมถอนบังคับ Bitcoin

เราจะต้องใช้สามส่วนในการสร้างธุรกรรมถอนเงินบังคับ:

  1. สร้างธุรกรรมถอนเงินบังคับบน Bitcoin
  2. เก็บธุรกรรมถอนบังคับบนบิตคอยน์ในขีดจำกัดของบิตคอยน์
  3. จัดการค่าใช้จ่ายในการถอนเงินบังคับในธุรกรรมบิตคอยน์

1. สร้างธุรกรรมการถอนเงินบังคับ

An OP stackธุรกรรมฝากเงินมีโครงสร้างดังต่อไปนี้:

  • bytes32 sourceHash: แหล่งข้อมูลของฮาช ที่ระบุอย่างไม่ซ้ำซ้อนต้นกำเนิดของเงินฝาก
  • ที่อยู่จาก: ที่อยู่ของบัญชีผู้ส่ง
  • ที่อยู่ถึง: ที่อยู่ของบัญชีผู้รับหรือที่อยู่ null (ยาวศูนย์) หากธุรกรรมที่ฝากเป็นการสร้างสัญญา
  • uint256 mint: ค่า ETH ที่ต้องการเพิ่มขึ้นบน L2
  • uint256 value: ค่า ETH ที่จะส่งไปยังบัญชีผู้รับ
  • uint64 gas: ขีดจำกัดแก๊สสำหรับธุรกรรม L2
  • bool isSystemTx: หากเป็นจริง ธุรกรรมจะไม่มีปฏิสัมพันธ์กับ L2 block gas pool.
  • ข้อมูลไบต์: ข้อมูลคอลล์ดา

ธุรกรรมการถอนบังคับต้องรวมธุรกรรมการถอนที่เข้ารหัสในฟิลด์ข้อมูลของธุรกรรมการฝาก การกระทำนี้ทำโดยการสร้างธุรกรรมบน BOB ซึ่งเป็นสิ่งที่กระตุ้นการถอนจาก BOB ไปยัง Bitcoin และจะทำงานอย่างเดียวกันกับกรณีที่ธุรกรรมถูกส่งจาก Ethereum

เราสามารถเก็บรักษา (บีบอัด) เวอร์ชันของธุรกรรมถอนบังคับบนบิตคอยน์ที่รวมข้อมูลทั้งหมดดังกล่าว

2. เก็บธุรกรรมถอนเงินบังคับบน Bitcoin

เนื่องจากข้อมูลสำหรับธุรกรรมการถอนบังคับมีขนาดใหญ่กว่าที่ควรจะเก็บไว้ในเอาต์พุต OP_RETURN ทั่วไป เราจะใช้ gate ได้Taprootผลลัพธ์ในการเก็บข้อมูล

ในขณะที่มันง่ายที่จะระบุธุรกรรมการฝาก (ซึ่งอาจรวมถึงการถอน) บน Ethereum เนื่องจากมันถูกส่งไปที่สัญญา OptimismPortal ของ BOB แต่มันไม่ง่ายที่จะระบุธุรกรรมการถอนบังคับบน Bitcoin

การแปลงข้อมูล: การธุรกรรมการถอนแบบบังคับถูกแปลงเป็นสคริปต์ Taproot ในโครงสร้าง "ซอง" นี้ซึ่งเป็น noops ในเครือข่ายบิตคอยน์และใช้ในการจัดเรียงเช่นกัน เราปรับโครงสร้างให้เหมาะสมกับความต้องการของเรา

ไม่ได้ตั้ง
OP_FALSE OP_IF
OP_PUSH “bob”
OP_1
OP_PUSH "transaction"
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
วิธีการยืนยันแบบสองขั้นตอน/การเปิดเผย:
เช่นเดียวกับ Ordinals ผู้ใช้จะต้องส่งสองธุรกรรมไปยัง Bitcoin:

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

3. จัดการค่า Gas สำหรับการทำธุรกรรมถอนบังคับ

นี่เป็นปัญหาที่เปิดกว้างที่สุด โดยมีตัวเลือก 2 อย่างที่กำลังพิจารณาอยู่ในปัจจุบัน:

  • ตั้งค่าค่าแก๊สเป็น 0 สำหรับธุรกรรมถอนบังคับบัญชีบิตคอยน์และหักค่าแก๊สจากยอดเงิน ETH ของผู้ใช้ใน BOB แบบนี้ผู้ใช้ที่มี ETH ใน BOB เท่านั้นที่สามารถบังคับถอนได้ อย่างไรก็ตาม นี่ไม่ใช่ตัวเลือกที่ดีเนื่องจากจะต้องใช้ ETH ใน BOB เพื่อบังคับถอน กล่าวคือผู้ใช้ที่มี BTC ในบิตคอยน์ไม่สามารถบังคับถอนได้
  • การชำระเงิน Gas จะต้องมีการชำระเงินโดยผู้ใช้ใน BTC บนเครือข่าย Bitcoin โครงข่าย BOB ต้องมีที่อยู่บน Bitcoin ที่สามารถรับ BTC และจะแลกเปลี่ยน BTC ที่ได้รับจากผู้ใช้เป็น ETH บน BOB เพื่อชำระค่า Gas ส่วน L1 รวมถึงค่าใช้จ่ายในการดำเนินการ ตัวเลือกนี้น่าจะสามารถทำได้โดยใช้เกตเวย์บ๊อบและตั้งค่าที่อยู่ EVM ของ BOB DAO เป็นผู้รับ BTC

เรากำลังทดลองกับไอเดียอื่น ๆ ด้วย ดังนั้นอย่าพลาดการอัปเดตเพิ่มเติมนะคะ!

นำทุกอย่างมารวมกัน

ใครก็ตามสามารถตรวจสอบสถานะของ BOB ได้โดยเพียงแค่ตรวจสอบข้อมูลบน Bitcoin และ Ethereum:

  1. อ่านรายการธุรกรรมการถอนทั้งหมดจากบิตคอยน์ ซึ่งถูกเข้ารหัสเป็นรายการธุรกรรมสองรายการสำหรับแต่ละการถอน คือ รายการ commit และรายการ reveal นี่คือส่วนเพิ่มที่เราทำกับ OP Stack และที่เราเพิ่มประสิทธิภาพของท่อรากฐาน
  2. อ่านธุรกรรมทั้งหมดที่ทํากับสัญญา OptimismPortal ของ BOB บน Ethereum นี่เป็นส่วนหนึ่งของไปป์ไลน์มาตรฐาน OP Stack derivation แล้ว
  3. อ่านธุรกรรมทั้งหมดที่ทำโดยตรงบน BOB และรวมเข้าไว้เป็นส่วนหนึ่งของแบทช์บน Ethereum โดยสำคัญที่สุดโหนดเต็มไม่ได้อ่านโดยตรงจากตัวตรวจสอบเพื่อรับธุรกรรมที่ได้รับการยืนยันแต่พวกเขาอ่านจาก blobs ของ Ethereum นี่คือส่วนหนึ่งของการได้มาจากทางปกครองของ OP Stack อยู่แล้ว

ความท้าทายทางเทคนิค

ความสอดคล้องของข้อมูล: ในขณะที่การสอดคล้องของข้อมูลระหว่าง Ethereum และ Bitcoin chains เป็นสิ่งสำคัญ การมีข้อมูลธุรกรรมบนทั้งสองระบบยังไม่สามารถรับประกันความถูกต้องได้ ธุรกรรมต้องแสดงถึงการเปลี่ยนแปลงสถานะที่ถูกต้องตามฟังก์ชันการเปลี่ยนสถานะของ rollup เพื่อให้ถือว่าถูกต้อง การแก้ไขปัญหาต้องใช้ตรวจสอบตรรกะภายใน op-node (หรือการนำไปใช้ในชั้นเชิงนโยบายอื่น ๆ) โดยตรวจสอบก่อนว่าธุรกรรมนั้นส่งผลให้เกิดการเปลี่ยนแปลงสถานะที่ถูกต้องหรือไม่ก่อนยอมรับ

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

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

ขั้นตอนถัดไป

เราตื่นเต้นที่จะนำเสนอเทคโนโลยี Hybrid Rollups ที่รวมความปลอดภัยของ Bitcoin กับนวัตกรรมของ Ethereum โดยในปัญหาที่เรากำลังพบ พวกเราสนใจในการรวมความต้านทานการเซ็นเซอร์ชั่นของ Bitcoin กับ BOB's Rollup Stack พวกเราจะอัพเดตโพสต์บล็อกนี้เพิ่มเติมเมื่อเราทำความคืบหน้า

Disclaimer:

  1. บทความนี้ถูกพิมพ์ซ้ำจาก [ บ็อบ]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Dominik Harz]. ถ้ามีคำประทับใจต่อการเผยแพร่ฉบับนี้ กรุณาติดต่อ เกต เรียนรู้ทีมของเราจะดูแลมันอย่างรวดเร็ว
  2. คำประกาศความรับผิดชอบ: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นสิ่งที่เป็นไปตามเพียงผู้เขียนเท่านั้นและไม่เป็นที่เป็นคำแนะนำในการลงทุน
  3. ทีม Gate Learn แปลบทความเป็นภาษาอื่น ๆ การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่แปลไว้ถือเป็นการฝ่าฝืนและห้ามเว้นแต่จะระบุไว้
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย

การมีข้อมูลแบบไฮบริด: บังคับการถอน BitVM บน BOB

ขั้นสูง2/10/2025, 12:39:52 PM
BOB กำลังสร้างโซลูชันผสมที่ช่วยให้ผู้ใช้สามารถถอนสินทรัพย์ผ่านธุรกรรมบิตคอยน์โดยไม่ต้องพึ่งพาที่อีเทอร์เรียม มันใช้อีเทอร์เรียมสำหรับความพร้อมในการใช้ข้อมูลและบิตคอยน์สำหรับความต้านทานการเซ็นเซอร์ชั่น ผู้ใช้เก็บข้อมูลการถอนเงินในเอาท์พุตที่เกี่ยวกับ Taproot ของบิตคอยน์และดำเนินการธุรกรรมเสริมด้วยกระบวนการ commit/reveal 2 ระยะ

ผู้ใช้ Bitcoin ควรมีเพียง BTC เท่านั้นบน Bitcoin เพื่อบังคับการถอน BTC จาก BOB กลับสู่ Bitcoin ของพวกเขา เรากำลังทำงานกับวิธีการผสมระหว่าง DA ของ Ethereum ในฐานะเป็นค่าเริ่มต้นในขณะที่ยอมให้ผู้ใช้บังคับการรวมรายการธุรกรรมบน BOB ผ่านธุรกรรมพิเศษบน Bitcoin เราตื่นเต้นที่จะแบ่งปันผลงานของเราที่กำลังพัฒนาในโพสต์บล็อกนี้

tl;dr

  • L2s ควรมีความต้านทานต่อการเซ็นเซอร์ชันเท่าเทียมกับ L1s ที่พวกเขาตั้งอยู่
  • ใน BOB, ผู้ใช้สามารถถูกบังคับให้ถอนสินทรัพย์จาก BOB ไปยัง Ethereum ผ่านการทำธุรกรรม Ethereum ได้แล้ว
  • สำหรับสะพาน BitVM ของ BOB กำลังทำการรวม Bitcoin เป็นวิธีในการให้ผู้ใช้ทำการดำเนินการทางการเงินบน BOB
  • ผู้ใช้ Bitcoin จะสามารถถอน BTC ของพวกเขาจาก BOB โดยไม่ต้องส่งธุรกรรมไปที่ BOB

หนึ่งในคุณสมบัติหลักของ L2s คือสถานะของพวกเขาต้องก้าวหน้าไปข้างหน้า แม้ว่าเวลาจะsequencer ออฟไลน์. L2 บรรลุเป้าหมายนี้โดยอ่านและเขียนสถานะของพวกเขาจากชั้นความพร้อมในการใช้ข้อมูล (DA) ที่สามารถอัปเดตได้อิสระจาก L2 ที่ออนไลน์อยู่ ด้วยวิธีนี้ผู้ใช้สามารถบังคับการรวมธุรกรรมของพวกเขาได้ แม้ว่าตัวเรียงลำดับจะออฟไลน์หรือตัวเรียงลำดับจะไม่ยอมรับธุรกรรมของพวกเขาโดยตรง

สำหรับสะพาน BitVM ของ BOB สิ่งนี้กลายเป็นปัญหาที่น่าสนใจ ปัจจุบัน BOB ใช้ EIP-4844 ของ Ethereum เป็นชั้น DA ของมันผู้ใช้บน Ethereum สามารถเรียกดูถอนกลับไปยัง Bitcoin ผ่านสะพาน BitVM ได้ง่าย ๆ อย่างไรก็ตาม มันต้องการผู้ใช้ ETH บน Ethereum

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

ข้อมูลเบื้องหลังเกี่ยวกับ DA และอนุพันธ์

กระบวนการการผันศักย์สำคัญมากสำหรับ L2s: สถานะ L2 ทั้งหมดของ BOB ต้องถูกสร้างขึ้นจาก L1 และชั้น DA มันช่วยให้ L2s สามารถเพลิดเพลินได้กับการต้านการเซ็นเซอร์ชิปเหมือนกับชั้น DA ในกรณีของเรา Ethereum.

เรียบง่ายใน rollups (โดยเฉพาะ OP Stack chains) เรามีสองประเภทของข้อมูลบน L1:

  • ธุรกรรมการฝากทำไปยังสัญญา 'OptimismPortal' นี้ นั่นคือธุรกรรมที่ผู้ใช้ทำกับ Ethereum โดยทั่วไปเพื่อฝากสินทรัพย์ของพวกเขาเข้าสู่ BOB ธุรกรรมการฝากเหล่านี้ยังสามารถใช้สำหรับดำเนินการอื่นๆ บน BOB ได้
  • ชุดที่ส่งผ่านโดยตัวคัดลอก (หรือตัวคัดลอกกิจกรรมเพื่อให้แม่นยำมากขึ้น) จากธุรกรรม L2 พวกนี้รวมถึงการทำธุรกรรมทั้งหมดที่ผู้ใช้ทำโดยตรงบน BOB และในที่สุดจะรวมกลับเข้าสู่ Ethereum blobs

Bitcoin เป็นเลเยอร์ DA

ถ้าเราต้องการบิตคอยน์เป็นชั้น DA ทำไมไม่สลับไปใช้บิตคอยน์เป็นชั้น DA อย่างสมบูรณ์? คำตอบคือส่วนใหญ่cost. Bitcoin มีพื้นที่จัดเก็บเพียงเล็กน้อย (ประมาณ 4MB ทุก 10 นาที) และดังนั้นต้นทุนการจัดเก็บสูง

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

ท่อน้ำผสม Hybrid

แนวทางการแก้ไขพื้นฐานคือการเพิ่ม Bitcoin เข้าสู่ BOB เป็นส่วนหนึ่งของทางระบายที่จำเป็น โดย BOB (และโหนด "op-node" โดยเฉพาะ) จะประมวลผลข้อมูลเข้ามาในลำดับดังกล่าว:

  1. ธุรกรรมการถอนบังคับ Bitcoin (เพิ่มเข้ามาโดยเฉพาะสำหรับ BOB)
  2. การฝาก Ethereum ไปยังสัญญา OptimismPortal ของ BOB (มาตรฐาน OP Stack)
  3. ชุดสแต็กของ Ethereum จาก op-batcher (มาตรฐาน OP Stack)

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

ธุรกรรมถอนบังคับ Bitcoin

เราจะต้องใช้สามส่วนในการสร้างธุรกรรมถอนเงินบังคับ:

  1. สร้างธุรกรรมถอนเงินบังคับบน Bitcoin
  2. เก็บธุรกรรมถอนบังคับบนบิตคอยน์ในขีดจำกัดของบิตคอยน์
  3. จัดการค่าใช้จ่ายในการถอนเงินบังคับในธุรกรรมบิตคอยน์

1. สร้างธุรกรรมการถอนเงินบังคับ

An OP stackธุรกรรมฝากเงินมีโครงสร้างดังต่อไปนี้:

  • bytes32 sourceHash: แหล่งข้อมูลของฮาช ที่ระบุอย่างไม่ซ้ำซ้อนต้นกำเนิดของเงินฝาก
  • ที่อยู่จาก: ที่อยู่ของบัญชีผู้ส่ง
  • ที่อยู่ถึง: ที่อยู่ของบัญชีผู้รับหรือที่อยู่ null (ยาวศูนย์) หากธุรกรรมที่ฝากเป็นการสร้างสัญญา
  • uint256 mint: ค่า ETH ที่ต้องการเพิ่มขึ้นบน L2
  • uint256 value: ค่า ETH ที่จะส่งไปยังบัญชีผู้รับ
  • uint64 gas: ขีดจำกัดแก๊สสำหรับธุรกรรม L2
  • bool isSystemTx: หากเป็นจริง ธุรกรรมจะไม่มีปฏิสัมพันธ์กับ L2 block gas pool.
  • ข้อมูลไบต์: ข้อมูลคอลล์ดา

ธุรกรรมการถอนบังคับต้องรวมธุรกรรมการถอนที่เข้ารหัสในฟิลด์ข้อมูลของธุรกรรมการฝาก การกระทำนี้ทำโดยการสร้างธุรกรรมบน BOB ซึ่งเป็นสิ่งที่กระตุ้นการถอนจาก BOB ไปยัง Bitcoin และจะทำงานอย่างเดียวกันกับกรณีที่ธุรกรรมถูกส่งจาก Ethereum

เราสามารถเก็บรักษา (บีบอัด) เวอร์ชันของธุรกรรมถอนบังคับบนบิตคอยน์ที่รวมข้อมูลทั้งหมดดังกล่าว

2. เก็บธุรกรรมถอนเงินบังคับบน Bitcoin

เนื่องจากข้อมูลสำหรับธุรกรรมการถอนบังคับมีขนาดใหญ่กว่าที่ควรจะเก็บไว้ในเอาต์พุต OP_RETURN ทั่วไป เราจะใช้ gate ได้Taprootผลลัพธ์ในการเก็บข้อมูล

ในขณะที่มันง่ายที่จะระบุธุรกรรมการฝาก (ซึ่งอาจรวมถึงการถอน) บน Ethereum เนื่องจากมันถูกส่งไปที่สัญญา OptimismPortal ของ BOB แต่มันไม่ง่ายที่จะระบุธุรกรรมการถอนบังคับบน Bitcoin

การแปลงข้อมูล: การธุรกรรมการถอนแบบบังคับถูกแปลงเป็นสคริปต์ Taproot ในโครงสร้าง "ซอง" นี้ซึ่งเป็น noops ในเครือข่ายบิตคอยน์และใช้ในการจัดเรียงเช่นกัน เราปรับโครงสร้างให้เหมาะสมกับความต้องการของเรา

ไม่ได้ตั้ง
OP_FALSE OP_IF
OP_PUSH “bob”
OP_1
OP_PUSH "transaction"
OP_0
OP_PUSH $WITHDRAWAL_TRANSACTION_DATA
OP_ENDIF
วิธีการยืนยันแบบสองขั้นตอน/การเปิดเผย:
เช่นเดียวกับ Ordinals ผู้ใช้จะต้องส่งสองธุรกรรมไปยัง Bitcoin:

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

3. จัดการค่า Gas สำหรับการทำธุรกรรมถอนบังคับ

นี่เป็นปัญหาที่เปิดกว้างที่สุด โดยมีตัวเลือก 2 อย่างที่กำลังพิจารณาอยู่ในปัจจุบัน:

  • ตั้งค่าค่าแก๊สเป็น 0 สำหรับธุรกรรมถอนบังคับบัญชีบิตคอยน์และหักค่าแก๊สจากยอดเงิน ETH ของผู้ใช้ใน BOB แบบนี้ผู้ใช้ที่มี ETH ใน BOB เท่านั้นที่สามารถบังคับถอนได้ อย่างไรก็ตาม นี่ไม่ใช่ตัวเลือกที่ดีเนื่องจากจะต้องใช้ ETH ใน BOB เพื่อบังคับถอน กล่าวคือผู้ใช้ที่มี BTC ในบิตคอยน์ไม่สามารถบังคับถอนได้
  • การชำระเงิน Gas จะต้องมีการชำระเงินโดยผู้ใช้ใน BTC บนเครือข่าย Bitcoin โครงข่าย BOB ต้องมีที่อยู่บน Bitcoin ที่สามารถรับ BTC และจะแลกเปลี่ยน BTC ที่ได้รับจากผู้ใช้เป็น ETH บน BOB เพื่อชำระค่า Gas ส่วน L1 รวมถึงค่าใช้จ่ายในการดำเนินการ ตัวเลือกนี้น่าจะสามารถทำได้โดยใช้เกตเวย์บ๊อบและตั้งค่าที่อยู่ EVM ของ BOB DAO เป็นผู้รับ BTC

เรากำลังทดลองกับไอเดียอื่น ๆ ด้วย ดังนั้นอย่าพลาดการอัปเดตเพิ่มเติมนะคะ!

นำทุกอย่างมารวมกัน

ใครก็ตามสามารถตรวจสอบสถานะของ BOB ได้โดยเพียงแค่ตรวจสอบข้อมูลบน Bitcoin และ Ethereum:

  1. อ่านรายการธุรกรรมการถอนทั้งหมดจากบิตคอยน์ ซึ่งถูกเข้ารหัสเป็นรายการธุรกรรมสองรายการสำหรับแต่ละการถอน คือ รายการ commit และรายการ reveal นี่คือส่วนเพิ่มที่เราทำกับ OP Stack และที่เราเพิ่มประสิทธิภาพของท่อรากฐาน
  2. อ่านธุรกรรมทั้งหมดที่ทํากับสัญญา OptimismPortal ของ BOB บน Ethereum นี่เป็นส่วนหนึ่งของไปป์ไลน์มาตรฐาน OP Stack derivation แล้ว
  3. อ่านธุรกรรมทั้งหมดที่ทำโดยตรงบน BOB และรวมเข้าไว้เป็นส่วนหนึ่งของแบทช์บน Ethereum โดยสำคัญที่สุดโหนดเต็มไม่ได้อ่านโดยตรงจากตัวตรวจสอบเพื่อรับธุรกรรมที่ได้รับการยืนยันแต่พวกเขาอ่านจาก blobs ของ Ethereum นี่คือส่วนหนึ่งของการได้มาจากทางปกครองของ OP Stack อยู่แล้ว

ความท้าทายทางเทคนิค

ความสอดคล้องของข้อมูล: ในขณะที่การสอดคล้องของข้อมูลระหว่าง Ethereum และ Bitcoin chains เป็นสิ่งสำคัญ การมีข้อมูลธุรกรรมบนทั้งสองระบบยังไม่สามารถรับประกันความถูกต้องได้ ธุรกรรมต้องแสดงถึงการเปลี่ยนแปลงสถานะที่ถูกต้องตามฟังก์ชันการเปลี่ยนสถานะของ rollup เพื่อให้ถือว่าถูกต้อง การแก้ไขปัญหาต้องใช้ตรวจสอบตรรกะภายใน op-node (หรือการนำไปใช้ในชั้นเชิงนโยบายอื่น ๆ) โดยตรวจสอบก่อนว่าธุรกรรมนั้นส่งผลให้เกิดการเปลี่ยนแปลงสถานะที่ถูกต้องหรือไม่ก่อนยอมรับ

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

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

ขั้นตอนถัดไป

เราตื่นเต้นที่จะนำเสนอเทคโนโลยี Hybrid Rollups ที่รวมความปลอดภัยของ Bitcoin กับนวัตกรรมของ Ethereum โดยในปัญหาที่เรากำลังพบ พวกเราสนใจในการรวมความต้านทานการเซ็นเซอร์ชั่นของ Bitcoin กับ BOB's Rollup Stack พวกเราจะอัพเดตโพสต์บล็อกนี้เพิ่มเติมเมื่อเราทำความคืบหน้า

Disclaimer:

  1. บทความนี้ถูกพิมพ์ซ้ำจาก [ บ็อบ]. ลิขสิทธิ์ทั้งหมดเป็นของผู้เขียนต้นฉบับ [Dominik Harz]. ถ้ามีคำประทับใจต่อการเผยแพร่ฉบับนี้ กรุณาติดต่อ เกต เรียนรู้ทีมของเราจะดูแลมันอย่างรวดเร็ว
  2. คำประกาศความรับผิดชอบ: มุมมองและความคิดเห็นที่แสดงในบทความนี้เป็นสิ่งที่เป็นไปตามเพียงผู้เขียนเท่านั้นและไม่เป็นที่เป็นคำแนะนำในการลงทุน
  3. ทีม Gate Learn แปลบทความเป็นภาษาอื่น ๆ การคัดลอก การกระจาย หรือการลอกเลียนแบบบทความที่แปลไว้ถือเป็นการฝ่าฝืนและห้ามเว้นแต่จะระบุไว้
* ข้อมูลนี้ไม่ได้มีวัตถุประสงค์เป็นคำแนะนำทางการเงินหรือคำแนะนำอื่นใดที่ Gate.io เสนอหรือรับรอง
* บทความนี้ไม่สามารถทำซ้ำ ส่งต่อ หรือคัดลอกโดยไม่อ้างอิงถึง Gate.io การฝ่าฝืนเป็นการละเมิดพระราชบัญญัติลิขสิทธิ์และอาจถูกดำเนินการทางกฎหมาย
เริ่มตอนนี้
สมัครและรับรางวัล
$100