NFT项目审计概览
NFT是英语“Non Fungible Token”的简称,翻译过来即非同质化通证。一个NFT可以被理解为是存储在区块链上的一个独一无二的单元数据。每当谈及NFT通证,我们会很自然地将其与常见的ERC-20通证进行类比。但NFT通证与ERC-20通证是有区别的,两者的区别在于任何两个NFT通证都互不相同,不可互换,即不同质。因此,与NFT相关的操作(比如交易等)与ERC-20通证及其它类同质数字资产(如比特币、以太坊)的操作相比有着明显的区别。
近年来,以NFT为核心成长出了一个全新的生态,这个生态在2021年发展尤为迅猛。但是在生态快速发展的同时,生态中的安全问题却频繁显现。当业界审视这些安全问题时往往将其与ERC-20通证生态中的安全问题进行类比,但是NFT领域中出现的安全问题却有自己的特点和差异。然而这些特点和差异却还没有系统地受到业界的关注和研究。
关于NFT生态中的安全问题在学术界已经有学者进行了大胆地探索和研究,比如D. Das、P. Bose、N. Ruaro、C. Kruegel和G. Vigna合著的论文。然而在实践和具体执行过程中,对NFT安全问题该采用什么方式检视,什么流程审查,什么措施进行防范以及从哪些角度进行防范则缺乏深入的探讨和研究。
Fairyproof研究团队根据自身积累的专业知识和审计NFT项目中积累的实践经验,总结了一套系统、全面的方案,在此欲与业界和关注此领域发展的同仁进行探讨和交流。
如果一个项目、应用或服务和NFT交互,则我们视其为NFT项目、NFT应用或NFT服务。如果一个应用或服务和NFT交互,我们则视这个应用或服务是整个NFT生态中的一员。所有这些应用和服务一起就组成了现在我们见到的NFT生态系统。
在这个生态系统中,根据其中每个成员在技术上扮演的角色,我们将其分为四类:NFT通证部署的区块链、NFT通证的实现合约、实现商业逻辑及流程的核心应用、辅助NFT工作的应用或服务。
对于NFT项目的审计,这四类成员都需要关注和审视。如果NFT部署的区块链不能正常工作,项目就失去了根本;如果NFT通证的实现合约有问题,那NFT就无法正常工作,项目就失去了内核;如果项目的商业逻辑和流程设计有问题,那项目就只剩下毫无生命力的NFT通证;如果辅助NFT工作的应用或服务不能正常工作或者项目没有选择合适的辅助应用或服务,则NFT就无法将其潜力充分发挥。
因此这四者的安全和审计缺一不可,都不能忽视。在本文接下来的篇章,我们将对这四者的安全及审计分别展开论述。
对区块链的审计
对于NFT项目所部署的区块链,如果它是一条比较成熟的区块链(比如以太坊),则通常情况下,无需再对其进行审计,这一步可以跳过。因为成熟的区块链已经在经年累月的发展和成长中,历经各种安全事故的挑战和磨练,在安全上已经有了较为可靠的保障和信用。如果其部署的区块链是新生的,则理论上对区块链的审计是不能忽略的。
对区块链的审计在业界已经相对成熟。此类审计的方式、方法、流程及重点和难点已经是包括Fairyproof在内的区块链安全公司比较熟练的业务和领域。对业界和安全公司来说,这类审计并不陌生。
对NFT实现合约的审计
NFT通证的实现,从技术上来讲和常见的ERC-20通证类似,都是由一个或多个智能合约组成。但是,由于NFT实现所基于的通证标准(比如ERC-721和ERC-1155)和ERC-20同质通证不同,因此NFT通证中可能出现的问题也与ERC-20通证略有不同。这其中一个典型的问题就是NFT的发行功能在实现时是否使用了合适的随机数。如果使用的随机数不合适,则NFT在发行时可能遭遇“回滚”攻击,即用户可以通过不断回滚交易,直到获取自己偏好的NFT。因此对NFT实现合约的审计也和对ERC-20合约的审计略有不同,其主要表现在关注点、重点和难点有所不同。
火币行情播报:BTC尝试下跌得到支撑,持续缩量横盘:据火币行情显示,BTC昨晚小幅下探,最低至17277.93USDT,之后持续缩量横盘,这次下跌可能是由于前期获利盘出场造成的,现在位于高位短期横盘阶段,市场可能有一定的回调以及整理需求,上升行情仍在继续。从日线级别看,连续四天的上涨表明多方力量仍然强劲。截至10:30,火币平台的主流币的具体表现如下。[2020/11/19 21:19:27]
对此,Fairyproof在实践中系统地总结了经验,并开发一套自动化的审计工具,能够快速定位NFT合约中的风险点,排除潜在风险。
对核心商业逻辑应用的审计
这里我们所指的核心商业逻辑应用主要是指在一个NFT项目中,实现商业逻辑的部分。这部分应用会和各类NFT通证交互。
在一个NFT项目中实现商业逻辑的应用通常可分为两类:
一类是典型的互联网2.0应用。它在项目中和NFT的交互及实现的商业逻辑比较简单,通常只涉及一些简单的NFT操作,比如NFT的发行、NFT的转账等。近年极为流行的“PFP”项目就属于这类。
另一类是包含了互联网2.0应用和区块链智能合约的综合应用。这类综合应用包含的NFT操作要复杂得多,除了简单的NFT发行和转账,还有NFT通证的管理、NFT通证的抵押等。现在NFT生态中最大的应用比如交易平台就是这类。
尽管这两类应用在复杂程度上有区别,但它们和基于ERC-20通证的应用相比都展现出一些特有的共性,这些共性也是NFT应用的共性。
这些共性主要表现在:首先NFT应用涉及的链上操作不如ERC-20通证应用(比如DeFi应用)涉及的链上操作复杂;其次很多NFT应用面向的用户是非技术类人士,这些用户有些甚至没有区块链方面的知识,也不了解基于区块链的数字货币。
因此为了让大量非专业领域的用户在无需具备区块链或数字货币知识的情况下毫无障碍地使用和参与NFT项目,很多开发团队会花费大量的精力和资源来设计和优化用户界面,使之更符合用户已经在互联网2.0应用中建立起来的习惯。这便自然而然地使一些项目在设计和开发的过程中大量沿袭使用互联网2.0应用的技术和流程。一方面,这降低了用户的使用门槛,更便于新用户进入NFT领域;但另一方面,这也使得这些NFT应用有过于中心化的倾向。这种过于中心化的倾向不仅存在于应用的技术实现上,也存在于商业逻辑和流程中。
这里我们想特别强调的是:在现有NFT应用中涉及到商业逻辑和流程的部分可能会存在什么问题、是否有某些未知的隐患等还没有引起业界尤其是安全领域从业者的足够关注和研究。比如在目前诸多流行的NFT交易平台中,KYC还并未被强制要求,更谈不上坚决执行,在这种情况下如何防范安全事故及对黑客身份的追踪、定位;再如对NFT项目“真伪”的验证在大多数交易平台上还只是可选项而非必须执行项,在这种情况下如何防止用户误入假冒项目;还有对于NFT原创团队在设定及收取交易分红(royalty)方面目前各类平台所采用的流程和方式是否存在安全上的漏洞和隐患以及是否存在欺诈和不公?......
对上述问题的展开和研究目前都鲜有看到业界提及,更遑论进行深入的探讨。
对此Fairyproof一直在进行跟踪研究和探索,并在这些方面积累和总结了经验,并研发了一套综合性的框架和系统,能给NFT领域的从业者提出建设性的意见及切实可行的方案。
对辅助服务或应用的审计
这里所提到的辅助服务或应用是指有助于NFT充分发挥其功能或特色的服务或应用。典型的如为NFT存储元数据(metadata)的服务或应用.
兴起于2021年的PFP项目就利用了辅助服务或应用。这类典型的NFT项目往往是发行一定恒定数量的NFT,每个NFT都有一个独一无二的图片,每个图片包含各种特征的组合。对每个NFT来说,这个图片就是它的元数据。
这些图片往往为了吸引用户买入和持有都经过精心的设计而独具特色,因此图片的保存和显示对这类NFT项目来说就显得非常重要。很多项目在设计时都考虑了使用各种方案使图片能够尽量永久保存。因此什么样的服务或应用能够提供可靠、稳妥的永久存储就是这些项目方关注的重点。
目前在业界常见的存储方案主要有去中心化的存储应用和中心化的存储应用。前者典型的有IPFS、Arweave等。后者主要有亚马逊云等。
但是这些存储方案并非每个都能现成地提供永久存储,有些可以提供永久存储但费用较高,有些只能提供按时收费的临时存储,各有优缺点。因此如何综合考虑使用一种或多种方案进行组合,构建一套能够永久存储的服务就是项目开发者必须考虑的问题。
但是当项目方考虑使用这些方案时,这些方案本身可能存在什么问题?在组合使用这些方案时可能存在哪些安全上的隐患或者潜在风险?如何规避和防范这些隐患或潜在风险?有关这些问题的讨论和研究至今所见相当有限。
Fairyproof自成立伊始便开始关注这个领域的研究和探索,尤其是在安全实践中可能会存在什么难点和重点等。我们基于自身的积累和实践,探索、研发了一套系统的方案用来评价和审查NFT辅助服务或应用,并研发、部署了一套全面的流程和系统以检视这些辅助服务或应用在各类实践方案中可能存在的安全隐患及潜在风险。
对NFT项目的审计不单单是对NFT智能合约的审计,它是一个系统工程、是一套综合流程,需要从生态的角度全面审视NFT本身、其核心业务逻辑及所涉及的周边应用、基础设施和辅助服务。
Fairyproof一直并将持续、密切地关注NFT生态的发展,持之以恒地深入研究这个领域的安全问题,在已经建立的成熟框架上继续扩展和探索领域内最新的发展,并继续和同业分享我们对前沿问题的思考和前瞻判断。
参考文献:
Non-fungible token, https://en.wikipedia.org/wiki/Non-fungible_token, Feb 22, 2022
ERC-20 Token Standard, https://ethereum.org/en/developers/docs/standards/tokens/erc-20/
Understanding Security Issues in the NFT Ecosystem, https://arxiv.org/abs/2111.08893, Jan 19, 2022
ERC-721 Non-fungible Token Standard,
https://ethereum.org/en/developers/docs/standards/tokens/erc-721/
EIP-1155: Multi Token Standard, https://eips.ethereum.org/EIPS/eip-1155
A Beginner’s Guide to Understanding PFP NFTs,
https://medium.com/geekculture/a-beginners-guide-to-understanding-pfp-nfts-8714e9d30d0b, August 29, 2021
CryptoPunks, https://www.larvalabs.com/cryptopunks
BAYC, https://boredapeyachtclub.com/#/
OpenSea, https://opensea.io/
Rarible, https://rarible.com/
Curve, https://curve.fi/
MakerDAO, https://makerdao.com/
Nifty Gateway, https://niftygateway.com/
metadata, https://csrc.nist.gov/glossary/term/metadata
IPFS, https://ipfs.io/
Arweave, https://www.arweave.org/
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.
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。