Что на самом деле делает контратака TheDAO с помощью рассылки спама? (предложено Стефаном Туалем)

TheDAO в настоящее время подвергается атаке, и Стефан Туал предложил контратаку с помощью спама https://blog.slock.it/dao-security-advisory-live-updates-2a0a42a2d07b#.r3wg8cxlw .

Что на самом деле делает этот код?

for (var i = 0; i < 100; i++) { 
    eth.sendTransaction({from: eth.accounts[0], gas: 2300000,
      gasPrice: web3.toWei(20, “shannon”), 
      data: “0x5b620186a05a131560135760016020526000565b600080601f600039601f565b6000f3”}) }
}

Я прикинул, что он отправляет 100 транзакций со счета 0 с некоторыми данными. Но что это за данные и как они помогают DAO не истощаться?

Ответы (1)

Атака живет от того, что вы можете вызвать функцию дважды с одним и тем же балансом в вашем аккаунте. Только после того, как вызов функции выполнен, ваши деньги списываются. Так что спам помогает выиграть время, чтобы деньги не тратились дважды. Подробнее здесь: http://vessenes.com/deconstructing-thedao-attack-a-brief-code-tour/


Транзакции создают множество пустых контрактов . Поступая таким образом, спамер получает компенсацию . Создание пустых контрактов. За что они соревнуются? Для блочного лимита газа :

У блоков тоже есть поле под названием лимит газа. Он определяет максимальное количество газа, которое могут потреблять все транзакции во всем объединенном блоке. Подобно максимальному размеру блока в биткойнах (измеряемому в байтах), его цель состоит в том, чтобы сохранить распространение блока и время обработки на низком уровне, тем самым обеспечивая достаточно децентрализованную сеть.

Таким образом, атака не может выполнить реентерабельный вызов, потому что лимит блочного газа достигается за счет создания контрактов, что имеет преимущество в том, что это дорогостоящий код операции.

обновил объяснение
Спасибо. Кто-нибудь знает, удалось ли это?
Я создал новый вопрос для вашего вопроса выше — см . ethereum.stackexchange.com/questions/6466/… .