BOO:a16z:NFT新术,浅析「Sleep Minting」的与预防_LOR

原文来源:老雅痞

作为一个NFT收藏家,你应该关心链上的合约出处,NFT最真实的出处是直接从创造者的钱包或创造者拥有的智能合约中铸造出来的。然而,通过一些小技巧,有人可以使用一种被称为"SleepMinting"的技术来操纵NFT的创作者来源。

SleepMinting是指者直接将NFT铸造到一个著名的创作者的钱包,并从创作者的钱包中回收NFT。

这就造成了这样的假象:

(1)创作者自己真实地铸造了一个NFT;

(2)将该NFT发送给了一个子;

基于"链上"的出处,子可以声称他们拥有一个著名创作者铸造的NFT,并以更高的价值出售。

这在技术上是如何运作的?

首先,了解智能合约如何存储NFT的出处和所有权是至关重要的。任何人都可以使用ERC-721标准中的ownerOf(tokenId)函数查询NFT智能合约,以确定NFT的当前所有者是谁。你甚至可以通过改变eth_callRPC方法参数来查询特定区块编号的NFT所有者。然而,查看所有权变化的最简单方法是查看ERC-721传输事件日志。

BKEX Global支持Coin919网格交易:据BKEX Global公告,BKEX Global现已支持通过Coin919进行网格交易。

Coin919是一家专注于数字资产管理及量化交易的开放平台,成立于2017年6月,公司注册于塞舌尔。公司以服务数字资产投资者为己任,致力于打造一流的数字资产管理平台,公司将深耕数字货币和TOKEN市场,定位为数字资产“券商”(币商)平台,服务于数字货币投资和资管领域,建立用户和交易所、项目方之间的桥梁。参与方式请见官方公告。[2020/9/15]

我的a16zCrypto同事DarenMatsuoka在Twitter上写了一篇关于事件日志和它们如何工作的精彩文章。转移事件日志是由智能合约向外界发送的消息,包含关于NFT转移的细节。转移事件日志提供了一种有效的方式来检查NFT的来源。

Sleepminting

BKEX伯翰:手续费上涨和网络拥堵可能会迫使一部分投资者离场:2020年5月23日,由百团大战、节点咨询、金色财经主办,莱比特、算力360联合主办的百团大战矿业峰会·丰水期之战在成都开幕。

在会上,BKEX合伙人伯翰表示,2020年被誉为减产元年,对矿业生态和数字资产市场来说都注定是不平凡的一年。当减半遭遇疫情的时候,两个历史性机遇相互碰撞,过往市场经验不再具备参考性,尽管随着国内疫情的缓解。恐慌情绪逐渐被消化,市场再回暖,比特币还一度突破了1万,市场对减半行情期待有所回升。尽管5月20号减半后调整了挖矿难度,全网难度下调6%,单位算力收益较之前有所提高,手续费也有所增加,占到总奖励的比重由3个月前的1.22%,上涨到现在的26.75%,矿工的收益得到了一部分的提升,但手续费的上涨又会影响到交易体验,同时还意味着网络拥堵。双重因素可能会迫使一部分的投资者离场。

从长远来看,对币价的上涨是不利的,至于矿机,有45款老比特币矿机无法获利,面临淘汰,整个矿业市场在发生比较大的变化,市场规律会促使行业优胜劣汰。行业陷入了微型死亡螺旋:区块链奖励减半之后矿工会选择离场,离场之后算力会下降,出矿的间隔会增加,矿工获得的奖励会减少。[2020/5/23]

这是beeple的数百万美元的作品"First5000Days"在rarible上出售。看看截图,上面清楚地写着"创造者:

BKEX Global即将上线SNT、ENJ、MCO、DATA:据BKEX Global公告,BKEX Global将于2020年3月23日20:30(UTC+8)上线SNT、ENJ、MCO、DATA,并开放SNT/USDT,ENJ/USDT,MCO/USDT,DATA/BTC,DATA/ETH多个交易对,同步开启“你交易,我买单”活动,免以上交易对交易手续费。

SNT、ENJ、MCO、DATA均为ERC20代币,于3月22日15:00开放充值。[2020/3/22]

但这是个局。它的创造者MonsieurPersonne,也自称是NFTs的Banksy,故意用beeple的名字铸造了这幅作品,他使用了一种叫做sleepminting的技术。那么他是如何做到的呢?

基础知识

NFTs是使用ERC-721智能合约创建的,他们把NFTs的所有权记录作为一个列表。一个地址和一个作品的序列号组成一个对。像这样。

Alice:1

Booble:2

Malory:3

成交后,Alice可以通过以下方式将她的NFT转让给Booble。

转让1:Alice==>Booble

现在列表更新如下:

Alice:

Booble:2,1

Malory:3

在以太坊,我们用地址名字来识别,而且我们需要签署转账来授权。但是在这篇文章提供的例子中,我将使用明确的名字来简化解释。

现在,通常开发者以合理的方式实现ERC-721合约。Alice只有在她拥有一个NFT并能提供有效签名的情况下才可以转让。

ERC-721标准只是一个社会契约,它定义了一个允许艺术平台互操作的接口。只要合同的接口与ERC-721合同的接口相匹配,任何机器都会认为它是有效的。

但是,正如我们现在所看到的,这可能会导致以太坊上的NFTs出处出现安全问题,它是可以被篡改的。

正如我所说,任何合理的ERC-721合约都会允许矿工只为自己造币,并且只转让他们拥有的碎片。

但是,假设我们定制了我们的ERC-721合约,使我们可以向其他账户铸造。假设我们调整了转让功能,使我们的账户在某些情况下,也可以转让另一个人的NFT。那么,我们就可以建立一个允许我们sleepmint的合约。

举例:作为攻击者Malory,我们给Booble铸造一个序列号为1的作品。

mint1:address(0)=>Booble(由Malory执行)

现在我们的配对看起来如下:

Alice:

Booble:1

Malory:

然后,由于Malory已经调整了合同,将序列号为1的作品从Booble的账户转移到任何其他账户,她可以在像rarible这样的NFT平台上提供出售。

由于她从地址(0)到Booble的铸币为"创造者--Booble"被显示出来。

一旦Malory成功了一个买家,她就会收到她的"Ethers",并将假冒作品卖给买家。

转让1:Booble=>买方。

更新后的所有权记录现在是这样的。

Alice:

Booble:

Malory:

Buyer:1

就这样,Malory成功地篡改了NFT的创作出处记录,以高于其价值的价格出售了她的作品。

具体细节:

仔细查看rarible和Etherscan的信息,我们会发现这更像是一个接口问题,而不是一个安全漏洞。没有人能够进入beeple的账户。

另外,当仔细看一下交易记录时,可以发现子的手法:

伪造的mint交易

伪造的转账交易

对于mint交易,我们可以看到Etherscan显示两个"From"字段。一个是msg.sender发送的交易,另一个是说明NFT的发件人。

对于交易的发件人字段,即msg.sender,它不能被人为操纵,因为它需要发件人的私钥的有效签名。然而,对“TokensTransferred”的字段的授权受制于智能合约的漏洞,因此,可能会人为操纵。

简单地说,子可以对“TokensTransferred”字段进行任意修改。

因此,我们必须检查From和TokensTransferred是否都与beeple的正确地址相符。如果不是,那就是假的。

这种攻击它与"rugpull"类似,有人认为区块链使web2问题都消失了,因为每一个数据都是经过认证和检查授权的。但事实是,这些问题并没有消失。它们只是转移到了别的地方。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

大币网

[0:15ms0-8:123ms