Вступление:
Публичные цепочки блоков - это механизмы, с помощью которых сети могут поддерживать децентрализованное согласие в отношении общего состояния. Как правило, это состояние содержит, помимо других данных, платежную систему. Доля, принадлежащая участникам возникающей экономики, служит стимулом для того, чтобы сделать государство широко доступным для других и отклонить недействительные транзакции. В этом добродетельном цикле платежная система строится на основе децентрализованного консенсуса, который функционирует только благодаря стимулам, созданным самой платежной системой. Как платежная система, так и консенсус могут быть использованы для других целей.
По мере появления новых приложений для технологии блокчейна требования к базовой инфраструктуре постоянно растут. На данный момент двумя основными препятствиями для широкого внедрения технологии блокчейна являются ее плохая масштабируемость и отсутствие надежной среды разработки. Основной вклад Cartesi в экосистему блокчейна - преодоление обеих этих проблем.
Масштабируемость В настоящее время развернутые консенсусные механизмы основаны на полном резервировании [Nakamoto 2009; Дерево 2018]. Они требуют, чтобы каждая транзакция постоянно сохранялась и проверялась каждым участником. Эта неэффективность является ключевым ограничивающим фактором для роста скорости транзакций, объема используемых данных и интенсивности вычислений внутри транзакций. Высокие транзакционные издержки и увеличенная задержка стали препятствием для многих инновационных приложений, которые иначе выиграли бы от гибкости, которую интеллектуальные контракты предоставляют блокчейну.
Попытки улучшить масштабируемость блокчейна можно разделить на решения уровня 1 и уровня 2. Решения масштабируемости уровня 1 изменяют саму базовую инфраструктуру цепочки блоков. Примеры включают оптимизацию размеров блоков, сегментирование и делегированное подтверждение кола (DPoS). Поскольку они работают на уровне инфраструктуры, эти решения обременены требованием сохранения глобального консенсуса. Определенные аспекты государства, такие как платежная система, имеют решающее значение для всех сторон и поэтому требуют глобального консенсуса. В противном случае для большинства взаимодействий, опосредованных блокчейном, совершенно безопасно ограничить доступ и ответственность за проверку несколькими сторонами, которые могут быть потенциально затронуты. Блокчейн может затем использоваться для обеспечения окончательности и обеспечения локального консенсуса в тех редких случаях, когда возникает спор между этими сторонами. Другими словами, глобальный консенсус является ценным ресурсом, который следует использовать с экономией. Признавая этот факт, решения масштабируемости второго уровня, такие как плазма, боковые цепи, TrueBit или каналы состояния, перемещают как можно больше данных и вычислений вне цепочки. Решения масштабируемости уровня 1 и 2 обсуждаются более подробно в разделе 2.
Среда вычислений Каждое вычисление, которое может повлиять на транзакцию, независимо от того, выполняется она в цепочке или вне цепочки, должно воспроизводиться всеми сторонами, выполняющими проверяющую роль. Воспроизводимые вычислительные модели должны быть автономными и детерминированными. Другими словами, полное состояние для вычисления и вся последовательность изменений этого состояния должны быть полностью определены и согласованы. К сожалению, реальные вычислительные архитектуры не были разработаны с учетом этих ограничений и, следовательно, не воспроизводимы. Платформы блокчейнов решают эту проблему, используя собственные виртуальные машины (ВМ) при обработке интеллектуальных контрактов. Эти виртуальные машины являются воспроизводимыми, но также специфичными для домена. С одной стороны, они предлагают встроенную поддержку функций, полезных для интеллектуальных контрактов (например, учет, откат, ассоциативная память, аутентификация, криптография и т. Д.). С другой стороны, им не хватает ценных функций, обнаруженных в архитектурах общего назначения (например, арифметика с плавающей точкой, виртуальная память, прерывания и т. Д.).
Революция в возможностях программного обеспечения, которую мир испытал за последние несколько десятилетий, можно объяснить двумя ключевыми факторами. Первый - экспоненциальное увеличение скорости, с которой современные аппаратные платформы могут обрабатывать огромные объемы данных. Второе, и не менее важное, это все возрастающая выразительная мощь сред разработки программного обеспечения. Действительно, вычисления общего назначения не происходят изолированно. Скорее, они собраны из взаимозависимых строительных блоков, созданных всемирным сотрудничеством разработчиков программного обеспечения. Эти компоненты и службы зависят от стандартных библиотечных средств, размещенных в базовой операционной системе (управление памятью, управление процессами, файловые системы, работа в сети и т. Д.). Это операционная система, которая связывает все вместе. Такие возможности недоступны из автономных языков программирования и компиляторов, которые типичные блокчейны предлагают разработчикам умных контрактов.
Проблемы воспроизводимости и масштабируемости сделали вычислительные среды в цепочке очень строгими. Чтобы повысить производительность и расширить возможности разработки блокчейнов, нам нужна воспроизводимая модель вычислений, которая поддерживает современные операционные системы.
Связанных с работой:
Работа, наиболее тесно связанная с Cartesi, - это TrueBit [Teutsch and Reitwießner 2017]. Связь между Cartesi и Truebit проистекает из того факта, что обе технологии выводят из цепочки интенсивные вычисления, а затем в рамках блокчейна используют игру верификации [Feige and Kilian 1997] для эффективного урегулирования споров относительно результатов этих вычислений. Несмотря на это сходство, многие другие дизайнерские решения отличают эти две технологии.
TrueBit основан на WebAssembly [2018], виртуальной машине ISA, разработанной группой сообщества W3C для поддержки эффективных веб-приложений1. В отличие от этого, Cartesi основан на RISC-V [Waterman and Asanovic´ 2017a, b], открытой ISA, разработанной в UC Berkley для реализации на родном оборудовании. WebAssembly и RISC-V ISA имеют аналогичную сложность. Ключевым отличием является их позиция по отношению к приложениям и операционной системе. WebAssembly был разработан для размещения между приложениями и базовой операционной системой. Вместо этого RISC-V предназначен для операционной системы и приложений, которые он поддерживает. Выбор TrueBit согласуется с акцентом на расширение вычислительной мощности интеллектуальных контрактов, которые, как правило, работают в строго ограниченных средах. Однако реальные приложения не могут существовать изолированно. Они зависят от богатых, сложных сред выполнения, которые неизменно строятся поверх современной операционной системы. Чтобы дать разработчикам децентрализованного 1I изначально был основан на серверной части LLVM для непонятного дизайна встроенного процессора NIC Myricom, который используется внутри приложений Google, для доступа к инструментам, библиотекам, службам и программному обеспечению, с которыми они уже знакомы, Cartesi решила поддерживать Linux , Реалистичный ISA, такой как RISC-V, гораздо лучше подходит для этой цели.
Одно из самых важных отличий заключается в том, как Cartesi связывает интерес к вычислениям вне цепочки с ответственностью за их выполнение. В TrueBit такого выравнивания нет. Интеллектуальный контракт отправляет вычисление в пул ненадежных сторон и ожидает, пока один из них выполнит его вне цепочки и отправит результат обратно. В этом смысле TrueBit можно рассматривать как средство для увеличения вычислительной мощности отдельных интеллектуальных контрактов. Обман предотвращается с помощью сложного стимулирующего слоя, который вознаграждает членов пула за последовательные оспаривания неверных результатов. Чтобы участники были вовлечены, вычисления с неверными результатами должны искусственно вводиться стимулирующим слоем. Эта неэффективность является фундаментальной частью дизайна TrueBit. С другой стороны, Cartesi может рассматриваться как способ для внеплановых вычислений быть подтвержденным умным контрактом. Все стороны, которые могут быть затронуты этим одобрением, несут ответственность за выполнение вычисления вне цепочки и, при необходимости, начало спора. Хотя последующая проверка может быть передана на внешний рынок разрешения споров (см. Раздел 6.2), в ней нет встроенной неэффективности и нет необходимости в стимулирующем слое.
Большие требования к памяти для реальных вычислений представляют собой серьезную проблему, которую TrueBit не решает. Явные представления кода и данных не укладываются в блокчейн. Вместо этого машина Cartesi вместе с ее кодом и данными представлена в цепочке хэшем своего состояния. Такое расположение позволяет полностью указывать сложные транзакции, построенные из нескольких циклов вычислений вне цепочки. Сами государства только когда-либо известны явно вне цепочки заинтересованными сторонами. Некоторые приложения могут столкнуться с проблемами доступности данных, к которым Cartesi предлагает ряд оригинальных решений [Teixeira and Nehab 2019a]. Наконец, Cartesi стремится сделать переносимые вычисления цепями на разных платформах блокчейна.
Расчеты в реальном мире встречают блокчейн.
Интенсивные вычисления требуют реалистичной платформы. Cartesi позволяет внешним вычислениям работать на процессоре RISC-V в детерминированной операционной системе Linux. Разработчики могут использовать все инструменты, библиотеки и сервисы, с которыми они уже знакомы.
Портативный через несколько блокчейнов.
Интеллектуальные контракты, работающие на разных цепочках блоков, могут точно так же формулировать внешние вычисления в узле Cartesi. Это изолирует сложные вычисления от деталей конкретных блокчейнов, делает их переносимыми и обеспечивает безопасность, неизменность и систему оплаты.
Гарантированный консенсус.
Внешние вычисления могут быть проверены внешне всеми вовлеченными сторонами. Споры разрешаются автоматически Cartesi. Это требует незначительных вычислений внутри блокчейна, независимо от размера внешнего вычисления.
Как Cartesi может помочь изменить мир:
Истинно владей своей игрой
Cartesi откроет огромные новые возможности для игр с блокчейном. Разработчики смогут использовать инструменты, библиотеки и движки, которые можно скомпилировать для Linux. Кроме того, обработка игр будет свободна от ограничений блокчейнов без необходимости жертвовать децентрализацией. Представьте себе недоверенное глобальное участие в нескольких играх.
В поисках неизвестного
Аутсорсинг вычислений позволит миллионам пользователей предоставлять свои простаивающие вычислительные мощности. Это принесет пользу научным исследованиям, 3D-рендерингу, транскодированию видео и многим другим вычислительным задачам абсолютно без доверия, без систем репутации.
Децентрализованная наука о данных
Проверяемые вычисления Картези прокладывают путь к децентрализованным рынкам данных. Предприятия могут передавать задачи по оптимизации экспертам, чья работа будет компенсирована, если и только если они окажутся в вычислительном отношении правильными. Представьте себе, как оптимизировать использование транспорта, основываясь на доставляемых посылках, их размерах и направлениях.
Финансы. Следующий уровень
Приложения Cartesi смогут читать и выполнять сложные вычисления, включающие данные из нескольких блокчейнов. Это позволит обеспечить совместимость между блокчейнами и сервисами, такими как фьючерсные и страховые рынки.
Эффективный ИИ, ИИ
Ненадежный рынок для ИИ и вычислительных задач. Благодаря децентрализованной автоматической проверке Cartesi разработчики смогут создавать сервисы, позволяющие новым DApps передавать и распределять работу. К ним относятся машинное обучение, анализ данных или вычислительные задачи, которые требуют специалистов в этой области. Это открывает новые возможности для более дешевого ИИ, разработанного сторонними экспертами и ботами.
Машины Картези в блокчейне:
Напомним, что Cartesi является платформой для разработки децентрализованных приложений. DA-приложения Cartesi позволяют сторонам, которые не доверяют друг другу, заключать обязательный контракт в блокчейне, который зависит от результатов внецепных вычислений. Для обозначения этих партий удобно использовать символы Алиса и Боб. Обратите внимание, что Алиса и Боб - роли, а не люди. Они могут даже представлять конкурирующие коллективные интересы. Фактически, обе роли будут автоматически выполняться узлами Cartesi, которые защищают интересы тех, кто контролирует внешний компьютер, на котором работает узел. Таким образом, Cartesi DApps - это сотрудничество между набором интеллектуальных контрактов, работающих в блокчейне, и автономным программным обеспечением, работающим на узлах Алисы и Боба. Как правило, один и тот же разработчик DApp отвечает за умные контракты и специальное программное обеспечение Dapp. Роль разработчика DApp будет играть Чарли. Алиса и Боб доверяют Чарли, иначе они бы не связались с его DApp. Чарли, однако, не доверяет ни Алисе, ни Бобу. Естественно, Алиса и Боб тоже не доверяют друг другу.
Роль Картези заключается в поддержке работы Чарли. С этой целью Cartesi предлагает множество примитивов, которые Чарли использует для опосредования потенциально состязательных взаимодействий между Алисой и Бобом. Некоторые примитивы не требуют взаимодействия и могут оцениваться автономно в блокчейне по их входам. Интересными примитивами, однако, являются те, которые, хотя и полностью определены их входными данными, могут быть оценены только вне цепочки. По построению, при использовании Cartesi DApp, Алиса и Боб всегда согласовывают входные данные для таких примитивов. Без потери общности Боб оценивает примитив вне цепочки и отправляет результат. Алисе тогда дают шанс принять или отклонить результат Боба. Бесспорные результаты могут быть использованы DApp Чарли с целью его выбора. В случае отклонения, Cartesi вступает в контакт с Алисой и Бобом в протоколе разрешения спора, который выносит решение в пользу стороны по справедливой причине. Это решение всегда завершается в течение нескольких взаимодействий и с незначительными вычислительными затратами для блокчейна. Картези автоматизирует большую часть этого процесса способом, который чрезвычайно удобен для Чарли.
Самым важным из этих примитивов является Машина Картези. Умные контракты не могут позволить себе хранить состояния для машины Cartesi в блокчейне, не говоря уже о выполнении подразумеваемых вычислений. В конце концов, затраты с точки зрения вычислительной мощности и емкости хранения будут непомерно высокими. Для решения этих проблем Cartesi использует криптографические хеши для краткого представления состояний машины в блокчейне. С точки зрения блокчейна, вычисление - это просто пара хешей, соответствующих начальному и конечному состояниям машины. Содержимое памяти, представленной такими хешами, известно только по цепочке. Cartesi определяет множество дополнительных примитивов, которые позволяют умным контрактам удобно манипулировать содержимым состояний, соответствующих этим хэшам.
Будущая работа:
Основное внимание в этом документе уделяется основной функциональности и интерфейсам, которые DApps используют для непосредственного указания, контроля и проверки вычислений вне цепочки. Платформа Cartesi будет предлагать несколько дополнительных компонентов, построенных на ядре или расширяющих его охват Они будут описаны более подробно в будущих публикациях [Teixeira and Nehab 2019a, b].
Доступность данных
Cartesi устраняет серьезные ограничения хранения блокчейна, сохраняя в цепочке только хеш-значения Меркель для данных вне цепочки. Как упоминалось в разделе 5.2, Cartesi предполагает, что все стороны, участвующие в проверочной роли, имеют доступ к этим данным. В некоторых случаях это сложно гарантировать. В частности, необходимо снизить риск атак с блокированием данных, когда одна из сторон передает хэш блокчейну, отказываясь предоставлять эти данные другим пользователям.
Проблема доступности данных является основной проблемой при разработке алгоритмов согласования блокчейна [Buterin 2012]. Тем не менее, проблема становится намного проще в контексте местного консенсуса. Тейшейра и Нехаб [2019a] предоставляют несколько шаблонов проектирования для работы с доступностью данных во время проверки. Каналы данных, шифрование устройства и регистр данных обеспечивают доступность во всех сценариях, которые могут встретиться в Cartesi DApps.
Юзабилити
Одним из ключевых препятствий на пути широкого внедрения технологии блокчейн является неудобство, испытываемое пользователями DApp. Хотя литература по удобству использования централизованных приложений по-прежнему применима к децентрализованным, идиосинкразии блокчейна еще не были полностью рассмотрены с точки зрения пользовательского опыта. Teixeira и Nehab [2019a] описывают несколько шаблонов проектирования для разработки простых и интуитивно понятных приложений DApp.
В качестве примера, Cartesi предложит автоматическую инфраструктуру для торговли токенами. Это освободит пользователей от беспокойства по поводу различных токенов, используемых внутри каждого DApp. Система аутсорсинга отсроченных действий также будет предоставлена. Это позволит пользователям выключать свои машины даже при использовании протокола, который требует взаимодействия с блокчейном в строго установленные сроки. В этой ситуации прокси-сторона будет действовать от имени пользователя в обмен на плату. (Очень похоже на рынок делегирования споров, описанный в разделе 6.2.) Использование криптографических временных замков [Rivest et al. 1996] также будет учитывать ситуации, в которых пользователь должен в будущем раскрыть секрет, который не следует немедленно передавать доверенному лицу. Будут описаны другие конструкции удобства использования, чтобы упростить передачу файлов и снизить затраты на газ. В совокупности эти средства приблизят взаимодействие пользователей Cartesi DApps с современными централизованными решениями.
Картези SDK
С выпуском Cartesi SDK будет доступно множество высокоуровневых API, инкапсулирующих типичные варианты использования ядра. Они будут включать в себя описанные выше решения для удобства использования и доступности данных, а также контейнеры для узла Cartesi и для разработки машин Cartesi. Со временем API, доступные в SDK, значительно уменьшат размер и сложность компонентов блокчейна DApps. В свою очередь, это значительно увеличит переносимость DApp-файлов на несколько блокчейнов. Cartesi SDK будет распространяться с открытым исходным кодом и широко документироваться [Teixeira and Nehab 2019b].
Расширения к Cartesi Machine
Машины Cartesi могут быть дополнены двумя новыми устройствами. Устройство дешифрования дает приложениям возможность обходить структуры данных хеш-указателя. Программы, работающие внутри Cartesi Machine, могут использовать устройство для дешифрования для считывания содержимого блока с учетом только его хэша. Хотя эта операция в общем невозможна, она становится возможной, когда все стороны разрешенных блоков заранее известны всем сторонам. Самое прямое применение - это сами блокчейны. Когда машина Cartesi работает, устройство для дешифрования запрашивает хеш-таблицу, предварительно загруженную в хост, для блока, который соответствует хешу. Если возникает спор, любая сторона может предложить блок в качестве доказательства того, что он соответствует требуемому хешу. Таким образом, устройство для дешифрования позволяет выполнять интроспекцию блокчейна. Стороны могут заключать контракты, которые зависят от всего состояния блокчейна, где сами контракты определены. Это имеет множество ценных приложений, особенно на фьючерсных рынках.
Другое запланированное устройство - своевременный порт данных. Порт обеспечивает воспроизводимую связь между машинами Cartesi путем привязки пакетов данных, входящих или выходящих из машины, к значению mcycle в этом событии. DApps может планировать доставку пакетов на определенный будущий цикл. Машины Cartesi также можно откатить на мотоцикл для доставки. Порт своевременного обмена данными открывает новые возможности в продвижении к Web 3.0. Это позволит DApps, которые включают в себя прямое сотрудничество между несколькими машинами Cartesi.
Толпа споров
Можно представить приложения, в которых участвует много независимых участников, каждый из которых имеет определенную долю в результатах вычислений вне цепочки. В таких случаях жизненно важно не допустить, чтобы скоординированная толпа нечестных участников использовала последовательные споры о честном результате в качестве атаки на отказ в обслуживании по контракту. Мы разработали вариант проверочной игры, который позволяет любому честному участнику защитить свой результат от целой толпы с незначительными затратами. Когда спрос станет очевидным, платформа Cartesi будет расширена для поддержки этого варианта.
Дорога в Картези:
Воспроизводимость
Наш MVP - это современная детерминированная виртуальная машина. Это позволяет смарт-контрактам указывать сложные вычисления, которые выполняются вне цепи в ОС Linux воспроизводимым способом.
проверяемость
Полное Ядро Cartesi позволяет оценивать эти сложные вычисления для корректности на блокчейне, с незначительными затратами, безопасным и децентрализованным способом.
инфраструктура
Cartesi будет публиковать и поддерживать SDK с открытым исходным кодом для всего мира. Создавайте свои собственные децентрализованные приложения без знания языков блокчейна и размещайте их в растущей сети узлов Cartesi.
Выводы:
Этот документ заложил основы, на которых стоит платформа Cartesi. Миссия Cartesi - помочь разработчикам DApp создавать еще более привлекательные продукты для своих клиентов. Как и при любой смене парадигмы, блокчейн предоставляет как возможность для реальных инноваций, так и риск «переосмысления колеса». Прямо применяя принцип наименьшего удивления, ядро Cartesi позволяет разработчикам использовать уже существующие знания и инструменты для повышения своей производительности. Остальные компоненты платформы Cartesi, описанные в будущем документе [Teixeira and Nehab 2019a], помогут разработчикам раскрыть свой творческий потенциал, воспользовавшись уникальными возможностями блокчейна.
Для получения дополнительной информации, пожалуйста, перейдите по ссылке ниже:
Веб-сайт: https://cartesi.io/
Белая книга: https://cartesi.io/cartesi_whitepaper.pdf
Facebook: https://www.facebook.com/cartesiproject
Twitter: https://twitter.com/cartesiproject
Telegram: https://t.me/CartesiProject
Средний: https://www.medium.com/cartesi
Reddit: https://www.reddit.com/r/cartesi
Споры: https://discord.gg/Pt2NrnS
ABTOP: Devani17
ETH Address:0xfC9eC58F3F077874ABdAf6F971f63E84d6F134c4
Tidak ada komentar:
Posting Komentar