/**
@page economic_model Технико-экономическая модель
@ingroup public_system

## Введение

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

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

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

## Фундаментальные основы системы

### Назначение и роль вычислительных ресурсов

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

- <b>RAM (оперативная память)</b> - используется для постоянного хранения данных аккаунтов,
  состояния смарт-контрактов и всей информации, которая должна быть доступна в любой момент смарт-контрактов для их работы.
- <b>CPU (вычислительные ресурсы)</b> - необходимы для выполнения математических операций по ходу обработки логики смарт-контрактов.
- <b>NET (сетевые ресурсы)</b> - требуются для передачи данных между узлами сети и распространения информации о транзакциях.

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

### Кооперативная модель использования ресурсов

В системе COOPOS вычислительные ресурсы <b>не передаются пайщикам</b> безвозвратно. Вместо этого ресурсы остаются у кооператива, который совершает операции **ЗА пайщиков** в соответствии с кооперативной бизнес-логикой. Это означает, что пайщики не должны беспокоиться о покупке ресурсов, кооператив оптимально управляет распределением ресурсов, гарантируется справедливость и доступность для всех пайщиков.

### COOPOS как ядро бизнес-логики кооперативов

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

## Система аренды ресурсов

### Принцип работы арендной системы

Система аренды ресурсов в COOPOS построена на принципе временного делегирования
вычислительных мощностей от общего пула ресурсов конкретным пользователям.

<b>Делегаты сети</b> - это люди или команды, которые:
- Владеют серверной инфраструктурой (физические серверы с RAM, CPU, интернет-каналами)
- Поддерживают работу блокчейн-сети (производят блоки, валидируют транзакции)
- Предоставляют свои вычислительные ресурсы в общий пул для аренды
- Получают вознаграждение за свою деятельность

Именно делегаты формируют общий пул ресурсов платформы, предоставляя их
в аренду кооперативам на определенный срок за соответствующую плату.

### Система квот: единица измерения ресурсов

В системе COOPOS все вычислительные ресурсы измеряются в **квотах**. Одна квота - это стандартизированный набор ресурсов (RAM, CPU, NET), который кооператив может использовать в течение периода аренды.

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

### Квота как пакет ресурсов

Одна квота - это пакет ресурсов, который включает определенное количество RAM для хранения данных, долю CPU для вычислительных операций и часть NET для передачи данных. Сколько конкретных операций позволит выполнить одна квота, зависит от типа выполняемых операций (простые переводы vs сложные смарт-контракты), объема обрабатываемых данных в каждой операции, количества RAM, которое потребуется смарт-контракту для постоянного хранения информации, и продолжительности хранения данных в оперативной памяти кооператива.

Ключевыми параметрами квот являются стоимость одной квоты в размере 5 AXON и минимальное обязательство каждого кооператива оплачивать минимум 1 квоту в день. Если кооперативу требуется больше ресурсов для действий своих пайщиков, он арендует дополнительные квоты кратно базовой стоимости.

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

## Уровни операций в системе COOPOS

На техническом уровне блокчейна все операции состоят из отдельных **действий** (actions) в смарт-контрактах.
Каждое действие - это атомарная операция: сохранение данных, проверка условий, перевод токенов и т.д.

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

### Пример: Регистрация нового пайщика

Этот кооперативный процесс включает несколько действий блокчейна:
1. <b>Прием заявления</b> - сохранение данных заявки в смарт-контракте
2. <b>Прием вступительного взноса</b> - обработка финансовой транзакции
3. <b>Прием минимального паевого взноса</b> - регистрация паевого капитала
4. <b>Голосование на заседании совета</b> - фиксация решения в смарт-контракте
5. <b>Исполнение решения совета</b> - активация аккаунта пайщика

Все эти отдельные действия формируют <b>ОДИН пакет документов</b>, который создается и обрабатывается системой как единое целое.

## Пакеты документов

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

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

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

### Точный учет ресурсов на основе протокола блокчейна

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

Сумма стоимости ресурсов при выполнении всех транзакций по процессу формирует итоговую стоимость ПАКЕТА документов, которая зависит от:

- <b>Сложности обработки данных</b> в каждом действии процесса
- <b>Объема информации</b>, которую необходимо сохранить в RAM
- <b>Продолжительности хранения</b> данных в оперативной памяти кооператива
- <b>Необходимости ежедневной оплаты</b> минимальной квоты для поддержания доступности ресурсов

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

На практике аренда квот происходит автоматически. Клиентское программное обеспечение
(подключенное к блокчейну) включает сервис мониторинга, который:

1. <b>Непрерывно отслеживает</b> состояние ресурсов всех аккаунтов кооператива в блокчейне
2. <b>Анализирует потребление</b> RAM, CPU и NET в реальном времени
3. <b>Прогнозирует потребности</b> на основе активности пайщиков
4. <b>Автоматически запускает</b> действие @ref eosiosystem::system_contract::powerup когда:
   - Истекает срок текущих квот
   - Текущих ресурсов недостаточно для работы кооператива
   - Требуются дополнительные квоты

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

### Процесс аренды квот через действие powerup

Когда клиентский сервис или кооператив инициирует платеж за аренду квот через действие @ref eosiosystem::system_contract::powerup,
выполняется следующая последовательность:

1. <b>Распределение платежа</b>: Полученный платеж автоматически делится между
  тремя типами ресурсов в фиксированных пропорциях:
  - 50% идет на аренду RAM
  - 25% выделяется для CPU
  - 25% резервируется для NET

2. <b>Предоставление ресурсов</b>: Соответствующий объем ресурсов сразу же
  передается получателю (аккаунту пайщика) на установленный срок аренды

3. <b>Регистрация заявки</b>: В системе фиксируется временный характер
  предоставленных квот с точным временем завершения (обычно через 24 часа)

4. <b>Выплата вознаграждения</b>: Делегаты сети получают свою часть платежа
  как компенсацию за предоставление ресурсов

### Минимальные обязательства кооперативов

Для обеспечения стабильности системы и гарантии доступа пайщиков к основным
функциям платформы каждый кооператив должен вносить минимальную ежемесячную
плату за аренду ресурсов. Размер этой суммы задается параметром `min_powerup_fee`
и покрывает базовые потребности в вычислительных ресурсах для поддержания
активности аккаунтов пайщиков.

Минимальная плата гарантирует:
- Доступ ко всем основным функциям платформы для пайщиков
- Стабильный доход делегатов сети
- Предсказуемость расходов для кооперативов
- Защиту от резких колебаний в потреблении ресурсов

### Механизм возврата ресурсов

Уникальная особенность системы COOPOS - точное отслеживание и возврат
арендованных ресурсов по истечении срока аренды. Это возможно благодаря
механизму контроля использования RAM в реальном времени, который позволяет
системе определять точное количество ресурсов, фактически используемых
каждым аккаунтом в любой момент.

Процесс возврата ресурсов выполняется действием @ref eosiosystem::system_contract::powerupexec и включает:

1. <b>Проверка истекших заявок</b>: Система проверяет все активные заявки
  на аренду ресурсов и находит те, срок которых истек

2. <b>Расчет возвращаемых ресурсов</b>: Для каждой истекшей заявки
  определяется точное количество ресурсов для возврата

3. <b>Обработка продления аренды</b>: Если аккаунт использует больше RAM,
  чем предусмотрено текущей заявкой, система рассчитывает объем продления аренды

4. <b>Возврат ресурсов</b>: Ресурсы возвращаются в общий пул ресурсов
  делегатов для дальнейшего предоставления в аренду

## Специальные механизмы предоставления ресурсов

### Регистрация новых пайщиков

При регистрации нового пайщика применяется специальный механизм предоставления
ресурсов, отличающийся от обычной аренды. Часть ресурсов, необходимых для
работы базового аккаунта, передается новому пайщику бессрочно
как «стартовый капитал» за фиксированную оплату в 1 AXON. 
Именно поэтому стоимость регистрации одного аккаунта равна 10 RUB (1 AXON = 1 RUB)

### Автоматическое продление аренды

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


## Система управления сроками аренды ресурсов

### Природа срока аренды ресурсов

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

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

### Техническая реализация системы продления аренды

Управление продлением аренды реализуется через специальную таблицу @ref eosiosystem::ram_debts_table
и функцию @ref eosiosystem::system_contract::update_ram_debt_table. Когда система обнаруживает превышение
лимитов RAM при возврате ресурсов, происходит следующее:

1. <b>Расчет объема продления</b>: Определяется точное количество RAM,
  которое фактически используется аккаунтом
2. <b>Создание записи о продлении</b>: В таблице фиксируется объем ресурсов,
  который необходимо оплатить для продолжения аренды
3. <b>Корректировка лимитов</b>: Лимит RAM устанавливается равным текущему
  использованию с учетом предстоящего продления
4. <b>Автоматическое продление</b>: При следующей оплате аренды ресурсы
  автоматически продлеваются на следующий период

Этот механизм обеспечивает:
- Непрерывность работы аккаунтов без потери данных
- Справедливое распределение затрат на фактически используемые ресурсы
- Автоматическое продление аренды без ручного вмешательства
- Защиту от прерываний работы из-за технических ограничений

## Математическая модель эмиссии токенов

### Философия эмиссионной политики

Эмиссионная политика COOPOS основана на принципе <b>"эмиссии роста"</b> - дополнительные
токены выпускаются только тогда, когда система действительно расширяется и
увеличивается спрос на ее услуги. Такой подход обеспечивает естественную связь
между денежной массой и реальной экономической активностью.

Математической основой эмиссии служит золотое сечение <b>φ = 1.618</b>, отражающее
естественные пропорции роста, наблюдаемые в природе и устойчивых экономических
системах. Использование этой константы обеспечивает гармоничное и предсказуемое
развитие денежной массы.

### Формула эмиссии

Система использует единую формулу для расчета дополнительной эмиссии:

```cpp
new_emission = (1 + emission_factor) * tact_fees - current_supply
```

где:
- `emission_factor` = 0.618 (обратное значение золотого сечения)
- `tact_fees` - общая сумма комиссий, собранных за текущий такт
- `current_supply` - текущее предложение токенов в системе

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

### Условия активации эмиссии

Эмиссия происходит не постоянно, а только при выполнении определенного условия:

```cpp
if (state.tact_fees > state.emission_start)
```

где `emission_start` представляет собой динамически пересчитываемый порог:

```cpp
emission_start = current_supply / (1 + emission_factor)
```

Это означает, что эмиссия активируется только когда комиссии за такт превышают
примерно 61.8% от текущего предложения токенов. Где один такт - это окно времени, в течение которого производится накопление статистики (обычно - 365 дней). 

## Математическая модель эмиссии

### Формула золотого сечения

Эмиссия основана на золотом сечении φ = 1.618, которое отражает естественные пропорции роста:

**Основная формула эмиссии:**
```
ΔVi = Qi × 0.618 - (V - Qi)
```
где:
- ΔVi - количество дополнительно выпускаемых токенов на такт i
- Qi - комиссии, собранные за такт (платежи за ресурсы)
- V - общий объем токенов в обращении
- (V - Qi) - объем токенов в накоплениях

**Формула в коде:**

```cpp
new_emission = (1 + emission_factor) × tact_fees - current_supply
```
где emission_factor = 0.618

### Условие активации эмиссии

Эмиссия активируется только при превышении порога расширения системы:

```cpp
if (state.tact_fees > state.emission_start)
```

Порог emission_start рассчитывается как:

```cpp
emission_start = current_supply / (1 + emission_factor)
```

Это означает, что эмиссия происходит только когда система активно растет и
комиссии за такт превышают ~61.8% от текущего предложения токенов.

## Распределение доходов

### Текущая схема распределения

Каждый платеж за аренду ресурсов распределяется следующим образом:
- **90% делегатам** (producers_percent) - за поддержку работы сети и валидацию блоков
- **10% на счет системных членских взносов** (fund_percent) - для последующего распределения среди пайщиков через @ref public_capital после покрытия операционных расходов системы

### Дополнительная эмиссия

При активации эмиссии все дополнительные токены поступают на счёт системных членских взносов:

```cpp
@ref eosiosystem::system_contract::emit (new_emission); // Эмиссия на счёт системных членских взносов
```

## Экономические фазы системы

### Фаза расширения (такты 1-20)

В этой фазе происходит активный рост сети:
- Комиссии превышают порог emission_start
- Происходит активная эмиссия дополнительных токенов
- Счет системных членских взносов получает 10% от стоимости квот плюс всю эмиссию для распределения среди пайщиков через @ref public_capital
- Делегаты получают 90% от стоимости оплаченных квот ресурсов.

**Пример последовательного расчета для первых трех тактов:**

<b>Такт 1:</b>
- Начальный запас токенов: 10,000 рублей (1000 AXON)
- Стоимость квот за такт: 10,000 рублей (1000 AXON)
- Порог эмиссии: 10,000 / 1.618 = 6,180 рублей
- 10,000 > 6,180 ✓ → эмиссия активна
- Эмиссия: 1.618 × 10,000 - 10,000 = 6,180 рублей (618 AXON)
- Новый запас: 10,000 + 6,180 = 16,180 рублей
- Делегатам: 10,000 × 0.9 = 9,000 рублей
- Системные взносы за такт: 10,000 × 0.1 + 6,180 = 7,180 рублей

<b>Такт 2:</b>
- Текущий запас: 16,180 рублей (1618 AXON)
- Стоимость квот за такт: 16,180 рублей
- Порог эмиссии: 16,180 / 1.618 = 10,000 рублей
- 16,180 > 10,000 ✓ → эмиссия активна
- Эмиссия: 1.618 × 16,180 - 16,180 = 10,000 рублей (1000 AXON)
- Новый запас: 16,180 + 10,000 = 26,180 рублей
- Делегатам: 16,180 × 0.9 = 14,562 рубля
- Системные взносы за такт: 16,180 × 0.1 + 10,000 = 11,618 рублей
- Накопленные системные взносы: 7,180 + 11,618 = 18,798 рублей

<b>Такт 3:</b>
- Текущий запас: 26,180 рублей (2618 AXON)
- Стоимость квот за такт: 26,180 рублей
- Порог эмиссии: 26,180 / 1.618 = 16,180 рублей
- 26,180 > 16,180 ✓ → эмиссия активна
- Эмиссия: 1.618 × 26,180 - 26,180 = 16,180 рублей (1618 AXON)
- Новый запас: 26,180 + 16,180 = 42,360 рублей
- Делегатам: 26,180 × 0.9 = 23,562 рубля
- Системные взносы за такт: 26,180 × 0.1 + 16,180 = 18,798 рублей
- Накопленные системные взносы: 18,798 + 18,798 = 37,596 рублей

### Фаза стабилизации (такты 21+)

Когда система достигает максимального объема вычислительного облака (83,886,080 рублей):
- Эмиссия прекращается (комиссии не превышают порог emission_start)
- Счет системных членских взносов получает только 10% от стоимости квот
- Делегаты продолжают получать 90% от стоимости квот
- Предложение токенов стабилизируется

## Техническая реализация

### Ключевые действия (actions)

#### Конфигурация системы аренды ресурсов
Действие @ref eosiosystem::system_contract::cfgpowerup конфигурирует систему аренды ресурсов:
- Устанавливает срок аренды (powerup_days)
- Определяет минимальную комиссию (min_powerup_fee)
- Инициализирует веса ресурсов на основе текущего предложения токенов

#### Аренда ресурсов
Основное действие @ref eosiosystem::system_contract::powerup для аренды ресурсов:
- Распределяет платеж: 50% RAM, 25% CPU, 25% NET
- Обрабатывает продление аренды RAM через update_ram_debt_table()
- Создает заявку на аренду с временем истечения
- Вызывает @ref eosiosystem::system_contract::fill_tact для обработки эмиссии

#### Обработка истекших заявок на аренду
Действие @ref eosiosystem::system_contract::powerupexec обрабатывает истекшие заявки на аренду:
- Возвращает ресурсы от аккаунтов в резерв eosio.power
- Обновляет utilization в состоянии ресурсов
- Может формировать заявки на продление аренды RAM при превышении лимитов

#### Инициализация системы эмиссии
Действие @ref eosiosystem::system_contract::initemission инициализирует систему эмиссии:
- Устанавливает начальное предложение (обычно 1000 токенов)
- Определяет продолжительность такта (регулируемый параметр)
- Фиксирует фактор эмиссии (0.618 - золотое сечение)

### Состояние системы

#### Состояние рынка ресурсов
Таблица @ref eosiosystem::powerup_state хранит состояние рынка ресурсов:

```cpp
struct powerup_state {
  powerup_state_resource net;   // Состояние NET ресурсов
  powerup_state_resource cpu;   // Состояние CPU ресурсов
  powerup_state_resource ram;   // Состояние RAM ресурсов
  uint32_t powerup_days;        // Срок аренды
  asset min_powerup_fee;        // Минимальная комиссия
};
```

#### Управление эмиссией
Таблица @ref eosiosystem::emission_state управляет процессом эмиссии:
- tact_number: номер текущего такта
- tact_duration: продолжительность такта в секундах
- emission_factor: коэффициент эмиссии (0.618)
- current_supply: текущее предложение токенов
- tact_fees: комиссии, собранные за текущий такт
- emission_start: порог активации эмиссии

## Экономические показатели системы

### Базовые параметры

| Параметр | Значение | Описание |
|----------|----------|----------|
| Объем вычислительного облака | 64 GB | Базовая емкость сети |
| Стоимость аккаунта | 10 рублей | Стоимость регистрации пайщика |
| Стоимость пакета документов | 10 рублей | Средняя стоимость пакета документов по любому процессу |
| Генезис токенов | 10,000 рублей | Начальная эмиссия |
| Фактор эмиссии | 61.8% | Основан на золотом сечении |

### Прогноз роста системы

Основываясь на математической модели, система растёт следующим образом:

| Такт | Эмиссия (RUB) | Всего токенов (RUB) | Стоимость квот (RUB) | Системные членские взносы (накопл., RUB) | Делегаты (накопл., RUB) |
|------|---------------|---------------------|----------------|----------------------------------------|----------------------|
| 1    | 6,180        | 16,180             | 10,000         | 7,180                                 | 9,000               |
| 2    | 10,000       | 26,180             | 16,180         | 18,798                                | 23,562              |
| 3    | 16,180       | 42,360             | 26,180         | 37,596                                | 47,124              |
| 4    | 26,180       | 68,540             | 42,360         | 63,854                                | 85,378              |
| 5    | 42,360       | 110,900            | 68,540         | 106,690                               | 147,064             |
| 20   | 0            | 83,886,080         | 51,856,720     | 89,041,748                            | 466,710,480         |
| 21+  | 0            | 83,886,080         | 51,856,720     | 94,227,420                            | 933,420,960         |

<b>Примечание:</b> Цифры приведены в рублях по курсу 1 AXON = 10 RUB. Системные членские взносы включают 10% от стоимости аренды всех квот плюс всю эмиссию для последующего распределения среди пайщиков через контракт CAPITAL. После такта 20 эмиссия прекращается, поскольку система достигает стабилизации.
 */
