*Một tài liệu công bố theo MiCA cho QNT, đang sống trên web hôm nay, viết nguyên văn: "The maximum supply of QNT is capped at 14,881,364 tokens, and no additional tokens can be created beyond this limit." Contract crowdsale của QNT — verified công khai từ 2018, chưa bao giờ bị thay — còn hai đường phát hành, và phần chưa dùng của chúng cộng lại là 27.502.628,462 QNT — bằng 184,81% chính con số đó.*

Câu hỏi tự nhiên là: đường ấy còn chạy được không, hay chỉ là mã chết còn sót trong một contract cũ?

BlockPinned gọi thử nó bằng eth_call tại Ethereum block 25.983.552 — 21h46 ngày 15/09/2026 giờ VN (14:46:47Z). Lời gọi thực thi được. Cùng lời gọi đó phát từ một address khác thì revert. Nên thứ đang đứng giữa 27,5 triệu QNT và sổ cung không phải một trạng thái đã khoá. Nó là một chữ ký.

14.881.364 không phải một con số trong code

Contract token QNT khởi tạo với hằng số 45.467.000. Đó là con số duy nhất ở tầng "tổng cung" mà code có, và nó không còn được dùng làm gì: totalSupply() trả về nó như một hằng số chết, không cộng trừ theo mint hay burn.

Cung thật dựng từ event: 608 log Transfer từ địa chỉ 0 trong năm 2018, tổng 24.431.259,0318 QNT. Trong đó 9.550.880,5019 QNT hiện nằm ở chính địa chỉ token contract — nơi không có đường nào đưa tiền ra.

Đại lượngGiá trịNguồn
hằng số trong contract45.467.000 QNTtotalSupply()
cung phát hành dựng từ 608 log mint24.431.259,0318 QNTevent 2018
nằm ở chính token contract9.550.880,5019 QNTbalanceOf(token)
hiệu của hai dòng trên14.880.378,53 QNTphép trừ
"max supply" thị trường và tài liệu MiCA dùng14.881.364 QNTaggregator + whitepaper

Hai dòng cuối lệch 0,0066%. Con số mà mọi mô hình cung của QNT đang dùng làm mẫu số là kết quả một phép trừ trên trạng thái năm 2018 — nó không phải một giới hạn do code cưỡng chế.

Hai đường phát hành vẫn còn dư hạn mức

Bên trong Crowdsale có hai lối đi tới token.mint(), và cả hai đều nằm sau onlyOwner. Hạn mức trong bảng dưới là lượng tối đa mà mỗi đường còn được phép phát hành — con số này do chính code kiểm, mỗi lần gọi một lần:

ĐườngHạn mức còn lạiĐiều kiện
recordPresalePurchasetransferTokens6.466.887,494 QNTchỉ cần owner — không cần ETH, không cần bật cờ sale nào
enableSalebuyTokenstransferTokens21.035.740,968 QNTcần bật inSale, mà enableSale() cũng là onlyOwner; ETH nạp vào được _forwardFunds trả lại chính owner trong cùng giao dịch
Tổng27.502.628,462 QNT= 184,81% của 14.881.364

Phần 6.466.887,494 QNT nằm trong cả hai hạn mức: lúc endPresale() chạy năm 2018, phần presale chưa bán được cộng sang hạn mức bán thường, nhưng hạn mức presale thì không bị trừ đi. Hai hạn mức được kiểm độc lập trong code, nên tổng ở trên là giới hạn kỹ thuật, không phải phép cộng trùng.

Chi tiết đáng chú ý: "tắt sale ngày 25/06/2018" không phải renounce. inSale = false là một biến, và hàm bật nó lại vẫn còn đó.

Không chỉ trên giấy: gọi thử tại block hôm nay

Đọc source rồi kết luận "đường này chạy được" là một lập luận về code. Câu kế tiếp rẻ hơn nhiều người tưởng: gọi thử.

eth_call cho phép đặt trường from tuỳ ý. Nó thực thi đúng bytecode tại đúng block, không cần khoá riêng, không broadcast, không đổi một byte state nào. Tại block 25.983.552, phát từ address đang giữ crowdsale.owner():

Lời gọiKết quả
recordPresalePurchase(0x…d00d, 1 QNT)thực thi được
recordPresalePurchase(0x…d00d, 6.000.000 QNT)thực thi được
transferTokens()thực thi được
enableSale()thực thi được
recordPresalePurchase(0x…d00d, 9.000.000 QNT) — vượt hạn mứcrevert
cùng lời gọi đầu tiên, from = một address ngẫu nhiênrevert

Dòng cuối là trụ của cả phép đo, không phải các dòng "thực thi được" ở trên. Nếu một address lạ cũng gọi được thì onlyOwner không hề được kiểm, và mọi kết quả dương phía trên vô nghĩa. Dòng áp chót cũng phải nổ được: 6 triệu QNT đi qua còn 9 triệu bị chặn, tức hạn mức presale đang chặn đúng chỗ phép tính đã chỉ ra.

Cái chặn duy nhất là một chữ ký, và nó đã im 2.656 ngày

crowdsale.owner() trả về một address có eth_getCode dài 0 byte — một khoá thường, không phải multisig, không phải timelock, chưa renounce.

Khoá giữ owner()Đọc tại block 25.983.552
eth_getCode0 byte
nonce817
nonce cuối 2018 (block 6.988.615)777
giao dịch gửi cuối cùngblock 7.918.253 · 08/06/2019
giao dịch gửi sau mốc đó0
giao dịch nhận sau mốc đó2 — 16/02/2024 và 11/12/2024
số dư ETH0,3814 ETH

Bốn mươi giao dịch cuối cùng của khoá này nằm trọn trong nửa đầu năm 2019, rồi dừng hẳn. Tính tới block đã ghim, nó không ký gì trong 2.656 ngày, khoảng 7,27 năm.

Khoảng im lặng đó không làm hạn mức phát hành nhỏ đi một wei nào — hạn mức là state của contract, không phải hoạt động của khoá. Cái nó đổi là câu hỏi. Không phải "họ có định mint thêm không", mà "khoá đời 2018 ấy giờ ai cầm". Đó là câu BlockPinned không trả lời được, và cũng không tìm thấy nguồn công khai nào trả lời.

Điều này đổi cách đọc gì

Mọi mô hình cung của QNT — kể cả bảng trong tài liệu MiCA — dùng 14.881.364 làm mẫu số và ngầm giả định con số ấy được code giữ. Phép đo trên nói giả định đó không có trong code.

Nếu dùng hết hạn mức còn lại, cung phát hành thành 51.933.887,49 QNT — vượt cả hằng số 45.467.000 trong chính contract, vì mint() không kiểm hằng số đó. Nói cách khác, ngay cả con số lớn nhất mà contract từng khai cũng không phải một giới hạn.

Điều bài này không nói

Không có dòng nào ở trên là bằng chứng ai đó định mint thêm. Phép đo trả lời đúng một câu: đường đi có mở không, tại block nào. Nó cũng không đo được ai đang giữ khoá. Quãng im lặng bảy năm không phải một bảo đảm, và cũng không phải dấu hiệu sắp có chuyện — nó là một câu chưa có lời đáp.

Tài liệu MiCA nói trên do Bitstamp Europe soạn với vai nhà cung cấp dịch vụ, không phải do Quant tự soạn. Câu trích thuộc về tài liệu đó, không phải một phát ngôn của công ty. BlockPinned cũng không đặt tên cho address giữ owner(): trong hồ sơ này nó là "address giữ owner của crowdsale", không hơn.

Cuối cùng, eth_call kiểm logic contract. Nó không kiểm gas, nonce hay số dư ETH ở mức một giao dịch thật.

Phần kiểm chứng — cách tự kiểm

Ba địa chỉ, tất cả verified công khai: token 0x4a220e6096b25eadb88358cb44068a3248254675 · crowdsale 0x398e41ac3d5972b4bac2320cd130c7a25ca446f7 · khoá giữ owner 0xf5e38bbedc78efea055e0c56035adb320e64c4bc.

Khoá và trạng thái. Tại block 25.983.552: owner() của crowdsale phải trả về đúng address thứ ba ở trên; eth_getCode của nó phải là 0x; eth_getTransactionCount phải là 817. Đọc cùng hàm đó tại block 6.988.615 phải ra 777 — nếu nó cũng trả 817 thì phép đọc đang lấy latest chứ không lấy theo block, và mọi kết luận về im lặng phải bỏ.

Im lặng. Lấy danh sách giao dịch của khoá, lọc from bằng chính nó. Giao dịch gửi cuối cùng phải là 0x6fe94d15fbdb0d877881bc7cc840f7ca8e9e5774fb9c7ac6db65dccc9a656e77 tại block 7.918.253, và số giao dịch gửi phải bằng đúng nonce 817 — hai con số này khớp thì danh sách không sót dòng nào. Một danh sách rỗng và một câu truy vấn hỏng trông giống hệt nhau, nên phải thấy lại đúng giao dịch cuối này rồi mới tin con số 0 ở trên.

Đường mint. eth_call tới crowdsale với from đặt bằng address giữ owner, tại block 25.983.552: recordPresalePurchase(address,uint256) với 1 QNT và với 6.000.000 QNT phải trả về bình thường; với 9.000.000 QNT phải revert; transferTokens()enableSale() phải trả về bình thường. Đổi from thành một address bất kỳ khác thì lời gọi đầu tiên phải revert.

Cung. Tổng 608 log Transferfrom bằng địa chỉ 0 phải ra 24.431.259,0318 QNT; balanceOf của chính địa chỉ token phải ra 9.550.880,5019 QNT.

Điều bác bỏ. Kết luận của bài sai nếu, tại block đã ghim: owner() trả về một contract chứ không phải address 0 byte code, hoặc quyền đã được renounce; hoặc lời gọi recordPresalePurchase từ owner revert; hoặc lời gọi đó từ một address lạ không revert; hoặc nonce của khoá lớn hơn 817, tức nó đã ký thêm sau 08/06/2019. Bất kỳ điều nào trong số đó đúng thì câu tương ứng ở trên phải rút.

Không phải lời khuyên đầu tư.