TOKE:智能合约后门揭秘:盗币的不只是黑客,“一键发币”平台暗藏后门

相信各位朋友对代币领域的“增发”这个概念已经不会陌生,比如泰达近期便在以太坊上频繁增发ERC20标准的USDT,由于这是一种增加代币流通量的行为,所以一直充满争议。当然,通常情况下,代币的增发行为是公开的,有据可查,所以我们还可以及时反应,甚至与相关项目方干涉沟通,但是如果这种“增发”是毫无记录的,甚至连项目方都不知道的呢?你可能会感到奇怪,竟然会有这样的咄咄怪事?是的,近期北京链安就发现了在合约中设置后门,暗地增发Token并窃取的恶劣行为。

近日,北京链安接到部分项目方反映,他们发布ERC20代币后,还没进一步向其它地址分发,就发现一些来源不明的代币在链上转账,即这些代币原始来源并非其合约创建时分配给官方地址的Token。同时,项目方也发现这些Token并非同名创建的其它合约产生的同名币或“假币”,更像是一种并非由其发起的“增发”。

例如,一项目方便反映,他们观察到以太坊链上其代币HJL交易出现异常增发的情况,一些Token似乎在以太坊网络上凭空产生,没有生成记录,说好的区块链“不可篡改可追溯”呢?

智能合约审计平台Sherlock完成400万美元种子轮融资,Archetype领投:9月14日消息,智能合约审计平台Sherlock完成400万美元种子轮融资,Archetype领投,Spartan、Lattice、CoinFund等参投。新资金将用于组建团队并为Sherlock平台的外部审计提供资金。(CoinDesk)[2022/9/14 13:30:09]

该项目地址如下:https://cn.etherscan.com/token/0xf6CBA5729E9137149A278db075b53f429aa31C54

这是增发造成的吗?从真正意义上的增发来说,我们认为应该是相关项目发起方或授权方主动发起了一种增加Token供应量的行为,正常情况下,代币的增发有以下几个条件:

智能合约支持增发代币。

增发代币的权限通常由智能合约owner账户持有。

这种情况下,我们应该在链上看到增发的记录,比如ERC20USDT的增发就会有类似这样的记录:

工信部陈晓华:智能合约的合理运用将促进数字人民币业务模式创新:工信部工业互联网区块链重大项目评审专家、中国移动通信联合会区块链专业委员会主任委员兼首席数字经济学家陈晓华表示,智能合约的合理运用将大大促进数字人民币业务模式的创新。数字人民币通过智能合约具有可编程性,使数字人民币在合规的前提下,根据交易双方商定的条件、灵活用于多种环境和关系。越来越多的城商行、农商行等中小银行加速入局数字人民币应用试点,将为数字人民币试点推进提供更多的测试场景,将促使各地区数字人民币的发行与清算效率进一步优化。(证券日报)[2021/9/1 22:50:55]

但是,据举报问题的项目方反映,它们并未向0xfa6dd2b9976d67852cc4b3180f1ef8692c4ad87c转账,这个地址似乎有Token“从天而降”。

可以看到,上图记录中,合约创建后产生了4300万枚HJL,转账到0xfee0c开头地址,接着该地址转入0x2ebecf开头地址,接着我们看到了0xfa6dd2开头地址的转账,显然这个地址此前并未获得官方创建的相关Token。

诺贝尔奖获得者:智能合约在长期关系中应用有限:金色财经报道,诺贝尔经济学奖得主奥利弗·哈特(Oliver Hart)在接受采访时认为,智能合约在人以及经济的长期关系中应用有限。他表示,智能合约不适用于“长期”合约,也无法预测经济和社会关系。哈特解释道,长期的关系需要多方的推理和协议,而不是依赖于刻板的既定合约。他说,他最终希望技术能够解决合约不完整的问题,但预计“我们还有一段路要走”。[2020/9/28]

于是,我们进一步查看了该Token的合约:https://cn.etherscan.com/address/0xf6CBA5729E9137149A278db075b53f429aa31C54#contracts

终于,我们发现了玄机所在,智能合约在部署到链上时,在正常发布参数_totalSupply设置供应量的Token的同时,还向地址0xfA6DD2B9976d67852Cc4b3180f1Ef8692c4aD87c的账户上充值了总供应量1%的代币,并且这1%的代币并未计入总供应量中,就HJL而言,相当于实际发行了43000000+43000000*1%=43000000+430000=43430000HJL,而多出来的这些HJL似乎被这个地址给“偷”走了。

数据:锁定在智能合约中的MKR供应占比已创下16个月新高:Glassnode数据显示,锁定在智能合约中的MKR供应占比已创下16个月以来的新高,目前为58.287%.[2020/9/21]

从地址0xfa6dd2b9976d67852cc4b3180f1ef8692c4ad87c关于HJL的转账来看,它确实给人一种凭空获得HJL的感觉,并转出了330000HJL。

该地址内还剩下10万枚HJL,和转出的HJL加起来总额为43万HJL,符合合约中的操作。

我们进一步参看了该地址的转账记录,发现有不止一个此类“天降横财”式Token,都是未见转入和合约调用,该地址直接向外转出这些Token

动态 | 西班牙银行将测试智能合约的可编程支付:萨巴德尔银行、桑坦德银行、Bankia银行、BBVA银行和Caixabank已经启动概念验证测试,以部署银行间智能支付平台,使区块链网络能够执行支付。该倡议由管理西班牙支付系统(SNCE)的Iberpay公司协调,旨在促进从区块链网络中部署的智能合约启动即时信贷转移。Iberpay表示,利用该技术开发的任何一种商业案例都可以执行和编程自动支付——从签订合同到交付货物。该测试包括一个基于部署在区块链网络中的虚拟业务案例的试点项目,该项目已经实施,每个参与者管理六个分布式节点。(Finextra)[2019/12/20]

这些项目的合约是不是也遇到类似问题呢?我们查询了PhantomMatter(PHTM2)的合约:https://cn.etherscan.com/address/0xbcc4bcc7577e4042d45ae189ba6c0b264d7bab34#code

不出意外的,我们看到了同样的代码,同样的地址,同样的百分之一增发式“偷取”策略,由此可见这实际上是相关合约留有后门,但是项目方表示并不知情,那么他们又是如何中招的呢。

与项目方的沟通进一步了解到,其发币合约并非自己开发,而是在一个名为“易代币”的发币平台完成,接下来的问题就是在使用这个平台的过程中:

平台的模板是否带有这样的代码。

如果带有这样的代码,是否这本是其功能设置的一部分,或者是客户支付费用的既定方式。

如果有这样的功能和设置,是否明示给客户。

于是,我们在测试网上进行了测试,在网站上,用户首先选择发币类型。

接着输入名称、符号、供应量等信息。

最后是支付相应的创建交易费用,然后确认就可以了,全程没有任何地方提及会有最终合约代码中产生的多发1%代币并转到其指定地址的行为,显然这并不是一个其既有的面向客户的功能或者设置。

北京链安已经在测试网络使用了该代币生成网站并部署合约,从合约代码来看,也看到了同样的多发Token并窃取的行为,接收地址也是0xfa6dd2b9976d67852cc4b3180f1ef8692c4ad87c。由此可见,该网站以代币发布平台为名,在为客户提供代币发布服务的同时,在客户不知情的情况下获得代币,一旦相关代币可以交易流通,他们将可以将其卖出获益。

就0xfa6dd2b9976d67852cc4b3180f1ef8692c4ad87c地址关联的项目而言,主要有:

HJL(HJL)

Moneyhome(MH)

PhantomMatter(PHTM2)

CRS(CRS)

LibraPi(LP)

SMART(SMART)

UCC(UC)

其中部分Token已经在交易所交易,我们也看到了涉事地址向相关交易所转账的记录,可见其模式便是暗中多发1%的Token,待其中有币上所便跟进卖出获利。

整个过程,我们发现项目方处于一种极不安全的“裸奔”状态,在使用所谓的发币平台的时候,整个过程对它们是黑盒的,它们看到的只是些设置选项,根本不知道中间的猫腻。与此同时,尽管代码部署并开验证后会开源,但是使用这样的平台的项目方通常技术能力有限,不会去检查其中的缺陷,而目前很多中小交易所上币的时候也不会对项目方做代码审计要求,这就造成这一代码里如此“张扬”的后门通过层层关卡而未被及时堵截。

在这里,北京链安提醒业内各方,对于涉及智能合约的开发请遵循相应的安全原则,如涉及外包开发请在对其能力评估的同时注意道德风险的评估。最后,智能合约的安全审计环节必不可少,请及时联系专业的安全机构进行相应的安全检测。

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

金星链

[0:0ms0-1:592ms