Cách kiểm tra tổng cung tối đa của token có được lock hay không?

Mình sẽ chia sẻ tiếp cho anh em một bài viết nữa để hướng dẫn cách check tổng cung tối đa của Token (Max supply) có thực sự đúng là cố định hay team có thể tự ý in thêm hay không nhé.

Gần đây anh em hay thắc mắc rằng, tại sao Luna lại có thể in ra thêm hàng tỷ tỷ coin, hay một số dự án lại có tổng cung vô hạn, Team dev có thể mint token ra rất nhiều theo thời gian. Liệu anh em đã hiểu rõ cơ chế hoạt động mint token của dự án đó?

Hay có rất nhiều dự án Shitcoin tuyên bố rằng: “Tụi tao tổng cung tối đa là 1.000.000.000 token, lượng này là cố định và Burning hàng tháng, nhiều use case…v.v. Mua đi giàu soon soon ?. Tuy nhiên lại âm thầm in thêm ra hàng tỷ tỷ token nữa để chờ chực xả lên đầu cộng đồng. Vậy, câu hỏi đặt ra ở đây đó là làm sao để mình biết chắc chắn rằng, tổng cung của dự án này đã bị khoá, team dev không thể in ra thêm vô tội vạ ? Hãy cùng mình tìm hiểu nhé. (Phần Burning token mình đã viết tại TOKENOMICS SERIES #2, anh em xem lại để hiểu tổng quan nhé hơn nhé)

Đầu tiên, một lần nữa mình xin nhắc lại, công nghệ Blockchain là minh bạch, bất biến và phi tập trung. Bất cứ ai cũng có thể kiểm tra thông tin một cách dễ dàng, cũng như không ai có thể thay đổi, tẩy xoá, sửa chữa bất kì thông tin gì, một khi đã đưa lên trên đó. Ứng dụng thiết thực nhất của Blockchain 2.0 hiện nay đó là “SMART CONTRACT” hay nôm na đó là Hợp đồng thông minh. Nó thông minh ở chỗ, một khi contract đã được chạy, và xác thực thì nó sẽ tự động thực thi những gì trong đó viết ra, không gì có thể can thiệp được. Bất kể là chính người tạo ra contract đó. Okay !

Quay trở lại câu hỏi, làm sao để biết được liệu thông số “MAX SUPPLY” có thực sự là bất biến, hay team dev có thể can thiệp để in ra vô tội vạ hàng tỷ token. Anh em hãy cùng mình thực hành qua ví dụ sau,Mình sẽ lấy ví dụ ở 2 dự án “Aave (AAVE)” và PANCAKESWAP (CAKE).

Dự án Aave, các bạn có thể dễ dàng tìm thông tin trên Coingecko để thấy được tổng cung tối đa của dự án là 16.000.000 TOKEN. Còn dự án đình đám trên hệ BSC là Pancakeswap có tổng cung vô hạn. Vậy đặc điểm nào để check thông tin trên là đúng? Liệu AAVE có thể được in thêm 1 tỷ token nữa nếu team Dev muốn được không?Câu trả lời là “KHÔNG THỂ” bởi vì tổng cung tối đa của dự án này đã được fix cứng trong contract của dự án. Bất kì ai kể cả Team dev cũng không thể làm gì được. Nếu muốn tạo thêm token chỉ còn cách đổi contract mới hoặc làm dự án mới mà thôi.Hãy cùng mình thực hành nhé.

Bước 1: Vào coingecko gõ từ khóa “AAVE” để hiện ra thông tin như trong ảnh.

Bước 2: Bấm vào mục “Etherscan” mục đích là để check contract của dự án. Sau đó click vào phần khoanh đỏ như trong hình.

Bước 3: Bấm vào cái ô “Contract” có dấu tích xanh, tiếp theo bên ô tìm kiếm anh em gõ chữ “mint” để tìm kiếm hàm này ở trong “Contract source code” rồi gõ “Enter” nhé.

Bước 4: Click vào dấu mũi tên để tìm kiếm hàm “Mint Funtion” như trong ảnh đính kèm. Anh em sẽ thấy được một đoạn code có cấu trúc như bên dưới đây. Mình copy ra cho anh em xem, trong ảnh cũng đã khoanh đỏ để tiện theo dõi nhé:

[ function _mint(address account, uint256 amount) internal virtual {

require(account != address(0), “ERC20: mint to the zero address”);

_beforeTokenTransfer(address(0), account, amount);

_totalSupply = _totalSupply.add(amount);

_balances[account] = _balances[account].add(amount);

emit Transfer(address(0), account, amount); ]

Để đơn giản và dễ hiểu, anh em hãy xem đây được xem là một đoạn code chuẩn về hàm mint, nó có nghĩa rằng, một khi contract bắt đầu chạy thì hàm mint này sẽ được thực thi ở bên trong contract (gọi là hàm tiêng tư – internal virtual). Không ai có thể can thiệp sửa đổi hay gọi hàm này từ bên ngoài để mint thêm token. Kể cả chủ dự án !Tuy nhiên ở trong đoạn code của dự án Pancakeswap (CAKE). Anh em thực hiện tương tự đúng theo từ bước 1 tới bước 4 ở trên. Chỉ khác thao tác 1 chút xíu là thay mạng bscscan thay vì etherscan. Anh em cũng check hàm mint ở trong “Contract source code”. (Xem ảnh đính kèm) Sẽ có một đoạn code trông có vẻ khác cấu trúc so với dự án AAVE ở trên, cú pháp như sau:

[ function mint(uint256 amount) public onlyOwner returns (bool) {

_mint(_msgSender(), amount);

return true; ]

Ở hàm này, anh em chú ý có đoạn “Public only Owner returns”, đoạn này mình được hiểu có nghĩa là chủ sở hữu sẽ được public hàm “mint function” này. Và có thể gọi hàm này để thực thi (nếu muốn ), vì có chữ public only owners.Như vậy cơ chế mint token của dự án Pancakeswap khác hoàn toàn Aave. Một bên có tổng cung cố định và hữu hạn là 16 triệu token, một bên có tổng cung là vô hạn. Tuy nhiên không phải tổng cung vô hạn là dự án không tốt nhé, ở đây mình chỉ nói là khác nhau về cơ chế, điều quan trọng nhất là token đó có tính ứng dụng hay không?

Anh em hoàn toàn có thể check với thao tác tương tự cho các dự án khác dựa vào cách trên, đặc biệt là các dự án Meme coin hay dự án scam mới ra mắt. Để xem có đúng là code nằm trong contract có gì bất thường so với họ công khai hay không. Tránh TH để bị dự án rug pull ôm tiền bỏ trốn nhé. Rất sợ trường hợp team nói tổng cung là con số cố định, nhưng lại có quyền in thêm token nếu muốn để chờ chực xả lên đầu cộng đồng. Đó mới là điều đáng sợ ở đây, và nó đã từng xảy ra trong quá khứ.

Vì mình ko phải là dân Dev, nên những kiến thức mình research từ nhiều nguồn trên mạng và có thể chưa chuẩn xác. Nếu sai sót chỗ nào rất mong anh em góp ý và chia sẻ. Không ai thông minh hơn tất cả chúng ta, cám ơn anh em đã ủng hộ.

Vietnam Pham – Click Digital

Leave a Reply

Your email address will not be published. Required fields are marked *

thử nghiệm footer