免責(zé)聲明
本指南無(wú)法保證任何內(nèi)容,并不是從「加密或網(wǎng)絡(luò)安全專家」的角度編寫(xiě)的,而是基于多個(gè)來(lái)源和個(gè)人經(jīng)驗(yàn)的不斷學(xué)習(xí)成果。
例如,我自己在剛進(jìn)入這個(gè)領(lǐng)域時(shí)就曾因害怕錯(cuò)過(guò)(FOMO)和貪婪而受騙(假直播詐騙和假 MEV 機(jī)器人詐騙),因此我花時(shí)間認(rèn)真學(xué)習(xí)、設(shè)置和理解安全性。
不要成為那個(gè)因?yàn)槭ヒ磺谢虼罅抠Y產(chǎn)而被迫學(xué)習(xí)安全的人。
黑客攻擊還是用戶錯(cuò)誤?
所有類型的錢(qián)包、代幣或 NFT 的「黑客攻擊」或妥協(xié)大致可分為兩類:
- 濫用先前授予的代幣批準(zhǔn)。
- 私鑰或助記詞泄露(通常發(fā)生在熱錢(qián)包上)。
代幣批準(zhǔn)
代幣批準(zhǔn)實(shí)際上是允許智能合約訪問(wèn)并移動(dòng)您錢(qián)包中特定類型或數(shù)量的代幣的權(quán)限。
例如:
- 給予 OpenSea 權(quán)限以移動(dòng)您的 NFT,以便您可以出售它。
- 給予 Uniswap 權(quán)限以使用您的代幣進(jìn)行交換。
作為背景信息,基本上以太坊網(wǎng)絡(luò)上的一切,除了 ETH,都是 ERC-20 代幣。
ERC-20 代幣的一個(gè)特性是能夠授予其他智能合約批準(zhǔn)權(quán)限。
如果您想進(jìn)行核心 DeFi 交互(如交換或橋接代幣),這些批準(zhǔn)在某個(gè)時(shí)候是必需的。
NFT 分別是 ERC-721 和 ERC-1155 代幣;它們的批準(zhǔn)機(jī)制與 ERC-20 類似,但適用于 NFT 市場(chǎng)。
MetaMask (MM) 的初始代幣批準(zhǔn)提示提供了幾條信息,其中最相關(guān)的是:
- 您正在授予批準(zhǔn)的代幣
- 您正在與之互動(dòng)的網(wǎng)站
- 您正在與之互動(dòng)的智能合約
- 編輯代幣權(quán)限數(shù)量的能力


在完整詳情下拉菜單中,我們看到一個(gè)額外的信息:批準(zhǔn)功能。
所有 ERC-20 代幣必須具有 ERC-20 標(biāo)準(zhǔn)所概述的某些特性和屬性。
其中之一是智能合約可以根據(jù)批準(zhǔn)的數(shù)量移動(dòng)代幣的能力。
這些批準(zhǔn)的危險(xiǎn)在于,如果您將代幣權(quán)限授予惡意智能合約,您的資產(chǎn)可能會(huì)被盜或耗盡。


無(wú)限制與自定義限制批準(zhǔn)(ERC-20 代幣)
許多 DeFi 應(yīng)用默認(rèn)會(huì)提示您對(duì) ERC-20 代幣進(jìn)行無(wú)限制批準(zhǔn)。
這樣做是為了改善用戶體驗(yàn),因?yàn)樗奖悖恍枰磥?lái)可能的額外批準(zhǔn),從而節(jié)省時(shí)間和 gas 費(fèi)用。


為什么這很重要?
允許對(duì)無(wú)限數(shù)量的代幣進(jìn)行批準(zhǔn)可能會(huì)讓您的資金面臨風(fēng)險(xiǎn)。
手動(dòng)將代幣批準(zhǔn)設(shè)置為特定數(shù)量,可以限制該 dApp 在未簽署新的更大額度批準(zhǔn)之前,能夠移動(dòng)的代幣最大數(shù)量。
這樣可以降低您在智能合約被利用時(shí)的風(fēng)險(xiǎn)。如果您對(duì)某個(gè) dApp 授予了無(wú)限制的批準(zhǔn),而該 dApp 出現(xiàn)漏洞,您可能會(huì)失去所有已批準(zhǔn)的代幣,這些代幣來(lái)自持有這些資產(chǎn)并授予該批準(zhǔn)的錢(qián)包。
例如,Multichain WETH(WETH 是 ETH 的 ERC-20 代幣包裝)就曾遭遇過(guò)這樣的漏洞。
這個(gè)常用的橋接因?yàn)E用以前的無(wú)限制代幣權(quán)限而被攻擊,導(dǎo)致用戶資金被盜。


下面是一個(gè)示例(使用 Zerion 錢(qián)包),展示如何將默認(rèn)的無(wú)限制批準(zhǔn)更改為手動(dòng)批準(zhǔn)。
NFT?批準(zhǔn)
「setApprovalForAll」用于 NFT
這是一個(gè)常用但潛在危險(xiǎn)的批準(zhǔn),通常在您想出售 NFT 時(shí)授予值得信賴的 NFT 市場(chǎng)。
這使得市場(chǎng)的智能合約能夠轉(zhuǎn)移您的 NFT。因此,當(dāng)您將 NFT 出售給買家時(shí),市場(chǎng)的智能合約可以自動(dòng)將 NFT 移動(dòng)到買家那里。
此批準(zhǔn)授予對(duì)特定集合或合約地址的所有 NFT 代幣的訪問(wèn)權(quán)限。
這也可能被惡意網(wǎng)站或合約用來(lái)竊取您的 NFT。






惡意行為者濫用「setApprovalForAll」的示例
經(jīng)典的「錢(qián)包賬戶縮水」在 FOMO 免費(fèi)鑄造的情況下是這樣的:
- 用戶訪問(wèn)一個(gè)他們認(rèn)為是合法的惡意網(wǎng)站。
- 當(dāng)他們將錢(qián)包連接到網(wǎng)站時(shí),網(wǎng)站只能查看錢(qián)包的內(nèi)容。
- 然而,惡意網(wǎng)站會(huì)掃描錢(qián)包中最高價(jià)值的 NFT,并提示用戶從 MetaMask (MM) 對(duì)該 NFT 的合約地址進(jìn)行「設(shè)置所有批準(zhǔn)」。
- 用戶以為自己在鑄造 NFT,實(shí)際上卻是在授予惡意合約移動(dòng)這些代幣的權(quán)限。
- 隨后,騙子盜取代幣,并在物品被標(biāo)記為被盜之前,將其清算到 OpenSea 或 Blur 的出價(jià)中。
簽名與批準(zhǔn)
批準(zhǔn)需要支付 gas 費(fèi),因?yàn)樗鼈兩婕敖灰滋幚怼?/p>
簽名則無(wú)需 gas ,通常用于登錄 dApp,以證明您對(duì)該錢(qián)包的控制權(quán)。
簽名通常是低風(fēng)險(xiǎn)的操作,但仍可能被用來(lái)利用先前授予的對(duì)像 OpenSea 這樣的可信網(wǎng)站的批準(zhǔn)。
對(duì)于 ERC-20 代幣,您還可以通過(guò)無(wú) gas 的簽名修改您的批準(zhǔn),因?yàn)樽罱谝蕴簧弦肓嗽试S功能。
如果您使用像 1inch 這樣的去中心化交易所(DEX),可以看到這一點(diǎn)。
代幣批準(zhǔn)要點(diǎn)
在給予任何批準(zhǔn)時(shí)要謹(jǐn)慎,確保您知道自己在批準(zhǔn)哪些代幣以及對(duì)哪個(gè)智能合約(可利用 etherscan)。
限制您的批準(zhǔn)風(fēng)險(xiǎn):
- 使用多個(gè)錢(qián)包(批準(zhǔn)是特定于錢(qián)包的)——不要對(duì)您的保險(xiǎn)庫(kù)或高價(jià)值錢(qián)包簽署批準(zhǔn)。
- 理想情況下,減少或完全避免對(duì) ERC-20 代幣授予無(wú)限制批準(zhǔn)。
- 定期通過(guò) etherscan 或 revoke.cash 檢查和撤銷批準(zhǔn)。


硬件 / 冷錢(qián)包
熱錢(qián)包通過(guò)您的計(jì)算機(jī)或手機(jī)連接到互聯(lián)網(wǎng),密鑰和錢(qián)包憑證在線或本地存儲(chǔ)在您的瀏覽器中。
冷錢(qián)包是硬件設(shè)備,密鑰在完全離線的狀態(tài)下生成和存儲(chǔ),并且物理上靠近您。
考慮到一個(gè) Ledger 的價(jià)格大約為 $120,如果您有超過(guò) $1000 的加密資產(chǎn),您可能應(yīng)該購(gòu)買并設(shè)置一個(gè) Ledger。您可以將 Ledger 錢(qián)包連接到您的 MetaMask (MM),以便在保持一定安全性的同時(shí)享有與其他熱錢(qián)包相同的功能。
Ledger 和 Trezor 是最受歡迎的選擇。我喜歡 Ledger,因?yàn)樗c瀏覽器錢(qián)包(類似于 Rabby 和 MM)的兼容性最好。


購(gòu)買 Ledger 時(shí)的最佳實(shí)踐
始終從官方制造商網(wǎng)站購(gòu)買,切勿在 Ebay 或 Amazon 上購(gòu)買——可能會(huì)被篡改或預(yù)裝惡意軟件。
確保您收到物品時(shí)包裝是密封的。
第一次設(shè)置 Ledger 時(shí),它會(huì)生成一個(gè)助記詞。
只能將助記詞寫(xiě)在物理紙上,或者在未來(lái)將其寫(xiě)在鋼板上,以確保您的助記詞短語(yǔ)防火防水。
絕不要拍攝或在任何鍵盤(pán)(包括手機(jī))上輸入助記詞——這會(huì)將助記詞數(shù)字化,您的冷錢(qián)包將變成不安全的熱錢(qián)包。
加密資產(chǎn)并不是存儲(chǔ)在硬件錢(qián)包上,而是「在」由助記詞短語(yǔ)生成的錢(qián)包中。
助記詞短語(yǔ)(12-24 個(gè)單詞)是所有的一切,必須不惜一切代價(jià)保護(hù)和安全。
它提供對(duì)所有在該助記詞短語(yǔ)下生成的錢(qián)包的完全控制和訪問(wèn)權(quán)限。
助記詞不是特定于設(shè)備的,您可以將其「導(dǎo)入」到另一個(gè)硬件錢(qián)包中作為備份(如果需要)。
如果助記詞丟失或損壞,并且原始硬件錢(qián)包也丟失、損壞或被鎖定,您將永久失去對(duì)所有資產(chǎn)的訪問(wèn)權(quán)限。
有多種助記詞存儲(chǔ)方法,例如,將其分成多個(gè)部分,增加部分之間的物理距離,存放在不明顯的地方(例如,冰箱底部的湯罐,您財(cái)產(chǎn)地下的某個(gè)地方等)。
至少您應(yīng)該有 2-3 份副本,其中一份應(yīng)為鋼制,以防水和火災(zāi)。
「私鑰」類似于助記詞短語(yǔ),但僅針對(duì)一個(gè)特定錢(qián)包。它通常用于將熱錢(qián)包導(dǎo)入新的 MetaMask (MM) 賬戶或在自動(dòng)化工具(如交易機(jī)器人)中使用。
第 25 個(gè)單詞 – Ledger
除了原始的 24 個(gè)單詞助記詞,Ledger 還提供一個(gè)可選的額外安全功能。
密碼短語(yǔ)是一項(xiàng)高級(jí)功能,可以將您選擇的最多 100 個(gè)字符的第 25 個(gè)單詞添加到您的恢復(fù)短語(yǔ)中。
使用密碼短語(yǔ)會(huì)生成一組完全不同的地址,這些地址無(wú)法僅通過(guò) 24 個(gè)單詞的恢復(fù)短語(yǔ)訪問(wèn)。
除了增加安全層,密碼短語(yǔ)在您受到威脅時(shí)還能提供合理的否認(rèn)。
如果使用密碼短語(yǔ),務(wù)必安全存儲(chǔ)或準(zhǔn)確記住它,逐個(gè)字符并區(qū)分大小寫(xiě)。
這是針對(duì)「$5 扳手攻擊」這種身體威脅情況的唯一和最終防御措施。
為什么要經(jīng)歷這么多麻煩來(lái)設(shè)置硬件錢(qián)包?
熱錢(qián)包將私鑰存儲(chǔ)在連接到互聯(lián)網(wǎng)的位置。
通過(guò)互聯(lián)網(wǎng)被欺騙、誤導(dǎo)和操縱以泄露這些憑證是極其簡(jiǎn)單的。
擁有冷錢(qián)包意味著,騙子需要物理上找到并獲取您的 Ledger 或助記詞才能訪問(wèn)這些錢(qián)包及其內(nèi)部資產(chǎn)。
助記詞一旦被泄露,所有熱錢(qián)包及其中的資產(chǎn)都將面臨風(fēng)險(xiǎn),即使那些沒(méi)有與惡意網(wǎng)站或合約互動(dòng)的資產(chǎn)也不例外。
過(guò)去人們被「黑客攻擊」的常見(jiàn)方式
過(guò)去人們通過(guò)熱錢(qián)包遭遇「黑客攻擊」(助記詞短語(yǔ)泄露)的常見(jiàn)方式包括:
- 被欺騙下載惡意軟件,例如通過(guò)工作機(jī)會(huì) PDF、測(cè)試版游戲、通過(guò) Google 表格運(yùn)行宏,或模仿合法網(wǎng)站和服務(wù)。
- 與惡意合約互動(dòng):在模仿網(wǎng)站進(jìn)行 FOMO 鑄造,或與未知空投或接收的 NFT 合約互動(dòng)。
- 將密鑰和助記詞插入或發(fā)送給「客戶支持」或相關(guān)程序 / 表單。