Глава 4: Модель MeriToken
4.1 Обзор модели
MeriToken — это основная единица измерения GMC. Её проектирование должно ответить на ключевой вопрос: Как измерение вклада может отражать текущую активность, одновременно уважая исторические заслуги?
Ответ: экспоненциальное затухание + ненулевое минимальное значение.
4.2 Два ключевых значения
Каждый MeritPocket поддерживает два основных значения:
- curMerit (текущий MeriToken): Значение измерения вклада в реальном времени; затухает со временем и растёт с новыми вкладами
- minMerit (минимальное значение): Нижняя граница затухания, представляющая долгосрочный осадок исторических вкладов; только увеличивается (за исключением штрафов)
curMerit ≥ minMerit ≥ e (начальное значение)
4.3 Приобретение
MeriToken приобретается через вклад; система чеканит новые Token:
| Способ приобретения | Описание | Условие срабатывания |
|---|---|---|
| Объективное измерение | Автоматически рассчитывается на основе верифицируемых метрик | Система автоматически фиксирует достижение порога |
| Задание с наградой | Предустановленный Merit за конкретную задачу | Заинтересованные стороны голосуют за одобрение по завершении |
| Начальное распределение | Предоставляется при регистрации в сети | Регистрация идентичности завершена |
Начальное значение = e ≈ 2,718 (натуральная константа, естественно согласованная с моделью экспоненциального затухания).
4.4 Модель затухания
Основная идея
Каждая партия приобретения Merit имеет независимую длительность влияния. Длительность влияния отражает актуальность данного вклада — вклад с длительностью влияния 100 дней полностью затухает в течение 100 дней.
Формула затухания одной партии
MeriToken_i(t) = (V_i - B_i) × e^(-λ_i × t) + B_i
V_i: Начальное значение Merit партииB_i: Вклад партии в минимальное значениеλ_i: Коэффициент затухания, определяемый длительностью влияния T_i (λ_i = k / T_i, где k — константа)t: Время, прошедшее с момента приобретения
Общий текущий MeriToken
curMerit = Σ MeriToken_i(t) (сумма всех активных партий)
Когда все партии полностью затухли, curMerit приближается к minMerit.
4.5 Минимальное значение (minMerit)
Правило обновления
При каждом приобретении нового Merit минимальное значение обновляется:
Пусть текущий curMerit = M, вновь приобретённый Merit = x, текущее минимальное значение = B, тогда:
Новое минимальное значение B' = (x + M) × B / M
Смысл: Минимальное значение растёт пропорционально доле нового Merit в общей сумме.
Свойства
- Начальное значение = e ≈ 2,718
- Только увеличивается (за исключением штрафов)
- Представляет неизгладимый осадок исторических вкладов
- Даже если вклад полностью прекращается, curMerit в конечном итоге никогда не упадёт ниже minMerit
Граничный случай
Когда curMerit = minMerit (т.е. в состоянии минимума) и приобретается новый Merit x:
B' = (x + B) × B / B = x + B
Минимальное значение увеличивается непосредственно на x — это означает, что Merit, приобретённый в состоянии минимума, полностью откладывается как минимальное значение.
4.6 Реализация независимого затухания по партиям
Сложности
- Каждый MeritPocket должен поддерживать список партий Merit
- Запрос текущего значения требует перебора всех партий, которые ещё не полностью затухли
- Затраты на хранение и вычисления в блокчейне растут линейно с количеством партий
Стратегии оптимизации
- Объединение партий: Партии с похожей длительностью влияния периодически объединяются для уменьшения количества активных партий
- Вычисления вне цепи: Использование Rollup для вычисления значений в реальном времени вне цепи; в блокчейне хранятся только снимки и доказательства
- Осаждение партий: При превышении максимального количества активных партий самые старые партии автоматически осаждаются в минимальное значение
- Ленивые вычисления: Точные значения рассчитываются только при необходимости (например, при голосовании или запросах)
4.7 Философия проектирования
Почему экспоненциальное затухание?
- Стимулирует непрерывный вклад, а не единичный крупный вклад с последующим бездействием
- Отражает актуальность вкладов — более свежие вклады оказывают большее влияние на текущую репутацию
- Естественно моделирует затухание социальной памяти
- Быстро затухает вначале и замедляется позже, что соответствует интуиции
Почему ненулевой минимум?
- Признаёт долгосрочную ценность исторических вкладов — прошлые усилия не обнуляются полностью
- Предотвращает потерю всего права голоса долгосрочными участниками из-за кратковременной паузы
- Минимальное значение растёт с накопленными вкладами, вознаграждая устойчивое участие
Почему независимая длительность влияния для каждой партии?
- Разные вклады естественно имеют разную актуальность
- Одно взаимодействие с клиентом может иметь влияние всего 30 дней
- Поддержка проекта с открытым исходным кодом может иметь влияние на годы
- Единая скорость затухания исказила бы ценность различных типов вкладов
4.8 Заметки к обсуждению
Ключевые решения в модели MeriToken:
- Экспоненциальное затухание + ненулевой минимум: Находит баланс между «стимулированием непрерывного участия» и «уважением исторических вкладов»
- Независимая длительность влияния для каждой партии: Увеличивает сложность реализации, но точнее отражает различия в актуальности вкладов
- Минимальное значение только увеличивается (за исключением штрафов): Защищает фундаментальные права долгосрочных участников
- Начальное значение e: Сочетает математическую элегантность с практическим значением
Требует дальнейшего изучения: Ведёт ли себя формула обновления минимального значения разумно в экстремальных условиях
