- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第PAGE页共NUMPAGES页
初级NFT智能合约审计师面试题集
一、选择题(共5题,每题2分)
说明:以下题目主要考察对NFT智能合约基础知识、常见漏洞类型及行业最佳实践的理解。
1.题目:以下哪种机制可以有效防止NFT重入攻击?
A.使用ReentrancyGuard库
B.单调时间戳依赖(MonotonicTimeDependence)
C.限制外部调用的次数
D.以上所有选项
答案:D
解析:ReentrancyGuard库通过检查调用堆栈来防止重入,单调时间戳依赖确保交易按时间顺序执行,限制外部调用次数也能降低风险。
2.题目:当NFT合约使用`safeMint`方法铸造时,以下哪个场景可能导致Gas不足(Out-of-Gas)?
A.铸造者地址余额足够
B.铸造数量超过区块Gas限制
C.收益者地址已持有最大NFT数量
D.调用者账户被冻结
答案:B
解析:`safeMint`需要支付Gas,若铸造数量过大,区块内Gas可能耗尽,导致交易失败。
3.题目:以下哪种NFT标准不支持动态元数据(如视频链接)?
A.ERC-721
B.ERC-1155
C.ERC-2981(用于版税)
D.以上都不支持
答案:A
解析:ERC-721是静态标准,元数据写入后不可修改;ERC-1155和ERC-2981可通过额外逻辑支持动态数据。
4.题目:当NFT合约部署在Goerli测试网时,以下哪个行为可能导致测试币(TestnetETH)被消耗?
A.调用`transfer`方法转移NFT
B.使用`safeMint`铸造NFT
C.调用`approve`和`transferFrom`组合操作
D.部署合约时未设置构造函数参数
答案:B
解析:`safeMint`通常需要支付ETH,若构造函数未设置初始余额,调用者可能因Gas不足被消耗。
5.题目:以下哪种情况会导致NFT合约的`royaltyInfo`版税计算错误?
A.调用者地址未授权
B.收益者地址为EOA(外部账户)而非合约
C.元数据JSON文件未正确关联合约地址
D.调用者账户余额不足
答案:C
解析:ERC-2981依赖元数据文件,若文件路径或合约地址错误,版税计算会失效。
二、填空题(共5题,每题2分)
说明:考察对关键术语、漏洞类型及行业工具的理解。
6.题目:在NFT合约中,为了防止重入攻击,应使用__________库来检查调用堆栈。
答案:ReentrancyGuard
解析:该库通过`_checkReentrancy`函数强制检查外部调用是否完成。
7.题目:ERC-721标准中,__________事件用于记录NFT的所有权变更。
答案:Transfer
解析:该事件包含`from`、`to`和`tokenId`字段,用于追踪交易记录。
8.题目:当NFT合约部署在PolygonMumbai测试网时,应使用__________测试网ETH进行交互。
答案:MATIC
解析:PolygonMumbai使用MATIC作为测试代币。
9.题目:若NFT合约中的`balanceOf`函数返回错误,可能是由于__________校验失败。
答案:ownerAddress
解析:若传入地址格式错误或未校验,可能导致返回值异常。
10.题目:使用__________工具可以检测NFT合约的静态漏洞。
答案:Slither
解析:该工具支持ERC-721/1155合约,能识别重入、整数溢出等问题。
三、简答题(共4题,每题5分)
说明:考察对实际场景问题的分析和解决方案设计能力。
11.题目:请简述NFT合约中“整数溢出/下溢”漏洞的成因及防范措施。
答案:
-成因:未校验加/减运算结果是否超出`uint`类型范围(如256位无符号整数)。
-防范措施:
1.使用OpenZeppelin库的`SafeMath`或Solidity0.8.0+内置校验;
2.预留安全边际(如加1再取模)。
12.题目:当NFT合约的`mint`函数被外部调用者滥用(如刷单),应如何设计限制机制?
答案:
-IPFS+Pinata:铸造时上传元数据到IPFS,通过Pinata缓存加速访问;
-版税设计:使用ERC-2981动态设置收益者(如拍卖平台);
-速率限制:通过OpenZeppelin的`Ownable`或`AccessControl`限制铸造频率。
13.题目:如何验证NFT合约的`ownerOf`函数返回正确?
答案:
-测试用例:
1.首次铸造后,确认返回铸造者地址;
2.转移NFT后,验证新所有者地址;
3.使用`approve`+`transferFrom`
原创力文档


文档评论(0)