วิธีเอาชนะ Ethereum "คนเก็บขยะ" นี่คือสามวิธีแก้ไข
คุณเคยมีประสบการณ์ในการส่งเงินจำนวนหนึ่งไปยังบัญชีเพียงเพื่อให้มันหายไปหรือไม่? คุณอาจถูกวางยาโดย "คนเก็บขยะ" เราอยู่ที่นี่เพื่อช่วยคุณให้พ้นวิกฤต
หากคีย์ส่วนตัวของคุณถูกขโมย โดยปกติผู้กระทำความผิดจะจัดโปรแกรม "คนเก็บกวาด" เพื่อตรวจสอบบัญชีของคุณ จากนั้นรอโอกาสที่จะกินสินทรัพย์ในบัญชีของคุณ ไม่ว่าคุณจะฝาก ETH หรือโทเค็นอื่นๆ ในบัญชีนี้ หรือได้รับ แอร์ดรอป หรืออะไรทำนองนั้น
บทความนี้อธิบายถึงวิธีที่ "คนเก็บขยะ" กินทรัพย์สินของผู้ใช้ และให้สามวิธีในการประหยัดเงินที่ยังไม่ได้กิน (เช่น เงินฝาก)
รหัสส่วนตัวของผู้ใช้รั่วไหลได้อย่างไร?
เมื่อเร็ว ๆ นี้ เราเห็นผู้ใช้จำนวนมากสวมรอยเป็นผู้ดูแลของกลุ่ม Telegram แล้วเสนอ "ความช่วยเหลือ" แก่ผู้ใช้ในช่องทางหลักของกลุ่มที่ถูกต้องเหล่านี้ (แม้ว่าพวกเขาจะไม่ใช่ผู้ดูแลจริง แต่พวกเขากำลังคัดลอกโปรไฟล์ของผู้ดูแลจริงเท่านั้น เปลี่ยนชื่อผู้ใช้เล็กน้อย) ผู้ดูแลระบบปลอมมักจะใช้ภาษาแบบมืออาชีพเพื่อสร้างความสับสนให้กับผู้ใช้ แบ่งปันลิงก์ไปยังผู้ใช้ที่ดูเหมือนว่าเป็นเว็บไซต์ที่ถูกต้องตามกฎหมาย (เนื่องจากการรับรองแบรนด์) ไซต์เหล่านี้ขอรหัสส่วนตัวหรือวลีเริ่มต้นจากผู้ใช้
จากนั้นโทเค็นของคุณจะหายไป และจะมี "คนเก็บขยะ" ที่จะเริ่มตรวจสอบบัญชีของคุณ
นี่คือตัวอย่างของไซต์ฟิชชิ่ง:
ขอขอบคุณนักวิจัย @dubstard ที่เปิดเผยกิจกรรมมากมายที่แอบอ้างว่าเป็น WalletConnect
"คนเก็บขยะ" ทำงานอย่างไร?
"Scavenger" คือโค้ดส่วนหนึ่งที่ตรวจสอบบล็อกเชน (รวมถึงกลุ่มธุรกรรม ซึ่งในทางเทคนิคแล้วไม่ใช่เชน) มีความเร็วในการตอบสนองที่เร็วกว่ามนุษย์ และได้รับการตั้งโปรแกรมให้เซ็นธุรกรรมเฉพาะที่ตรงตามกฎ
กล่าวอีกนัยหนึ่ง "คนเก็บขยะ" มองไม่เห็นคุณ ไม่รู้ว่าคุณกำลังดูที่อยู่ของคุณบนเบราว์เซอร์บล็อกเชน หรือ "เชื่อมต่อ" ที่อยู่ของคุณกับอินเทอร์เฟซผู้ใช้ของ dApp จะเห็นเฉพาะกิจกรรมของคุณเมื่อคุณเซ็นธุรกรรมและถ่ายทอดไปยังเครือข่าย
"Scavenger" และการหลอกลวงแบบฟิชชิงที่ใช้ "Scavenger" ได้พัฒนาไปตามกาลเวลา
วิวัฒนาการของ "คนเก็บขยะ"
การหลอกลวงประเภทหนึ่งที่ได้รับความนิยมอย่างมากในปี 2560 ใช้ประโยชน์จากโทเค็นที่มีฟังก์ชันล็อค [เช่น ไม่สามารถโอนสาย () ได้สำเร็จ] และฟีดราคา Dave Appleton โพสต์ข้อความเปิดโปงการหลอกลวงประเภทนี้
ในการหลอกลวงประเภทนี้ พวกมิจฉาชีพจะได้รับโทเค็นที่สามารถล็อคได้ก่อน แต่ตัวสำรวจบล็อกจะยังคงให้ราคาของโทเค็นดังกล่าว [ซึ่งเป็นที่นิยมมากที่สุดคือ Minerum (MNE)] จากนั้น สแกมเมอร์จะ (แสร้งทำเป็นไม่ตั้งใจ) เผยแพร่คีย์ส่วนตัวของที่อยู่ที่เก็บโทเค็นดังกล่าว และหลอกล่อให้เหยื่อนำโทเค็นในที่อยู่นั้นไป ในการถอนโทเค็น เหยื่อจะโอน ETH ไปยังที่อยู่นี้เป็นค่าธรรมเนียมน้ำมัน อย่างไรก็ตาม นักต้มตุ๋นได้จัดเตรียม "คนเก็บกวาด" เพื่อโอน ETH ที่เหยื่อโอนไปยังบัญชีของพวกเขาเองในพริบตา ตามทฤษฎีแล้ว โทเค็นที่ถูกล็อคถือว่าไม่มีค่า ดังนั้นนักต้มตุ๋นจึงพยายามกู้คืนมูลค่าที่ถูกล็อคบางส่วนจากผู้ใช้ที่ไม่สงสัย
วันนี้ที่อยู่ที่ถูกแฮ็กได้ถูกวางไว้ในขนาดใหญ่พร้อมกับ ETH "คนเก็บกวาด" พื้นฐาน นอกจากนี้ยังมีกลุ่มหลอกลวงบางกลุ่มที่ใช้ "คนเก็บขยะ" ขั้นสูงอย่างมีเหตุผล และจะกินโทเค็น ERC 20 ตามฟีดราคา
เมื่อไม่นานมานี้ ฉันได้ทำการวิจัยเกี่ยวกับที่อยู่ที่ถูกแฮ็กและพบว่า "คนเก็บขยะ" เหล่านี้ยังคงพัฒนาอยู่:
1) "Scavengers" ชอบกินสินทรัพย์ที่มีมูลค่าสูง แม้ว่านั่นหมายถึงค่าธรรมเนียมการทำธุรกรรมที่มากขึ้นก็ตาม
2) "Scavenger" จะใช้ ETH ที่มีอยู่ทั้งหมดเพื่อขโมยมูลค่ามากที่สุดเท่าที่จะเป็นไปได้ และการทำธุรกรรมนั้นมีความเป็นไปได้สูงที่จะชนะใน nonce เดียวกัน
3) "Scavenger" มีเครื่องมือจับคู่ที่จับคู่โทเค็นดั้งเดิมกับโทเค็นที่จำนำ (เช่น xKNCa = KNC) เพื่อรับฟีดราคาสำหรับโทเค็นที่จำนำ
4) "Scavenger" มีตัวนับ nonce ภายในของตัวเอง หาก nonce สูงสุดไม่ได้รับการยืนยัน (หรือทิ้ง/เปลี่ยน) ในช่วงระยะเวลาหนึ่ง ระบบจะรีเซ็ต nonce เป็นระยะๆ เป็น
eth.getTransactionCount()
เอาต์พุต
5) เราสามารถเห็นได้จากกิจกรรมบางอย่างในห่วงโซ่ว่าหากสินทรัพย์ที่มีมูลค่าสูงกลายเป็นเหยื่อในสายตาของ "คนเก็บขยะ" "คนเก็บขยะ" จะโอน ETH บางส่วนไปยังบัญชีที่เกี่ยวข้องเป็นค่าธรรมเนียมน้ำมัน ดังนั้น สินทรัพย์ถูกโอนออกจากบัญชี
6) "คนเก็บขยะ" บางรายจะกำหนดเกณฑ์ขั้นต่ำสำหรับมูลค่าสินทรัพย์ "Scavenger" จะไม่กินสินทรัพย์ที่ต่ำกว่าเกณฑ์นี้ ซึ่งหมายความว่าคุณอาจไม่ทราบว่ามี "คนเก็บขยะ" ในบัญชีของคุณ คิดอย่างรอบคอบ.
เนื่องจากเราได้เขียนเกี่ยวกับ "คนเก็บขยะ" เป็นครั้งแรกในปี 2560 "คนเก็บขยะ" ในปัจจุบันจึงไม่ใช่สิ่งที่พวกเขาเคยเป็น ช่วยให้ผู้ปฏิบัติงานได้รับผลกำไรสูงสุดในขณะที่เพิ่มการสูญเสียของเหยื่อให้สูงสุด
หยุดนะ! คนเก็บขยะ!
จะเอาชนะ "คนเก็บขยะ" ได้อย่างไร?
ก่อนอื่น คุณในฐานะมนุษย์ไม่ได้เร็วกว่าโค้ด ดังนั้นโซลูชันของเราจะเกี่ยวข้องกับโค้ด ต่อไปนี้เป็นวิธีแก้ปัญหาต่างๆ สำหรับคุณ แม้ว่าจะไม่สามารถรับประกันได้ว่าจะได้ผล 100% แต่ก็มีวิธีที่เหมาะกับคุณเสมอ
คุณต้องสร้างรายการเหรียญที่คุณต้องการกอบกู้ (ตามลำดับความสำคัญ) เพื่อให้คุณสามารถวางแผนได้ง่าย รายการนี้จำเป็นต้องมีสิ่งต่อไปนี้:
ที่อยู่สัญญาโทเค็น
มีการใช้โทเค็นสำหรับการจำนำหรือไม่ (ไม่ว่าจะมีการจำกัดเวลาสำหรับการปลดล็อกหรือไม่)
สามารถโอนโทเค็นได้
มูลค่าโทเค็น (พิจารณาจากวิจารณญาณของผู้ใช้หรือมูลค่า USD สำหรับการจัดลำดับความสำคัญ)
สิ่งสำคัญที่สุดคือคุณต้องมีระเบียบเพื่อที่จะดำเนินการโปรแกรมได้อย่างรวดเร็วและมีประสิทธิภาพ ดังสุภาษิตที่มีชื่อเสียงที่ว่า “สิ่งใดถูกเตือนล่วงหน้า และไม่มีอะไรถูกเตือนล่วงหน้า”
การใช้เครือข่าย Taichi
"คนเก็บขยะ" ทำงานโดยการตรวจสอบธุรกรรมในกลุ่มธุรกรรมสำหรับการโอนไปยังที่อยู่ "เหยื่อ" ด้วยวิธีนี้ "คนเก็บขยะ" สามารถลงนามในธุรกรรมอื่นและถ่ายทอดธุรกรรมก่อนที่ธุรกรรมจะได้รับการยืนยัน ซึ่งจะเป็นการรับเงินโอน
Taichi Network อนุญาตให้คุณส่งธุรกรรมที่ลงนามโดยตรงไปยังนักขุด (เช่น Spark Pool) โดยไม่ต้องเผยแพร่ไปยังกลุ่มธุรกรรมสาธารณะ ซึ่งหมายความว่าการทำธุรกรรมของคุณจะเข้าสู่จุดบอดของ "คนเก็บขยะ" และจะไม่ถูกยึดครองโดยหุ่นยนต์ "คนเก็บขยะ" (อย่างน้อยจากประสบการณ์ของฉัน)
ที่มา: TAICHI.NETWORK
วิธีการเฉพาะคือการเซ็นธุรกรรมทั้งหมดของคุณล่วงหน้าตามลำดับและส่งไปยัง Taiji Network โดยทางโปรแกรม "ผู้เก็บกวาด" ส่วนใหญ่ตรวจสอบเฉพาะกลุ่มธุรกรรมสาธารณะสำหรับธุรกรรม Ethereum ที่รอการรวมเข้าไว้ และอย่าเรียก eth_getBalance สำหรับบล็อกใหม่แต่ละบล็อก (นี่คือการบันทึกรอบ CPU และการเรียก RPC) กล่าวอีกนัยหนึ่ง "ผู้เก็บขยะ" ไม่สามารถเห็น ETH ที่ส่งไปยังบัญชี "เหยื่อ" ผ่านกลุ่มการทำธุรกรรมส่วนตัว และจะไม่กินมัน
คุณต้องทำการคำนวณบางอย่างเพื่อให้แน่ใจว่า ETH ที่ส่งไปยังบัญชีเป็นค่าก๊าซนั้นสามารถใช้ได้อย่างเต็มที่สำหรับแต่ละธุรกรรมที่ลงนาม "Scavenger" อาจพลาดการวิ่งเร็วหากนับถูก! (โดยปกติแล้ว ฉันจะกำหนดค่าเริ่มต้นให้ค่าน้ำมันสูงกว่าค่าอ้างอิง "Rapid" บน GasNow สองสามเปอร์เซ็นต์ เพื่อเพิ่มความน่าจะเป็นของธุรกรรมที่จะรวมอยู่ในบล็อกถัดไป)
คุณสามารถใช้ MyCrypto ออฟไลน์เพื่อสร้างลายเซ็นธุรกรรมและส่งไปยังเครือข่าย Taichi เมื่อพร้อม หรือใช้ ethers.js (หรือไลบรารีโค้ดอื่นๆ) เพื่อเขียนโค้ดเพื่อสร้างธุรกรรมที่ลงนาม
ใช้สัญญาอัจฉริยะที่มีฟังก์ชั่นทำลายตัวเอง
วิธีนี้คล้ายกับการใช้ Tai Chi Network เราสามารถใช้สัญญาอัจฉริยะเพื่อโอน ETH ไปยังบัญชีโดยไม่ต้องเปิดเผยธุรกรรมในกลุ่มธุรกรรมสาธารณะ ในการทำเช่นนี้ เราสามารถใช้สัญญาอัจฉริยะผ่านที่อยู่ที่ปลอดภัย และส่ง ETH ไปยังที่อยู่ที่ถูกแฮ็กผ่านตัวสร้างของมัน (นี่จะเป็นการทำธุรกรรมภายใน)
pragma sopdity >=0.7.0 <0.9.0; contract MoveETH { constructor(address sendToAddress) payable { address payable addr = payable(address(sendToAddress)); selfdestruct(addr); }}
` ด้วยการปรับใช้สัญญานี้ เราสามารถส่ง ETH และสตริงที่อยู่ที่ถูกแฮ็กไปยังพารามิเตอร์ของตัวสร้าง สัญญาถูกสร้างขึ้นและทำลายตัวเองในธุรกรรมเดียวกัน ในหมู่พวกเขา `selfdestruct()` หมายความว่าเราจะล้างสถานะ blockchain ของสัญญานี้ (ดังนั้นสัญญานี้จึงมีเพียงครั้งเดียว) และส่ง ETH ไปยังที่อยู่ที่ถูกแฮ็กในธุรกรรมเดียวกัน `
ตัวอย่าง:
https://goerp.etherscan.io/tx/0x82ccb222eae55aaea73dd0efee1ea6ed7320f880889f280d4a343b8823f86692
โปรดทราบว่าแม้ว่าวิธีนี้จะได้ผล แต่ก็มีค่าใช้จ่ายเพิ่มเติม เนื่องจากเราทำมากกว่าการโอน ETH จากบัญชีหนึ่งไปยังอีกบัญชีหนึ่ง วิธีนี้ต้องใช้ค่าแก๊สประมาณ 70,000 เมื่อราคาก๊าซสูง ค่าก๊าซเพียงอย่างเดียวจะสูงถึง 0.0112 ETH
ต่อไป เราจะเผยแพร่การทำธุรกรรมที่ลงนามล่วงหน้าจากที่อยู่ที่ถูกแฮ็กผ่านเครือข่าย Taiji (สามารถใช้โหนดสาธารณะได้ที่นี่ โปรดตั้งค่ายอดคงเหลือ ETH ทั้งหมดในบัญชีเป็นค่าธรรมเนียมน้ำมัน เพื่อไม่ให้ "คนเก็บกวาด" ยึดครอง (อย่างน้อยก็พยายามลดความเป็นไปได้นี้) เพราะในกรณีนี้ "คนเก็บขยะ" จะต้องส่ง ETH มากขึ้นไปยังบัญชีที่ถูกแฮ็กเพื่อให้ชนะการประมูลค่าน้ำมัน)
การใช้แฟลชบอท
โดยทั่วไป เราจำเป็นต้องจ่าย ETH เพื่อทำธุรกรรมบนเครือข่าย (เนื่องจากผู้ส่งธุรกรรมเป็นผู้ชำระค่าธรรมเนียมการทำธุรกรรม) อย่างไรก็ตาม ด้วย Flashbots เราสามารถรับธุรกรรมจากบัญชีภายนอกบนเครือข่ายโดยไม่ต้องเสียค่าธรรมเนียมน้ำมัน (เช่น ค่าธรรมเนียมการทำธุรกรรม) เพียงแค่ "ติดสินบน" นักขุดด้วยเงินจากบัญชีอื่น กล่าวอีกนัยหนึ่ง เราไม่จำเป็นต้องโอน ETH จำนวนหนึ่งไปยังที่อยู่ที่ถูกแฮ็กเป็นค่าธรรมเนียมการจัดการ และเราสามารถนำโทเค็นที่อยู่นี้ออกไปได้ ถูกต้อง แค่นั้นแหละ!
แผนการนี้ต้องใช้สองบัญชี - บัญชีที่ถูกแฮ็กและบัญชีที่ใช้ติดสินบนคนงานเหมือง
ทีมงาน Flashbots ได้เปิดตัวโครงการ Flashbots/searcher-sponsored-tx ซึ่งแนะนำหลักการพื้นฐานของการทำธุรกรรมบนห่วงโซ่ผ่านโครงการนี้
เราจะใช้เงินจากบัญชีอื่นเพื่อชำระค่าธรรมเนียมการทำธุรกรรม ดังนั้นจึงไม่จำเป็นต้องใช้ ETH ในบัญชีที่ถูกแฮ็ก อันที่จริง เราหวังว่าจะไม่มี ETH ในบัญชีที่ถูกแฮ็ก ท้ายที่สุด สิ่งสุดท้ายที่เราต้องการคือให้นักต้มตุ๋น/"คนเก็บขยะ" ตระหนักว่าเราต้องการถอนเงินและใช้ ETH ดั้งเดิมในบัญชีเพื่อไล่เราออกไป .
เพื่อให้แน่ใจว่าไม่มี ETH ในบัญชีที่ถูกแฮ็ก เราขอแนะนำให้ใช้เบิร์นเนอร์บอท
โดยทั่วไป เราแนะนำให้เรียกใช้เบิร์นเนอร์บอทในเครื่องมากกว่าหนึ่งเครื่องและใช้โหนด RPC ที่แตกต่างกันสำหรับแต่ละอินสแตนซ์ ตัวอย่างเช่น ใช้ Infura เพื่อเรียกใช้เบิร์นเนอร์ในเครื่องและผู้ให้บริการรายอื่น เช่น Quiknode เพื่อเรียกใช้เบิร์นเนอร์บนเซิร์ฟเวอร์ระยะไกล สิ่งนี้ช่วยให้เกิดความซ้ำซ้อนในกรณีที่เกิดปัญหา เช่น เวลาแฝงของเครือข่ายสูงหรือความล้มเหลวของโหนด (เช่น การจำกัดอัตรา ปัญหาการซิงโครไนซ์ ฯลฯ)
โค้ดใน Flashbots/searcher-sponsored-tx จำเป็นต้องแก้ไขตามความต้องการเฉพาะของคุณ แต่มีเครื่องมือที่สามารถช่วยคุณบันทึกโทเค็นในที่อยู่ที่ถูกแฮ็กได้ กลไก Flashbots มีความยืดหยุ่นสูงและสามารถรองรับการโอนสาย () เพียงครั้งเดียว หรือยกเลิกการเดิมพัน () และการโอนสาย ()
หากคุณไม่เข้าใจโค้ด คุณยังสามารถลองใช้ UI การทำงานของ Flashbots ที่จัดทำโดยเว็บไซต์ @kendricktan/flashbots.tools:https://flashbots.tools/。
จะหลีกเลี่ยง "คนเก็บขยะ" โดยพื้นฐานได้อย่างไร
แน่นอนว่ามาตรการป้องกันที่ดีที่สุดคือการปกป้องที่อยู่ของคุณเองจากการถูกแฮ็กโดย "คนเก็บขยะ" ดังนั้นคุณจึงไม่จำเป็นต้องต่อสู้กับ "คนเก็บขยะ" อย่างมีไหวพริบ
ในช่วงไม่กี่ปีที่ผ่านมา เราได้เห็นสิ่งที่ตรงกันข้ามใน UI ของแอปบางส่วน ซึ่งช่วยให้ผู้ใช้สามารถใช้ข้อมูลดิบที่เป็นความลับบนอินเทอร์เฟซ dapp ได้ นี่เป็นแนวทางปฏิบัติที่ไม่ปลอดภัยอย่างยิ่งและไม่ควรสนับสนุน
อย่าป้อนข้อมูลลับดั้งเดิมของคุณ (คีย์ส่วนตัว ไฟล์ที่เก็บคีย์ และวลีเริ่มต้น) บนอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ตหรือหน้าเว็บใดๆ
เราขอแนะนำให้ใช้กระเป๋าเงินฮาร์ดแวร์เพื่อให้แน่ใจว่าคีย์ส่วนตัวถูกจัดเก็บไว้ในอุปกรณ์แยกต่างหาก หากคุณใช้ MetaMask เพื่อโต้ตอบกับ dApps MetaMask เพิ่งเปิดตัวการอัปเดตที่อนุญาตให้ผู้ใช้ใช้ที่อยู่กระเป๋าเงินฮาร์ดแวร์หลายรายการ


