火星链 火星链
Ctrl+D收藏火星链

GAS:源码解读:你买的NFT到底是什么?

作者:

时间:1900/1/1 0:00:00

内容概要

如果你是WEB3加密界的新手,面对众多概念无从入手,那么欢迎你,来对地方了!!本文围绕标准ERC721协议,描述了Mint、safeMint、transfer等是如何实现资产管理的,并通过解读代码来了解它的安全性设计和以太坊数据上链成本构成。目录大纲

1.所谓NFT资产是什么?2.Mint和safeMint的差别3.交易时会发生什么?有哪些细节设计4.NFT哪些数据也存储在链上?5.以太坊上存储有多贵?面向对象

Web3新手,有无技术背景均可:研发——可无障碍阅读,理解精美的合约设计非研发——可能读不懂列举的代码,但能体会标准协议的设计思路1.所谓NFT资产是什么?

在opensea上,可看到每个NFT都有个唯一的编号。比如azuki系列中第4132号,在页面的Details栏目可以看到其合约地址,ID编号,部署所在公链等信息,而Properties栏目则是其设定的具备各种属性,对应的稀有度。

1.1资产在标准ERC721协议里是什么?

而咱们回顾到源代码,会发现程序记录了全局性的两个字典类型的变量,通过_owners中用数字映射地址的方式记录每一个ID当前对应的所有者,同时也附带用_balances记录了当前所有者总计持有的NFT数量

分析师:比特币距离“确认”新牛市还有1周:金色财经报道,在最新的Twitter活动中,交易员和分析师Rekt Capital指出BTC/USD正在形成一个关键的月度收盘价。尽管面临抛售28,000美元支撑的问题,但BTC价格走势坚定地走在离开熊市的路上,他在3月26日对BTC/USD可能如何结束本月提出了乐观的看法。下周六,BTC月度收盘价将位于宏观下降趋势之上,以确认新的牛市。[2023/3/27 13:28:00]

并且由于ERC721创新性的赋予了一个ID对应地址的变量_owners,从而与ERC20仅_balances进行地址与余额的管理,区分出了FT与NFT的差别。2.Mint和safeMint的差别

2.1Mint是如何进行的

Mint意思为铸造,即每个NFT的创造过程,例如之前的爱死机NFT当奈飞的NFT忘记了web2的业务安全Mint获取到该NFT的资产证明。从源代码中可以看到,Mint主要是进行了安全判断:判断1:确保转入的不是0x00地址判断2:确保此交易所操作的NFTID是不存在的最终代码执行的操作是:操作1:将转入地址的_balances所持有总数加1操作2:将对应NFTID的所有者修改为转入的地址操作3:完成交易则发出emit事件,可以让链下监听到这次交易的数据

Celsius未向客户报告8亿美元亏损,其CEO曾套现超6800万美元:1月31日消息,据一份法庭破产报告显示,加密借贷机构Celsius未向客户报告8亿美元亏损,其CEO Alex Mashinsky曾套现超6800万美元。

据破产审查员表示,到2021年6月,Celsius三分之一的机构贷款组合完全没有抵押,超过一半的抵押品不足。报告还显示,2021年,Celsius对Grayscale、KeyFi、Stakehound 和 Equities First Holdings的投资造成的8亿美元亏损,但其没有未在亏损发生之后向客户报告此事。此外,报告还显示Celsius创始人兼首席执行官Alex Mashinsky通过出售CEL代币套现至少6800万美元。(The Block)[2023/1/31 11:38:50]

中间有_beforeTokenTransfer和_afterTokenTransfer属于虚函数,作为标准,是让项目方可以再不修改标准协议的情况下增加一些特定的逻辑代码用的。2.2为何safeMint更安全

safeMint意为安全的铸造,从代码实现中可以看到他本身也是调用了MInt但是他额外增加了_checkOnERC721Received的判断,这点是属于ERC165的标准,相当于在完成转入操作后,则判断对方地址,是否是黑洞地址是防止转入对象为合约地址时候,其合约没有预设置好转出的函数,导致资产在内无法被转走,从而造成永久损失。

ConsenSys宣布创建以太坊气候平台 (ECP):金色财经报道,ConsenSys和Allinfra召集的一组Web3公司与民间社会领袖以及UNFCCC气候创新中心一起宣布创建以太坊气候平台 (ECP)。

这些项目将减少温室气体排放并在未来很长一段时间内产生积极的环境和社会影响。平台启动团队的创始成员包括:AAVE、Art Blocks、Celo、CodeGreen.Org、Enterprise Ethereum Alliance (EEA)、ERM、Filecoin Green、Gitcoin、全球区块链商业委员会 (GBBC)、Huobi Global、Laser Digital (Nomura) 、Microsoft、Polygon、The Climate Collective、UPC Capital Ventures 和 W3bcloud,与 Gold Standard 合作。[2022/11/18 13:19:04]

2.3ERC165是如何防止资产转入黑洞的?

设计初衷可见:https://eips.ethereum.org/EIPS/eip-165是让合约接口标准化的提案,在编程语法中interface是接口的意思,在其中定义的函数可以不实现仅仅放上函数名字相关参数,在程序复杂的时候,相当于目录一般告诉别人我都有什么功能。但是接口的写法各有千秋,名字定义参数类型,甚至是否存在都有不同,所以此提案最终形成了ERC165标准,规范了接口的识别规则。

开放金融公链Halo Network同元宇宙土地协议MetaPoint达成战略合作关系:据官方消息,开放金融公链Halo Network近期与元宇宙土地协议MetaPoint正式达成战略合作伙伴关系,双方将就MetaPoint的底层经济活动运作基础建设、元宇宙商业场景体验优化以及资产安全性保障等方向进行一系列深度合作,通过这次合作,MetaPoint将为用户提供快速、价格低廉、场景多样化的元宇宙体验。

据悉,MetaPoint是一个基于去中心化土地建立的元宇宙协议,在一个沙盒世界中,模拟人类现代文明起源与发展,围绕去中心化土地发展更加丰富多样化的场景。此前,MetaPoint已获得Aquaria、Blocklofty、Synix Capital、Tricer等机构的基础投资,为MetaPoint生态发展提供全方位支持。[2022/9/21 7:10:28]

使用流程是:STEP1判断是否存在supportsInterface函数,并且其符合165标准STEP2通过supportsInterface函数,判断是否具有转出NFT的函数3.交易时会发生什么?有哪些细节?

Cardano创始人:区块链技术可以“从根本上”改变未来:金色财经消息,Cardano创始人Charles Hoskinson在接受采访时表示,他认为区块链技术可以“从根本上”改变未来,在全球范围内创造更好的政府服务,并使它们彼此互操作,这正是他计划实现的目标。

他称,“在一个全球化的社会里,你不希望某一方完全控制关键的事情和资源。加密货币和区块链技术的重点是让这些应该是公共产品的资源(如果它们是数字化的)进入一个完全开放的环境,然后在此基础上建立业务。但底层基础设施不再受控制。”

他强调,在一个中心化的体系中,“基本上由一个人来决定这些规则,通常情况下,这些规则会变得非常不利于竞争,实际上会变成不利于消费者”,最终“伤害人们,或让人们暴露在许多市场失灵的情况下”。(Finbold)[2022/7/16 2:16:57]

标准协议设计有两种转移方式,transfer和transferFrom,作用于两种场景:transfer转移:由用户调用,将本消息发送的钱包所持有的NFTID转移到指定地址transferFrom从转移:用某机构调用,需要用户先授权某地址,让其有权可转移。类比一下:transfer就是现金交易,从自己口袋里拿钱支付transferFrom就是扫码扣款,由店家申请扣款,受制于用户是否开通小额代扣权限接下来咱们从代码来看看,其中可能有会意想不到的细节。3.1transfer是如何进行的

他会检测当前交易的from方是否是此NFTID的持有者,并且限制该NFT转入0x00地址。其次进行from转出地址和to转入地址的余额刷新,修改_balances全局变量并且重新设置_owners此NFTID的所有者地址修改为to。这里有个防护的细节会先执行_approve(address(0),tokenId);清空历史授权,如果没有这一步,则资产完成了转移,但是其NFTID的转移授权依旧在,细思极恐:

3.2transferFrom是如何进行的

这里的交易本质调用的是_safeTransfer所以他的核心逻辑是require部分,这的一大细节是:_msgSender()这是openzepplin的标准库Context.sol中的方法。其实就是获取当前交易的发送者地址,但这里使用了封装版本,而不是直接使用msg.sender是考虑到,可能存在一种交易类型“元交易”,即交易的付费gas方和交易发起方不相同的情况。所以一些处于中间环节的,类似library的合约需要考虑这种特殊情况。其余部分判断是确定是否有授权记录,易于理解,不作赘述

4.还有哪些数据可扩展存储在链上?

交易的环节也看完后,其实很多新同学也顿感奇怪,原来我买的NFT只有一个ID的归属地址指向了我,从而达成了唯一性。那就算如此,稀有度信息放在哪里?我的NFT图像本身在那里?这就是涉及到ERC721的元数据拓展IERC721Metadata.sol要放什么都可以,但是项目方往往在链上只存储最基础的ID+IPFS的地址。咱们可以通过之前Etherscan教程方法来看看一些项目数据有什么?Azuki上合约地址是:0xed5af388653567af2f388e6224dc7c4b3241c544通过ReadContract可以查阅到,其元数据只存放了ipfs上的指向地址而近期兴起的Metaverse项目元宇宙土地sandbox和****Decentraland,以及去年火热的****AxieInfinity,基本链上存储元数据也只是ID+网址。

像mirror那些是专门设计低费用可进行高存储,一个块常规都是30M起步,大约是以太坊的1000倍。5.以太坊上存储有多贵?

这里是本文稍难的地方。咱们从源码来分析链上存储的成本构成以及金额换算成本产生将有2个方面,按执行流程来看用户发起一笔交易,将要写链上数据作为参数传入,其大小是一笔成本交易执行合约代码,依据修改和使用,EVM计算消耗的gas成本。5.1交易发起的成本

咱们可以核对下以太坊黄皮书,里对交易数据大小所消耗gas有清晰的定义

可以看到交易所附带的参数的价格:每笔交易都有21000GAS需要支付为交易的每个非零字节数据或代码支付68GAS为交易的每个零字节数据或代码支付4GAS所以如果是再Mint的时候,登记上若干NFT属性信息,交易的data部分会将abc等字符转成2个十六进制表示,而每个字符为一个八位二进制,等于一个byte。所以可以约等于将data的长度除以2作为byte数。而1kb的数据,如果都是非0的有信息量的文本信息,则等于增加是68*1000=6.8W的gas消耗。按20gwei的gas价格和2000的eth兑换美元价格,可以估算出,每上链1kb数据在交易发起端就要:20*(21000+68000)*1e9/1e18*2000=3.5美金5.2合约存储的成本

由于交易发起后,还有智能合约上存储的逻辑,咱们从以太坊go源代码中,来分析具体的消费量,代码具体在函数内,太长了不全粘来:funcgasSStore(evm*EVM,contract*Contract,stack*Stack,mem*Memory,memorySizeuint64)(uint64,error)历史上GAS消耗的估算有经过若干迭代,如果是Petersburg或者Constantinople未激活的话,则不按下面逻辑进行计算gas消耗计算,依赖3个种数据的管理形式从零值地址到非零值,每个存储槽需消耗2Wgas从非零值地址到零值地址,每个存储槽需消耗5Kgas,但会有奖励1.5Wgas退回从非零到非零,每个存储槽需消耗200gas注意,上述每一个存储槽算32byte,1kb存储则是32个存储槽。Mint的过程是新增存储,所以如果新增1kb的数据存储在链上代价将是64Wgas,换算成金额则是:20*(640000)*1e9/1e18*2000=25美金真可谓寸土寸金!前文回顾

EIP-5058能否防止NFT项目方提桶跑路?当我们在看Etherscan的时候,到底在看什么?当奈飞的NFT忘记了web2的业务安全

标签:INTNFTTRAGAScointiger下载苹果SQGL Vault (NFTX)Trapeza Protocolugas币最新进展

以太坊价格今日行情热门资讯
ETH:以太坊在合并后将面临哪些潜在的中心化风险?

以太坊合并将给以太坊带来新的中心化问题,这一问题主要体现在三个方面。虽然以太坊合并后的中心化问题是可以解决的,但如果不加控制,以下三个领域的中心化有可能控制和破坏以太坊区块链:共识层客户端的多样.

1900/1/1 0:00:00
MIL:NFT数据日报 | Otherdeed在过去24小时内最受巨鲸欢迎(6.27)

NFT数据日报是由Odaily星球日报与NFT数据整合平台NFTGO.io合作的一档栏目,旨在向NFT爱好者与投资者展示近24小时的NFT市场整体规模、交易活跃度、子领域市占比.

1900/1/1 0:00:00
加密货币:揭秘Robinhood发展史:激情散户奇迹

罗宾汉是券商经纪行业的后来者,但通过降低门槛、游戏化交易以及事件营销等方式迅速成为这个百年行业的新贵。抛开争议,罗宾汉的发展为后来的行业破局者提供了一个清晰的战略超车范本.

1900/1/1 0:00:00
ETH:详解稳定币风险状况:USDT真的会崩盘吗?

距离我上次写关于tether的文章已经一年多了。从那时起,稳定币已经成为一个150B美元的市场,也是金融监管机构关注的一个问题.

1900/1/1 0:00:00
TON:如果Celsius和三箭资本崩溃,对行业意味着什么?

首先,如果3AC崩塌,影响是极其庞大的,因为他们从每个知名、资金雄厚的贷方处都贷了款。想想BlockFi、Genesis、Nexo、Celsius,预计每个贷方都会承受来自3AC的冲击.

1900/1/1 0:00:00
AAVE:详解借贷协议Maker、Aave、Compound的风控机制

杠杆资金是一把双刃剑,推动着周期的钟摆向两端运行。在牛市中,杠杆资金为资产价格的上升提供额外燃料,而在最近的下跌行情中,杠杆资金引发的连环清算与恐慌为加密世界蒙上了一片阴影.

1900/1/1 0:00:00