北京时间2020年11月20日, Telegram社群出现某些截图声称Keep3rLink接受了CertiK的审计服务。
同日,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角色。
前Coinbase CTO:若BTC吞噬部分美元供应,美联储或会对其更警惕:前Coinbase首席技术官Balaji Srinivasan正在研究美国政府对比特币发起监管攻击的可能性。他在接受采访时谈到,如果比特币成功地吞噬了相当一部分美元供应,美联储可能会对比特币越来越警惕。Srinivasan从三个方面分析了这个问题。首先,与五年前相比,美国政府官员对比特币及其用例有了更好的了解。其次他继续引用政府无能和比特币的去中心化本质作为保护加密货币的因素。最后,Srinivasan承认,如果比特币达到10万美元或100万美元大关,它可能会面临一些政府的反对,但大规模采用可能会保证其生存。(The Daily Hodl)[2020/11/7 11:53:33]
因此从逻辑上governance角色与pendingGovernance角色可以循环授权,且没有任何event事件可以提醒投资者governance角色与pendingGovernance角色的变更。
此时,项目拥有者可以随意设置拥有两个角色的地址。
图一:governance、pendingGovernance角色以及KPRH设置函数setKeep3rHelper()
一旦拥有governance角色,拥有角色的地址可以利用图一中1169行setKeep3rHelper()函数对当前KPRH指向的Keep3rHelper智能合约进行修改。
修改之后图二中1076行KPRH.getQuoteLimit()的具体实现就也极有可能被修改,接下来会返回给调用该函数的Keep3rV1合约不同的返回值。
图二:对某个用户keeper进行奖励的函数workReceipt()
项目拥有者如果考虑发动攻击,由于拥有governance角色,因此可以首先调用图三中addKPRCredit()函数。
在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的转移函数,将获得的奖励转移到自己给定的地址中,完成攻击行为。
图三:对某个job增加信用数目credit的函数addKPRCredit()
除了上文讲述的中心化风险漏洞之外,图四中的mint()允许为governance角色的地址铸造任意数目的代币。
由于governance角色的地址可以通过图一中的setGovernance()函数以及acceptGovernance()进行设置。
也就代表着项目管理者只要拥有governanvce角色,即可以通过重设governance角色地址的方式,向任意地址铸造任意数目的代币。
图四:允许governance角色随意铸造代币的函数mint()
通过查询etherscan上Keep3rV1智能合约的数据,图五显示Keep3rV1拥有者地址为0x2d407ddb06311396fe14d4b49da5f0471447d45c。
同时,如图六显示,北京时间11月20日早11点governance角色的地址也为0x2d407ddb06311396fe14d4b49da5f0471447d45c。
可以得知项目拥有者拥有governance角色权限,因此有权限可以通过上述中心化漏洞进行攻击并获利。
图五:Keep3rV1智能合约拥有者等相关信息
图六:governance角色地址
区块链作为时代颠覆性的核心技术,也已在各个领域得到了广泛的应用,隐藏在收益和利好之下的安全隐患也不应被忽视。
安全审计现在已经是高质量项目的标配。
若项目没有被审计,对于用户来说,投资行为则要格外慎重;对于项目方来说,则需要准备好相关资料并寻找专业并且声誉好的审计公司进行审计。
若项目被审计过,则需尽量了解审计公司背景以及其审计报告中的各项指标。
CertiK采用形式化验证工具来证明智能合约可靠性,公司内部审计专家将利用包括形式化验证在内的多种软件测试方法,结合一流的白帽黑客团队提供专业渗透测试,从而确保项目从前端到智能合约整体的安全性。
近期,有部分项目方假借CertiK的名义发布不实审计报告。
标签:VERGOVERNNANLeverj GluonAmpleforth Governance Tokenern币有前途吗NANA价格
金色财经 区块链11月14日讯? ?许多极具才华的开发人员在以太坊区块链上开发了各种各样的产品和服务,但如果我们想在将来看到区块链技术被广泛采用,那么这个场景一定是“多链”的。所以其他与以太坊竞争的区块链也有获得成功的机会,不过最终能够生存下来的可能只有少数几个,虽然波卡(Polkadot)在这一领域占据主导地位,但其实并非加密社区的唯一选择。
从2020年6月开始,DeFi(去中心化金融)的锁仓价值开始出现前所未有的攀升,以迅雷不及掩耳之势实现了从十亿级到百亿美元的突破。如此热度,不禁让人联想2017年的那段行业“猛涨期”的如火如荼。 截至10月,DeFi的市场热度总体尚在,但局部零星回落显而易见。虽不知道这首DeFi乐章是否将迎来尾声,但另一颗新星的破茧而出却已经吸引了无数关注的目光。
已经成为主流财经媒体争相报道的 2020 最强资产比特币仍然没有停下脚步,市值一度突破了 3500 亿美金,继续创造历史新高。 比特币的这轮上涨中,被普遍公认的原因,是合规买入渠道的丰富与专业机构的入场。11 月 21 日,Pantera Capital 公开了一份名为《比特币短缺》的报告,报告提出,现在比特币每日产量根本不够这些平台的每日购买量。
以太坊的联合创始人Vitalik Buterin最近在Reddit上的“Ask Me Anything”(AMA)环节回答了一些社区问题。 图片来源:pixabay Buterin周三在以太坊基金会的ETH 2.0研究团队主办的AMA上表示, ETH 2.0的益处将比人们预期的更快出现。
随着经济社会数字化转型进程不断推进,数字货币作为支付手段数字化的工具和基础,受到越来越多的关注,当前全球主要经济体央行纷纷开始推进主权数字货币发展,我国的数字人民币试点已经启动,未来数字货币走向普及,将在支付体系运行效率、普惠服务、安全保障等方面产生积极影响。 数字货币的应用有助于支付体系成本降低、效率提高。
文章系金色财经专栏作者炊事团团长供稿,发表言论仅代表其个人观点,仅供学习交流!金色盘面不会主动提供任何交易指导,亦不会收取任何费用指导交易,请读者仔细甄别,谨防上当。? 挽弓当挽强,用箭当用长,射人先射马,擒贼先擒王。