Читаем Больше денег: что такое Ethereum и как блокчейн меняет мир полностью

Крайне важное свойство EVM – полнота по Тьюрингу, подразумевающая, что EVM-код может реализовать любое мыслимое вычисление, включая бесконечные циклы. Код EVM допускает два способа написать бесконечный цикл. Во-первых, можно использовать инструкцию JUMP, позволяющую отпрыгнуть в предыдущее место кода, а также инструкцию JUMPI для прыжка при выполнении некоторого условия, допускающую выражения вроде x < 27: x = x × 2. Во-вторых, контракты могут обращаться к другим контрактам, что потенциально может привести к зацикливанию через рекурсию. Здесь возникает закономерный вопрос: могут ли недобросовестные пользователи парализовать майнеров и полные ноды, вводя их в бесконечный цикл? В программировании это известно как проблема остановки: невозможно определить, закончится ли когда-либо выполнение той или иной программы.

Как уже говорилось в разделе о состоянии перехода, мы решаем эту проблему требованием устанавливать для транзакции максимальное допустимое число шагов в вычислении, и, если этот лимит будет превышен, вычисление прервется, но комиссии по-прежнему будут выплачены. Это работает и с сообщениями. Чтобы пояснить причины такого решения, рассмотрим следующие примеры.

◊ Злоумышленник создает контракт с бесконечным циклом и затем пересылает майнеру транзакцию, активирующую этот контракт. Майнер, проводя транзакцию, попадает в бесконечный цикл и ждет, пока закончится газ, прикрепленный к этому контракту. И хотя с окончанием газа выполнение остановится на полпути, транзакция остается валидной и за каждый вычислительный шаг майнер будет взимать со злоумышленника комиссию.

◊ Злоумышленник создает цикл такой длины, чтобы за время, в течение которого майнер будет вычислять его до конца, было найдено еще несколько блоков и майнер не смог бы включить транзакцию в один из следующих блоков, чтобы получить комиссию. Однако злоумышленник должен будет задать значение STARTGAS, ограничивающее количество вычислительных шагов, так что майнер будет знать заранее, если это количество будет чрезмерным.

◊ Злоумышленник видит контракт наподобие send(A,contract.storage[A]); contract.storage[A] = 0 и пересылает транзакцию с количеством газа, достаточным только для выполнения первого шага, но не для второго (то есть забирает деньги, но не позволяет балансу упасть до нуля). Автор контракта не должен волноваться о возможности таких атак, ведь если вычисление прерывается на полпути, произведенные изменения откатываются.

◊ Для минимизации рисков финансовый контракт работает по среднему значению девяти потоков данных от частных источников. Злоумышленник перехватывает один из потоков данных, который можно изменить с помощью механизма вызова разных адресов, описанного в разделе о ДАО, и конвертирует его в бесконечный цикл, в результате чего попытки получить средства с финансового контракта приведут к израсходованию газа. Однако для предотвращения этой проблемы финансовый контракт может указать лимит газа сообщения.

Альтернатива полному по Тьюрингу языку – неполный по Тьюрингу язык, где нет операций JUMP и JUMPI и в каждый момент времени в стеке может существовать только одна копия каждого контракта. В таких условиях описанная система комиссий и неуверенность в эффективности нашего решения теряют актуальность, поскольку стоимость выполнения контракта будет ограничена сверху его размером.

Также добавим, что отсутствие полноты по Тьюрингу – не такое уж сильное ограничение. Из всех рассмотренных нами примеров контрактов только один содержал цикл – и даже его можно было удалить, 26 раз повторив одну его строчку. Учитывая серьезность последствий полноты по Тьюрингу и ограниченность ее преимуществ, почему бы просто не использовать неполный по Тьюрингу язык? Дело в том, что в реальности отсутствие полноты по Тьюрингу не решает все эти проблемы. Рассмотрим следующий контракт:

C0: call(C1); call(C1);

C1: call(C2); call(C2);

C2: call(C3); call(C3);

C49: call(C50); call(C50);

C50: (запустить один шаг программы и записать изменения в хранилище)

Перешлем кому-нибудь транзакцию с таким контрактом. Для 51 транзакции нашему контракту понадобится 250 вычислительных шагов. Майнеры могли бы пресекать такие логические «бомбы», устанавливая максимально допустимое число вычислительных шагов для каждого контракта и считая шаги в том числе при выполнении одного контракта внутри другого. Но для этого майнерам пришлось бы запретить контракты, создающие другие контракты (поскольку создание и выполнение всех двадцати шести упомянутых контрактов можно было бы легко объединить в один контракт). Еще одна проблема кроется в том, что поле с адресом в сообщении – переменная, так что в целом нельзя предсказать, какие другие контракты будет вызывать данный контракт. Так мы приходим к удивительному заключению: полный по Тьюрингу язык неожиданно прост в использовании, а с его отсутствием все так же неожиданно становится сложнее, если не установить точно такие же элементы управления. Так почему бы просто не сделать протокол полным по Тьюрингу?

Валюта и выпуск

Перейти на страницу:

Все книги серии Individuum

Больше денег: что такое Ethereum и как блокчейн меняет мир
Больше денег: что такое Ethereum и как блокчейн меняет мир

В 2013 году девятнадцатилетний программист Виталик Бутерин опубликовал концепцию новой платформы для создания онлайн-сервисов на базе блокчейна. За десять лет Ethereum стал не только второй по популярности криптовалютой, но и основой для целого мира децентрализованных приложений, смарт-контрактов и NFT-искусства. В своих статьях Бутерин размышляет о развитии криптоэкономики и о ключевых идеях, которые за ней стоят, – от особенностей протокола Ethereum до теории игр, финансирования общественных благ и создания автономных сетевых организаций. Как блокчейн-сервисы могут помочь людям добиваться общих целей? Могут ли криптовалюты заменить традиционные финансовые инструменты? Ведут ли они к построению прекрасного нового мира, в котором власть будет принадлежать не правительствам и корпорациям, а людям, объединенным общими ценностями и интересами, или служат источником неравенства и циничных финансовых спекуляций? В этой книге Бутерин предстает увлеченным мыслителем, глубоким социальным теоретиком и активистом, который рассуждает о том, что гораздо больше денег, не боится задавать сложные вопросы и предлагать решения противоречивых проблем.

Виталий Дмитриевич Бутерин

Публицистика
Инцелы. Как девственники становятся террористами
Инцелы. Как девственники становятся террористами

В современном мире, зацикленном на успехе, многие одинокие люди чувствуют себя неудачниками. «Не целовался, не прикасался, не обнимался, за руку не держался, друзей нет, девственник» – так описывают себя завсегдатаи форумов инцелов, сообществ мужчин, отчаявшихся найти пару. Тысячи инцелов горько иронизируют над обществом, мечутся между попытками улучшить внешность и принятием вечного (как им кажется) целибата и рассуждают, кого ненавидят больше: женщин или самих себя. А некоторые решают отомстить – и берутся за оружие.В книге «Инцелы» практикующий шведский психиатр Стефан Краковски приоткрывает дверь в этот мир. Он интервьюирует инцелов, анализирует кризис мужественности и исследует связи радикальных одиночек с ультраправыми движениями, чтобы ответить на важные вопросы: как становятся инцелами? Насколько они опасны? И что мы можем сделать, чтобы облегчить их бремя, пока еще не поздно?В формате PDF A4 сохранен издательский макет книги.

Стефан Краковски

Психология и психотерапия
Отец шатунов. Жизнь Юрия Мамлеева до гроба и после
Отец шатунов. Жизнь Юрия Мамлеева до гроба и после

Биографии недавно покинувших нас классиков пишутся, как правило, их апологетами, щедрыми на елей и крайне сдержанными там, где требуется расчистка завалов из мифов и клише. Однако Юрию Витальевичу Мамлееву в этом смысле повезло: сам он, как и его сподвижники, не довольствовался поверхностным уровнем реальности и всегда стремился за него заглянуть – и так же действовал Эдуард Лукоянов, автор первого критического жизнеописания Мамлеева. Поэтому главный герой «Отца шатунов» предстает перед нами не как памятник самому себе, но как живой человек со всеми своими недостатками, навязчивыми идеями и творческими прорывами, а его странная свита – как общность жутковатых существ, которые, нравится нам это или нет, во многом определили черты и характер современной русской культуры.В формате PDF A4 сохранен издательский макет книги.

Эдуард Лукоянов

Биографии и Мемуары / Критика / Литературоведение / Документальное
Новые боги. Как онлайн-платформы манипулируют нашим выбором и что вернет нам свободу
Новые боги. Как онлайн-платформы манипулируют нашим выбором и что вернет нам свободу

IT-корпорации успешно конкурируют с государствами в том, что касается управления людьми. Наши данные — новая нефть, и, чтобы эффективно добывать их, IT-гиганты идут на многочисленные ухищрения. Вы не считаете себя зависимым от соцсетей, мессенджеров и видеоплатформ человеком? «Новые боги» откроют глаза на природу ваших отношений с технологиями. Немецкий профессор, психолог Кристиан Монтаг подробно показывает, как интернет стал машиной слежки и манипуляций для корпораций Кремниевой долины и компартии КНР, какие свойства человеческой натуры технологические гиганты используют для контроля над пользователями — и что мы можем сделать, чтобы перестать быть рабами экрана.В формате PDF A4 сохранён издательский дизайн.

Кристиан Монтаг

ОС и Сети, интернет / Обществознание, социология / Психология и психотерапия

Похожие книги

Абсолютное зло: поиски Сыновей Сэма
Абсолютное зло: поиски Сыновей Сэма

Кто приказывал Дэвиду Берковицу убивать? Черный лабрадор или кто-то другой? Он точно действовал один? Сын Сэма или Сыновья Сэма?..10 августа 1977 года полиция Нью-Йорка арестовала Дэвида Берковица – Убийцу с 44-м калибром, более известного как Сын Сэма. Берковиц признался, что стрелял в пятнадцать человек, убив при этом шестерых. На допросе он сделал шокирующее заявление – убивать ему приказывала собака-демон. Дело было официально закрыто.Журналист Мори Терри с подозрением отнесся к признанию Берковица. Вдохновленный противоречивыми показаниями свидетелей и уликами, упущенными из виду в ходе расследования, Терри был убежден, что Сын Сэма действовал не один. Тщательно собирая доказательства в течение десяти лет, он опубликовал свои выводы в первом издании «Абсолютного зла» в 1987 году. Терри предположил, что нападения Сына Сэма были организованы культом в Йонкерсе, который мог быть связан с Церковью Процесса Последнего суда и ответственен за другие ритуальные убийства по всей стране. С Церковью Процесса в свое время также связывали Чарльза Мэнсона и его секту «Семья».В формате PDF A4 сохранен издательский макет книги.

Мори Терри

Публицистика / Документальное
1917. Разгадка «русской» революции
1917. Разгадка «русской» революции

Гибель Российской империи в 1917 году не была случайностью, как не случайно рассыпался и Советский Союз. В обоих случаях мощная внешняя сила инициировала распад России, используя подлецов и дураков, которые за деньги или красивые обещания в итоге разрушили свою собственную страну.История этой величайшей катастрофы до сих пор во многом загадочна, и вопросов здесь куда больше, чем ответов. Германия, на которую до сих пор возлагают вину, была не более чем орудием, а потом точно так же стала жертвой уже своей революции. Февраль 1917-го — это начало русской катастрофы XX века, последствия которой были преодолены слишком дорогой ценой. Но когда мы забыли, как геополитические враги России разрушили нашу страну, — ситуация распада и хаоса повторилась вновь. И в том и в другом случае эта сила прикрывалась фальшивыми одеждами «союзничества» и «общечеловеческих ценностей». Вот и сегодня их «идейные» потомки, обильно финансируемые из-за рубежа, вновь готовы спровоцировать в России революцию.Из книги вы узнаете: почему Николай II и его брат так легко отреклись от трона? кто и как организовал проезд Ленина в «пломбированном» вагоне в Россию? зачем английский разведчик Освальд Рейнер сделал «контрольный выстрел» в лоб Григорию Распутину? почему германский Генштаб даже не подозревал, что у него есть шпион по фамилии Ульянов? зачем Временное правительство оплатило проезд на родину революционерам, которые ехали его свергать? почему Александр Керенский вместо борьбы с большевиками играл с ними в поддавки и старался передать власть Ленину?Керенский = Горбачев = Ельцин =.?.. Довольно!Никогда больше в России не должна случиться революция!

Николай Викторович Стариков

Публицистика
10 мифов о 1941 годе
10 мифов о 1941 годе

Трагедия 1941 года стала главным козырем «либеральных» ревизионистов, профессиональных обличителей и осквернителей советского прошлого, которые ради достижения своих целей не брезгуют ничем — ни подтасовками, ни передергиванием фактов, ни прямой ложью: в их «сенсационных» сочинениях события сознательно искажаются, потери завышаются многократно, слухи и сплетни выдаются за истину в последней инстанции, антисоветские мифы плодятся, как навозные мухи в выгребной яме…Эта книга — лучшее противоядие от «либеральной» лжи. Ведущий отечественный историк, автор бестселлеров «Берия — лучший менеджер XX века» и «Зачем убили Сталина?», не только опровергает самые злобные и бесстыжие антисоветские мифы, не только выводит на чистую воду кликуш и клеветников, но и предлагает собственную убедительную версию причин и обстоятельств трагедии 1941 года.

Сергей Кремлёв

Публицистика / История / Образование и наука
188 дней и ночей
188 дней и ночей

«188 дней и ночей» представляют для Вишневского, автора поразительных международных бестселлеров «Повторение судьбы» и «Одиночество в Сети», сборников «Любовница», «Мартина» и «Постель», очередной смелый эксперимент: книга написана в соавторстве, на два голоса. Он — популярный писатель, она — главный редактор женского журнала. Они пишут друг другу письма по электронной почте. Комментируя жизнь за окном, они обсуждают массу тем, она — как воинствующая феминистка, он — как мужчина, превозносящий женщин. Любовь, Бог, верность, старость, пластическая хирургия, гомосексуальность, виагра, порнография, литература, музыка — ничто не ускользает от их цепкого взгляда…

Малгожата Домагалик , Януш Вишневский , Януш Леон Вишневский

Публицистика / Семейные отношения, секс / Дом и досуг / Документальное / Образовательная литература