隨著Web3世界的蓬勃發(fā)展,加密錢包已成為我們進(jìn)入這個數(shù)字新世界的“鑰匙”,而在與各種DApp(去中心化應(yīng)用)交互時,“掃碼授權(quán)”無疑是最高頻也最基礎(chǔ)的操作之一,這短短幾秒鐘的“掃一掃”,背后究竟隱藏著怎樣的技術(shù)原理和安全機(jī)制呢?本文將為你詳細(xì)拆解Web3錢包掃碼授權(quán)的全過程,讓你明明白白地授權(quán),安安心心地交互。
什么是Web3錢包掃碼授權(quán)
Web3錢包掃碼授權(quán)是指用戶通過其加密錢包(如MetaMask、Trust Wallet、imToken等)的移動端App或硬件錢包的配套App,掃描DApp頁面顯示的二維碼,從而完成對DApp特定操作請求的快速身份驗證和權(quán)限授予的過程。
它類似于Web2世界的“掃碼登錄”,但核心目的不同:Web2掃碼登錄主要用于身份識別,而Web3掃碼授權(quán)的核心是數(shù)字資產(chǎn)的操作權(quán)限管理和交易簽名。
掃碼授權(quán)的底層原理:連接與簽名
要理解掃碼授權(quán),首先需要了解Web3交互的兩個核心概念:連接(Connect)和授權(quán)/簽名(Authorize/Sign)。
-
連接(Connect):
- 當(dāng)你在DApp頁面上點擊“連接錢包”時,DApp會向你的錢包發(fā)送一個連接請求。
- 這個請求通常包含了DApp的域名(origin)、圖標(biāo)(icon)、鏈ID(chainId) 等基本信息。
- 你在錢包App中確認(rèn)連接后,錢包會生成一個加密的session(會話),并返回一個連接成功的信息給DApp,DApp知道了你的錢包地址,但還無法進(jìn)行任何資產(chǎn)操作。
-
授權(quán)/請求(Request):
- 連接成功后,DApp如果想執(zhí)行某些操作(如轉(zhuǎn)賬、調(diào)用某個合約函數(shù)、獲取你的賬戶信息等),會向你的錢包發(fā)送一個具體的請求。
- 這個請求會包含操作的詳細(xì)信息,
eth_sendTransaction:發(fā)起一筆轉(zhuǎn)賬交易,包含接收方地址、金額、gas費等。eth_sign:對一段消息進(jìn)行簽名,用于身份驗證。wallet_switchEthereumChain:請求切換到其他區(qū)塊鏈網(wǎng)絡(luò)。- 自定義的合約方法調(diào)用。
-
掃碼:移動端與PC端/網(wǎng)頁端的橋梁:
- 很多時候,我們可能是在電腦瀏覽器上訪問DApp,而主要的私鑰和簽名操作在更安全的移動端錢包App中進(jìn)行。
- DApp(在PC端)會生成一個包含上述請求信息的二維碼(QR Code),這個二維碼本質(zhì)上是一個編碼后的URL或數(shù)據(jù)對象,通常遵循特定的協(xié)議(如

wc:或walletconnect:,WalletConnect協(xié)議是主流實現(xiàn)方式之一)。 - 用戶打開手機(jī)錢包App,使用內(nèi)置的掃碼功能掃描該二維碼。
- 錢包App解析二維碼內(nèi)容,獲取請求的詳細(xì)信息,并在移動端界面展示給用戶。
-
簽名(Sign)與廣播(Broadcast):
- 用戶在錢包App中仔細(xì)核對請求的詳細(xì)信息(如轉(zhuǎn)賬金額、接收地址、合約地址等),確認(rèn)無誤后,點擊“確認(rèn)”或“簽名”。
- 錢包App使用用戶存儲在設(shè)備中的私鑰對這筆交易或消息進(jìn)行數(shù)字簽名,簽名是私鑰對交易數(shù)據(jù)哈希值的加密操作,確保了交易的真實性和不可否認(rèn)性。
- 簽名完成后,錢包App會將簽名后的交易數(shù)據(jù)通過安全的通道(如WalletConnect協(xié)議的Relay服務(wù)器)返回給DApp。
- DApp再將這筆已簽名的交易廣播到區(qū)塊鏈網(wǎng)絡(luò)上,等待礦工打包確認(rèn)。
掃碼授權(quán)的詳細(xì)步驟(以WalletConnect為例)
以目前廣泛使用的WalletConnect協(xié)議為例,掃碼授權(quán)的典型步驟如下:
-
DApp發(fā)起連接請求:
- 用戶在PC瀏覽器上打開支持Web3的DApp(如某個NFT市場或DeFi協(xié)議)。
- 點擊“連接錢包”按鈕。
-
DApp生成二維碼:
DApp通過WalletConnect SDK,創(chuàng)建一個連接會話,并生成一個包含會話URL(通常是一個包含連接參數(shù)的二維碼編碼字符串)的二維碼,顯示在網(wǎng)頁上。
-
錢包App掃描二維碼:
- 用戶打開手機(jī)上的Web3錢包App(如MetaMask Mobile, Trust Wallet等)。
- 在App內(nèi)找到“連接DApp”或“掃碼”功能,對準(zhǔn)PC屏幕上的二維碼進(jìn)行掃描。
-
錢包App解析并顯示請求:
- 錢包App成功掃描二維碼后,解析出WalletConnect的會話URL和連接信息。
- 錢包App會彈出一個提示,顯示請求連接的DApp的名稱、域名、圖標(biāo)等信息,并詢問用戶是否允許連接。
-
用戶確認(rèn)連接:
- 用戶核對DApp信息,確認(rèn)無誤后,點擊“連接”或“允許”。
- PC端的DApp會顯示“已連接”,并顯示用戶的錢包地址。
-
DApp發(fā)起操作請求:
- 用戶在DApp上進(jìn)行操作,例如點擊“購買NFT”或“質(zhì)押”按鈕。
- DApp將具體的交易參數(shù)(如接收地址、金額、gas限制、數(shù)據(jù)等)通過已建立的WalletConnect會話發(fā)送給手機(jī)錢包App。
-
錢包App顯示交易詳情并簽名:
- 手機(jī)錢包App接收到交易請求后,會清晰地展示交易的詳細(xì)信息,包括但不限于:
- 交易類型(轉(zhuǎn)賬/合約調(diào)用)
- 接收地址/合約地址
- 轉(zhuǎn)賬金額(ETH或代幣數(shù)量及符號)
- 需要支付的Gas費估算
- 代幣授權(quán)信息(如果是授權(quán)代幣)
- 用戶務(wù)必仔細(xì)核對這些信息,特別是地址和金額,防止被騙。
- 確認(rèn)無誤后,點擊“確認(rèn)交易”或“簽名”。
- 手機(jī)錢包App接收到交易請求后,會清晰地展示交易的詳細(xì)信息,包括但不限于:
-
簽名完成與交易廣播:
- 錢包App使用用戶私鑰對交易進(jìn)行簽名。
- 簽名后的交易數(shù)據(jù)通過WalletConnect會話返回給DApp。
- DApp將簽名交易廣播到區(qū)塊鏈網(wǎng)絡(luò),用戶可以在錢包App的“活動”或“交易記錄”中查看交易狀態(tài)。
安全注意事項:如何防范授權(quán)風(fēng)險
掃碼授權(quán)雖然便捷,但也存在一定的安全風(fēng)險,用戶務(wù)必提高警惕,注意以下幾點:
- 核對DApp信息:掃描二維碼后,務(wù)必仔細(xì)核對錢包App中顯示的DApp名稱、域名是否與預(yù)期一致,警惕仿冒或釣魚網(wǎng)站。
- 仔細(xì)閱讀授權(quán)內(nèi)容:不要盲目點擊“確認(rèn)”,在簽名前,務(wù)必仔細(xì)查看交易詳情,特別是轉(zhuǎn)賬金額、接收地址、授權(quán)的代幣種類和數(shù)量等,對于不明來源的DApp,不要輕易進(jìn)行大額轉(zhuǎn)賬或授權(quán)。
- 不掃描不明二維碼:不要隨意掃描來路不明的二維碼,尤其是在非官方渠道獲取的,確保二維碼來自你信任的DApp。
- 使用正規(guī)錢包:盡量選擇知名度高、安全性好的主流Web3錢包,并確保錢包軟件是官方渠道下載,避免使用破解版或惡意軟件。
- 定期檢查授權(quán)記錄:部分錢包(如MetaMask)提供“已連接的站點”管理功能,用戶可以定期查看并撤銷不再信任的DApp連接和授權(quán)。
- 保護(hù)好私鑰和助記詞:這是Web3世界的終極安全防線,絕不向他人泄露,不使用公共網(wǎng)絡(luò)進(jìn)行敏感操作。
Web3錢包掃碼授權(quán)是連接用戶與DApp、實現(xiàn)安全交互的重要橋梁,它通過加密技術(shù)、二維碼媒介和用戶確認(rèn)機(jī)制,在便捷性和安全性之間取得了平衡,理解其背后的原理和流程,特別是連接、請求、簽名、廣播這幾個關(guān)鍵環(huán)節(jié),能幫助用戶更好地掌控自己的數(shù)字資產(chǎn),享受Web3世界帶來的便利與樂趣。
每一次掃碼授權(quán)都是一次對數(shù)字資產(chǎn)的操作許可,保持警惕、仔細(xì)核對,才能在Web3的浪潮中安全航行。