- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
На шифре. Инсайдерская история криптовалютного бума - Лора Шин
Шрифт:
Интервал:
Закладка:
Кое-кто предостерегал остальных:
Смотрите шире: мы видим хреновый смарт-контракт и беспечных инвесторов. Они сами рисковали, инвестируя в него без юридической экспертизы. Не рискуйте из-за них репутацией Ethereum как независимой децентрализованной платформы, принимая такие поспешные решения, как хардфорки или откаты. Этим вы создадите очень опасный прецедент и дадите политическим органам повод вмешиваться в будущем, когда им захочется!
Один из руководителей биржи Bitfinex, Филип Поттер, выразился так:
это проблема DAO, а не ETH
Дино настаивал, что откат Биткойна в 2013 году и так создал прецедент. Фил спросил: «Если вы кинете биржи, выживет ли ETH?» Дино ответил «да» и снова попросил биржи остановить торговлю.
«В жопу этот койн», – написал Фил.
Дино настаивал, что Ethereum не оправится, если допустить атаку на The DAO и хакер продаст на биржах миллионы ETH. «Стоимость упадет до 0,50 доллара, – написал он. – Рассуждайте здраво. Непоправимая пиар-катастрофа».
Но, как заявил Тристан Д’Агоста из Poloniex: «Скорее, паника на рынке начнется, если блокчейн сочтут ненадежным».
К тому же, как писал Фил, «если какое-нибудь правительство поймет, что в потенциале может принудить DAO „без лидеров“ (или ETH, если на то пошло) к откату, это чревато последствиями, я тебе гарантирую».
Между тем команда Slock.it и другие разработчики, сидя в чатах, быстро поняли суть атаки. Еще 5 июня Кристиан Райтвисснер – разработчик, которого Гэвин отказывался признавать создателем Solidity, – послал электронные письма ключевым девелоперам с предупреждением о баге, использующем разницу смарт-контрактов с обычными финансовыми транзакциями. Если получить деньги у кассира или в банкомате в реальности, ваш баланс обновится после того, как вы их получите на руки. Но смарт-контракт меняет баланс в первую очередь. Иначе вредоносный смарт-контракт может заставить его начать процесс снова – на стадии снятия денег, до обновления баланса. Именно так и поступил напавший на The DAO. Это как подойти в банке к кассиру с амнезией, где у вас открыт счет на 259 долларов, снять 258 долларов, отвлечь его раньше, чем он обновит баланс на счете до 1 доллара, и попросить снять 258 снова, и снова, и снова, и снова (только в этом случае нападавший получал по 258 ETH).
9 июня Питер Вессенс, соучредитель Bitcoin Foundation, написал пост в блоге, назвав это «ужасной, ужасной атакой», а на следующий день сам Кристиан написал о принципе атаки.
Slock.it обнаружили уязвимость The DAO в функции, позволяющей людям выполнять предложения. Они нашли решение проблемы – теперь только оставалось, чтобы за него проголосовало большинство держателей. Еще член форума на DAOhub нашел в структуре The DAO баг под названием «контракт вознаграждения». Но на этом контракте деньги не хранятся, и 12 июня Стефан написал в блоге: «Фондам DAO ничего не грозит после обнаружения бага с „рекурсивным вызовом“ в смарт-контрактах Ethereum». Он уточнял: «Важный вывод: поскольку в аккаунте вознаграждений The DAO эфира нет, это НЕ является проблемой, ставящей фонды DAO под удар». Не встревожился даже Виталик. За день до этого он твитнул: «Я покупаю токены DAO с тех пор, как вышли новости об их безопасности».
Контракт вознаграждения был в The DAO потенциальной брешью, поскольку с ним мог взаимодействовать смарт-контракт, написанный неизвестными лицами. Проще говоря, если The DAO вкладывается во что-то прибыльное, прибыль от вклада поступает в контракт вознаграждения, чтобы она могла пропорционально выплачиваться всем вкладчикам по принципу дивидендов. Кристоф решил, что если кто-то уходит из The DAO, создавая дочернюю DAO, то у него должно остаться право на будущие вознаграждения от своих вкладов. Чтобы выполнить это обещание, The DAO просит человека назвать внешний адрес или контракт, куда переводить вознаграждения. (В Ethereum аккаунты могут принадлежать как людям, так и контрактам, и если послать транзакцию на аккаунт контракта, подключается его код – это как делать выбор в торговом автомате, выдающем в ответ товар.) Кристоф не был обязан предоставлять будущие вознаграждения тем, кто уходит из The DAO, но великодушно принял это решение и при этом оставил в коде коммент: «Будем хорошими, пусть получают вознаграждения». (В зависимости от того, как считать строчки кода, комментарий находился на 667 строке – или же на 666-й.)
Но, может, Кристоф и был хорошим, зато хакер – нет. Хакер знал, что функция splitDAO состоит из четырех шагов (происходящих за один сеанс): 1) уходящий из The DAO создает дочернюю DAO и направляет туда токены, которые сгорают; 2) главная DAO высылает в новую DAO эфир; 3) главная DAO шлет вознаграждение (на аккаунт, указанный держателем токенов); и 4) контракт обновляет баланс уходящего. У хакера был обычный адрес, но вредоносный контракт. Он сигнализировал: «Эй, я хочу вывести свои токены из The DAO», – а потом выслал туда свои 25 805 токенов DAO, чтобы начать вывод 258 ETH.
На втором шаге – на вопрос, куда слать деньги, – нападавший дал ответ. Еще 8 июня в 7:38 по берлинскому времени кто-то (позже определили, что это был держатель токенов DAO из Китая) создал дочернюю DAO (№ 59) под названием
lonely[15]
so lonely
14 июня китайский держатель токенов вложил 305 тысяч токенов через Kraken, а все оставшиеся токены – 306 914 – через Poloniex. Теперь дочерняя DAO 59 опустела.
В пятницу 17 июня 2016 года, в 5:34 по берлинскому времени, нападавший приступил к рекурсивному вызову, запрашивая вывод в свою дочернюю DAO 59. На третьем шаге, когда The DAO спросила, куда переводить вознаграждение, хакер предоставил аккаунт Ethereum своего вредоносного контракта. Контракт вознаграждения запинговал этот контракт, запрограммированный так, чтобы, получая пинг, каждый раз начинать процесс заново со второго шага – когда The DAO отправляет деньги в дочернюю DAO. И он повторял так раз за разом, переводя эфиры и не позволяя The DAO дойти до четвертого шага, когда баланс обновляется и больше средства не выводятся. В данном случае хакер занимался этим уже несколько часов, получая по 258,056565 ETH за раз. (Курс

