歡迎回來!今天我們繼續來看在區塊鏈上的操作安全,前天我們有看過詐騙類型,像是釣魚詐騙、Fake Airdrop,但我們都沒有介紹詐騙者是如何拿到被害者的資產交易權,以及是如何轉走被害者的資產,一起來看吧!
在以太坊的ERC-20中,Approve function是十分常見的功能之一,它能讓使用者授權第三方(通常是address)使用、轉移自己的代幣,相當於將銀行帳密交給其他人,也就是說他人有權利操作帳戶中的代幣,相關的程式碼在之前有講解過,因此這裡不會多說,我們主要來看如何轉移,通常在錢包的確認頁面中能看出來,會有個Function:Approve,這就是代表將會執行Approve fuction的操作,將授權帳戶的使用權,而Approve的amount通常都設置為極大值,詐騙者(詐騙合約)可以立即將被害者帳戶中的代幣全部轉走。
setApprovalForAll是一個在以太坊ERC-721和ERC-1155中的function,主要用於NFT。與ERC-20中的Approve操作類似,setApprovalForAll允許用戶授權另一個地址(通常是智能合約)能夠代表自己處理或轉移所有指定的代幣。在這個方法中會修改受害者的授權資訊,之後能透過safeTransferFrom轉走所有的NFT。
因此如果我們在確認頁面中看到Approve或setApprovalForAll操作的話,切記要謹慎行事,因為這些操作都能授權某個地址管理所有的代幣或NFT,相當於將掌控權分給另一個人,若是碰到有心者就麻煩大了,可能導致失去資產,需評估此次交易風險,並且定期檢查授權狀態,若是無需利用授權,可以利用setApprovalForAll(operator, false)來撤銷授權;不過在正常的交易中,也是時常需要用到Approve操作,這樣才能達成去中心化交易所中「一手交錢,一手交貨」的概念,所以不是每個有Approve操作的合約或交易都是詐騙,這點還需要使用者仔細區分、查證。