Новое неограниченное хранилище смарт-контрактов Algorand

Dec 03 2022
Как вы собираетесь использовать ящики на Algorand?
Разработчики, с которыми я работаю, иногда говорят: «Можно построить все». Это захватывающий аспект разработки программного обеспечения и одна из основных причин, по которой люди влюбляются в программирование — оно позволяет создавать все, что вы можете себе представить.

Разработчики, с которыми я работаю, иногда говорят: « Можно построить все ». Это захватывающий аспект разработки программного обеспечения и одна из основных причин, по которой люди влюбляются в программирование — оно позволяет создавать все, что вы можете себе представить.

К сожалению, блокчейн-инженеры чаще говорят: « Можно построить все…

…но это тяжело.
…но это рискованно.
…но это будет дорого эксплуатироваться».

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

По этим причинам многие предположительно децентрализованные приложения в блокчейне, к сожалению, частично зависят от сторонних сервисов. Рождение «сети 2.5», а не «сети 3.0», по мере того, как мир движется к истинной децентрализации.

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

Выпуск АВМ 8

Наша последняя версия AVM не является исключением. Мы представили новую гибкую форму хранения смарт-контрактов: ящики. Смарт-контракт может создавать столько блоков, сколько ему нужно, нужного размера (до 32 КБ), когда они ему нужны.

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

Учитывая постоянно расширяющийся набор токенов, доступных на Algorand, будь то собственные или мостовые, контракту оракула Алисы со временем потребуется все больший объем постоянного хранилища.

Коробки — идеальное решение: смарт-контракт Алисы выделяет одну коробку на каждый токен, который он отслеживает.

Когда CoolCoin создается, новый блок «CoolCoin» может быть создан контрактом оракула. В этом поле будет храниться цена CoolCoin. Впоследствии это значение может быть прочитано и обновлено контрактом оракула Алисы. Пользователи, которые хотят узнать цену CoolCoin, звонят в контракт оракула, чтобы узнать цену.

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

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

Сколько стоят коробки?

Конечно, цифровое хранилище имеет свою стоимость, а в блокчейне оно дороже из-за его распределенного (и дублирующего) характера.

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

Если они сохранят фотографию максимального размера (32 КБ), это будет стоить им около 13 Algo, примерно 3–4 доллара на момент написания статьи.

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

Что еще мы можем сделать с коробками?

Почти что угодно. Ящики представляют собой настолько гибкую и мощную парадигму, что, вероятно, большинство смарт-контрактов будут использовать ящики в будущем.

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

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

На высоком уровне мост блокирует актив в отправляющем блокчейне и создает соответствующий актив в принимающем блокчейне. Успешная повторная атака на мост будет дублировать активы чеканки в принимающей цепочке блоков для одного заблокированного актива в отправляющей цепочке блоков.

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

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

Еще одним интересным вариантом использования боксов является система управления, которую xBacked планирует внедрить .

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

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

С коробками решение кажется достаточно простым: одна коробка на предложение, например, «Предложение Анны «Делай добро». Коробка содержит формулировку предложения и варианты голосования.

Но где должны храниться сами голоса? Контракт должен отслеживать, кто уже проголосовал, чтобы убедиться, что они не проголосуют снова. Таким образом, для каждого голоса может быть создано одно поле, например, «голос Алисы за предложение Анны «Делай добро». Это будет очень маленькая коробка, и их будет много (сколько голосов).

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

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

AVM был создан с самого начала с учетом безопасной и эффективной разработки смарт-контрактов: собственные атомарные свопы, активы, смарт-контракты — и теперь неограниченное хранилище смарт-контрактов. AVM стала одной из самых мощных и универсальных платформ смарт-контрактов в бизнесе.

Все технические подробности о ящиках и способах их использования см. в статье портала для разработчиков:https://developer.algorand.org/articles/smart-contract-storage-boxes/