皇冠体育寻求亚洲战略合作伙伴,皇冠代理招募中,皇冠平台开放会员注册、充值、提现、电脑版下载、APP下载。

首页科技正文

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析

admin2021-01-0318

在此,CertiK郑重声明:CertiK团队从未对 "Keep3rLink" 项目举行过任何审计。

同日,CertiK平安研究团队发现Keep3r项目存在中央化平安风险。

项目拥有者拥有过大权限,可将允许奖励的限制提高,从而可以向随便参与者发送随便数额的奖励且可向随便地址铸造随便数目代币。 

项目风险及相关细节

Keep3rV1:

● 代码地址:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3r.sol

● 部署地址:

https://etherscan.io/address/0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44

Keep3rV1Helper:

● 代码地址:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3rV1Helper.sol

● 部署地址:

https://etherscan.io/address/0x93747c4260e64507a213b4016e1d435c9928617f

如下图图一所示,Keep3r项目的Keep3rV1智能合约中界说了两个角色:governance与pendingGovernance。

1178行setGovernance()函数允许当前governance角色将pendingGovernance角色设定为随便给定地址_governance。

同时在1186行acceptGovernance()函数中,当前pendingGovernance可以将自己授权为governance角色。

因此从逻辑上governance角色与pendingGovernance角色可以循环授权,且没有任何event事宜可以提醒投资者governance角色与pendingGovernance角色的调换。

此时,项目拥有者可以随意设置拥有两个角色的地址。

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第1张

一旦拥有governance角色,拥有角色的地址可以行使图一中1169行setKeep3rHelper()函数对当前KPRH指向的Keep3rHelper智能合约举行修改。

修改之后图二中1076行KPRH.getQuoteLimit()的详细实现就也极有可能被修改,接下来会返回给挪用该函数的Keep3rV1合约差别的返回值。

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第2张

项目拥有者若是思量发动攻击,由于拥有governance角色,因此可以首先挪用图三中addKPRCredit()函数。

,

欧博allbet网址

欢迎进入欧博allbet网址(Allbet Game):www.aLLbetgame.us,欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

在916行对某一个job(假设job的地址为ADDR_A, 被项目拥有者掌握)的地址给与随便数目的信用数目credit(假设给与的credit数目为CREDIT_A, 关联于ADDR_A)。

之后可以部署一个新的Keep3rHelper智能合约,然后在该智能合约中的将getQuoteLimit方式界说为返回uint类型变量的最大值。

然后项目拥有者可以使用ADDR_A的地址来挪用图1中setKeep3rHelper()函数,将KPRH值指向给定的Keep3rHelper智能合约。

最终挪用图二中workReceipt()函数,由于1076行代码由于KPRH.getQuoteLimit()函数被指定返回最大值的缘故肯定通过。

在1077行中由于项目拥有者使用ADDR_A的地址来举行的挪用,其在该智能合约中拥有的信用数目为CREDIT_A,因此amount的数目可以为略小于CREDIT_A的随便值。

当通过1077行之后,amount的奖励数目被给与keeper的地址。

最终该keeper可以挪用条约内部的ERC20的转移函数,将获得的奖励转移到自己给定的地址中,完成攻击行为。

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第3张

除了上文讲述的中央化风险破绽之外,图四中的mint()允许为governance角色的地址铸造随便数目的代币。

由于governance角色的地址可以通过图一中的setGovernance()函数以及acceptGovernance()举行设置。

也就代表着项目管理者只要拥有governanvce角色,即可以通过重设governance角色地址的方式,向随便地址铸造随便数目的代币。

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第4张

通过查询etherscan上Keep3rV1智能合约的数据,图五显示Keep3rV1拥有者地址为0x2d407ddb06311396fe14d4b49da5f0471447d45c。

同时,如图六显示,北京时间11月20日早11点governance角色的地址也为0x2d407ddb06311396fe14d4b49da5f0471447d45c。

可以得知项目拥有者拥有governance角色权限,因此有权限可以通过上述中央化破绽举行攻击并赢利。

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第5张

电银付app安装教程(dianyinzhifu.com):首发 | Keep3r项目中央化风险破绽剖析 第6张

总结

区块链作为时代颠覆性的核心技术,也已在各个领域得到了普遍的应用,隐藏在收益和利好之下的平安隐患也不应被忽视。

平安审计现在已经是高质量项目的标配。

若项目没有被审计,对于用户来说,投资行为则要格外稳重;对于项目方来说,则需要准备好相关资料并寻找专业而且声誉好的审计公司举行审计。

若项目被审计过,则需只管领会审计公司靠山以及其审计报告中的各项指标。

CertiK接纳形式化验证工具来证实智能合约可靠性,公司内部审计专家将行使包罗形式化验证在内的多种软件测试方式,连系一流的白帽黑客团队提供专业渗透测试,从而确保项目从前端到智能合约整体的平安性。

近期,有部门项目方假借CertiK的名义公布不实审计报告。

网友评论