SUI — источник вдохновения!
Большая статья. Часть 1.
Доброго времени суток, наконец-то нашелся повод рассказать вам про наверное самый перспективный Web 3.0 проект под названием “капля воды какая-то”, шучу шучу, речь конечно же про Sui, а название статьи такое потому что, у меня это капелька водички ассоциируется с эдаким источником вдохновения для тех, кто стремится построить нечто своё!
Сегодня мы разберём все внутренности проекта, его основы, и постараемся простым языком объяснить “Что из себя представляет Sui?”. Так что если вам лень вычитывать whitepaper проекта, но интересно узнать что такое Sui, то поздравляю, это материал специально для тебя, “ленивый искатель”. Заваривайте чай, кофе, усаживайтесь поудобнее, а мы начинаем….
Введение
Начнём с простого “Стройте без границ”, именно так говорят нам первые слова на официальном сайте проекта Sui. Это означает, что проект позиционирует себя как, некая площадка или платформа, что по сути одно и то же, на которой можно строить без каких-либо границ.
Уже кое-что согласитесь? Но что это за платформа такая “без границ”..
“Sui — это децентрализованная платформа смарт-контрактов
без ограничений, ориентированная на управление активами с низкой задержкой. Данная платформа использует язык программирования Move для определения активов как объектов, которые могут принадлежать адресу. Программы языка программирования Move определяют операции с этими типизированными объектами, включая пользовательские правила для их создания, передачи этих активов новым владельцам и операции, которые изменяют активы.” Whitepaper SUI
Уже интересней, но если по простому, это площадка построенная на собственном языке программирования “Move” и этот язык, как заверяют разработчики платформы и (*спойлер) те кто уже разрабатывает на этой платформе, крайне прост и удобен в использовании.
“Sui поддерживается неограниченным набором органов власти, которые играют роль, аналогичную валидаторам или майнерам в других системах блокчейна. Sui использует византийский протокол между органами власти для обеспечения безопасности общих операций с активами, обеспечивая меньшую задержку и лучшую масштабируемость по сравнению с византийским соглашением. Sui полагается только на византийское соглашение о безопасности общих объектов, а также операции управления и контрольного наведения, выполняемые вне критического пути задержки.
Выполнение смарт-контрактов также естественным образом распараллеливается, когда это возможно.
Sui поддерживает “неполных” клиентов, которые могут проверять подлинность чтения, а также “полных” клиентов, которые могут проверять все переходы для обеспечения целостности. Эти средства позволяют создавать мосты с минимальным доверием к другим блокчейнам.” Whitepaper SUI
Фух.. выдохнули. Что из этого мы поняли? Да то что Sui соответствует всем принципам действительно децентрализованного блокчейна и даже немного больше, сами разработчики намекают нам на то что, это совершенно независимый блокчейн, и всё в нем устроено так чтобы его работу нельзя было нарушить ни снаружи, ни изнутри самого блокчейна.
“Сразу оговорюсь, что уровень статьи рассчитан на все категории пользователей Web 3.0, поэтому если для вас данное обьяснение слишком примитивное, то читайте документацию разработчиков, мы же пытаемся максимально упростить прочтение обывателю криптовалютного мира”.
Так на чём это мы.. Ах да, безопасный блокчейн, это усвоили. Но чем обеспечивается его безопасность? У любого топового блокчейна эту роль выполняет актив (“токен”) этого самого блокчейна. И Sui не стал исключением!
“Собственный актив Sui используется для оплаты газа во всех операциях внутри блокчейна. Он также используется его владельцами для делегирования доли властям для управления Sui в течение эпох и периодически органы власти перенастраиваются в соответствии с делегированной им долей. Использованный газ распределяется
между органами власти и их делегатами в соответствии с их долей участия и их вкладом в работу Sui”. Whitepaper SUI
И тут всё тоже на уровне, думаю вы уже поняли, но мы повторим. Каждый владелец токена блокчейна принимает участие в его жизни и чем больше ваша доля активов, тем выше ваше влияние на решения связанные с жизнью проекта. Тут хочется сказать что, полная децентрализация практически не достижима, и строго говоря будут ребята у которых доля в проекте больше других, соответственно и влияние на решения они оказывают больше других. Почти наверняка это будут крупные ранние инвесторы и фонды, которые оказали поддержку проекту на самых ранних этапах, а значит они сами максимально заинтересованы в светлом будущем проекта. К тому же управление будет осуществляться квалифицированными людьми, поэтому тут грех жаловаться, таковы реалии…
Программирование смарт-контрактов
И так, как мы и обещали заглянем немного “под капот” нашему проекту и постараемся кратко обсудить основные особенности языка Move и объясним, как он используется для создания активов на Sui и управления ими.
“Смарт-контракты Sui написаны на языке Move.
Move безопасен и выразителен, а его система типов и модель данных естественным образом поддерживают стратегии параллельного согласования/исполнения, которые делают блокчейн Sui достаточно масштабируемым.
Move — это язык программирования с открытым исходным кодом для построения смарт-контрактов, первоначально разработанный для Facebook. Язык не зависит от платформы, и в дополнение к тому, что он был принят Sui, он набирает популярность на других платформах (например, 0L, StarCoin)”. Whitepaper SUI
Более подробное объяснение функций Move можно найти в книге по языку программирования Move, а более подробную информацию о Move, относящуюся к конкретному костюму, можно найти на портале разработчика Sui.
Краткий обзор
Sui включает в себя пул программируемых объектов, созданных и управляемых пакетами Move, которые представляют собой коллекции модулей Move, касающихся функций и типов Move.
Сами пакеты Move также являются объектами. Таким образом, объекты Sui могут быть разделены на две категории:
- Значения структурных данных: типизированные данные, управляемые модулями Move. Каждый объект представляет собой структурное значение с полями, которые могут содержать
примитивные типы (например, целые числа, адреса), другие объекты и необъектные структуры. - Значения кода пакета: набор связанных модулей байт-кода Move, опубликованных как единица. Каждый модуль в пакете может зависеть как от других модулей в этом пакете, так и от модулей в ранее опубликованных пакетах.
Объекты могут кодировать активы (например, взаимозаменяемые или невзаимозаменяемые токены), возможности, предоставляющие разрешение на вызов определенных функций или создание других объектов, “смарт-контракты”, которые управляют другими активами, и так далее — решать программисту. Код Move для объявления пользовательского типа объекта Sut выглядит следующим образом:
Все структуры, представляющие объекты Sui (но не все значения структуры Move), должны иметь поле id и возможность ключа, указывающие, что значение может быть сохранено в глобальном пуле объектов Sui.
Модули. Программа Move организована как набор модулей,
каждый из которых состоит из списка объявлений структур и функций. Модуль может импортировать типы структур из других модулей и вызывать функции, объявленные другими модулями.
Транзакции и точки входа. Глобальный пул объектов обновляется с помощью транзакций, которые могут создавать, уничтожать, читать и записывать объекты. Транзакция должна принимать каждый существующий объект, с которым она хочет работать, в качестве входных данных. Кроме того, транзакция должна включать в себя идентификатор версии объекта пакета, имя модуля и функции внутри этого пакета и аргументы функции (включая входные объекты). Например:
Создание и перенос объектов. Программисты могут создавать
объекты, используя TxContext, переданный в точку входа, чтобы сгенерировать новый идентификатор для объекта:
Разработчики Sui отмечают, что если бы программный код пренебрег включением одного из вызовов переноса, этот код был бы отклонен системой типа Move. Move обеспечивает защиту безопасности ресурсов, гарантирующую, что объекты не могут быть созданы без разрешения, скопированы или случайно уничтожены. Другим примером безопасности ресурсов была бы попытка дважды перенести один и тот же объект, которая также была бы отклонена системой типа Move.
Подведём небольшой промежуточный итог, мы разобрались подробнее что из себя представляет язык программирования Move, а так же на примерах рассмотрели особенности Модулей, Создания и переноса объектов, а такжe Транзакций языка программирования Move.
THE SUI SYSTEM
Да, название главы на английском.. Так лучше звучит!
В этом разделе мы постараемся описать Sui с точки зрения системы, включая механизмы обеспечения безопасности и жизнеспособности во всех органах власти, несмотря на возникающие сбои “византийские ошибки”.
Мы также постараемся показать схему работы с клиентами, включая “легких” клиентов, которым нужна некоторая уверенность в состоянии системы без проверки ее полного состояния.
“На системном уровне Sui представляет собой эволюцию
расчетной системы с низкой задержкой, расширенной для работы с произвольными объектами с помощью определяемых пользователем смарт-контрактов и с делегированным составом комитета по проверке доли без разрешения”.
Схема работы протокола согласия
Рисунок иллюстрирует взаимодействие между клиентом и органами Sui для совершения транзакции:
- Пользователь с закрытым ключом подписи создает и подписывает пользовательскую транзакцию для изменения принадлежащих ему объектов или общих объектов в Sui. Впоследствии ключи подписи пользователя не требуются, и остальная часть процесса может быть выполнена пользователем-клиентом или шлюзом от имени пользователя (обозначается как операция без ключа на схеме(“Keyless operation”)).
- Пользовательская транзакция отправляется органам Sui, которые каждый раз проверяют ее на действительность, а в случае успеха подписывают ее и возвращают подписанную транзакцию клиенту. Клиент собирает ответы от органов власти для формирования сертификата транзакции.
- Затем сертификат транзакции отправляется обратно всем органам власти, и если транзакция включает в себя общие объекты, он
также отправляется в протокол византийского соглашения, управляемый органами Sui. Органы власти проверяют сертификат, и в случае, если задействованы общие объекты, также ожидают, пока протокол соглашения упорядочит его по отношению к другим транзакциям с общими объектами, а затем выполнит транзакцию и суммирует ее последствия в подписанном ответе эффектов. - Как только совокупность уполномоченных органов оформит сертификат, его действие будет окончательным (обозначено как окончательность(“Finality”) на диаграмме). Клиенты могут собрать совокупность ответов уполномоченных органов и создать сертификат последствий и использовать его в качестве доказательства окончательности последствий транзакций.
В этом разделе подробно описывается каждая из этих операций, а также операции по перенастройке состояния и управлению им между органами власти.
Восстановление. Из-за ошибки клиента или двусмысленности
клиента принадлежащий объект может стать “заблокированным” в течение эпохи, что не позволит любой транзакции, касающейся его, быть сертифицированной (или завершенной).
Например, клиент, подписывающий две разные транзакции, используя одну и ту же версию принадлежащего объекта, причем половина полномочий подписывает каждую, не сможет сформировать сертификат, требующий совокупности подписей
для любого из двух сертификатов. Восстановление гарантирует, что после смены эпох такие объекты снова находятся в состоянии, позволяющем их использовать в транзакциях. Поскольку сертификат не может быть сформирован, исходный объект доступен в начале следующей эпохи для работы.
Поскольку транзакции содержат номер эпохи, старые двусмысленные
транзакции не будут снова блокировать объект, давая его владельцу возможность использовать его.
Читайте подробнее про систему работу блокчейна здесь…
“Если вы дочитали до этого момента, вы уже молодец! А если вы ещё при этом читали документацию самих разработчиков, то вы просто герой!”
НУ ЧТО Ж НАПОСЛЕДОК МЫ ПОВЕДАЕМ О САМЫХ ИНТЕРЕСНЫХ МЕТРИКАХ БЛОКЧЕЙНА — МАСШТАБИРУЕМОСТЬ И СКОРОСТЬ РАБОТЫ ИЛИ ЗАДЕРЖКУ
“Система Sui позволяет масштабироваться, хотя органы власти выделяют больше ресурсов, а именно процессоров, памяти, сети и хранилища внутри машины или на нескольких машинах, для обработки транзакций. Увеличение объема ресурсов приводит к увеличению способности обрабатывать транзакции, что приводит к увеличению комиссионных доходов для финансирования этих ресурсов. Увеличение ресурсов также приводит к снижению задержки, поскольку операции выполняются без ожидания, пока станут доступны необходимые ресурсы”. Whitepaper SUI
Если по-простому то, чем больше ресурсов для обработки транзакций тем больше транзакций, чем больше транзакций, тем больше денег, а если денег больше, то можно обновлять и закупать новые ресурсы для обработки ещё большего кол-ва транзакций! ГЕНИАЛЬНО, по сути потолка в этих параметрах нету, всё зависит от востребованности Sui.
НЕ верите нам, вот что говорят сами ребята из Sui:
“Чтобы гарантировать, что увеличение объема ресурсов приведет к квазилинейному увеличению пропускной способности, дизайн Sui агрессивно сокращает узкие места и точки синхронизации, требующие глобальных блокировок внутри органов власти. Обработка транзакций четко разделена на два этапа, а именно обеспечение того, чтобы транзакция имела эксклюзивный доступ
к принадлежащим или совместно используемым объектам в определенной версии, и последующее выполнение транзакции и фиксация ее последствий”. Whitepaper SUI
Задержка. Разработчикам смарт-контрактов предоставляется возможность гибко контролировать задержку операций, которые они определяют, в зависимости от того, связаны ли они с принадлежащими или совместно используемыми объектами. Принадлежащие объекты полагаются на надежную трансляцию перед выполнением и фиксацией, что требует двух обращений туда и обратно к совокупности органов власти для достижения окончательного результата. Операции, связанные с разделяемыми объектами, с другой стороны, требуют согласованной широковещательной передачи для создания сертификата, а затем обрабатываются в рамках согласованного протокола, что приводит к увеличению задержки.
ВЫВОДЫ
“Выводов здесь на самом деле бесчисленное множество, но давайте ещё раз просто отметим тот материал который прочитали и постараемся тезисно ответить на вопрос Что из себя представляет Sui?”
На самом деле, лучше всего это сделали за нас разработчики, но мы постараемся не повторяться и дать своё объяснение.
Sui — это децентрализованная площадка, построенная на совершенно новом и адаптированном языке программирования, отвечающая всем требованиям истинного блокчейна нулевого уровня, созданная именно для того чтобы разработчикам было как можно проще создавать свои приложения и привлекать клиентов в Web 3.0 индустрию, а также имеющая безграничные возможности и ресурсы для масштабируемости и развития как платформы!
Доказательством данному определению служит весь материал который мы нашли и который мы с удовольствием предлагаем к вашему прочтению, все ссылки будут ниже.
Очень надеемся что наш материал помог вам ответить на главный вопрос Что из себя представляет Sui?. И если это так, то наш труд был не зря. Но это ещё всё, так что мы не прощаемся, а говорим “Досвидания!”
Использованные источники:
https://sui.io/
https://twitter.com/SuiNetwork
https://discord.com/invite/sui
https://medium.com/mysten-labs
https://github.com/MystenLabs/sui/blob/main/doc/paper/sui.pdf
https://en.wikipedia.org/wiki/Low_latency
https://crypto.news/learn/blockchain-bridges/
https://habr.com/ru/post/448056/
https://translated.turbopages.org/proxy_u/en-ru.ru.a7262e82-6399fb31-209a492b-74722d776562/https/en.wikipedia.org/wiki/Quantum_Byzantine_agreement#The_Byzantine_protocol
https://mystenlabs.notion.site/mystenlabs/Sui-Visual-Assets-4be81179760349eebbbefd6736a58613
Наши контакты:
Discord: Mark2299#0998
Twitter: https://twitter.com/Mark98576543
Telegram: https://t.me/Douown