Race Attack คืออะไร?
Race Attack คือกรณีที่มีคนเผยแพร่ธุรกรรมคริปโตสองรายการที่ขัดแย้งกันในเวลาใกล้เคียงกัน โดยหวังว่าธุรกรรมที่ผิดจะถูกยอมรับเป็นอันดับแรก มันเป็นกลยุทธ์คลาสสิกที่ใช้กับผู้ค้าปลีกที่รับการชำระเงินแบบ zero conf คิดว่าเหมือนการส่งเช็คสองใบจากบัญชีเดียวกัน แล้วลองเดิมพันว่าพนักงานจะประมวลผลใบที่คุณต้องการก่อน
“Race Attack ต้อง Replace by Fee.” ไม่ใช่เสียทีเดียว ขณะที่ RBF เกี่ยวข้องด้วย Race Attack สามารถเกิดขึ้นได้แม้จะไม่มีข้อบังคับการทดแทนที่ชัดเจน ซึ่งทำให้มันแตกต่างจาก Transaction Replacement Attack.
How Race Attack works
ลองนึกภาพคนหนึ่งจ่ายร้านด้วยคริปโตที่เคาน์เตอร์ พวกเขาต้องการกาแฟและต้องการเก็บเหรียญของตนไว้ นี่คือการเล่น:
- Step 1: ผู้บุกการสร้างธุรกรรมสองรายการที่ใช้งานเหรียญเดียวกัน แต่มีผู้รับที่ต่างกัน
- Step 2: พวกเขาส่งอันหนึ่งไปยังผู้ค้าปลีกและในเวลาเดียวกันกระหน่ำอีกอันไปยัง nodes ที่ต่างกันหวังว่าจะแพร่กระจายเร็วกว่า
- Step 3: ผู้ค้าปลีกเห็นว่าอันแรกมาถึงและถือว่าถูกชำระแล้ว และส่งมอบสินค้า
- Step 4: ผู้ขุดยืนยันธุรกรรมที่ขัดแย้งกันหนึ่งรายการ อีกรายการถูกปฏิเสธโดยเครือข่ายทันทีที่บล็อกลง
- Step 5: ถ้าอันที่ยืนยันเป็นเวอร์ชันที่ผู้ก่อเหตุต้องการ ผู้ค้าปลีกจะไม่ได้อะไรเลยนอกจากบทเรียน
ใช่ มันง่ายขนาดนั้น และใช่ เวลาเป็นเทคนิค
Why Race Attack Matters
แล้วถ้าล้มเหลว?
- Benefit: การรู้ถึง Race Attack ช่วยกำหนดกฎการชำระเงินที่สมเหตุสมผล เพื่อที่คุณจะไม่ส่งมอบสินค้าตามคำสัญญาที่ไม่ยุติ
- Perspective: นี่เป็นหนึ่งในรูปแบบของ Double Spending Attack แต่ไม่จำเป็นต้องอุปกรณ์หรูหราหรือกระเป๋าสตางค์หนา
- Relevance: คุณจะเห็นหัวข้อนี้ใน wallets จุดขาย (point of sale), e-commerce และบริการใดๆ ที่พิจารณาการชำระแบบ zero conf
หากคุณขายบางสิ่งที่มีมูลค่าหรือส่งของจริง ควรรอ transaction confirmations ก่อนส่งมอบ สำหรับการซื้อแบบในบุคคลที่เล็กๆ ให้ตั้งขีดจำกัดและใช้ wallets ที่ระบุความขัดแย้ง
Key Characteristics of Race Attack
คุณสมบัติหลักที่ทำให้ Race Attack โดดเด่น:
- Instant: มันเกิดขึ้นก่อนการยืนยันบล็อกแรก
- Conflicting: ธุรกรรมสองรายการใช้ง inputs เดียวกัน แต่มีเพียงหนึ่งรายการที่ยืนยันได้
- Speed: การแพร่กระจายและการเลือก miners ตัดสินผู้ชนะ ไม่ใช่ฮาร์ดแวร์ที่หรูหรา
- Different: ไม่จำเป็นต้อง 51% attacks หรือการควบคุมการขุด
Variations
Race Attack มีลักษณะคล้ายกันที่คุณอาจเจอไม่บ่อย:
- Classic: ธุรกรรมสองรายการขัดแย้งกันถูกเผยแพร่อย่างใกล้เคียงกัน
- Finney: นักขุด pre mine บล็อกหนึ่งพร้อมการ spend แล้วจ่ายให้ merchant แล้วเผยแพร่วิรันดร์บล็อกนั้น
- Vector76: รวมองค์ประกอบของบล็อกที่ pre mined และการจับเวลาที่หลอกล Exchanges
- RBF: เป้าหมายเดียวกันแต่พึ่งพากฎการ replacement ตามค่าธรรมเนียมแทนการแพร่กระจายอย่างเดียว
Topology ของเครือข่ายมีความสำคัญ ผู้ละเมิดสามารถเพิ่มโอกาสได้หากควบคุม peers หลายคนหรือปลอมตัวตน นั่นคือเหตุผลที่ Sybil attacks มักปรากฏในการสนทนาเกี่ยวกับการป้องกัน Race Attack
Example
มิจฉาชีพจ่ายที่ kiosk ด้วยการโอนแบบ zero conf แล้ว race กับธุรกรรมที่ขัดแย้งไปยัง miners และชนะ ทำให้ kiosk ยังไม่จ่ายแม้หน้าจอจะบอกว่า paid ชั่วคราว
Fun Fact
Race Attack ถูกพูดถึงในฟอรั่ม Bitcoin รุ่นแรกๆ และคำแนะนำแบบดั้งเดิมของ Satoshi ให้รอการยืนยันหลายรายการยังเป็นทางเลือกที่ดีที่สุด Rolex meets Reddit threads.
Wrap-Up
ในประโยคเดียว: Race Attack เป็นการเล่นตามเวลาเพื่อศูนย์ conf ดังนั้นเพิ่มความอดทนเล็กน้อยแล้วมันจะกลายเป็นเรื่องของเมื่อวานไปในทันที