Zelcore
Z
Zelcore TeamMulti-Asset Crypto Wallet & Web3 Ecosystem

อธิบายการมิ้นต์

อ่าน 12 นาที
คำอธิบายเกี่ยวกับการมิ้นต์

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

บทความนี้เป็นตอนที่ 3 ของซีรีส์พื้นฐานเกี่ยวกับ NFT หากคุณยังไม่ได้อ่าน NFT คืออะไรกันแน่ หรือ ข้อมูลเมตาและรูปภาพอยู่ที่ไหนกันแน่ เนื้อหาเหล่านั้นจะช่วยให้เข้าใจคำศัพท์ที่ใช้ต่อจากนี้ บทความนี้เน้นช่วงเวลาที่สร้าง NFT โดยตรง ทั้งค่าใช้จ่าย วิธีการทำงาน และเหตุผลที่รูปแบบซึ่งเรียกว่า “การมิ้นต์แบบขี้เกียจ” ค่อย ๆ เปลี่ยนโฉมเศรษฐกิจของครีเอเตอร์

การมิ้นต์ในระดับโปรโตคอลคืออะไร

มาตรฐาน ERC-721 กล่าวถึงประเด็นนี้ไว้อย่างกระชับมาก ข้อกำหนดระบุว่า “การสร้าง NFT (‘การมิ้นต์’) และการทำลาย NFT (‘การเบิร์น’) ไม่ได้รวมอยู่ในข้อกำหนด” กล่าวอีกอย่างคือ มาตรฐานไม่ได้บอกวิธีสร้างโทเคน แต่บอกเพียงว่าเมื่อโทเคนมีอยู่แล้วจะต้องมีลักษณะอย่างไร

ธรรมเนียมนี้ซ่อนอยู่ในอีเวนต์ Transfer ซึ่ง “จะถูกส่งออกเมื่อมีการสร้าง NFT (from == 0) และทำลาย NFT (to == 0)” แอดเดรสศูนย์ 0x0000000000000000000000000000000000000000 เป็นเครื่องหมายที่สื่อความหมายนี้ อีเวนต์ Transfer ที่ผู้ส่งเป็นแอดเดรสศูนย์หมายความว่า “โทเคนนี้ไม่เคยมีอยู่มาก่อน และตอนนี้มีอยู่แล้ว” บล็อกเอ็กซ์พลอเรอร์เห็นรายการบันทึกนี้และแสดงผลเป็น “มิ้นต์”

ในทางปฏิบัติ สัญญา NFT ที่ใช้งานจริงแทบทั้งหมดนำการทำงานของ OpenZeppelin มาใช้ซ้ำ แทนที่จะเขียนขึ้นเอง โดยมีฟังก์ชันภายในสองรายการที่ทำงานนี้ _mint “มิ้นต์ tokenId และโอนไปยัง to” โดยเขียนช่องข้อมูลความเป็นเจ้าของ เพิ่มตัวนับยอดคงเหลือ และส่งออกอีเวนต์ ส่วน _safeMint ทำทั้งหมดนี้พร้อมตรวจสอบการยอมรับ to เพิ่มเติม หาก to อ้างถึงสัญญาอัจฉริยะ สัญญานั้นต้องติดตั้ง IERC721Receiver.onERC721Received เพื่อยืนยันว่าสัญญารู้วิธีถือครอง NFT จริง ข้อกำหนดสองข้อที่ใช้กับ _mint เสมอคือ tokenId ต้องยังไม่มีอยู่ และ to ต้องไม่ใช่แอดเดรสศูนย์ (แอดเดรสศูนย์สงวนไว้สำหรับปลายทางการเบิร์น)

ความแตกต่างระหว่าง _mint กับ _safeMint มีความสำคัญ เพราะการใช้ _mint ธรรมดาโอนไปยังสัญญาที่ไม่ได้ติดตั้งอินเทอร์เฟซผู้รับ จะทำให้โทเคนติดอยู่ที่นั่นอย่างถาวร เอกสารของ OpenZeppelin เองเตือนว่า “ไม่แนะนำให้ใช้เมธอดนี้ โปรดใช้ ERC721._safeMint เมื่อทำได้”

ตลาดหลักกับตลาดรอง

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

ธุรกรรมทั้งหมดหลังจากนั้นอยู่ในตลาดรอง เมื่อผู้สะสมขายโทเคนให้ผู้สะสมอีกราย จะไม่มีการสร้างช่องข้อมูลใหม่ สัญญาเพียงเปลี่ยนแถว tokenId → owner ที่มีอยู่แล้วให้ชี้ไปยังแอดเดรสใหม่ โทเคนยังคงอยู่ที่เดิม มีเพียงตัวชี้ที่เปลี่ยนไป

นี่คือจุดที่ค่าลิขสิทธิ์ ERC-2981 เข้ามาเกี่ยวข้อง มาตรฐานค่าลิขสิทธิ์เปิดให้สัญญาระบุว่า “เมื่อขายต่อ โปรดส่ง X% ไปยังแอดเดรสนี้” และมาร์เก็ตเพลสที่รองรับมาตรฐานก็จะทำตาม ค่าลิขสิทธิ์บังคับใช้โดยมาร์เก็ตเพลส ไม่ใช่โดยโปรโตคอล บล็อกเชนเองไม่ได้ป้องกันการโอนระหว่างบุคคลที่หลีกเลี่ยงการจ่ายค่าลิขสิทธิ์ การเข้าใจความแตกต่างระหว่างตลาดหลักกับตลาดรองยังช่วยอธิบายรูปแบบที่พบเป็นประจำได้ด้วย นั่นคือสงครามแย่งค่าก๊าซในวันมิ้นต์ของคอลเลกชันยอดนิยม (เพราะทุกคนพยายามแย่งโทเคนในตลาดหลักที่มีจำกัดพร้อมกัน) เทียบกับการขายต่อในอีกหลายเดือนให้หลังที่มีค่าธรรมเนียมต่ำและเงียบสงบ (เพราะไม่ได้เขียนข้อมูลใหม่ลงในพื้นที่จัดเก็บ เพียงเปลี่ยนผู้ถือครองเท่านั้น)

โครงสร้างค่าก๊าซของการมิ้นต์

การมิ้นต์มีค่าใช้จ่าย เพราะการเขียนข้อมูลลงในพื้นที่จัดเก็บของบล็อกเชนมีค่าใช้จ่าย การทำความเข้าใจ ว่าธุรกรรมบนบล็อกเชนทำงานอย่างไร จะช่วยให้เห็นภาพ และ เหตุใดค่าก๊าซจึงมีมูลค่าเป็นเงินจริง จะช่วยอธิบายบริบททางเศรษฐกิจ สรุปสั้น ๆ สำหรับการมิ้นต์มีดังนี้

เมื่อรวมทั้งหมดแล้ว การมิ้นต์ ERC-721 ทั่วไปใช้ก๊าซประมาณ 50,000 ถึง 150,000 หน่วย ขึ้นอยู่กับจำนวนช่องข้อมูลในพื้นที่จัดเก็บที่สัญญาแตะต้อง และมีการทำธุรกรรมเป็นชุดหรือไม่ แม้จะเรียกว่า “มิ้นต์ฟรี” แต่ก็ไม่ได้ฟรีจริง ผู้สร้างเพียงไม่เรียกเก็บราคามิ้นต์เพิ่มจากค่าก๊าซ ผู้ซื้อยังคงเป็นผู้จ่ายให้เครือข่าย

การมิ้นต์แบบขี้เกียจ — มิ้นต์โดยไม่จ่ายค่าก๊าซจนกว่าจะโอนครั้งแรก

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

กลไกนี้อาศัย EIP-712 ซึ่งเอกสาร Ethereum อธิบายว่าเป็น “มาตรฐานสำหรับแฮชและลงลายมือชื่อข้อมูลที่มีโครงสร้างและกำหนดชนิด แทนการใช้สตริงไบต์เพียงอย่างเดียว” ในทางปฏิบัติ กลไกนี้ช่วยให้ผู้สร้างลงลายมือชื่อในข้อความนอกบล็อกเชนที่มีโครงสร้าง เช่น เวาเชอร์ที่มี ID โทเคน URI ข้อมูลเมตา ราคา และกฎการมีสิทธิ์ ซึ่งสัญญาอัจฉริยะสามารถตรวจสอบความถูกต้องด้วยวิธีเข้ารหัสในภายหลังได้ กระเป๋าเงินจะแสดงฟิลด์ต่าง ๆ เป็นข้อความที่อ่านเข้าใจได้ แทนที่จะแสดงเป็นชุดเลขฐานสิบหก ซึ่งช่วยเพิ่มความปลอดภัยและเป็นเหตุผลที่ทำให้ EIP-712 กลายเป็นมาตรฐานหลักของอุตสาหกรรม

เมื่อผู้ซื้อตัดสินใจซื้อ ก็จะเรียกใช้ฟังก์ชัน redeem บนสัญญามิ้นต์ แล้วส่งเวาเชอร์พร้อมลายมือชื่อของผู้สร้างไปด้วย สัญญาจะตรวจสอบลายมือชื่อ เรียกใช้ _safeMint ในธุรกรรมเดียวกัน และส่งราคาขายให้ผู้สร้าง ผู้ซื้อจ่ายค่าก๊าซ ส่วนผู้สร้างไม่ต้องจ่ายค่าโทเคนคงเหลือที่ขายไม่ออก OpenSea ทำให้รูปแบบนี้เป็นที่รู้จักในหมู่ผู้สร้างผลงานออกใหม่ในอดีต ส่วน Rarible, Zora และแพลตฟอร์มมิ้นต์อิสระอีกหลายแห่งก็ใช้รูปแบบดัดแปลง (Seaport ซึ่งเป็นโปรโตคอลรุ่นใหม่ของ OpenSea ใช้สำหรับซื้อขาย ไม่ใช่กลไกพื้นฐานของการมิ้นต์แบบขี้เกียจ แต่ใช้รูปแบบคำสั่งซื้อที่ลงลายมือชื่อด้วย EIP-712 คล้ายกัน)

รูปแบบการมิ้นต์ที่พบบ่อย

เมื่อเข้าใจกลไกแล้ว รูปแบบการขายก็เป็นเพียงนโยบายที่วางซ้อนบน _safeMint เท่านั้น

เบื้องหลังยังคงเป็นการเรียกใช้ _mint แบบเดียวกัน ต่างกันที่กฎว่ามิ้นต์เมื่อใด ใครเป็นผู้มิ้นต์ และราคาเท่าใด

อะไรอาจผิดพลาดได้

การมิ้นต์เป็นหนึ่งในขั้นตอนที่ผู้ใช้ใหม่มักพบข้อผิดพลาดได้ง่าย เนื่องจากต้องทำแข่งกับเวลาและเกิดขึ้นต่อสาธารณะ

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

ประเด็นสำคัญ


อ่านเพิ่มเติม

ภาพแสดงกระเป๋าเงิน ค่าธรรมเนียม Gas และการอนุมัติ ซึ่งเป็น 3 เรื่องที่ผู้ใช้ DeFi ทุกคนต้องเข้าใจ

กระเป๋าเงิน ค่าธรรมเนียม Gas และการอนุมัติ: 3 เรื่องที่ผู้ใช้ DeFi ทุกคนต้องเข้าใจ

ก่อนที่คุณจะแลกเปลี่ยน ให้กู้ยืม หรือทำฟาร์มสิ่งใด คุณต้องเข้าใจองค์ประกอบพื้นฐาน 3 อย่างที่ทุกการใช้งาน DeFi ต้องอาศัย ได้แก่ กระเป๋าเงินของคุณ ค่าธรรมเนียม Gas และการอนุมัติโทเคน

อ่าน 9 นาที
ภาพประกอบหัวข้อกระเป๋าเงินคริปโตเก็บอะไรไว้จริง ๆ

กระเป๋าเงินคริปโตคืออะไร และเก็บอะไรไว้จริง ๆ

คนส่วนใหญ่มักคิดว่ากระเป๋าเงินคริปโตเก็บเหรียญของคุณไว้ แต่ความจริงไม่ใช่ มาดูกันว่ากระเป๋าเงินเก็บอะไรไว้จริง ๆ และทำไมความแตกต่างนี้จึงเปลี่ยนวิธีปกป้องเงินของคุณไปทั้งหมด

อ่าน 9 นาที
รักษาความปลอดภัยบนบล็อกเชน: กลโกง สัญญาณเตือน และพฤติกรรมที่ปลอดภัย

รักษาความปลอดภัยบนบล็อกเชน: กลโกง สัญญาณเตือน และพฤติกรรมที่ปลอดภัย

กลโกงคริปโตทำให้ชาวอเมริกันสูญเสียเงิน $11.3 billion ในปี 2025 เพียงปีเดียว แต่การโจมตีส่วนใหญ่มีรูปแบบที่คาดเดาได้ เรียนรู้วิธีสังเกตและสร้างนิสัยที่ช่วยป้องกันไม่ให้ผู้โจมตีเข้าถึงเงินของคุณ

อ่าน 13 นาที

สมัครรับจดหมายข่าว

รับข่าวสารอัปเดตจากเราเดือนละครั้ง ไม่มีสแปม มีเพียงเรื่องล่าสุดจาก Zelcore

สมัครรับจดหมายข่าว