Mua Crypto
Thị trường
Spot
FuturesBTC
Tiết kiệm
Trung tâm sự kiện
Trung tâm thưởng
Xem thêm
Lễ hội 0 phí
ERC-1155: ERC-1155 là gì?ERC-1155 là tiêu chuẩn token trên Ethereum, cho phép một hợp đồng thông minh quản lý nhiều loại token khác nhau.Một hợp đồng ERC-1155 có thể chứa token có thể thay thế, token không thể ERC-1155: ERC-1155 là gì?ERC-1155 là tiêu chuẩn token trên Ethereum, cho phép một hợp đồng thông minh quản lý nhiều loại token khác nhau.Một hợp đồng ERC-1155 có thể chứa token có thể thay thế, token không thể

ERC-1155

2026/10/13 16:21
#Intermediate
Humanity
H$0.05672-2.66%
Gravity
G$0.003767-4.09%
TokenFi
TOKEN$0.001849-4.44%
MemeCore
M$0.89578+18.23%
STANDARD
STANDARD$0.2349-0.21%

ERC-1155 là gì?

ERC-1155 là tiêu chuẩn token trên Ethereum, cho phép một hợp đồng thông minh quản lý nhiều loại token khác nhau.Một hợp đồng ERC-1155 có thể chứa token có thể thay thế, token không thể thay thế, token bán thay thế hoặc kết hợp các loại tài sản này.

Đặc tả ERC-1155 chính thức quy định các quy tắc chung về số dư, chuyển token, thao tác hàng loạt, phê duyệt, callback receiver, sự kiện, metadata và phát hiện giao diện.

ERC-1155 thường được gọi là Multi-Token Standard.Mỗi loại token được xác định bằng token ID và có thể có nguồn cung, metadata, mục đích, độ khan hiếm và đặc điểm kinh tế riêng.Thiết kế này giảm nhu cầu triển khai một hợp đồng thông minh riêng cho mỗi tài sản trong ứng dụng crypto quy mô lớn.ERC-1155 đặc biệt hữu ích cho trò chơi blockchain, vật phẩm sưu tầm kỹ thuật số, tư cách thành viên, vé sự kiện, hệ thống phần thưởng, kho token hóa và các ứng dụng quản lý nhiều tài sản liên quan.Tuân thủ tiêu chuẩn giúp tăng khả năng tương tác, nhưng không bảo đảm token là xác thực, có giá trị, khan hiếm hoặc an toàn.

Vì sao ERC-1155 được tạo ra?

Các tiêu chuẩn token Ethereum trước đây thường tập trung vào một tài sản có thể thay thế hoặc một bộ sưu tập tài sản độc nhất.Vì vậy, dự án có hàng trăm loại tiền tệ, vật phẩm game, vé và đồ sưu tầm có thể cần nhiều hợp đồng riêng biệt.Mỗi hợp đồng bổ sung làm phát sinh chi phí triển khai, mã lặp lại, công việc quản trị và độ phức tạp tích hợp.ERC-1155 cho phép các loại token này dùng chung một hợp đồng và một hệ thống chuyển token.Tiêu chuẩn cũng hỗ trợ thao tác hàng loạt để truy vấn hoặc chuyển nhiều token ID trong một lần gọi.Gộp thao tác có thể giảm chi phí giao dịch lặp lại và đơn giản hóa tương tác liên quan đến nhiều tài sản.Tiêu chuẩn được thiết kế cho các hệ thống token quy mô lớn nhưng không chỉ giới hạn ở trò chơi blockchain.

Cách ERC-1155 hoạt động

Hợp đồng ERC-1155 ghi nhận số dư riêng cho từng tổ hợp địa chỉ tài khoản và token ID.Ví dụ, một ví có thể sở hữu 500 đơn vị token ID 1, ba đơn vị token ID 2 và một đơn vị token ID 3.Token ID 1 có thể đại diện cho một loại tiền tệ có thể thay thế, token ID 2 là vật phẩm phiên bản giới hạn và token ID 3 là NFT độc nhất.Cả ba số dư có thể tồn tại trong cùng một hợp đồng thông minh.Khi token được chuyển, hợp đồng giảm số dư của người gửi và tăng số dư của người nhận đối với các token ID được chọn.Hợp đồng phát ra sự kiện theo chuẩn để ví và indexer blockchain có thể theo dõi các thay đổi.Khi bên nhận là hợp đồng thông minh, ERC-1155 thực hiện callback receiver để xác nhận hợp đồng đó chấp nhận token.

Token ID ERC-1155 là gì?

Token ID là một số nguyên không dấu dùng để xác định một loại token trong hợp đồng ERC-1155.Cùng một token ID có thể xuất hiện trong hợp đồng khác nhưng không đại diện cho cùng một tài sản crypto.Vì vậy, tài sản ERC-1155 được xác định đồng thời bằng mạng blockchain, địa chỉ hợp đồng và token ID.Token ID 100 trong một hợp đồng có thể đại diện cho tài nguyên game, còn token ID 100 trong hợp đồng khác có thể là vé sự kiện.Tiêu chuẩn không yêu cầu token ID bắt đầu từ 0 hoặc tăng theo thứ tự đơn giản.Nhà phát triển có thể gán ID theo thiết kế ứng dụng.Người dùng nên xác minh toàn bộ địa chỉ hợp đồng và token ID thay vì chỉ dựa vào tên hoặc hình ảnh hiển thị.

Token ERC-1155 có thể thay thế

Token ID có thể hoạt động như tài sản có thể thay thế khi tồn tại nhiều đơn vị của ID đó có thể hoán đổi cho nhau.Ví dụ, một trò chơi có thể phát hành một triệu đơn vị token ID 10 làm tiền tệ trong game.Mỗi người nắm giữ có số dư số lượng gắn với token ID 10.Các đơn vị cùng ID thường có thuộc tính giống nhau do hợp đồng quy định.Giao diện ERC-1155 cốt lõi không định nghĩa symbol, giá trị decimals hoặc tên riêng cho từng token ID.Khi cần thông tin hiển thị này, dự án phải cung cấp thông qua metadata hoặc hàm tùy chỉnh.

Token ERC-1155 không thể thay thế

Token ID có thể hoạt động như NFT nếu nguồn cung được giới hạn ở một đơn vị.Địa chỉ nắm giữ đơn vị đó về cơ bản sở hữu tài sản độc nhất do ID đại diện.Một ID khác trong cùng hợp đồng có thể đại diện cho vật phẩm độc nhất khác.Khác với ERC-721, ERC-1155 không tự động yêu cầu mỗi token ID chỉ có một đơn vị nguồn cung.Logic mint của hợp đồng phải đảm bảo tính độc nhất khi một token ID được mô tả là không thể thay thế.Người dùng nên xác minh cơ chế kiểm soát nguồn cung thực tế trước khi tin rằng một vật phẩm ERC-1155 là độc nhất.

Token ERC-1155 bán thay thế

Token bán thay thế có nhiều đơn vị có thể hoán đổi trong một giai đoạn của vòng đời nhưng sau đó có thể mang ý nghĩa hoặc tiện ích khác nhau.Vé sự kiện là ví dụ phổ biến vì một số vé cùng khu vực có thể hoán đổi trước sự kiện.Sau sự kiện, mỗi vé đã sử dụng có thể trở thành vật phẩm sưu tầm gắn với trải nghiệm cụ thể.Vật phẩm game phiên bản giới hạn cũng có thể sử dụng mô hình bán thay thế.ERC-1155 không chính thức gắn nhãn token ID là có thể thay thế, không thể thay thế hay bán thay thế.Việc phân loại phụ thuộc vào nguồn cung, metadata, quy tắc chuyển token và cách ứng dụng hoạt động.

Các hàm cốt lõi của ERC-1155

Giao diện ERC-1155 cốt lõi gồm các hàm kiểm tra số dư, chuyển token và quản lý quyền operator.

Các hàm chính là

balanceOf
,
balanceOfBatch
,
safeTransferFrom
,
safeBatchTransferFrom
,
setApprovalForAll
và
isApprovedForAll
.

ERC-1155 cũng yêu cầu hỗ trợ phát hiện giao diện ERC-165.Giao diện cốt lõi không định nghĩa mint công khai, burn công khai, royalty, tổng nguồn cung, decimals của token hoặc phê duyệt token riêng lẻ.Hợp đồng có thể bổ sung các tính năng này thông qua phần mở rộng tùy chọn hoặc logic tùy chỉnh.

Hàm balanceOf

Hàm

balanceOf
trả về số lượng token ID được chỉ định mà một tài khoản sở hữu.

Hàm này cần địa chỉ tài khoản và token ID.Điều này khác với ERC-20 vì một hợp đồng ERC-20 thường chỉ đại diện cho một loại token.Hàm cũng khác với ERC-721 vì số dư ERC-721 đếm số NFT độc nhất mà một địa chỉ sở hữu trong bộ sưu tập.Số dư ERC-1155 của một ID có thể bằng 0, 1 hoặc số nguyên lớn hơn.Tiêu chuẩn yêu cầu truy vấn số dư cho địa chỉ zero phải thất bại.

Hàm balanceOfBatch

Hàm

balanceOfBatch
lấy nhiều số dư trong một lần gọi.

Bên gọi cung cấp một mảng địa chỉ tài khoản và một mảng token ID.Mỗi tài khoản được ghép với token ID ở cùng vị trí trong mảng.Hai mảng phải có độ dài bằng nhau.Hàm có thể truy vấn nhiều token ID của một tài khoản hoặc một token ID thuộc nhiều tài khoản.Hàm này giảm số lần gọi blockchain riêng lẻ mà ví, trò chơi và ứng dụng danh mục đầu tư cần thực hiện.

Hàm safeTransferFrom

Hàm

safeTransferFrom
chuyển một số lượng của một token ID từ địa chỉ này sang địa chỉ khác.

Bên gọi phải là người nắm giữ token hoặc operator được người nắm giữ phê duyệt.Người gửi phải sở hữu đủ đơn vị của ID được chọn.Địa chỉ zero không thể là bên nhận.Hàm cũng nhận một trường bytes có thể chứa dữ liệu riêng của ứng dụng.

Giao dịch chuyển đơn lẻ thành công phát ra sự kiện

TransferSingle
.

Nếu bên nhận là hợp đồng thông minh, bên nhận phải vượt qua bước kiểm tra chấp nhận ERC-1155 bắt buộc.

Hàm safeBatchTransferFrom

Hàm

safeBatchTransferFrom
chuyển nhiều token ID và số lượng trong một giao dịch.

Bên gọi cung cấp mảng token ID và mảng số lượng chuyển tương ứng.Mỗi số lượng áp dụng cho ID ở cùng vị trí trong mảng.Các mảng phải có độ dài bằng nhau.Người gửi phải có đủ đơn vị của mọi token trong lô.Nếu một giao dịch chuyển bắt buộc thất bại, toàn bộ giao dịch thường sẽ bị hoàn tác.

Thao tác thành công phát ra một sự kiện

TransferBatch
.

Lợi ích của chuyển hàng loạt

Chuyển hàng loạt có thể giảm chi phí giao dịch khi cần chuyển đồng thời nhiều tài sản liên quan.Người chơi có thể chuyển tiền tệ, nguyên liệu, trang bị và vật phẩm sưu tầm trong một giao dịch.Hợp đồng thưởng có thể phân phối nhiều loại token cho một người nhận trong một thao tác.Gộp giao dịch cũng có thể đơn giản hóa các giao dịch trao đổi nguyên tử vì toàn bộ nhóm tài sản cùng được chuyển hoặc giao dịch thất bại.Lượng gas tiết kiệm được phụ thuộc vào số ID, thay đổi lưu trữ, logic receiver và điều kiện mạng.Các lô rất lớn vẫn có thể vượt giới hạn gas giao dịch hoặc tạo rủi ro từ chối dịch vụ.Ứng dụng nên đặt giới hạn thực tế cho kích thước lô do người dùng kiểm soát.

Phê duyệt operator ERC-1155

ERC-1155 sử dụng phê duyệt operator trên toàn bộ bộ sưu tập.

Hàm

setApprovalForAll
cho phép người nắm giữ token ủy quyền hoặc thu hồi quyền của operator.

Operator được phê duyệt có thể chuyển mọi token ID ERC-1155 mà người nắm giữ sở hữu trong hợp đồng đó.Quyền này cũng có thể áp dụng cho token mà người nắm giữ nhận sau này từ cùng hợp đồng.Tiêu chuẩn cốt lõi không cho phép người dùng phê duyệt riêng một ID hoặc một lượng giới hạn.Quyền rộng này có thể tăng tính tiện dụng nhưng tạo ra rủi ro bảo mật đáng kể.Operator độc hại có thể lấy đi mọi token bị ảnh hưởng khi quyền phê duyệt còn hiệu lực.

Hàm isApprovedForAll

Hàm

isApprovedForAll
cho biết operator có quyền đối với số dư ERC-1155 của chủ sở hữu hay không.

Hàm trả về

true
hoặc
false
.

Phê duyệt chỉ áp dụng trong hợp đồng nơi quyền đó được cấp.Quyền này không tự động bao gồm tài sản trong hợp đồng ERC-1155 khác hoặc token sử dụng tiêu chuẩn khác.Người dùng nên thường xuyên rà soát quyền operator và thu hồi các quyền không còn cần thiết.Ngắt kết nối ví khỏi website không xóa phê duyệt đã lưu trên blockchain.

Phần mở rộng phê duyệt chi tiết

Mô hình operator rộng có thể không phù hợp khi người nắm giữ chỉ muốn cấp quyền cho một token ID hoặc số lượng giới hạn.

Phần mở rộng allowance ERC-5216 được đề xuất, quy định phê duyệt chi tiết hơn theo token ID và số lượng.

Phần mở rộng này không thuộc tiêu chuẩn ERC-1155 cốt lõi và không nên mặc định là có trong mọi hợp đồng.Ví nên giải thích rõ giao dịch cấp quyền trên toàn bộ bộ sưu tập hay quyền có giới hạn.

Callback receiver ERC-1155

Hợp đồng thông minh nhận token ERC-1155 qua giao dịch chuyển an toàn tiêu chuẩn phải triển khai callback receiver chính xác.

Callback chuyển đơn lẻ là

onERC1155Received
.

Callback chuyển hàng loạt là

onERC1155BatchReceived
.

Receiver có thể kiểm tra operator, người nắm giữ trước đó, token ID, số lượng và dữ liệu đính kèm.Receiver chấp nhận token bằng cách trả về giá trị bắt buộc.Nếu receiver trả về giá trị sai hoặc revert, toàn bộ giao dịch chuyển token sẽ bị hoàn tác.Thiết kế này giúp giảm nguy cơ vô tình chuyển token đến hợp đồng thông minh không thể xử lý tài sản ERC-1155.

ID giao diện receiver và giá trị trả về

ID giao diện receiver ERC-1155 là

0x4e2312e0
.

Giá trị trả về được yêu cầu cho

onERC1155Received
là
0xf23a6e61
.

Giá trị trả về được yêu cầu cho

onERC1155BatchReceived
là
0xbc197c81
.

Hợp đồng nhận nên xác minh hợp đồng ERC-1155 nào đã kích hoạt callback.Chấp nhận dữ liệu callback mà không kiểm tra bên gọi có thể khiến hợp đồng độc hại tạo bản ghi nạp giả.Vượt qua bước kiểm tra receiver không bảo đảm hợp đồng nhận có quy trình rút tiền an toàn trong tương lai.

Callback receiver và reentrancy

Callback receiver ERC-1155 thực thi mã hợp đồng bên ngoài trước khi giao dịch ban đầu hoàn tất.Receiver độc hại có thể gọi lại một hàm khác trong khi giao dịch chuyển ban đầu vẫn đang diễn ra.Hành vi này tạo ra khả năng reentrancy.Đặc tả ERC-1155 yêu cầu thay đổi số dư và sự kiện chuyển diễn ra trước callback receiver.Ứng dụng tương tác với token vẫn phải bảo vệ logic kế toán và phân quyền của mình.Nhà phát triển nên kiểm thử cả hai callback bằng hợp đồng receiver độc hại cố gắng reentrancy cùng hàm và chéo hàm.

Tài liệu triển khai ERC-1155 hiện tại cũng cảnh báo rằng chuyển token đến hợp đồng có thể tạo rủi ro reentrancy.

Sự kiện ERC-1155

Tiêu chuẩn cốt lõi định nghĩa các sự kiện

TransferSingle
,
TransferBatch
,
ApprovalForAll
và
URI
.

Các log sự kiện này cho phép ví, trình khám phá blockchain và indexer theo dõi hoạt động token.ERC-1155 được thiết kế để có thể dựng lại lịch sử nguồn cung và số dư từ các sự kiện chuyển được phát đúng quy tắc.Luôn phải diễn giải mỗi sự kiện cùng với địa chỉ hợp đồng đã phát ra sự kiện đó.Hợp đồng độc hại có thể phát ra sự kiện tên quen thuộc nhưng không đại diện cho dự án xác thực.

Sự kiện TransferSingle

Sự kiện

TransferSingle
ghi lại operator, người gửi, người nhận, token ID và số lượng.

Giao dịch chuyển thông thường có địa chỉ người gửi và người nhận khác zero.Khi mint, địa chỉ zero được dùng làm người gửi.Khi burn, địa chỉ zero được dùng làm người nhận.Tiêu chuẩn cũng yêu cầu giao dịch chuyển có giá trị bằng zero phát ra sự kiện phù hợp.

Sự kiện TransferBatch

Sự kiện

TransferBatch
ghi lại nhiều token ID và số lượng được chuyển trong một thao tác.

ID và giá trị được lưu ở các vị trí tương ứng trong mảng.Sự kiện cũng xác định operator, người gửi và người nhận.Khi mint hàng loạt, địa chỉ zero được dùng làm người gửi.Khi burn hàng loạt, địa chỉ zero được dùng làm người nhận.Indexer phải xử lý mọi phần tử trong mảng sự kiện để tính số dư và nguồn cung chính xác.

Sự kiện ApprovalForAll

Sự kiện

ApprovalForAll
ghi lại việc chủ sở hữu bật hoặc tắt operator.

Sự kiện gồm chủ sở hữu, operator và trạng thái phê duyệt.Bản thân sự kiện không chuyển token.Sự kiện thay đổi việc operator có thể khởi tạo các giao dịch chuyển trong tương lai từ chủ sở hữu hay không.Thu hồi phê duyệt không đảo ngược các giao dịch chuyển đã hoàn tất khi quyền còn hiệu lực.

Phát hiện giao diện ERC-165

ERC-1155 yêu cầu phát hiện giao diện ERC-165.

ID giao diện ERC-1155 cốt lõi là

0xd9b67a26
.

Hợp đồng tương thích nên trả về

true
khi gọi
supportsInterface
với mã định danh đó.

Tiêu chuẩn ERC-165 cung cấp phương thức chung để hợp đồng công bố các giao diện được hỗ trợ.

Phát hiện giao diện giúp ứng dụng tránh gọi các hàm không được hỗ trợ.Kết quả dương tính không tự chứng minh mọi hàm được triển khai chính xác hoặc an toàn.

Metadata ERC-1155

ERC-1155 có phần mở rộng URI metadata tùy chọn.

Phần mở rộng thêm hàm

uri
, trả về vị trí metadata của một token ID.

ID giao diện của phần mở rộng là

0x0e89341c
.

URI thường trỏ đến tài liệu JSON gồm tên, mô tả, hình ảnh, thuộc tính và thông tin token khác.

Tiêu chuẩn cốt lõi không yêu cầu hàm

name
,
symbol
hoặc
decimals
on-chain riêng cho từng token ID.

Dự án có thể bổ sung các trường này thông qua metadata hoặc giao diện tùy chỉnh.

Ký hiệu giữ chỗ metadata {id}

URI metadata ERC-1155 có thể chứa ký hiệu giữ chỗ

{id}
.

Ứng dụng thay ký hiệu này bằng token ID được yêu cầu ở dạng hexadecimal viết thường.Giá trị định dạng phải có 64 ký tự hexadecimal, bao gồm các số 0 ở đầu.

Giá trị không được có tiền tố

0x
.

Phương thức này cho phép một URI cơ sở mô tả vị trí metadata của nhiều token ID.Ứng dụng thay thế sai có thể truy xuất metadata của nhầm tài sản.

Rủi ro lưu trữ metadata

Metadata ERC-1155 có thể được lưu trên máy chủ web, mạng lưu trữ định danh theo nội dung hoặc trực tiếp on-chain.Metadata lưu trên máy chủ có thể bị thay đổi hoặc biến mất.Lưu trữ định danh theo nội dung có thể cải thiện tính toàn vẹn nhưng nội dung vẫn phải tiếp tục khả dụng.Metadata on-chain giảm sự phụ thuộc vào lưu trữ bên ngoài nhưng có thể tốn kém hơn khi lưu trữ và cập nhật.URI có thể thay đổi cho phép quản trị viên thay đổi tên, hình ảnh, mô tả và thuộc tính sau khi người dùng nhận token.Người dùng nên xem xét ai kiểm soát metadata và có thể xác minh cam kết về tính lâu dài hay không.

Mint token ERC-1155

Mint tạo các đơn vị mới của token ID ERC-1155.Tiêu chuẩn cốt lõi không định nghĩa hàm mint công khai hoặc quyết định ai có thể tạo token.Bản triển khai có thể giới hạn quyền mint cho quản trị viên, hợp đồng thông minh, quy trình quản trị hoặc vai trò được ủy quyền khác.

Thao tác mint đơn lẻ phát ra

TransferSingle
từ địa chỉ zero.

Mint hàng loạt phát ra

TransferBatch
từ địa chỉ zero.

Mint cho hợp đồng thông minh thường kích hoạt callback receiver phù hợp.Người dùng nên kiểm tra quyền mint trước khi tin vào tuyên bố về nguồn cung hoặc độ khan hiếm.

Burn token ERC-1155

Burn loại bỏ các đơn vị token khỏi lưu thông theo quy tắc của hợp đồng.Tiêu chuẩn cốt lõi không yêu cầu hàm burn công khai.Hợp đồng có thể cho phép người nắm giữ, operator được phê duyệt, quản trị viên hoặc logic giao thức burn token.Thao tác burn phát ra sự kiện chuyển với địa chỉ zero làm người nhận.Burn toàn bộ đơn vị hiện có của một ID không nhất thiết ngăn ID đó được mint lại.Kết quả phụ thuộc vào cơ chế mint và kiểm soát nguồn cung của bản triển khai.

Tổng nguồn cung và liệt kê

Giao diện ERC-1155 cốt lõi không có hàm

totalSupply
.

Có thể dựng lại nguồn cung từ sự kiện mint và burn nếu hợp đồng tuân thủ chính xác yêu cầu về sự kiện.Bản triển khai có thể bổ sung phần mở rộng theo dõi nguồn cung tùy chọn để báo cáo tổng nguồn cung của từng ID.

Thư viện hợp đồng ERC-1155 hiện tại có các phần mở rộng theo dõi nguồn cung, burn, tạm dừng và lưu trữ URI.

ERC-1155 cũng không định nghĩa hàm cốt lõi để liệt kê mọi token ID hoặc người nắm giữ hiện có.Ứng dụng thường dùng lập chỉ mục sự kiện off-chain để tạo danh sách này.

Royalty ERC-1155

Royalty cho nhà sáng tạo không thuộc tiêu chuẩn ERC-1155 cốt lõi.

Tiêu chuẩn royalty ERC-2981 tùy chọn cho phép hợp đồng báo cáo người nhận royalty và số tiền đề xuất.

Số tiền royalty được tính dựa trên giá bán được cung cấp.ERC-2981 truyền tải thông tin royalty nhưng không tự động thực thi thanh toán trong mọi giao dịch chuyển.Giao dịch chuyển có thể không liên quan đến việc bán, đây là một trong những lý do hợp đồng token không thể xem mọi lần chuyển là sự kiện tính royalty.Người dùng nên xác định cài đặt royalty có thể bị quản trị viên thay đổi hay không.

Lỗi ERC-1155 theo chuẩn

Đặc tả ERC-1155 ban đầu không định nghĩa custom error Solidity hiện đại.

Tiêu chuẩn lỗi ERC-6093 ở trạng thái Final định nghĩa tên lỗi phổ biến cho hợp đồng ERC-1155.

Các lỗi này bao gồm số dư không đủ, người gửi không hợp lệ, người nhận không hợp lệ, thiếu phê duyệt operator, operator không hợp lệ và độ dài mảng không khớp.Lỗi theo chuẩn giúp ví và nhà phát triển giải thích nhất quán hơn các giao dịch thất bại.Hợp đồng ERC-1155 hiện có không bắt buộc phải áp dụng các lỗi này.

ERC-1155 và ERC-20

ERC-20 thường đại diện cho một loại token có thể thay thế trong mỗi hợp đồng.ERC-1155 có thể đại diện cho nhiều loại token trong một hợp đồng.ERC-20 dùng allowance bằng số lượng cho bên chi tiêu, còn ERC-1155 cốt lõi dùng phê duyệt operator trên toàn bộ bộ sưu tập.ERC-1155 có chuyển hàng loạt và callback receiver bắt buộc cho người nhận là hợp đồng thông minh.Tiêu chuẩn ERC-20 cốt lõi không có các tính năng này.ERC-20 có thể đơn giản hơn nếu dự án chỉ cần một tài sản crypto có thể thay thế.

ERC-1155 và ERC-721

ERC-721 được thiết kế cho các token ID không thể thay thế thuộc sở hữu riêng lẻ.Một token ID ERC-721 hợp lệ có một chủ sở hữu.ERC-1155 lưu số dư số lượng cho từng tổ hợp tài khoản và token ID.Nhờ vậy, một ID có thể có nhiều đơn vị hoán đổi cho nhau, trong khi một ID khác trong cùng hợp đồng chỉ có nguồn cung một đơn vị.ERC-1155 cũng hỗ trợ chuyển hàng loạt theo chuẩn, còn ERC-721 thường chuyển từng NFT một.ERC-721 có thể cung cấp mô hình đơn giản hơn khi mọi tài sản đều độc nhất.

Các trường hợp sử dụng ERC-1155 phổ biến

Trò chơi blockchain có thể quản lý tiền tệ, nguyên liệu, vũ khí, nhân vật và đất đai thông qua một hợp đồng ERC-1155.Hệ thống sự kiện có thể phát hành các hạng vé và số lượng khác nhau dưới các token ID riêng.Dự án thành viên có thể tạo nhiều cấp độ truy cập hoặc gói quyền lợi.Nghệ sĩ kỹ thuật số có thể phát hành phiên bản giới hạn gồm nhiều bản sao có thể hoán đổi của mỗi tác phẩm.Ứng dụng tài chính có thể dùng token ID để xác định ngày đáo hạn, quyền yêu cầu, nhóm vị thế hoặc nhóm rủi ro.Hệ thống thưởng có thể phân phối nhiều loại điểm hoặc vật phẩm thành tích qua một giao dịch hàng loạt.Tiêu chuẩn không tự xác minh token có đại diện cho quyền có thể thực thi hợp pháp hoặc tài sản ngoài đời thực hay không.

Rủi ro phê duyệt ERC-1155

Phishing yêu cầu phê duyệt operator là rủi ro lớn đối với người nắm giữ ERC-1155.

Website độc hại có thể yêu cầu

setApprovalForAll
nhưng mô tả giao dịch là xác minh, kết nối tài khoản hoặc nhận phần thưởng.

Sau khi được phê duyệt, operator có thể chuyển mọi token ERC-1155 mà người dùng nắm giữ trong hợp đồng đó.Quyền này có thể vẫn hoạt động cho đến khi chủ sở hữu thu hồi.Người dùng nên xác minh mạng, hợp đồng token, địa chỉ operator và loại quyền trước khi ký.Không bao giờ cần cụm từ khôi phục ví hoặc khóa riêng tư để hủy phê duyệt operator.

Rủi ro thao tác hàng loạt

Thao tác hàng loạt sử dụng các mảng có vị trí phần tử phải được căn chỉnh chính xác.Giao dịch phải thất bại nếu token ID và số lượng không khớp.Đánh chỉ mục sai có thể chuyển nhầm số lượng tài sản.Các mảng do người dùng kiểm soát có kích thước rất lớn có thể tiêu thụ quá nhiều gas hoặc khiến hàm không thể sử dụng.Hợp đồng nhận nên xác thực mọi ID và số lượng trước khi chấp nhận một lô.Nhà phát triển nên kiểm thử mảng rỗng, ID lặp lại, độ dài không khớp, lô lớn và ID tài sản không được hỗ trợ.

Rủi ro về nguồn cung và tính xác thực

Token ID có thể trông như độc nhất vì hiện chỉ có một đơn vị tồn tại.Tài khoản được ủy quyền vẫn có thể mint thêm đơn vị sau này.Hợp đồng khác có thể sao chép tên token, ID, hình ảnh hoặc metadata.Địa chỉ hợp đồng và mạng là những phần thiết yếu trong danh tính token ERC-1155.Người dùng nên kiểm tra vai trò mint, giới hạn nguồn cung, quyền nâng cấp và quyền kiểm soát metadata.Tính tương thích với ERC-1155 không chứng minh tính xác thực, độ khan hiếm, tài sản thế chấp bảo chứng hoặc giá trị đầu tư.

Rủi ro hợp đồng có thể nâng cấp

Hợp đồng ERC-1155 có thể hoạt động thông qua proxy có thể nâng cấp.Quản trị viên được ủy quyền có thể thay đổi việc mint, chuyển token, phê duyệt, metadata, phí hoặc hành vi khác.Nâng cấp có thể sửa lỗ hổng nhưng cũng có thể đưa vào logic gây hại.Khóa nâng cấp bị xâm phạm có thể khiến mọi token ID do hợp đồng quản lý gặp rủi ro.Người dùng nên xem xét quyền nâng cấp, thời gian trì hoãn, kiểm soát đa chữ ký và quyền khẩn cấp.Hỗ trợ giao diện chính xác không chứng minh hợp đồng phi tập trung hoặc bất biến.

Cách nhà phát triển nên triển khai ERC-1155

Nhà phát triển nên bắt đầu với bản triển khai được duy trì và rà soát thường xuyên, trừ khi cần logic số dư tùy chỉnh.

Hướng dẫn phát triển ERC-1155 hiện tại giải thích số dư đa token, thao tác hàng loạt, kiểm tra receiver và các phần mở rộng phổ biến.

Các hàm mint và quản trị nên sử dụng kiểm soát truy cập rõ ràng.Giới hạn nguồn cung phải được thực thi trong mã hợp đồng, không chỉ được nêu trong tài liệu dự án.Bản triển khai phải phát ra mọi sự kiện chuyển và phê duyệt bắt buộc.Kiểm thử nên bao gồm chuyển đơn lẻ, chuyển hàng loạt, mint, burn, quyền operator, receiver không hợp lệ, mảng không khớp và callback độc hại.Nhà phát triển cũng nên xác minh đúng mã định danh ERC-165 cho từng phần mở rộng được hỗ trợ.

Cách người dùng đánh giá token ERC-1155

Bước đầu tiên là xác minh mạng blockchain, địa chỉ hợp đồng và token ID.Bước thứ hai là xác định token được dự định là có thể thay thế, không thể thay thế hay bán thay thế.Bước thứ ba là kiểm tra nguồn cung hiện tại, quyền mint và mọi giới hạn nguồn cung.Bước thứ tư là rà soát các phê duyệt operator đang hoạt động gắn với ví.Bước thứ năm là xác định cách lưu metadata và liệu metadata có thể thay đổi hay không.Bước thứ sáu là xác định quyền quản trị viên, tạm dừng, đóng băng, royalty và nâng cấp.Bước thứ bảy là xem xét mã nguồn, kiểm toán và lịch sử sự cố nhưng không xem chúng là bảo đảm an toàn.Bước thứ tám là tìm hiểu token thực sự cung cấp tiện ích, quyền quy đổi hoặc quyền yêu cầu pháp lý nào.Bước thứ chín là kiểm tra hợp đồng nhận có quy trình rút tiền đáng tin cậy hay không.Bước thứ mười là thử hợp đồng chưa quen thuộc với số lượng nhỏ trước khi chuyển tài sản có giá trị.

Ví dụ về giao dịch chuyển hàng loạt ERC-1155

Giả sử Alice sở hữu 100 đơn vị token ID 1, năm đơn vị token ID 2 và một đơn vị token ID 3.Cô ấy muốn gửi cho Bob 10 đơn vị ID 1, hai đơn vị ID 2 và một đơn vị ID 3.

Ví của cô ấy gọi

safeBatchTransferFrom
với các mảng chứa ba ID và số lượng tương ứng.

Hợp đồng xác minh số dư của Alice và xác nhận bên gọi được ủy quyền.Hợp đồng giảm số dư của Alice và tăng số dư của Bob cho từng ID.

Hợp đồng phát ra một sự kiện

TransferBatch
mô tả giao dịch chuyển.

Nếu Bob là hợp đồng thông minh, hợp đồng token sẽ gọi

onERC1155BatchReceived
.

Nếu bên nhận trả về giá trị chính xác, giao dịch hoàn tất.Nếu bất kỳ bước kiểm tra số dư, quyền hạn, mảng hoặc receiver nào thất bại, toàn bộ giao dịch sẽ bị hoàn tác.

Các lỗi ERC-1155 thường gặp

Một lỗi thường gặp là cho rằng mọi token ID ERC-1155 đều đại diện cho NFT.Một lỗi khác là cho rằng ID hiện chỉ có một đơn vị thì nguồn cung tối đa vĩnh viễn cũng là một.Lỗi thứ ba là cấp quyền operator mà không hiểu quyền đó áp dụng cho mọi token ID trong hợp đồng.Lỗi thứ tư là cho rằng ngắt kết nối ví sẽ xóa phê duyệt on-chain.Lỗi thứ năm là dùng khả năng truy cập metadata làm bằng chứng token đã được mint.Lỗi thứ sáu là cho rằng mọi hợp đồng đều có hàm tổng nguồn cung.Lỗi thứ bảy là xử lý mảng hàng loạt mà không kiểm tra độ dài và vị trí các phần tử.Lỗi thứ tám là bỏ qua callback receiver và rủi ro reentrancy.Lỗi thứ chín là cho rằng royalty được báo cáo sẽ tự động được thực thi.Lỗi thứ mười là xem việc tuân thủ giao diện như bằng chứng về tính xác thực, độ khan hiếm hoặc bảo mật.

Câu hỏi thường gặp

ERC-1155 nghĩa là gì?

ERC-1155 là Multi-Token Standard của Ethereum để quản lý nhiều loại token có thể thay thế, không thể thay thế và bán thay thế trong một hợp đồng.

ERC-1155 có phải là tiền mã hóa không?

ERC-1155 là tiêu chuẩn kỹ thuật, còn các hợp đồng triển khai tiêu chuẩn này có thể tạo ra nhiều loại tài sản crypto.

ID giao diện ERC-1155 là gì?

ID giao diện ERC-1155 cốt lõi là

0xd9b67a26
.

ID giao diện receiver ERC-1155 là gì?

ID giao diện receiver là

0x4e2312e0
.

ERC-1155 có thể tạo token có thể thay thế không?

Có. Một token ID có thể đại diện cho nhiều đơn vị hoán đổi cho nhau được phân bổ cho nhiều tài khoản.

ERC-1155 có thể tạo NFT không?

Có. Token ID có thể hoạt động như NFT khi hợp đồng giới hạn nguồn cung ở một đơn vị.

Token bán thay thế là gì?

Đó là token có các đơn vị hoán đổi cho nhau trong một bối cảnh nhưng sau đó mang ý nghĩa, trạng thái hoặc tiện ích khác nhau.

Một hợp đồng ERC-1155 có thể chứa nhiều tài sản không?

Có. Một hợp đồng có thể quản lý nhiều token ID với nguồn cung, metadata và mục đích khác nhau.

balanceOf trả về gì?

Hàm trả về số lượng của một token ID được chỉ định mà tài khoản sở hữu.

balanceOfBatch thực hiện việc gì?

Hàm trả về số dư của nhiều cặp tài khoản và token ID trong một lần gọi.

safeBatchTransferFrom là gì?

Hàm chuyển nhiều token ID và số lượng trong một giao dịch, đồng thời kiểm tra receiver nếu bên nhận là hợp đồng thông minh.

setApprovalForAll thực hiện việc gì?

Hàm cho phép operator quản lý mọi token ID mà bên gọi sở hữu trong một hợp đồng ERC-1155.

Người dùng có thể chỉ phê duyệt một token ID không?

Không thông qua hàm phê duyệt cốt lõi ERC-1155, dù các phần mở rộng tùy chọn có thể cung cấp quyền hạn chế hơn.

Phê duyệt ERC-1155 có tự động hết hạn không?

Không. Phê duyệt operator tiêu chuẩn vẫn hoạt động cho đến khi chủ sở hữu thu hồi hoặc logic tùy chỉnh thay đổi hiệu lực của quyền đó.

ERC-1155 có yêu cầu kiểm tra receiver không?

Có. Giao dịch chuyển an toàn tiêu chuẩn đến hợp đồng thông minh phải tuân thủ quy tắc callback receiver phù hợp cho giao dịch đơn lẻ hoặc hàng loạt.

Hợp đồng nhận có thể từ chối token ERC-1155 không?

Có. Hợp đồng có thể revert hoặc trả về giá trị chấp nhận sai, khiến giao dịch chuyển thất bại.

ERC-1155 có hỗ trợ metadata không?

Có. Tiêu chuẩn có phần mở rộng URI metadata tùy chọn với ID giao diện

0x0e89341c
.

Mọi token ERC-1155 đều có tên và symbol không?

Không. Tiêu chuẩn cốt lõi không yêu cầu hàm tên hoặc symbol on-chain riêng cho từng token ID.

ERC-1155 có định nghĩa decimals không?

Không. Khi cần, thông tin mệnh giá phải được lấy từ metadata hoặc logic riêng của dự án.

ERC-1155 có bao gồm totalSupply không?

Không. Muốn truy vấn tổng nguồn cung cần lập chỉ mục sự kiện hoặc phần mở rộng theo dõi nguồn cung tùy chọn.

Metadata ERC-1155 có thể thay đổi không?

Có. Metadata có thể thay đổi nếu hợp đồng hoặc hệ thống lưu trữ bên ngoài cho phép cập nhật.

ERC-1155 có thực thi royalty không?

Không. Thông tin royalty cần một tiêu chuẩn riêng và các hàm chuyển cốt lõi không tự động thực thi royalty.

Chuyển hàng loạt ERC-1155 có thể tiết kiệm gas không?

Có. Gộp nhiều lần chuyển token vào một giao dịch có thể giảm chi phí giao dịch lặp lại.

Callback ERC-1155 có thể gây reentrancy không?

Có. Callback receiver thực thi mã bên ngoài và có thể gọi các hàm hợp đồng khác trước khi giao dịch ban đầu hoàn tất.

Tuân thủ ERC-1155 có khiến token an toàn không?

Không. Hợp đồng tương thích vẫn có thể chứa mã không an toàn, quyền hạn quá rộng, metadata có thể thay đổi, kiểm soát nguồn cung yếu hoặc tuyên bố gian lận.

Kết luận

ERC-1155 là tiêu chuẩn của Ethereum để quản lý nhiều loại token thông qua một hợp đồng thông minh.Mỗi token ID có thể đại diện cho tài sản có thể thay thế, NFT độc nhất, vật phẩm bán thay thế hoặc tài sản crypto khác dựa trên số lượng.Tiêu chuẩn quy định truy vấn số dư, giao dịch chuyển đơn lẻ và hàng loạt, phê duyệt operator trên toàn bộ bộ sưu tập, callback receiver, sự kiện, quy tắc metadata và phát hiện giao diện.Thao tác hàng loạt có thể giảm chi phí giao dịch khi cần truy vấn hoặc chuyển nhiều tài sản cùng lúc.Callback receiver bắt buộc giúp giảm nguy cơ chuyển nhầm đến hợp đồng không tương thích nhưng tạo ra rủi ro gọi bên ngoài và reentrancy.Tiêu chuẩn cốt lõi không quy định mint công khai, burn, tổng nguồn cung, decimals, royalty, metadata vĩnh viễn hoặc allowance cho từng token.Các thuộc tính này phụ thuộc vào phần mở rộng tùy chọn và bản triển khai cụ thể của hợp đồng.Người dùng nên xác minh mạng, địa chỉ hợp đồng, token ID, cơ chế kiểm soát nguồn cung, phê duyệt operator, hệ thống metadata và quyền quản trị viên.Nhà phát triển nên dùng bản triển khai được duy trì, phát ra mọi sự kiện bắt buộc, bảo vệ callback receiver, giới hạn độ phức tạp của lô và kiểm thử mọi luồng phân quyền.ERC-1155 cung cấp cơ sở hạ tầng đa token linh hoạt, nhưng khả năng tương thích kỹ thuật không bảo đảm tính xác thực, độ khan hiếm, giá trị tài chính hoặc độ an toàn của hợp đồng thông minh.
BTC ETFs See $679M in Outflows
BTC ETFs See $679M in OutflowsBTC ETFs See $679M in Outflows
Citi sees BTC at $113K. What do institutions see?