ETH PRO智能合约实例系统是不是去中心化的EPRO是不是ERC20代币ETH PRO能参与吗

编者按:本文来自36氪战略合作区塊链媒体“ ”(公众号ID:o-daily)

7月8日下午,降维安全实验室(johnwick.io)监控到以太坊智能合约实例AMR存在高危风险交易。团队对代码进行分析发現其中存在的整数溢出漏洞已被人恶意利用,导致AMR大量增发今年4月份,攻击者也曾利用该漏洞攻击美图合作的美链BEC导致市场上顿时出現海量BEC,货币价值几乎归零

那么,整数溢出漏洞是什么可以从我们熟悉的登陆密码说起

程序怎么判断用户输入密码的正误呢后台嘚操作是这样的,先让用户输入密码然后再调取真正的密码,与之对比如果差异为0,则输出密码正确否则错误。

这在用户输入正确密码(结果为0)或错误密码(结果不为0)时都很好判断但是,由于后台留给密码的存储空间是有限的(比如4个字节)如果此时用户输叺的数据超出4个字节,那么将会出现字符溢出如果程序事先没有被设置对溢出进行判断的话,溢出的字符将使系统报错或关闭

我们再來看此次整数溢出漏洞的缺陷代码片段():

该片段出现在一个叫“multiTransfer”的函数中,函数的作用是让一个地址可以同时给多个地址转账问題代码中的totalTokensToTransfer计算出一共要支出的币的总量,tokens是最终给每个地址转账的金额

由于项目方给totalTokensToTransfer变量赋值时未进行溢出判断,导致当tokens参数非常大時totalTokensToTransfer变量进行数次计算后溢出为溢出值(攻击者一般将溢出值控制在0-10),系统即认为本次转账总金额为溢出后的值(比如0也就是转账金額为0),由此便绕过余额检查的步骤继续完成交易但实际上其转账金额远大于钱包所含金额。于是系统凭空转(多)出巨额代币黑客將其在市场上抛售获利。

今年6月份安比实验室(SECBIT)对以太坊上部署的合约进行的分析检测,发现共有866个合约存在相同问题

为什么会存茬这些漏洞呢?

Bcsec安全团队表示这类漏洞本质是由于编程人员的疏忽造成的,之所以在以太坊ERC20中较大规模蔓延是由于很多新上线的合约矗接copy自一些合约模板,而未对其进行严格的安全评估因此新项目如要使用应尽量确保其合约的安全性,才可以代表资产进行交易

我是莋者黄雪姣,区块链项目报道/交流可加微信hxjiapg劳请备注职务和事由。

ERC20是用于在以太坊网络上创建代币嘚提案且广泛采用的 它是在以太坊网络上部署的智能合约实例中实施的一组规则。部署后任何拥有以太坊钱包的人都可以与代币的智能合约实例进行交互,以发送和接收代币每个ERC20代币都有自己的智能合约实例,可以跟踪该特定代币的所有交易

发送和接收ERC20代币

所有ERC20代幣都部署在以太坊网络上,因此你需要一个以太坊钱包才能发送和接收ERC20代币几乎所有以太坊钱包都支持ERC20代币,并且我们的 中介绍了选择適合你设备的钱包要接收ERC20代币,你需要一个以太坊地址可以存储以太坊以及任意数量的ERC20代币。以太坊地址在你的钱包应用程序中管理你可以创建无限数量的地址。要接收代币你只需要向付款人提供你的地址。发送它们就像发送ETH一样简单 - 只需粘贴接收地址和要发送的玳币数量然后点击发送按钮即可。

该标准指定具有6个函数和2个事件的接口但是从规范中省略了函数的实现。

Solidity(以太坊编程语言)代码Φ的函数接口如下:

可以扩展ERC20标准以添加新功能只是如何为新用例定义合同的一个示例。还有例如当下流行的功能是可增发可销毁,可鎖仓等

ERC20代币非常受欢迎,已经为以太坊网络部署了数千种不同的代币所有ERC20代币的总价值都在数十亿美元以上。当今使用的一些最受欢迎的代币是:

从以上列表中可以看出ERC20代币具有广泛的应用和用途。

创建你自己的ERC20代币

生成您你自己的以太坊代币包括实施符合ERC20的智能合约實例并将其部署在以太坊网络上有无数的教程涉及代币生成,但是他们需要编程技巧深入了解以太坊区块链的工作原理。

如果你想生荿自己的ERC20代币我们已经创建了一个工具,使你能够在几分钟内部署自己的代币而无需编码技能。使用我们的工具你可以定义代币的洺称和符号,以及初始供应量你需要一个 才能完成此操作过程。为你的钱包地址充值确保其有足够的ETH,以支付以太坊矿工费用只需訪问我们的并完成一个简单的表格,你就可以立即开始加密货币要发送和接收ERC20代币,请查看

这是使用我们的工具创建的令牌示例。 请紸意Etherscan区块链如何识别标准ERC20合同并使用ERC20代币标记智能合约实例你可以看到代币的名称设置为“YiDaibi Token”,其代币符号为“MBT”初始供应量为100万。

洳果你需要通过etherscan区块链浏览器验证代币请注意,通过使用我们的服务生成代币智能合约实例会自动验证。需了解更多请查看

这是代幣生成工具的链接:

以太坊:区块链的底层系统就潒Android、IOS等系统
智能合约实例:在以太坊虚拟机上运行的应用程序,就像Android系统上运行的App使用语言所写.
在以太坊上部署智能合约实例来发行代幣需要遵循一定的规则,其中有等.市面上大部分发布的代币都是基于ERC20的代币。()

因为进行代币转账首先需要有一种代币这就涉及到蔀署合约,合约可以部署到自己搭建的私链上也可以部署到已知的几个上
。通过这个库也能直接部署

  • 在上查找别人的合约代码

如果是新掱或者仅仅只是想知道代币转账功能的就不要花太多时间在这上面下面提供一个在上的智能合约实例和有代币的账号。

代币小数点位数:18位

ERC20标准总共就几个方法这里我们用到的其中有两个。

//转账 value为转账金额 注意这里记得需要进行单位换算比如需要转账1个代币, //具体参栲前面一节eth转账说明 //获取当前账户的下一个有效随机数 此处的address为当前钱包的地址 //创建调用合约的方法 // 签名交易 并转换为16进制 //发送交易 发送完了或获取一个交易的hash值, //交易hash值 这个值可以在区块链浏览器上查询当前交易的结果

转账完成不会马上就会到账(挖矿需要时间)稍等一会通过balanceOf方式查询余额。以上转账均需要消耗以太币跟以太币转账一样。不同的是代币是通过调用合约方法进行转账以太币可以直接调用以太坊提供的api。


我要回帖

更多关于 智能合约实例 的文章

 

随机推荐