How to Assess Web3 Project Risks: A Practical User Checklist
In Web3, users often hold their own keys and sign transactions directly. A useful review therefore starts not with “How much can I earn?” but with: What am I signing, which code will gain access to my assets, and who can change the rules?
Tiada senarai semak yang dapat membuktikan bahawa projek itu selamat. Tujuannya adalah untuk mendedahkan perkara yang tidak diketahui, membandingkan dakwaan dengan bukti yang boleh disahkan dan mengehadkan potensi kerugian.
Artikel ini hanya untuk tujuan pendidikan dan bukan nasihat kewangan, pelaburan atau undang-undang. Transaksi Web3 boleh mengakibatkan kehilangan sepenuhnya aset yang dipindahkan.
1. Sahkan sumber
- Gunakan penanda buku yang disimpan atau URL daripada saluran rasmi yang disahkan.
- Semak setiap aksara dalam domain.
- Elakkan menyambungkan dompet melalui iklan, mesej yang tidak diminta atau hasil carian rawak.
- Bandingkan alamat kontrak merentas bahan rasmi projek.
- Jangan dedahkan frasa benih atau kunci peribadi.
Stop signal: a site asks you to “synchronize,” “validate,” or “restore” a wallet by entering secret words.
2. Sahkan rangkaian dan aset
Sebelum memindahkan apa-apa, rekodkan:
- rangkaian;
- alamat kontrak token;
- alamat penerima atau kontrak yang dipanggil;
- jumlah;
- aset untuk yuran;
- tindakan yang dimaksudkan.
A name such as USDT does not uniquely identify a token. Verify the full token contract address. The same 0x… address format can be used on different EVM networks, but assets and state remain network-specific.
Stop signal: the project gives a ticker but does not publish the network and token address.
3. Periksa kod yang digunakan
Dalam penjelajah blockchain:
- cari kontrak menggunakan alamat rasmi;
- semak pengesahan kod sumber;
- tentukan sama ada ia proksi;
- buka pelaksanaan semasa;
- bandingkan semua alamat dengan dokumentasi projek.
On BscScan, Exact Match means published source and constructor parameters were matched to deployed bytecode. This improves transparency but is not a security assessment.
Stop signal: no address is published, source is unverified, and the project still claims “full transparency” without explanation.
4. Fahami kuasa pentadbiran
Cari peranan dan fungsi seperti:
- pemilik, pentadbir, operator dan pihak peningkat taraf;
- jeda dan sambung semula;
- perubahan yuran atau had;
- perubahan alamat terpaut;
- pencetakan token;
- pengeluaran aset;
- peningkatan pelaksanaan;
- penyekatan alamat.
Tanya siapa yang mengawal kunci ini, sama ada multisig digunakan, sama ada perubahan mempunyai timelock dan bagaimana pengguna dimaklumkan. Kawalan berpusat tidak semestinya penipuan, tetapi ia mewujudkan kebergantungan pada pengawal tertentu.
Stop signal: one address holds critical powers while the project claims that nobody can change anything.
5. Baca audit dengan betul
Semak sama ada:
- laporan diterbitkan oleh juruaudit;
- repositori dan hash commit dinyatakan;
- kontrak aktif termasuk dalam skop;
- laporan meliputi pelaksanaan semasa;
- penemuan yang belum diselesaikan masih wujud;
- pembetulan telah diuji semula;
- komponen penting telah dikecualikan.
Audit ialah semakan bebas tambahan. Audit tidak dapat menemukan setiap kelemahan dan tidak secara automatik merangkumi laman web, pengurusan kunci, model perniagaan atau peningkatan pada masa hadapan.
Stop signal: there is an “Audited” badge but no report or reviewed code version.
6. Bandingkan dakwaan dengan tingkah laku on-chain
Periksa beberapa transaksi untuk:
- status;
DaridanTo / Interacted With;- Pergerakan BEP-20;
- panggilan dalaman;
- log;
- yuran;
- perubahan baki dan keadaan kontrak.
Compare the actual path of funds with the published architecture. Do not draw a system-wide conclusion from one demonstration transaction. Kejayaan means the code executed without reverting; it does not mean the operation was safe or beneficial.
Stop signal: observable fund flows differ from the stated process and no clear explanation is provided.
7. Asingkan aset daripada liabiliti
Baki alamat yang kelihatan hanyalah satu fakta. Tanyakan:
- adakah semua alamat berkaitan didedahkan;
- siapa yang mengawal aset;
- bolehkah ia dikeluarkan;
- obligasi yang wujud terhadap pengguna lain;
- cara harga luaran ditentukan;
- sama ada akses bergantung pada jambatan, DEX, oracle atau pihak lawan.
Baki token yang besar tidak membuktikan kecairan. Bilangan unit yang besar mungkin hanya mempunyai nilai yang sedikit untuk direalisasikan.
Stop signal: one address balance is presented as proof of solvency without disclosing obligations or control rights.
8. Terangkan model ekonomi dalam bahasa mudah
Dapatkan jawapan yang jelas bagi:
- sumber sebarang pembayaran;
- siapa yang membayar yuran;
- perkara yang berlaku jika tiada pengguna baharu;
- syarat keluar dan penguncian;
- tempat kerugian boleh berlaku;
- parameter yang boleh diubah oleh pentadbir;
- faktor yang mempengaruhi harga token.
Jika hasil bergantung pada pasaran, peserta baharu, kecairan atau keputusan pasukan, kebergantungan tersebut harus dinyatakan dengan jelas.
Stop signal: a fixed outcome is promised without a verifiable source of funds or loss scenario.
9. Kawal tandatangan dan allowance token
Sebelum mengesahkan, periksa perkara yang dipaparkan oleh dompet:
- rangkaian;
- alamat yang dipanggil;
- fungsi atau tindakan yang boleh dibaca;
- nilai token asli;
- token dan jumlah allowance;
- perubahan aset yang dijangkakan.
An approve call does not immediately transfer a token. It may authorize a spender contract to call transferFrom up to an allowance. An unlimited allowance increases potential loss if the spender is compromised or flawed.
Tolak tandatangan jika data tidak jelas atau alamat berbeza daripada yang anda periksa. Selepas digunakan, semak dan batalkan kebenaran yang tidak lagi diperlukan melalui alat yang dipercayai.
Stop signal: you are pressured to sign unreadable data or told that a signature “does nothing.”
10. Sertakan risiko off-chain
Kod yang disemak dengan teliti sekalipun tidak dapat mencegah setiap:
- pencerobohan laman web atau DNS;
- sambungan pelayar berniat jahat;
- kecurian kunci;
- akaun projek yang terjejas;
- kegagalan bahagian belakang;
- serangan kejuruteraan sosial;
- sekatan undang-undang;
- kegagalan sokongan atau operasi.
Semak dokumentasi, prosedur insiden, saluran pemberitahuan dan sejarah perubahan. Nilai dakwaan undang-undang berdasarkan dokumen sebenar dan bagi bidang kuasa anda sendiri.
11. Hadkan potensi kerugian
Walaupun selepas semakan selesai:
- mulakan dengan jumlah ujian praktikal yang paling kecil;
- gunakan dompet berasingan untuk dApp yang tidak dikenali;
- jangan simpan semua aset dalam dompet yang disambungkan;
- jangan sesekali menandatangani di bawah tekanan masa;
- simpan hash transaksi dan alamat;
- semak allowance token secara berkala;
- tetapkan pendedahan maksimum yang kerugian keseluruhannya masih dapat ditanggung.
Panduan keselamatan rasmi Solidity menyarankan agar jumlah aset yang dipegang dalam kontrak dihadkan: jika terdapat pepijat dalam kod, compiler atau platform, mengehadkan pendedahan boleh mengehadkan kerugian.
Senarai semak sebelum transaksi
Answer yes, no, or unknown:
- Saya telah mengesahkan domain.
- Saya mengetahui rangkaian yang tepat.
- Saya telah memeriksa alamat kontrak token.
- Saya telah memeriksa alamat kontrak yang dipanggil.
- Saya mengetahui status pengesahan kod sumber.
- Saya telah memeriksa proksi dan pelaksanaannya.
- Saya memahami kuasa pentadbir.
- Audit sepadan dengan versi aktif.
- Saya telah memeriksa transaksi sebenar.
- Saya memahami sumber pembayaran dan senario kerugian.
- Saya memahami permintaan tandatangan.
- Allowance dihadkan secara munasabah.
- Saya telah mempertimbangkan risiko bahagian hadapan, kunci dan undang-undang.
- Jumlah ujian tidak boleh menyebabkan kerugian kritikal.
For a critical question, unknown is not a neutral answer—it is an unassessed risk. Pausing for verification is usually cheaper than an irreversible transaction.
Soalan yang harus ditanya oleh pengguna yang berhati-hati
Is a project safe if its code is open and audited?
No. Those are useful signals, but unknown bugs and administrative, operational, economic, and external risks remain.
If assets are visible on-chain, can they definitely be returned?
No. Return depends on code, current state, control rights, and external dependencies.
Does a small successful test prove a larger transaction will work?
No. It tests one path at one moment. Limits, liquidity, state, and implementation may later differ.
What if I do not understand the signature?
Reject it. Identify the function, called address, asset changes, and permissions before trying again.
Sumber dan Bacaan Lanjut
- Solidity Documentation — Pertimbangan Keselamatan
- Ethereum.org — Keselamatan Kontrak Pintar
- Ethereum.org — Pengujian Kontrak Pintar
- BscScan Information Center — Melihat Transaksi
- BscScan Information Center — Jenis Pengesahan Kontrak
- BscScan Information Center — Apakah Alamat?
- OpenZeppelin Docs — Corak Peningkatan Proksi