การโจมตีแบบ Double-Spend: ทำไมคุณจึงไม่สามารถดูแค่ “ส่ง” สำหรับธุรกรรมบนบล็อกเชน

ผู้ใช้จำนวนมากเชื่อว่าเมื่อธุรกรรมบนบล็อกเชนถูก "ส่ง" แล้ว เงินทุนจะไปถึงจุดหมายอย่างปลอดภัย แต่ความเป็นจริงไม่ได้เรียบง่ายอย่างนั้น สำหรับแพลตฟอร์มแลกเปลี่ยน ผู้ค้า และผู้ใช้ทั่วไป สิ่งที่สำคัญจริงๆ ไม่ใช่แค่การที่ธุรกรรมถูกส่งออกไปแล้ว แต่คือการที่ธุรกรรมนั้นได้รับการยืนยันโดยบล็อกหรือไม่ จำนวนการยืนยันเพียงพอหรือไม่ และสายโซ่พื้นฐานมีความเสี่ยงที่จะถูกจัดเรียงใหม่หรือไม่ การเข้าใจแนวคิดเหล่านี้คือรากฐานของการป้องกันการโจมตีแบบ "double-spend"
บทความนี้มุ่งเน้นไปที่เครือข่าย proof-of-work โดยที่ความลึกของการยืนยันและการพิสูจน์งานสะสมมีความสำคัญต่อความเสี่ยงในการจัดเรียงใหม่ ระบบการประนีประนอมอื่นๆ ใช้กลไกความแน่นอนที่แตกต่างกัน
การโจมตีแบบ Double-Spend คืออะไร?
การโจมตีแบบ "double-spend" คือความพยายามของผู้โจมตีในการใช้สินทรัพย์ดิจิทัลเดียวกันสองครั้ง
เพื่อใช้ตัวอย่างที่เข้าใจง่ายที่สุด: ผู้โจมตีถือ BTC เพียง 1 BTC เท่านั้น แต่เริ่มต้นธุรกรรมที่ขัดแย้งกันสองรายการพร้อมกัน หนึ่งรายการจ่ายให้ผู้ค้าหรือแพลตฟอร์มสำหรับการฝาก การซื้อ หรือบริการ; อีกรายการหนึ่งส่ง BTC จำนวนเดียวกันกลับไปยังที่อยู่วอลเล็ตที่ผู้โจมตีควบคุม เนื่องจากทั้งสองธุรกรรมใช้เงินจากแหล่งเดียวกัน จึงมีเพียงหนึ่งรายการเท่านั้นที่จะถูกยอมรับบนบล็อกเชน หากผู้ค้าหรือแพลตฟอร์มเชื่อถือธุรกรรมที่ “ยังไม่ได้รับการยืนยันอย่างมั่นคง” เกินไป ผู้โจมตีสามารถใช้ประโยชน์จากการจัดเรียงใหม่ของโซ่หรือการแทนที่ด้วยโซ่ที่ยาวกว่าในภายหลัง ทำให้บันทึกการฝากที่เคยเห็นมาก่อนกลายเป็นโมฆะ — ในขณะที่สินทรัพย์ได้ถูกปล่อยให้แก่ผู้โจมตีแล้ว
ดังนั้น การโจมตีแบบ double-spend ไม่ได้เกี่ยวกับการ "คัดลอกสินทรัพย์" — มันใช้ประโยชน์จากการยืนยันธุรกรรมไม่เพียงพอ การผลิตบล็อกที่แข่งขันกัน หรือการจัดเรียงใหม่ของโซ่ เพื่อให้สินทรัพย์เดียวกันถูกใช้สองครั้งภายในกระบวนการทางธุรกิจ
ทำไมการโจมตีแบบ double-spend จึงเกิดขึ้น?
แม้ว่าบล็อกเชนจะเน้นว่าธุรกรรมไม่สามารถย้อนกลับได้ แต่ความ "ไม่สามารถย้อนกลับได้" นี้มักไม่เกิดขึ้นทันทีเมื่อธุรกรรมถูกส่งครั้งแรก มันค่อยๆ เข้าใกล้ความไม่สามารถย้อนกลับได้หลังจากถูกบรรจุ แพร่กระจาย และยืนยัน
ธุรกรรมบนโซ่โดยทั่วไปจะผ่านหลายสถานะ:
| รัฐ | คำอธิบาย |
| สร้าง | วอลเล็ตสร้างธุรกรรม |
| การออกอากาศ | ธุรกรรมถูกส่งไปยังเครือข่ายบล็อกเชน |
| กำลังรอ | กำลังรอผู้เหมืองหรือตัวตรวจสอบในการแพ็กเกจและยืนยัน |
| ยืนยันแล้ว | ธุรกรรมได้เข้าสู่บล็อกและเริ่มสะสมการยืนยัน |
| ล้มเหลว / ถูกยกเลิก / ถูกแทนที่ | ธุรกรรมล้มเหลว หรือถูกแทนที่หรือยกเลิก |
ความเสี่ยงมักเกิดขึ้นในระหว่างขั้นตอนที่อยู่ในสถานะรอดำเนินการ และในขั้นตอนที่ยืนยันแล้วแต่มีการยืนยันน้อยเกินไป ณ จุดเหล่านี้ รายการธุรกรรม “ดูเหมือนจะมีอยู่” แต่ยังไม่มีความมั่นคงเพียงพอ หากเครือข่ายเกิด Fork หรือหากผู้โจมตีควบคุมพลังการแฮชจำนวนมากและสร้างโซ่ที่ยาวกว่า บล็อกที่มีรายการธุรกรรมเดิมอาจถูกยกเลิก — และบันทึกธุรกรรมอาจ “หายไป”
นี่คือสิ่งที่เรียกว่า “การจัดเรียงใหม่ของโซ่” การจัดเรียงใหม่ของโซ่ไม่ใช่เพียงการลบบันทึกเท่านั้น แต่หมายถึงเครือข่ายทั้งหมดยอมรับโซ่ที่แตกต่างกัน ทำให้บล็อกบางส่วนบนโซ่เดิมกลายเป็นไม่ถูกต้อง หากธุรกรรมการฝากมีอยู่เฉพาะบนสาขาที่ถูกทิ้งไป บันทึกการฝากที่แพลตฟอร์มเคยเห็นอาจสูญเสียความถูกต้อง
ทำไมการยืนยันจึงสำคัญมาก?
จำนวนการยืนยันกำหนดความยากในการยกเลิกธุรกรรม
เมื่อธุรกรรมเข้าสู่บล็อกเป็นครั้งแรก มักจะมีการยืนยันเพียง 1 ครั้ง โดยจำนวนการยืนยันจะเพิ่มขึ้นพร้อมกับการสร้างบล็อกใหม่ทุกบล็อก — 2 การยืนยัน, 3 การยืนยัน, 6 การยืนยัน, หรือแม้แต่ 12 การยืนยัน ยิ่งจำนวนการยืนยันสูงเท่าใด จำนวนบล็อกที่ต้องถูกย้อนกลับเพื่อพลิกกลับธุรกรรมก็ยิ่งมากขึ้น และต้นทุนของการโจมตีก็ยิ่งสูงขึ้น
นี่คือเหตุผลที่แพลตฟอร์มแลกเปลี่ยนมักไม่เครดิตผู้ใช้ทันทีที่ 0 ถึง 1 การยืนยัน ความเสี่ยงสูงขึ้นในขั้นตอนนี้ โดยเฉพาะสำหรับบล็อกเชนที่มีพลังการแฮชต่ำหรือมีประวัติการโจมตี 51% หรือการจัดเรียงใหม่ของโซ่ ซึ่งต้องการเกณฑ์การยืนยันที่สูงกว่า
📌 กรณีสำคัญ: การโจมตีด้วยพลังการแฮช 51% และเหตุการณ์การใช้จ่ายซ้ำของ ETC ในปี 2019
การโจมตีแบบ double-spend ไม่ใช่ภัยคุกคามเชิงทฤษฎี ในเดือนมกราคม 2019 Ethereum Classic (ETC) เผชิญกับการโจมตีแบบ 51% ที่เกี่ยวข้องกับธุรกรรม double-spend
ขั้นตอนการโจมตีทั่วไป:
| ขั้นตอน | การกระทำ |
| 1 | ผู้โจมตีได้รับอำนาจการคำนวณ (hash power) ที่โดดเด่นเป็นอันดับแรกบนเครือข่าย ETC ซึ่งทำให้พวกเขาสามารถขุดโซ่ที่ยาวกว่าแบบส่วนตัว |
| 2 | ผู้โจมตีฝาก ETC ไปยังแพลตฟอร์มแลกเปลี่ยน |
| 3 | หลังจากแพลตฟอร์มแลกเปลี่ยนตรวจสอบว่าธุรกรรมการฝากถึงจำนวนการยืนยันที่ต้องการ ระบบได้เติมเงินเข้าบัญชีของผู้โจมตี |
| 4 | ผู้โจมตีขาย ETC บนแพลตฟอร์มแลกเปลี่ยนอย่างรวดเร็ว แปลงเป็น USDT, BTC หรือสินทรัพย์อื่นๆ และถอนเงินออก |
| 5 | ในขณะเดียวกัน ผู้โจมตียังคงขุดโซ่ที่ยาวกว่าอย่างลับๆ ซึ่งไม่รวมธุรกรรมการฝาก |
| 6 | เมื่อโซ่ที่ยาวขึ้นนี้ถูกเผยแพร่ไปยังเครือข่าย เครือข่ายได้รับโซ่หลักใหม่ และโซ่การฝากที่แพลตฟอร์มแลกเปลี่ยนเคยเห็นถูกย้อนกลับ |
ผลลัพธ์ของรูปแบบการโจมตีนี้: การฝากที่ถูก "ยืนยัน" ในบันทึกของแพลตฟอร์มแลกเปลี่ยนหายไป แต่ผู้โจมตีได้ถอนสินทรัพย์ที่ถูกแปลงแล้วไปแล้ว ทำให้การใช้จ่ายซ้ำสองครั้งเสร็จสมบูรณ์
กรณีนี้แสดงให้เห็นข้อเท็จจริงสำคัญ: แม้ว่าธุรกรรมจะอยู่บนบล็อกเชนแล้ว หากความปลอดภัยของเครือข่ายพื้นฐานไม่เพียงพอ หรือผู้โจมตีมีความสามารถในการจัดเรียงบล็อกใหม่ ธุรกรรมยังสามารถถูกยกเลิกได้ “ความแน่นอน” ของธุรกรรมบนบล็อกเชนไม่ได้เกิดขึ้นทันทีอย่างสมบูรณ์ — มันจะค่อยๆ เพิ่มขึ้นตามจำนวนการยืนยันที่เพิ่มขึ้น
🛡️ วิธีหลีกเลี่ยงการโจมตีแบบ Double-Spend ระหว่างการทำธุรกรรม
การป้องกันการโจมตีแบบ double-spend ไม่ได้ขึ้นอยู่กับ “หน้าจอภาพของอีกฝ่าย” หรือ “มี transaction hash อยู่” — แต่เป็นเรื่องของการสร้างกลไกการยืนยันและการควบคุมความเสี่ยงที่เหมาะสม
ก่อนอื่น อย่าถือว่า "Broadcast" เป็น "รับแล้ว"
ผู้ใช้ที่เห็นสถานะ “ส่ง” ในวอลเล็ตของตน หรือฝ่ายตรงข้ามให้รหัสธุรกรรม (transaction hash) ไม่ได้หมายความว่าเงินทุนปลอดภัย การถ่ายทอด (broadcast) เฉพาะหมายความว่าธุรกรรมได้เข้าสู่ขั้นตอนการแพร่กระจายในเครือข่าย — ไม่ได้หมายความว่าได้รับการยืนยันโดยบล็อกแล้ว การกระทำต่างๆ เช่น การบันทึกเงินฝาก การปล่อยเหรียญ การจัดส่งสินค้า หรือการให้บริการ ไม่สามารถอ้างอิงจากสถานะที่ยังค้าง (Pending) ได้
ที่สอง คุณต้องยืนยันสถานะการยืนยันบนโซ่
เพื่อพิจารณาว่าธุรกรรมนั้นเชื่อถือได้หรือไม่ อย่างน้อยต้องตรวจสอบ:
-
การดำเนินการได้ถูกรวมอยู่ในบล็อกหรือไม่
-
จำนวนการยืนยันปัจจุบันคืออะไร
-
รายการธุรกรรมนี้มีความเสี่ยงในการถูกแทนที่อย่างผิดปกติ ขัดแย้งกับรายการอื่น หรือถูกยกเลิกหรือไม่
สำหรับสถานการณ์ที่มีความเสี่ยงสูง อย่าเพียงแค่พิจารณา “ว่าธุรกรรมมีอยู่หรือไม่” — ให้พิจารณา “ว่าการยืนยันมีความมั่นคงหรือไม่”
ثالثly ตั้งจำนวนการยืนยันที่สมเหตุสมผลตามระดับความเสี่ยงของโซ่
บล็อกเชนแต่ละแห่งมีระดับความปลอดภัยที่ต่างกัน บล็อกเชนที่มีพลังการแฮชสูงและเป็นที่นิยมมีความแตกต่างอย่างมากจากบล็อกเชนที่มีมูลค่าตลาดต่ำและพลังการแฮชต่ำในแง่ของต้นทุนในการเผชิญกับการโจมตีแบบ 51% หรือการจัดเรียงใหม่ของโซ่ สำหรับบล็อกเชนที่มีความเสี่ยงสูง แพลตฟอร์มควรเพิ่มเกณฑ์การยืนยันการฝาก; สำหรับธุรกรรมขนาดใหญ่ ควรตั้งข้อกำหนดการยืนยันที่สูงขึ้นด้วย — ไม่ใช่วิธีเดียวที่ใช้ได้กับทุกกรณี
สี่ ใช้การตรวจสอบการควบคุมความเสี่ยงต่อพฤติกรรมการฝากที่ผิดปกติ
พฤติกรรมต่อไปนี้ควรได้รับการทบทวนเพิ่มเติม:
| พฤติกรรมผิดปกติ | คำอธิบายความเสี่ยง |
| การฝากจำนวนใหญ่หลายครั้ง ตามด้วยการขายและถอนอย่างรวดเร็วภายในช่วงเวลาสั้นๆ | เส้นทางการโจมตีแบบ double-spend ทั่วไป |
| การฝากบ่อยครั้งด้วยสกุลเงินดิจิทัลที่มีความปลอดภัยต่ำในอดีต | โซ่ที่มีพลังการแฮชต่ำมีต้นทุนการโจมตีต่ำ |
| ร้องขอถอนสินทรัพย์ทันทีหลังจากถึงจำนวนการยืนยันขั้นต่ำ | อาจใช้ช่องโหว่การยืนยันไม่เพียงพอ |
| ธุรกรรมที่มีความล่าช้าผิดปกติ สัญญาณของความขัดแย้ง หรือสถานะไม่เสถียรบนนักสำรวจบล็อกเชน | การจัดเรียงใหม่ของโซ่ที่อาจกำลังเกิดขึ้น |
พฤติกรรมเหล่านี้มักตรงกับรูปแบบการดำเนินงานของการโจมตีแบบ double-spend อย่างใกล้เคียง
ห้ามเชื่อหน้าจอการชำระเงินหรือสถานะหน้าเดียว
ภาพหน้าจอเป็นสิ่งที่ง่ายที่สุดในการปลอมแปลงและหลอกลวง ไม่ว่าจะเป็นการชำระเงินให้ผู้ค้า การซื้อขายแบบโอเวอร์เดอะเคาน์เตอร์ หรือการตรวจสอบการฝาก ให้พึ่งพาผู้ตรวจสอบบล็อกเชนและการยืนยันจากระบบควบคุมความเสี่ยงเท่านั้น — ไม่ใช่บันทึกการสนทนา ภาพหน้าจอการชำระเงิน หรือคำพูดปากเปล่า
หก ทำความเข้าใจว่า "ความไม่สามารถย้อนกลับ" ไม่ได้หมายถึง "ทันที"
เมื่อธุรกรรมบล็อกเชนบรรลุการยืนยันเพียงพอแล้ว มันจะยากมากที่จะยกเลิกได้จริง แต่เมื่อการยืนยันยังไม่เพียงพอ ธุรกรรมยังสามารถเปลี่ยนแปลงได้เนื่องจาก Fork, การรับส่งข้อมูลหนาแน่น, การแทนที่ หรือการจัดเรียงใหม่ของโซ่ ข้อเข้าใจผิดที่พบบ่อยที่สุดในการศึกษาด้านความปลอดภัยคือการตีความว่า “ธุรกรรมบล็อกเชนไม่สามารถยกเลิกได้” หมายถึง “เมื่อส่งแล้ว มันปลอดภัยอย่างสมบูรณ์” นี่คือช่องว่างทางความคิดที่ทำให้การโจมตีแบบ double-spend ประสบความสำเร็จ
💎 เคล็ดลับความปลอดภัยสำหรับผู้ใช้ทั่วไปและแพลตฟอร์ม
สำหรับผู้ใช้ทั่วไป สิ่งสำคัญที่สุดคืออย่าส่งสินค้า สินทรัพย์ดิจิทัล หรือบริการก่อนยืนยัน โดยเฉพาะในการซื้อขายนอกตลาด การโอนแบบเพียร์ทูเพียร์ และการชำระเงินกับผู้ไม่รู้จัก — การดูเพียงหน้าจอภาพโดยไม่ตรวจสอบการยืนยัน ถือว่าเสี่ยงมาก
สำหรับผู้ค้าและแพลตฟอร์ม การป้องกันที่มีประสิทธิภาพอย่างแท้จริงไม่ใช่ "ประสบการณ์แบบจำลอง" แต่เป็นกลไกที่ได้มาตรฐาน:
-
ระดับการยืนยันที่ชัดเจน
-
ระดับความเสี่ยงที่แตกต่างกันตามเครือข่าย
-
การระบุเส้นทางการถอนที่ผิดปกติ
-
ขยายเวลาการทบทวนสำหรับการฝากสินทรัพย์ที่มีความเสี่ยงสูง
-
เพิ่มความระมัดระวังสำหรับเหรียญที่มีประวัติการรีออร์แกนไนซ์หรือการโจมตีแบบ 51%
สรุป
แกนหลักของการโจมตีแบบ double-spend ไม่ใช่ “แฮกเกอร์คัดลอกเหรียญ” — แต่เป็นผู้โจมตีที่ใช้ประโยชน์จากธุรกรรมที่ยังไม่ได้รับการยืนยันอย่างมั่นคง เพื่อสร้างภาพลวงตาของ “ชำระแล้ว” ภายในกระบวนการทางธุรกิจ เหตุการณ์ ETC ปี 2019 ได้แสดงให้เห็นแล้วว่า ตราบใดที่โซ่พื้นฐานยังมีความเป็นไปได้ในการจัดเรียงใหม่ ธุรกรรมที่ได้รับการยืนยันไม่เพียงพอ不应ถือว่าได้รับอย่างสมบูรณ์
หลักการพื้นฐานของธุรกรรมที่ปลอดภัยสรุปได้ในหนึ่งประโยค:
ดูที่การยืนยัน ไม่ใช่ภาพหน้าจอ; ดูที่ความแน่นอนสุดท้าย ไม่ใช่สถานะภายนอก
จำนวนการยืนยันยิ่งสูง ช่องว่างสำหรับการโจมตีแบบ double-spend ที่ประสบความสำเร็จยิ่งน้อยลง
Disclaimer: The information on this page may come from third parties and does not necessarily reflect KuCoin’s views. It is provided for general reference only and should not be interpreted as financial or investment advice.
Virtual asset investments may involve risk. Please carefully assess the product risks and your own risk tolerance. For more information, please refer to our Terms of Use and Risk Disclosure.