区块链安全

智能合约安全审计之整数溢出漏洞

客户课堂教学是RatingToken精英团队针对客户要求而设计方案的新频道。根据上一期客户课堂教学的讲解,大伙儿早已对什么叫区块链智能合约及区块链智能合约系统漏洞拥有基本掌握,当期将重中之重论述区块链智能合约中常常被运用且严重危害财产安全性的高风险系统漏洞种类“整数金额外溢”。

1什么叫“整数金额外溢系统漏洞”?

编程语言中整数金额种类常有1个总宽,换句话说,1个整数金额种类还有一个最高值和1个较小值。

当2个整数金额测算时,結果超过最高值或低于较小值就是说外溢。举1个小事例表明一会儿:在区块链技术里边全是无标记整数金额,最少的就是说0。

例如最高值为a,较小值为0。在最高值和较小值中间假如产生下列测算:

a+1=0或是0-1=a

这时就称之为产生了整数金额外溢。

整数金额外溢的基本原理:

电子计算机中整数金额自变量有上下界,假如在算数与运算中出現越界,就会出現两大类整数金额外溢。超过整数金额种类的较大 表达范畴,大数字便会由1个极大值变成1个极小值或立即归零,这叫“上溢”,即上边事例中提及的a+1=0;超过整数金额种类的最少表达范畴得话,大数字便会由1个极小值或是零变为1个极大值,即所述0-1=a,这称为“下溢”。

说白了过犹不及就是说这一大道理。人们社会学中经常提到的“度”在这里就是说个很典型性的示范性。

整数金额外溢系统漏洞有哪些不良影响?

“整数金额外溢系统漏洞”以前也早已被曝出过很数次,归属于危险时刻级别系统漏洞;系统漏洞造成的恶性事件种类包含:超量铸币、超量购币、随便铸币、高卖低收、下溢加持这些;比如可造成原买卖出资人应用0个或是小量的币就能够给别的详细地址转到很多的代币总,也就是说人们经常听见的代币总無限公开增发。

先举个简易的事例:

A山上的一帮小猴子只是从0数到9,数得9以后就重新开始数0。有一日从B山跑来一只猫叫朴美桃,他发觉了这一难题。朴美桃赶到A山定居,每一次向大管家祖父要十只水蜜桃。大管家祖父总是数到9,第十只水蜜桃他就数0。如此一来朴美桃每一次拿水蜜桃的纪录为零。可是两月后贮备的水蜜桃全没有了,大管家祖父的帐簿中纪录的是朴美桃总共拿了0只水蜜桃,可事实上水蜜桃早已被他拿光了。

读过这一短故事之后是不是你有点糟糕?有这一醒悟表明還是很警醒的。的确,网络黑客就这样来保持借鸡生蛋的公开增发实际操作。网络安全服务近几年趋势2020年总结。

网络黑客运用相近的体制平白无故向1个帐户中转帐入挺大金额的代币总,而合同中的逻辑性只规定他花销不大的付出代价,如此一来就为系统漏洞进攻大开方便之门。

2019年也产生了许多由整数金额外溢导致的财产安全事故:

例一

2018年4月22日,网络黑客对BEC区块链智能合约进行进攻,平白无故取下很多BEC代币总并在销售市场上开展做空,BEC随后大幅度掉价,使用价值基本上为0,该销售市场一瞬间分崩离析;

例二

2018年4月25日,PCB新项目方发觉其买卖存有出现异常,网络黑客运用其涵数系统漏洞造就了很多PCB币,火币网Pro随后中止了全部货币的冲值获取业务流程。

该类恶性事件数不敌胜数,也有Ammbr(AMR無限转化成代币总),及其近期产生的OPL。一句话小结:整数金额外溢很比较严重,不良影响很恐怖!