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 Ɉ**
|