公开我个人全部的投资、研究与写作的逻辑和方法论
注:本文内容较长,毫无保留总结我这一整年在投资、研究和写作上的全部经验,相信你看完后也许会有所帮助 其实之前已经在twitter上发过我的写作方法论和获取信源的渠道,这段时间跑了几个城市,密集的与机构、项目方、从业者、KOL等朋友交流分享后,这一整套思路更加清晰,有不少朋友经常会找我交流,与其一遍遍的聊,我认为用文字的方式将这些内容整理并公开出来是更有价值的 其实某种程度可以说这些内容是我在这个行业“吃饭的家伙”,毕竟我就是靠这些内容来做研究写作获取流量粉丝,以及投资一些确定性较高的标的获取收益,但是我个人觉得这些内容对大家是有帮助的,并且我目前也不做流量变现,以及更重要的和我接触过的朋友应该清楚我是有区块链信仰的,公开透明共识共建的理念也让我愿意将这些内容分享出来 我也会在文章末尾非常俗的放一个打赏码,毕竟写作不易,目前支撑我写下去的就是倒逼自己学习,以及帮助我认识更多的人,所以也从来没有在这方面有任何收入,如果你看完对你有所帮助,可以根据你的情况进行打赏,谢谢,当然要强调这些内容因人而异,大家不要生搬硬套,如果看完对你没有帮助也一笑了之即可 本文会分四部分:投资逻辑、信源渠道...
如何用5行代码发行一套虚拟货币?
经过前几篇文章,相信各位已经清楚如何发行NFT、NFT的本质是什么,以及NFT目前所面临的问题。 NFT的本质与虚拟货币没有很大差异,只是NFT是不可分割的非同质化代币,而虚拟货币则是可被分割的同质化代币,NFT遵循的主流协议是ERC721,虚拟货币遵守的则是ERC20,本文将为各位讲解如何从0到1发行一套虚拟货币,注意按照中国最高法自3月1日生效的解释,虚拟货币被归类为非法集资,本文不建议在中国进行任何商业行为的虚拟货币发布,仅为各位科普虚拟货币底层的本质原理,从而帮助大家认清楚为什么大多数虚拟货币可能存在巨大的泡沫,甚至被称为空气币。 代币可以将其理解为一个组织中的经济运转体系,它可以映射为是一个游戏中的积分、也可以是一家公司的股份、也可以是你宠物的所有权,dao的组织治理也离不开代币,所以如果它映射的实体是具备价值的,则代币也同样具备价值,但之所以虚拟货币有巨大的水分是因为其演变成了一种民间IPO,即某人想做一件事,可这件事还没影呢,就先写一份白皮书昭告天下,然后发一套代币让大家认购,承诺这件事做成了所有持有代币的均会获得等比例收益,最终收割一波卷钱跑路。 ERC20提供了...
怎么通过看懂etherscan了解NFT项目情况?
看懂etherscan是成为区块链老炮入门的必要条件。 etherscan区块链浏览器包含了交易、区块、钱包地址、智能合约等所有区块链公开数据,通过这些信息你可以明白谁在什么时候做了什么事情。 我们今天以doodles为案例,带领大家走一遍分析doodles数据的全流程。 首先打开etherscan官网,可以在输入框中输入地址进行检索。如果你知道doodles的地址可以直接粘贴进去,如果不知道可以打开opensea进入doodles的某个具体NFT主页后,在左侧的details中点击contract address跳转至etherscan详情页。详情页如下图所示,一般你只需要关注合约余额、合约交互记录和合约代码三部分就足以了解该项目的大部分信息。balance表示该地址所存放的ETH数额,我们在mint某个NFT项目的时候,缴纳的费用实际上是先到了NFT合约地址,然后再由项目方进行一步提款的动作将ETH转移至自己的个人地址,通过它你可以知道项目方赚了多少钱,是否进行了提款。 transactions存储了这个地址从诞生至今所有与智能合约交互的行为记录,通过它你可以知道项目方、用户...
公开我个人全部的投资、研究与写作的逻辑和方法论
注:本文内容较长,毫无保留总结我这一整年在投资、研究和写作上的全部经验,相信你看完后也许会有所帮助 其实之前已经在twitter上发过我的写作方法论和获取信源的渠道,这段时间跑了几个城市,密集的与机构、项目方、从业者、KOL等朋友交流分享后,这一整套思路更加清晰,有不少朋友经常会找我交流,与其一遍遍的聊,我认为用文字的方式将这些内容整理并公开出来是更有价值的 其实某种程度可以说这些内容是我在这个行业“吃饭的家伙”,毕竟我就是靠这些内容来做研究写作获取流量粉丝,以及投资一些确定性较高的标的获取收益,但是我个人觉得这些内容对大家是有帮助的,并且我目前也不做流量变现,以及更重要的和我接触过的朋友应该清楚我是有区块链信仰的,公开透明共识共建的理念也让我愿意将这些内容分享出来 我也会在文章末尾非常俗的放一个打赏码,毕竟写作不易,目前支撑我写下去的就是倒逼自己学习,以及帮助我认识更多的人,所以也从来没有在这方面有任何收入,如果你看完对你有所帮助,可以根据你的情况进行打赏,谢谢,当然要强调这些内容因人而异,大家不要生搬硬套,如果看完对你没有帮助也一笑了之即可 本文会分四部分:投资逻辑、信源渠道...
如何用5行代码发行一套虚拟货币?
经过前几篇文章,相信各位已经清楚如何发行NFT、NFT的本质是什么,以及NFT目前所面临的问题。 NFT的本质与虚拟货币没有很大差异,只是NFT是不可分割的非同质化代币,而虚拟货币则是可被分割的同质化代币,NFT遵循的主流协议是ERC721,虚拟货币遵守的则是ERC20,本文将为各位讲解如何从0到1发行一套虚拟货币,注意按照中国最高法自3月1日生效的解释,虚拟货币被归类为非法集资,本文不建议在中国进行任何商业行为的虚拟货币发布,仅为各位科普虚拟货币底层的本质原理,从而帮助大家认清楚为什么大多数虚拟货币可能存在巨大的泡沫,甚至被称为空气币。 代币可以将其理解为一个组织中的经济运转体系,它可以映射为是一个游戏中的积分、也可以是一家公司的股份、也可以是你宠物的所有权,dao的组织治理也离不开代币,所以如果它映射的实体是具备价值的,则代币也同样具备价值,但之所以虚拟货币有巨大的水分是因为其演变成了一种民间IPO,即某人想做一件事,可这件事还没影呢,就先写一份白皮书昭告天下,然后发一套代币让大家认购,承诺这件事做成了所有持有代币的均会获得等比例收益,最终收割一波卷钱跑路。 ERC20提供了...
怎么通过看懂etherscan了解NFT项目情况?
看懂etherscan是成为区块链老炮入门的必要条件。 etherscan区块链浏览器包含了交易、区块、钱包地址、智能合约等所有区块链公开数据,通过这些信息你可以明白谁在什么时候做了什么事情。 我们今天以doodles为案例,带领大家走一遍分析doodles数据的全流程。 首先打开etherscan官网,可以在输入框中输入地址进行检索。如果你知道doodles的地址可以直接粘贴进去,如果不知道可以打开opensea进入doodles的某个具体NFT主页后,在左侧的details中点击contract address跳转至etherscan详情页。详情页如下图所示,一般你只需要关注合约余额、合约交互记录和合约代码三部分就足以了解该项目的大部分信息。balance表示该地址所存放的ETH数额,我们在mint某个NFT项目的时候,缴纳的费用实际上是先到了NFT合约地址,然后再由项目方进行一步提款的动作将ETH转移至自己的个人地址,通过它你可以知道项目方赚了多少钱,是否进行了提款。 transactions存储了这个地址从诞生至今所有与智能合约交互的行为记录,通过它你可以知道项目方、用户...

Subscribe to Jason chen

Subscribe to Jason chen
Share Dialog
Share Dialog
>400 subscribers
>400 subscribers
写下这篇文章的原因是今天看到了最主流的协议之一ERC721改进版的ERC721A,该协议可以使得mint多个NFT时的gas费大量降低数倍,这是一个很棒的改进方式,但与此同时我感叹web3的世界一片蛮荒,因为它仅仅将之前需要for循环mint的方式改为了批量mint,这样一个看似极其微小甚至是理应如此的优化却可以解决掉每次mint多花费的数千元,可见web3的基础设施建设差到一片蛮荒,web3基建蕴含着大量的机会等待挖掘。
首先ERC721是什么?是当前月交易额达到35亿美金的NFT最常用的标准协议,它定义了一种以太坊不可分割的、具有唯一性的token交互和流通的接口规范,在该规范下NFT具有以下特性:
在该合约范围内唯一的token id(可以移步我之前的文章当你在买NFT时你买到的究竟是什么查看详情);
一个token id只能倍一个owner持有;
一个owner可以持有多个NFT;
目前绝大多数NFT的合约代码都遵循该协议,该协议中对于铸造NFT是调用_safeMint函数来实现,需要传入的参数有2个分别为“接收者地址”和“token id”。
如下图所示,表示给合约调用者msg.sender铸造一个编号为1的token。

那如果我允许用户一次可以mint多个NFT该如何处理?使用for循环遍历要mint的数量_mintAmount,并在第二个参数传入已经产生的NFT数量+1,已经产生的数量使用totalSupply方法来获取。

看到这里其实问题已经显现了,为什么这么麻烦需要遍历还要不断的调用获知已经产生的数量,其实这在web2中也没太大关系不过就是运行效率低一些,但在web3则会导致产生大量的gas费,web3的所有写入操作都需要gas费,意味着每循环一次就要缴纳一次gas费,如果用户要mint多个NFT,这个成本将非常高昂,尤其是新项目开启mint时会产生的gas war,gas费可能飙升数十倍。
要知道NFT月交易额已经达到35亿美金,每天有大量的项目在上线,作为最流行的标准协议,居然一直存在这个问题,每天会有多少web3的用户白白浪费了gas费,又会有多少web2的用户望着高昂的成本被阻挡在外面。
ERC721A提供了一种解决方案,将_safeMint的传入的第二个参数从token id变为mint数量,从而即使一次mint多个NFT交易费用也会和仅mint一个相差无几,具体效果可见下图:

我亲测后确实比使用传统的ERC721降低了10倍的gas费。

那这背后是如何实现进行批量mint的呢?我们先来看一下传统的ERC721中_safeMint的实现逻辑。
先进行来两次校验,分别是地址是否有效和token id是否已经存在,然后使用_beforeTokenTransfer进行转账,从0地址将token id转至对应地址。然后维护两个全局mapping分别为_balances和_owners将地址持有数量+1和将token id指向地址。

下图为ERC72A的_safeMint,其使用的数据结构假设每个用户mint的token id是连续的,所以每次批量mint都只会记录用户第一个mint出来的token id。
如ABC三个地址分别进行了mint,A拥有1、2、3号NFT,B拥有4、5号NFT,C只拥有6号,则相当于记录A1,2,3,B4,5,C6,2、3、5不会存储持有人,因为会认为A至B中间的2和3是A的,B至C中间的5是B的,而传统的ERC721则会将每个id都记录对应的持有人。

下图为ERC721A查询token id持有人的方法,可以看到先传入了一个id,对该id进行递减直到找到某个id持有人,于是就认为该持有人也是传入id的持有人。

确实要承认ERC721A会为广大用户减少大量gas费,避免gaswar,对于web3市场的繁荣是一大利好,从侧面也可以看出这样基础的、常用的功能却经历了如此之久才被更新,可见web3蕴藏的大量荒地等待被开拓,那么你们在参与web3浪潮中都遇到了什么认为不完美的地方呢?欢迎交流探讨,感兴趣可添加微信交流:cj350306878,请备注姓名、公司与来意,谢谢。
其他文章:

写下这篇文章的原因是今天看到了最主流的协议之一ERC721改进版的ERC721A,该协议可以使得mint多个NFT时的gas费大量降低数倍,这是一个很棒的改进方式,但与此同时我感叹web3的世界一片蛮荒,因为它仅仅将之前需要for循环mint的方式改为了批量mint,这样一个看似极其微小甚至是理应如此的优化却可以解决掉每次mint多花费的数千元,可见web3的基础设施建设差到一片蛮荒,web3基建蕴含着大量的机会等待挖掘。
首先ERC721是什么?是当前月交易额达到35亿美金的NFT最常用的标准协议,它定义了一种以太坊不可分割的、具有唯一性的token交互和流通的接口规范,在该规范下NFT具有以下特性:
在该合约范围内唯一的token id(可以移步我之前的文章当你在买NFT时你买到的究竟是什么查看详情);
一个token id只能倍一个owner持有;
一个owner可以持有多个NFT;
目前绝大多数NFT的合约代码都遵循该协议,该协议中对于铸造NFT是调用_safeMint函数来实现,需要传入的参数有2个分别为“接收者地址”和“token id”。
如下图所示,表示给合约调用者msg.sender铸造一个编号为1的token。

那如果我允许用户一次可以mint多个NFT该如何处理?使用for循环遍历要mint的数量_mintAmount,并在第二个参数传入已经产生的NFT数量+1,已经产生的数量使用totalSupply方法来获取。

看到这里其实问题已经显现了,为什么这么麻烦需要遍历还要不断的调用获知已经产生的数量,其实这在web2中也没太大关系不过就是运行效率低一些,但在web3则会导致产生大量的gas费,web3的所有写入操作都需要gas费,意味着每循环一次就要缴纳一次gas费,如果用户要mint多个NFT,这个成本将非常高昂,尤其是新项目开启mint时会产生的gas war,gas费可能飙升数十倍。
要知道NFT月交易额已经达到35亿美金,每天有大量的项目在上线,作为最流行的标准协议,居然一直存在这个问题,每天会有多少web3的用户白白浪费了gas费,又会有多少web2的用户望着高昂的成本被阻挡在外面。
ERC721A提供了一种解决方案,将_safeMint的传入的第二个参数从token id变为mint数量,从而即使一次mint多个NFT交易费用也会和仅mint一个相差无几,具体效果可见下图:

我亲测后确实比使用传统的ERC721降低了10倍的gas费。

那这背后是如何实现进行批量mint的呢?我们先来看一下传统的ERC721中_safeMint的实现逻辑。
先进行来两次校验,分别是地址是否有效和token id是否已经存在,然后使用_beforeTokenTransfer进行转账,从0地址将token id转至对应地址。然后维护两个全局mapping分别为_balances和_owners将地址持有数量+1和将token id指向地址。

下图为ERC72A的_safeMint,其使用的数据结构假设每个用户mint的token id是连续的,所以每次批量mint都只会记录用户第一个mint出来的token id。
如ABC三个地址分别进行了mint,A拥有1、2、3号NFT,B拥有4、5号NFT,C只拥有6号,则相当于记录A1,2,3,B4,5,C6,2、3、5不会存储持有人,因为会认为A至B中间的2和3是A的,B至C中间的5是B的,而传统的ERC721则会将每个id都记录对应的持有人。

下图为ERC721A查询token id持有人的方法,可以看到先传入了一个id,对该id进行递减直到找到某个id持有人,于是就认为该持有人也是传入id的持有人。

确实要承认ERC721A会为广大用户减少大量gas费,避免gaswar,对于web3市场的繁荣是一大利好,从侧面也可以看出这样基础的、常用的功能却经历了如此之久才被更新,可见web3蕴藏的大量荒地等待被开拓,那么你们在参与web3浪潮中都遇到了什么认为不完美的地方呢?欢迎交流探讨,感兴趣可添加微信交流:cj350306878,请备注姓名、公司与来意,谢谢。
其他文章:

No activity yet