内容概要
粉丝反馈,他在opensea无gas免费创建的NFT资产,竟能出现在小狐狸钱包里,而opensea官方声明的此NFT在正式交易前是未上链铸造的,这就很奇怪,中心化应用的资产出现在为去中心化应用服务的钱包里,到底是官方代付gas上链还是乌龙,随我一文揭晓!
目录大纲
1.背景简述
2.破案历程
2.1小狐狸网络抓包
2.2链上的交易统计
2.3合约反编译分析
3.破案总结
面向对象
Web3新手,有无技术背景均可理解此文解密过程
背景简述
1.1opensea是什么?
全球最大的公链NFT交易平台,也是目前除以太坊链底层外营收最大的web3平台,下文简述为os
1.2NFT是什么?
可见前文:你买的NFT到底是什么?
1.3NFT铸造是什么?
可见前文:当奈飞的NFT忘记了web2的业务安全
大意是,只有在链上Mint后的才能认为是资产,且一般用户需要付gas
Socios.com与阿根廷足协的独家合作关系将延长至2026年:8月31日消息,体育和娱乐产业区块链服务提供商 Socios.com CEO Alexandre Dreyfus 在社交媒体上发文表示,Socios.com 与阿根廷足球协会 (AFA) 的独家合作关系将至少延长到 2026 年美国世界杯期间,以开发 ARG 球迷 Token 并探索其他 Web3 球迷参与计划。
此前报道,Socios.com 于 2021 年 5 月宣布与阿根廷足球国家队达成协议,Socios.com 将成为后者国家队赞助商。[2022/8/31 13:00:33]
1.4os的免费创造NFT服务是什么?
NFT上链成本高,标准ERC721的mint需要8W的gas,约5刀
NFT定制合约难,虽有标准但顶级NFT项目会定制且部分强化功能,例如azuki
因此,易用性一直就是市场的痛点,毕竟艺术家不是合约工程师,需更低成本的试错来探索有价值的艺术品,官方也特别说明过
在opensea.io上create的NFT,符合ERC1155标准,即使是它们存在于链上之前,这些NFT也可以在任何平台上出售,在交易时才上链铸造
公告 | NAT将于1月10日14:00上线ZG.COM:据官方消息,ZG.COM将于2020年1月10日10:00开放NAT的充币和提币业务,于1月10日14:00开启NAT/USDT交易对。
据悉,NAT基金会(NAT FOUNDATION PTE.LTD)是由世界幸福产业控股集团有限公司投资成立的机构,总部设在新加坡,是以以太坊作为底层的区块链技术系统,技术设计由井通科技研发团队主导开发,旨在全球幸福产业应用场景支付使用,并逐步成为全球化数字资产的通证。NAT是与实体经济高度融合的数字资产通证,它自带实物资产价值,具有现实应用价值和交易投资增长多种功能。[2020/1/6]
破案历程
2.1案例来源
某粉丝很惊奇发现,自己确实可以在os上按流程进行create,但按官方说法此时是未上链的,但是他尝试在小狐狸钱包里导入资产时发现,竟然已经可见,甚至尝试导入一个自己未create的NFTID时也能导入成功,因此反馈我寻找技术维度的全貌解读
2.2还原方式
1:os上createNFT得到合约地址与ID
2:小狐狸上开启NFT检测后,再手动添加收藏品,即出现SharedStorefront
动态 | 中币(ZB.com)获评金色财经 2019 年度区块链百强企业:12月27日,金色财经“与时共创”年度颁奖典礼在北京举行,全球领先的数字资产交易平台中币(ZB.com)获评2019年度区块链百强企业。中币(ZB)成立于 2013 年,是最早的比特币以太坊交易平台之一,6年来以安全稳健的运营服务超过 1000万投资者。2019年,中币(ZB)积极进行集团化扩张,业务布局涵盖区块链投资基金、研究机构、电子钱包和数字资产交易平台集群等上下游产业,在新加坡、瑞士、马耳他、美国、阿联酋迪拜和中国香港设有运营中心,已成为一家领先的区块链数字资产和金融服务商。[2019/12/27]
2.3调查不易
其实查询资产是否上链是个非常容易的过程,用区块链浏览器即可
见前文:当我们在看Etherscan的时候,到底在看什么?
但是由于此os的NFT共享商店的合约并没有做验证。所以无法直接看源码查数据
但使用未经开源以及安全审计的合约,着实让我这从事多年安全行业的职业强迫症有些难受
如果真存在风险,其危害是巨大的
如果真未上链,小狐狸钱包去读取中心化平台数据?放在我的资产里?
知识图谱协议0xScope完成300万美元种子轮融资,ABCDE、Hash Global等领投:9月22日消息,知识图谱协议0xScope宣布完成300万美元种子轮融资,本轮融资由火币联合创始人杜均和BMAN创立的加速器和风险投资基金ABCDE,以及Hash Global和梁信军共同领投,Mask Network旗下Bonfire Union、Bodl Ventures参投。(Cointelegraph)[2022/9/22 7:13:39]
如果真上了链,用户无需gas,则可能官方付费上链,雷同羊毛有被攻击风险
未上链的资产,如产生冲突风险,那此NFT属于谁的?
2.4小狐狸app抓包
首先咱们通过对照实验做手机抓包,发现整体小狐狸会做的事情很多
拉取地址余额,交易,最新块内容,指定地址合约字节码等等
对数百个网络包逐个分析后,发现其小狐狸会使用infura的eth-call方法,功能是查询指定NFT合约中标准的balanceof方法
为何我如此肯定?此请求包里没有balanceof呀?
咱们用实验说话双向校验,标准的1155协议的标准函数名及参数为:
Cardano创始人Charles Hoskinson重回ETC Cooperative董事会:ETC Cooperative近日发推宣布Cardano创始人及IOHK首席执行官Charles Hoskinson重新成为其董事会新成员,并表示其一直是ETC的支持者,在该项目上有着独特的远见和经验。
据悉,早在2018年初,Charles就曾是ETC Cooperative最初顾问委员会的成员。现有六名董事会成员为Barry Silbert、Cody Burns、Elaine Ou、Roy Zou、Charles Hoskinson和Craig Salm。[2021/7/10 0:41:44]
functionbalanceOf(address,uint256)
由于data构建指定函数调用,其生成Mothod-ID的原理是名字参数类型组合,因此他构建的call方法,data字段的开头必然为00fdd58e
我输入的要添加资产是123号,其data参数末尾对应是7b=(7*1611=123)也对应上。
同时发现其缺乏防重放的措施,所以我可以直接编辑参数
重发请求查询其他NFT合约所有权来对比:
azuki:721标准,无得到0,有则非0
爱死机:1155标准,无得到0,有则得1
查os共享商店,修改参数尾数确实会得到值但意义不明
所以这里我得出的一大惊奇猜想是:
链上可查得NFT所有权的值,难道真的上链了吗?
2.5链上交易统计
如果真上链其实也可以不由用户支付gas,有种“元交易”的技术手法,就是交易发起方和gas支付者不同的形式,并且openzepplin里特地有个content合约就是用于额外支持元交易产生的msg.sender可能特殊化的问题
但是,我通过对此合约的链上交易数据统计,抽取23号一天出现的交易频率可见下图,都证明了好像并没有固定由官方发起的元交易类型交易
2.6破局得靠合约反编译
由于官方没有验证合约,导致分析起来费劲多了,但可通过合约反编译来大致摸清逻辑
如果只是openzepplin的标准1155库进行反编译的话,行数是170行
但是此1155则反编译后是1000行,因此必然有较多自定义实现
反编译后整体是吻合1155的数据标准
但是也显著有不是标准数据部分
由于链上数据读取返回了结果,所以重点分析balanceOf函数,他整体实现用了30多行,这是很明显重写了原先的标准函数
由于os他依旧是沿用标准,所以他的两个参数是固定的可以理解为:
Varg0=待查询NFTid所有权的用户地址
varg1=待查询的NFTID数字
从反编译程序里看逻辑,他会读取待查地址的_balanceOf总余额数,以及此NFTID是否被_creator等等
最关键的一句address(varg1>>96)!=varg0
由于反编译不会完全按照solidity的语法,所以原本不支持的位移运算符就出现了
不讲复杂的,总之这里将varg1的其中一部分,和varg0做比较
这也意味着,原来此NFT的ID包含了用户的地址
我顿然醒悟,写个进制转换,将我在os上create得到的NFTid传入,解密得出
这个数值也和我在小狐狸抓包看到的data后半段内容是一致
这里还可以继续研读代码来挖掘细节
比如balanceOf返回结果为2个值,会审计编号是否会超出_totalSupply限定发行量
比如safeTransferFrom专门设置_mint防重放攻击,在其中若未mint则进行首次铸造
在解读出NFTID的组成后,我也顿时明白此合约的核心逻辑了
此ID由3部分构成,用户地址系列编号指定ID,这也意味着无论我铸造多少次,前xx位都是固定的,即我的钱包地址转为10进制而已,而他查询的balanceof函数也因为我前缀统一,从而判别我是未铸造前的所有者,因此理论上我的铸造空间极其大。
因此小狐狸确实能导入,因为前缀一致,balanceof在没有所有者的情况下,会默认依据此NFTID对应的空间的所有者返回结果,如果发生铸造转移,也有合约中配套的owner_a和_creator来证明这个创作者和当前所有者的关系。
至于为何小狐狸能出现NFT图,这点是他官方声明过的设置,出于读取更多维度的描述说明、稀有度、原图uri等信息,且用户可关闭这个钱包去查询os中心化数据库的功能。
破案总结
小狐狸是无辜的,他只是用标准方法走infura读取链上数据而已,并没有特别加工并修改返回数据
os不去验证合约,有一定自我市场竞争保护的目的,但是不能阻挡妙手玩家对合约分析,却给不少用户带来无法证明资产所有的困境
最终,确实其NFT资产在交易转移前未被铸造上链,但由NFTID定义的空间已经被特殊设计可查得余额结果,所以理论上其他交易平台也可买卖此NFT
附录:
gas价格图:https://etherscan.io/gastracker
反编译平台:https://library.dedaub.com/decompile
metamask的NFT检测功能说明:https://metamask.zendesk.com/hc/en-us/articles/360058238591-NFT-tokens-in-your-MetaMask-wallet
os共享商店合约地址:0x495f947276749ce646f68ac8c248420045cb7b5e
OS官方声明:
https://support.opensea.io/hc/en-us/articles/1500003082561-Will-ERC-1155-NFTs-appear-in-my-wallet-
https://opensea.io/blog/announcements/introducing-the-collection-manager/
元宇宙——理想状态是自发无边际的社会体验。 元宇宙的英文叫做MetaverseMetaverse,是一个映射现实世界的虚拟平行世界,?通过具象化的3D表现方式,给人们提供一种沉浸式、真实感的数字.
尊敬的用户: BKEXETP专区将于2022年6月28日15:00上线LIT3L、LIT3S,具体详情如下:? 交易标的 交易对 BKEX Global将于今日18:30首发上线HGET:据BK.
6月30日消息,Compound背后团队CompoundLabs周二发布了多链借贷协议CompoundIII的代码。虽然该协议尚未推出,但开发人员可以将代码集成到现有平台,并提供改进建议.
Period:13:00(UTC)onJune28-13:00(UTC)onJuly?5,2022How?to?Participate: JOINNOW? Clickthe?buttonatth.
親愛的AAX用戶們: AAX即將上線GOFX,詳情如下:充值開放時間:2022年6月29日15:00提幣開放時間:2022年6月29日15:00交易開放時間:2022年6月30日17:00交易對.
加密货币的两个最大的参与者,比特币和以太坊在过去几天出现了温和的复苏,帮助推动加密货币的整体市值回到1万亿美元大关之上,尽管只是短暂的,在写这篇文章时,这个市场距离这个里程碑还差400亿美元.