Баг в смарт-контракте стоил компании 7 млн долларов

Создатели смарт-контракта криптобиржи допустили ошибку в коде, в итоге исправлять ситуацию пришлось вручную, а компания растеряла 7 млн баксов.

Сначала 2018-го года криптобиржа Legolas Exchange (LGO) завлекла около 30 млн баксов финансирования, выпустила токен эталона ERC-20 на Эфириуме с предусмотренным вознаграждением ходлерам,в размере 5% от количества удерживаемых токенов любые 6 месяцев 1-ые два года.

Но, создатели смарт-контрактов написали неизменяемый код таковым образом, что 20% токенов для выплаты призов оказались утрачены. А именно, код смарт-контракт включал в себя последующую функцию: // calculate the bonus for one holded LGO uint256 bonusByLgo = (BONUS_AMOUNT / 4)/unspentAmounts[_bonusDate].

Таковым образом, переменная bonusByLgo ждет заслуги процентного значения, к примеру, 0,05, в то время как uint256 может соответствовать только значениям целого числа. Потому, при подсчете процента приза, юзер постоянно получит 0% из-за обычного процесса округления, не считая 1-го единственного варианта, когда 95% хозяев токенов переместят свои активы сразу, что очень нереалистично. Кроме этого бага, главные функции договора, оперировавшего 30 млн баксов, не были на сто процентов протестированы.

Команда LGO совладала с неувязкой вручную, при помощи собственных средств, которые составили 20% эмиссии токенов так, что обладатели токенов ничего и не увидели, но ошибка стоила компании около 7 млн баксов.

Понравилась статья? Поделить с друзьями: