6 ต.ค. 2022 เวลา 16:43 • คริปโทเคอร์เรนซี
เหรียญ​ Zcash กำลังถูกโจมตี
เหรียญ Zcash เป็นเหรียญที่บล็อกเชนนั้นถูก fork มาจากบิตคอยน์ แต่พยายามนำเสนอความเป็นส่วนตัวให้กับผู้ใช้โดยมี feature ที่เรียกว่า shielded transaction โดยการทำให้ธุรกรรมที่ทำผ่าน z-address สามารถที่จะกระทำได้โดยไม่ต้องเปิดเผยข้อมูลรายละเอียดของธุรกรรมใน blockchain โดยผ่านกระบวนการเข้ารหัส และตรวจสอบที่เรียกว่า zkSNARK
ซึ่งเป็นกระบวนการที่ซับซ้อนกว่าการเก็บข้อมูลในลักษณะของ distributed ledger มาก แต่ https://zips.z.cash/zip-0313 มีการลดอัตราค่าธรรมเนียมปกติให้เหลือเพียง 1000 zatoshi หรือคิดเป็นเงินประมาณ 0.01 เหรียญสหรัฐเท่านั้น จึงมีส่วนทำให้ shielded transaction เป็นที่นิยม นอกเหนือไปจากการที่มีคุณสมบัติที่รักษาความเป็นส่วนตัวมากขึ้น
ธุรกรรมที่ใช้ zero knowledge proof แบบของ Zcash ดูเหมือนดี แต่ก็เต็มไปด้วยจุดอ่อน แถมยังไม่ได้มีการพิสูจน์ความแข็งแกร่งในสนามจริง จึงมีการศึกษาเกี่ยวกับจุดอ่อนมากมายหลายเรื่องด้วยกัน ซึ่งล้วนแล้วแต่น่าสนใจทั้งสิ้น
แต่ด้วยธุรกรรมที่มีค่าธรรมเนียมถูกมาก และคงที่ Zcash จึงตกเป็นเป้าโจมตีแบบ spam attack โดยทำให้บล็อกใหม่ ๆ ที่เกิดขึ้นทุก ๆ ประมาณ 75 วินาทีนั้น มีขนาดข้อมูลเกือบ 2 MB โดยอาศัยการส่งธุรกรรมแบบ shielded transaction ที่มี address ปลายทางจำนวนมาก จนธุรกรรมเพียงไม่กี่ธุรกรรม สามารถกินพื้นที่เกือบทั้ง block ได้
ซึ่งการกระทำแบบนี้ทำให้เกิดปัญหาหลายเรื่อง ไม่ว่าจะเป็นขนาดของบล็อกที่ใหญ่ ทำให้ node ทั้งหลายมีปัญหาในการ sync ข้อมูลเข้าหากัน ส่วนขนาดของข้อมูลที่ใหญ่ขึ้นอย่างรวดเร็ว จนตอนนี้มีขนาดเกือบ 100 GB แล้วนั้น ก็ทำให้ node ทั้งหลายก็ต้องใช้พื้นที่มากขึ้นในการเก็บข้อมูลเช่นกัน
แต่การที่ผู้โจมตีเลือกใช้ Sapling pool แทนที่จะเป็น Orchard pool ซึ่งใหม่กว่านั้น ทำให้ต้นทุนของการโจมตีนั้นถูกมาก ๆ การสร้างธุรกรรมขยะเหล่านี้มีต้นทุนเพียงไม่กี่เซ็นต์สหรัฐเท่านั้น หากคิดเป็นการโจมตีทั้งวัน จะมีต้นทุนไม่ถึง 10 เหรียญสหรัฐเท่านั้นเอง แต่สามารถสร้างปัญหาน่ารำคาญ และทำให้ต้นทุนในการดูแลเชนเพิ่มขึ้นในระยะยาว
ซึ่งการคิดค่าธรรมเนียมที่ถูกและคงที่ ยังเป็นสิ่งสำคัญในการรักษาความเป็นส่วนตัวของธุรกรรม เพราะค่าธรรมเนียมที่ไม่เท่ากัน อาจจะทำให้การระบุธุรกรรมเป็นเรื่องที่ทำได้ง่ายขึ้นนั่นเอง การแก้ค่าธรรมเนียมให้ไม่เท่ากัน ขึ้นอยู่กับอุปสงค์​ และอุปทาน จึงเป็นเรื่องที่ผู้ออกแบบระบบไม่อยากทำ
และความน่าสนใจก็คือ Zcash เองไม่ได้มีกลไกในการป้องกันปัญหา spam attack แบบนี้ และปัญหานี้ไม่สามารถแก้ได้โดยง่าย นั่นก็เพราะความเป็น decentralization ของมันนั่นเอง โดย miner ก็ขุดบล็อกใหม่ซึ่งรวมธุรกรรมขยะเหล่านี้ เพราะตัวเองได้ผลตอบแทนซึ่งเป็นค่าขุดบล็อกเป็นหลัก โดยไม่สนใจภาพรวมของปัญหา
อย่างไรก็ตาม ในความเป็นจริงแล้ว คนที่ run node เองก็ควรมีแรงจูงใจในการแก้ปัญหานี้ได้ โดยการเลือกที่จะ ban รายการธุรกรรมในลักษณะนี้ แต่ก็ไม่ทำ (ลองเดากันว่าทำไมครับ)
นี่น่าจะเป็นการแสดงให้เห็นถึงจุดอ่อนบางส่วนของ decentralization แบบสุดโต่ง จึงทำให้การตัดสินใจทำสิ่งที่ดีที่สุดสำหรับเชนเป็นไปได้ยาก และเชื่องช้า ส่วนการที่มีธุรกรรมที่ค่าธรรมเนียมที่ถูก ทำให้เกิดการ abuse ได้โดยง่าย โดย chain เองไม่สามารถทำอะไรได้โดยง่าย เช่น block ธุรกรรมเหล่านั้น เพราะนอกจากจะขัดกับหลักการ no censorship จอมปลอมแล้ว ยังไม่สามารถทำให้เกิดฉันทามติ (consensus) ที่จะไม่รับธุรกรรมขยะเหล่านี้ได้ง่าย ๆ
ซึ่งในกรณีนี้ เราคงต้องติดตามกันดูว่า Zcash จะเลือกวิธีการใดในการแก้ไขปัญหา หากยังมีคนโจมตีต่อไปเรื่อย ๆ ซึ่งผมเดาว่า ต้องเลือกวิธีที่ค่อนข้าง centralized ในการแก้ไขปัญหา ไม่ก็ต้องมีการโหวต เพื่อขอให้คิดค่าธรรมเนียมให้แปรผันกับจำนวน output addresses หรือขนาดของข้อมูลที่ใช้ในการจัดเก็บมากขึ้น
กรณีศึกษานี้น่าจะชี้ให้เห็นถึง ความเปราะบางของบล็อกเชน และการเปลี่ยนแปลงอะไรบางอย่างอาจจะส่งผลให้บล็อกเชนปัง หรือพังได้เลยทีเดียว หากไม่คิดให้รอบคอบ
นี่จึงอาจจะพอเป็นคำอธิบายได้ว่า ทำไมเชนบางเชน (คงไม่ต้องบอกว่าเป็นเชนใด) จึงอาจจะเลือกคงความเป็น original ที่ไม่ค่อยกล้าเปลี่ยนอะไรมาก รวมถึง block size, block time และวิธีการเก็บค่าธรรมเนียม ซึ่งส่งผลทำให้ค่าธรรมเนียมค่อนข้างแพงนั่นเอง
อ้างอิง :
โฆษณา