Web3 & DApp Development Fundamentals · บทเรียน

มาตรฐาน ERC (ERC-20, ERC-721)

ศึกษา มาตรฐาน Ethereum Request for Comments (ERC) ที่ใช้ทั่วไป เช่น ERC-20 สำหรับโทเคนที่ทดแทนกันได้ และ ERC-721 สำหรับโทเคนที่ทดแทนกันไม่ได้ (NFT)

บทเรียน 1 จาก 311 ขั้นตอน

มาตรฐาน ERC (ERC-20, ERC-721) เป็นบทเรียน Web3 & DApp Development Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Web3 & DApp Development Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 3 บทเรียน

มาตรฐาน ERC คืออะไร

ERC ย่อมาจาก ข้อเสนอเพื่อขอความคิดเห็นของเอเธอเรียม เป็นข้อเสนออย่างเป็นทางการที่กำหนดกฎและความสามารถเฉพาะสำหรับสัญญาอัจฉริยะบนบล็อกเชนเอเธอเรียม

ลองนึกภาพว่าเป็นแบบแปลนหรือข้อตกลงร่วมกัน ซึ่งช่วยให้สัญญาและแอปพลิเคชันต่าง ๆ “พูดภาษาเดียวกัน” และโต้ตอบกันได้อย่างราบรื่น

ทำความเข้าใจโทเค็น ERC-20

โทเค็น ERC-20 คือมาตรฐานสำหรับโทเค็นที่ทดแทนกันได้ คำว่า “ทดแทนกันได้” หมายความว่าแต่ละหน่วยมีลักษณะเหมือนกันและสามารถแลกเปลี่ยนแทนกันได้ เช่นเดียวกับเงินทั่วไป

หากคุณมีเงินหนึ่งดอลลาร์ เงินนั้นก็เหมือนกับเงินหนึ่งดอลลาร์ใบอื่น ๆ โทเค็น ERC-20 ใช้กับสกุลเงินดิจิทัล เหรียญมูลค่าคงที่ และโทเค็นอรรถประโยชน์

ERC-20: การดำเนินการพื้นฐาน

มาตรฐาน ERC-20 กำหนดชุดฟังก์ชันและเหตุการณ์ที่โทเค็นซึ่งเป็นไปตามมาตรฐานทั้งหมดต้องนำไปใช้ ฟังก์ชันสำคัญได้แก่:

  • totalSupply(): ส่งคืนจำนวนโทเค็นทั้งหมด
  • balanceOf(address account): รับยอดคงเหลือของที่อยู่
  • transfer(address recipient, uint256 amount): ส่งโทเค็นจากผู้เรียกไปยังผู้รับ

ERC-20: การโอนอย่างง่าย

นี่คือตัวอย่างสัญญาแบบง่ายที่สาธิตแนวคิดหลักของฟังก์ชัน transfer ของโทเค็น ERC-20 โดยจัดการยอดคงเหลือและอนุญาตให้ส่งโทเค็นได้

ลองนำสัญญานี้ไปใช้งานใน Remix และโอนโทเค็นดูครับ

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;

    contract SimpleToken {
        string public name = "MySimpleToken";
        string public symbol = "MST";
        uint8 public decimals = 18;
        uint256 public totalSupply = 1000000 * (10 ** decimals);

        mapping(address => uint256) public balances;

        constructor() {
            balances[msg.sender] = totalSupply;
        }

        function transfer(address recipient, uint256 amount)
            public returns (bool)
        {
            require(balances[msg.sender] >= amount, "Insufficient balance");
            balances[msg.sender] -= amount;
            balances[recipient] += amount;
            return true;
        }

        function balanceOf(address account)
            public view returns (uint256)
        {
            return balances[account];
        }
    }

ERC-20: อนุมัติและ TransferFrom

หากต้องการอนุญาตให้สัญญาอื่น (เช่น ตลาดซื้อขายแบบกระจายศูนย์) ใช้จ่ายโทเค็นแทนคุณ ERC-20 จะใช้วงเงินที่อนุญาต:

  • approve(address spender, uint256 amount): อนุญาตให้ spender ถอนเงินได้สูงสุดตามจำนวน amount จากบัญชีของคุณ
  • transferFrom(address sender, address recipient, uint256 amount): โอนโทเค็นจาก sender ไปยัง recipient โดยทั่วไปจะเรียกใช้โดย spender ที่มีวงเงินได้รับอนุญาต

แนะนำโทเค็น NFT ERC-721

โทเค็น ERC-721 ใช้สำหรับโทเค็นที่ทดแทนกันไม่ได้ (NFT) คำว่า “ทดแทนกันไม่ได้” หมายความว่าโทเค็นแต่ละรายการมีเอกลักษณ์เฉพาะตัวและไม่สามารถใช้รายการอื่นมาแทนได้

ลองนึกถึงงานศิลปะที่มีเอกลักษณ์หรือการ์ดสะสมเฉพาะใบ NFT ใช้กับงานศิลปะดิจิทัล ไอเท็มเฉพาะในเกม ที่ดินในโลกเสมือน และอื่น ๆ

ERC-721: ความเป็นเจ้าของและการโอน

มาตรฐาน ERC-721 ยังระบุฟังก์ชันเฉพาะไว้ดังนี้:

  • ownerOf(uint256 tokenId): ส่งคืนเจ้าของโทเค็นที่ระบุ
  • balanceOf(address owner): ส่งคืนจำนวน NFT ที่เจ้าของมี
  • safeTransferFrom(address from, address to, uint256 tokenId): โอน NFT ที่ระบุจากที่อยู่หนึ่งไปยังอีกที่อยู่อย่างปลอดภัย

ERC-721: การสร้าง NFT อย่างง่าย

สัญญานี้แสดงวิธีพื้นฐานในการ 'สร้าง' NFT ที่ไม่ซ้ำกัน และติดตามความเป็นเจ้าของ NFT แต่ละรายการมี tokenId ที่ไม่ซ้ำกัน

หลังจากปรับใช้แล้ว ลองเรียกใช้ฟังก์ชัน mint หลายครั้งดูนะครับ

    // SPDX-License-Identifier: MIT
    pragma solidity ^0.8.0;

    contract SimpleNFT {
        string public name = "MySimpleNFT";
        string public symbol = "SNFT";
        uint256 private _nextTokenId;

        mapping(uint256 => address) public ownerOf;
        mapping(address => uint256) public balanceOf;

        constructor() {
            _nextTokenId = 0;
        }

        function mint(address recipient)
            public returns (uint256)
        {
            _nextTokenId++;
            uint256 newTokenId = _nextTokenId;
            ownerOf[newTokenId] = recipient;
            balanceOf[recipient]++;
            return newTokenId;
        }
    }

ERC-20 เทียบกับ ERC-721: ความแตกต่างสำคัญ

ต่อไปนี้คือการเปรียบเทียบโดยสรุป:

  • ความสามารถในการทดแทนกัน: โทเค็น ERC-20 สามารถทดแทนกันได้ ส่วนโทเค็น ERC-721 ไม่สามารถทดแทนกันได้และมีเอกลักษณ์เฉพาะตัว
  • ความไม่ซ้ำกัน: โทเค็น ERC-20 ติดตามด้วยจำนวน ส่วนโทเค็น ERC-721 ติดตามด้วยรหัสที่ไม่ซ้ำกัน
  • กรณีการใช้งาน: ERC-20 ใช้สำหรับสกุลเงินและสิทธิ์ในการลงคะแนน ส่วน ERC-721 ใช้สำหรับงานศิลปะดิจิทัล ของสะสม และโฉนด

ระบุมาตรฐาน

ข้อความใดต่อไปนี้อธิบายคุณลักษณะหรือกรณีการใช้งานของโทเค็น ERC-20 และ ERC-721 ได้อย่างถูกต้อง

สรุป: มาตรฐาน ERC

เราได้ศึกษาเกี่ยวกับมาตรฐานพื้นฐานของ Ethereum สองมาตรฐาน:

  • ERC-20 สำหรับ โทเค็นที่ทดแทนกันได้ เหมาะสำหรับสกุลเงินและโทเค็นใช้งาน
  • ERC-721 สำหรับ โทเค็นที่ทดแทนกันไม่ได้ (NFT) เหมาะสำหรับสินทรัพย์ดิจิทัลที่ไม่ซ้ำกัน เช่น งานศิลปะและของสะสม

มาตรฐานเหล่านี้มีความสำคัญอย่างยิ่งต่อการทำงานร่วมกันและการสร้างแอปพลิเคชันแบบกระจายศูนย์หลากหลายรูปแบบบน Ethereum

เริ่มต้นได้ฟรี

เรียนรู้ Web3 & DApp Development Fundamentals ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
29
บทเรียน
105

คำถามที่พบบ่อย

บทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “มาตรฐาน ERC (ERC-20, ERC-721)” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Web3 & DApp Development Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Web3 & DApp Development Fundamentals มีบทเรียนทั้งหมด 3 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)”

ศึกษา มาตรฐาน Ethereum Request for Comments (ERC) ที่ใช้ทั่วไป เช่น ERC-20 สำหรับโทเคนที่ทดแทนกันได้ และ ERC-721 สำหรับโทเคนที่ทดแทนกันไม่ได้ (NFT) คุณปฏิบัติ Web3 & DApp Development Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Web3 & DApp Development Fundamentals หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Web3 & DApp Development Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 3 บทเรียน

บทเรียน “มาตรฐาน ERC (ERC-20, ERC-721)” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Web3 & DApp Development Fundamentals นี้ได้ไหม

ได้ บทเรียน Web3 & DApp Development Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. มาตรฐาน ERC (ERC-20, ERC-721)
  2. แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของสัญญา
  3. สัญญาที่อัปเกรดได้
← กลับไปที่ Web3 & DApp Development Fundamentals