解析中心化穩定幣合約

作者:EatonAshton2,Beosin 安全研究員

封面:Photo by Muhammad Asyfaul on Unsplash

8 月 7 日,支付巨頭 PayPal 宣佈推出美元穩定幣 PayPal USD(PYUSD)。 該穩定幣由 Paxos 發行,目前合約已部署在乙太坊主網。 查看其合約代碼會發現,PYUSD 合約代碼與 USDP(Paxos 發行的穩定幣)的代碼基本上一致,PYUSD 只增加了一個 increaseSupply 的外部函數。

中心化穩定幣主要由法幣抵押。 穩定幣發行方會將法幣等資產抵押在銀行帳戶,作為鏈上穩定幣的儲備金。 本文主要通過 Beosin VaaS 掃描穩定幣合約代碼,檢測其代碼邏輯,發現各類中心化穩定幣的不同之處。

圖片

USDT

1. 潛在的手續費

USDT 設置了兩個變數 basisPointsRate 與 maximumFee,用於設定使用者使用 USDT 時需要向泰達公司支付的費用,最高手續費為 50USDT。 目前這兩個變數設定為 0,使用者使用 USDT 時不需要額外向泰達公司支付手續費。

圖片
合约地址:https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7#code

2.  黑名单

泰达公司在 USDT 代币合约中设置了黑名单功能。如果某一地址被加入黑名单,那么该地址无法调用 transfer() 或者 transferFrom() 转移 USDT。此外,泰达公司甚至可以调用 destroyBlackFunds(),将黑名单用户的 USDT 余额设置为 0,以打击黑名单用户。

图片
合约地址:https://etherscan.io/address/0xdac17f958d2ee523a2206206994597c13d831ec7#code

USDC

USDC 没有设置手续费。与 USDT 一样,USDC 也有黑名单制度,被加入黑名单的地址无法调用 USDC 合约的任何函数,但 USDC 没有设置类似 USDT 的 destroyBlackFunds() 的函数。

图片
USDC 所有外部函数要求地址不在黑名单里

USDP/BUSD/PYUSD

1.  黑名单

USDP,BUSD 和 PYUSD 的代码基本一致。与其它中心化稳定币一样,它们也有黑名单功能,可以将某一地址添加到 frozen 名单,从而限制该地址有关 USDP/PYUSD 的转移。USDP,BUSD 和 PYUSD 设有 wipeFrozenAddress(),该函数的功能与 USDT 的 destroyBlackFunds() 功能类似,可以将 frozen 名单中的地址的相关稳定币余额重置为 0。

图片
https://etherscan.io/token/0xe17b8aDF8E46b15f3F9aB4Bb9E3b6e31Db09126E#code

2. 白名單

USDP,BUSD 和 PYUSD 設有 assetProtectionRole,類似於白名單。 用 assetProtectionRole 修飾的位址可以將某一位址添加到 frozen 名單或者調用 wipeFrozenAddress()。

3. 無 gas 轉帳

USDP,BUSD 和 PYUSD 還提供以下兩個函數:

betaDelegatedTransfer()和 betaDelegatedTransferBatch(),從而允許使用者在提供簽名信息的情況下讓獲得批准的特定方代表用戶進行穩定幣轉帳,以實現使用者端無 gas 費的交易

圖片
https://etherscan.io/token/0xe17b8aDF8E46b15f3F9aB4Bb9E3b6e31Db09126E#code

總結

中心化穩定幣都設有黑名單制度,以滿足監管和反洗錢要求。 基於 Paxos 發行的穩定幣比起 USDT 與 USDC 有些許創新。 PayPal 在公共區塊鏈網路上部署穩定幣會使得美元穩定幣市場更進一步,數百萬使用者可以通過 PayPal 支付平臺進入加密領域。

免責聲明:作為區塊鏈資訊平臺,本站所發佈文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。 本文內容僅用於資訊分享,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。