推薦:點擊此處下載PANews關注NFT日報和NFT一周售賣鑄造預告,快人一佈局可能有價值的NFT。
作者:Yuefei TAN, CEO of Fairyproof
NFT是英語“Non Fungible Token”的簡稱,翻譯過來即非同質化通證。一個NFT可以被理解為是存儲在區塊鏈上的一個獨一無二的單元數據[1]。每當談及NFT通證,我們會很自然地將其與常見的ERC-20[2]通證進行類比。但NFT通證與ERC-20通證是有區別的,兩者的區別在於任何兩個NFT通證都互不相同,不可互換,即不同質。因此,與NFT相關的操作(比如交易等)與ERC-20通證及其它類同質數字資產(如比特幣、以太坊)的操作相比有著明顯的區別。
近年來,以NFT為核心成長出了一個全新的生態,這個生態在2021年發展尤為迅猛。但是在生態快速發展的同時,生態中的安全問題卻頻繁顯現。當業界審視這些安全問題時往往將其與ERC-20通證生態中的安全問題進行類比,但是NFT領域中出現的安全問題卻有自己的特點和差異。然而這些特點和差異卻還沒有系統地受到業界的關注和研究。
關於NFT生態中的安全問題在學術界已經有學者進行了大膽地探索和研究,比如D. Das、P. Bose、N. Ruaro、C. Kruegel和G. Vigna合著的論文[3]。然而在實踐和具體執行過程中,對NFT安全問題該採用什麼方式檢視,什麼流程審查,什麼措施進行防範以及從哪些角度進行防範則缺乏深入的探討和研究。
Fairyproof研究團隊根據自身積累的專業知識和審計NFT項目中積累的實踐經驗,總結了一套系統、全面的方案,在此欲與業界和關注此領域發展的同仁進行探討和交流。
如果一個項目、應用或服務和NFT交互,則我們視其為NFT項目、NFT應用或NFT服務。如果一個應用或服務和NFT交互,我們則視這個應用或服務是整個NFT生態中的一員。所有這些應用和服務一起就組成了現在我們見到的NFT生態系統。
在這個生態系統中,根據其中每個成員在技術上扮演的角色,我們將其分為四類:NFT通證部署的區塊鏈、NFT通證的實現合約、實現商業邏輯及流程的核心應用、輔助NFT工作的應用或服務。
對於NFT項目的審計,這四類成員都需要關注和審視。如果NFT部署的區塊鏈不能正常工作,項目就失去了根本;如果NFT通證的實現合約有問題,那NFT就無法正常工作,項目就失去了內核;如果項目的商業邏輯和流程設計有問題,那項目就只剩下毫無生命力的NFT通證;如果輔助NFT工作的應用或服務不能正常工作或者項目沒有選擇合適的輔助應用或服務,則NFT就無法將其潛力充分發揮。
因此這四者的安全和審計缺一不可,都不能忽視。在本文接下來的篇章,我們將對這四者的安全及審計分別展開論述。
1 對區塊鏈的審計
對於NFT項目所部署的區塊鏈,如果它是一條比較成熟的區塊鏈(比如以太坊),則通常情況下,無需再對其進行審計,這一步可以跳過。因為成熟的區塊鏈已經在經年累月的發展和成長中,歷經各種安全事故的挑戰和磨練,在安全上已經有了較為可靠的保障和信用。如果其部署的區塊鍊是新生的,則理論上對區塊鏈的審計是不能忽略的。
對區塊鏈的審計在業界已經相對成熟。此類審計的方式、方法、流程及重點和難點已經是包括Fairyproof在內的區塊鏈安全公司比較熟練的業務和領域。對業界和安全公司來說,這類審計並不陌生。
2 對NFT實現合約的審計
NFT通證的實現,從技術上來講和常見的ERC-20通證類似,都是由一個或多個智能合約組成。但是,由於NFT實現所基於的通證標準(比如ERC-721[4]和ERC-1155[5])和ERC-20同質通證不同,因此NFT通證中可能出現的問題也與ERC-20通證略有不同。這其中一個典型的問題就是NFT的發行功能在實現時是否使用了合適的隨機數。如果使用的隨機數不合適,則NFT在發行時可能遭遇“回滾”攻擊,即用戶可以通過不斷回滾交易,直到獲取自己偏好的NFT。因此對NFT實現合約的審計也和對ERC-20合約的審計略有不同,其主要表現在關注點、重點和難點有所不同。
對此,Fairyproof在實踐中系統地總結了經驗,並開發一套自動化的審計工具,能夠快速定位NFT合約中的風險點,排除潛在風險。
3 對核心商業邏輯應用的審計
這裡我們所指的核心商業邏輯應用主要是指在一個NFT項目中,實現商業邏輯的部分。這部分應用會和各類NFT通證交互。
在一個NFT項目中實現商業邏輯的應用通常可分為兩類:
一類是典型的互聯網2.0應用。它在項目中和NFT的交互及實現的商業邏輯比較簡單,通常只涉及一些簡單的NFT操作,比如NFT的發行、NFT的轉賬等。近年極為流行的“PFP”[6]項目[7][8]就屬於這類。
另一類是包含了互聯網2.0應用和區塊鏈智能合約的綜合應用。這類綜合應用包含的NFT操作要復雜得多,除了簡單的NFT發行和轉賬,還有NFT通證的管理、NFT通證的抵押等。現在NFT生態中最大的應用比如交易平台[9][10]就是這類。
儘管這兩類應用在復雜程度上有區別,但它們和基於ERC-20通證的應用相比都展現出一些特有的共性,這些共性也是NFT應用的共性。
這些共性主要表現在:首先NFT應用涉及的鏈上操作不如ERC-20通證應用(比如DeFi應用[11][12])涉及的鏈上操作複雜;其次很多NFT應用面向的用戶是非技術類人士,這些用戶有些甚至沒有區塊鏈方面的知識,也不了解基於區塊鏈的數字貨幣。
因此為了讓大量非專業領域的用戶在無需具備區塊鍊或數字貨幣知識的情況下毫無障礙地使用和參與NFT項目,很多開發團隊會花費大量的精力和資源來設計和優化用戶界面,使之更符合用戶已經在互聯網2.0應用中建立起來的習慣。這便自然而然地使一些項目在設計和開發的過程中大量沿襲使用互聯網2.0應用的技術和流程[9][13]。一方面,這降低了用戶的使用門檻,更便於新用戶進入NFT領域;但另一方面,這也使得這些NFT應用有過於中心化的傾向。這種過於中心化的傾向不僅存在於應用的技術實現上,也存在於商業邏輯和流程中。
這裡我們想特別強調的是:在現有NFT應用中涉及到商業邏輯和流程的部分可能會存在什麼問題、是否有某些未知的隱患等還沒有引起業界尤其是安全領域從業者的足夠關注和研究。比如在目前諸多流行的NFT交易平台中,KYC還並未被強制要求,更談不上堅決執行,在這種情況下如何防範安全事故及對黑客身份的追踪、定位;再如對NFT項目“真偽”的驗證在大多數交易平台上還只是可選項而非必須執行項,在這種情況下如何防止用戶誤入假冒項目;還有對於NFT原創團隊在設定及收取交易分紅(royalty)方面目前各類平台所採用的流程和方式是否存在安全上的漏洞和隱患以及是否存在欺詐和不公? ……
對上述問題的展開和研究目前都鮮有看到業界提及,更遑論進行深入的探討。
對此Fairyproof一直在進行跟踪研究和探索,並在這些方面積累和總結了經驗,並研發了一套綜合性的框架和系統,能給NFT領域的從業者提出建設性的意見及切實可行的方案。
4 對輔助服務或應用的審計
這裡所提到的輔助服務或應用是指有助於NFT充分發揮其功能或特色的服務或應用。典型的如為NFT存儲元數據(metadata)[14]的服務或應用.
興起於2021年的PFP項目就利用了輔助服務或應用。這類典型的NFT項目往往是發行一定恆定數量的NFT,每個NFT都有一個獨一無二的圖片,每個圖片包含各種特徵的組合。對每個NFT來說,這個圖片就是它的元數據。
這些圖片往往為了吸引用戶買入和持有都經過精心的設計而獨具特色,因此圖片的保存和顯示對這類NFT項目來說就顯得非常重要。很多項目在設計時都考慮了使用各種方案使圖片能夠盡量永久保存。因此什麼樣的服務或應用能夠提供可靠、穩妥的永久存儲就是這些項目方關注的重點。
目前在業界常見的存儲方案主要有去中心化的存儲應用和中心化的存儲應用。前者典型的有IPFS[15]、Arweave[16]等。後者主要有亞馬遜雲[17]等。
但是這些存儲方案並非每個都能現成地提供永久存儲,有些可以提供永久存儲但費用較高,有些只能提供按時收費的臨時存儲,各有優缺點。因此如何綜合考慮使用一種或多種方案進行組合,構建一套能夠永久存儲的服務就是項目開發者必須考慮的問題。
但是當項目方考慮使用這些方案時,這些方案本身可能存在什麼問題?在組合使用這些方案時可能存在哪些安全上的隱患或者潛在風險?如何規避和防範這些隱患或潛在風險?有關這些問題的討論和研究至今所見相當有限。
Fairyproof自成立伊始便開始關注這個領域的研究和探索,尤其是在安全實踐中可能會存在什麼難點和重點等。我們基於自身的積累和實踐,探索、研發了一套系統的方案用來評價和審查NFT輔助服務或應用,並研發、部署了一套全面的流程和系統以檢視這些輔助服務或應用在各類實踐方案中可能存在的安全隱患及潛在風險。
對NFT項目的審計不單單是對NFT智能合約的審計,它是一個系統工程、是一套綜合流程,需要從生態的角度全面審視NFT本身、其核心業務邏輯及所涉及的周邊應用、基礎設施和輔助服務。
Fairyproof一直並將持續、密切地關注NFT生態的發展,持之以恆地深入研究這個領域的安全問題,在已經建立的成熟框架上繼續擴展和探索領域內最新的發展,並繼續和同業分享我們對前沿問題的思考和前瞻判斷。
參考文獻:
[1] Non-fungible token, https://en.wikipedia.org/wiki/Non-fungible_token, Feb 22, 2022
[2] ERC-20 Token Standard, https://ethereum.org/en/developers/docs/standards/tokens/erc-20/
[3] Understanding Security Issues in the NFT Ecosystem, https://arxiv.org/abs/2111.08893, Jan 19, 2022
[4] ERC-721 Non-fungible Token Standard,
https://ethereum.org/en/developers/docs/standards/tokens/erc-721/
[5] EIP-1155: Multi Token Standard, https://eips.ethereum.org/EIPS/eip-1155
[6] A Beginner’s Guide to Understanding PFP NFTs,
https://medium.com/geekculture/a-beginners-guide-to-understanding-pfp-nfts-8714e9d30d0b, August 29, 2021
[7] CryptoPunks, https://www.larvalabs.com/cryptopunks
[8] BAYC, https://boredapeyachtclub.com/#/
[9] OpenSea, https://opensea.io/
[10] Rarible, https://rarible.com/
[11] Curve, https://curve.fi/
[12] MakerDAO, https://makerdao.com/
[13] Nifty Gateway, https://niftygateway.com/
[14] metadata, https://csrc.nist.gov/glossary/term/metadata
[15] IPFS, https://ipfs.io/
[16] Arweave, https://www.arweave.org/
[17] AWS, https://aws.amazon.com/
About the author:
Yuefei TAN, CEO of Fairyproof
About Fairyproof:
Fairyproof Tech is a blockchain security company, established in Jan 2021.
It was founded by a team with rich experience in smart contract programming and network security. The team members participated in initiating a number of draft standards in the Ethereum field, including ERC-1646, ERC-2569, ERC-2794, and EIP-3712, of which ERC-2569 was officially accepted by the Ethereum team.
The team participated in the launch and development of various Ethereum projects, including blockchain platforms, DAO organizations, on-chain data storage, decentralized exchanges, and conducted security audits of multiple projects which have been deployed on Ethereum. Based on its strong R&D capability and deep understanding of smart contract security, Fairyproof has developed comprehensive vulnerability tracking and security systems and tools.
Fairyproof Tech serves and works closely with customers by providing systematic solutions covering both “code vulnerabilities” and “logic vulnerabilities” and aims to provide customers with the best and most professional services.