
Web3 的一大特點是讓用戶完全掌控隱私以及他們如何與其平臺互動。瞭解如何在 MetaMask 中管理批准和權限。
即使您與以太坊等區塊鏈交互的經驗僅限於在錢包之間發送簡單交易,您也已經批准、授權或簽署了您的交易。這只是意味着您確認將其提交給區塊鏈。
同樣的流程也適用於與 Web3 中的 dapp 交互:有很多需要同意、批准和允許的內容。但 MetaMask 批准到底是什麼呢?
爲了解決這個問題,我們首先需要介紹密碼學的一些核心方面。
密鑰和密碼學:什麼是批准?
您的所有加密活動都基於公鑰加密。本質上,每個錢包在創建時都會生成一個匹配的公鑰和私鑰。想象一下,一扇門需要您打開門閂並轉動門閂才能進入,每扇門都需要不同的鑰匙。擁有一把鑰匙並不能讓您有任何事可做——您需要一對鑰匙。
雖然過於簡單,但我們可以接受這個假設之門的挑戰,並將類似的邏輯應用於您的加密錢包。您的私鑰和公鑰都是進行交易所必需的:私鑰用於證明您發起了交易,公鑰用於接收者驗證來源。它的工作原理如下:
您決定向聯繫人發送令牌。
因爲您知道收款人的錢包地址,所以您持有他們的公鑰——前者只是後者的哈希(加密)版本。公鑰用於加密交易。
接收者,即私鑰的持有者,接收交易。由於他們的密鑰屬於同一方,因此只有相應的私鑰(只有他們持有)才能解密通過他們的公鑰發送的交易。
到目前爲止一切順利:我們已經確定了私鑰和公鑰如何相互作用以支持區塊鏈交易。然而,爲了將這些知識應用於批准/簽名,我們需要互換密鑰的角色:發送者使用他們的私鑰加密消息。由於其他人可以輕鬆找到發送者的公鑰(他們的錢包地址),因此密鑰可以結合起來解密消息,驗證發送者的身份。只有匹配的密鑰對才能顯示消息的內容,這意味着沒有人可以質疑消息的來源。
在每筆交易上印上一種簽名可以保證不可篡改,除了你(你的私鑰持有者)之外,沒有人能夠冒充你
Dapp 權限
您將遇到的兩種主要批准類型中的第一個是首次將您的錢包連接到 dapp——無論是 DeFi、Etherscan 等服務還是 NFT 市場。
這涉及授予 dapp 檢索您的錢包地址的權限,並且是與平臺交互的先決條件。這也解釋了爲什麼你會看到它被稱爲“權限”或“權限”;準確描述你正在做的事情的名詞。在某些情況下,dapp 會提示您自動授予權限;其他情況下則要求您單擊標有“連接”或類似的按鈕。
在我們的例子中,授予您的許可將如下所示:

代幣批准
無論您是經驗豐富的加密貨幣原生用戶還是完全的初學者,要與任何智能合約(運行 dapps 的類型(包括 DeFi、區塊鏈遊戲、NFT 購買))進行交互,您都需要批准其對您的代幣的訪問權限。
這個過程被不同地稱爲令牌批准,這並不奇怪。你在這裏做的事情是:
允許智能合約訪問您的代幣餘額。將其視爲“智能合約階段”。此時,MetaMask 會清楚地表明您放棄了多少訪問權限:一些 dapp 可能會指定有限數量的代幣,而另一些則要求無限制訪問權限。
確認您想要完成相關交易:即“區塊鏈階段”,您允許智能合約代表您將交易提交給網絡。
假設你想在 Uniswap 上進行代幣交換,Uniswap 是交易量最大的去中心化交易所 (DEX)。當你首次發起代幣對交換時,系統會要求你批准你交易的 ERC-20 代幣對的智能合約(但 ETH 本身不需要批准)。雖然這隻會在你第一次交易該代幣對時發生,但下一步(即上面的第二步)每次都需要,這意味着 Uniswap 的協議將根據請求執行你的交易。
該過程類似於以下內容:
首先,平臺會提示您批准代幣。單擊提示,MetaMask 就會開始運行。
MetaMask 將向您顯示代幣的合約地址,確認它正在請求訪問和轉移資金的能力。爲了確保您允許正確的合約,值得將代幣地址與 dapp 網站上列出的地址進行交叉引用——通常可以在他們的幫助中心、知識庫或文檔中找到。您甚至可以選擇指定您希望此權限的程度——爲此,請點擊“編輯權限”。
此選項可讓您精確查看您允許的訪問權限。在這種情況下,Uniswap 希望訪問幾乎無限數量的 stETH(1.1659),但如果需要,我們可以使用“自定義支出限額”字段對此權限設置限制。
通過此功能,MetaMask 可讓您控制您的代幣批准——您無需盲目地允許 dapp 訪問超出您想要的內容,也不必爲了嘗試新平臺而承擔不必要的風險。
交易請求本身就是您的密鑰對的來源:您使用私鑰簽署交易。想象一下用筆在虛線上簽名;雖然使用公鑰加密,身份欺詐的風險可以忽略不計。在我們的例子中,同意意味着您已授權 Uniswap 智能合約代表您將該代幣轉入和轉出您的錢包。每次您嘗試啓動交換時,智能合約都能夠檢查您的“消息” - 即執行交換的指令 - 並驗證您作爲唯一有權訪問您私鑰的人是發起者。
我如何管理批准和權限?
Web3 的一大特點是讓用戶完全控制隱私以及他們如何與其平臺交互。MetaMask 的非託管設計反映了這一點。然而,它的原則還延伸到其他功能;查看和管理 dapp 和智能合約批准的能力就是其中之一。
在 MetaMask 中查看已連接的站點
MetaMask 包含一個本機功能,用於檢查您的錢包連接到了哪些網站。它被稱爲“連接的網站”(您可能已經看出來,我們不喜歡過於複雜)。刪除它們的方法同樣簡單明瞭。
查看令牌批准
Etherscan 最近實施了一個代幣批准檢查器,可讓您查看和撤銷代幣批准。
一旦您連接 MetaMask 並授予 Etherscan 查看您的錢包的權限,就會顯示代幣批准列表 - 熟悉嗎?然後您可以自由檢查它們的持續相關性並相應地撤銷。有幫助的是,您還可以查看所涉及的特定資產、您批准的人(例如哪個 dapp,按名稱引用)以及您批准訪問的代幣數量。

還有幾種替代方案,包括 approved.zone、Revoke 和 Token Allowance Checker (TAC)。
不要直截了當
管理像 MetaMask 這樣的非託管錢包所帶來的個人代理是一把雙刃劍。就像保護你的祕密恢復短語的安全是你的個人責任並且需要警惕詐騙者一樣,你是唯一可以管理 dapp 權限和智能合約批准的人。再加上創建新的 ERC-20 代幣是多麼容易——在撰寫本文時大約有 485,000 個代幣——風險就變得非常明顯。雖然大多數都是善意的,但任何一個都可能是由壞人創造的。
代幣批准是詐騙的一種相對常見的攻擊媒介——只需查看 rekt.news 即可瞭解其規模,並查看這篇 Finematics 文章以瞭解其方法。如前所述,dapps 必須指定他們想要訪問多少代幣。例如,MetaMask 將確保在您確認之前在批准屏幕上顯示此信息,讓您更清楚地瞭解您註冊的內容。
來自 dapp 的訪問請求可能有所不同,從特定的有限數量到完全不受限制,智能合約可以從您的錢包中提取任意數量的代幣。從根本上講,無限制訪問本身並不是問題或危險信號——許多知名平臺(如主要的 DEX)這樣做是爲了讓您免於頻繁重新批准的麻煩(如果您經常使用 dapp)。問題在於,dapp 請求無限制訪問您的代幣,其明確意圖是竊取。
在批准智能合約訪問任何數量的代幣之前,你應該先在腦海中核對一下風險。你經常會在網上看到首字母縮略詞“DYOR”:在允許訪問之前先做自己的研究絕對是一個好習慣。例如:
該項目的知名度如何?
它存在多久了?
它在 Discord、Telegram 或 Twitter 上有一個活躍的社區頻道嗎?
dapp 的開發者/所有者是否透明且可公開聯繫,例如在 Twitter 或 Discord 上?
最近有安全漏洞嗎?值得在這裏搜索一下。
他們是否經過第三方智能合約審計?
檢查區塊瀏覽器上的合約地址。一些瀏覽器(例如 Etherscan)具有用戶驅動的報告機制,其中會標記欺詐地址(合約或錢包)。即使沒有標記,也要檢查是否存在可疑活動,例如短時間內大量現金流入或流出。
總結一下:
代幣批准不僅僅是表示同意的象徵性姿態,更是與 Web3 交互的一個平凡而重要的方面。以下是一些關鍵點:
與 dapps 交互時,使用公鑰加密來驗證您的權限。
Dapp 權限涉及允許 dapps 查看您的錢包餘額。
代幣批准涉及允許 dapp 的智能合約訪問和移動錢包中的特定代幣。
在批准其智能合約之前,請務必研究 dapp 的憑證並確保其值得信賴。