ETH:使用工厂提高智能合约安全性

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

智能合约可以部署其他智能合约,通常称为工厂模式),让你不是创建一个合约跟踪很多事情,而是创建多个智能合约,每个合约只跟踪各个的事情。使用这种模式可以简化合约代码,减少某些类型的安全漏洞的影响。

在这篇文章中,我将带你了解一个例子,这个例子是基于最近的一次审计中发现的一个关键漏洞修改而来。如果使用了工厂模式,这个漏洞就不会那么严重了。

一个错误的智能合约

下面是一个智能合约,通过一个相当简单的接口来出售WETH。如果你有WETH,你只需要approve这个智能合约来出售你的代币,它将确保你得到正确的金额。只要批准了足够的代币,任何人都可以向你购买WETH。

合约采用提现模式向卖家交付出售所得的ETH,但合约作者却犯了严重错误,代码如下:

//技术上可以实现出售任何代币,但这个例子仅出售WETH。//因为这里不想关注价格

乌克兰数字转型部将使用Crystal Blockchain的区块链软件追踪可疑加密交易:金色财经报道,乌克兰数字转型部上周与BitFury的加密货币衍生公司Crystal Blockchain B.V.签署了一项协议,以启动虚拟资产监控计划。Crystal Blockchain行政总裁Marina Khaustova表示,该部官员将使用该公司的软件来追踪可疑的加密交易的来源[2020/7/25]

//从指定的seller购买WETH

历史上的今天丨马耳他公司注册局将使用区块链系统:2019年5月8日,马耳他公司注册局将在区块链驱动的系统上运行。据悉,公司注册处是一个公共登记处,包含新公司和现有公司的官方信息和文件。该机构此前属于马耳他金融服务管理局(MFSA),已于去年年底成为一个独立的实体。

2018年5月8日,Facebook将构建专注于区块链的团队,旨在解决隐私保护问题。Facebook高管戴维?马库斯(David Marcus)将接手这个致力于探索区块链技术的团队,该团队虽然不到12人,但将包括Instagram的工程副总裁James Everingham,以及Instagram的产品副总裁Kevin Weil。[2020/5/8]

//出售者调用,提取ETHfunctionwithdraw(uint256amount)external{require(amount<=balanceOf,"Insufficientfunds.");//Whoops!Forgotthis://balanceOf-=amount;(boolsuccess,)=msg

}

如果你想知道为什么代码使用

//不用再指定seller

functionwithdraw(uint256amount)external{require(msg

}

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/9798515.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?

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

链链资讯

抹茶交易所SDT:7、保证金

本文主要对什么是保证金交易,保证金交易制度、什么是起始/维持保证金、起始/维持保证金如何计算等内容做简要概述.

[0:0ms0-3:537ms