ERC-20 คืออะไร? เป็นมาตรฐานโทเค็นที่ขับเคลื่อนระบบเศรษฐกิจของ Ethereum
ผมถือ USDT ไว้ในกระเป๋าเงิน MetaMask ครับ นอกจากนี้ยังมี LINK จำนวนหนึ่ง UNI เล็กน้อยจากการแลกเปลี่ยนเมื่อสัปดาห์ที่แล้ว และโทเค็นรูปสุนัขที่ใครบางคนแจกให้ แต่ผมลืมขายอยู่เรื่อยเลย โทเค็นเหล่านี้ทำหน้าที่แตกต่างกันโดยสิ้นเชิง Tether เป็น Stablecoin ที่มีเงินสดและพันธบัตรหนุนหลัง Chainlink ทำงานบนเครือข่าย Oracle ที่ป้อนข้อมูลจากโลกแห่งความเป็นจริงไปยัง Smart Contract ส่วน Uniswap นั้นควบคุม DEX ที่ใหญ่ที่สุดบน Ethereum ส่วนโทเค็นรูปสุนัขนั้นไม่มีประโยชน์อะไร แต่กระเป๋าเงินของผมแสดงโทเค็นทั้งหมดในรายการเดียวกัน ส่งได้ด้วยปุ่มเดียวกัน และทุกโปรโตคอล DeFi ที่ผมใช้ก็ยอมรับโทเค็นเหล่านี้โดยไม่ต้องตั้งค่าพิเศษใดๆ
ที่เป็นเช่นนั้นได้ก็เพราะทั้งสี่อย่างใช้กฎเดียวกัน พวกมันเป็นโทเค็น ERC-20 เหมือนกัน มีอินเทอร์เฟซเดียวกัน ฟังก์ชันเดียวกัน และขั้นตอนการทำงานเหมือนกัน และการเข้าใจความหมายที่แท้จริงของ ERC-20 คือขั้นตอนแรกในการทำความเข้าใจว่า Ethereum ทำงานอย่างไรในฐานะระบบเศรษฐกิจ
Fabian Vogelsteller เขียนข้อเสนอนี้ในเดือนพฤศจิกายน 2015 เขาตั้งชื่อมันอย่างน่าเบื่อว่า Ethereum Request for Comment หมายเลข 20 Vitalik Buterin ร่วมเขียนเวอร์ชันสุดท้าย ในปี 2017 ข้อเสนอนี้ได้รับการอนุมัติอย่างเป็นทางการ และหลังจากนั้นกระแส ICO ก็ถาโถมเข้ามาอย่างหนัก โครงการนับพันเปิดตัวโทเค็นในชั่วข้ามคืนเพราะ ERC-20 ทำให้การระดมทุนแทบจะฟรี หลังจากมีสัญญาโทเค็นกว่าครึ่งล้านฉบับ มาตรฐานนี้ก็ยังคงครองตลาดอยู่ นี่คือสิ่งที่มันทำและเหตุผลที่คุณควรสนใจมัน แม้ว่าคุณจะไม่คิดจะเขียนโค้ด Solidity แม้แต่บรรทัดเดียวก็ตาม
วิธีการทำงานของมาตรฐาน ERC-20
ชื่อนี้ดูซับซ้อนกว่าที่ควรจะเป็น ERC ย่อมาจาก Ethereum Request for Comment (คำขอความคิดเห็นของ Ethereum) 20 คือหมายเลขข้อเสนอ แค่นั้นเอง นักพัฒนาชื่อ Fabian กล่าวว่า "นี่คือกฎที่ทุกโทเค็นควรปฏิบัติตาม" และให้หมายเลขข้อเสนอของเขาเป็น 20 เพราะนั่นคือช่องว่างถัดไป ไม่ใช่กฎ 20 ข้อ ไม่ใช่โทเค็น 20 ตัว แต่เป็นเพียงข้อเสนอหมายเลข 20 ในคิวการปรับปรุงของ Ethereum
กฎเหล่านั้นระบุว่า: หากคุณต้องการสร้างโทเค็นที่แลกเปลี่ยนได้บน Ethereum สัญญาอัจฉริยะของคุณจะต้องมีฟังก์ชันเฉพาะเหล่านี้ "แลกเปลี่ยนได้" หมายความว่าแต่ละหน่วยของโทเค็นนั้นเหมือนกันทุกประการ USDC หนึ่งเหรียญเหมือนกับ USDC อื่นๆ ทุกเหรียญ คุณไม่จำเป็นต้องสนใจว่าคุณถือโทเค็น UNI ใดโดยเฉพาะ เพราะพวกมันสามารถแลกเปลี่ยนกันได้ทั้งหมด ในทางตรงกันข้าม NFT แต่ละเหรียญนั้นไม่ซ้ำกัน มาตรฐานต่างกัน กฎต่างกัน
มาตรฐาน ERC-20 กำหนดฟังก์ชันหลัก 6 ฟังก์ชันและเหตุการณ์ 2 เหตุการณ์ สัญญาโทเค็นที่สอดคล้องกับมาตรฐานทุกฉบับ ตั้งแต่ USDT ที่มีมูลค่าตลาด 140 พันล้านดอลลาร์ ไปจนถึงมีมคอยน์ที่ใครบางคนเพิ่งเปิดตัวเมื่อ 30 วินาทีที่แล้ว ล้วนใช้การเรียกใช้ฟังก์ชันเหล่านี้เหมือนกัน:
| การทำงาน | ฉบับภาษาอังกฤษแบบง่าย |
|---|---|
| อุปทานรวม() | "มีโทเค็นแบบนี้อยู่กี่ชิ้นในโลก?" |
| ยอดคงเหลือของ (ที่อยู่) | "กระเป๋าสตางค์ใบนี้มีกี่ใบ?" |
| โอน (ไปยัง, จำนวนเงิน) | "ส่งโทเค็นจำนวน X จากกระเป๋าเงินของฉันไปยังบุคคลนี้" |
| อนุมัติ (ผู้ใช้จ่าย, จำนวนเงิน) | "อนุญาตให้โปรโตคอล DeFi นี้ใช้โทเค็นของฉันได้สูงสุด X โทเค็น" |
| โอนเงินจาก (จาก, ถึง, จำนวนเงิน) | "ฉันได้รับอนุญาตให้โอนโทเค็นจากกระเป๋าเงิน A ไปยังกระเป๋าเงิน B" |
| ค่าเผื่อ (เจ้าของ, ผู้ใช้จ่าย) | "ผู้ใช้จ่ายรายนี้ยังสามารถใช้เงินจากวงเงินที่ได้รับจัดสรรได้อีกเท่าไหร่?" |
ทุกครั้งที่มีเหตุการณ์ใดเกิดขึ้น จะมีการบันทึกเหตุการณ์สองอย่างลงในบล็อกเชน เหตุการณ์ โอนจะ เกิดขึ้นทุกครั้งที่มีการย้ายโทเค็นระหว่างกระเป๋าเงิน เหตุการณ์ อนุมัติ จะเกิดขึ้นเมื่อมีคนอนุญาตให้ใช้จ่าย โปรแกรมสำรวจบล็อกเชนอย่าง Etherscan ใช้เหตุการณ์เหล่านี้เพื่อสร้างประวัติการทำธุรกรรมที่คุณเห็นเมื่อค้นหาโทเค็น
สามช่องข้อมูลเพิ่มเติมที่เป็นตัวเลือกจะช่วยเพิ่มเอกลักษณ์ให้กับโทเค็น ได้แก่ ชื่อ (name ) ที่ให้ป้ายกำกับที่อ่านง่ายสำหรับมนุษย์ ("Chainlink"), สัญลักษณ์ (symbol ) คือตัวย่อของโทเค็น ("LINK") และ จำนวนทศนิยม (decimals ) กำหนดความละเอียดในการแบ่งโทเค็น (โดยทั่วไปใช้ 18 เพื่อให้ตรงกับ ETH แต่ USDT ใช้ 6 ซึ่งทำให้เกิดข้อผิดพลาดมากกว่าที่ใครๆ อยากจะยอมรับ)
หกฟังก์ชัน สองเหตุการณ์ สามฟิลด์เสริม นั่นคือข้อกำหนดทั้งหมดอย่างแท้จริง ผมสามารถพิมพ์มันลงบนกระดาษเช็ดปากได้โดยยังมีที่ว่างเหลือสำหรับคราบกาแฟ และถึงกระนั้น ข้อกำหนดขนาดเท่ากระดาษเช็ดปากนี้กลับขับเคลื่อนระบบเศรษฐกิจโทเค็นที่มีมูลค่าหลายแสนล้านดอลลาร์ MetaMask อ่านฟังก์ชันเหล่านี้เพื่อแสดงยอดคงเหลือของคุณ Uniswap เรียกใช้ฟังก์ชันเหล่านี้เพื่อดำเนินการแลกเปลี่ยน Aave ใช้มันเพื่อจัดการการให้ยืม โปรโตคอล DeFi ทุกตัวที่คุณเคยใช้ล้วนสื่อสารกับโทเค็นผ่านอินเทอร์เฟซเดียวกันนี้ ความเรียบง่ายคือจุดสำคัญ

เหตุใด ERC-20 จึงเปลี่ยนแปลงทุกสิ่งทุกอย่างเกี่ยวกับ Ethereum
ผมเคยทำงานด้านคริปโตเคอร์เรนซีในปี 2016 ก่อนที่มาตรฐานนี้จะเกิดขึ้น มันวุ่นวายมาก โทเค็นแต่ละตัวต้องออกแบบเฉพาะเอง ใครบางคนจะสร้างสัญญาโทเค็นด้วยชื่อฟังก์ชันของตัวเอง ตรรกะการโอนของตัวเอง วิธีตรวจสอบยอดคงเหลือของตัวเอง MetaMask ยังไม่รู้ด้วยซ้ำว่าโทเค็นเหล่านั้นคืออะไร ตลาดแลกเปลี่ยนต้องใช้เวลาหลายเดือนกว่าจะเพิ่มการรองรับโทเค็นใหม่ เพราะแต่ละตัวต้องการโค้ดการผสานรวมแบบกำหนดเอง การสร้าง DEX ล่ะ? ลืมไปได้เลย คุณจะต้องเขียนตัวจัดการสำหรับแต่ละการใช้งานโทเค็นแยกกัน
ERC-20 ยุติความวุ่นวายนั้นลง หลังจากที่มาตรฐานนี้ได้รับการยอมรับ โทเค็นใหม่ก็ปรากฏขึ้นใน MetaMask ทันทีที่คุณวางที่อยู่สัญญาลงไป Uniswap สามารถลิสต์โทเค็นนั้นได้โดยไม่ต้องขออนุญาตใคร Aave สามารถรับโทเค็นนั้นเป็นหลักประกันได้โดยไม่ต้องเขียนโค้ดเพิ่มเติมแม้แต่บรรทัดเดียว มาตรฐานเดียว ใช้งานร่วมกันได้ทั่วโลก
กระแส ICO ในปี 2017 เป็นเครื่องพิสูจน์ได้เป็นอย่างดี เด็กหนุ่มคนหนึ่งในหอพักสามารถสร้างโทเค็น ERC-20 ได้หลังอาหารกลางวัน สร้างเว็บไซต์พร้อมเอกสารไวท์เปเปอร์ และเริ่มรับ ETH จากนักลงทุนได้ภายในเที่ยงคืน ผมได้เห็นมันเกิดขึ้นต่อหน้าต่อตา โครงการต่างๆ ระดมทุนได้หลายพันล้านดอลลาร์ บางโครงการถูกต้องตามกฎหมายและสร้างผลิตภัณฑ์จริง ส่วนใหญ่เป็นขยะ และบางโครงการเป็นการฉ้อโกงอย่างโจ่งแจ้ง แต่เทคโนโลยีที่อยู่เบื้องหลังนั้นทำงานได้อย่างไร้ที่ติ มาตรฐานนั้นทำในสิ่งที่มันถูกออกแบบมาให้ทำอย่างแท้จริง นั่นคือทำให้การสร้างและการใช้งานโทเค็นเป็นเรื่องง่ายดายอย่างเหลือเชื่อ
ขนาดของตลาดในปัจจุบันนั้นน่าทึ่งมาก มีสัญญาโทเค็น ERC-20 มากกว่า 500,000 สัญญาอยู่บนเครือข่าย Ethereum มูลค่าตลาดรวมของโทเค็น ERC-20 นั้นสูงถึงหลายแสนล้านดอลลาร์ เฉพาะ USDT เพียงอย่างเดียวก็มีมูลค่าเกิน 140 พันล้านดอลลาร์แล้ว หากรวม USDC, LINK, UNI, DAI, SHIB, MKR และอื่นๆ เข้าไปด้วยแล้ว คุณจะเห็นว่ามูลค่าทางเศรษฐกิจส่วนใหญ่ของ Ethereum อยู่ในสัญญา ERC-20 เหล่านี้
| โทเค็น ERC-20 ยอดนิยม | หมวดหมู่ | มูลค่าตลาด (โดยประมาณ) |
|---|---|---|
| USDT (Tether) | สเตเบิลคอยน์ | 140 พันล้านดอลลาร์ขึ้นไป |
| USDC (วงกลม) | สเตเบิลคอยน์ | 60 พันล้านดอลลาร์ขึ้นไป |
| ลิงก์ (Chainlink) | เครือข่าย Oracle | 8 พันล้านดอลลาร์ขึ้นไป |
| UNI (Uniswap) | การกำกับดูแล DEX | 4 พันล้านดอลลาร์ขึ้นไป |
| DAI (ผู้สร้าง) | สเตเบิลคอยน์แบบกระจายอำนาจ | 5 พันล้านดอลลาร์ขึ้นไป |
| เอเอวีเอฟ | โปรโตคอลการให้กู้ยืม | 2 พันล้านดอลลาร์ขึ้นไป |
| ชิบะ (Shiba Inu) | มีมคอยน์ | 6 พันล้านดอลลาร์ขึ้นไป |
| MKR (ผู้สร้าง) | การปกครอง | 1.5 พันล้านดอลลาร์ขึ้นไป |
การสร้างโทเค็น ERC-20: ง่ายกว่าที่คุณคิด
ผมเคยดูคนคนหนึ่งทำการปล่อยโทเค็น ERC-20 แบบสดๆ บนสตรีม YouTube ใช้เวลา 14 นาที รวมเวลาที่เขาอธิบายสิ่งที่เขากำลังทำกับผู้ชมในแชทด้วย
นี่ไม่ใช่การโอ้อวดว่าสตรีมเมอร์ฉลาดแค่ไหน แต่เป็นการบอกว่า OpenZeppelin ทำให้เรื่องนี้ง่ายแค่ไหน OpenZeppelin คือไลบรารีโค้ด Solidity ที่ผ่านการตรวจสอบและทดสอบมาอย่างดีเยี่ยม ซึ่งทำหน้าที่ประมวลผลทั้งหมด คุณเพียงแค่เลือกชื่อโทเค็น ("MyToken"), สัญลักษณ์ ("MTK"), จำนวนทศนิยม (18 เหมือนกับ ETH) และจำนวนโทเค็นเริ่มต้น ไลบรารีจะจัดการฟังก์ชัน ERC-20 ทั้งหกฟังก์ชัน อีเวนต์ และการตรวจสอบความปลอดภัย คุณเพียงแค่คัดลอกเทมเพลต เปลี่ยนตัวแปรสี่ตัว ปรับใช้กับ Ethereum และคุณก็จะได้โทเค็นจริง ๆ
ค่าใช้จ่ายด้านแก๊สสำหรับการใช้งานนั้นผันผวน เครือข่ายที่เงียบสงบ? อาจอยู่ที่ 20-50 ดอลลาร์ เครือข่ายที่มีการใช้งานสูงสุด เช่น วันที่มีการสร้าง NFT? อาจอยู่ที่ 200-500 ดอลลาร์ หากใช้งานบน Arbitrum หรือ Base แทนที่จะเป็นเครือข่ายหลักของ Ethereum ค่าใช้จ่ายจะลดลงเหลือเพียงไม่กี่ดอลลาร์ อุปสรรคทางการเงินจึงแทบไม่มีเลย
นี่คือด้านมืดของความสะดวกในการเข้าถึงนั้น บล็อกเชน Ethereum ไม่ตรวจสอบว่าสัญญาโทเค็นนั้นถูกต้องตามกฎหมายหรือไม่ ไม่ตรวจสอบทีมงาน ตรวจสอบโค้ด หรือประเมินโมเดลธุรกิจ หากคุณสามารถจ่ายค่าธรรมเนียมแก๊สได้ คุณก็สามารถใช้งานโทเค็นได้ นี่คือเหตุผลที่ Etherscan แสดงรายการสัญญาโทเค็นหลายแสนรายการ และส่วนใหญ่เป็นโครงการทดลองที่ถูกทิ้งร้างหรือเป็นการหลอกลวงที่ยังคงดำเนินอยู่ มาตรฐาน ERC-20 รับประกันความเข้ากันได้ แต่ไม่ได้รับประกันอะไรเลยเกี่ยวกับว่าโทเค็นนั้นคุ้มค่าที่จะถือครองหรือไม่
ERC-20 เทียบกับมาตรฐานโทเค็น Ethereum อื่นๆ
หลายคนถามผมว่า "ERC-20 เป็นมาตรฐานโทเค็นเดียวที่มีอยู่จริงหรือ?" คำตอบคือไม่ใช่ แต่เป็นมาตรฐานแรกที่ใช้งานได้จริง และมาตรฐานอื่นๆ ที่ตามมาได้แก้ไขปัญหาที่ ERC-20 ทิ้งไว้
มาตรฐาน ERC-721 มาถึงแล้วและทำให้เรารู้จัก NFT ในขณะที่โทเค็น ERC-20 ทุกตัวสามารถแลกเปลี่ยนกันได้ (USDC ของคุณเหมือนกับ USDC ของฉัน) โทเค็น ERC-721 แต่ละตัวจะมี ID ที่ไม่ซ้ำกัน Bored Ape #4293 เป็นสินทรัพย์ที่แตกต่างอย่างสิ้นเชิงจาก Bored Ape #7810 แม้จะมีชื่อฟังก์ชันที่คล้ายกัน แต่ตรรกะการทำงานจะพิจารณาจากแต่ละชิ้นแทนที่จะเป็นจำนวนโดยรวม คุณไม่สามารถส่ง Bored Ape ครึ่งหนึ่งได้ มันต้องเป็นทั้งหมดหรือไม่มีเลย
ERC-1155 เกิดขึ้นจากนักพัฒนาเกมที่เบื่อหน่ายกับการใช้สัญญาแยกต่างหากสำหรับไอเทมแต่ละประเภท สัญญาเดียวสามารถจัดการเหรียญทอง (แลกเปลี่ยนได้เหมือน ERC-20), ดาบเหล็ก (แลกเปลี่ยนได้บางส่วน มี 50 ชิ้นเหมือนกัน) และหมวกกันน็อคระดับตำนานที่ไม่ซ้ำใคร (แลกเปลี่ยนไม่ได้ มีเพียงชิ้นเดียว) การโอนย้ายแบบกลุ่มช่วยประหยัดแก๊ส การทำธุรกรรมเพียงครั้งเดียวสามารถโอนย้ายไอเทมที่แตกต่างกัน 100 รายการ แทนที่จะเป็นการทำธุรกรรมแยกกัน 100 ครั้ง
BEP-20 คือชื่อที่ Binance Smart Chain ใช้เรียกเวอร์ชันของพวกเขา ฟังก์ชันการทำงานเหมือนกัน เหตุการณ์เหมือนกัน แต่ใช้บล็อกเชนที่แตกต่างกัน เป็นการคัดลอก ERC-20 มาใช้บนเครือข่ายที่ราคาถูกกว่า มาตรฐาน SPL ของ Solana ทำงานแบบเดียวกันแต่มีสถาปัตยกรรมที่แตกต่างกันโดยสิ้นเชิง เพราะ Solana ไม่ได้ออกแบบมาให้ใช้งานร่วมกับ Ethereum ได้
| มาตรฐาน | ประเภทโทเค็น | ทดแทนกันได้หรือไม่? | กรณีศึกษา | เครือข่าย |
|---|---|---|---|---|
| อีอาร์ซี-20 | โทเค็นที่แลกเปลี่ยนได้ | ใช่ | สกุลเงิน การกำกับดูแล สาธารณูปโภค | อีเธอร์เรียม |
| อีอาร์ซี-721 | โทเค็นที่ไม่สามารถแลกเปลี่ยนได้ | ไม่มี (รหัสเฉพาะ) | NFT, ศิลปะดิจิทัล, ของสะสม | อีเธอร์เรียม |
| อีอาร์ซี-1155 | หลายโทเค็น | ทั้งคู่ | เกมมิ่ง, ประเภทสินทรัพย์ผสม | อีเธอร์เรียม |
| บีพี-20 | โทเค็นที่แลกเปลี่ยนได้ | ใช่ | เหมือนกับ ERC-20 | ห่วงโซ่ BNB |
| เอสพีแอล | แลกเปลี่ยนได้ + NFT | ทั้งคู่ | ระบบนิเวศโซลานา | โซลาน่า |
โทเค็น ERC-20 ใน DeFi: เหตุใดมาตรฐานนี้จึงเป็นพลังขับเคลื่อนการเงินแบบกระจายอำนาจ
ถ้าเอา ERC-20 ออกไป DeFi จะล่มสลายในชั่วข้ามคืน ไม่ใช่แค่ "ดิ้นรน" แต่ล่มสลายเลย ทุกส่วนของระบบต่างสันนิษฐานว่าโทเค็นทุกตัวใช้ภาษาเดียวกัน
Uniswap จับคู่โทเค็น ERC-20 สองตัวในพูล และให้คุณแลกเปลี่ยนระหว่างกันได้ ใช้งานได้กับ USDC ใช้งานได้กับ SHIB ใช้งานได้กับเหรียญมีมที่เพื่อนคุณเพิ่งเปิดตัวตอนตี 2 DEX ไม่สนใจว่าโทเค็นนั้นทำอะไรได้บ้าง มันสนใจแค่ว่าสัญญาต้องรองรับฟังก์ชัน transfer() และ approve() เพิ่มพูลสภาพคล่องเข้าไป การซื้อขายก็จะเริ่มใช้งานได้ทันที ไม่ต้องยื่นคำขอลิสต์ ไม่ต้องตรวจสอบกับตลาดแลกเปลี่ยน ไม่ต้องรอเวลา
Aave และ Compound ให้บริการยืมโทเค็น ERC-20 โปรโตคอลจะเรียกใช้ balanceOf() เพื่อตรวจสอบยอดเงินที่คุณฝากไว้ เรียกใช้ transfer() เพื่อโอนโทเค็น และใช้ approve() และ transferFrom() เมื่อคุณชำระคืนเงินกู้ ตลาดการให้ยืมสำหรับโทเค็นใหม่สามารถเริ่มต้นได้ในวันที่โทเค็นนั้นถูกเปิดตัว เนื่องจากอินเทอร์เฟซเป็นที่รู้จักอยู่แล้ว
นอกจากนี้ยังมีปัญหาแปลกๆ เกี่ยวกับ ETH ETH มีอยู่ก่อน ERC-20 ดังนั้นจึงไม่เป็นไปตามมาตรฐานนั้น ซึ่งทำให้การทำงานร่วมกันเป็นไปไม่ได้ ทางแก้คือ WETH Wrapped Ether คือตัวห่อหุ้ม ETH ดั้งเดิมตามมาตรฐาน ERC-20 ฝาก 1 ETH จะได้รับ 1 WETH ซึ่งโปรโตคอล DeFi สามารถจัดการได้ตามปกติ WBTC ก็ทำเช่นเดียวกันกับ Bitcoin โดยนำมูลค่าของ BTC เข้ามาในระบบนิเวศของ Ethereum ในรูปแบบโทเค็น ERC-20 ที่ได้รับการสนับสนุนแบบ 1:1 โดย Bitcoin จริงที่อยู่ในความดูแล
ผลลัพธ์ในทางปฏิบัติ: วันนี้ผมสามารถสร้างโปรโตคอล DeFi ที่ใช้งานได้กับโทเค็น ERC-20 ทุกตัวที่เคยสร้างขึ้น รวมถึงโทเค็นที่ยังไม่มีอยู่จริง โค้ดของผมไม่จำเป็นต้องรู้จัก USDT โดยเฉพาะ ไม่จำเป็นต้องอัปเดตเมื่อมีคนเปิดตัว Stablecoin ใหม่ในวันพรุ่งนี้ อินเทอร์เฟซจัดการทุกอย่างเอง ความสามารถในการประกอบเข้าด้วยกันนี้เองที่เป็นเหตุผลที่ทำให้ Ethereum มีกิจกรรม DeFi มากกว่า มีมูลค่าสินทรัพย์รวมที่ถูกล็อก (TVL) มากกว่า และมีเครื่องมือสำหรับนักพัฒนามากกว่าบล็อกเชนอื่นๆ มาตรฐาน ERC-20 คือรากฐานที่ทุกสิ่งทุกอย่างตั้งอยู่
ความเสี่ยงด้านความปลอดภัยและปัญหาทั่วไปของ ERC-20
ผมจะเล่าให้ฟังเกี่ยวกับบั๊กการอนุมัติที่ทำให้ผู้ใช้ DeFi สูญเสียเงินไปหลายล้าน และแทบไม่มีใครเข้าใจจนกว่าจะเจอกับปัญหาเอง
เมื่อคุณแลกเปลี่ยนโทเค็นบน Uniswap หรือฝากเงินเข้า Aave แอปพลิเคชันแบบกระจายศูนย์ (dApp) จะขอให้คุณ "อนุมัติ" เพื่อใช้โทเค็นของคุณ โดยส่วนใหญ่ dApp จะตั้งค่าเริ่มต้นเป็นการอนุมัติแบบไม่จำกัด ดูเหมือนจะไม่เป็นอันตรายจนกว่าคุณจะรู้ว่ามันหมายความว่าอย่างไร: สัญญาอัจฉริยะนั้นสามารถใช้โทเค็นทุกประเภทในกระเป๋าเงินของคุณได้ทุกเมื่อตลอดไป จนกว่าคุณจะยกเลิกการอนุญาตอย่างชัดเจน หากสัญญานั้นถูกแฮ็กในอีกหกเดือนข้างหน้า ผู้โจมตีจะใช้การอนุมัติเก่าของคุณเพื่อดึงโทเค็นที่คุณลืมไปแล้วว่าเคยให้สิทธิ์เข้าถึง
เรื่องนี้เคยเกิดขึ้นแล้วครับ มากกว่าหนึ่งครั้งด้วยซ้ำ วิธีแก้ก็ง่ายแต่ก็ค่อนข้างน่ารำคาญ คือ อนุมัติเฉพาะจำนวนเงินที่ต้องการใช้ในแต่ละครั้งเท่านั้น หรือใช้ Revoke.cash เพื่อล้างการอนุมัติเก่าๆ ที่คุณลืมไป ผมตรวจสอบของผมทุกๆ สองสามเดือน และมันก็แย่กว่าที่คาดไว้เสมอ ERC-2612 เป็นมาตรฐานใหม่กว่าที่แทนที่การอนุมัติบนบล็อกเชนด้วยการอนุญาตที่ลงนามแล้ว ซึ่งช่วยลดความเสี่ยงนี้ลง แต่ dApps ส่วนใหญ่ยังคงใช้รูปแบบเก่าอยู่
โทเค็นปลอมหลอกลวงผู้คนทุกสัปดาห์ มิจฉาชีพจะสร้างสัญญา ERC-20 ที่ชื่อว่า "Uniswap" หรือ "Chainlink" โดยใช้ที่อยู่สัญญาที่แตกต่างกันเล็กน้อย คุณค้นหาใน DEX เห็นชื่อที่คุ้นเคย และซื้อของปลอม เงินของคุณจะไหลตรงไปยังกระเป๋าเงินของมิจฉาชีพ ที่อยู่สัญญา LINK จริงคือ 0x514910771AF9Ca656af840dff83E8264EcF986CA ส่วนของปลอมอาจเป็น 0x514910...หรืออย่างอื่น ควรคัดลอกที่อยู่จาก CoinGecko หรือเว็บไซต์อย่างเป็นทางการของโครงการเสมอ อย่าค้นหาโดยใช้ชื่อเพียงอย่างเดียว
นอกจากนี้ยังมีโทเค็นที่มีลูกเล่นซ่อนอยู่ ภายนอกดูเหมือนสัญญามาตรฐาน ERC-20 แต่เบื้องหลัง ผู้พัฒนาได้เพิ่มฟังก์ชันที่ทำให้พวกเขาสามารถสร้างโทเค็นใหม่ได้ไม่จำกัด หรืออาจมีภาษีขายที่หักโทเค็นของคุณไป 99% เมื่อคุณพยายามแลกเปลี่ยน หรืออาจมีบัญชีดำที่ป้องกันไม่ให้ใครก็ตามนอกจากผู้พัฒนาขายโทเค็นนั้นได้ มาตรฐาน ERC-20 ไม่ได้ระบุถึงสิ่งที่สัญญาไม่สามารถทำได้ มันระบุเพียงฟังก์ชันขั้นต่ำเท่านั้น ส่วนที่เหลือขึ้นอยู่กับนักพัฒนา การตรวจสอบโทเค็น คะแนน DextScore และสัญญาที่ได้รับการตรวจสอบบน Etherscan เกิดขึ้นเพราะช่องว่างระหว่างความเรียบง่ายของมาตรฐานและความคิดสร้างสรรค์ของพวกมิจฉาชีพ