# Почему блокчейн?

Простая умственная модель для понимания "что" и "почему".

\
Блокчейн - это децентрализованное соглашение среди разнообразного набора участников о двух вещах:

1. Официальном порядке (реестре) транзакций.
2. Официальном состоянии мира, включая балансы счетов и состояние различных программ.

В современных блокчейнах, таких, как Ethereum, транзакции состоят из передачи балансов, создания новых программ и вызова функций существующих программ. Агрегированный результат всех транзакций до настоящего момента создает текущее состояние, поэтому согласие относительно (1) подразумевает согласие относительно (2).

В системе блокчейн установлен набор протокольных правил, которые описывают, как распределенный набор узлов, находящихся в настоящее время в синхронизации, будет взаимодействовать друг с другом, чтобы договориться о новом списке транзакций, которые каждый из них должен применить. Индукция поддерживает синхронизацию узлов: они начинают с одного и того же состояния и применяют те же самые транзакции, поэтому в конце применения нового списка транзакций у них по-прежнему есть согласованное состояние. (В тексте не углубляются в детали о том, как такая система узлов достигает согласия, но вы можете [обратиться к документации](https://prufiox.gitbook.io/monad-dlya-razrabotchikov/tekhnicheskoe-obsuzhdenie/konsensus/monadbft) по механизму консенсуса Monad для получения дополнительной информации.)

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

## Пример приложения

Децентрализованные приложения могут реализовывать функциональность, которая обычно реализуется в централизованной форме. Например, очень простым примером децентрализованного приложения является Виртуальный Банк (обычно называемый в криптовалютной среде Протоколом Займов).

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

Виртуальный Банк - это просто приложение с четырьмя основными методами: внесение `депозита`, `вывод депозита`, `получение займа` и `погашение займа`. Логика для каждого из этих методов в основном сводится к ведению бухгалтерии, чтобы убедиться, что депозиты и кредиты отслеживаются правильно:<br>

```
class VirtualBank:
    def deposit(self, sender, amount):
        # перевести сумму от отправителя к себе (банку)
        # выполнить внутреннюю бухгалтерию для зачисления отправителю

    def withdraw(self, sender, amount):
        # убедиться, что у отправителя достаточно средств на счету
        # выполнить внутреннюю бухгалтерию для списания средств у отправителя
        # перевести сумму от себя (банка) к отправителю

    def borrow(self, sender, amount):
        # ...

    def repay(self, sender, amount):
        # ...
```

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

Этот простой пример демонстрирует силу децентрализованных приложений. Вот несколько других преимуществ:

* **Открытые API / композиционность**: децентрализованные приложения могут быть вызваны атомарно другими децентрализованными приложениями, позволяя разработчикам создавать более сложные функции, объединяя существующие компоненты.
* **Прозрачность**: логика приложения выражается исключительно через код, поэтому любой может просмотреть логику для выявления побочных эффектов. Состояние прозрачно и поддается аудиту; доказательство резервов в DeFi является стандартом.
* **Устойчивость к цензуре и доверительная нейтральность**: любой может отправлять транзакции или загружать приложения в сеть без разрешения.
* **Глобальный охват**: любой с доступом к интернету может получить доступ к важным финансовым услугам, включая пользователей без банковского счета или с ограниченным доступом к банковским услугам.
