fiatisbubble
Published in

fiatisbubble

Cartesi: Как по-настоящему решить проблему масштабируемости блокчейна

Cartesi — привнесение современных экосистем разработки в смарт-контракты

Данная статья является переводом: https://medium.com/cartesi/scaling-content-90de6f3ca4fa

Проблема масштабируемости

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

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

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

Существует второе ограничение, присутствующее в Ethereum, которое необходимо решить, чтобы действительно решить проблему масштабируемости: это масштабируемость контента¹. Чтобы объяснить, что такое масштабируемость контента, мы процитируем фундаментальную статью Фридриха Хайека “Использование знаний в обществе”:

Мы постоянно используем формулы, символы и правила, смысл которых нам непонятен, и с помощью которых мы прибегаем к помощи знаний, которыми сами не обладаем.

Эта идея, хотя и написанная о цивилизациях, должна показаться знакомой программистам. Как разработчики программного обеспечения, мы являемся мастерами абстракций². Мы создаем их путем композиционного³ построения на основе других абстракций, которые уже доказали свою успешность на своем уровне, не задумываясь о том, как они были реализованы.

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

В этом смысле абстракции в информатике можно рассматривать как абстракцию содержания: они представляют собой процесс сокрытия информации, при котором базовая реализация скрывается от пользователя и доступ к ней осуществляется через интерфейс. Благодаря этому процессу сокрытия информации абстракция в информатике заключается в расширении содержания⁴.

Альфред Уайтхед сказал, что “цивилизация развивается за счет расширения числа важных операций, которые мы можем выполнять, не задумываясь о них”, и то же самое можно сказать о технологиях всех видов.

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

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

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

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

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

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

В Cartesi создают собственное решение для масштабирования. В его основе лежит важнейшая идея расширения числа важных операций, которые можно выполнять, не задумываясь о них; для написания невозможных DApps необходима масштабируемость контента.

Нынешние блокчейн технологии не обладают этой характеристикой. Компьютеры, на которых выполняются смарт контракты, являются новыми, причем во всех плохих смыслах. Ни один из разработанных за последние сорок лет программных продуктов не может работать на них. Нет никакой экосистемы, о которой можно было бы говорить, и никакого контента; чтобы создать сложные системы в Ethereum, придется создавать все абстракции с нуля, что требует знаний, которыми не обладает ни один человек.

Представьте себе гипотетический сценарий: вы идете в компьютерный магазин, чтобы купить новый компьютер. Вам предлагают супербыстрый, только что выпущенный компьютер, но он не может запускать ничего из того, что существует сегодня: приложения, библиотеки, инструменты, операционные системы, компиляторы, интерпретаторы, и так далее. Он может запускать только свой собственный машинный код.

Представьте себе гипотетический сценарий: вы идете в компьютерный магазин, чтобы купить новый компьютер. Вам предлагают супербыстрый компьютер, который только что был выпущен, но на нем не может работать ничего из того, что существует сегодня: приложения, библиотеки, инструменты, операционные системы, компиляторы, интерпретаторы, и так далее. Он может выполнять только свой собственный машинный код.

Поставщик может попытаться убедить вас, сказав: “Ах, но ведь новое программное обеспечение может быть разработано с нуля для этого конкретного компьютера”. Во многом именно так разрабатывалось программное обеспечение до появления высокоуровневых компиляторов и операционных систем. Несмотря на производительность, такой компьютер был бы бесполезен.

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

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

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

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

Cartesi позволяет разрабатывать смарт контракты на Python, Rust, OCaml, JavaScript, C++, Java или на всех этих языках, вместе со всеми их объединенными экосистемами и существующими библиотеками.

В настоящее время наиболее важным решением для масштабирования Ethereum являются rollups, причем существует множество конкурирующих проектов и реализаций.

Виталик Бутерин написал отличное руководство по этому вопросу, которое можно найти здесь. Основная идея rollups заключается в переносе основной части вычислений с блокчейна на протокол второго уровня, используя блокчейн для проверки доказательств того, что то, что было выполнено вне блокчейна, соответствует правилам.

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

Cartesi разрабатывает собственное rollups решение, которое является ответом на проблему масштабируемости. В отличие от других решений, Cartesi предлагает масштабируемость контента, а также вычислительную масштабируемость. Ключевым моментом для масштабирования контента является перенос в Ethereum того самого компьютера, с которым мы работаем ежедневно, используя его в качестве инфраструктуры для ранее невозможных DApps. В этот компьютер вложены десятилетия богатого, зрелого и проверенного в боях контента; с его помощью мы можем запустить весь современный стек разработки внутри блокчейна.

В итоге, мы поместили Linux и все его инструментальные цепочки внутрь Ethereum. Больше не нужно ограничиваться Solidity, ограниченным и чрезвычайно дорогим компьютером; теперь мы можем использовать современную экосистему разработки, работающую на быстром компьютере. У нас есть десятилетия контента внутри блокчейна. Мы действительно можем просто импортировать библиотеку сжатия и использовать ее, причем на нашем любимом языке программирования. Вы можете задаться вопросом, как мы это сделали?

Мы подробно разбирали это в предыдущих статьях, Rollups: Cartesi Node и Rollups On-Chain + Whitepaper.

И Cartesi не ограничивается Linux

Другие операционные системы, такие как seL4, ядро с открытым исходным кодом, ориентированное на безопасность, со сквозным доказательством корректности реализации, могут быть задействованы технологией Cartesi.

Cartesi может разрабатывать смарт-контракты на Python, Rust, OCaml, JavaScript, C++, Java или на всех этих языках, вместе со всеми их экосистемами и существующими библиотеками. Cartesi даже может использовать реальные базы данных. Преимущества этого невозможно переоценить: мы используем знания, которыми не обладаем по отдельности, записанные в надежных компиляторах и интерпретаторах, уже существующих зрелых библиотеках и проверенных в боях операционных системах.

Конкретным примером, демонстрирующим возможности Cartesi, является Texas HODL’em, децентрализованная игра в техасский HODL’em покер.

В ней используется библиотека LibTMCG⁵ для реализации логики ментальной карточной игры. Запуск интенсивных алгоритмов такого рода на уровне-1 невозможен: компьютер просто слишком медленный. Кроме того, просто перенести его на более быстрый уровень-2 недостаточно.

Сложность понимания тонкостей криптографии ментального покера, а затем написание надежной реализации LibTMCG в Solidity делает этот DApp невозможным. С другой стороны, с Cartesi Rollups мы можем просто импортировать эту уже существующую библиотеку из предпочитаемого языка программирования и нормально использовать ее, запустив все на быстром компьютере.

В этом и заключается сила Cartesi. Разработчики могут использовать богатую, зрелую и проверенную в боях экосистему, которая создавалась десятилетиями и содержит знания, которыми не обладает ни один человек.

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

О Cartesi: Что дальше

Cartesi — первая ОС на блокчейне, а их решение Layer-2 интегрирует Linux и стандартные среды программирования в блокчейн. Это позволяет разработчикам кодировать масштабируемые смарт контракты с помощью богатых программных инструментов, библиотек и сервисов, к которым они привыкли.

Cartesi преодолевает разрыв между обычным программным обеспечением и блокчейном, приветствуя миллионы новых стартапов и их разработчиков в блокчейне, привнося Linux в блокчейн приложения. Cartesi сочетает в себе революционную виртуальную машину, optimistic rollups и сайдчейны, чтобы революционизировать способ создания разработчиками блокчейн приложений.

Telegram Канал| Telegram | Discord (Сообщество разработчиков)| Reddit | Twitter | Facebook| Instagram | Youtube | Github | Сайт

[1] Исследователь Ник Сабо использовал термин социальная масштабируемость с похожим значением, но в другом контексте. Поэтому я решил не использовать тот же термин, так как считаю, что он не отражает сути того, что я пытаюсь донести.

[2] Колберн, Тимоти и Гэри Шут, 2007, “Абстракция в компьютерной науке”, Minds and Machines, 17(2): 169–184. doi:10.1007/s11023–007–9061–7

[3] Композиционность — это принцип, согласно которому система должна быть разработана путем составления более мелких подсистем, а рассуждения о системе должны проводиться рекурсивно по ее структуре.

[4] Колберн, Тимоти Р., 1999, “Software, Abstraction, and Ontology”, The Monist, 82(1): 3–19. doi:10.5840/monist19998215

[5] Шиндельхауэр, Кристиан. (1998). Инструментарий для ментальных карточных игр.

--

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
bubbalex

bubbalex

CEO and Founder at bubbalex.media - media community dedicated to cryptocurrency & blockchain technology, assistance in promoting and developing of ICO/IEO

More from Medium

Fluence Network: A Web3 Computing Solution.

Axelar For Dummy

Akash or a Decentralized Cloud

Post Mortem: Nebula External Vaults v1.3