编者按:本文来自DOSNetwork,作者:nrek,Odaily星球日报经授权发布。熟悉以太坊代币经济和ICO的同学一定对ERC20这个词不陌生,市面上几乎绝大部分基于以太坊智能合约的项目都宣称自己的代币是ERC20代币,那么究竟什么是ERC20,为什么1个以太坊地址能够作为所有ERC20代币的钱包地址呢?ERC20(EthereumRequestforComment20)是社区在2015年底提出的一项以太坊改进计划(EIP),旨在给智能合约的实现提供一个标准,让智能合约能够像那些有自己区块链的原生数字货币(比如比特币、以太币)一样具有发送、转账、查询余额等等类似功能。凡是实现了这套标准的智能合约都可称为ERC20代币。发行基于ERC20标准的代币变得很简单,基本不超过10分钟,50行代码。ERC20让代币间变得互相兼容,也增强了代币的交易量和流动性。正是得益于ERC20标准的出现,基于以太坊的去中心化应用开始百花齐放。言归正传,ERC20标准其实很简单,一共定义了以下5个函数接口和2个状态接口(event):下面将结合etherscan.io和EtherDelta上的具体例子(EETHtoken,bitcointalk.org上一个恶作剧空投币)来更直观的解释:totalSupply和balanceOf(address)
Infinite Block已获得许可成为虚拟资产服务提供商:金色财经报道,区块链金融科技公司Infinite Block宣布已完成VASP报告及验收,成为第 37 家虚拟资产服务提供商 (VASP)。VASP是指根据《特定金融信息法》(特别法)专门从事虚拟资产销售、购买、交换、转让、存储、管理、经纪、中介等虚拟资产业务的企业。[2023/8/9 21:33:32]
首先这两个接口很简单,分别是该币的发行总量和给定地址的余额,注意上图中decimals(8)代表它支持的精度到小数点后8位,所以该地址实际余额是317047792083/10^8=3170.4;同时注意上图中allowance一项的查询结果为0,将会在下文进行比较和说明。transfer(address_to,uint256_value)
Crypto.com地址将1350万枚USDC转至Circle、7500枚ETH转至0xd58开头地址:7月6日消息,据MistTrack监测,今日0xCFF开头的Crypto.com地址将13,500,000枚USDC转至Circle;将7500枚ETH转至0xd58开头地址,之后预计将被转移到0xef2开头的币安地址。[2023/7/6 22:21:20]
这个也比较简单,表示把当前调用该函数用户的_value数量的代币转移给_to这个用户。当然具体实现时需要进行边界条件检查以防止溢出和其它安全问题,现在一般都选择继承自OpenZepplin的SafeMath.sol和StandardToken.sol库。transferFrom,approve,allowance
BTCStudy内容贡献者曾汨:闪电网络是比特币未来重要发展方向之一:金色财经报道,在由比特大陆联合金色财经举办的《比特币诞生14周年》主题活动上,BTCStudy内容贡献者曾汨表示,“Miniscript作为一种更加智能的比特币脚本语言,降低了普通用户编写复杂脚本的门槛,可以加强不同钱包之间的可组合性。当前比特币社区里面一些核心钱包都在往支持Miniscript的方向努力。闪电网络是比特币未来重要发展方向之一,对于比特币成为更广泛的支付系统,取得大规模采用来说至关重要。当前闪电网络增长迅速,可以较为真实地反应比特币的实际采用情况。”[2023/1/3 22:23:19]
这三个接口比较有意思,transferFrom(address_from,address_to,uint256_value)接口并不冗余,它是专门给第三方智能合约设计的,表示允许该函数的调用者msg.sender(通常是另一个已授权的智能合约)从_from账户转移_value个代币到_to账户,同时也会触发Transfer()这个事件在区块链上留下log以便客户端监听。而在调用transferFrom()之前需要让用户先调用approve(address_spender,uint256_value)函数,表示用户授权_spender(即调用transferFrom()的第三方智能合约)从你的账户最多转移_value个代币。而allowance(address_owner,address_spender)返回_owner仍然允许_spender转移的代币个数。如果你在EtherDelta进行过交易就会很容易理解这三个函数的意义:在EtherDelta交易的第一步是需要向EtherDelta合约“充值”:如果你有所留意,当点击”Deposit”后Metamask会让你确认两次:第一次确认的地址0xf152Fc...99c3是EETHcontract的地址,这实际上就是调用了approve()函数,允许EtherDalta合约从该账户转走最多3170.478个代币。我们先不点击第二个确认,这时再来观察一下etherscan.io有什么变化:可以看到此时余额不变,但是授权EtherDelta挪用的额度变了。这时再点击第二个确认:注意第二次确认的地址0x8d12A1...6819是EtherDelta合约的地址,此时调用了transferFrom()函数,之后再观察下etherscan.io和EtherDelta的变化如下:在etherscan看到此时用户账户余额已经清零了,而且允许EtherDelta再挪用的额度也清零,同时EtherDelta账户显示了应该有的3170.478个EETH。安全问题
a16z合伙人:有很多项目在未来12个月内推出:金色财经报道,a16z合伙人Chris Dixon在播客采访中表示,对明年推出的web3游戏感到兴奋,在未来12个月内,有很多的项目推出。Dixon描述说,在过去的三年中,大多数开发web3游戏的团队都是“游戏爱好者的加密人”。但现在,暴雪、Riot和Valve等“顶级游戏团队”“决定要么制作包含nft的传统游戏,要么创造完全的链上游戏”。
a16z在5月推出了一个6亿美元的基金,以建立web3游戏产业。(the block)[2022/12/20 21:55:14]
值得一提的是ERC20的approve()函数存在安全隐患(front-runningattack),并且该问题至今没有完全解决。可行的攻击场景如下:Alice授权Bob可以挪用100个她的TokenA.(tx1)tx1被矿工确认后,Alice想把授权上限改为50个TokenA.(tx2)Bob探测到tx1已经确认,同时tx2还在pending状态,他给高额gas并调用transferFrom()函数直接在tx2被确认前从Alice账户转移了100个TokenA.(tx3)tx3先于tx2被确认,之后不久tx2也被确认,在Alice还没反应过来之前Bob立马再次调用transferFrom()又从Alice那转移了50个TokenA。这样Bob一共从Alice那转移了150个TokenA,虽然Alice的本意是只希望授权50个给Bob挪用。有兴趣的可以参见https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729中具体讨论。虽然社区有人提议如果需要重新设置允许值的话,首先在客户端主动重置允许值为0,等待这笔交易被确认,再检查此期间是否发生过代币转移,最后再设置新的允许值。但是首先这是取决于客户端的实现行为,并不在ERC20标准里;其次哪怕客户端实现了这个方案,上文所述的front-running攻击仍然存在,只是让人们有意识的去多一步检测并发现可能的问题,并没有从根本上解决问题。不过也不用太担心,如今实现了ERC20标准的合约千千万,大家都有这问题。而且正如EIPissue里一个评论所提到的,一般用户调用approve(_spender,_value)的场景多是在信任_spender的前提下才会这么调用,而_spender多为交易所的智能合约,一般不会故意想要黑用户的币。然而这个历史遗留问题估计要等到下一版标准出来才有望彻底解决了。
拉丁格拉美奖与Web3音乐平台OneOf合作首发NFT:金色财经报道,第64届拉丁格拉美奖与Web3音乐平台OneOf合作,双方签订了一份为期三年的合约并发布首个NFT系列,每个NFT都将与获奖音乐相关,粉丝也将参与到块拉丁格莱美奖,相关NFT将在11月18日颁奖典礼之前持续投放。另据Latin Recording Academy透露,Binance是其官方加密货币交易平台。(cryptotimes)[2022/10/5 18:39:57]
编者按:本文来自橙皮书,作者:orangefans,Odaily星球日报经授权发布。11月初,我在布拉格参加了一场很不一样的区块链大会,Devcon4,类似苹果的WWDC,以太坊生态的参与者基本.
1900/1/1 0:00:00Coindesk近日披露了Coinbase采用一项不同寻常且代价高昂的福利政策,以招募和留住员工。自今年夏天以来,Coinbase就在悄悄地为员工提供一种冷冻卵子的福利.
1900/1/1 0:00:00国内三大矿商还在港交所等待临门一脚时,大洋彼岸的另一家矿商Bitfury也在IPO的门前排起了队.
1900/1/1 0:00:00据Cointelegraph消息,10月21日,俄罗斯媒体Vedomosti获得俄罗斯关于加密货币和区块链监管的新版草案——《数字金融资产法案》.
1900/1/1 0:00:00编者按:本文来自微信公众号DappReview,作者:DR小伙伴,星球日报经授权转发。这不是民众第一次希望代码成为「法律」。1787年,美国联邦宪法正式颁布.
1900/1/1 0:00:003.对于三个角:Decentralization、Scalabilit、Security,作者给出了明确的定义.
1900/1/1 0:00:00