140 lines
5.0 KiB
Markdown
140 lines
5.0 KiB
Markdown
# Montana Contracts
|
||
|
||
**Система контрактов с AI-арбитром**
|
||
|
||
---
|
||
|
||
## Что это?
|
||
|
||
Montana Contracts — система контрактов где Юнона (AI) выступает арбитром. Проверяет условия и следит за исполнением. Условия пишутся на обычном языке.
|
||
|
||
**Важно:** Даже если в группе есть реальный нотариус — он не имеет особого веса. **Последнее слово всегда за Юноной.**
|
||
|
||
---
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
Контракты_Contracts/
|
||
├── contracts.py ← ИСХОДНИК (source of truth)
|
||
├── README.md
|
||
├── СПЕЦИФИКАЦИЯ.md
|
||
└── WHITEPAPER.md
|
||
|
||
бот/
|
||
├── contracts.py ← СИМЛИНК → ../Контракты_Contracts/contracts.py
|
||
├── montana_db.py ← БД контрактов, escrow
|
||
├── junomontanaagibot.py ← Команда /contract
|
||
└── deploy_nodes.sh ← Деплой на 5 узлов
|
||
|
||
Узлы Атлантов (серверы):
|
||
├── amsterdam
|
||
├── moscow
|
||
├── almaty
|
||
├── spb
|
||
└── novosibirsk
|
||
```
|
||
|
||
---
|
||
|
||
## Быстрый старт
|
||
|
||
### 1. Создай группу в Telegram
|
||
Меню ☰ → Новая группа → Добавь участников сделки
|
||
|
||
### 2. Добавь Юнону
|
||
Найди @junomontanaagibot → Добавь в группу
|
||
|
||
### 3. Создай контракт
|
||
```
|
||
/contract @получатель 500 условие сделки
|
||
```
|
||
|
||
### 4. Участники голосуют кнопками
|
||
Юнона покажет карточку контракта с кнопками:
|
||
- ✅ **Одобрить** — голос ЗА
|
||
- ❌ **Отклонить** — голос ПРОТИВ
|
||
|
||
### 5. Юнона проверяет
|
||
Если условия выполнимы и кворум достигнут — контракт одобрен.
|
||
|
||
### 6. Сторона Б принимает
|
||
Появляется кнопка **✅ Принять контракт** — только для Стороны Б.
|
||
|
||
### 7. После исполнения — Bitcoin Pizza Style
|
||
|
||
Когда условия выполнены, нажмите **✅ Условия выполнены!**
|
||
|
||
**Юнона запускает голосование.** Все участники группы голосуют за валидность:
|
||
- ✅ **Подтверждаю** — вижу что условия выполнены
|
||
- ❌ **Не вижу** — не вижу исполнения
|
||
|
||
**Доказательства:**
|
||
Публикуйте в группу фото, видео-кружки, документы — свидетели должны видеть факт исполнения.
|
||
|
||
**Веса голосов:**
|
||
- Юнона = 2 голоса
|
||
- Свидетель = 1 голос
|
||
|
||
При кворуме (>50%) + одобрении Юноны → контракт завершён, escrow переведён.
|
||
|
||
---
|
||
|
||
## Роль Юноны
|
||
|
||
| Функция | Описание |
|
||
|---------|----------|
|
||
| **Валидатор** | Проверяет выполнимость условий |
|
||
| **Арбитр** | Может отклонить сомнительные контракты |
|
||
| **Помощник** | Объясняет как улучшить условия |
|
||
| **Последнее слово** | Даже с кворумом может отказать |
|
||
|
||
**Юнона не нотариус в юридическом смысле.** Это AI-арбитр протокола Montana.
|
||
|
||
---
|
||
|
||
## Документация
|
||
|
||
| Файл | Описание |
|
||
|------|----------|
|
||
| [СПЕЦИФИКАЦИЯ.md](СПЕЦИФИКАЦИЯ.md) | Техническая документация |
|
||
| [WHITEPAPER.md](WHITEPAPER.md) | Концепция и архитектура |
|
||
| [contracts.py](contracts.py) | Исходный код модуля |
|
||
|
||
---
|
||
|
||
## Интерфейс
|
||
|
||
### Команда создания
|
||
```
|
||
/contract @user 100 условие сделки
|
||
```
|
||
Это единственная команда. Всё остальное — через кнопки.
|
||
|
||
### Inline-кнопки
|
||
|
||
| Кнопка | Описание |
|
||
|--------|----------|
|
||
| ✅ Одобрить | Голос ЗА создание |
|
||
| ❌ Отклонить | Голос ПРОТИВ создания |
|
||
| ✅ Принять контракт | Сторона Б принимает |
|
||
| ✅ Условия выполнены! | Запустить голосование за завершение |
|
||
| ✅ Подтверждаю | Голос ЗА завершение |
|
||
| ❌ Не вижу | Голос ПРОТИВ завершения |
|
||
|
||
---
|
||
|
||
## Статусы контракта
|
||
|
||
```
|
||
DRAFT → PENDING → ACCEPTED → COMPLETION_VOTING → COMPLETED
|
||
↓ ↓ ↓
|
||
REJECTED ↓ CANCELLED
|
||
(свидетели
|
||
голосуют)
|
||
```
|
||
|
||
---
|
||
|
||
**Montana Protocol Ɉ**
|