С момента запуска Metropolis я был стратегическим инвестором и believer в возможности технологии Ethereum. Однако после анализа фундаментальных причин произошедшего хака multisig-кошелька от Parity я пришел к выводу, что Ehtereum is failed by design (точнее не только Ethereum, а все тюринг-полные смарт-контракты), и вот почему.
Гедель смотрит на Ethereum как на неполную систему
Что такое тюринг-полная машина? Это компьютер, способный выполнять любые операции. Это Гёдель-неполная система. Это означает, что в любой программе существует способ использовать ее код недокументированным образом, в обход/вопреки изначальному design. Именно поэтому невозможно избавится от всех багов в софте и всегда для любой системы можно создать вирус (это лишь вопрос efforts).
Эта проблема компенсируется тем, что современные тюринг-полные машины (компьютеры, мобильный телефоны и даже мейнфреймы) изолированы друг от друга в исполняемом коде, и максимальный риск исполнения тюринг-полного кода — это стоимость потери данных/информации и железа отдельного компьютера. Даже если страну атакует вирус (как Петя), все равно будут разные компьютеры с разными версиями Windows, другими ОС и пр — и все не вымрет. Именно так эволюционировала жизнь на Земле: ДНК и клетка — это тоже своего рода тюринг-полная машина, и у всех видов разное ДНК (оно отличается даже в пределах одного вида), и поэтому ни один вирус не мог выкосить все живое.
С обычными вычислительными мощностями мы можем измерять, оценивать и страховать риски, поскольку вычислительный «домен» изолирован от других вычислительных «доменов» отдельной системой-на-чипе. Это позволяет создавать на основе таких копмьютерных систем бизнесы, отрасли экономики и пр.
С Этериумом это все не так. Этериум — это единое тюринг-полное вычислительное пространство на весь глобус и все сектора экономики, которые на нем создаются; при этом риск взлома не вычислим и не может быть застрахован, и ставит под угрозу всю сеть, причиняя опять же невычислимый заранее коллатеральный damage. Это как если бы все живое имело бы в мире одну и ту же ДНК, и рано или поздно возник бы вирус, нашедший в нем уязвимость, который одним махом бы уничтожил все живое. Поэтому хаки как The DAO и позавчерашний — неизбежны, и дальше будет только хуже. Ethereum или там EOS, или кто еще будет делать тюринг-полные глобально-исполнимые смарт-контракты — все они на самом деле централизуют вычисления, децентрализуя лишь вычислительный ресурс, и тем самым создают гораздо больше риска, чем митигируют. К сожалению они становятся useless case, очень дорогим экспериментом, технологически интересным, но не несущим никакой практической применимости.
Какой из проблемы может быть выход? Не просто децентрализация вычислений, а многообразие форм децентрализации, которые бы разбивали «глобальный вычислительный домен» на зоны, как крупные корабли имеют отсеки, позволяющие контролировать риск в случае пробоины. И задача ближайшего времени — инженеринг таких систем.
Интересный заход на техническую уязвимость систем на блокчен. Но он полезен как модель для анализа, в реальности существует множество блокчейн-систем с разными ДНК. Плюс они эволюционируют. То есть какие-то загнуться, какие-то сделают более жизнспособные форки. Пока есть вера в то, что все это более подходит, чем централизованные системы, эта сфера будет развиваться. Тем более видеокарты больше некуда девать:)
P.S. Я в своей статье сделал анализ гуманитарных рисков блокчейна: https://golos.id/ru--blokcheijn/@crypto-ivan/2-scenariya-blokchein-apokalipsisa-skynet-vs-matrix
Дело в том, что речь не о blockchain-системах, а о тюринг-полных смарт-контрактах, которых в действующей реализации есть лишь в одной из blockchain-систем — Ethereum. Отсюда и риски...
А почему конкретный смарт-контракт описывается как тьюринг-полная система? В этом смысле Etherium - это тюринг-полная система, а конкретный смарт-контракт - это всего лишь одна функция обладающая заданными входными данными и заданными исходными значениями. То есть конкретный смарт-контракт - это обычный программный код, который требует тестирования на уязвимости и примерно так же, как нужно делать на сайтах защиту от SQL-инъекции.
Смарт-контракт написан на Тюринг-полной вычислительной машине, и поэтому содержит сложновыявляемые скрытые возможности
Я конечно не до конца разобрался EOS но как я понял концепцию, эта проблема респреденности как раз решена. Одно приложение в EOS не пожет положить всю сеть по определению. и в случае сбоя как раз оно и изолируется от общей вычислительной мощи. Если я ошибаюсь поправьте пожалуйста.
И да. Я с грустью соглашаюсь с вашим мнением касательно эфира. но всёж есть определенный пакет токенов в этой сети для поддержания развития технологии. Надежда что проблемы эфира всё же будут решены.
В посте много ошибок разного типа. На этих ошибках делаются столь же ошибочные выводы.
Тьюринг-полная машина. Определение достаточно сложное, поскольку базируется на других специфических понятиях. Вы без труда нагуглите его сами и углубитесь настолько, насколько сочтёте интересным. Здесь же подчеркну, что это вовсе не "компьютер, способный выполнять любые операции", как пишет автор. Очень упрощённо, это детерминированный конечный автомат, последовательно выполняющий код произвольной длины и характеризующийся набором вполне определённых свойств.
Математик Курт Гёдель сформулировал теорему о неполноте системы аксиом. Аксиом как элементов доказательства в формальной логике, а не об ущербности каких-то математических систем.
Суть теоремы Гёделя в том, что логическая (не)полнота любой системы аксиом не может быть доказана в рамках этой системы. Это означает лишь то, что для её доказательства или опровержения в терминах математической логики потребуются новые аксиомы.
Видимо, автор находился под впечатлением от русско-английского словаря и потому в каждом абзаце старался use англоязычный термин вместо russian. :-)
Я не против иностранных слов, но их использование избыточно в том случае, если в родном языке уже присутствуют эквивалентные понятия.
Возможно, я плохо еще знаком со всеми тех. деталями EOS. Это было бы отличной фичей
Обратите внимание на IOTA.
видео можно посмотреть тут о том, что предполагается: https://golos.id/ru--kriptovalyuty/@primus/chast-1-den-larimer-o-eos-operacionnoi-sisteme-na-blokcheine-konferencii-consensus-2017-nyu-iork-22-maya-teper-na-russkom
English version (more complete and up to date): https://medium.com/@macx0r/turing-g%C3%B6del-and-chaos-in-smart-contracts-4221c08a7e0a
Гёдель здесь больше для красоты, конечно.
В последнем абзаце описано то, что всегда и происходило.
Сначала появился один блокчейн, за ним другие. У каждого своя, не пересекающаяся с другими в общем случае совокупность узлов. Проблемы с надёжностью и всем остальным у каждой вариации свои. Они разрешимы так же, как и в традиционных вычислительных системах.
@dr-orlovsky, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующих категориях:
При всей кажущейся убедительности (оставив в стороне вольности в трактовке понятий), на мой взгляд здесь большая сущностная ошибка.
Ethereum можно условно считать одним большим компьютером в котором выполняутся смарт контракты. Но это очень поверхностная интерпретация. Дело в том что внутри Ethereum виртуальной машины реализована очень строгая сегментация. Т.е. взлом одного контракта не оказывает никакого влияния на другой контракт (если только это специально не запрограмированно). Эта сегментация принципиально отличается от межпроцессного разделения внутри обычного компьютера. Криптографически гарантирована невозможность изменить память контракта, не имея к нему легального доступа. В этом смысле никакие вирусы, которые могут "залезть" в память другого контракта невозможны.
Таким образом врожденной проблемы в Turing Complete смарт контрактах нет.
Другое дело что сами по себе контракты могут содержать ошибки. Это разумеется справедливо. Но эту проблему создание "многообразия форм децентрализации" не решает.
Прошу прощения, за неимением времени писать полный комментарий, процитирую сам себя из другого материала:
"Кто-то может возразить, что смарт-контракты изолированы, однако это не так. Они изолированы еще меньше, чем отдельные процессы в рамках процессора: они легко адресуют друг друга и используют общий код из библиотек без модификации и разграничений адресного пространства (балансов кошельков и пр) — что хорошо показал последний хак multisig-кошельков Parity."
Не-мутабильность кошельков — не аргумент, потому что они мутабельны через механизм транзакций.
Хак как раз и показал что проблема исключительно локализована. Нет? Никакой угрозы самой платформе не было и нет.
Скажу другими словами. Ethereum платформа вполне смодостаточна чтобы не ее основе создавать абсолютно не перескающиеся сегменты. Никакого дополнительного уровня сложности для этого городить не надо.
И еще маленькое замечание.
;) Код неизменен. Если мы говорим о возможности вирусов, то это про изменение кода. Никакой, в этом смысле, мутабельности через транзакции не существует.
Вы спорите о терминах, а реальность в экономическом ущербе. Какая разница что это не вирус, или что вреда платформе нет, если бизнес и проекты на ее основе понес прямые убытки, не локализованные в рамках конкретных проектов?
Ну я не очень спорю ;) Просто Вашa оценка кажется мне необоснованной, включая ссылки на Геделя.
Мой поинт в том что для создания таких "отсеков" не надо никаких "таких' систем. Ethereum вполне достаточен сам по себе. Всегда немного жалко, когда талантливые люди тратят время на решение выдуманых проблем.
Очень интересно... спасиБО !!!
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
knopki, losos, kibela, ukrainian, tymba, midnight, dimarss, vik, vadbars, dany2323, amikphoto, vasilisapor2, nefer, guepetto, bitlle, voltash, bobrik, kvg, sva-lana, myhardmoney, blondinka, mixtura, mr-nikola, makcum52, mrramych, bospo, nerengot, ifingramota, maxtor1986
Поэтому я тоже проголосовал за него!
Узнать подробности о сообществе можно тут:
Разрешите представиться - Кит Добрый
Правила
Инструкция по внесению Инвестиционного взноса
Вы тоже можете стать Инвестором и поддержать проект!!!
Если Вы хотите отказаться от поддержки Доброго Кита, то ответьте на этот комментарий командой "!нехочу"
dr-orlovsky, не могу понять при чем тут SMART-контракты в эфире в комплексе, к хакнутым контрактам как частному явлению? По-сути дырка была не в блокчейне с Тьюринг-полным языком, а в софте, который разворачивал контракты с ошибкой цикла внутри. Etherium требует элегантности кода, иначе контракты будут дорогие, что иногда приводит к ошибкам кода из-за желания экономить газ.
С другой стороны, под ударом оказались только MultiSig Parity контракты, а не все SMART-контракты в Etherium. Я согласен, что классический блокчейн Bitcoin дает больше безопасности, потому что исключает участие софта с ошибками в циклах. Но Bitcoin как следствие - огромный мастодонт, где сложная бизнес-логика будет выполняться настолько долго, что мы дождемся, когда будут проходить поколения прежде чем мы совершим транзакцию.
SMART-контракты дают гибкость и скорость решения сложной бизнес логики, но добро пожаловать в мир с дырками в софте, которые их разворачивают.
Возвращаясь к выводам в конце статью, о том что фейл может грохнуть все цепь. Не согласен, поскольку удар был только по Parity кошелькам, в остальных контрактах такой ошибки нет и они остались нетронутыми - вот Вам и пример как компенсируется Тьюринг-полные SMART-контракты в Гедель-неполных системах.
Мне кажется, тут речь о том, что блокчейн в целом и SMART-контракты в частности еще сырая технология. Если все стремиться получить быструю и гибкую систему, то нужно концентрироваться не на разных формах разворачивания контрактов с минимальной ценой газа (что нужно каждому частному пользователю), а на формировании экосистемы разработки (что нужно всем). Сейчас ведь нет эффективных систем оркестрации контрактами, доверенного middleware, возможностей A/B тестирования и т.п.
Прошу прощения, за неимением времени писать полный комментарий, процитирую сам себя из другого материала:
"Кто-то может возразить, что смарт-контракты изолированы, однако это не так. Они изолированы еще меньше, чем отдельные процессы в рамках процессора: они легко адресуют друг друга и используют общий код из библиотек без модификации и разграничений адресного пространства (балансов кошельков и пр) — что хорошо показал последний хак multisig-кошельков Parity."
Так никто не отрицает, что контракты не изолированы. Само собой, понятно, что уровень безопасности чейнов с поддержкой Тьюринг-полных контрактов меньше чем у Тьюринг-неполных. Просто на блокчейнах типа Биткоина практически невозможно загнать сложную бизнес логику в транзакцию, я уже молчу про полноценные ДАО с неоднородными функциями и ролями.
Вопрос в том, а нужно ли ради этой незначительно улучшенной безопасности отказываться от возможности автоматизации на блокчейне?
Статья ведь о том что у Тьюринг-полных контрактов нет будущего, а моя позиция что есть и огромное, но ценой историй о том как эти контракты хакают.
Да ладно, что вы цепляетесь? Вывод верный и автор прав. Выход м.б. еще и в том, чтобы было несколько платформ и бриджи между ними?
Подписался.
Возможно вам будет интересно наше реалити шоу про крипту и выход на ICO, недавно вот объявили пресейл: https://golos.id/ru--kriptovalyuty/@bitcoinking/ico-preseil-obyavlen-blokchein-startap-graphgrailai-nachinaet-pervyi-zakrytyi-raund-presale-tokenov-ggl