Skip to content

Latest commit

 

History

History
135 lines (77 loc) · 16.9 KB

intro.md

File metadata and controls

135 lines (77 loc) · 16.9 KB

Introduction to TON Smart Contract Development

Вступление

В данной статье постарался дать теоретический минимум, который сделает разработку смарт-контрактов на TON понятной, в случае если вы никогда не касались блокчейн разработки.

Что такое блокчейн

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

Блоки — это специальная структуры для записи группы транзакций.

Транзакция в сетях блокчейн считается завершённой, когда транзакция объединена в группу с несколькими другими и записана в специальную структуру — блок.

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

Каждый новый блок согласуется каждым компьютером сети. Такие компьютеры называют «узлами». Узлы гарантируют, что все, кто взаимодействует с блокчейном, имеют одни и те же данные. Чтобы достигнуть этого распределенного соглашения, блокчейну требуется механизм консенсуса.

Proof of Work

Доказательство работы (PoW) — это децентрализованный механизм консенсуса, который требует, чтобы участники сети прилагали усилия для решения произвольной математической головоломки, чтобы никто не мог обмануть систему.

Майнинг - процесс решения подобных головоломок для поддержания консенсуса, с получением вознаграждения

Proof of Stake

Доказательство доли владения меняет способ проверки блоков с помощью компьютеров владельцев монет. Владельцы предлагают свои монеты в качестве залога за возможность проверки блоков.

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

TON использует именно механизм Proof of Stake

Что такое TON Blockchain

TON — это децентрализованный блокчейн, концепцию этого блокчейна разработала команда Telegram, в 2019 году команда Telegram получила запрет от Американской комиссии по ценным бумагам на выпуск своей криптовалюты, что сделало продолжение работы над блокчейном невозможным, но TON был "передан" независимому сообществу разработчиков The Open Network, которые и занимаются его развитием сейчас. Он может похвастаться сверхбыстрыми транзакциями, небольшими комиссиями, простыми в использовании приложениями и эко логичностью.

Технически с сеть TON это сеть из виртуальных машин TVM. Каждый узел сети TON, хранит копию состояния всего блокчейна TON. Кроме того, любой участник может транслировать запрос этому компьютеру на выполнение произвольных вычислений. Каждый раз, когда такой запрос транслируется, другие участники сети проверяют, подтверждают и производят («выполняют») вычисление. Это «выполнение» вызывает изменение состояния в TVM, которое фиксируется и распространяется по всей сети.

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

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

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

Что такое TONcoin

Toncoin — это криптовалюта TON. Благодаря криптовалюте Toncoin существует рынок для вычислений. Такой рынок обеспечивает участникам экономический стимул для проверки и выполнения транзакционных запросов и предоставления вычислительных ресурсов сети.

Любой участник, транслирующий запрос транзакции, должен заплатить комиссии в Toncoin.

Что такое Смарт-контракты

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

Любой разработчик может создать смарт-контракт и опубликовать его в сети, выплатив комиссию сети. Затем любой пользователь может вызвать смарт-контракт для выполнения его кода, опять же за комиссию, выплаченную сети.

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

Важно также отметить, что опубликованные смарт-контракты имеют адрес в сети.

Вы, наверное, могли слышать про токены или NFT, они реализуются как раз за счет смарт-контрактов.

Особенности смарт-контрактов как приложений

Важно отметить некоторые особенности смарт-контрактов:

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

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

Поэтому прежде чем пользоваться каким-либо смарт-контрактом, стоит его изучить.

Также в TON все расчетные затраты (затраты в целом в сети) номинированы в газовых единицах. Цена единиц газа определяется этой конфигурацией сети. Файл может быть изменен валидаторами. Подробнее про газ - здесь.

Что такое децентрализованные приложения

Децентрализованное приложение (DApp) — это приложение, из бэкэнда в виде смарт-контракта и некого фронтэнда, пользовательского интерфейса.

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

Тестовые сети или где разрабатывать

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

  • Криптовалюта тестовой сети не имеет ценности и обычно ее можно получить бесплатно в небольшом объеме для теста смарт-контрактов
  • Меньше узлов, так как операций в тестовой сети происходит меньше

В TON также есть своя тестовая сеть https://ton.org/docs/#/testnet/ Toncoin'ы для тестовой сети выдаются с помощью бота: https://t.me/CryptoTestnetBot Explorer для тестовой сети: https://testnet.tonscan.org

Что такое Эксплорер поговорим дальше.

Эксплореры

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

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

Да, если кто-то знает адрес вашего кошелька на ТОН он может посмотреть всю информацию о ваших транзакциях

Пример эксплорера на TON: https://tonscan.org/

Языки программирования в TON

Смарт-контракты TON выполняются на виртуальной машине TON. Для разработки смарт-контрактов есть язык низкоуровневый Fift, а также высокоуровневый FunC.

В будущем также планируется еще один верхнеуровневый язык - Tact.

Получение информации о TON по API

Если вы хотите получить доступ к какой-либо информации в блокчейне, без полной индексации блокчейна, вы можете воспользоваться специальными API сервисами, примеры таких сервисов для TON:

https://tonapi.io/docs/ https://github.com/ton-foundation/ton-api-v4 https://toncenter.com/api/v2/

Почему TON

Большинство современных популярных блокчейнов обладают одной из следующих проблем:

  • высокие транзакционные комиссии (пример: Ethereum)
  • падения сети (пример: Solana)
  • слабая децентрализация (пример: Ronin и Axie Infinity)
  • слабые технические решения, приводящие к взлому и потере денег (пример: блокчейн-мост Horizon)

Также многие блокчейны являются просто копией Ethereum с другими параметрами.

TON на первый взгляд лишен подобных проблем, но так ли это конечно покажет только время.

Общо обсуждать преимущества TON довольно сложно так, как это тема требует глубокого погружения в whitepaper TON. Но стоит отметить, что TON обладает отличными показателями:

  • Масштабируемости (Способность работать при большом количестве пользователей, взаимодействующих друг с другом)
  • Производительности (Производительность блокчейна указывает, способна ли платформа обрабатывать смарт-контракты в "больших объемах")
  • Скорость обработки блока (Чем быстрее генерируются блоки, тем меньше времени приходится пользователям ждать перевода денег или исполнения смарт-контракта.)

Также стоит упомянуть низкую стоимость комиссий Whitepaper - детальное представление проекта.

Для более глубокого сравнения TON с другими блокчейнами, советую посмотреть на эту статью: https://ton.org/analysis