Whitepaper GoodLuckcoin proof-of-fortune blockchain v1.1 автор Дмитрий Андреевич Морыганов
Полный механизм работы GoodLuckCoin (PoF) с награждением победителя
1. Вход участника в раунд
Каждый узел сети — это участник, который:
авторизуется через кошелёк TON (Tonkeeper, MyTonWallet и др.);
инициирует участие, нажимая кнопку «Участвовать в раунде» в интерфейсе кошелька или dApp;
подтверждает действие подписью приватного ключа.
2. Первичная проверка смарт‑контрактом
Смарт‑контракт GLC автоматически проверяет:
Баланс: ≥ 10 GLC на кошельке участника;
Статус узла: отсутствие в чёрном списке;
Подлинность подписи: валидность приватного ключа.
При несоответствии условий участник исключается из раунда.
3. Генерация VRF‑выхода участником (узлом)
Для допущенных участников:
Узел получает seed из последнего блока GLC (поле prev_block_hash).
Генерирует VRF‑выход по формуле:
VRF(seed,private_key)→(vrf_output,proof)
Формирует пакет данных:
vrf_output — случайное число/хэш;
proof — доказательство корректности VRF;
public_key — публичный ключ участника;
signature — подпись приватным ключом.
4. Верификация данных смарт‑контрактом
Смарт‑контракт обрабатывает пакеты от 1–19 участников и проверяет:
Валидность proof: соответствие vrf_output входному seed;
Корректность подписи: подлинность приватного ключа;
Баланс: ≥ 10 GLC на момент проверки;
Уникальность: отсутствие дубликатов в текущем раунде.
При ошибке участник исключается из выборки.
5. Выбор победителя
Из оставшихся участников (1–19 человек) смарт‑контракт:
Сравнивает vrf_output всех узлов (как числовые значения или хэши).
Выбирает участника с наименьшим значением vrf_output (минимальный хэш).
Фиксирует:
winner_index — индекс победителя в списке;
winner_id — публичный ключ победителя.
6. Формирование и запись блока в TON Storage
Смарт‑контракт не транслирует блок в сеть TON, а сразу формирует и записывает его в TON Storage (децентрализованное хранилище данных TON).
Блок содержит следующие поля:
block_number — порядковый номер;
participants — массив публичных ключей участников (1–19);
winner_index — позиция победителя в массиве;
winner_id — публичный ключ победителя;
vrf_seed — seed из предыдущего блока;
vrf_outputs — массив результатов VRF всех участников;
proofs — массив доказательств VRF;
timestamp — время создания (UTC);
prev_block_hash — хэш предыдущего блока;
merkle_root — корень Меркла для списка участников;
GLC_reward — награда валидатору (фиксированная сумма в GLC).
Важно:
Запись в TON Storage происходит напрямую через вызовы API TON Storage.
Блок получает уникальный идентификатор хранилища и становится доступен для чтения.
7. Начисление награды победителю
После фиксации блока в TON Storage:
Смарт‑контракт отправляет награду победителю на его кошелёк TON:
базовая награда + 10 GLC (фиксированная премия);
сумма может включать дополнительные бонусы (если предусмотрены правилами).
Транзакция записывается в блокчейн TON с уникальным txID (идентификатором транзакции).
8. Фиксация и верификация результата
Данные о блоке и награде хранятся в двух системах:
Блок — в TON Storage (с постоянным доступом по идентификатору).
Транзакция награды — в блокчейне TON (доступна через TON Scan).
Каждый участник может проверить:
txID транзакции в TON Scan — подтверждает перевод награды;
блок в TON Storage — содержит:
список участников;
vrf_output и proof победителя;
публичный ключ победителя (winner_id);
хэш предыдущего блока (prev_block_hash).
Ключевые гарантии
Неподдельность
Награда подтверждается txID, который невозможно подделать.
Результат раунда зафиксирован в TON Storage и неизменен.
Прозрачность
Все данные (VRF‑выходы, доказательства, списки участников) публичны.
Любой может верифицировать:
корректность vrf_output по seed и public_key;
целостность блока через merkle_root;
связь блоков через prev_block_hash.
Верифицируемость
История блоков хранится вечно в TON Storage.
Транзакции наград доступны через TON Scan по txID.
Блоки можно запросить по block_number через API TON Storage.
Безопасность
Подделка proof или signature невозможна без приватного ключа.
Изменение блока ломает связь через prev_block_hash.
Децентрализация
Участие доступно любому узлу с кошельком TON и ≥ 10 GLC.
Нет центрального администратора.
Пример процесса
Сценарий: раунд с 5 участниками. Шаги:
Участники нажимают «Участвовать», смарт‑контракт проверяет баланс (≥ 10 GLC).
Узлы генерируют vrf_output на основе seed из блока № 1000.
Смарт‑контракт верифицирует proof и подписи.
Среди vrf_output выбирается минимальное значение (например, у участника ID_3).
Смарт‑контракт формирует блок № 1001 и сразу записывает его в TON Storage со данными:
participants = [ID_1, ID_2, ID_3, ID_4, ID_5];
winner_index = 2;
winner_id = ID_3.
Смарт‑контракт переводит 10 GLC + награда на кошелёк ID_3.
txID транзакции фиксируется в блокчейне TON и доступен через TON Scan.
Итог
Механизм PoF в GoodLuckCoin обеспечивает автоматизированный, честный и децентрализованный отбор валидатора блока из 1–19 участников.
Ключевой процесс:
Из пула участников (1–19 узлов) смарт‑контракт отбирает валидатора блока — им становится победитель раунда.
Победителя определяют по минимальному значению vrf_output (хэш‑результата VRF), сгенерированного каждым участником на основе:
seed из предыдущего блока;
приватного ключа узла.
Победа равнозначна назначению валидатором текущего блока — именно победитель формирует и подписывает новый блок.
Как фиксируется результат:
Блок напрямую записывается в TON Storage (без трансляции в сеть TON).
Транзакция награды победителю‑валидатору попадает в блокчейн TON и доступна через TON Scan по txID.
Гарантии:
Честность отбора: победитель‑валидатор определяется криптографически (VRF), без возможности предсказать или подменить результат.
Прозрачность: любой участник может проверить:
корректность vrf_output и proof по входным данным;
целостность блока через merkle_root;
связь блоков через prev_block_hash.
Неизменность: блок в TON Storage и транзакция в блокчейне TON не могут быть изменены.
Верифицируемость: данные хранятся вечно и доступны для аудита:
блок — через API TON Storage по block_number;
транзакция награды — через TON Scan по txID.
Децентрализация: любой узел с кошельком TON и ≥ 10 GLC может участвовать; нет центрального администратора.
Результат:
Победитель раунда становится валидатором блока.
Блок формируется и сохраняется в TON Storage.
Награда (10 GLC + базовая премия) переводится на кошелёк победителя‑валидатора.
Все данные прозрачны, неизменяемы и доступны для проверки в любой момент.