Стратегическая проблема Ethereum и тюринг-полных смарт-контрактов
С момента запуска Metropolis я был стратегическим инвестором и believer в возможности технологии Ethereum. Однако после анализа фундаментальных причин произошедшего хака multisig-кошелька от Parity я пришел к выводу, что Ehtereum is failed by design (точнее не только Ethereum, а все тюринг-полные смарт-контракты), и вот почему.
Гедель смотрит на Ethereum как на неполную систему
Что такое тюринг-полная машина? Это компьютер, способный выполнять любые операции. Это Гёдель-неполная система. Это означает, что в любой программе существует способ использовать ее код недокументированным образом, в обход/вопреки изначальному design. Именно поэтому невозможно избавится от всех багов в софте и всегда для любой системы можно создать вирус (это лишь вопрос efforts).
Эта проблема компенсируется тем, что современные тюринг-полные машины (компьютеры, мобильный телефоны и даже мейнфреймы) изолированы друг от друга в исполняемом коде, и максимальный риск исполнения тюринг-полного кода — это стоимость потери данных/информации и железа отдельного компьютера. Даже если страну атакует вирус (как Петя), все равно будут разные компьютеры с разными версиями Windows, другими ОС и пр — и все не вымрет. Именно так эволюционировала жизнь на Земле: ДНК и клетка — это тоже своего рода тюринг-полная машина, и у всех видов разное ДНК (оно отличается даже в пределах одного вида), и поэтому ни один вирус не мог выкосить все живое.
С обычными вычислительными мощностями мы можем измерять, оценивать и страховать риски, поскольку вычислительный «домен» изолирован от других вычислительных «доменов» отдельной системой-на-чипе. Это позволяет создавать на основе таких копмьютерных систем бизнесы, отрасли экономики и пр.
С Этериумом это все не так. Этериум — это единое тюринг-полное вычислительное пространство на весь глобус и все сектора экономики, которые на нем создаются; при этом риск взлома не вычислим и не может быть застрахован, и ставит под угрозу всю сеть, причиняя опять же невычислимый заранее коллатеральный damage. Это как если бы все живое имело бы в мире одну и ту же ДНК, и рано или поздно возник бы вирус, нашедший в нем уязвимость, который одним махом бы уничтожил все живое. Поэтому хаки как The DAO и позавчерашний — неизбежны, и дальше будет только хуже. Ethereum или там EOS, или кто еще будет делать тюринг-полные глобально-исполнимые смарт-контракты — все они на самом деле централизуют вычисления, децентрализуя лишь вычислительный ресурс, и тем самым создают гораздо больше риска, чем митигируют. К сожалению они становятся useless case, очень дорогим экспериментом, технологически интересным, но не несущим никакой практической применимости.
Какой из проблемы может быть выход? Не просто децентрализация вычислений, а многообразие форм децентрализации, которые бы разбивали «глобальный вычислительный домен» на зоны, как крупные корабли имеют отсеки, позволяющие контролировать риск в случае пробоины. И задача ближайшего времени — инженеринг таких систем.