Как это работает
ORACULUM превращает предсказание в объект, который нельзя подделать задним числом. Вы пишете, что произойдёт, и к какому сроку. Текст уходит в блокчейн биткоина как Ordinals-инскрипция и остаётся там навсегда — вместе с датой записи, заверенной не нами, а сетью.
Смысл именно в этом. Задним числом легко сказать «я же говорил». Инскрипция не даёт: у неё есть блок, у блока — время, и переписать его нельзя ни автору, ни администрации сайта.
Четыре шага
- Формулируете. Текст до 420 символов и дата, к которой всё должно случиться. Максимальный горизонт — 10 лет.
- Платите. Мы показываем одноразовый адрес и точную сумму с полной расшифровкой. Никаких регистраций и привязки карт.
- Мы чеканим. Дождавшись, пока платёж попадёт в блок, отправляем
две транзакции —
commitиreveal. Готовая инскрипция приходит на ваш адрес: она ваша, мы к ней доступа не имеем. - Ждём часа икс. После наступления срока пророчество попадает в раздел «Час икс», а вердикт — в «Кто был прав».
Почему две транзакции
Так устроен протокол Ordinals. Первая транзакция (commit) переводит монеты на специальный taproot-адрес, в дерево скриптов которого зашит ваш текст. Вторая (reveal) тратит этот выход и тем самым раскрывает содержимое — оно попадает в свидетель транзакции и навсегда остаётся в блокчейне. Сама инскрипция «сидит» на одном конкретном сатоши, который уезжает вам.
Сколько это стоит
Сумма складывается из четырёх частей, и все они видны на странице оплаты:
- Сатоши-носитель — 546 сат. Уезжает вам вместе с NFT.
- Комиссия майнерам за reveal — зависит от размера текста.
- Комиссия майнерам за commit — фиксированного размера.
- Доля проекта — 10 000 сат. На неё живёт сайт.
Первые три части нам не достаются: они уходят в сеть. Если вы переплатите, разница вернётся сдачей на ваш же адрес в той же транзакции.
Кто решает, сбылось ли
Честно с самого начала: полностью автоматически проверить произвольное предсказание невозможно. «Первая страна ЕС добавит биткоин в резервы» — это про понимание новостей, а не про запрос к базе данных. Об это упираются все рынки предсказаний в мире, и волшебного решения ни у кого нет. Поэтому здесь три слоя, от самого надёжного к самому спорному.
1. Машинное правило — вердикт без людей
Часть пророчеств можно посчитать. Если при записи выбрать правило вроде «цена биткоина на день срока выше 250 000 $», сайт в назначенный день сам сходит к источнику, снимет замер и вынесет вердикт — с числом и ссылкой, которую можно перепроверить. Никакого нашего мнения в этом нет.
2. Критерий, замороженный вместе с пророчеством
Для всего остального автор пишет словами, чем мерить: какой источник, что считать исполнением. Эта строка уходит в блокчейн вместе с текстом и застывает так же намертво. Это важнее, чем кажется: спорят обычно не о фактах, а о том, что считалось за победу. Когда критерий записан заранее и неизменяем, передвинуть ворота задним числом не может никто — ни автор, ни мы.
3. Голос сообщества и решение редакции
Когда срок вышел, пророчество попадает в «Час икс». Голосовать можно подписью кошелька, и учитываются только адреса, у которых есть своё пророчество в блокчейне. Одной подписи было бы мало: биткоин-адреса бесплатны и бесконечны, накрутить их можно сколько угодно. А вот чеканка стоит денег — и именно это делает голос чего-то стоящим. Судят те, кто сам играет.
Итоговый вердикт выносит редакция и обязана приложить проверяемый источник. Исходов три: сбылось, не сбылось и не разобрать — последний для формулировок, которые нельзя проверить однозначно. Он не даёт очков, но и не отнимает. Поэтому выигрывает тот, кто пишет конкретно и сразу говорит, чем его проверять.
Под печатью
Обычное пророчество видно всем сразу — и в этом его слабость: заранее названный ответ влияет на исход, а иногда просто портит интригу. Поэтому есть второй способ записи. Видимую часть вы пишете открыто, а содержимое уходит в блокчейн зашифрованным до назначенной минуты.
Под печатью можно записать две разные вещи, и путать их не стоит:
- Пророчество. Открыт вопрос, закрыт ответ. Смысл открытого вопроса — доказательство: задним числом нельзя подогнать формулировку под то, что случилось. Когда срок выйдет, решается, сбылось ли, и это идёт в рейтинг оракулов.
- Открытка. Поздравление, письмо, подарок к дате. Открыта только надпись на конверте, внутри — что угодно. Доказывать тут нечего: у открытки нет ни «сбылось», ни «не сбылось», и в рейтинг она не идёт. Адрес можно указать не свой, а того, кому она предназначена: конверт будет лежать у него в кошельке и распечатается сам в назначенный день.
Ключа к такому ответу в момент записи не существует ни у кого. Не «мы его не смотрим» и не «мы обещаем не открывать» — его физически нет. Шифрование устроено так, что ключом служит подпись, которую сеть drand выпустит в назначенный момент и опубликует открыто. drand — это не блокчейн и не монета: несколько независимых организаций (среди них Cloudflare, EPFL, Университет Чили) каждые три секунды сообща подписывают номер очередного тика. Подпись собирается только вместе, в одиночку её не сделает никто.
Из этого следуют две вещи, ради которых всё и затевалось:
- Подсмотреть нельзя. Ни нам, ни тому, кто получит доступ к нашим серверам, ни самому автору — ключа нет ни у кого до срока.
- Скрыть неудачный ответ нельзя. В назначенный день капсула открывается сама. Не «мы её раскроем», а откроется — потому что ключ становится всеобщим достоянием, и сделать с этим уже ничего нельзя.
Шифротекст лежит внутри самой инскрипции целиком, поэтому наш сайт для
раскрытия не нужен. Возьмите свидетельство из блокчейна, подпись нужного
раунда у любого узла drand — и открывайте чем угодно: годятся официальная
программа tle, age с плагином tlock или наш
tools/unseal.py. Мы это проверяем в обратную сторону: файл,
зашифрованный чужой программой, наш код открывает байт в байт.
Чего мы при этом не обещаем. Автор знает свой ответ и может показать его кому захочет заранее — печать защищает от посторонних, а не от самого автора. Раскрытие держится на том, что сеть drand доживёт до назначенного раунда: если она остановится, капсула останется закрытой навсегда. Поэтому сроки лучше держать в пределах года, а не десятилетий. И помните, что после раскрытия ответ становится публичным — это не личная переписка.
Где у печати слабые места
Криптография защищает содержимое капсулы после того, как оно зашифровано. Всё, что происходит до этого момента, она не покрывает — и об этом честнее сказать прямо, чем прятать за словом «шифрование».
| Где | Что может противник | Что мы делаем |
|---|---|---|
| Ваш компьютер | Читает текст прямо при наборе, если на машине зловред или лишнее расширение браузера | Ничего. Это вне нашей досягаемости — и мы этого не обещаем |
| Дорога до сайта | Раньше читал бы ответ целиком: сайт работал по открытому HTTP | Исправлено: весь сайт под HTTPS, обычные запросы перенаправляются. Сертификат выпущен на сам адрес — домен для этого больше не нужен |
| Наш сервер | Видит ответ в момент шифрования, если шифруем мы | Открытый текст не пишется ни в базу, ни в журнал — но проверить это на слово нельзя. Поэтому есть второй путь: запечатать у себя |
| Сеть drand | При сговоре большинства узлов — вскрыть капсулу раньше срока | Ключ сети закреплён в нашем коде, чужой подсунуть нельзя. Но сам сговор мы предотвратить не можем: это внешнее допущение |
| Блокчейн | Видит размер капсулы, время записи, адреса и связи платежей | Скрыт текст, но не факт записи. Это не анонимность |
Если не хотите доверять нам вовсе
Запечатайте ответ у себя, а нам отдайте готовую капсулу — тогда открытый текст не покинет вашу машину ни на секунду:
python tools/seal.py --until 2027-03-01 --text "ваш ответ"
В форме есть поле «принести свою капсулу». Срок мы возьмём из неё самой,
а не из формы, — подменить его не сможем. Подойдёт и капсула, сделанная
чужой программой: tle или age с плагином tlock.
Что мы не утверждаем: что наша реализация криптографии безошибочна. Она сверена с официальными векторами RFC 9380, с эталоном библиотеки, на которой работает drand, и открывает файлы, зашифрованные чужой программой, байт в байт — но независимого аудита не проходила. Если ставка высока, шифруйте своими руками и проверенным инструментом.
Очки
За сбывшееся — 10 очков плюс по одному за каждый месяц горизонта (не больше 24). За провал — минус 4. Смысл простой: угадать на три года вперёд труднее, чем на неделю, и это должно быть видно в рейтинге.
API
Всё, что видно на сайте, доступно и машинам:
GET /api/feed— лента, фильтрыcategory,phase,sortGET /api/prophecy/<id>— одно пророчество со статусом чеканкиGET /api/hall— рейтинг оракуловGET /api/stats— сводка по проекту
Почему чеканка начинается не мгновенно
Мы ждём, пока ваш платёж попадёт в блок, и только потом тратим его.
Причина техническая: пока транзакция висит в очереди, отправитель может
заменить её другой, с большей комиссией, и увести монеты обратно. Наши
commit и reveal — её прямые потомки, поэтому они
исчезли бы вместе с ней, а на сайте осталась бы запись «отчеканено» со
ссылками в пустоту. Одна лишняя пауза в обмен на то, что каждой строчке
здесь можно верить.
Честно о рисках
- Текст публичен и неудаляем. Не пишите того, о чём пожалеете.
- Инскрипция уходит на указанный вами адрес. Ошиблись адресом — вернуть её мы не сможем.
- Комиссию сети мы не контролируем: если она резко вырастет между расчётом и оплатой, чеканка может задержаться.
- Вердикт выносит человек. Мы стараемся быть беспристрастными и всегда показываем источник, но абсолютного оракула не существует.
- Запечатанный ответ раскроется публично и тоже навсегда. Секреты и чужие персональные данные в капсулу класть нельзя: удалить их потом будет невозможно ни нам, ни вам.