✓ SubscribeSubscribers: 3133

Telegram channel blind_dev
😎 Незрячий web3 программист


Смартконтракты: что такое, как научиться их создавать. Идея из будущего 😊

Смартконтракты - децентрализованные приложения, работающие на устройствах валидаторов блокчейнов.
Их пишут чаще всего на solidity (основан на Javascript, но обладает статической типизацией и другими отличиями).

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

Пример:
Вася хочет продать машину Паше. Они не знакомы, по сему не доверяют. Выбирают гаранта Ваню.
Каждый из них добавляет в смартконтракт по 300000 рублей (стоимость машины - в блокчейнах указывается криптовалюта).
Далее Вася передаёт машину Паше и подтверждает со своей стороны сделку.
Если Паша принимает, сделка завершается. Средства Васи передаются Паше, а собственные средства Павла разблокируются.
Если же покупатель сообщает, что не получил товар, активируется проверка гарантом.
Каждый из них отправляет доказательства.
Гарант выбирает сторону:
Если ей оказывается Вася, он получает свои деньги обратно, а также деньги Паши, как если бы он продал машину.
Если Паша, тот получает свои деньги и 10% от суммы денег Васи (штраф).

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

Другими вариантоми смартконтракта могут быть приложение, который отправляет вам случайно сгенерированное число на основе отправленных ему данных (введённых слов); система кридитования в стейблкоинах (токенах, привязанных к доллару или иному фиату) под залог другой криптовалюты.
И т.п.

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

P. S. Строго типизированные языки - это ЯП, которые требуют для указания числа писать не просто само число (number = 1), а с типом (number:uint32 = 1). uint32 - это тип.


P. P. S. Смартконтракты могут связываться друг с другом, становясь, по сути, более масштабным приложением.

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

Как научиться их создавать?
1. Изучать документацию и другие статьи / видео по solidity;
2. Если блокчейн поддерживает RUST, C++ или иные языки программирования, изучайте их. Ну а если уже знаете, просто осваивайте документацию по созданию смартконтрактов (какие методы, глобальные переменные и пр.).

И напоследок, идея из будущего:
Есть квартира или дом. Владелец запускает смартконтракт.
Клиент арендует жильё, отправив деньги в смартконтракт.
Децентрализованное приложение выдаёт ему ключ, который человек должен ввести при входе. Этот ключ никто не знает, кроме клиента.
Приехав, клиент вводит ключ. Аппаратура отправляет транзакцию в блокчейн и получает сообщение от смартконтракта, что код верен. Дверь открывается.

Всё:
Будут вопросы, пишите в @blind_dev_chat.
Хотел написать простыми словами, но не уверен, что получилось...
🕒 27.05.2021 08:00👍 7≈0.237 Ƶ👎 0