﻿---
title: "ERC-20"
description: "ERC-20 คืออินเทอร์เฟซมาตรฐานของ Ethereum สำหรับโทเค็นที่ทดแทนกันได้ เรียนรู้วิธีการทำงานของยอดคงเหลือ การโอน allowance และการอนุมัติ รวมถึงสิ่งที่มาตรฐานไม่ได้รับประกัน"
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ERC-20

> จัดทำขึ้นเพื่อการศึกษาเท่านั้น ไม่ใช่คำแนะนำการลงทุน การลงทุนอาจทำให้สูญเสียเงินลงทุนได้

<a id="answer"></a>

## คำตอบโดยตรง

ERC-20 คืออินเทอร์เฟซมาตรฐานสำหรับสัญญาโทเค็นที่ทดแทนกันได้บน Ethereum มาตรฐานนี้ช่วยให้กระเป๋าเงิน ศูนย์ซื้อขาย และแอปพลิเคชันแบบกระจายศูนย์ใช้คำสั่งเรียกแบบเดียวกันเพื่ออ่านอุปทานหรือยอดคงเหลือ โอนโทเค็น และอนุญาตให้ที่อยู่อื่นใช้จ่ายได้ภายในวงเงินที่กำหนด การทดแทนกันได้หมายความว่าหน่วยที่มีมูลค่าเท่ากันของโทเค็นชนิดเดียวกันได้รับการออกแบบมาให้ใช้แทนกันได้

อินเทอร์เฟซหลักประกอบด้วย:

- `totalSupply` และ `balanceOf` สำหรับอ่านอุปทานและยอดคงเหลือของบัญชี
- `transfer` สำหรับส่งโทเค็นของผู้เรียก
- `approve` และ `allowance` สำหรับกำหนดและอ่านวงเงินของผู้ใช้จ่าย
- `transferFrom` สำหรับใช้จ่ายจากยอดคงเหลือของเจ้าของภายในวงเงินดังกล่าว และ
- อีเวนต์ `Transfer` และ `Approval` สำหรับบันทึกการโอนและการอนุมัติ

มาตรฐานกำหนดความสามารถในการทำงานร่วมกัน ไม่ใช่คุณภาพของสินทรัพย์ การเป็นไปตาม ERC-20 ไม่ได้รับประกันอุปทานคงที่ มูลค่าตลาดที่เป็นธรรม ความสามารถในการไถ่ถอน สภาพคล่อง การบริหารจัดการที่ปลอดภัย หรือแม้แต่พฤติกรรมที่เหมือนกันในทุกการนำไปใช้

<a id="mechanism"></a>

## วิธีการทำงาน

ยอดคงเหลือ ERC-20 คือรายการหนึ่งในสถานะของสัญญาโทเค็นซึ่งเชื่อมโยงกับที่อยู่ กระเป๋าเงินแสดงสถานะดังกล่าว แต่ไม่ได้เก็บไฟล์โทเค็นแยกต่างหาก เมื่อ `transfer(to, amount)` สำเร็จ สัญญาจะลดยอดคงเหลือของผู้เรียก เพิ่มยอดคงเหลือของผู้รับ และปล่อยอีเวนต์ `Transfer` โดยปกติผู้ใช้จะจ่ายค่าแก๊สของเครือข่ายเป็น ETH หากการดำเนินการถูกย้อนกลับ การเปลี่ยนแปลงสถานะของโทเค็นจะถูกยกเลิก แต่ค่าแก๊สที่ใช้ไปแล้วจะไม่ได้รับคืนเต็มจำนวน

การใช้จ่ายแบบมอบหมายสิทธิ์ใช้ allowance การเรียก `approve(spender, amount)` จะกำหนดจำนวนที่ผู้ใช้จ่ายรายนั้นสามารถใช้จากยอดคงเหลือของผู้เรียก จากนั้นผู้ใช้จ่ายสามารถเรียก `transferFrom(owner, to, amount)` และ `allowance(owner, spender)` จะแสดงวงเงินที่เหลือ การอนุมัติผูกกับคู่เจ้าของ-ผู้ใช้จ่ายหนึ่งคู่ ในสัญญาโทเค็นหนึ่งสัญญา และบนเครือข่ายหนึ่งเครือข่าย ไม่ใช่สิทธิ์เหนือสินทรัพย์ทุกอย่างในกระเป๋าเงิน

การเรียก `approve` อีกครั้งจะเขียนทับ allowance เดิม ข้อกำหนด EIP-20 เตือนให้อินเทอร์เฟซผู้ใช้กำหนด allowance ที่มีอยู่เป็น `0` ก่อนกำหนดค่าใหม่ที่ไม่ใช่ศูนย์ เพราะลำดับธุรกรรมอาจเปิดโอกาสให้ผู้ใช้จ่ายใช้ทั้งวงเงินเดิมและวงเงินใหม่ การกำหนด allowance เป็น `0` สามารถหยุดการเรียก `transferFrom` ในอนาคตสำหรับชุดเจ้าของ-ผู้ใช้จ่าย-โทเค็นนั้น แต่ไม่สามารถนำโทเค็นที่โอนไปแล้วกลับคืนมาได้

`name`, `symbol` และ `decimals` เป็นเมธอดข้อมูลกำกับที่เลือกใช้ได้ใน EIP-20 โดย `decimals` มีผลต่อหน่วยที่แสดง ไม่ใช่การบันทึกบัญชีจำนวนเต็มของสัญญา นอกจากนี้ มาตรฐานไม่ได้กำหนดวิธีสร้างหรือเผาโทเค็น ไม่ได้กำหนดว่าจะพักหรือคิดค่าธรรมเนียมการโอนได้หรือไม่ จะอายัดที่อยู่ได้หรือไม่ หรือจะอัปเกรดตรรกะของพร็อกซีได้หรือไม่ พฤติกรรมเหล่านี้ต้องตรวจสอบจากโค้ดที่นำไปใช้งาน การติดตั้งใช้งานปัจจุบัน และสิทธิ์ของผู้ดูแล

<a id="example"></a>

## ตัวอย่าง

สมมติว่ากระเป๋าเงินมีโทเค็น ERC-20 อยู่ 1,000 หน่วย และผู้ใช้ต้องการให้เราเตอร์ของศูนย์ซื้อขายแบบกระจายศูนย์แลก 100 หน่วย ผู้ใช้ส่ง `approve(router, 100)` ก่อน หากสำเร็จ เราเตอร์สามารถเรียก `transferFrom(user, pool, 100)` และหลังจากใช้จ่ายครบแล้ว allowance ปกติที่เหลือจะเป็น 0 ธุรกรรมอนุมัติกับธุรกรรมแลกเปลี่ยนเป็นการดำเนินการบนเชนที่แยกจากกัน ดังนั้นแต่ละรายการอาจต้องใช้แก๊สและอาจล้มเหลวได้โดยอิสระ

การอนุมัติค่าสูงสุดที่เป็นไปได้ช่วยหลีกเลี่ยงการอนุมัติซ้ำ แต่ทำให้จำนวนที่มากกว่าตกอยู่ในความเสี่ยงนานขึ้น หากเราเตอร์ ผู้มีอำนาจอัปเกรดเราเตอร์ หรืออินเทอร์เฟซที่ใช้ขอการอนุมัติถูกเจาะระบบ allowance ที่จำกัดช่วยลดความเสี่ยงดังกล่าว แต่ไม่ได้ขจัดความเสี่ยงของสัญญาอัจฉริยะ ราคาโทเค็น สภาพคล่อง หรือธุรกรรม

<a id="risks"></a>

## ความเสี่ยง

- **สัญญาหรือเครือข่ายไม่ถูกต้อง:** ชื่อ สัญลักษณ์ และไอคอนสามารถลอกเลียนได้ โปรดตรวจสอบที่อยู่สัญญาบนเครือข่ายที่ต้องการ
- **allowance มากเกินไป:** ผู้ใช้จ่ายที่เป็นอันตรายหรือถูกเจาะระบบอาจใช้ allowance ที่ยังเหลือได้ถึงวงเงินที่อนุมัติ
- **พฤติกรรมที่ไม่เป็นมาตรฐาน:** โทเค็นที่ใช้อย่างแพร่หลายบางรายการไม่ส่งคืนค่าตามที่คาดไว้อย่างเคร่งครัด ส่วนบางรายการคิดค่าธรรมเนียมการโอน ปรับยอดคงเหลือใหม่ บล็อกที่อยู่ หรือพักการโอน
- **การควบคุมโดยผู้ดูแล:** การสร้างโทเค็น การอายัด การอัปเกรด หรือการดำเนินการที่มีสิทธิ์พิเศษอื่นอาจเปลี่ยนความเสี่ยงของโทเค็นหลังจากผู้ใช้ได้มาแล้ว
- **การโอนที่เรียกคืนไม่ได้:** การส่งโทเค็นไปยังที่อยู่ผิดหรือสัญญาที่ไม่สามารถจัดการโทเค็นนั้นได้ อาจทำให้กู้คืนไม่ได้

การทำ ERC-20 ให้เป็นมาตรฐานช่วยลดอุปสรรคในการผสานระบบ แต่ไม่ได้ขจัดความเสี่ยงจากสัญญา ผู้ออก การรับฝาก ตลาด หรือการดำเนินงาน ก่อนลงนาม ให้ตรวจสอบเครือข่าย สัญญาโทเค็น ที่อยู่ของผู้ใช้จ่าย จำนวนที่อนุมัติ และคำสั่งเรียกของธุรกรรม

<a id="misconceptions"></a>

## ความเข้าใจผิดที่พบบ่อย

### ความเชื่อผิด 1: ป้าย ERC-20 พิสูจน์ว่าโทเค็นนั้นน่าเชื่อถือ

ใครก็สามารถนำสัญญาที่ใช้ชื่อหรือสัญลักษณ์คุ้นเคยไปติดตั้งได้ ป้ายดังกล่าวบอกเพียงคำกล่าวอ้างเกี่ยวกับอินเทอร์เฟซ โปรดตรวจสอบที่อยู่สัญญา แล้วประเมินโค้ด สิทธิ์ ผู้ออก สภาพคล่อง และตลาดแยกจากกัน

### ความเชื่อผิด 2: การอนุมัติจะโอนโทเค็นที่อนุมัติทันที

โดยปกติ `approve` จะเปลี่ยน allowance แต่ไม่ได้ย้ายโทเค็นไปยังผู้ใช้จ่ายด้วยตัวมันเอง การเรียก `transferFrom` ภายหลังจึงจะย้ายโทเค็น อย่างไรก็ตาม allowance ที่ยังคงอยู่คือสิทธิ์จริงซึ่งอาจใช้งานได้จนกว่าจะถูกใช้จนหมด ถูกแทนที่ หรือกำหนดเป็น `0`

### ความเชื่อผิด 3: โทเค็น ERC-20 ทุกชนิดมีพฤติกรรมเหมือนกัน

มาตรฐานกำหนดอินเทอร์เฟซร่วมขั้นต่ำ ไม่ได้บังคับนโยบายอุปทานแบบใดแบบหนึ่ง และไม่ได้ห้ามค่าธรรมเนียม การพัก บัญชีดำ การปรับยอดคงเหลือใหม่ หรือความสามารถในการอัปเกรด การผสานระบบต้องคำนึงถึงการนำไปใช้จริง ไม่ใช่อาศัยเพียงป้าย ERC-20

<a id="related"></a>

## หัวข้อที่เกี่ยวข้อง

- [กระเป๋าเงินที่กู้คืนผ่านสังคม](/th/crypto/social-recovery-wallet/)
- [มาตรฐานโทเค็น](/th/crypto/token-standard/)
- [เหรียญกับโทเค็นแตกต่างกันอย่างไร?](/th/crypto/token-vs-coin/)
- [การอนุมัติของกระเป๋าเงิน](/th/crypto/wallet-approval/)
- [ZK Rollup](/th/crypto/zk-rollup/)

<a id="sources"></a>

## แหล่งที่มา

- [ERC-20: มาตรฐานโทเค็น](https://eips.ethereum.org/EIPS/eip-20) - Ethereum Improvement Proposals (เข้าถึงเมื่อ: 2026-08-20)
- [มาตรฐานโทเค็น ERC-20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/) - Ethereum.org (เข้าถึงเมื่อ: 2026-08-20)

Source: https://wiki.fcontext.com/th/crypto/erc20/index.mdx
