What is Nostr?
sitt / Sitt
npub1qqp…d5kd
2024-10-18 08:13:08

sitt on Nostr: Mercury Layer เป็นโปรโตคอล Statechain ...

Mercury Layer เป็นโปรโตคอล Statechain ที่ออกแบบมาเพื่อให้ผู้ใช้ Bitcoin สามารถโอนเหรียญระหว่างกันแบบ off-chain ได้อย่างปลอดภัย โดยยังคงความเป็นเจ้าของเหรียญอย่างเต็มที่ อย่างไรก็ตาม การตรวจสอบพบช่องโหว่สำคัญหลายประการในการนำโปรโตคอลไปใช้ ณ เดือนสิงหาคม 2024

ช่องโหว่ที่พบ:
⚠️ VULN_1 Arbitrary sighash flags are allowed: การอนุญาตให้ใช้ค่า sighash flags แบบใดก็ได้ อาจทำให้ผู้รับเสียหายได้ เป็นช่องโหว่ที่มีความอันตรายระดับกลาง
⚠️ VULN_2 Arbitrary TX version numbers are allowed: การอนุญาตให้ใช้หมายเลขเวอร์ชันธุรกรรมแบบใดก็ได้ อาจทำให้เกิดความล่าช้าในการยืนยันธุรกรรมบนเครือข่าย ส่งผลให้ผู้โจมตีมีโอกาสสร้างธุรกรรมซ้ำซ้อน (deferred double-spending) ในภายหลัง เป็นช่องโหว่ที่มีความอันตรายระดับกลาง
⚠️ VULN_3 Arbitrary TX input/output array lengths are allowed: อาจทำให้เกิดความล่าช้าในการยืนยันธุรกรรมบนเครือข่าย ส่งผลให้ผู้โจมตีมีโอกาสสร้างธุรกรรมซ้ำซ้อนในภายหลัง
🚨 VULN_4 Arbitrary tx1 locktimes are allowed: อาจทำให้เกิดการใช้จ่ายซ้ำซ้อนได้ทันที (immediate double-spending)
🚨 VULN_5 Arbitrary input sequence sequence numbers are allowed: การอนุญาตให้ใช้หมายเลขลำดับ input แบบใดก็ได้: อาจทำให้เกิดการใช้จ่ายซ้ำซ้อนได้ทันที

หลังจากอ่านคำเตือนหวือหวาไปเรียบร้อยแล้ว เรามาทำความเข้าใจกันก่อนว่า Statechain คืออะไร แล้วทำไมเราถึงต้องกลัวการตรวจสอบธุรกรรมนอกเหนือบิทคอยน์ concensus ที่ไม่เกี่ยวข้องกับดาต้าบน UTXO (Unspent Transaction Output) ด้วย Statechain เป็นโปรโตคอลที่ออกแบบมาเพื่อให้ผู้ใช้ Bitcoin สามารถโอนเหรียญระหว่างกันแบบ off-chain ได้อย่างปลอดภัย เราจะเปรียบเทียบเพื่อให้เข้าใจง่ายกับอีกระบบหนึ่งที่คล้ายคลึงกัน ซึ่งก็คือระบบ Chaumian E-Cash ที่เห็นสองทีมหลัก ๆ Cashu และ Fedi พัฒนากัน ทั้ง Statechain และ E-cash ใช้เซิร์ฟเวอร์กลางในการยืนยันการทำธุรกรรม และทั้งสองระบบช่วยให้สามารถโอนเงินได้อย่างรวดเร็วโดยไม่ต้องบันทึกทุกธุรกรรมลงในบล็อกเชน

ความแตกต่างของสองระบบนี้อยู่ที่ E-cash มักจะเป็นระบบแบบ custodial ซึ่งหมายความว่าเซิร์ฟเวอร์กลางมีอำนาจควบคุมเงินของผู้ใช้ Statechain ออกแบบมาให้เป็นระบบ non-custodial โดยเซิร์ฟเวอร์ไม่มีอำนาจควบคุมเงินของผู้ใช้โดยตรง Statechain ในที่นี้คือ Mercury Layer ใช้ระบบ "blind server" ซึ่งหมายความว่าเซิร์ฟเวอร์ไม่รู้ว่ากำลังจัดการกับ UTXO ใดอยู่ ซึ่งบทความนี้ได้พิสูจน์แล้วว่า blind server ที่กล่าวถึงในรูปแบบปัจจุบัน เป็น semi-trusted setup. ข้อเสนอแนะสำหรับผู้ใช้เวอร์ชั่นปัจจุบันจึงเป็นการขึ้นำจาก Conduition ให้ถอนมูลค่าบน Statecoins ออกมาอยู่บนบิทคอยน์ดังเดิม

และนอกจากนั้น Conduition ยังได้เสนอแนะหลายอย่างให้กับทางทีม Commerce Block ผู้จัดทำเลเยอร์ปรอท Mercury Layer อีกด้วย สามข้อดังนี้
1. ผู้ส่งควรให้ข้อมูลขั้นต่ำที่จำเป็นแก่ผู้รับ
2. ผู้รับควรสร้างธุรกรรมสำรองขึ้นใหม่ตามกฎที่กำหนดไว้ในโปรโตคอล
3. ตรวจสอบลายเซ็นของธุรกรรมที่สร้างขึ้นใหม่
ซึ่งเป็น client-side validation ที่จำเป็นต้องปรับปรุงให้ทางวอลเล็ทซอฟท์แวร์ที่ใช้ Statechain นี้ทราบล่วงหน้า

เพื่อน ๆ คิดว่าหนทางการนำบิทคอยน์มาเข้าร่วมตลาดสินทรัพย์ดิจิทัล จำเป็นต้องใช้ Statechain หรือไม่ ?? เรามีทางเลือกอื่น หรือวิธีการใช้บิทคอยน์ที่เหนือกว่า custodial system เช่นเอ็กซ์แชนจ์ และ "blind server" ที่นี้อย่างไรบ้างครับ ??

#Siamstr #Bitcoin #Statechain #Disclostr #MercuryLayer

Original Disclosure Article: https://conduition.io/code/mercury-disclosure

Author Public Key
npub1qqphfrwv4dpmljdcskaqth6fx3cjm5kg5wavqpja7a4ztgpdjt5q7td5kd